From 24b5ffe176028d281b7e2264678102803a3aaccf Mon Sep 17 00:00:00 2001 From: abhinav anshul Date: Tue, 2 Jun 2020 20:36:47 +0530 Subject: [PATCH 01/18] adds Project Creation hook, interacts with GithubGrantFactory --- debug.log | 10 + src/components/Activity/activity-types.js | 8 + src/components/Disputes/Import.js | 45 +- src/components/Disputes/ProjectCreation.js | 10 + src/contracts/AddressUtils.json | 21183 ++++++ src/contracts/BountiesMetaTxRelayer.json | 43751 +++++++++++++ src/contracts/ClaimsToken.json | 10929 ++++ src/contracts/ClaimsTokenERC20Extension.json | 10976 ++++ src/contracts/DAOFactory.json | 2699 + src/contracts/ERC165.json | 21215 ++++++ src/contracts/ERC20.json | 10555 +++ src/contracts/ERC20Detailed.json | 10699 +++ src/contracts/ERC20Token.json | 4804 ++ src/contracts/ERC721Basic.json | 21486 ++++++ src/contracts/ERC721BasicToken.json | 21588 ++++++ src/contracts/ERC721BasicTokenMock.json | 21612 ++++++ src/contracts/ERC721Receiver.json | 21226 ++++++ src/contracts/GitFundedGrant.json | 19761 ++++++ src/contracts/GitFundedGrantFactory.json | 3197 + src/contracts/Governance.json | 34664 ++++++++++ src/contracts/GuildBank.json | 4823 ++ src/contracts/HumanStandardToken.json | 5733 ++ src/contracts/IClaimsToken.json | 10542 +++ src/contracts/IERC20.json | 1864 + src/contracts/Migrations.json | 1168 +- src/contracts/Moloch.json | 40539 ++++++++++++ src/contracts/MolochSummoner.json | 2277 + src/contracts/ReentrancyGuard.json | 748 + src/contracts/SafeMath.json | 2770 + src/contracts/StandardBounties.json | 54152 ++++++++++++++++ src/contracts/Submitter.json | 1678 + .../SupportsInterfaceWithLookup.json | 21232 ++++++ src/contracts/Token.json | 2050 + src/contracts/iBountiesMetaTxRelayer.json | 7827 +++ src/contracts/iGovernance.json | 1417 + src/hooks/useProjectCreation.js | 36 + 36 files changed, 438909 insertions(+), 365 deletions(-) create mode 100644 src/components/Disputes/ProjectCreation.js create mode 100644 src/contracts/AddressUtils.json create mode 100644 src/contracts/BountiesMetaTxRelayer.json create mode 100644 src/contracts/ClaimsToken.json create mode 100644 src/contracts/ClaimsTokenERC20Extension.json create mode 100644 src/contracts/DAOFactory.json create mode 100644 src/contracts/ERC165.json create mode 100644 src/contracts/ERC20.json create mode 100644 src/contracts/ERC20Detailed.json create mode 100644 src/contracts/ERC20Token.json create mode 100644 src/contracts/ERC721Basic.json create mode 100644 src/contracts/ERC721BasicToken.json create mode 100644 src/contracts/ERC721BasicTokenMock.json create mode 100644 src/contracts/ERC721Receiver.json create mode 100644 src/contracts/GitFundedGrant.json create mode 100644 src/contracts/GitFundedGrantFactory.json create mode 100644 src/contracts/Governance.json create mode 100644 src/contracts/GuildBank.json create mode 100644 src/contracts/HumanStandardToken.json create mode 100644 src/contracts/IClaimsToken.json create mode 100644 src/contracts/IERC20.json create mode 100644 src/contracts/Moloch.json create mode 100644 src/contracts/MolochSummoner.json create mode 100644 src/contracts/ReentrancyGuard.json create mode 100644 src/contracts/SafeMath.json create mode 100644 src/contracts/StandardBounties.json create mode 100644 src/contracts/Submitter.json create mode 100644 src/contracts/SupportsInterfaceWithLookup.json create mode 100644 src/contracts/Token.json create mode 100644 src/contracts/iBountiesMetaTxRelayer.json create mode 100644 src/contracts/iGovernance.json create mode 100644 src/hooks/useProjectCreation.js diff --git a/debug.log b/debug.log index 25e771a..c8d1d9a 100644 --- a/debug.log +++ b/debug.log @@ -13,3 +13,13 @@ [0527/213826.031:ERROR:crash_report_database_win.cc(469)] failed to stat report [0528/151733.993:ERROR:crash_report_database_win.cc(469)] failed to stat report [0528/151734.019:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0529/140617.768:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0529/140617.771:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0601/221346.435:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0601/221346.456:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0602/164611.913:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0602/164611.915:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0602/190943.213:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0602/190943.215:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0602/192715.867:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0602/192715.870:ERROR:crash_report_database_win.cc(469)] failed to stat report diff --git a/src/components/Activity/activity-types.js b/src/components/Activity/activity-types.js index 3c972b2..4c5b0b1 100644 --- a/src/components/Activity/activity-types.js +++ b/src/components/Activity/activity-types.js @@ -22,6 +22,14 @@ const ACTIVITY_TYPES = new Map( `, } }, + newProject({ name, budget }) { + return { + icon: execute, + title: 'Added Project', + description: ` Created Project ${name} , ${budget} + `, + } + }, transaction({ transactionHash }) { return { title: 'Transaction', diff --git a/src/components/Disputes/Import.js b/src/components/Disputes/Import.js index 5f7637b..093c29b 100644 --- a/src/components/Disputes/Import.js +++ b/src/components/Disputes/Import.js @@ -1,16 +1,11 @@ /* eslint-disable */ -import React, { useState, useEffect } from 'react' -import { - SidePanel, - Button, - DropDown, - TextInput, - textStyle, - Main, - GU, -} from '@aragon/ui' +import React, { useState, useRef } from 'react' +import { SidePanel, Button, DropDown, TextInput } from '@aragon/ui' import { Octokit } from '@octokit/rest' import { useWallet } from 'use-wallet' +import { useProjectCreationActions } from '../../hooks/useProjectCreation' + +// import { useProjectCreationActions } from './useProjectCreation' function Import() { const wallet = useWallet() @@ -21,6 +16,8 @@ function Import() { const [list, setList] = useState([]) + const { create } = useProjectCreationActions() + const TOKEN = localStorage.getItem('ACCESS TOKEN') const octokit = new Octokit({ @@ -65,6 +62,16 @@ function Import() { setSelected(index) } + const inputBudget = useRef(null) + const inputName = useRef(null) + + async function handleProjectCreationn() { + let nameInput = inputName.current.value + let budgetInput = inputBudget.current.value + console.log(nameInput, budgetInput) + await create('123', nameInput, budgetInput) + } + return ( <> {wallet.account !== null ? ( @@ -81,11 +88,23 @@ function Import() { style={{ marginTop: '4rem' }} /> - + - + - diff --git a/src/components/Disputes/ProjectCreation.js b/src/components/Disputes/ProjectCreation.js new file mode 100644 index 0000000..26c8439 --- /dev/null +++ b/src/components/Disputes/ProjectCreation.js @@ -0,0 +1,10 @@ +/* eslint-disable */ +import { useProjectCreationActions } from '../../hooks/useProjectCreation' + +export function handleProjectCreation() { + // useProjectCreationActions(id, name, budget) +} + +///// + +///// diff --git a/src/contracts/AddressUtils.json b/src/contracts/AddressUtils.json new file mode 100644 index 0000000..d928452 --- /dev/null +++ b/src/contracts/AddressUtils.json @@ -0,0 +1,21183 @@ +{ + "contractName": "AddressUtils", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{},\"notice\":\"Utility library of inline functions on addresses\\r\"}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":\"AddressUtils\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":{\"keccak256\":\"0x4dd046a190602871aa9743a94149789c1e14b14f609c68d0f34d72e19bd690ce\",\"urls\":[\"bzzr://ea591dfb88f3591fe4344b7e665024c5aa3e8fb758a0409db79b1885a996b825\",\"dweb:/ipfs/QmXrwJ2TTXMWHBQxuLCqrj96gfh5HCHK57JsCEcXJ84t6z\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", + "bytecode": "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a7230582022c4d302cceb7dddfd281b7f1d557b59ec6b4c9388851d940b332a6c529d3d0c64736f6c63430005090032", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a7230582022c4d302cceb7dddfd281b7f1d557b59ec6b4c9388851d940b332a6c529d3d0c64736f6c63430005090032", + "sourceMap": "1590:951:8:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", + "deployedSourceMap": "1590:951:8:-;;;;;;;;", + "source": "pragma solidity >=0.5.0 < 0.6.0;\r\nimport '../../dao/oz/SafeMath.sol';\r\n\r\n/**\r\n * @title SafeMath\r\n * @dev Math operations with safety checks that throw on error\r\n */\r\n//library SafeMath {\r\n//\r\n// /**\r\n// * @dev Multiplies two numbers, throws on overflow.\r\n// */\r\n// function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// // Gas optimization: this is cheaper than asserting 'a' not being zero, but the\r\n// // benefit is lost if 'b' is also tested.\r\n// // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\r\n// if (a == 0) {\r\n// return 0;\r\n// }\r\n//\r\n// c = a * b;\r\n// assert(c / a == b);\r\n// return c;\r\n// }\r\n//\r\n// /**\r\n// * @dev Integer division of two numbers, truncating the quotient.\r\n// */\r\n// function div(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// // assert(b > 0); // Solidity automatically throws when dividing by 0\r\n// // uint256 c = a / b;\r\n// // assert(a == b * c + a % b); // There is no case in which this doesn't hold\r\n// return a / b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).\r\n// */\r\n// function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// assert(b <= a);\r\n// return a - b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Adds two numbers, throws on overflow.\r\n// */\r\n// function add(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// c = a + b;\r\n// assert(c >= a);\r\n// return c;\r\n// }\r\n//}\r\n\r\n/**\r\n * Utility library of inline functions on addresses\r\n */\r\nlibrary AddressUtils {\r\n\r\n /**\r\n * Returns whether the target address is a contract\r\n * @dev This function will return false if invoked during the constructor of a contract,\r\n * as the code is not actually created until after the constructor finishes.\r\n * @param addr address to check\r\n * @return whether the target address is a contract\r\n */\r\n function isContract(address addr) internal view returns (bool) {\r\n uint256 size;\r\n // XXX Currently there is no better way to check if there is a contract in an address\r\n // than to check the size of the code at that address.\r\n // See https://ethereum.stackexchange.com/a/14016/36603\r\n // for more details about how this works.\r\n // TODO Check this again before the Serenity release, because all addresses will be\r\n // contracts then.\r\n // solium-disable-next-line security/no-inline-assembly\r\n assembly { size := extcodesize(addr) }\r\n return size > 0;\r\n }\r\n\r\n}\r\n\r\n/**\r\n * @title ERC165\r\n * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r\n */\r\ninterface ERC165 {\r\n\r\n /**\r\n * @notice Query if a contract implements an interface\r\n * @param _interfaceId The interface identifier, as specified in ERC-165\r\n * @dev Interface identification is specified in ERC-165. This function\r\n * uses less than 30,000 gas.\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool);\r\n}\r\n\r\n\r\n/**\r\n * @title SupportsInterfaceWithLookup\r\n * @author Matt Condon (@shrugs)\r\n * @dev Implements ERC165 using a lookup table.\r\n */\r\ncontract SupportsInterfaceWithLookup is ERC165 {\r\n bytes4 public constant InterfaceId_ERC165 = 0x01ffc9a7;\r\n /**\r\n * 0x01ffc9a7 ===\r\n * bytes4(keccak256('supportsInterface(bytes4)'))\r\n */\r\n\r\n /**\r\n * @dev a mapping of interface id to whether or not it's supported\r\n */\r\n mapping(bytes4 => bool) internal supportedInterfaces;\r\n\r\n /**\r\n * @dev A contract implementing SupportsInterfaceWithLookup\r\n * implement ERC165 itself\r\n */\r\n constructor()\r\n public\r\n {\r\n _registerInterface(InterfaceId_ERC165);\r\n }\r\n\r\n /**\r\n * @dev implement supportsInterface(bytes4) using a lookup table\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool)\r\n {\r\n return supportedInterfaces[_interfaceId];\r\n }\r\n\r\n /**\r\n * @dev private method for registering an interface\r\n */\r\n function _registerInterface(bytes4 _interfaceId)\r\n internal\r\n {\r\n require(_interfaceId != 0xffffffff);\r\n supportedInterfaces[_interfaceId] = true;\r\n }\r\n}\r\n\r\n/**\r\n * @title ERC721 token receiver interface\r\n * @dev Interface for any contract that wants to support safeTransfers\r\n * from ERC721 asset contracts.\r\n */\r\ncontract ERC721Receiver {\r\n /**\r\n * @dev Magic value to be returned upon successful reception of an NFT\r\n * Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`,\r\n * which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n */\r\n bytes4 internal constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n /**\r\n * @notice Handle the receipt of an NFT\r\n * @dev The ERC721 smart contract calls this function on the recipient\r\n * after a `safetransfer`. This function MAY throw to revert and reject the\r\n * transfer. This function MUST use 50,000 gas or less. Return of other\r\n * than the magic value MUST result in the transaction being reverted.\r\n * Note: the contract address is always the message sender.\r\n * @param _from The sending address\r\n * @param _tokenId The NFT identifier which is being transfered\r\n * @param _data Additional data with no specified format\r\n * @return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n */\r\n function onERC721Received(\r\n address _from,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n returns(bytes4);\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic interface\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721Basic is ERC165 {\r\n event Transfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n );\r\n event Approval(\r\n address _owner,\r\n address _approved,\r\n uint256 _tokenId\r\n );\r\n event ApprovalForAll(\r\n address _owner,\r\n address _operator,\r\n bool _approved\r\n );\r\n\r\n function balanceOf(address _owner) public view returns (uint256 _balance);\r\n function ownerOf(uint256 _tokenId) public view returns (address _owner);\r\n function exists(uint256 _tokenId) public view returns (bool _exists);\r\n\r\n function approve(address _to, uint256 _tokenId) public;\r\n function getApproved(uint256 _tokenId)\r\n public view returns (address _operator);\r\n\r\n function setApprovalForAll(address _operator, bool _approved) public;\r\n function isApprovedForAll(address _owner, address _operator)\r\n public view returns (bool);\r\n\r\n function transferFrom(address _from, address _to, uint256 _tokenId) public;\r\n function safeTransferFrom(address _from, address _to, uint256 _tokenId)\r\n public;\r\n\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public;\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic implementation\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721BasicToken is SupportsInterfaceWithLookup, ERC721Basic {\r\n\r\n bytes4 private constant InterfaceId_ERC721 = 0x80ac58cd;\r\n /*\r\n * 0x80ac58cd ===\r\n * bytes4(keccak256('balanceOf(address)')) ^\r\n * bytes4(keccak256('ownerOf(uint256)')) ^\r\n * bytes4(keccak256('approve(address,uint256)')) ^\r\n * bytes4(keccak256('getApproved(uint256)')) ^\r\n * bytes4(keccak256('setApprovalForAll(address,bool)')) ^\r\n * bytes4(keccak256('isApprovedForAll(address,address)')) ^\r\n * bytes4(keccak256('transferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)'))\r\n */\r\n\r\n bytes4 private constant InterfaceId_ERC721Exists = 0x4f558e79;\r\n /*\r\n * 0x4f558e79 ===\r\n * bytes4(keccak256('exists(uint256)'))\r\n */\r\n\r\n using SafeMath for uint256;\r\n using AddressUtils for address;\r\n\r\n // Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n // which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n bytes4 private constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n // Mapping from token ID to owner\r\n mapping (uint256 => address) internal tokenOwner;\r\n\r\n // Mapping from token ID to approved address\r\n mapping (uint256 => address) internal tokenApprovals;\r\n\r\n // Mapping from owner to number of owned token\r\n mapping (address => uint256) internal ownedTokensCount;\r\n\r\n // Mapping from owner to operator approvals\r\n mapping (address => mapping (address => bool)) internal operatorApprovals;\r\n\r\n\r\n uint public testint;\r\n /**\r\n * @dev Guarantees msg.sender is owner of the given token\r\n * @param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r\n */\r\n modifier onlyOwnerOf(uint256 _tokenId) {\r\n require(ownerOf(_tokenId) == msg.sender);\r\n _;\r\n }\r\n\r\n /**\r\n * @dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n * @param _tokenId uint256 ID of the token to validate\r\n */\r\n modifier canTransfer(uint256 _tokenId) {\r\n require(isApprovedOrOwner(msg.sender, _tokenId));\r\n _;\r\n }\r\n\r\n constructor()\r\n public\r\n {\r\n // register the supported interfaces to conform to ERC721 via ERC165\r\n _registerInterface(InterfaceId_ERC721);\r\n _registerInterface(InterfaceId_ERC721Exists);\r\n }\r\n\r\n /**\r\n * @dev Gets the balance of the specified address\r\n * @param _owner address to query the balance of\r\n * @return uint256 representing the amount owned by the passed address\r\n */\r\n function balanceOf(address _owner) public view returns (uint256) {\r\n require(_owner != address(0));\r\n return ownedTokensCount[_owner];\r\n }\r\n\r\n /**\r\n * @dev Gets the owner of the specified token ID\r\n * @param _tokenId uint256 ID of the token to query the owner of\r\n * @return owner address currently marked as the owner of the given token ID\r\n */\r\n function ownerOf(uint256 _tokenId) public view returns (address) {\r\n address owner = tokenOwner[_tokenId];\r\n require(owner != address(0));\r\n return owner;\r\n }\r\n\r\n /**\r\n * @dev Returns whether the specified token exists\r\n * @param _tokenId uint256 ID of the token to query the existence of\r\n * @return whether the token exists\r\n */\r\n function exists(uint256 _tokenId) public view returns (bool) {\r\n address owner = tokenOwner[_tokenId];\r\n return owner != address(0);\r\n }\r\n\r\n /**\r\n * @dev Approves another address to transfer the given token ID\r\n * The zero address indicates there is no approved address.\r\n * There can only be one approved address per token at a given time.\r\n * Can only be called by the token owner or an approved operator.\r\n * @param _to address to be approved for the given token ID\r\n * @param _tokenId uint256 ID of the token to be approved\r\n */\r\n function approve(address _to, uint256 _tokenId) public {\r\n address owner = ownerOf(_tokenId);\r\n require(_to != owner);\r\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender));\r\n\r\n tokenApprovals[_tokenId] = _to;\r\n emit Approval(owner, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Gets the approved address for a token ID, or zero if no address set\r\n * @param _tokenId uint256 ID of the token to query the approval of\r\n * @return address currently approved for the given token ID\r\n */\r\n function getApproved(uint256 _tokenId) public view returns (address) {\r\n return tokenApprovals[_tokenId];\r\n }\r\n\r\n /**\r\n * @dev Sets or unsets the approval of a given operator\r\n * An operator is allowed to transfer all tokens of the sender on their behalf\r\n * @param _to operator address to set the approval\r\n * @param _approved representing the status of the approval to be set\r\n */\r\n function setApprovalForAll(address _to, bool _approved) public {\r\n require(_to != msg.sender);\r\n operatorApprovals[msg.sender][_to] = _approved;\r\n emit ApprovalForAll(msg.sender, _to, _approved);\r\n }\r\n\r\n /**\r\n * @dev Tells whether an operator is approved by a given owner\r\n * @param _owner owner address which you want to query the approval of\r\n * @param _operator operator address which you want to query the approval of\r\n * @return bool whether the given operator is approved by the given owner\r\n */\r\n function isApprovedForAll(\r\n address _owner,\r\n address _operator\r\n )\r\n public\r\n view\r\n returns (bool)\r\n {\r\n return operatorApprovals[_owner][_operator];\r\n }\r\n\r\n /**\r\n * @dev Transfers the ownership of a given token ID to another address\r\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function transferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n require(_from != address(0));\r\n require(_to != address(0));\r\n\r\n clearApproval(_from, _tokenId);\r\n removeTokenFrom(_from, _tokenId);\r\n addTokenTo(_to, _tokenId);\r\n\r\n emit Transfer(_from, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n *\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n // solium-disable-next-line arg-overflow\r\n safeTransferFrom(_from, _to, _tokenId, \"\");\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes data to send along with a safe transfer check\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n transferFrom(_from, _to, _tokenId);\r\n // solium-disable-next-line arg-overflow\r\n require(checkAndCallSafeTransfer(_from, _to, _tokenId, _data));\r\n }\r\n\r\n /**\r\n * @dev Returns whether the given spender can transfer a given token ID\r\n * @param _spender address of the spender to query\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @return bool whether the msg.sender is approved for the given token ID,\r\n * is an operator of the owner, or is the owner of the token\r\n */\r\n function isApprovedOrOwner(\r\n address _spender,\r\n uint256 _tokenId\r\n )\r\n internal\r\n view\r\n returns (bool)\r\n {\r\n address owner = ownerOf(_tokenId);\r\n // Disable solium check because of\r\n // https://github.com/duaraghav8/Solium/issues/175\r\n // solium-disable-next-line operator-whitespace\r\n return (\r\n _spender == owner ||\r\n getApproved(_tokenId) == _spender ||\r\n isApprovedForAll(owner, _spender)\r\n );\r\n }\r\n\r\n /**\r\n * @dev Internal function to mint a new token\r\n * Reverts if the given token ID already exists\r\n * @param _to The address that will own the minted token\r\n * @param _tokenId uint256 ID of the token to be minted by the msg.sender\r\n */\r\n function _mint(address _to, uint256 _tokenId) internal {\r\n require(_to != address(0));\r\n addTokenTo(_to, _tokenId);\r\n emit Transfer(address(0), _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to burn a specific token\r\n * Reverts if the token does not exist\r\n * @param _tokenId uint256 ID of the token being burned by the msg.sender\r\n */\r\n function _burn(address _owner, uint256 _tokenId) internal {\r\n clearApproval(_owner, _tokenId);\r\n removeTokenFrom(_owner, _tokenId);\r\n emit Transfer(_owner, address(0), _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to clear current approval of a given token ID\r\n * Reverts if the given address is not indeed the owner of the token\r\n * @param _owner owner of the token\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function clearApproval(address _owner, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _owner);\r\n if (tokenApprovals[_tokenId] != address(0)) {\r\n tokenApprovals[_tokenId] = address(0);\r\n }\r\n }\r\n\r\n /**\r\n * @dev Internal function to add a token ID to the list of a given address\r\n * @param _to address representing the new owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r\n */\r\n function addTokenTo(address _to, uint256 _tokenId) internal {\r\n require(tokenOwner[_tokenId] == address(0));\r\n tokenOwner[_tokenId] = _to;\r\n ownedTokensCount[_to] = ownedTokensCount[_to].add(1);\r\n }\r\n\r\n /**\r\n * @dev Internal function to remove a token ID from the list of a given address\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r\n */\r\n function removeTokenFrom(address _from, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _from);\r\n ownedTokensCount[_from] = ownedTokensCount[_from].sub(1);\r\n tokenOwner[_tokenId] = address(0);\r\n }\r\n\r\n /**\r\n * @dev Internal function to invoke `onERC721Received` on a target address\r\n * The call is not executed if the target address is not a contract\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _to target address that will receive the tokens\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes optional data to send along with the call\r\n * @return whether the call correctly returned the expected magic value\r\n */\r\n function checkAndCallSafeTransfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n internal\r\n returns (bool)\r\n {\r\n if (!_to.isContract()) {\r\n return true;\r\n }\r\n bytes4 retval = ERC721Receiver(_to).onERC721Received(\r\n _from, _tokenId, _data);\r\n return (retval == ERC721_RECEIVED);\r\n }\r\n}\r\n\r\ncontract ERC721BasicTokenMock is ERC721BasicToken {\r\n function mint(address _to, uint256 _tokenId) public {\r\n super._mint(_to, _tokenId);\r\n }\r\n\r\n function burn(uint256 _tokenId) public {\r\n super._burn(ownerOf(_tokenId), _tokenId);\r\n }\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\inherited\\ERC721Basic.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", + "exportedSymbols": { + "AddressUtils": [ + 5009 + ], + "ERC165": [ + 5017 + ], + "ERC721Basic": [ + 5187 + ], + "ERC721BasicToken": [ + 5764 + ], + "ERC721BasicTokenMock": [ + 5797 + ], + "ERC721Receiver": [ + 5080 + ], + "SupportsInterfaceWithLookup": [ + 5065 + ] + }, + "id": 5798, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4991, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:8" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "../../dao/oz/SafeMath.sol", + "id": 4992, + "nodeType": "ImportDirective", + "scope": 5798, + "sourceUnit": 9858, + "src": "34:35:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "Utility library of inline functions on addresses\r", + "fullyImplemented": true, + "id": 5009, + "linearizedBaseContracts": [ + 5009 + ], + "name": "AddressUtils", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5007, + "nodeType": "Block", + "src": "2012:524:8", + "statements": [ + { + "assignments": [ + 5000 + ], + "declarations": [ + { + "constant": false, + "id": 5000, + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 5007, + "src": "2019:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2019:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5001, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "2019:12:8" + }, + { + "externalReferences": [ + { + "size": { + "declaration": 5000, + "isOffset": false, + "isSlot": false, + "src": "2482:4:8", + "valueSize": 1 + } + }, + { + "addr": { + "declaration": 4994, + "isOffset": false, + "isSlot": false, + "src": "2502:4:8", + "valueSize": 1 + } + } + ], + "id": 5002, + "nodeType": "InlineAssembly", + "operations": "{ size := extcodesize(addr) }", + "src": "2471:38:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5003, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5000, + "src": "2522:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5004, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2529:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2522:8:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4998, + "id": 5006, + "nodeType": "Return", + "src": "2515:15:8" + } + ] + }, + "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", + "id": 5008, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4994, + "name": "addr", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "1969:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1969:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1968:14:8" + }, + "returnParameters": { + "id": 4998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4997, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "2006:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4996, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2006:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2005:6:8" + }, + "scope": 5009, + "src": "1949:587:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "1590:951:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", + "fullyImplemented": false, + "id": 5017, + "linearizedBaseContracts": [ + 5017 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", + "id": 5016, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5012, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5011, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "2950:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5010, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2950:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2949:21:8" + }, + "returnParameters": { + "id": 5015, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5014, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "3009:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5013, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3009:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3008:6:8" + }, + "scope": 5017, + "src": "2923:92:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 5798, + "src": "2643:375:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5018, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "3196:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5019, + "nodeType": "InheritanceSpecifier", + "src": "3196:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", + "fullyImplemented": true, + "id": 5065, + "linearizedBaseContracts": [ + 5065, + 5017 + ], + "name": "SupportsInterfaceWithLookup", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5022, + "name": "InterfaceId_ERC165", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3208:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5020, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3208:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783031666663396137", + "id": 5021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3252:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 5026, + "name": "supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3443:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 5025, + "keyType": { + "id": 5023, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3451:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "3443:23:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 5024, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3461:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 5033, + "nodeType": "Block", + "src": "3638:51:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5030, + "name": "InterfaceId_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5022, + "src": "3664:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5029, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "3645:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3645:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5032, + "nodeType": "ExpressionStatement", + "src": "3645:38:8" + } + ] + }, + "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", + "id": 5034, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5027, + "nodeType": "ParameterList", + "parameters": [], + "src": "3620:2:8" + }, + "returnParameters": { + "id": 5028, + "nodeType": "ParameterList", + "parameters": [], + "src": "3638:0:8" + }, + "scope": 5065, + "src": "3609:80:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5045, + "nodeType": "Block", + "src": "3872:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5041, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "3886:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5043, + "indexExpression": { + "argumentTypes": null, + "id": 5042, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5036, + "src": "3906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3886:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5040, + "id": 5044, + "nodeType": "Return", + "src": "3879:40:8" + } + ] + }, + "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", + "id": 5046, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5037, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5036, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3804:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5035, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3804:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3803:21:8" + }, + "returnParameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5039, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3863:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5038, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3863:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3862:6:8" + }, + "scope": 5065, + "src": "3777:148:8", + "stateMutability": "view", + "superFunction": 5016, + "visibility": "external" + }, + { + "body": { + "id": 5063, + "nodeType": "Block", + "src": "4066:95:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5052, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4081:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30786666666666666666", + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4097:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "4081:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5051, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4073:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4073:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5056, + "nodeType": "ExpressionStatement", + "src": "4073:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5057, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "4115:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5059, + "indexExpression": { + "argumentTypes": null, + "id": 5058, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4135:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4115:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4151:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4115:40:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5062, + "nodeType": "ExpressionStatement", + "src": "4115:40:8" + } + ] + }, + "documentation": "@dev private method for registering an interface\r", + "id": 5064, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5048, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5064, + "src": "4028:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5047, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4028:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4027:21:8" + }, + "returnParameters": { + "id": 5050, + "nodeType": "ParameterList", + "parameters": [], + "src": "4066:0:8" + }, + "scope": 5065, + "src": "4000:161:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "3156:1008:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", + "fullyImplemented": false, + "id": 5080, + "linearizedBaseContracts": [ + 5080 + ], + "name": "ERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5068, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5080, + "src": "4607:53:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5066, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4607:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4650:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "internal" + }, + { + "body": null, + "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", + "id": 5079, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5070, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5364:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5069, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5364:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5072, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5384:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5384:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5074, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5407:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5073, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5407:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5357:73:8" + }, + "returnParameters": { + "id": 5078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5077, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5456:6:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5076, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "5456:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5455:8:8" + }, + "scope": 5080, + "src": "5332:132:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "4326:1141:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5081, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "5641:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5082, + "nodeType": "InheritanceSpecifier", + "src": "5641:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": false, + "id": 5187, + "linearizedBaseContracts": [ + 5187, + 5017 + ], + "name": "ERC721Basic", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5090, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5084, + "indexed": false, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5674:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5083, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5674:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5086, + "indexed": false, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5695:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5695:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5088, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5714:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5087, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5714:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5667:69:8" + }, + "src": "5653:84:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5098, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5092, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5762:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5091, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5762:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5094, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5784:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5784:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5096, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5809:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5809:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5755:76:8" + }, + "src": "5741:91:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5106, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 5105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5100, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5863:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5099, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5863:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5102, + "indexed": false, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5885:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5101, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5885:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5104, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5910:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5103, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5910:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5856:73:8" + }, + "src": "5836:94:8" + }, + { + "body": null, + "documentation": null, + "id": 5113, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5109, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5108, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5955:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5955:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5954:16:8" + }, + "returnParameters": { + "id": 5112, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5111, + "name": "_balance", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5992:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5110, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5992:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5991:18:8" + }, + "scope": 5187, + "src": "5936:74:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5120, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5115, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6031:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6030:18:8" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5118, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6070:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6070:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6069:16:8" + }, + "scope": 5187, + "src": "6014:72:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5127, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5122, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6106:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5121, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6106:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6105:18:8" + }, + "returnParameters": { + "id": 5126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5125, + "name": "_exists", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6145:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5124, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6145:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6144:14:8" + }, + "scope": 5187, + "src": "6090:69:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5134, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5129, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6182:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6182:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5131, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6195:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6195:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6181:31:8" + }, + "returnParameters": { + "id": 5133, + "nodeType": "ParameterList", + "parameters": [], + "src": "6219:0:8" + }, + "scope": 5187, + "src": "6165:55:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5141, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5136, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6245:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6245:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6244:18:8" + }, + "returnParameters": { + "id": 5140, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5139, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6289:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6289:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6288:19:8" + }, + "scope": 5187, + "src": "6224:84:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5148, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5143, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6341:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6341:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5145, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6360:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5144, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6360:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6340:35:8" + }, + "returnParameters": { + "id": 5147, + "nodeType": "ParameterList", + "parameters": [], + "src": "6382:0:8" + }, + "scope": 5187, + "src": "6314:69:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5157, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5153, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5150, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6413:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5149, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6413:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5152, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6429:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5151, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6429:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6412:35:8" + }, + "returnParameters": { + "id": 5156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5155, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6474:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5154, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6474:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6473:6:8" + }, + "scope": 5187, + "src": "6387:93:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5166, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5164, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5159, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6508:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6508:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5161, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6523:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6523:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5163, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6536:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5162, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6536:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6507:46:8" + }, + "returnParameters": { + "id": 5165, + "nodeType": "ParameterList", + "parameters": [], + "src": "6560:0:8" + }, + "scope": 5187, + "src": "6486:75:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5175, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5173, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5168, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6591:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5167, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6591:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5170, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6606:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5169, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6606:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5172, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6619:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5171, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6619:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6590:46:8" + }, + "returnParameters": { + "id": 5174, + "nodeType": "ParameterList", + "parameters": [], + "src": "6648:0:8" + }, + "scope": 5187, + "src": "6565:84:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5186, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5184, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5177, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6687:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5176, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6687:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5179, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6707:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5178, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6707:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5181, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6725:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5180, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6725:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5183, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6748:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5182, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6748:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6680:91:8" + }, + "returnParameters": { + "id": 5185, + "nodeType": "ParameterList", + "parameters": [], + "src": "6783:0:8" + }, + "scope": 5187, + "src": "6655:129:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "5617:1170:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5188, + "name": "SupportsInterfaceWithLookup", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5065, + "src": "6971:27:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", + "typeString": "contract SupportsInterfaceWithLookup" + } + }, + "id": 5189, + "nodeType": "InheritanceSpecifier", + "src": "6971:27:8" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5190, + "name": "ERC721Basic", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5187, + "src": "7000:11:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Basic_$5187", + "typeString": "contract ERC721Basic" + } + }, + "id": 5191, + "nodeType": "InheritanceSpecifier", + "src": "7000:11:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": true, + "id": 5764, + "linearizedBaseContracts": [ + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5194, + "name": "InterfaceId_ERC721", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7019:55:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5192, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7019:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783830616335386364", + "id": 5193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7064:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 5197, + "name": "InterfaceId_ERC721Exists", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7668:61:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5195, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7668:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783466353538653739", + "id": 5196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7719:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1331007097_by_1", + "typeString": "int_const 1331007097" + }, + "value": "0x4f558e79" + }, + "visibility": "private" + }, + { + "id": 5200, + "libraryName": { + "contractScope": null, + "id": 5198, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "7821:8:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "7815:27:8", + "typeName": { + "id": 5199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7834:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5203, + "libraryName": { + "contractScope": null, + "id": 5201, + "name": "AddressUtils", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5009, + "src": "7852:12:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddressUtils_$5009", + "typeString": "library AddressUtils" + } + }, + "nodeType": "UsingForDirective", + "src": "7846:31:8", + "typeName": { + "id": 5202, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7869:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "constant": true, + "id": 5206, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8044:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5204, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8044:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8086:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 5210, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8140:48:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5209, + "keyType": { + "id": 5207, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8149:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8140:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5208, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8160:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5214, + "name": "tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8243:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5213, + "keyType": { + "id": 5211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8252:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8243:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8263:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5218, + "name": "ownedTokensCount", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8352:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5217, + "keyType": { + "id": 5215, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8361:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8352:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8372:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5224, + "name": "operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8460:73:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 5223, + "keyType": { + "id": 5219, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8469:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8460:46:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 5222, + "keyType": { + "id": 5220, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8489:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8480:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 5221, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8500:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5226, + "name": "testint", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8542:19:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5225, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 5240, + "nodeType": "Block", + "src": "8774:61:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5232, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5228, + "src": "8797:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5231, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "8789:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8789:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5234, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "8810:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8810:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8789:31:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5230, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "8781:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8781:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5238, + "nodeType": "ExpressionStatement", + "src": "8781:40:8" + }, + { + "id": 5239, + "nodeType": "PlaceholderStatement", + "src": "8828:1:8" + } + ] + }, + "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", + "id": 5241, + "name": "onlyOwnerOf", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5228, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5241, + "src": "8756:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5227, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8756:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8755:18:8" + }, + "src": "8735:100:8", + "visibility": "internal" + }, + { + "body": { + "id": 5254, + "nodeType": "Block", + "src": "9041:69:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5247, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "9074:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9074:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5249, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5243, + "src": "9086:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5246, + "name": "isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5567, + "src": "9056:17:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 5250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9056:39:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5245, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9048:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9048:48:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5252, + "nodeType": "ExpressionStatement", + "src": "9048:48:8" + }, + { + "id": 5253, + "nodeType": "PlaceholderStatement", + "src": "9103:1:8" + } + ] + }, + "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", + "id": 5255, + "name": "canTransfer", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5244, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5243, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5255, + "src": "9023:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5242, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9022:18:8" + }, + "src": "9002:108:8", + "visibility": "internal" + }, + { + "body": { + "id": 5266, + "nodeType": "Block", + "src": "9145:176:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5259, + "name": "InterfaceId_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "9245:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5258, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9226:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9226:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5261, + "nodeType": "ExpressionStatement", + "src": "9226:38:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5263, + "name": "InterfaceId_ERC721Exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5197, + "src": "9290:24:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5262, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9271:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9271:44:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5265, + "nodeType": "ExpressionStatement", + "src": "9271:44:8" + } + ] + }, + "documentation": null, + "id": 5267, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5256, + "nodeType": "ParameterList", + "parameters": [], + "src": "9127:2:8" + }, + "returnParameters": { + "id": 5257, + "nodeType": "ParameterList", + "parameters": [], + "src": "9145:0:8" + }, + "scope": 5764, + "src": "9116:205:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5286, + "nodeType": "Block", + "src": "9585:80:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5275, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9600:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5277, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9618:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9610:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9610:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "9600:20:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5274, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9592:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9592:29:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5281, + "nodeType": "ExpressionStatement", + "src": "9592:29:8" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5282, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "9635:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5284, + "indexExpression": { + "argumentTypes": null, + "id": 5283, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9652:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9635:24:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5273, + "id": 5285, + "nodeType": "Return", + "src": "9628:31:8" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", + "id": 5287, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5269, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9539:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9539:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9538:16:8" + }, + "returnParameters": { + "id": 5273, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5272, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9576:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5271, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9576:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9575:9:8" + }, + "scope": 5764, + "src": "9520:145:8", + "stateMutability": "view", + "superFunction": 5113, + "visibility": "public" + }, + { + "body": { + "id": 5310, + "nodeType": "Block", + "src": "9950:103:8", + "statements": [ + { + "assignments": [ + 5295 + ], + "declarations": [ + { + "constant": false, + "id": 5295, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5310, + "src": "9957:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5294, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9957:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5299, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5296, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "9973:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5298, + "indexExpression": { + "argumentTypes": null, + "id": 5297, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5289, + "src": "9984:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9973:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9957:36:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5301, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10008:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10025:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10017:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10017:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10008:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5300, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10000:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5307, + "nodeType": "ExpressionStatement", + "src": "10000:28:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5308, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10042:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5293, + "id": 5309, + "nodeType": "Return", + "src": "10035:12:8" + } + ] + }, + "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", + "id": 5311, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5289, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9902:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9902:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9901:18:8" + }, + "returnParameters": { + "id": 5293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5292, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9941:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9941:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9940:9:8" + }, + "scope": 5764, + "src": "9885:168:8", + "stateMutability": "view", + "superFunction": 5120, + "visibility": "public" + }, + { + "body": { + "id": 5330, + "nodeType": "Block", + "src": "10299:82:8", + "statements": [ + { + "assignments": [ + 5319 + ], + "declarations": [ + { + "constant": false, + "id": 5319, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5330, + "src": "10306:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5318, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10306:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5323, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5320, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "10322:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5322, + "indexExpression": { + "argumentTypes": null, + "id": 5321, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5313, + "src": "10333:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10322:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10306:36:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5324, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5319, + "src": "10356:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10373:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10365:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10365:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10356:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5317, + "id": 5329, + "nodeType": "Return", + "src": "10349:26:8" + } + ] + }, + "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", + "id": 5331, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5313, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10254:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10254:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10253:18:8" + }, + "returnParameters": { + "id": 5317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5316, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10293:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5315, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10293:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10292:6:8" + }, + "scope": 5764, + "src": "10238:143:8", + "stateMutability": "view", + "superFunction": 5127, + "visibility": "public" + }, + { + "body": { + "id": 5375, + "nodeType": "Block", + "src": "10851:229:8", + "statements": [ + { + "assignments": [ + 5339 + ], + "declarations": [ + { + "constant": false, + "id": 5339, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5375, + "src": "10858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5343, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5341, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "10882:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5340, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "10874:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10874:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10858:33:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5345, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "10906:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 5346, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10913:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5344, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10898:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10898:21:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5349, + "nodeType": "ExpressionStatement", + "src": "10898:21:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5351, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10934:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10934:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5353, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10948:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10934:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5356, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10974:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5357, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10981:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10981:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 5355, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "10957:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10957:35:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10934:58:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5350, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10926:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10926:67:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5362, + "nodeType": "ExpressionStatement", + "src": "10926:67:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5363, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11002:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5365, + "indexExpression": { + "argumentTypes": null, + "id": 5364, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11017:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11002:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5366, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11029:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11002:30:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5368, + "nodeType": "ExpressionStatement", + "src": "11002:30:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5370, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "11053:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5371, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11060:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5372, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11065:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5369, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5098, + "src": "11044:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11044:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5374, + "nodeType": "EmitStatement", + "src": "11039:35:8" + } + ] + }, + "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", + "id": 5376, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5336, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5333, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10813:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10813:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5335, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10826:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5334, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10826:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10812:31:8" + }, + "returnParameters": { + "id": 5337, + "nodeType": "ParameterList", + "parameters": [], + "src": "10851:0:8" + }, + "scope": 5764, + "src": "10796:284:8", + "stateMutability": "nonpayable", + "superFunction": 5134, + "visibility": "public" + }, + { + "body": { + "id": 5387, + "nodeType": "Block", + "src": "11383:44:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5383, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11397:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5385, + "indexExpression": { + "argumentTypes": null, + "id": 5384, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5378, + "src": "11412:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11397:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5382, + "id": 5386, + "nodeType": "Return", + "src": "11390:31:8" + } + ] + }, + "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", + "id": 5388, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5378, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11335:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5377, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11335:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11334:18:8" + }, + "returnParameters": { + "id": 5382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5381, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11374:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11374:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11373:9:8" + }, + "scope": 5764, + "src": "11314:113:8", + "stateMutability": "view", + "superFunction": 5141, + "visibility": "public" + }, + { + "body": { + "id": 5418, + "nodeType": "Block", + "src": "11778:146:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5396, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11793:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5397, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11800:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11800:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "11793:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5395, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "11785:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11785:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "11785:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5402, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "11818:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5406, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5403, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11836:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11836:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11818:29:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5407, + "indexExpression": { + "argumentTypes": null, + "id": 5405, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11848:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11818:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11855:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11818:46:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5410, + "nodeType": "ExpressionStatement", + "src": "11818:46:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5412, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11891:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11891:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5414, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11903:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5415, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11908:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5411, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5106, + "src": "11876:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 5416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11876:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5417, + "nodeType": "EmitStatement", + "src": "11871:47:8" + } + ] + }, + "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", + "id": 5419, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5390, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11742:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11742:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5392, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11755:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11755:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11741:29:8" + }, + "returnParameters": { + "id": 5394, + "nodeType": "ParameterList", + "parameters": [], + "src": "11778:0:8" + }, + "scope": 5764, + "src": "11715:209:8", + "stateMutability": "nonpayable", + "superFunction": 5148, + "visibility": "public" + }, + { + "body": { + "id": 5434, + "nodeType": "Block", + "src": "12362:56:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5428, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "12376:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5430, + "indexExpression": { + "argumentTypes": null, + "id": 5429, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5421, + "src": "12394:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5432, + "indexExpression": { + "argumentTypes": null, + "id": 5431, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "12402:9:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:36:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5427, + "id": 5433, + "nodeType": "Return", + "src": "12369:43:8" + } + ] + }, + "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", + "id": 5435, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5421, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12273:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5420, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12273:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5423, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12294:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5422, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12294:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12266:50:8" + }, + "returnParameters": { + "id": 5427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5426, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12353:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5425, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12353:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12352:6:8" + }, + "scope": 5764, + "src": "12241:177:8", + "stateMutability": "view", + "superFunction": 5157, + "visibility": "public" + }, + { + "body": { + "id": 5484, + "nodeType": "Block", + "src": "12976:228:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5448, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "12991:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13008:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13000:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "12991:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5447, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "12983:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12983:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5454, + "nodeType": "ExpressionStatement", + "src": "12983:28:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5456, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13026:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13041:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13033:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13033:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13026:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5455, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "13018:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13018:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5462, + "nodeType": "ExpressionStatement", + "src": "13018:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5464, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13067:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5465, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13074:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5463, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "13053:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13053:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5467, + "nodeType": "ExpressionStatement", + "src": "13053:30:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5469, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13106:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5470, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13113:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5468, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "13090:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13090:32:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5472, + "nodeType": "ExpressionStatement", + "src": "13090:32:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5474, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13140:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5475, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13145:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5473, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "13129:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13129:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5477, + "nodeType": "ExpressionStatement", + "src": "13129:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5479, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13177:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5480, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13184:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5481, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13189:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5478, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "13168:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13168:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5483, + "nodeType": "EmitStatement", + "src": "13163:35:8" + } + ] + }, + "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5485, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5444, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "12963:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5445, + "modifierName": { + "argumentTypes": null, + "id": 5443, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "12951:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12951:21:8" + } + ], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5442, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5437, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12874:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5436, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12874:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5439, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12894:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12894:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5441, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12912:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5440, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12912:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12867:66:8" + }, + "returnParameters": { + "id": 5446, + "nodeType": "ParameterList", + "parameters": [], + "src": "12976:0:8" + }, + "scope": 5764, + "src": "12846:358:8", + "stateMutability": "nonpayable", + "superFunction": 5166, + "visibility": "public" + }, + { + "body": { + "id": 5504, + "nodeType": "Block", + "src": "13960:101:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5498, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5487, + "src": "14030:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5499, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5489, + "src": "14037:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5500, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "14042:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 5501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14052:2:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 5497, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5505, + 5535 + ], + "referencedDeclaration": 5535, + "src": "14013:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 5502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14013:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5503, + "nodeType": "ExpressionStatement", + "src": "14013:42:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5505, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5494, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "13947:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5495, + "modifierName": { + "argumentTypes": null, + "id": 5493, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "13935:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "13935:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5487, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5486, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5489, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13878:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13878:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5491, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13896:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13896:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13851:66:8" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [], + "src": "13960:0:8" + }, + "scope": 5764, + "src": "13826:235:8", + "stateMutability": "nonpayable", + "superFunction": 5175, + "visibility": "public" + }, + { + "body": { + "id": 5534, + "nodeType": "Block", + "src": "14908:162:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5520, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "14928:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5521, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "14935:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5522, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14940:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5519, + "name": "transferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5485 + ], + "referencedDeclaration": 5485, + "src": "14915:12:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14915:34:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5524, + "nodeType": "ExpressionStatement", + "src": "14915:34:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5527, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "15035:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5528, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "15042:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5529, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "15047:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5530, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5513, + "src": "15057:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5526, + "name": "checkAndCallSafeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5763, + "src": "15010:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 5531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15010:53:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5525, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "15002:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15002:62:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5533, + "nodeType": "ExpressionStatement", + "src": "15002:62:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", + "id": 5535, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5516, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14895:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5517, + "modifierName": { + "argumentTypes": null, + "id": 5515, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "14883:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "14883:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5514, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5507, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14781:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14781:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5509, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14801:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14801:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5511, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14819:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14819:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5513, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14842:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5512, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14842:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14774:91:8" + }, + "returnParameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [], + "src": "14908:0:8" + }, + "scope": 5764, + "src": "14749:321:8", + "stateMutability": "nonpayable", + "superFunction": 5186, + "visibility": "public" + }, + { + "body": { + "id": 5566, + "nodeType": "Block", + "src": "15551:330:8", + "statements": [ + { + "assignments": [ + 5545 + ], + "declarations": [ + { + "constant": false, + "id": 5545, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5566, + "src": "15558:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15558:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5549, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5547, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15582:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5546, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "15574:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15574:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15558:33:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5550, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15763:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5551, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15775:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15763:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5554, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15803:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5553, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5388 + ], + "referencedDeclaration": 5388, + "src": "15791:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15791:21:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5556, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15816:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15791:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:61:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5560, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15852:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5561, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15859:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5559, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "15835:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15835:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:105:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5564, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15754:121:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5543, + "id": 5565, + "nodeType": "Return", + "src": "15747:128:8" + } + ] + }, + "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", + "id": 5567, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5540, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5537, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15459:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5536, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15459:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5539, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15482:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5538, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15482:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15452:51:8" + }, + "returnParameters": { + "id": 5543, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5542, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15542:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5541, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15541:6:8" + }, + "scope": 5764, + "src": "15426:455:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5595, + "nodeType": "Block", + "src": "16193:118:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5575, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16208:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16223:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16215:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16215:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "16208:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5574, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "16200:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16200:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5581, + "nodeType": "ExpressionStatement", + "src": "16200:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5583, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16244:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5584, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16249:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5582, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "16233:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16233:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5586, + "nodeType": "ExpressionStatement", + "src": "16233:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16287:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16279:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16279:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5591, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16291:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5592, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16296:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5587, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16270:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16270:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5594, + "nodeType": "EmitStatement", + "src": "16265:40:8" + } + ] + }, + "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", + "id": 5596, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5569, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16153:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5568, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16153:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5571, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16166:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5570, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16166:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16152:31:8" + }, + "returnParameters": { + "id": 5573, + "nodeType": "ParameterList", + "parameters": [], + "src": "16193:0:8" + }, + "scope": 5764, + "src": "16138:173:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5621, + "nodeType": "Block", + "src": "16562:134:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5604, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16583:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5605, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16591:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5603, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "16569:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16569:31:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5607, + "nodeType": "ExpressionStatement", + "src": "16569:31:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5609, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16623:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5610, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16631:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5608, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "16607:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16607:33:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5612, + "nodeType": "ExpressionStatement", + "src": "16607:33:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5614, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16661:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16677:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16669:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16669:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5618, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16681:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5613, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16652:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16652:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5620, + "nodeType": "EmitStatement", + "src": "16647:43:8" + } + ] + }, + "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", + "id": 5622, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5598, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16519:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16519:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5600, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16535:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5599, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16535:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16518:34:8" + }, + "returnParameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [], + "src": "16562:0:8" + }, + "scope": 5764, + "src": "16504:192:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5654, + "nodeType": "Block", + "src": "17032:153:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5631, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17055:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5630, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "17047:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17047:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5633, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5624, + "src": "17068:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17047:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5629, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17039:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17039:36:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5636, + "nodeType": "ExpressionStatement", + "src": "17039:36:8" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5637, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17086:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5639, + "indexExpression": { + "argumentTypes": null, + "id": 5638, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17101:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17086:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17122:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17114:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17114:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17086:38:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5653, + "nodeType": "IfStatement", + "src": "17082:98:8", + "trueBody": { + "id": 5652, + "nodeType": "Block", + "src": "17126:54:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5644, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17135:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5646, + "indexExpression": { + "argumentTypes": null, + "id": 5645, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17150:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17135:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5648, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17170:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17162:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17162:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17135:37:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5651, + "nodeType": "ExpressionStatement", + "src": "17135:37:8" + } + ] + } + } + ] + }, + "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5655, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "clearApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5624, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "16989:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5623, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16989:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5626, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "17005:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5625, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17005:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16988:34:8" + }, + "returnParameters": { + "id": 5628, + "nodeType": "ParameterList", + "parameters": [], + "src": "17032:0:8" + }, + "scope": 5764, + "src": "16966:219:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5689, + "nodeType": "Block", + "src": "17515:148:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5663, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17530:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5665, + "indexExpression": { + "argumentTypes": null, + "id": 5664, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17541:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17530:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17562:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17554:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17554:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17530:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5662, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17522:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17522:43:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5671, + "nodeType": "ExpressionStatement", + "src": "17522:43:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5672, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17572:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5674, + "indexExpression": { + "argumentTypes": null, + "id": 5673, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17583:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17572:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5675, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17595:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17572:26:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5677, + "nodeType": "ExpressionStatement", + "src": "17572:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5678, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17605:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5680, + "indexExpression": { + "argumentTypes": null, + "id": 5679, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17622:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17605:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17655:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5681, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17629:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5683, + "indexExpression": { + "argumentTypes": null, + "id": 5682, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17646:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17629:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "17629:25:8", + "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": 5686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17629:28:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17605:52:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5688, + "nodeType": "ExpressionStatement", + "src": "17605:52:8" + } + ] + }, + "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", + "id": 5690, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addTokenTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5657, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17475:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17475:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5659, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17488:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17488:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17474:31:8" + }, + "returnParameters": { + "id": 5661, + "nodeType": "ParameterList", + "parameters": [], + "src": "17515:0:8" + }, + "scope": 5764, + "src": "17455:208:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5724, + "nodeType": "Block", + "src": "18016:151:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5699, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18039:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5698, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "18031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18031:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5701, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18052:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "18031:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5697, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "18023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18023:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5704, + "nodeType": "ExpressionStatement", + "src": "18023:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5705, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18065:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5707, + "indexExpression": { + "argumentTypes": null, + "id": 5706, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18082:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18065:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18119:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5708, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18091:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5710, + "indexExpression": { + "argumentTypes": null, + "id": 5709, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18108:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18091:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "18091:27:8", + "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": 5713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18091:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18065:56:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5715, + "nodeType": "ExpressionStatement", + "src": "18065:56:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5716, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "18128:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5718, + "indexExpression": { + "argumentTypes": null, + "id": 5717, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18139:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18128:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18159:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18151:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18151:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "18128:33:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5723, + "nodeType": "ExpressionStatement", + "src": "18128:33:8" + } + ] + }, + "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", + "id": 5725, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeTokenFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5692, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17974:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5691, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17974:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5694, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17989:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17989:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17973:33:8" + }, + "returnParameters": { + "id": 5696, + "nodeType": "ParameterList", + "parameters": [], + "src": "18016:0:8" + }, + "scope": 5764, + "src": "17949:218:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5762, + "nodeType": "Block", + "src": "18846:195:8", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "18857:17:8", + "subExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5738, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18858:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 5008, + "src": "18858:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18858:16:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5745, + "nodeType": "IfStatement", + "src": "18853:51:8", + "trueBody": { + "id": 5744, + "nodeType": "Block", + "src": "18876:28:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18892:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5737, + "id": 5743, + "nodeType": "Return", + "src": "18885:11:8" + } + ] + } + }, + { + "assignments": [ + 5747 + ], + "declarations": [ + { + "constant": false, + "id": 5747, + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 5762, + "src": "18910:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5746, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "18910:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5756, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5752, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5727, + "src": "18971:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5753, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5731, + "src": "18978:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5754, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5733, + "src": "18988:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5749, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18941:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5748, + "name": "ERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "18926:14:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", + "typeString": "type(contract ERC721Receiver)" + } + }, + "id": 5750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:19:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Receiver_$5080", + "typeString": "contract ERC721Receiver" + } + }, + "id": 5751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 5079, + "src": "18926:36:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 5755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:68:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18910:84:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5757, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5747, + "src": "19009:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5758, + "name": "ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5206, + "src": "19019:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "19009:25:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5760, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19008:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5737, + "id": 5761, + "nodeType": "Return", + "src": "19001:34:8" + } + ] + }, + "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", + "id": 5763, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "checkAndCallSafeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5727, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18724:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5726, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18724:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5729, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18744:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18744:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5731, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18762:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5730, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18762:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5733, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18785:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5732, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18785:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18717:91:8" + }, + "returnParameters": { + "id": 5737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5736, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18837:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5735, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18837:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18836:6:8" + }, + "scope": 5764, + "src": "18684:357:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "6942:12102:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5765, + "name": "ERC721BasicToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5764, + "src": "19081:16:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", + "typeString": "contract ERC721BasicToken" + } + }, + "id": 5766, + "nodeType": "InheritanceSpecifier", + "src": "19081:16:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187, + 5764 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5797, + "linearizedBaseContracts": [ + 5797, + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicTokenMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5780, + "nodeType": "Block", + "src": "19155:39:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5776, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5768, + "src": "19174:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5777, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5770, + "src": "19179:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5773, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19162:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 5596, + "src": "19162:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19162:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5779, + "nodeType": "ExpressionStatement", + "src": "19162:26:8" + } + ] + }, + "documentation": null, + "id": 5781, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19117:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19117:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19130:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19130:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19116:31:8" + }, + "returnParameters": { + "id": 5772, + "nodeType": "ParameterList", + "parameters": [], + "src": "19155:0:8" + }, + "scope": 5797, + "src": "19103:91:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5795, + "nodeType": "Block", + "src": "19239:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5790, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19266:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5789, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "19258:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19258:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5792, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19277:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5786, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19246:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 5622, + "src": "19246:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19246:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5794, + "nodeType": "ExpressionStatement", + "src": "19246:40:8" + } + ] + }, + "documentation": null, + "id": 5796, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5783, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5796, + "src": "19214:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5782, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19214:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19213:18:8" + }, + "returnParameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [], + "src": "19239:0:8" + }, + "scope": 5797, + "src": "19200:92:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "19048:247:8" + } + ], + "src": "0:19297:8" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", + "exportedSymbols": { + "AddressUtils": [ + 5009 + ], + "ERC165": [ + 5017 + ], + "ERC721Basic": [ + 5187 + ], + "ERC721BasicToken": [ + 5764 + ], + "ERC721BasicTokenMock": [ + 5797 + ], + "ERC721Receiver": [ + 5080 + ], + "SupportsInterfaceWithLookup": [ + 5065 + ] + }, + "id": 5798, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4991, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:8" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "../../dao/oz/SafeMath.sol", + "id": 4992, + "nodeType": "ImportDirective", + "scope": 5798, + "sourceUnit": 9858, + "src": "34:35:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "Utility library of inline functions on addresses\r", + "fullyImplemented": true, + "id": 5009, + "linearizedBaseContracts": [ + 5009 + ], + "name": "AddressUtils", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5007, + "nodeType": "Block", + "src": "2012:524:8", + "statements": [ + { + "assignments": [ + 5000 + ], + "declarations": [ + { + "constant": false, + "id": 5000, + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 5007, + "src": "2019:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2019:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5001, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "2019:12:8" + }, + { + "externalReferences": [ + { + "size": { + "declaration": 5000, + "isOffset": false, + "isSlot": false, + "src": "2482:4:8", + "valueSize": 1 + } + }, + { + "addr": { + "declaration": 4994, + "isOffset": false, + "isSlot": false, + "src": "2502:4:8", + "valueSize": 1 + } + } + ], + "id": 5002, + "nodeType": "InlineAssembly", + "operations": "{ size := extcodesize(addr) }", + "src": "2471:38:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5003, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5000, + "src": "2522:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5004, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2529:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2522:8:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4998, + "id": 5006, + "nodeType": "Return", + "src": "2515:15:8" + } + ] + }, + "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", + "id": 5008, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4994, + "name": "addr", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "1969:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1969:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1968:14:8" + }, + "returnParameters": { + "id": 4998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4997, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "2006:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4996, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2006:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2005:6:8" + }, + "scope": 5009, + "src": "1949:587:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "1590:951:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", + "fullyImplemented": false, + "id": 5017, + "linearizedBaseContracts": [ + 5017 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", + "id": 5016, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5012, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5011, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "2950:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5010, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2950:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2949:21:8" + }, + "returnParameters": { + "id": 5015, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5014, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "3009:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5013, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3009:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3008:6:8" + }, + "scope": 5017, + "src": "2923:92:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 5798, + "src": "2643:375:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5018, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "3196:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5019, + "nodeType": "InheritanceSpecifier", + "src": "3196:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", + "fullyImplemented": true, + "id": 5065, + "linearizedBaseContracts": [ + 5065, + 5017 + ], + "name": "SupportsInterfaceWithLookup", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5022, + "name": "InterfaceId_ERC165", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3208:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5020, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3208:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783031666663396137", + "id": 5021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3252:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 5026, + "name": "supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3443:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 5025, + "keyType": { + "id": 5023, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3451:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "3443:23:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 5024, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3461:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 5033, + "nodeType": "Block", + "src": "3638:51:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5030, + "name": "InterfaceId_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5022, + "src": "3664:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5029, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "3645:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3645:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5032, + "nodeType": "ExpressionStatement", + "src": "3645:38:8" + } + ] + }, + "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", + "id": 5034, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5027, + "nodeType": "ParameterList", + "parameters": [], + "src": "3620:2:8" + }, + "returnParameters": { + "id": 5028, + "nodeType": "ParameterList", + "parameters": [], + "src": "3638:0:8" + }, + "scope": 5065, + "src": "3609:80:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5045, + "nodeType": "Block", + "src": "3872:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5041, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "3886:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5043, + "indexExpression": { + "argumentTypes": null, + "id": 5042, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5036, + "src": "3906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3886:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5040, + "id": 5044, + "nodeType": "Return", + "src": "3879:40:8" + } + ] + }, + "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", + "id": 5046, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5037, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5036, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3804:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5035, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3804:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3803:21:8" + }, + "returnParameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5039, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3863:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5038, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3863:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3862:6:8" + }, + "scope": 5065, + "src": "3777:148:8", + "stateMutability": "view", + "superFunction": 5016, + "visibility": "external" + }, + { + "body": { + "id": 5063, + "nodeType": "Block", + "src": "4066:95:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5052, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4081:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30786666666666666666", + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4097:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "4081:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5051, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4073:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4073:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5056, + "nodeType": "ExpressionStatement", + "src": "4073:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5057, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "4115:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5059, + "indexExpression": { + "argumentTypes": null, + "id": 5058, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4135:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4115:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4151:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4115:40:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5062, + "nodeType": "ExpressionStatement", + "src": "4115:40:8" + } + ] + }, + "documentation": "@dev private method for registering an interface\r", + "id": 5064, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5048, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5064, + "src": "4028:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5047, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4028:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4027:21:8" + }, + "returnParameters": { + "id": 5050, + "nodeType": "ParameterList", + "parameters": [], + "src": "4066:0:8" + }, + "scope": 5065, + "src": "4000:161:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "3156:1008:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", + "fullyImplemented": false, + "id": 5080, + "linearizedBaseContracts": [ + 5080 + ], + "name": "ERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5068, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5080, + "src": "4607:53:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5066, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4607:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4650:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "internal" + }, + { + "body": null, + "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", + "id": 5079, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5070, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5364:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5069, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5364:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5072, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5384:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5384:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5074, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5407:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5073, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5407:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5357:73:8" + }, + "returnParameters": { + "id": 5078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5077, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5456:6:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5076, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "5456:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5455:8:8" + }, + "scope": 5080, + "src": "5332:132:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "4326:1141:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5081, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "5641:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5082, + "nodeType": "InheritanceSpecifier", + "src": "5641:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": false, + "id": 5187, + "linearizedBaseContracts": [ + 5187, + 5017 + ], + "name": "ERC721Basic", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5090, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5084, + "indexed": false, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5674:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5083, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5674:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5086, + "indexed": false, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5695:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5695:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5088, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5714:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5087, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5714:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5667:69:8" + }, + "src": "5653:84:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5098, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5092, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5762:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5091, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5762:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5094, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5784:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5784:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5096, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5809:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5809:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5755:76:8" + }, + "src": "5741:91:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5106, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 5105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5100, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5863:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5099, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5863:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5102, + "indexed": false, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5885:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5101, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5885:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5104, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5910:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5103, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5910:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5856:73:8" + }, + "src": "5836:94:8" + }, + { + "body": null, + "documentation": null, + "id": 5113, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5109, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5108, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5955:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5955:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5954:16:8" + }, + "returnParameters": { + "id": 5112, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5111, + "name": "_balance", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5992:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5110, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5992:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5991:18:8" + }, + "scope": 5187, + "src": "5936:74:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5120, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5115, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6031:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6030:18:8" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5118, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6070:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6070:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6069:16:8" + }, + "scope": 5187, + "src": "6014:72:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5127, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5122, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6106:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5121, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6106:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6105:18:8" + }, + "returnParameters": { + "id": 5126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5125, + "name": "_exists", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6145:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5124, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6145:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6144:14:8" + }, + "scope": 5187, + "src": "6090:69:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5134, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5129, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6182:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6182:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5131, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6195:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6195:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6181:31:8" + }, + "returnParameters": { + "id": 5133, + "nodeType": "ParameterList", + "parameters": [], + "src": "6219:0:8" + }, + "scope": 5187, + "src": "6165:55:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5141, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5136, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6245:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6245:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6244:18:8" + }, + "returnParameters": { + "id": 5140, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5139, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6289:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6289:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6288:19:8" + }, + "scope": 5187, + "src": "6224:84:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5148, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5143, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6341:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6341:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5145, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6360:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5144, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6360:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6340:35:8" + }, + "returnParameters": { + "id": 5147, + "nodeType": "ParameterList", + "parameters": [], + "src": "6382:0:8" + }, + "scope": 5187, + "src": "6314:69:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5157, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5153, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5150, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6413:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5149, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6413:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5152, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6429:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5151, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6429:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6412:35:8" + }, + "returnParameters": { + "id": 5156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5155, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6474:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5154, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6474:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6473:6:8" + }, + "scope": 5187, + "src": "6387:93:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5166, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5164, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5159, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6508:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6508:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5161, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6523:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6523:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5163, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6536:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5162, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6536:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6507:46:8" + }, + "returnParameters": { + "id": 5165, + "nodeType": "ParameterList", + "parameters": [], + "src": "6560:0:8" + }, + "scope": 5187, + "src": "6486:75:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5175, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5173, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5168, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6591:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5167, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6591:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5170, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6606:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5169, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6606:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5172, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6619:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5171, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6619:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6590:46:8" + }, + "returnParameters": { + "id": 5174, + "nodeType": "ParameterList", + "parameters": [], + "src": "6648:0:8" + }, + "scope": 5187, + "src": "6565:84:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5186, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5184, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5177, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6687:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5176, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6687:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5179, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6707:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5178, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6707:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5181, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6725:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5180, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6725:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5183, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6748:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5182, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6748:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6680:91:8" + }, + "returnParameters": { + "id": 5185, + "nodeType": "ParameterList", + "parameters": [], + "src": "6783:0:8" + }, + "scope": 5187, + "src": "6655:129:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "5617:1170:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5188, + "name": "SupportsInterfaceWithLookup", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5065, + "src": "6971:27:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", + "typeString": "contract SupportsInterfaceWithLookup" + } + }, + "id": 5189, + "nodeType": "InheritanceSpecifier", + "src": "6971:27:8" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5190, + "name": "ERC721Basic", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5187, + "src": "7000:11:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Basic_$5187", + "typeString": "contract ERC721Basic" + } + }, + "id": 5191, + "nodeType": "InheritanceSpecifier", + "src": "7000:11:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": true, + "id": 5764, + "linearizedBaseContracts": [ + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5194, + "name": "InterfaceId_ERC721", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7019:55:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5192, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7019:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783830616335386364", + "id": 5193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7064:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 5197, + "name": "InterfaceId_ERC721Exists", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7668:61:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5195, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7668:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783466353538653739", + "id": 5196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7719:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1331007097_by_1", + "typeString": "int_const 1331007097" + }, + "value": "0x4f558e79" + }, + "visibility": "private" + }, + { + "id": 5200, + "libraryName": { + "contractScope": null, + "id": 5198, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "7821:8:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "7815:27:8", + "typeName": { + "id": 5199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7834:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5203, + "libraryName": { + "contractScope": null, + "id": 5201, + "name": "AddressUtils", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5009, + "src": "7852:12:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddressUtils_$5009", + "typeString": "library AddressUtils" + } + }, + "nodeType": "UsingForDirective", + "src": "7846:31:8", + "typeName": { + "id": 5202, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7869:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "constant": true, + "id": 5206, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8044:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5204, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8044:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8086:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 5210, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8140:48:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5209, + "keyType": { + "id": 5207, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8149:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8140:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5208, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8160:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5214, + "name": "tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8243:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5213, + "keyType": { + "id": 5211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8252:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8243:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8263:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5218, + "name": "ownedTokensCount", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8352:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5217, + "keyType": { + "id": 5215, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8361:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8352:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8372:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5224, + "name": "operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8460:73:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 5223, + "keyType": { + "id": 5219, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8469:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8460:46:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 5222, + "keyType": { + "id": 5220, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8489:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8480:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 5221, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8500:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5226, + "name": "testint", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8542:19:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5225, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 5240, + "nodeType": "Block", + "src": "8774:61:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5232, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5228, + "src": "8797:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5231, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "8789:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8789:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5234, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "8810:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8810:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8789:31:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5230, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "8781:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8781:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5238, + "nodeType": "ExpressionStatement", + "src": "8781:40:8" + }, + { + "id": 5239, + "nodeType": "PlaceholderStatement", + "src": "8828:1:8" + } + ] + }, + "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", + "id": 5241, + "name": "onlyOwnerOf", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5228, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5241, + "src": "8756:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5227, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8756:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8755:18:8" + }, + "src": "8735:100:8", + "visibility": "internal" + }, + { + "body": { + "id": 5254, + "nodeType": "Block", + "src": "9041:69:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5247, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "9074:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9074:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5249, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5243, + "src": "9086:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5246, + "name": "isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5567, + "src": "9056:17:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 5250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9056:39:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5245, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9048:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9048:48:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5252, + "nodeType": "ExpressionStatement", + "src": "9048:48:8" + }, + { + "id": 5253, + "nodeType": "PlaceholderStatement", + "src": "9103:1:8" + } + ] + }, + "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", + "id": 5255, + "name": "canTransfer", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5244, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5243, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5255, + "src": "9023:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5242, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9022:18:8" + }, + "src": "9002:108:8", + "visibility": "internal" + }, + { + "body": { + "id": 5266, + "nodeType": "Block", + "src": "9145:176:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5259, + "name": "InterfaceId_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "9245:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5258, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9226:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9226:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5261, + "nodeType": "ExpressionStatement", + "src": "9226:38:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5263, + "name": "InterfaceId_ERC721Exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5197, + "src": "9290:24:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5262, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9271:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9271:44:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5265, + "nodeType": "ExpressionStatement", + "src": "9271:44:8" + } + ] + }, + "documentation": null, + "id": 5267, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5256, + "nodeType": "ParameterList", + "parameters": [], + "src": "9127:2:8" + }, + "returnParameters": { + "id": 5257, + "nodeType": "ParameterList", + "parameters": [], + "src": "9145:0:8" + }, + "scope": 5764, + "src": "9116:205:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5286, + "nodeType": "Block", + "src": "9585:80:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5275, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9600:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5277, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9618:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9610:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9610:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "9600:20:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5274, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9592:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9592:29:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5281, + "nodeType": "ExpressionStatement", + "src": "9592:29:8" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5282, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "9635:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5284, + "indexExpression": { + "argumentTypes": null, + "id": 5283, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9652:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9635:24:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5273, + "id": 5285, + "nodeType": "Return", + "src": "9628:31:8" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", + "id": 5287, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5269, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9539:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9539:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9538:16:8" + }, + "returnParameters": { + "id": 5273, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5272, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9576:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5271, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9576:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9575:9:8" + }, + "scope": 5764, + "src": "9520:145:8", + "stateMutability": "view", + "superFunction": 5113, + "visibility": "public" + }, + { + "body": { + "id": 5310, + "nodeType": "Block", + "src": "9950:103:8", + "statements": [ + { + "assignments": [ + 5295 + ], + "declarations": [ + { + "constant": false, + "id": 5295, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5310, + "src": "9957:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5294, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9957:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5299, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5296, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "9973:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5298, + "indexExpression": { + "argumentTypes": null, + "id": 5297, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5289, + "src": "9984:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9973:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9957:36:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5301, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10008:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10025:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10017:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10017:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10008:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5300, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10000:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5307, + "nodeType": "ExpressionStatement", + "src": "10000:28:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5308, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10042:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5293, + "id": 5309, + "nodeType": "Return", + "src": "10035:12:8" + } + ] + }, + "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", + "id": 5311, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5289, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9902:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9902:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9901:18:8" + }, + "returnParameters": { + "id": 5293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5292, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9941:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9941:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9940:9:8" + }, + "scope": 5764, + "src": "9885:168:8", + "stateMutability": "view", + "superFunction": 5120, + "visibility": "public" + }, + { + "body": { + "id": 5330, + "nodeType": "Block", + "src": "10299:82:8", + "statements": [ + { + "assignments": [ + 5319 + ], + "declarations": [ + { + "constant": false, + "id": 5319, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5330, + "src": "10306:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5318, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10306:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5323, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5320, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "10322:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5322, + "indexExpression": { + "argumentTypes": null, + "id": 5321, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5313, + "src": "10333:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10322:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10306:36:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5324, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5319, + "src": "10356:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10373:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10365:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10365:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10356:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5317, + "id": 5329, + "nodeType": "Return", + "src": "10349:26:8" + } + ] + }, + "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", + "id": 5331, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5313, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10254:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10254:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10253:18:8" + }, + "returnParameters": { + "id": 5317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5316, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10293:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5315, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10293:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10292:6:8" + }, + "scope": 5764, + "src": "10238:143:8", + "stateMutability": "view", + "superFunction": 5127, + "visibility": "public" + }, + { + "body": { + "id": 5375, + "nodeType": "Block", + "src": "10851:229:8", + "statements": [ + { + "assignments": [ + 5339 + ], + "declarations": [ + { + "constant": false, + "id": 5339, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5375, + "src": "10858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5343, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5341, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "10882:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5340, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "10874:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10874:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10858:33:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5345, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "10906:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 5346, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10913:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5344, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10898:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10898:21:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5349, + "nodeType": "ExpressionStatement", + "src": "10898:21:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5351, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10934:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10934:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5353, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10948:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10934:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5356, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10974:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5357, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10981:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10981:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 5355, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "10957:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10957:35:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10934:58:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5350, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10926:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10926:67:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5362, + "nodeType": "ExpressionStatement", + "src": "10926:67:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5363, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11002:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5365, + "indexExpression": { + "argumentTypes": null, + "id": 5364, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11017:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11002:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5366, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11029:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11002:30:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5368, + "nodeType": "ExpressionStatement", + "src": "11002:30:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5370, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "11053:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5371, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11060:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5372, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11065:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5369, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5098, + "src": "11044:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11044:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5374, + "nodeType": "EmitStatement", + "src": "11039:35:8" + } + ] + }, + "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", + "id": 5376, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5336, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5333, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10813:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10813:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5335, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10826:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5334, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10826:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10812:31:8" + }, + "returnParameters": { + "id": 5337, + "nodeType": "ParameterList", + "parameters": [], + "src": "10851:0:8" + }, + "scope": 5764, + "src": "10796:284:8", + "stateMutability": "nonpayable", + "superFunction": 5134, + "visibility": "public" + }, + { + "body": { + "id": 5387, + "nodeType": "Block", + "src": "11383:44:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5383, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11397:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5385, + "indexExpression": { + "argumentTypes": null, + "id": 5384, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5378, + "src": "11412:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11397:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5382, + "id": 5386, + "nodeType": "Return", + "src": "11390:31:8" + } + ] + }, + "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", + "id": 5388, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5378, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11335:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5377, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11335:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11334:18:8" + }, + "returnParameters": { + "id": 5382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5381, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11374:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11374:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11373:9:8" + }, + "scope": 5764, + "src": "11314:113:8", + "stateMutability": "view", + "superFunction": 5141, + "visibility": "public" + }, + { + "body": { + "id": 5418, + "nodeType": "Block", + "src": "11778:146:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5396, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11793:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5397, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11800:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11800:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "11793:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5395, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "11785:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11785:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "11785:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5402, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "11818:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5406, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5403, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11836:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11836:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11818:29:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5407, + "indexExpression": { + "argumentTypes": null, + "id": 5405, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11848:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11818:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11855:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11818:46:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5410, + "nodeType": "ExpressionStatement", + "src": "11818:46:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5412, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11891:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11891:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5414, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11903:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5415, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11908:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5411, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5106, + "src": "11876:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 5416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11876:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5417, + "nodeType": "EmitStatement", + "src": "11871:47:8" + } + ] + }, + "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", + "id": 5419, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5390, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11742:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11742:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5392, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11755:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11755:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11741:29:8" + }, + "returnParameters": { + "id": 5394, + "nodeType": "ParameterList", + "parameters": [], + "src": "11778:0:8" + }, + "scope": 5764, + "src": "11715:209:8", + "stateMutability": "nonpayable", + "superFunction": 5148, + "visibility": "public" + }, + { + "body": { + "id": 5434, + "nodeType": "Block", + "src": "12362:56:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5428, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "12376:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5430, + "indexExpression": { + "argumentTypes": null, + "id": 5429, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5421, + "src": "12394:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5432, + "indexExpression": { + "argumentTypes": null, + "id": 5431, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "12402:9:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:36:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5427, + "id": 5433, + "nodeType": "Return", + "src": "12369:43:8" + } + ] + }, + "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", + "id": 5435, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5421, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12273:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5420, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12273:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5423, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12294:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5422, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12294:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12266:50:8" + }, + "returnParameters": { + "id": 5427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5426, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12353:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5425, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12353:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12352:6:8" + }, + "scope": 5764, + "src": "12241:177:8", + "stateMutability": "view", + "superFunction": 5157, + "visibility": "public" + }, + { + "body": { + "id": 5484, + "nodeType": "Block", + "src": "12976:228:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5448, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "12991:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13008:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13000:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "12991:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5447, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "12983:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12983:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5454, + "nodeType": "ExpressionStatement", + "src": "12983:28:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5456, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13026:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13041:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13033:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13033:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13026:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5455, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "13018:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13018:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5462, + "nodeType": "ExpressionStatement", + "src": "13018:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5464, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13067:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5465, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13074:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5463, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "13053:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13053:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5467, + "nodeType": "ExpressionStatement", + "src": "13053:30:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5469, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13106:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5470, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13113:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5468, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "13090:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13090:32:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5472, + "nodeType": "ExpressionStatement", + "src": "13090:32:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5474, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13140:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5475, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13145:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5473, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "13129:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13129:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5477, + "nodeType": "ExpressionStatement", + "src": "13129:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5479, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13177:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5480, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13184:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5481, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13189:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5478, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "13168:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13168:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5483, + "nodeType": "EmitStatement", + "src": "13163:35:8" + } + ] + }, + "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5485, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5444, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "12963:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5445, + "modifierName": { + "argumentTypes": null, + "id": 5443, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "12951:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12951:21:8" + } + ], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5442, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5437, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12874:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5436, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12874:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5439, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12894:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12894:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5441, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12912:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5440, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12912:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12867:66:8" + }, + "returnParameters": { + "id": 5446, + "nodeType": "ParameterList", + "parameters": [], + "src": "12976:0:8" + }, + "scope": 5764, + "src": "12846:358:8", + "stateMutability": "nonpayable", + "superFunction": 5166, + "visibility": "public" + }, + { + "body": { + "id": 5504, + "nodeType": "Block", + "src": "13960:101:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5498, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5487, + "src": "14030:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5499, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5489, + "src": "14037:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5500, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "14042:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 5501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14052:2:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 5497, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5505, + 5535 + ], + "referencedDeclaration": 5535, + "src": "14013:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 5502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14013:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5503, + "nodeType": "ExpressionStatement", + "src": "14013:42:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5505, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5494, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "13947:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5495, + "modifierName": { + "argumentTypes": null, + "id": 5493, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "13935:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "13935:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5487, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5486, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5489, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13878:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13878:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5491, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13896:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13896:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13851:66:8" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [], + "src": "13960:0:8" + }, + "scope": 5764, + "src": "13826:235:8", + "stateMutability": "nonpayable", + "superFunction": 5175, + "visibility": "public" + }, + { + "body": { + "id": 5534, + "nodeType": "Block", + "src": "14908:162:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5520, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "14928:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5521, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "14935:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5522, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14940:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5519, + "name": "transferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5485 + ], + "referencedDeclaration": 5485, + "src": "14915:12:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14915:34:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5524, + "nodeType": "ExpressionStatement", + "src": "14915:34:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5527, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "15035:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5528, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "15042:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5529, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "15047:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5530, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5513, + "src": "15057:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5526, + "name": "checkAndCallSafeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5763, + "src": "15010:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 5531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15010:53:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5525, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "15002:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15002:62:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5533, + "nodeType": "ExpressionStatement", + "src": "15002:62:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", + "id": 5535, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5516, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14895:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5517, + "modifierName": { + "argumentTypes": null, + "id": 5515, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "14883:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "14883:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5514, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5507, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14781:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14781:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5509, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14801:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14801:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5511, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14819:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14819:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5513, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14842:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5512, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14842:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14774:91:8" + }, + "returnParameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [], + "src": "14908:0:8" + }, + "scope": 5764, + "src": "14749:321:8", + "stateMutability": "nonpayable", + "superFunction": 5186, + "visibility": "public" + }, + { + "body": { + "id": 5566, + "nodeType": "Block", + "src": "15551:330:8", + "statements": [ + { + "assignments": [ + 5545 + ], + "declarations": [ + { + "constant": false, + "id": 5545, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5566, + "src": "15558:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15558:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5549, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5547, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15582:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5546, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "15574:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15574:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15558:33:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5550, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15763:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5551, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15775:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15763:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5554, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15803:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5553, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5388 + ], + "referencedDeclaration": 5388, + "src": "15791:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15791:21:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5556, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15816:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15791:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:61:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5560, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15852:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5561, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15859:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5559, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "15835:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15835:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:105:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5564, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15754:121:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5543, + "id": 5565, + "nodeType": "Return", + "src": "15747:128:8" + } + ] + }, + "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", + "id": 5567, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5540, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5537, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15459:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5536, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15459:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5539, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15482:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5538, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15482:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15452:51:8" + }, + "returnParameters": { + "id": 5543, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5542, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15542:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5541, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15541:6:8" + }, + "scope": 5764, + "src": "15426:455:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5595, + "nodeType": "Block", + "src": "16193:118:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5575, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16208:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16223:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16215:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16215:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "16208:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5574, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "16200:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16200:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5581, + "nodeType": "ExpressionStatement", + "src": "16200:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5583, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16244:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5584, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16249:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5582, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "16233:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16233:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5586, + "nodeType": "ExpressionStatement", + "src": "16233:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16287:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16279:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16279:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5591, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16291:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5592, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16296:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5587, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16270:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16270:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5594, + "nodeType": "EmitStatement", + "src": "16265:40:8" + } + ] + }, + "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", + "id": 5596, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5569, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16153:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5568, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16153:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5571, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16166:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5570, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16166:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16152:31:8" + }, + "returnParameters": { + "id": 5573, + "nodeType": "ParameterList", + "parameters": [], + "src": "16193:0:8" + }, + "scope": 5764, + "src": "16138:173:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5621, + "nodeType": "Block", + "src": "16562:134:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5604, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16583:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5605, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16591:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5603, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "16569:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16569:31:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5607, + "nodeType": "ExpressionStatement", + "src": "16569:31:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5609, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16623:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5610, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16631:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5608, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "16607:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16607:33:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5612, + "nodeType": "ExpressionStatement", + "src": "16607:33:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5614, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16661:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16677:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16669:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16669:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5618, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16681:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5613, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16652:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16652:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5620, + "nodeType": "EmitStatement", + "src": "16647:43:8" + } + ] + }, + "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", + "id": 5622, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5598, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16519:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16519:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5600, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16535:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5599, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16535:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16518:34:8" + }, + "returnParameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [], + "src": "16562:0:8" + }, + "scope": 5764, + "src": "16504:192:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5654, + "nodeType": "Block", + "src": "17032:153:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5631, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17055:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5630, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "17047:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17047:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5633, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5624, + "src": "17068:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17047:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5629, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17039:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17039:36:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5636, + "nodeType": "ExpressionStatement", + "src": "17039:36:8" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5637, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17086:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5639, + "indexExpression": { + "argumentTypes": null, + "id": 5638, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17101:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17086:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17122:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17114:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17114:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17086:38:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5653, + "nodeType": "IfStatement", + "src": "17082:98:8", + "trueBody": { + "id": 5652, + "nodeType": "Block", + "src": "17126:54:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5644, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17135:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5646, + "indexExpression": { + "argumentTypes": null, + "id": 5645, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17150:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17135:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5648, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17170:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17162:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17162:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17135:37:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5651, + "nodeType": "ExpressionStatement", + "src": "17135:37:8" + } + ] + } + } + ] + }, + "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5655, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "clearApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5624, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "16989:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5623, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16989:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5626, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "17005:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5625, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17005:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16988:34:8" + }, + "returnParameters": { + "id": 5628, + "nodeType": "ParameterList", + "parameters": [], + "src": "17032:0:8" + }, + "scope": 5764, + "src": "16966:219:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5689, + "nodeType": "Block", + "src": "17515:148:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5663, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17530:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5665, + "indexExpression": { + "argumentTypes": null, + "id": 5664, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17541:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17530:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17562:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17554:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17554:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17530:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5662, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17522:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17522:43:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5671, + "nodeType": "ExpressionStatement", + "src": "17522:43:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5672, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17572:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5674, + "indexExpression": { + "argumentTypes": null, + "id": 5673, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17583:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17572:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5675, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17595:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17572:26:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5677, + "nodeType": "ExpressionStatement", + "src": "17572:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5678, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17605:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5680, + "indexExpression": { + "argumentTypes": null, + "id": 5679, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17622:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17605:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17655:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5681, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17629:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5683, + "indexExpression": { + "argumentTypes": null, + "id": 5682, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17646:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17629:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "17629:25:8", + "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": 5686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17629:28:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17605:52:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5688, + "nodeType": "ExpressionStatement", + "src": "17605:52:8" + } + ] + }, + "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", + "id": 5690, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addTokenTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5657, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17475:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17475:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5659, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17488:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17488:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17474:31:8" + }, + "returnParameters": { + "id": 5661, + "nodeType": "ParameterList", + "parameters": [], + "src": "17515:0:8" + }, + "scope": 5764, + "src": "17455:208:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5724, + "nodeType": "Block", + "src": "18016:151:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5699, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18039:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5698, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "18031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18031:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5701, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18052:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "18031:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5697, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "18023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18023:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5704, + "nodeType": "ExpressionStatement", + "src": "18023:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5705, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18065:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5707, + "indexExpression": { + "argumentTypes": null, + "id": 5706, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18082:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18065:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18119:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5708, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18091:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5710, + "indexExpression": { + "argumentTypes": null, + "id": 5709, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18108:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18091:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "18091:27:8", + "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": 5713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18091:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18065:56:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5715, + "nodeType": "ExpressionStatement", + "src": "18065:56:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5716, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "18128:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5718, + "indexExpression": { + "argumentTypes": null, + "id": 5717, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18139:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18128:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18159:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18151:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18151:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "18128:33:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5723, + "nodeType": "ExpressionStatement", + "src": "18128:33:8" + } + ] + }, + "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", + "id": 5725, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeTokenFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5692, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17974:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5691, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17974:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5694, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17989:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17989:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17973:33:8" + }, + "returnParameters": { + "id": 5696, + "nodeType": "ParameterList", + "parameters": [], + "src": "18016:0:8" + }, + "scope": 5764, + "src": "17949:218:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5762, + "nodeType": "Block", + "src": "18846:195:8", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "18857:17:8", + "subExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5738, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18858:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 5008, + "src": "18858:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18858:16:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5745, + "nodeType": "IfStatement", + "src": "18853:51:8", + "trueBody": { + "id": 5744, + "nodeType": "Block", + "src": "18876:28:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18892:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5737, + "id": 5743, + "nodeType": "Return", + "src": "18885:11:8" + } + ] + } + }, + { + "assignments": [ + 5747 + ], + "declarations": [ + { + "constant": false, + "id": 5747, + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 5762, + "src": "18910:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5746, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "18910:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5756, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5752, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5727, + "src": "18971:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5753, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5731, + "src": "18978:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5754, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5733, + "src": "18988:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5749, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18941:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5748, + "name": "ERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "18926:14:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", + "typeString": "type(contract ERC721Receiver)" + } + }, + "id": 5750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:19:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Receiver_$5080", + "typeString": "contract ERC721Receiver" + } + }, + "id": 5751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 5079, + "src": "18926:36:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 5755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:68:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18910:84:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5757, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5747, + "src": "19009:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5758, + "name": "ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5206, + "src": "19019:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "19009:25:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5760, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19008:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5737, + "id": 5761, + "nodeType": "Return", + "src": "19001:34:8" + } + ] + }, + "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", + "id": 5763, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "checkAndCallSafeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5727, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18724:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5726, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18724:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5729, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18744:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18744:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5731, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18762:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5730, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18762:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5733, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18785:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5732, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18785:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18717:91:8" + }, + "returnParameters": { + "id": 5737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5736, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18837:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5735, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18837:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18836:6:8" + }, + "scope": 5764, + "src": "18684:357:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "6942:12102:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5765, + "name": "ERC721BasicToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5764, + "src": "19081:16:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", + "typeString": "contract ERC721BasicToken" + } + }, + "id": 5766, + "nodeType": "InheritanceSpecifier", + "src": "19081:16:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187, + 5764 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5797, + "linearizedBaseContracts": [ + 5797, + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicTokenMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5780, + "nodeType": "Block", + "src": "19155:39:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5776, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5768, + "src": "19174:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5777, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5770, + "src": "19179:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5773, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19162:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 5596, + "src": "19162:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19162:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5779, + "nodeType": "ExpressionStatement", + "src": "19162:26:8" + } + ] + }, + "documentation": null, + "id": 5781, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19117:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19117:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19130:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19130:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19116:31:8" + }, + "returnParameters": { + "id": 5772, + "nodeType": "ParameterList", + "parameters": [], + "src": "19155:0:8" + }, + "scope": 5797, + "src": "19103:91:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5795, + "nodeType": "Block", + "src": "19239:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5790, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19266:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5789, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "19258:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19258:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5792, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19277:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5786, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19246:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 5622, + "src": "19246:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19246:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5794, + "nodeType": "ExpressionStatement", + "src": "19246:40:8" + } + ] + }, + "documentation": null, + "id": 5796, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5783, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5796, + "src": "19214:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5782, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19214:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19213:18:8" + }, + "returnParameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [], + "src": "19239:0:8" + }, + "scope": 5797, + "src": "19200:92:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "19048:247:8" + } + ], + "src": "0:19297:8" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:19.948Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {}, + "notice": "Utility library of inline functions on addresses\r" + } +} \ No newline at end of file diff --git a/src/contracts/BountiesMetaTxRelayer.json b/src/contracts/BountiesMetaTxRelayer.json new file mode 100644 index 0000000..93c19b0 --- /dev/null +++ b/src/contracts/BountiesMetaTxRelayer.json @@ -0,0 +1,43751 @@ +{ + "contractName": "BountiesMetaTxRelayer", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "replayNonce", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "bountiesContract", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_contract", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "constant": false, + "inputs": [ + { + "name": "signature", + "type": "bytes" + }, + { + "name": "_issuers", + "type": "address[]" + }, + { + "name": "_approvers", + "type": "address[]" + }, + { + "name": "_data", + "type": "string" + }, + { + "name": "_deadline", + "type": "uint256" + }, + { + "name": "_token", + "type": "address" + }, + { + "name": "_tokenVersion", + "type": "uint256" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaIssueBounty", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "signature", + "type": "bytes" + }, + { + "name": "_issuers", + "type": "address[]" + }, + { + "name": "_approvers", + "type": "address[]" + }, + { + "name": "_data", + "type": "string" + }, + { + "name": "_deadline", + "type": "uint256" + }, + { + "name": "_token", + "type": "address" + }, + { + "name": "_tokenVersion", + "type": "uint256" + }, + { + "name": "_depositAmount", + "type": "uint256" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaIssueAndContribute", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaContribute", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_contributionId", + "type": "uint256" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaRefundContribution", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_contributionIds", + "type": "uint256[]" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaRefundMyContributions", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_contributionIds", + "type": "uint256[]" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaRefundContributions", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_amounts", + "type": "uint256[]" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaDrainBounty", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_data", + "type": "string" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaPerformAction", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_fulfillers", + "type": "address[]" + }, + { + "name": "_data", + "type": "string" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaFulfillBounty", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_fulfillmentId", + "type": "uint256" + }, + { + "name": "_fulfillers", + "type": "address[]" + }, + { + "name": "_data", + "type": "string" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaUpdateFulfillment", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_fulfillmentId", + "type": "uint256" + }, + { + "name": "_approverId", + "type": "uint256" + }, + { + "name": "_tokenAmounts", + "type": "uint256[]" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaAcceptFulfillment", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_fulfillers", + "type": "address[]" + }, + { + "name": "_data", + "type": "string" + }, + { + "name": "_approverId", + "type": "uint256" + }, + { + "name": "_tokenAmounts", + "type": "uint256[]" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaFulfillAndAccept", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_issuers", + "type": "address[]" + }, + { + "name": "_approvers", + "type": "address[]" + }, + { + "name": "_data", + "type": "string" + }, + { + "name": "_deadline", + "type": "uint256" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaChangeBounty", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_issuerIdToChange", + "type": "uint256" + }, + { + "name": "_newIssuer", + "type": "address" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaChangeIssuer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_approverId", + "type": "uint256" + }, + { + "name": "_approver", + "type": "address" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaChangeApprover", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_data", + "type": "string" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaChangeData", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_deadline", + "type": "uint256" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaChangeDeadline", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_issuers", + "type": "address[]" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaAddIssuers", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_approvers", + "type": "address[]" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaAddApprovers", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_fulfillers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_approverId\",\"type\":\"uint256\"},{\"name\":\"_tokenAmounts\",\"type\":\"uint256[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaFulfillAndAccept\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_fulfillmentId\",\"type\":\"uint256\"},{\"name\":\"_fulfillers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaUpdateFulfillment\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaChangeData\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaChangeDeadline\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaChangeBounty\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaContribute\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaPerformAction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_contributionIds\",\"type\":\"uint256[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaRefundMyContributions\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"replayNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_fulfillmentId\",\"type\":\"uint256\"},{\"name\":\"_approverId\",\"type\":\"uint256\"},{\"name\":\"_tokenAmounts\",\"type\":\"uint256[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaAcceptFulfillment\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaAddApprovers\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_contributionId\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaRefundContribution\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"bountiesContract\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_approverId\",\"type\":\"uint256\"},{\"name\":\"_approver\",\"type\":\"address\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaChangeApprover\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_amounts\",\"type\":\"uint256[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaDrainBounty\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"signature\",\"type\":\"bytes\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_tokenVersion\",\"type\":\"uint256\"},{\"name\":\"_depositAmount\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaIssueAndContribute\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaAddIssuers\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_issuerIdToChange\",\"type\":\"uint256\"},{\"name\":\"_newIssuer\",\"type\":\"address\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaChangeIssuer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"signature\",\"type\":\"bytes\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_tokenVersion\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaIssueBounty\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_fulfillers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaFulfillBounty\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_contributionIds\",\"type\":\"uint256[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaRefundContributions\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_contract\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/BountiesMetaTxRelayer.sol\":\"BountiesMetaTxRelayer\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/BountiesMetaTxRelayer.sol\":{\"keccak256\":\"0x1f0df89b42346dd27c007771f4af26b0225940b48b5ab95d03aa83fb498185d6\",\"urls\":[\"bzzr://997e45112b8f73ef806bd8b21b7cca2c74a349616783dc5e466b2b168b29fb6c\",\"dweb:/ipfs/QmUKSd5wEN2rN7es2erPuh3ShJmk5iczpuTv1iTgRSpXo2\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/StandardBounties.sol\":{\"keccak256\":\"0x456ed28ea1aef4e955403633cf32abd31157ba403d9cb68354c7dc672c5ccabf\",\"urls\":[\"bzzr://d15335b4982aca05664cad86d9c6a2bf810f978a29446cd053d45a737d6714e8\",\"dweb:/ipfs/QmTJ8fyPixSGid17Dk2xF8tBphrrEVTPKNenz3aRn1LFrL\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC20Token.sol\":{\"keccak256\":\"0x3148ace3c8e413e3e8cb9181826bbb7382fe8fd691fbbe398b0f3291c5ac88f6\",\"urls\":[\"bzzr://f6dae48bd61cf187d97f6dd7b1f14c4216ccda99c9173d87ac59465f9d3a030b\",\"dweb:/ipfs/QmbDe5WTm8sWmUWRbKxtWUrSbyS1T5vgkiVscK94RJb6iS\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":{\"keccak256\":\"0x4dd046a190602871aa9743a94149789c1e14b14f609c68d0f34d72e19bd690ce\",\"urls\":[\"bzzr://ea591dfb88f3591fe4344b7e665024c5aa3e8fb758a0409db79b1885a996b825\",\"dweb:/ipfs/QmXrwJ2TTXMWHBQxuLCqrj96gfh5HCHK57JsCEcXJ84t6z\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/Token.sol\":{\"keccak256\":\"0xdee24120ae0fa14b9200dfa97babfa107aaf668b52eeda93ad672260ede4b74c\",\"urls\":[\"bzzr://2144e06fcebb6227647c4362c7075680ea03074e80e51d37cad0b09092ff06a5\",\"dweb:/ipfs/QmYgcfKEH2DT6brtajHvPRdu6my6CRWH86TXmZCMZeGjfK\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001157600080fd5b506040516200362c3803806200362c83398101604081905262000034916200006d565b600080546001600160a01b0319166001600160a01b0392909216919091179055620000c2565b80516200006781620000a8565b92915050565b6000602082840312156200008057600080fd5b60006200008e84846200005a565b949350505050565b60006001600160a01b03821662000067565b620000b38162000096565b8114620000bf57600080fd5b50565b61355a80620000d26000396000f3fe60806040526004361061012a5760003560e01c8063926b4e5f116100ab578063b1e6bcbb1161006f578063b1e6bcbb1461031c578063c353a38a1461032f578063dc5065a81461034f578063df4015fc1461036f578063ec34c4c01461038f578063fbb9e715146103af5761012a565b8063926b4e5f1461027a57806393ee9f4f1461029a578063a39da942146102ba578063a84d579d146102dc578063ae96762d146102fc5761012a565b8063432326a9116100f2578063432326a9146101d1578063484621d5146101e4578063632ebc7b1461020457806367d407df146102245780637984dfe61461025a5761012a565b80630dd72a791461012f578063103cd44f14610151578063189002051461017157806332a7856d1461019157806336bb9122146101b1575b600080fd5b34801561013b57600080fd5b5061014f61014a366004611bc7565b6103cf565b005b34801561015d57600080fd5b5061014f61016c366004611f1a565b6104db565b34801561017d57600080fd5b5061014f61018c3660046120ed565b6105e2565b34801561019d57600080fd5b5061014f6101ac3660046122b8565b6106e4565b3480156101bd57600080fd5b5061014f6101cc366004611e41565b6107ab565b61014f6101df366004612149565b6108bc565b3480156101f057600080fd5b5061014f6101ff366004611d4c565b610a36565b34801561021057600080fd5b5061014f61021f366004611cbe565b610af9565b34801561023057600080fd5b5061024461023f3660046118be565b610bbc565b60405161025191906133f3565b60405180910390f35b34801561026657600080fd5b5061014f610275366004612222565b610bce565b34801561028657600080fd5b5061014f610295366004611dbd565b610c97565b3480156102a657600080fd5b5061014f6102b5366004612149565b610d5e565b3480156102c657600080fd5b506102cf610e21565b60405161025191906133e5565b3480156102e857600080fd5b5061014f6102f73660046121a3565b610e30565b34801561030857600080fd5b5061014f610317366004612069565b610efb565b61024461032a3660046119ef565b610fc2565b34801561033b57600080fd5b5061014f61034a366004611fe5565b6111b2565b34801561035b57600080fd5b5061014f61036a3660046121a3565b611279565b34801561037b57600080fd5b5061024461038a3660046118e4565b611344565b34801561039b57600080fd5b5061014f6103aa366004611b0e565b61147b565b3480156103bb57600080fd5b5061014f6103ca366004612069565b611542565b6000308787878787876040516020016103ee9796959493929190612f2f565b6040516020818303038152906040528051906020012090506000610412828a611609565b90506001600160a01b03811661042757600080fd5b6001600160a01b038116600090815260016020526040902054831461044b57600080fd5b6001600160a01b03808216600090815260016020819052604080832080549092019091559054905163184442b760e31b815291169063c22215b89061049e9084908c908c908c908c908c906004016130e3565b600060405180830381600087803b1580156104b857600080fd5b505af11580156104cc573d6000803e3d6000fd5b50505050505050505050505050565b60003086868686866040516020016104f896959493929190612fb4565b604051602081830303815290604052805190602001209050600061051c8289611609565b90506001600160a01b03811661053157600080fd5b6001600160a01b038116600090815260016020526040902054831461055557600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051630c49604560e41b815291169063c4960450906105a69084908b908b908b908b90600401613284565b600060405180830381600087803b1580156105c057600080fd5b505af11580156105d4573d6000803e3d6000fd5b505050505050505050505050565b600030858585856040516020016105fd959493929190612c5e565b60405160208183030381529060405280519060200120905060006106218288611609565b90506001600160a01b03811661063657600080fd5b6001600160a01b038116600090815260016020526040902054831461065a57600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051631fbe084f60e21b8152911690637ef8213c906106a99084908a908a908a906004016132d2565b600060405180830381600087803b1580156106c357600080fd5b505af11580156106d7573d6000803e3d6000fd5b5050505050505050505050565b600030858585856040516020016106ff959493929190612d84565b60405160208183030381529060405280519060200120905060006107238288611609565b90506001600160a01b03811661073857600080fd5b6001600160a01b038116600090815260016020526040902054831461075c57600080fd5b6001600160a01b03808216600090815260016020819052604080832080549092019091559054905163aa17aaef60e01b815291169063aa17aaef906106a99084908a908a908a9060040161330c565b600030888888888888886040516020016107cc9897969594939291906129f6565b60405160208183030381529060405280519060200120905060006107f0828b611609565b90506001600160a01b03811661080557600080fd5b6001600160a01b038116600090815260016020526040902054831461082957600080fd5b6001600160a01b03808216600090815260016020819052604080832080549092019091559054905163162f1aed60e31b815291169063b178d7689061087e9084908d908d908d908d908d908d90600401613213565b600060405180830381600087803b15801561089857600080fd5b505af11580156108ac573d6000803e3d6000fd5b5050505050505050505050505050565b6000308484846040516020016108d59493929190612ba9565b60405160208183030381529060405280519060200120905060006108f98287611609565b90506001600160a01b03811661090e57600080fd5b6001600160a01b038116600090815260016020526040902054831461093257600080fd5b6001600160a01b03811660009081526001602081905260409091208054909101905534156109c757600054604051632823de4f60e21b81526001600160a01b039091169063a08f793c9034906109909085908a908a9060040161298a565b6000604051808303818588803b1580156109a957600080fd5b505af11580156109bd573d6000803e3d6000fd5b5050505050610a2e565b600054604051632823de4f60e21b81526001600160a01b039091169063a08f793c906109fb9084908990899060040161298a565b600060405180830381600087803b158015610a1557600080fd5b505af1158015610a29573d6000803e3d6000fd5b505050505b505050505050565b600030848484604051602001610a4f9493929190612b51565b6040516020818303038152906040528051906020012090506000610a738287611609565b90506001600160a01b038116610a8857600080fd5b6001600160a01b0381166000908152600160205260409020548314610aac57600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051632562712d60e11b8152911690634ac4e25a906109fb90849089908990600401613172565b600030848484604051602001610b129493929190613015565b6040516020818303038152906040528051906020012090506000610b368287611609565b90506001600160a01b038116610b4b57600080fd5b6001600160a01b0381166000908152600160205260409020548314610b6f57600080fd5b6001600160a01b03808216600090815260016020819052604080832080549092019091559054905163edba701360e01b815291169063edba7013906109fb90849089908990600401613145565b60016020526000908152604090205481565b6000308686868686604051602001610beb96959493929190612e17565b6040516020818303038152906040528051906020012090506000610c0f8289611609565b90506001600160a01b038116610c2457600080fd5b6001600160a01b0381166000908152600160205260409020548314610c4857600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051621e4fc760e31b815291169062f27e38906105a69084908b908b908b908b90600401613383565b60003085858585604051602001610cb2959493929190612a89565b6040516020818303038152906040528051906020012090506000610cd68288611609565b90506001600160a01b038116610ceb57600080fd5b6001600160a01b0381166000908152600160205260409020548314610d0f57600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051634daf1bb560e01b8152911690634daf1bb5906106a99084908a908a908a9060040161319f565b600030848484604051602001610d779493929190612df8565b6040516020818303038152906040528051906020012090506000610d9b8287611609565b90506001600160a01b038116610db057600080fd5b6001600160a01b0381166000908152600160205260409020548314610dd457600080fd5b6001600160a01b0380821660009081526001602081905260408083208054909201909155905490516393c1ccc960e01b81529116906393c1ccc9906109fb9084908990899060040161298a565b6000546001600160a01b031681565b6000308686868686604051602001610e4d96959493929190612dd9565b6040516020818303038152906040528051906020012090506000610e718289611609565b90506001600160a01b038116610e8657600080fd5b6001600160a01b0381166000908152600160205260409020548314610eaa57600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051632092e25960e01b8152911690632092e259906105a69084908b908b908b908b90600401613341565b60003085858585604051602001610f16959493929190612ae5565b6040516020818303038152906040528051906020012090506000610f3a8288611609565b90506001600160a01b038116610f4f57600080fd5b6001600160a01b0381166000908152600160205260409020548314610f7357600080fd5b6001600160a01b0380821660009081526001602081905260408083208054909201909155905490516306eade7960e31b8152911690633756f3c8906106a99084908a908a908a906004016129b2565b600080308a8a8a8a8a8a8a8a604051602001610fe699989796959493929190612e80565b604051602081830303815290604052805190602001209050600061100a828d611609565b90506001600160a01b03811661101f57600080fd5b6001600160a01b038116600090815260016020526040902054841461104357600080fd5b6001600160a01b0381166000908152600160208190526040909120805490910190553415611115576000809054906101000a90046001600160a01b03166001600160a01b03166306060ae334838e8e8e8e8e8e8e6040518a63ffffffff1660e01b81526004016110ba98979695949392919061290b565b6020604051808303818588803b1580156110d357600080fd5b505af11580156110e7573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525061110c9190810190612325565b925050506111a5565b6000546040516306060ae360e01b81526001600160a01b03909116906306060ae3906111539084908f908f908f908f908f908f908f9060040161290b565b602060405180830381600087803b15801561116d57600080fd5b505af1158015611181573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061110c9190810190612325565b9998505050505050505050565b600030858585856040516020016111cd959493929190613055565b60405160208183030381529060405280519060200120905060006111f18288611609565b90506001600160a01b03811661120657600080fd5b6001600160a01b038116600090815260016020526040902054831461122a57600080fd5b6001600160a01b03808216600090815260016020819052604080832080549092019091559054905163c6a8b42b60e01b815291169063c6a8b42b906106a99084908a908a908a906004016131d9565b600030868686868660405160200161129696959493929190612bf1565b60405160208183030381529060405280519060200120905060006112ba8289611609565b90506001600160a01b0381166112cf57600080fd5b6001600160a01b03811660009081526001602052604090205483146112f357600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051639e64d9bf60e01b8152911690639e64d9bf906105a69084908b908b908b908b90600401613341565b6000803089898989898989604051602001611366989796959493929190612cff565b604051602081830303815290604052805190602001209050600061138a828c611609565b90506001600160a01b03811661139f57600080fd5b6001600160a01b03811660009081526001602052604090205484146113c357600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051632b3d9e9760e11b815291169063567b3d2e906114189084908e908e908e908e908e908e9060040161289a565b602060405180830381600087803b15801561143257600080fd5b505af1158015611446573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061146a9190810190612325565b925050505b98975050505050505050565b60003085858585604051602001611496959493929190612cab565b60405160208183030381529060405280519060200120905060006114ba8288611609565b90506001600160a01b0381166114cf57600080fd5b6001600160a01b03811660009081526001602052604090205483146114f357600080fd5b6001600160a01b0380821660009081526001602081905260408083208054909201909155905490516397d7666560e01b81529116906397d76665906106a99084908a908a908a906004016130a2565b6000308585858560405160200161155d959493929190612b32565b60405160208183030381529060405280519060200120905060006115818288611609565b90506001600160a01b03811661159657600080fd5b6001600160a01b03811660009081526001602052604090205483146115ba57600080fd5b6001600160a01b03808216600090815260016020819052604080832080549092019091559054905163a071fbd560e01b815291169063a071fbd5906106a99084908a908a908a906004016129b2565b600080600080845160411461162457600093505050506116f2565b50505060208201516040830151606084015160001a601b81101561164657601b015b8060ff16601b1415801561165e57508060ff16601c14155b1561166f57600093505050506116f2565b600186604051602001611682919061287a565b60405160208183030381529060405280519060200120828585604051600081526020016040526040516116b894939291906133ca565b6020604051602081039080840390855afa1580156116da573d6000803e3d6000fd5b5050506020604051035193505050506116f2565b5050505b92915050565b80356116f2816134f7565b600082601f83011261171457600080fd5b813561172761172282613427565b613401565b9150818183526020840193506020810190508385602084028201111561174c57600080fd5b60005b83811015611778578161176288826116f8565b845250602092830192919091019060010161174f565b5050505092915050565b600082601f83011261179357600080fd5b81356117a161172282613427565b915081818352602084019350602081019050838560208402820111156117c657600080fd5b60005b8381101561177857816117dc88826116f8565b84525060209283019291909101906001016117c9565b600082601f83011261180357600080fd5b813561181161172282613427565b9150818183526020840193506020810190508385602084028201111561183657600080fd5b60005b83811015611778578161184c88826118a8565b8452506020928301929190910190600101611839565b600082601f83011261187357600080fd5b813561188161172282613447565b9150808252602083016020830185838301111561189d57600080fd5b6116ee8382846134b1565b80356116f28161350e565b80516116f28161350e565b6000602082840312156118d057600080fd5b60006118dc84846116f8565b949350505050565b600080600080600080600080610100898b03121561190157600080fd5b88356001600160401b0381111561191757600080fd5b6119238b828c01611862565b98505060208901356001600160401b0381111561193f57600080fd5b61194b8b828c01611782565b97505060408901356001600160401b0381111561196757600080fd5b6119738b828c01611703565b96505060608901356001600160401b0381111561198f57600080fd5b61199b8b828c01611862565b95505060806119ac8b828c016118a8565b94505060a06119bd8b828c016116f8565b93505060c06119ce8b828c016118a8565b92505060e06119df8b828c016118a8565b9150509295985092959890939650565b60008060008060008060008060006101208a8c031215611a0e57600080fd5b89356001600160401b03811115611a2457600080fd5b611a308c828d01611862565b99505060208a01356001600160401b03811115611a4c57600080fd5b611a588c828d01611782565b98505060408a01356001600160401b03811115611a7457600080fd5b611a808c828d01611703565b97505060608a01356001600160401b03811115611a9c57600080fd5b611aa88c828d01611862565b9650506080611ab98c828d016118a8565b95505060a0611aca8c828d016116f8565b94505060c0611adb8c828d016118a8565b93505060e0611aec8c828d016118a8565b925050610100611afe8c828d016118a8565b9150509295985092959850929598565b600080600080600060a08688031215611b2657600080fd5b85356001600160401b03811115611b3c57600080fd5b611b4888828901611862565b9550506020611b59888289016118a8565b94505060408601356001600160401b03811115611b7557600080fd5b611b8188828901611782565b93505060608601356001600160401b03811115611b9d57600080fd5b611ba988828901611862565b9250506080611bba888289016118a8565b9150509295509295909350565b600080600080600080600060e0888a031215611be257600080fd5b87356001600160401b03811115611bf857600080fd5b611c048a828b01611862565b9750506020611c158a828b016118a8565b96505060408801356001600160401b03811115611c3157600080fd5b611c3d8a828b01611782565b95505060608801356001600160401b03811115611c5957600080fd5b611c658a828b01611862565b9450506080611c768a828b016118a8565b93505060a08801356001600160401b03811115611c9257600080fd5b611c9e8a828b016117f2565b92505060c0611caf8a828b016118a8565b91505092959891949750929550565b60008060008060808587031215611cd457600080fd5b84356001600160401b03811115611cea57600080fd5b611cf687828801611862565b9450506020611d07878288016118a8565b93505060408501356001600160401b03811115611d2357600080fd5b611d2f878288016117f2565b9250506060611d40878288016118a8565b91505092959194509250565b60008060008060808587031215611d6257600080fd5b84356001600160401b03811115611d7857600080fd5b611d8487828801611862565b9450506020611d95878288016118a8565b93505060408501356001600160401b03811115611db157600080fd5b611d2f87828801611862565b600080600080600060a08688031215611dd557600080fd5b85356001600160401b03811115611deb57600080fd5b611df788828901611862565b9550506020611e08888289016118a8565b9450506040611e19888289016118a8565b93505060608601356001600160401b03811115611e3557600080fd5b611ba988828901611703565b600080600080600080600080610100898b031215611e5e57600080fd5b88356001600160401b03811115611e7457600080fd5b611e808b828c01611862565b9850506020611e918b828c016118a8565b9750506040611ea28b828c016118a8565b96505060608901356001600160401b03811115611ebe57600080fd5b611eca8b828c01611782565b95505060808901356001600160401b03811115611ee657600080fd5b611ef28b828c01611782565b94505060a08901356001600160401b03811115611f0e57600080fd5b6119bd8b828c01611862565b60008060008060008060c08789031215611f3357600080fd5b86356001600160401b03811115611f4957600080fd5b611f5589828a01611862565b9650506020611f6689828a016118a8565b9550506040611f7789828a016118a8565b94505060608701356001600160401b03811115611f9357600080fd5b611f9f89828a01611782565b93505060808701356001600160401b03811115611fbb57600080fd5b611fc789828a01611862565b92505060a0611fd889828a016118a8565b9150509295509295509295565b600080600080600060a08688031215611ffd57600080fd5b85356001600160401b0381111561201357600080fd5b61201f88828901611862565b9550506020612030888289016118a8565b9450506040612041888289016118a8565b93505060608601356001600160401b0381111561205d57600080fd5b611ba988828901611782565b600080600080600060a0868803121561208157600080fd5b85356001600160401b0381111561209757600080fd5b6120a388828901611862565b95505060206120b4888289016118a8565b94505060406120c5888289016118a8565b93505060608601356001600160401b038111156120e157600080fd5b611ba9888289016117f2565b600080600080600060a0868803121561210557600080fd5b85356001600160401b0381111561211b57600080fd5b61212788828901611862565b9550506020612138888289016118a8565b9450506040611b81888289016118a8565b6000806000806080858703121561215f57600080fd5b84356001600160401b0381111561217557600080fd5b61218187828801611862565b9450506020612192878288016118a8565b9350506040611d2f878288016118a8565b60008060008060008060c087890312156121bc57600080fd5b86356001600160401b038111156121d257600080fd5b6121de89828a01611862565b96505060206121ef89828a016118a8565b955050604061220089828a016118a8565b945050606061221189828a016118a8565b9350506080611fc789828a016116f8565b60008060008060008060c0878903121561223b57600080fd5b86356001600160401b0381111561225157600080fd5b61225d89828a01611862565b965050602061226e89828a016118a8565b955050604061227f89828a016118a8565b945050606061229089828a016118a8565b93505060808701356001600160401b038111156122ac57600080fd5b611fc789828a016117f2565b600080600080600060a086880312156122d057600080fd5b85356001600160401b038111156122e657600080fd5b6122f288828901611862565b9550506020612303888289016118a8565b9450506040612314888289016118a8565b9350506060611ba9888289016118a8565b60006020828403121561233757600080fd5b60006118dc84846118b3565b600061234f8383612363565b505060200190565b600061234f8383612467565b61236c81613486565b82525050565b600061237d82613474565b6123878185613478565b93506123928361346e565b8060005b838110156123c05781516123aa8882612343565b97506123b58361346e565b925050600101612396565b509495945050505050565b60006123d682613474565b6123e08185613478565b93506123eb8361346e565b8060005b838110156123c05781516124038882612343565b975061240e8361346e565b9250506001016123ef565b600061242482613474565b61242e8185613478565b93506124398361346e565b8060005b838110156123c05781516124518882612357565b975061245c8361346e565b92505060010161243d565b61236c81613491565b61236c61247c82613491565b613491565b61236c816134a6565b600061249582613474565b61249f8185613478565b93506124af8185602086016134bd565b6124b8816134ed565b9093019392505050565b60006124cf601c83613481565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c0192915050565b6000612508601083613478565b6f6d6574614368616e6765426f756e747960801b815260200192915050565b6000612534601083613478565b6f6d657461416464417070726f7665727360801b815260200192915050565b6000612560600f83613478565b6e6d657461447261696e426f756e747960881b815260200192915050565b600061258b601783613478565b7f6d657461526566756e64436f6e747269627574696f6e73000000000000000000815260200192915050565b60006125c4601183613478565b7036b2ba30a832b93337b936a0b1ba34b7b760791b815260200192915050565b60006125f1600e83613478565b6d6d657461436f6e7472696275746560901b815260200192915050565b600061261b601083613478565b6f36b2ba30a1b430b733b2a4b9b9bab2b960811b815260200192915050565b6000612647600e83613478565b6d6d6574614368616e67654461746160901b815260200192915050565b6000612671601183613478565b706d65746146756c66696c6c426f756e747960781b815260200192915050565b600061269e600f83613478565b6e6d6574614973737565426f756e747960881b815260200192915050565b60006126c9601283613478565b716d6574614368616e6765446561646c696e6560701b815260200192915050565b60006126f7601283613478565b7136b2ba30a1b430b733b2a0b8383937bb32b960711b815260200192915050565b6000612725601683613478565b7536b2ba30a932b33ab73221b7b73a3934b13aba34b7b760511b815260200192915050565b6000612757601583613478565b741b595d185058d8d95c1d119d5b199a5b1b1b595b9d605a1b815260200192915050565b6000612788601683613478565b756d6574614973737565416e64436f6e7472696275746560501b815260200192915050565b60006127ba601483613478565b731b595d18519d5b199a5b1b105b991058d8d95c1d60621b815260200192915050565b60006127ea601583613478565b741b595d18555c19185d19519d5b199a5b1b1b595b9d605a1b815260200192915050565b600061281b601983613478565b7f6d657461526566756e644d79436f6e747269627574696f6e7300000000000000815260200192915050565b6000612854600e83613478565b6d6d6574614164644973737565727360901b815260200192915050565b61236c816134a0565b6000612885826124c2565b91506128918284612470565b50602001919050565b60e081016128a8828a612363565b81810360208301526128ba81896123cb565b905081810360408301526128ce8188612372565b905081810360608301526128e2818761248a565b90506128f16080830186612467565b6128fe60a0830185612363565b61146f60c0830184612467565b610100810161291a828b612363565b818103602083015261292c818a6123cb565b905081810360408301526129408189612372565b90508181036060830152612954818861248a565b90506129636080830187612467565b61297060a0830186612363565b61297d60c0830185612467565b6111a560e0830184612467565b606081016129988286612363565b6129a56020830185612467565b6118dc6040830184612467565b608081016129c08287612363565b6129cd6020830186612467565b6129da6040830185612467565b81810360608301526129ec8184612419565b9695505050505050565b6101208101612a05828b612363565b8181036020830152612a16816124fb565b9050612a25604083018a612467565b612a326060830189612467565b8181036080830152612a4481886123cb565b905081810360a0830152612a5881876123cb565b905081810360c0830152612a6c818661248a565b9050612a7b60e0830185612467565b6111a5610100830184612467565b60c08101612a978288612363565b8181036020830152612aa881612527565b9050612ab76040830187612467565b612ac46060830186612467565b8181036080830152612ad68185612372565b90506129ec60a0830184612467565b60c08101612af38288612363565b8181036020830152612b0481612553565b9050612b136040830187612467565b612b206060830186612467565b8181036080830152612ad68185612419565b60c08101612b408288612363565b8181036020830152612b048161257e565b60a08101612b5f8287612363565b8181036020830152612b70816125b7565b9050612b7f6040830186612467565b8181036060830152612b91818561248a565b9050612ba06080830184612467565b95945050505050565b60a08101612bb78287612363565b8181036020830152612bc8816125e4565b9050612bd76040830186612467565b612be46060830185612467565b612ba06080830184612467565b60e08101612bff8289612363565b8181036020830152612c108161260e565b9050612c1f6040830188612467565b612c2c6060830187612467565b612c396080830186612467565b612c4660a0830185612363565b612c5360c0830184612467565b979650505050505050565b60c08101612c6c8288612363565b8181036020830152612c7d8161263a565b9050612c8c6040830187612467565b612c996060830186612467565b8181036080830152612ad6818561248a565b60c08101612cb98288612363565b8181036020830152612cca81612664565b9050612cd96040830187612467565b8181036060830152612ceb81866123cb565b90508181036080830152612ad6818561248a565b6101208101612d0e828b612363565b8181036020830152612d1f81612691565b90508181036040830152612d33818a6123cb565b90508181036060830152612d478189612372565b90508181036080830152612d5b818861248a565b9050612d6a60a0830187612467565b612d7760c0830186612363565b612a7b60e0830185612467565b60c08101612d928288612363565b8181036020830152612da3816126bc565b9050612db26040830187612467565b612dbf6060830186612467565b612dcc6080830185612467565b6129ec60a0830184612467565b60e08101612de78289612363565b8181036020830152612c10816126ea565b60a08101612e068287612363565b8181036020830152612bc881612718565b60e08101612e258289612363565b8181036020830152612e368161274a565b9050612e456040830188612467565b612e526060830187612467565b612e5f6080830186612467565b81810360a0830152612e718185612419565b9050612c5360c0830184612467565b6101408101612e8f828c612363565b8181036020830152612ea08161277b565b90508181036040830152612eb4818b6123cb565b90508181036060830152612ec8818a612372565b90508181036080830152612edc818961248a565b9050612eeb60a0830188612467565b612ef860c0830187612363565b612f0560e0830186612467565b612f13610100830185612467565b612f21610120830184612467565b9a9950505050505050505050565b6101008101612f3e828a612363565b8181036020830152612f4f816127ad565b9050612f5e6040830189612467565b8181036060830152612f7081886123cb565b90508181036080830152612f84818761248a565b9050612f9360a0830186612467565b81810360c0830152612fa58185612419565b905061146f60e0830184612467565b60e08101612fc28289612363565b8181036020830152612fd3816127dd565b9050612fe26040830188612467565b612fef6060830187612467565b818103608083015261300181866123cb565b905081810360a0830152612e71818561248a565b60a081016130238287612363565b81810360208301526130348161280e565b90506130436040830186612467565b8181036060830152612b918185612419565b60c081016130638288612363565b818103602083015261307481612847565b90506130836040830187612467565b6130906060830186612467565b8181036080830152612ad681856123cb565b608081016130b08287612363565b6130bd6020830186612467565b81810360408301526130cf81856123cb565b905081810360608301526129ec818461248a565b60c081016130f18289612363565b6130fe6020830188612467565b818103604083015261311081876123cb565b90508181036060830152613124818661248a565b90506131336080830185612467565b81810360a083015261146f8184612419565b606081016131538286612363565b6131606020830185612467565b8181036040830152612ba08184612419565b606081016131808286612363565b61318d6020830185612467565b8181036040830152612ba0818461248a565b608081016131ad8287612363565b6131ba6020830186612467565b6131c76040830185612467565b81810360608301526129ec8184612372565b608081016131e78287612363565b6131f46020830186612467565b6132016040830185612467565b81810360608301526129ec81846123cb565b60e08101613221828a612363565b61322e6020830189612467565b61323b6040830188612467565b818103606083015261324d81876123cb565b9050818103608083015261326181866123cb565b905081810360a0830152613275818561248a565b905061146f60c0830184612467565b60a081016132928288612363565b61329f6020830187612467565b6132ac6040830186612467565b81810360608301526132be81856123cb565b90508181036080830152612c53818461248a565b608081016132e08287612363565b6132ed6020830186612467565b6132fa6040830185612467565b81810360608301526129ec818461248a565b6080810161331a8287612363565b6133276020830186612467565b6133346040830185612467565b612ba06060830184612467565b60a0810161334f8288612363565b61335c6020830187612467565b6133696040830186612467565b6133766060830185612467565b6129ec6080830184612363565b60a081016133918288612363565b61339e6020830187612467565b6133ab6040830186612467565b6133b86060830185612467565b8181036080830152612c538184612419565b608081016133d88287612467565b6133276020830186612871565b602081016116f28284612481565b602081016116f28284612467565b6040518181016001600160401b038111828210171561341f57600080fd5b604052919050565b60006001600160401b0382111561343d57600080fd5b5060209081020190565b60006001600160401b0382111561345d57600080fd5b506020601f91909101601f19160190565b60200190565b5190565b90815260200190565b919050565b60006116f282613494565b90565b6001600160a01b031690565b60ff1690565b60006116f282613486565b82818337506000910152565b60005b838110156134d85781810151838201526020016134c0565b838111156134e7576000848401525b50505050565b601f01601f191690565b61350081613486565b811461350b57600080fd5b50565b6135008161349156fea365627a7a72305820d46ac7774b9f5e0e1a92bca46972d482a42e14e8d7cab347f06be9b2199227436c6578706572696d656e74616cf564736f6c63430005090040", + "deployedBytecode": "0x60806040526004361061012a5760003560e01c8063926b4e5f116100ab578063b1e6bcbb1161006f578063b1e6bcbb1461031c578063c353a38a1461032f578063dc5065a81461034f578063df4015fc1461036f578063ec34c4c01461038f578063fbb9e715146103af5761012a565b8063926b4e5f1461027a57806393ee9f4f1461029a578063a39da942146102ba578063a84d579d146102dc578063ae96762d146102fc5761012a565b8063432326a9116100f2578063432326a9146101d1578063484621d5146101e4578063632ebc7b1461020457806367d407df146102245780637984dfe61461025a5761012a565b80630dd72a791461012f578063103cd44f14610151578063189002051461017157806332a7856d1461019157806336bb9122146101b1575b600080fd5b34801561013b57600080fd5b5061014f61014a366004611bc7565b6103cf565b005b34801561015d57600080fd5b5061014f61016c366004611f1a565b6104db565b34801561017d57600080fd5b5061014f61018c3660046120ed565b6105e2565b34801561019d57600080fd5b5061014f6101ac3660046122b8565b6106e4565b3480156101bd57600080fd5b5061014f6101cc366004611e41565b6107ab565b61014f6101df366004612149565b6108bc565b3480156101f057600080fd5b5061014f6101ff366004611d4c565b610a36565b34801561021057600080fd5b5061014f61021f366004611cbe565b610af9565b34801561023057600080fd5b5061024461023f3660046118be565b610bbc565b60405161025191906133f3565b60405180910390f35b34801561026657600080fd5b5061014f610275366004612222565b610bce565b34801561028657600080fd5b5061014f610295366004611dbd565b610c97565b3480156102a657600080fd5b5061014f6102b5366004612149565b610d5e565b3480156102c657600080fd5b506102cf610e21565b60405161025191906133e5565b3480156102e857600080fd5b5061014f6102f73660046121a3565b610e30565b34801561030857600080fd5b5061014f610317366004612069565b610efb565b61024461032a3660046119ef565b610fc2565b34801561033b57600080fd5b5061014f61034a366004611fe5565b6111b2565b34801561035b57600080fd5b5061014f61036a3660046121a3565b611279565b34801561037b57600080fd5b5061024461038a3660046118e4565b611344565b34801561039b57600080fd5b5061014f6103aa366004611b0e565b61147b565b3480156103bb57600080fd5b5061014f6103ca366004612069565b611542565b6000308787878787876040516020016103ee9796959493929190612f2f565b6040516020818303038152906040528051906020012090506000610412828a611609565b90506001600160a01b03811661042757600080fd5b6001600160a01b038116600090815260016020526040902054831461044b57600080fd5b6001600160a01b03808216600090815260016020819052604080832080549092019091559054905163184442b760e31b815291169063c22215b89061049e9084908c908c908c908c908c906004016130e3565b600060405180830381600087803b1580156104b857600080fd5b505af11580156104cc573d6000803e3d6000fd5b50505050505050505050505050565b60003086868686866040516020016104f896959493929190612fb4565b604051602081830303815290604052805190602001209050600061051c8289611609565b90506001600160a01b03811661053157600080fd5b6001600160a01b038116600090815260016020526040902054831461055557600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051630c49604560e41b815291169063c4960450906105a69084908b908b908b908b90600401613284565b600060405180830381600087803b1580156105c057600080fd5b505af11580156105d4573d6000803e3d6000fd5b505050505050505050505050565b600030858585856040516020016105fd959493929190612c5e565b60405160208183030381529060405280519060200120905060006106218288611609565b90506001600160a01b03811661063657600080fd5b6001600160a01b038116600090815260016020526040902054831461065a57600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051631fbe084f60e21b8152911690637ef8213c906106a99084908a908a908a906004016132d2565b600060405180830381600087803b1580156106c357600080fd5b505af11580156106d7573d6000803e3d6000fd5b5050505050505050505050565b600030858585856040516020016106ff959493929190612d84565b60405160208183030381529060405280519060200120905060006107238288611609565b90506001600160a01b03811661073857600080fd5b6001600160a01b038116600090815260016020526040902054831461075c57600080fd5b6001600160a01b03808216600090815260016020819052604080832080549092019091559054905163aa17aaef60e01b815291169063aa17aaef906106a99084908a908a908a9060040161330c565b600030888888888888886040516020016107cc9897969594939291906129f6565b60405160208183030381529060405280519060200120905060006107f0828b611609565b90506001600160a01b03811661080557600080fd5b6001600160a01b038116600090815260016020526040902054831461082957600080fd5b6001600160a01b03808216600090815260016020819052604080832080549092019091559054905163162f1aed60e31b815291169063b178d7689061087e9084908d908d908d908d908d908d90600401613213565b600060405180830381600087803b15801561089857600080fd5b505af11580156108ac573d6000803e3d6000fd5b5050505050505050505050505050565b6000308484846040516020016108d59493929190612ba9565b60405160208183030381529060405280519060200120905060006108f98287611609565b90506001600160a01b03811661090e57600080fd5b6001600160a01b038116600090815260016020526040902054831461093257600080fd5b6001600160a01b03811660009081526001602081905260409091208054909101905534156109c757600054604051632823de4f60e21b81526001600160a01b039091169063a08f793c9034906109909085908a908a9060040161298a565b6000604051808303818588803b1580156109a957600080fd5b505af11580156109bd573d6000803e3d6000fd5b5050505050610a2e565b600054604051632823de4f60e21b81526001600160a01b039091169063a08f793c906109fb9084908990899060040161298a565b600060405180830381600087803b158015610a1557600080fd5b505af1158015610a29573d6000803e3d6000fd5b505050505b505050505050565b600030848484604051602001610a4f9493929190612b51565b6040516020818303038152906040528051906020012090506000610a738287611609565b90506001600160a01b038116610a8857600080fd5b6001600160a01b0381166000908152600160205260409020548314610aac57600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051632562712d60e11b8152911690634ac4e25a906109fb90849089908990600401613172565b600030848484604051602001610b129493929190613015565b6040516020818303038152906040528051906020012090506000610b368287611609565b90506001600160a01b038116610b4b57600080fd5b6001600160a01b0381166000908152600160205260409020548314610b6f57600080fd5b6001600160a01b03808216600090815260016020819052604080832080549092019091559054905163edba701360e01b815291169063edba7013906109fb90849089908990600401613145565b60016020526000908152604090205481565b6000308686868686604051602001610beb96959493929190612e17565b6040516020818303038152906040528051906020012090506000610c0f8289611609565b90506001600160a01b038116610c2457600080fd5b6001600160a01b0381166000908152600160205260409020548314610c4857600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051621e4fc760e31b815291169062f27e38906105a69084908b908b908b908b90600401613383565b60003085858585604051602001610cb2959493929190612a89565b6040516020818303038152906040528051906020012090506000610cd68288611609565b90506001600160a01b038116610ceb57600080fd5b6001600160a01b0381166000908152600160205260409020548314610d0f57600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051634daf1bb560e01b8152911690634daf1bb5906106a99084908a908a908a9060040161319f565b600030848484604051602001610d779493929190612df8565b6040516020818303038152906040528051906020012090506000610d9b8287611609565b90506001600160a01b038116610db057600080fd5b6001600160a01b0381166000908152600160205260409020548314610dd457600080fd5b6001600160a01b0380821660009081526001602081905260408083208054909201909155905490516393c1ccc960e01b81529116906393c1ccc9906109fb9084908990899060040161298a565b6000546001600160a01b031681565b6000308686868686604051602001610e4d96959493929190612dd9565b6040516020818303038152906040528051906020012090506000610e718289611609565b90506001600160a01b038116610e8657600080fd5b6001600160a01b0381166000908152600160205260409020548314610eaa57600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051632092e25960e01b8152911690632092e259906105a69084908b908b908b908b90600401613341565b60003085858585604051602001610f16959493929190612ae5565b6040516020818303038152906040528051906020012090506000610f3a8288611609565b90506001600160a01b038116610f4f57600080fd5b6001600160a01b0381166000908152600160205260409020548314610f7357600080fd5b6001600160a01b0380821660009081526001602081905260408083208054909201909155905490516306eade7960e31b8152911690633756f3c8906106a99084908a908a908a906004016129b2565b600080308a8a8a8a8a8a8a8a604051602001610fe699989796959493929190612e80565b604051602081830303815290604052805190602001209050600061100a828d611609565b90506001600160a01b03811661101f57600080fd5b6001600160a01b038116600090815260016020526040902054841461104357600080fd5b6001600160a01b0381166000908152600160208190526040909120805490910190553415611115576000809054906101000a90046001600160a01b03166001600160a01b03166306060ae334838e8e8e8e8e8e8e6040518a63ffffffff1660e01b81526004016110ba98979695949392919061290b565b6020604051808303818588803b1580156110d357600080fd5b505af11580156110e7573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525061110c9190810190612325565b925050506111a5565b6000546040516306060ae360e01b81526001600160a01b03909116906306060ae3906111539084908f908f908f908f908f908f908f9060040161290b565b602060405180830381600087803b15801561116d57600080fd5b505af1158015611181573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061110c9190810190612325565b9998505050505050505050565b600030858585856040516020016111cd959493929190613055565b60405160208183030381529060405280519060200120905060006111f18288611609565b90506001600160a01b03811661120657600080fd5b6001600160a01b038116600090815260016020526040902054831461122a57600080fd5b6001600160a01b03808216600090815260016020819052604080832080549092019091559054905163c6a8b42b60e01b815291169063c6a8b42b906106a99084908a908a908a906004016131d9565b600030868686868660405160200161129696959493929190612bf1565b60405160208183030381529060405280519060200120905060006112ba8289611609565b90506001600160a01b0381166112cf57600080fd5b6001600160a01b03811660009081526001602052604090205483146112f357600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051639e64d9bf60e01b8152911690639e64d9bf906105a69084908b908b908b908b90600401613341565b6000803089898989898989604051602001611366989796959493929190612cff565b604051602081830303815290604052805190602001209050600061138a828c611609565b90506001600160a01b03811661139f57600080fd5b6001600160a01b03811660009081526001602052604090205484146113c357600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051632b3d9e9760e11b815291169063567b3d2e906114189084908e908e908e908e908e908e9060040161289a565b602060405180830381600087803b15801561143257600080fd5b505af1158015611446573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061146a9190810190612325565b925050505b98975050505050505050565b60003085858585604051602001611496959493929190612cab565b60405160208183030381529060405280519060200120905060006114ba8288611609565b90506001600160a01b0381166114cf57600080fd5b6001600160a01b03811660009081526001602052604090205483146114f357600080fd5b6001600160a01b0380821660009081526001602081905260408083208054909201909155905490516397d7666560e01b81529116906397d76665906106a99084908a908a908a906004016130a2565b6000308585858560405160200161155d959493929190612b32565b60405160208183030381529060405280519060200120905060006115818288611609565b90506001600160a01b03811661159657600080fd5b6001600160a01b03811660009081526001602052604090205483146115ba57600080fd5b6001600160a01b03808216600090815260016020819052604080832080549092019091559054905163a071fbd560e01b815291169063a071fbd5906106a99084908a908a908a906004016129b2565b600080600080845160411461162457600093505050506116f2565b50505060208201516040830151606084015160001a601b81101561164657601b015b8060ff16601b1415801561165e57508060ff16601c14155b1561166f57600093505050506116f2565b600186604051602001611682919061287a565b60405160208183030381529060405280519060200120828585604051600081526020016040526040516116b894939291906133ca565b6020604051602081039080840390855afa1580156116da573d6000803e3d6000fd5b5050506020604051035193505050506116f2565b5050505b92915050565b80356116f2816134f7565b600082601f83011261171457600080fd5b813561172761172282613427565b613401565b9150818183526020840193506020810190508385602084028201111561174c57600080fd5b60005b83811015611778578161176288826116f8565b845250602092830192919091019060010161174f565b5050505092915050565b600082601f83011261179357600080fd5b81356117a161172282613427565b915081818352602084019350602081019050838560208402820111156117c657600080fd5b60005b8381101561177857816117dc88826116f8565b84525060209283019291909101906001016117c9565b600082601f83011261180357600080fd5b813561181161172282613427565b9150818183526020840193506020810190508385602084028201111561183657600080fd5b60005b83811015611778578161184c88826118a8565b8452506020928301929190910190600101611839565b600082601f83011261187357600080fd5b813561188161172282613447565b9150808252602083016020830185838301111561189d57600080fd5b6116ee8382846134b1565b80356116f28161350e565b80516116f28161350e565b6000602082840312156118d057600080fd5b60006118dc84846116f8565b949350505050565b600080600080600080600080610100898b03121561190157600080fd5b88356001600160401b0381111561191757600080fd5b6119238b828c01611862565b98505060208901356001600160401b0381111561193f57600080fd5b61194b8b828c01611782565b97505060408901356001600160401b0381111561196757600080fd5b6119738b828c01611703565b96505060608901356001600160401b0381111561198f57600080fd5b61199b8b828c01611862565b95505060806119ac8b828c016118a8565b94505060a06119bd8b828c016116f8565b93505060c06119ce8b828c016118a8565b92505060e06119df8b828c016118a8565b9150509295985092959890939650565b60008060008060008060008060006101208a8c031215611a0e57600080fd5b89356001600160401b03811115611a2457600080fd5b611a308c828d01611862565b99505060208a01356001600160401b03811115611a4c57600080fd5b611a588c828d01611782565b98505060408a01356001600160401b03811115611a7457600080fd5b611a808c828d01611703565b97505060608a01356001600160401b03811115611a9c57600080fd5b611aa88c828d01611862565b9650506080611ab98c828d016118a8565b95505060a0611aca8c828d016116f8565b94505060c0611adb8c828d016118a8565b93505060e0611aec8c828d016118a8565b925050610100611afe8c828d016118a8565b9150509295985092959850929598565b600080600080600060a08688031215611b2657600080fd5b85356001600160401b03811115611b3c57600080fd5b611b4888828901611862565b9550506020611b59888289016118a8565b94505060408601356001600160401b03811115611b7557600080fd5b611b8188828901611782565b93505060608601356001600160401b03811115611b9d57600080fd5b611ba988828901611862565b9250506080611bba888289016118a8565b9150509295509295909350565b600080600080600080600060e0888a031215611be257600080fd5b87356001600160401b03811115611bf857600080fd5b611c048a828b01611862565b9750506020611c158a828b016118a8565b96505060408801356001600160401b03811115611c3157600080fd5b611c3d8a828b01611782565b95505060608801356001600160401b03811115611c5957600080fd5b611c658a828b01611862565b9450506080611c768a828b016118a8565b93505060a08801356001600160401b03811115611c9257600080fd5b611c9e8a828b016117f2565b92505060c0611caf8a828b016118a8565b91505092959891949750929550565b60008060008060808587031215611cd457600080fd5b84356001600160401b03811115611cea57600080fd5b611cf687828801611862565b9450506020611d07878288016118a8565b93505060408501356001600160401b03811115611d2357600080fd5b611d2f878288016117f2565b9250506060611d40878288016118a8565b91505092959194509250565b60008060008060808587031215611d6257600080fd5b84356001600160401b03811115611d7857600080fd5b611d8487828801611862565b9450506020611d95878288016118a8565b93505060408501356001600160401b03811115611db157600080fd5b611d2f87828801611862565b600080600080600060a08688031215611dd557600080fd5b85356001600160401b03811115611deb57600080fd5b611df788828901611862565b9550506020611e08888289016118a8565b9450506040611e19888289016118a8565b93505060608601356001600160401b03811115611e3557600080fd5b611ba988828901611703565b600080600080600080600080610100898b031215611e5e57600080fd5b88356001600160401b03811115611e7457600080fd5b611e808b828c01611862565b9850506020611e918b828c016118a8565b9750506040611ea28b828c016118a8565b96505060608901356001600160401b03811115611ebe57600080fd5b611eca8b828c01611782565b95505060808901356001600160401b03811115611ee657600080fd5b611ef28b828c01611782565b94505060a08901356001600160401b03811115611f0e57600080fd5b6119bd8b828c01611862565b60008060008060008060c08789031215611f3357600080fd5b86356001600160401b03811115611f4957600080fd5b611f5589828a01611862565b9650506020611f6689828a016118a8565b9550506040611f7789828a016118a8565b94505060608701356001600160401b03811115611f9357600080fd5b611f9f89828a01611782565b93505060808701356001600160401b03811115611fbb57600080fd5b611fc789828a01611862565b92505060a0611fd889828a016118a8565b9150509295509295509295565b600080600080600060a08688031215611ffd57600080fd5b85356001600160401b0381111561201357600080fd5b61201f88828901611862565b9550506020612030888289016118a8565b9450506040612041888289016118a8565b93505060608601356001600160401b0381111561205d57600080fd5b611ba988828901611782565b600080600080600060a0868803121561208157600080fd5b85356001600160401b0381111561209757600080fd5b6120a388828901611862565b95505060206120b4888289016118a8565b94505060406120c5888289016118a8565b93505060608601356001600160401b038111156120e157600080fd5b611ba9888289016117f2565b600080600080600060a0868803121561210557600080fd5b85356001600160401b0381111561211b57600080fd5b61212788828901611862565b9550506020612138888289016118a8565b9450506040611b81888289016118a8565b6000806000806080858703121561215f57600080fd5b84356001600160401b0381111561217557600080fd5b61218187828801611862565b9450506020612192878288016118a8565b9350506040611d2f878288016118a8565b60008060008060008060c087890312156121bc57600080fd5b86356001600160401b038111156121d257600080fd5b6121de89828a01611862565b96505060206121ef89828a016118a8565b955050604061220089828a016118a8565b945050606061221189828a016118a8565b9350506080611fc789828a016116f8565b60008060008060008060c0878903121561223b57600080fd5b86356001600160401b0381111561225157600080fd5b61225d89828a01611862565b965050602061226e89828a016118a8565b955050604061227f89828a016118a8565b945050606061229089828a016118a8565b93505060808701356001600160401b038111156122ac57600080fd5b611fc789828a016117f2565b600080600080600060a086880312156122d057600080fd5b85356001600160401b038111156122e657600080fd5b6122f288828901611862565b9550506020612303888289016118a8565b9450506040612314888289016118a8565b9350506060611ba9888289016118a8565b60006020828403121561233757600080fd5b60006118dc84846118b3565b600061234f8383612363565b505060200190565b600061234f8383612467565b61236c81613486565b82525050565b600061237d82613474565b6123878185613478565b93506123928361346e565b8060005b838110156123c05781516123aa8882612343565b97506123b58361346e565b925050600101612396565b509495945050505050565b60006123d682613474565b6123e08185613478565b93506123eb8361346e565b8060005b838110156123c05781516124038882612343565b975061240e8361346e565b9250506001016123ef565b600061242482613474565b61242e8185613478565b93506124398361346e565b8060005b838110156123c05781516124518882612357565b975061245c8361346e565b92505060010161243d565b61236c81613491565b61236c61247c82613491565b613491565b61236c816134a6565b600061249582613474565b61249f8185613478565b93506124af8185602086016134bd565b6124b8816134ed565b9093019392505050565b60006124cf601c83613481565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c0192915050565b6000612508601083613478565b6f6d6574614368616e6765426f756e747960801b815260200192915050565b6000612534601083613478565b6f6d657461416464417070726f7665727360801b815260200192915050565b6000612560600f83613478565b6e6d657461447261696e426f756e747960881b815260200192915050565b600061258b601783613478565b7f6d657461526566756e64436f6e747269627574696f6e73000000000000000000815260200192915050565b60006125c4601183613478565b7036b2ba30a832b93337b936a0b1ba34b7b760791b815260200192915050565b60006125f1600e83613478565b6d6d657461436f6e7472696275746560901b815260200192915050565b600061261b601083613478565b6f36b2ba30a1b430b733b2a4b9b9bab2b960811b815260200192915050565b6000612647600e83613478565b6d6d6574614368616e67654461746160901b815260200192915050565b6000612671601183613478565b706d65746146756c66696c6c426f756e747960781b815260200192915050565b600061269e600f83613478565b6e6d6574614973737565426f756e747960881b815260200192915050565b60006126c9601283613478565b716d6574614368616e6765446561646c696e6560701b815260200192915050565b60006126f7601283613478565b7136b2ba30a1b430b733b2a0b8383937bb32b960711b815260200192915050565b6000612725601683613478565b7536b2ba30a932b33ab73221b7b73a3934b13aba34b7b760511b815260200192915050565b6000612757601583613478565b741b595d185058d8d95c1d119d5b199a5b1b1b595b9d605a1b815260200192915050565b6000612788601683613478565b756d6574614973737565416e64436f6e7472696275746560501b815260200192915050565b60006127ba601483613478565b731b595d18519d5b199a5b1b105b991058d8d95c1d60621b815260200192915050565b60006127ea601583613478565b741b595d18555c19185d19519d5b199a5b1b1b595b9d605a1b815260200192915050565b600061281b601983613478565b7f6d657461526566756e644d79436f6e747269627574696f6e7300000000000000815260200192915050565b6000612854600e83613478565b6d6d6574614164644973737565727360901b815260200192915050565b61236c816134a0565b6000612885826124c2565b91506128918284612470565b50602001919050565b60e081016128a8828a612363565b81810360208301526128ba81896123cb565b905081810360408301526128ce8188612372565b905081810360608301526128e2818761248a565b90506128f16080830186612467565b6128fe60a0830185612363565b61146f60c0830184612467565b610100810161291a828b612363565b818103602083015261292c818a6123cb565b905081810360408301526129408189612372565b90508181036060830152612954818861248a565b90506129636080830187612467565b61297060a0830186612363565b61297d60c0830185612467565b6111a560e0830184612467565b606081016129988286612363565b6129a56020830185612467565b6118dc6040830184612467565b608081016129c08287612363565b6129cd6020830186612467565b6129da6040830185612467565b81810360608301526129ec8184612419565b9695505050505050565b6101208101612a05828b612363565b8181036020830152612a16816124fb565b9050612a25604083018a612467565b612a326060830189612467565b8181036080830152612a4481886123cb565b905081810360a0830152612a5881876123cb565b905081810360c0830152612a6c818661248a565b9050612a7b60e0830185612467565b6111a5610100830184612467565b60c08101612a978288612363565b8181036020830152612aa881612527565b9050612ab76040830187612467565b612ac46060830186612467565b8181036080830152612ad68185612372565b90506129ec60a0830184612467565b60c08101612af38288612363565b8181036020830152612b0481612553565b9050612b136040830187612467565b612b206060830186612467565b8181036080830152612ad68185612419565b60c08101612b408288612363565b8181036020830152612b048161257e565b60a08101612b5f8287612363565b8181036020830152612b70816125b7565b9050612b7f6040830186612467565b8181036060830152612b91818561248a565b9050612ba06080830184612467565b95945050505050565b60a08101612bb78287612363565b8181036020830152612bc8816125e4565b9050612bd76040830186612467565b612be46060830185612467565b612ba06080830184612467565b60e08101612bff8289612363565b8181036020830152612c108161260e565b9050612c1f6040830188612467565b612c2c6060830187612467565b612c396080830186612467565b612c4660a0830185612363565b612c5360c0830184612467565b979650505050505050565b60c08101612c6c8288612363565b8181036020830152612c7d8161263a565b9050612c8c6040830187612467565b612c996060830186612467565b8181036080830152612ad6818561248a565b60c08101612cb98288612363565b8181036020830152612cca81612664565b9050612cd96040830187612467565b8181036060830152612ceb81866123cb565b90508181036080830152612ad6818561248a565b6101208101612d0e828b612363565b8181036020830152612d1f81612691565b90508181036040830152612d33818a6123cb565b90508181036060830152612d478189612372565b90508181036080830152612d5b818861248a565b9050612d6a60a0830187612467565b612d7760c0830186612363565b612a7b60e0830185612467565b60c08101612d928288612363565b8181036020830152612da3816126bc565b9050612db26040830187612467565b612dbf6060830186612467565b612dcc6080830185612467565b6129ec60a0830184612467565b60e08101612de78289612363565b8181036020830152612c10816126ea565b60a08101612e068287612363565b8181036020830152612bc881612718565b60e08101612e258289612363565b8181036020830152612e368161274a565b9050612e456040830188612467565b612e526060830187612467565b612e5f6080830186612467565b81810360a0830152612e718185612419565b9050612c5360c0830184612467565b6101408101612e8f828c612363565b8181036020830152612ea08161277b565b90508181036040830152612eb4818b6123cb565b90508181036060830152612ec8818a612372565b90508181036080830152612edc818961248a565b9050612eeb60a0830188612467565b612ef860c0830187612363565b612f0560e0830186612467565b612f13610100830185612467565b612f21610120830184612467565b9a9950505050505050505050565b6101008101612f3e828a612363565b8181036020830152612f4f816127ad565b9050612f5e6040830189612467565b8181036060830152612f7081886123cb565b90508181036080830152612f84818761248a565b9050612f9360a0830186612467565b81810360c0830152612fa58185612419565b905061146f60e0830184612467565b60e08101612fc28289612363565b8181036020830152612fd3816127dd565b9050612fe26040830188612467565b612fef6060830187612467565b818103608083015261300181866123cb565b905081810360a0830152612e71818561248a565b60a081016130238287612363565b81810360208301526130348161280e565b90506130436040830186612467565b8181036060830152612b918185612419565b60c081016130638288612363565b818103602083015261307481612847565b90506130836040830187612467565b6130906060830186612467565b8181036080830152612ad681856123cb565b608081016130b08287612363565b6130bd6020830186612467565b81810360408301526130cf81856123cb565b905081810360608301526129ec818461248a565b60c081016130f18289612363565b6130fe6020830188612467565b818103604083015261311081876123cb565b90508181036060830152613124818661248a565b90506131336080830185612467565b81810360a083015261146f8184612419565b606081016131538286612363565b6131606020830185612467565b8181036040830152612ba08184612419565b606081016131808286612363565b61318d6020830185612467565b8181036040830152612ba0818461248a565b608081016131ad8287612363565b6131ba6020830186612467565b6131c76040830185612467565b81810360608301526129ec8184612372565b608081016131e78287612363565b6131f46020830186612467565b6132016040830185612467565b81810360608301526129ec81846123cb565b60e08101613221828a612363565b61322e6020830189612467565b61323b6040830188612467565b818103606083015261324d81876123cb565b9050818103608083015261326181866123cb565b905081810360a0830152613275818561248a565b905061146f60c0830184612467565b60a081016132928288612363565b61329f6020830187612467565b6132ac6040830186612467565b81810360608301526132be81856123cb565b90508181036080830152612c53818461248a565b608081016132e08287612363565b6132ed6020830186612467565b6132fa6040830185612467565b81810360608301526129ec818461248a565b6080810161331a8287612363565b6133276020830186612467565b6133346040830185612467565b612ba06060830184612467565b60a0810161334f8288612363565b61335c6020830187612467565b6133696040830186612467565b6133766060830185612467565b6129ec6080830184612363565b60a081016133918288612363565b61339e6020830187612467565b6133ab6040830186612467565b6133b86060830185612467565b8181036080830152612c538184612419565b608081016133d88287612467565b6133276020830186612871565b602081016116f28284612481565b602081016116f28284612467565b6040518181016001600160401b038111828210171561341f57600080fd5b604052919050565b60006001600160401b0382111561343d57600080fd5b5060209081020190565b60006001600160401b0382111561345d57600080fd5b506020601f91909101601f19160190565b60200190565b5190565b90815260200190565b919050565b60006116f282613494565b90565b6001600160a01b031690565b60ff1690565b60006116f282613486565b82818337506000910152565b60005b838110156134d85781810151838201526020016134c0565b838111156134e7576000848401525b50505050565b601f01601f191690565b61350081613486565b811461350b57600080fd5b50565b6135008161349156fea365627a7a72305820d46ac7774b9f5e0e1a92bca46972d482a42e14e8d7cab347f06be9b2199227436c6578706572696d656e74616cf564736f6c63430005090040", + "sourceMap": "109:21784:4:-;;;336:97;8:9:-1;5:2;;;30:1;27;20:12;5:2;336:97:4;;;;;;;;;;;;;;;;;;;;;381:16;:46;;-1:-1:-1;;;;;;381:46:4;-1:-1:-1;;;;;381:46:4;;;;;;;;;;109:21784;;5:134:-1;83:13;;101:33;83:13;101:33;;;68:71;;;;;146:263;;261:2;249:9;240:7;236:23;232:32;229:2;;;277:1;274;267:12;229:2;312:1;329:64;385:7;365:9;329:64;;;319:74;223:186;-1:-1;;;;223:186;416:91;;-1:-1;;;;;576:54;;478:24;559:76;642:117;711:24;729:5;711:24;;;704:5;701:35;691:2;;750:1;747;740:12;691:2;685:74;;;109:21784:4;;;;;;", + "deployedSourceMap": "109:21784:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12683:1253;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12683:1253:4;;;;;;;;:::i;:::-;;10500:1036;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10500:1036:4;;;;;;;;:::i;17458:930::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17458:930:4;;;;;;;;:::i;18394:958::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18394:958:4;;;;;;;;:::i;13942:1321::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13942:1321:4;;;;;;;;:::i;4255:959::-;;;;;;;;;:::i;8779:794::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8779:794:4;;;;;;;;:::i;6057:850::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6057:850:4;;;;;;;;:::i;284:43::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;284:43:4;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;11542:1135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11542:1135:4;;;;;;;;:::i;20314:954::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20314:954:4;;;;;;;;:::i;5222:829::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5222:829:4;;;;;;;;:::i;239:40::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;239:40:4;;;:::i;:::-;;;;;;;;16371:1081;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16371:1081:4;;;;;;;;:::i;7857:916::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7857:916:4;;;;;;;;:::i;1939:2310::-;;;;;;;;;:::i;19358:950::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19358:950:4;;;;;;;;:::i;15269:1096::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15269:1096:4;;;;;;;;:::i;439:1494::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;439:1494:4;;;;;;;;:::i;9579:915::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9579:915:4;;;;;;;;:::i;6913:938::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6913:938:4;;;;;;;;:::i;12683:1253::-;12936:16;12984:4;13117:9;13179:11;13243:5;13301:11;13365:13;13431:6;12965:473;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12965:473:4;;;12955:484;;;;;;12936:503;;13446:14;13463:31;13473:8;13483:10;13463:9;:31::i;:::-;13446:48;-1:-1:-1;;;;;;13558:20:4;;13550:29;;;;;;-1:-1:-1;;;;;13604:19:4;;;;;;:11;:19;;;;;;13594:29;;13586:38;;;;;;-1:-1:-1;;;;;13685:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;13715:16;;:215;;-1:-1:-1;;;13715:215:4;;:16;;;:33;;:215;;13697:6;;13780:9;;13814:11;;13850:5;;13880:11;;13916:13;;13715:215;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13715:215:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13715:215:4;;;;12683:1253;;;;;;;;;:::o;10500:1036::-;10724:16;10772:4;10906:9;10968:14;11035:11;11099:5;11157:6;10753:411;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;10753:411:4;;;10743:422;;;;;;10724:441;;11172:14;11189:31;11199:8;11209:10;11189:9;:31::i;:::-;11172:48;-1:-1:-1;;;;;;11284:20:4;;11276:29;;;;;;-1:-1:-1;;;;;11330:19:4;;;;;;:11;:19;;;;;;11320:29;;11312:38;;;;;;-1:-1:-1;;;;;11411:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;11441:16;;:89;;-1:-1:-1;;;11441:89:4;;:16;;;:34;;:89;;11423:6;;11484:9;;11495:14;;11511:11;;11524:5;;11441:89;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11441:89:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11441:89:4;;;;10500:1036;;;;;;;;:::o;17458:930::-;17626:16;17674:4;17801:9;17863;17925:5;17983:6;17655:335;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;17655:335:4;;;17645:346;;;;;;17626:365;;17998:14;18015:31;18025:8;18035:10;18015:9;:31::i;:::-;17998:48;-1:-1:-1;;;;;;18110:20:4;;18102:29;;;;;;-1:-1:-1;;;;;18156:19:4;;;;;;:11;:19;;;;;;18146:29;;18138:38;;;;;;-1:-1:-1;;;;;18237:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;18267:16;;:115;;-1:-1:-1;;;18267:115:4;;:16;;;:27;;:115;;18249:6;;18320:9;;18348;;18376:5;;18267:115;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18267:115:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18267:115:4;;;;17458:930;;;;;;;:::o;18394:958::-;18562:16;18610:4;18741:9;18803;18865;18927:6;18591:343;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;18591:343:4;;;18581:354;;;;;;18562:373;;18942:14;18959:31;18969:8;18979:10;18959:9;:31::i;:::-;18942:48;-1:-1:-1;;;;;;19054:20:4;;19046:29;;;;;;-1:-1:-1;;;;;19100:19:4;;;;;;:11;:19;;;;;;19090:29;;19082:38;;;;;;-1:-1:-1;;;;;19181:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;19211:16;;:135;;-1:-1:-1;;;19211:135:4;;:16;;;:31;;:135;;19193:6;;19272:9;;19304;;19336;;19211:135;;;;13942:1321;14215:16;14263:4;14392:9;14454;14516:8;14577:10;14640:5;14698:9;14760:6;14244:523;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;14244:523:4;;;14234:534;;;;;;14215:553;;14775:14;14792:31;14802:8;14812:10;14792:9;:31::i;:::-;14775:48;-1:-1:-1;;;;;;14887:20:4;;14879:29;;;;;;-1:-1:-1;;;;;14933:19:4;;;;;;:11;:19;;;;;;14923:29;;14915:38;;;;;;-1:-1:-1;;;;;15014:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;15044:16;;:213;;-1:-1:-1;;;15044:213:4;;:16;;;:29;;:213;;15026:6;;15101:9;;15131;;15161:8;;15190:10;;15221:5;;15247:9;;15044:213;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15044:213:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15044:213:4;;;;13942:1321;;;;;;;;;;:::o;4255:959::-;4405:16;4453:4;4580:9;4642:7;4702:6;4434:275;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4434:275:4;;;4424:286;;;;;;4405:305;;4717:14;4734:31;4744:8;4754:10;4734:9;:31::i;:::-;4717:48;-1:-1:-1;;;;;;4831:20:4;;4823:29;;;;;;-1:-1:-1;;;;;4877:19:4;;;;;;:11;:19;;;;;;4867:29;;4859:38;;;;;;-1:-1:-1;;;;;4958:19:4;;;;;;:11;:19;;;;;;;;:21;;;;;;;4992:9;:13;4988:221;;5015:16;;:90;;-1:-1:-1;;;5015:90:4;;-1:-1:-1;;;;;5015:16:4;;;;:27;;5049:9;;5015:90;;5076:6;;5086:9;;5097:7;;5015:90;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5015:90:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5015:90:4;;;;;4988:221;;;5128:16;;:73;;-1:-1:-1;;;5128:73:4;;-1:-1:-1;;;;;5128:16:4;;;;:27;;:73;;5172:6;;5182:9;;5193:7;;5128:73;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5128:73:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5128:73:4;;;;4988:221;4255:959;;;;;;:::o;8779:794::-;8929:16;8977:4;9107:9;9169:5;9227:6;8958:276;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8958:276:4;;;8948:287;;;;;;8929:306;;9242:14;9259:31;9269:8;9279:10;9259:9;:31::i;:::-;9242:48;-1:-1:-1;;;;;;9354:20:4;;9346:29;;;;;;-1:-1:-1;;;;;9400:19:4;;;;;;:11;:19;;;;;;9390:29;;9382:38;;;;;;-1:-1:-1;;;;;9481:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;9511:16;;:56;;-1:-1:-1;;;9511:56:4;;:16;;;:30;;:56;;9493:6;;9550:9;;9561:5;;9511:56;;;;6057:850;6223:16;6271:4;6409:9;6471:16;6540:6;6252:295;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6252:295:4;;;6242:306;;;;;;6223:325;;6555:14;6572:31;6582:8;6592:10;6572:9;:31::i;:::-;6555:48;-1:-1:-1;;;;;;6669:20:4;;6661:29;;;;;;-1:-1:-1;;;;;6715:19:4;;;;;;:11;:19;;;;;;6705:29;;6697:38;;;;;;-1:-1:-1;;;;;6796:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;6826:16;;:75;;-1:-1:-1;;;6826:75:4;;:16;;;:38;;:75;;6808:6;;6873:9;;6884:16;;6826:75;;;;284:43;;;;;;;;;;;;;:::o;11542:1135::-;11753:16;11801:4;11935:9;11997:14;12064:11;12128:13;12194:6;11782:419;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11782:419:4;;;11772:430;;;;;;11753:449;;12209:14;12226:31;12236:8;12246:10;12226:9;:31::i;:::-;12209:48;-1:-1:-1;;;;;;12321:20:4;;12313:29;;;;;;-1:-1:-1;;;;;12367:19:4;;;;;;:11;:19;;;;;;12357:29;;12349:38;;;;;;-1:-1:-1;;;;;12448:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;12478:16;;:193;;-1:-1:-1;;;12478:193:4;;:16;;;:34;;:193;;12460:6;;12545:9;;12580:14;;12620:11;;12657:13;;12478:193;;;;20314:954;20492:16;20540:4;20669:9;20731;20793:10;20856:6;20521:342;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;20521:342:4;;;20511:353;;;;;;20492:372;;20871:14;20888:31;20898:8;20908:10;20888:9;:31::i;:::-;20871:48;-1:-1:-1;;;;;;20983:20:4;;20975:29;;;;;;-1:-1:-1;;;;;21029:19:4;;;;;;:11;:19;;;;;;21019:29;;21011:38;;;;;;-1:-1:-1;;;;;21110:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;21140:16;;:122;;-1:-1:-1;;;21140:122:4;;:16;;;:29;;:122;;21122:6;;21195:9;;21223;;21251:10;;21140:122;;;;5222:829;5375:16;5423:4;5558:9;5620:15;5688:6;5404:291;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5404:291:4;;;5394:302;;;;;;5375:321;;5703:14;5720:31;5730:8;5740:10;5720:9;:31::i;:::-;5703:48;-1:-1:-1;;;;;;5817:20:4;;5809:29;;;;;;-1:-1:-1;;;;;5863:19:4;;;;;;:11;:19;;;;;;5853:29;;5845:38;;;;;;-1:-1:-1;;;;;5944:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;5974:16;;:71;;-1:-1:-1;;;5974:71:4;;:16;;;:35;;:71;;5956:6;;6018:9;;6029:15;;5974:71;;;;239:40;;;-1:-1:-1;;;;;239:40:4;;:::o;16371:1081::-;16572:16;16620:4;16751:9;16813;16875:11;16939:9;17001:6;16601:407;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;16601:407:4;;;16591:418;;;;;;16572:437;;17016:14;17033:31;17043:8;17053:10;17033:9;:31::i;:::-;17016:48;-1:-1:-1;;;;;;17128:20:4;;17120:29;;;;;;-1:-1:-1;;;;;17174:19:4;;;;;;:11;:19;;;;;;17164:29;;17156:38;;;;;;-1:-1:-1;;;;;17255:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;17285:16;;:161;;-1:-1:-1;;;17285:161:4;;:16;;;:31;;:161;;17267:6;;17344:9;;17374;;17404:11;;17436:9;;17285:161;;;;7857:916;8026:16;8074:4;8202:9;8264;8326:8;8387:6;8055:339;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8055:339:4;;;8045:350;;;;;;8026:369;;8402:22;8443:31;8453:8;8463:10;8443:9;:31::i;:::-;8402:74;-1:-1:-1;;;;;;8542:20:4;;8534:29;;;;;;-1:-1:-1;;;;;8588:19:4;;;;;;:11;:19;;;;;;8578:29;;8570:38;;;;;;-1:-1:-1;;;;;8669:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;8699:16;;:68;;-1:-1:-1;;;8699:68:4;;:16;;;:28;;:68;;8681:6;;8736:9;;8747;;8758:8;;8699:68;;;;1939:2310;2251:4;2269:16;2317:4;2452:8;2513:10;2576:5;2634:9;2696:6;2755:13;2821:14;2888:6;2298:597;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2298:597:4;;;2288:608;;;;;;2269:627;;2903:14;2920:30;2930:8;2940:9;2920;:30::i;:::-;2903:47;-1:-1:-1;;;;;;3016:20:4;;3008:29;;;;;;-1:-1:-1;;;;;3062:19:4;;;;;;:11;:19;;;;;;3052:29;;3044:38;;;;;;-1:-1:-1;;;;;3143:19:4;;;;;;:11;:19;;;;;;;;:21;;;;;;;3177:9;:13;3173:1069;;3207:16;;;;;;;;;-1:-1:-1;;;;;3207:16:4;-1:-1:-1;;;;;3207:35:4;;3249:9;3276:6;3336:8;3396:10;3458:5;3515:9;3576:6;3634:13;3699:14;3207:507;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3207:507:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3207:507:4;;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;3207:507:4;;;;;;;;;3200:514;;;;;;3173:1069;3744:16;;:490;;-1:-1:-1;;;3744:490:4;;-1:-1:-1;;;;;3744:16:4;;;;:35;;:490;;3796:6;;3856:8;;3916:10;;3978:5;;4035:9;;4096:6;;4154:13;;4219:14;;3744:490;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3744:490:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3744:490:4;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;3744:490:4;;;;;;;;1939:2310;;;;;;;;;;;;:::o;19358:950::-;19540:16;19588:4;19715:9;19777;19839:8;19900:6;19569:338;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;19569:338:4;;;19559:349;;;;;;19540:368;;19915:14;19932:31;19942:8;19952:10;19932:9;:31::i;:::-;19915:48;-1:-1:-1;;;;;;20027:20:4;;20019:29;;;;;;-1:-1:-1;;;;;20073:19:4;;;;;;:11;:19;;;;;;20063:29;;20055:38;;;;;;-1:-1:-1;;;;;20154:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;20184:16;;:118;;-1:-1:-1;;;20184:118:4;;:16;;;:27;;:118;;20166:6;;20237:9;;20265;;20293:8;;20184:118;;;;15269:1096;15475:16;15523:4;15652:9;15714;15776:17;15846:10;15909:6;15504:412;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15504:412:4;;;15494:423;;;;;;15475:442;;15924:14;15941:31;15951:8;15961:10;15941:9;:31::i;:::-;15924:48;-1:-1:-1;;;;;;16036:20:4;;16028:29;;;;;;-1:-1:-1;;;;;16082:19:4;;;;;;:11;:19;;;;;;16072:29;;16064:38;;;;;;-1:-1:-1;;;;;16163:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;16193:16;;:166;;-1:-1:-1;;;16193:166:4;;:16;;;:29;;:166;;16175:6;;16250:9;;16280;;16310:17;;16348:10;;16193:166;;;;439:1494;705:4;723:16;771:4;899:8;960:10;1023:5;1081:9;1143:6;1202:13;1268:6;752:523;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;752:523:4;;;742:534;;;;;;723:553;;1283:14;1300:30;1310:8;1320:9;1300;:30::i;:::-;1283:47;-1:-1:-1;;;;;;1396:20:4;;1388:29;;;;;;-1:-1:-1;;;;;1442:19:4;;;;;;:11;:19;;;;;;1432:29;;1424:38;;;;;;-1:-1:-1;;;;;1523:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;1558:16;;:369;;-1:-1:-1;;;1558:369:4;;:16;;;:28;;:369;;1535:6;;1655:8;;1707:10;;1761:5;;1810:9;;1863:6;;1913:13;;1558:369;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1558:369:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1558:369:4;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1558:369:4;;;;;;;;;1551:376;;;;439:1494;;;;;;;;;;;:::o;9579:915::-;9773:16;9821:4;9951:9;10013:11;10077:5;10135:6;9802:340;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9802:340:4;;;9792:351;;;;;;9773:370;;10150:14;10167:31;10177:8;10187:10;10167:9;:31::i;:::-;10150:48;-1:-1:-1;;;;;;10262:20:4;;10254:29;;;;;;-1:-1:-1;;;;;10308:19:4;;;;;;:11;:19;;;;;;10298:29;;10290:38;;;;;;-1:-1:-1;;;;;10389:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;10419:16;;:69;;-1:-1:-1;;;10419:69:4;;:16;;;:30;;:69;;10401:6;;10458:9;;10469:11;;10482:5;;10419:69;;;;6913:938;7098:16;7146:4;7282:9;7344;7406:16;7475:6;7127:355;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7127:355:4;;;7117:366;;;;;;7098:385;;7490:14;7507:31;7517:8;7527:10;7507:9;:31::i;:::-;7490:48;-1:-1:-1;;;;;;7604:20:4;;7596:29;;;;;;-1:-1:-1;;;;;7650:19:4;;;;;;:11;:19;;;;;;7640:29;;7632:38;;;;;;-1:-1:-1;;;;;7731:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;7761:16;;:84;;-1:-1:-1;;;7761:84:4;;:16;;;:36;;:84;;7743:6;;7806:9;;7817;;7828:16;;7761:84;;;;21274:616;21382:7;21401:9;21417;21433:7;21451:10;:17;21472:2;21451:23;21447:62;;21499:1;21484:17;;;;;;;21447:62;-1:-1:-1;;;21560:2:4;21544:19;;21538:26;21599:2;21583:19;;21577:26;21646:2;21630:19;;21624:26;21621:1;21616:35;21672:2;21668:6;;21664:35;;;21689:2;21684:7;21664:35;21709:1;:7;;21714:2;21709:7;;:18;;;;;21720:1;:7;;21725:2;21720:7;;21709:18;21705:180;;;21752:1;21737:17;;;;;;;21705:180;21786:91;21859:5;21806:59;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;21806:59:4;;;21796:70;;;;;;21868:1;21871;21874;21786:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21786:91:4;;;;;;;;21779:98;;;;;;;21705:180;21274:616;;;;;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;313:707;;430:3;423:4;415:6;411:17;407:27;397:2;;448:1;445;438:12;397:2;485:6;472:20;507:80;522:64;579:6;522:64;;;507:80;;;498:89;;604:5;629:6;622:5;615:21;659:4;651:6;647:17;637:27;;681:4;676:3;672:14;665:21;;734:6;781:3;773:4;765:6;761:17;756:3;752:27;749:36;746:2;;;798:1;795;788:12;746:2;823:1;808:206;833:6;830:1;827:13;808:206;;;891:3;913:37;946:3;934:10;913:37;;;901:50;;-1:-1;974:4;965:14;;;;993;;;;;855:1;848:9;808:206;;;812:14;390:630;;;;;;;;1054:731;;1179:3;1172:4;1164:6;1160:17;1156:27;1146:2;;1197:1;1194;1187:12;1146:2;1234:6;1221:20;1256:88;1271:72;1336:6;1271:72;;1256:88;1247:97;;1361:5;1386:6;1379:5;1372:21;1416:4;1408:6;1404:17;1394:27;;1438:4;1433:3;1429:14;1422:21;;1491:6;1538:3;1530:4;1522:6;1518:17;1513:3;1509:27;1506:36;1503:2;;;1555:1;1552;1545:12;1503:2;1580:1;1565:214;1590:6;1587:1;1584:13;1565:214;;;1648:3;1670:45;1711:3;1699:10;1670:45;;;1658:58;;-1:-1;1739:4;1730:14;;;;1758;;;;;1612:1;1605:9;1565:214;;1811:707;;1928:3;1921:4;1913:6;1909:17;1905:27;1895:2;;1946:1;1943;1936:12;1895:2;1983:6;1970:20;2005:80;2020:64;2077:6;2020:64;;2005:80;1996:89;;2102:5;2127:6;2120:5;2113:21;2157:4;2149:6;2145:17;2135:27;;2179:4;2174:3;2170:14;2163:21;;2232:6;2279:3;2271:4;2263:6;2259:17;2254:3;2250:27;2247:36;2244:2;;;2296:1;2293;2286:12;2244:2;2321:1;2306:206;2331:6;2328:1;2325:13;2306:206;;;2389:3;2411:37;2444:3;2432:10;2411:37;;;2399:50;;-1:-1;2472:4;2463:14;;;;2491;;;;;2353:1;2346:9;2306:206;;2527:440;;2628:3;2621:4;2613:6;2609:17;2605:27;2595:2;;2646:1;2643;2636:12;2595:2;2683:6;2670:20;2705:64;2720:48;2761:6;2720:48;;2705:64;2696:73;;2789:6;2782:5;2775:21;2825:4;2817:6;2813:17;2858:4;2851:5;2847:16;2893:3;2884:6;2879:3;2875:16;2872:25;2869:2;;;2910:1;2907;2900:12;2869:2;2920:41;2954:6;2949:3;2944;2920:41;;3426:130;3493:20;;3518:33;3493:20;3518:33;;3563:134;3641:13;;3659:33;3641:13;3659:33;;3704:241;;3808:2;3796:9;3787:7;3783:23;3779:32;3776:2;;;3824:1;3821;3814:12;3776:2;3859:1;3876:53;3921:7;3901:9;3876:53;;;3866:63;3770:175;-1:-1;;;;3770:175;3952:1619;;;;;;;;;4252:3;4240:9;4231:7;4227:23;4223:33;4220:2;;;4269:1;4266;4259:12;4220:2;4304:31;;-1:-1;;;;;4344:30;;4341:2;;;4387:1;4384;4377:12;4341:2;4407:62;4461:7;4452:6;4441:9;4437:22;4407:62;;;4397:72;;4283:192;4534:2;4523:9;4519:18;4506:32;-1:-1;;;;;4550:6;4547:30;4544:2;;;4590:1;4587;4580:12;4544:2;4610:86;4688:7;4679:6;4668:9;4664:22;4610:86;;;4600:96;;4485:217;4761:2;4750:9;4746:18;4733:32;-1:-1;;;;;4777:6;4774:30;4771:2;;;4817:1;4814;4807:12;4771:2;4837:78;4907:7;4898:6;4887:9;4883:22;4837:78;;;4827:88;;4712:209;4980:2;4969:9;4965:18;4952:32;-1:-1;;;;;4996:6;4993:30;4990:2;;;5036:1;5033;5026:12;4990:2;5056:63;5111:7;5102:6;5091:9;5087:22;5056:63;;;5046:73;;4931:194;5156:3;5175:53;5220:7;5211:6;5200:9;5196:22;5175:53;;;5165:63;;5135:99;5265:3;5284:53;5329:7;5320:6;5309:9;5305:22;5284:53;;;5274:63;;5244:99;5374:3;5393:53;5438:7;5429:6;5418:9;5414:22;5393:53;;;5383:63;;5353:99;5483:3;5502:53;5547:7;5538:6;5527:9;5523:22;5502:53;;;5492:63;;5462:99;4214:1357;;;;;;;;;;;;5578:1745;;;;;;;;;;5895:3;5883:9;5874:7;5870:23;5866:33;5863:2;;;5912:1;5909;5902:12;5863:2;5947:31;;-1:-1;;;;;5987:30;;5984:2;;;6030:1;6027;6020:12;5984:2;6050:62;6104:7;6095:6;6084:9;6080:22;6050:62;;;6040:72;;5926:192;6177:2;6166:9;6162:18;6149:32;-1:-1;;;;;6193:6;6190:30;6187:2;;;6233:1;6230;6223:12;6187:2;6253:86;6331:7;6322:6;6311:9;6307:22;6253:86;;;6243:96;;6128:217;6404:2;6393:9;6389:18;6376:32;-1:-1;;;;;6420:6;6417:30;6414:2;;;6460:1;6457;6450:12;6414:2;6480:78;6550:7;6541:6;6530:9;6526:22;6480:78;;;6470:88;;6355:209;6623:2;6612:9;6608:18;6595:32;-1:-1;;;;;6639:6;6636:30;6633:2;;;6679:1;6676;6669:12;6633:2;6699:63;6754:7;6745:6;6734:9;6730:22;6699:63;;;6689:73;;6574:194;6799:3;6818:53;6863:7;6854:6;6843:9;6839:22;6818:53;;;6808:63;;6778:99;6908:3;6927:53;6972:7;6963:6;6952:9;6948:22;6927:53;;;6917:63;;6887:99;7017:3;7036:53;7081:7;7072:6;7061:9;7057:22;7036:53;;;7026:63;;6996:99;7126:3;7145:53;7190:7;7181:6;7170:9;7166:22;7145:53;;;7135:63;;7105:99;7235:3;7254:53;7299:7;7290:6;7279:9;7275:22;7254:53;;;7244:63;;7214:99;5857:1466;;;;;;;;;;;;7330:1105;;;;;;7554:3;7542:9;7533:7;7529:23;7525:33;7522:2;;;7571:1;7568;7561:12;7522:2;7606:31;;-1:-1;;;;;7646:30;;7643:2;;;7689:1;7686;7679:12;7643:2;7709:62;7763:7;7754:6;7743:9;7739:22;7709:62;;;7699:72;;7585:192;7808:2;7826:53;7871:7;7862:6;7851:9;7847:22;7826:53;;;7816:63;;7787:98;7944:2;7933:9;7929:18;7916:32;-1:-1;;;;;7960:6;7957:30;7954:2;;;8000:1;7997;7990:12;7954:2;8020:86;8098:7;8089:6;8078:9;8074:22;8020:86;;;8010:96;;7895:217;8171:2;8160:9;8156:18;8143:32;-1:-1;;;;;8187:6;8184:30;8181:2;;;8227:1;8224;8217:12;8181:2;8247:63;8302:7;8293:6;8282:9;8278:22;8247:63;;;8237:73;;8122:194;8347:3;8366:53;8411:7;8402:6;8391:9;8387:22;8366:53;;;8356:63;;8326:99;7516:919;;;;;;;;;8442:1493;;;;;;;;8725:3;8713:9;8704:7;8700:23;8696:33;8693:2;;;8742:1;8739;8732:12;8693:2;8777:31;;-1:-1;;;;;8817:30;;8814:2;;;8860:1;8857;8850:12;8814:2;8880:62;8934:7;8925:6;8914:9;8910:22;8880:62;;;8870:72;;8756:192;8979:2;8997:53;9042:7;9033:6;9022:9;9018:22;8997:53;;;8987:63;;8958:98;9115:2;9104:9;9100:18;9087:32;-1:-1;;;;;9131:6;9128:30;9125:2;;;9171:1;9168;9161:12;9125:2;9191:86;9269:7;9260:6;9249:9;9245:22;9191:86;;;9181:96;;9066:217;9342:2;9331:9;9327:18;9314:32;-1:-1;;;;;9358:6;9355:30;9352:2;;;9398:1;9395;9388:12;9352:2;9418:63;9473:7;9464:6;9453:9;9449:22;9418:63;;;9408:73;;9293:194;9518:3;9537:53;9582:7;9573:6;9562:9;9558:22;9537:53;;;9527:63;;9497:99;9655:3;9644:9;9640:19;9627:33;-1:-1;;;;;9672:6;9669:30;9666:2;;;9712:1;9709;9702:12;9666:2;9732:78;9802:7;9793:6;9782:9;9778:22;9732:78;;;9722:88;;9606:210;9847:3;9866:53;9911:7;9902:6;9891:9;9887:22;9866:53;;;9856:63;;9826:99;8687:1248;;;;;;;;;;;9942:857;;;;;10131:3;10119:9;10110:7;10106:23;10102:33;10099:2;;;10148:1;10145;10138:12;10099:2;10183:31;;-1:-1;;;;;10223:30;;10220:2;;;10266:1;10263;10256:12;10220:2;10286:62;10340:7;10331:6;10320:9;10316:22;10286:62;;;10276:72;;10162:192;10385:2;10403:53;10448:7;10439:6;10428:9;10424:22;10403:53;;;10393:63;;10364:98;10521:2;10510:9;10506:18;10493:32;-1:-1;;;;;10537:6;10534:30;10531:2;;;10577:1;10574;10567:12;10531:2;10597:78;10667:7;10658:6;10647:9;10643:22;10597:78;;;10587:88;;10472:209;10712:2;10730:53;10775:7;10766:6;10755:9;10751:22;10730:53;;;10720:63;;10691:98;10093:706;;;;;;;;10806:827;;;;;10980:3;10968:9;10959:7;10955:23;10951:33;10948:2;;;10997:1;10994;10987:12;10948:2;11032:31;;-1:-1;;;;;11072:30;;11069:2;;;11115:1;11112;11105:12;11069:2;11135:62;11189:7;11180:6;11169:9;11165:22;11135:62;;;11125:72;;11011:192;11234:2;11252:53;11297:7;11288:6;11277:9;11273:22;11252:53;;;11242:63;;11213:98;11370:2;11359:9;11355:18;11342:32;-1:-1;;;;;11386:6;11383:30;11380:2;;;11426:1;11423;11416:12;11380:2;11446:63;11501:7;11492:6;11481:9;11477:22;11446:63;;11640:983;;;;;;11846:3;11834:9;11825:7;11821:23;11817:33;11814:2;;;11863:1;11860;11853:12;11814:2;11898:31;;-1:-1;;;;;11938:30;;11935:2;;;11981:1;11978;11971:12;11935:2;12001:62;12055:7;12046:6;12035:9;12031:22;12001:62;;;11991:72;;11877:192;12100:2;12118:53;12163:7;12154:6;12143:9;12139:22;12118:53;;;12108:63;;12079:98;12208:2;12226:53;12271:7;12262:6;12251:9;12247:22;12226:53;;;12216:63;;12187:98;12344:2;12333:9;12329:18;12316:32;-1:-1;;;;;12360:6;12357:30;12354:2;;;12400:1;12397;12390:12;12354:2;12420:78;12490:7;12481:6;12470:9;12466:22;12420:78;;12630:1635;;;;;;;;;12938:3;12926:9;12917:7;12913:23;12909:33;12906:2;;;12955:1;12952;12945:12;12906:2;12990:31;;-1:-1;;;;;13030:30;;13027:2;;;13073:1;13070;13063:12;13027:2;13093:62;13147:7;13138:6;13127:9;13123:22;13093:62;;;13083:72;;12969:192;13192:2;13210:53;13255:7;13246:6;13235:9;13231:22;13210:53;;;13200:63;;13171:98;13300:2;13318:53;13363:7;13354:6;13343:9;13339:22;13318:53;;;13308:63;;13279:98;13436:2;13425:9;13421:18;13408:32;-1:-1;;;;;13452:6;13449:30;13446:2;;;13492:1;13489;13482:12;13446:2;13512:86;13590:7;13581:6;13570:9;13566:22;13512:86;;;13502:96;;13387:217;13663:3;13652:9;13648:19;13635:33;-1:-1;;;;;13680:6;13677:30;13674:2;;;13720:1;13717;13710:12;13674:2;13740:86;13818:7;13809:6;13798:9;13794:22;13740:86;;;13730:96;;13614:218;13891:3;13880:9;13876:19;13863:33;-1:-1;;;;;13908:6;13905:30;13902:2;;;13948:1;13945;13938:12;13902:2;13968:63;14023:7;14014:6;14003:9;13999:22;13968:63;;14272:1231;;;;;;;14513:3;14501:9;14492:7;14488:23;14484:33;14481:2;;;14530:1;14527;14520:12;14481:2;14565:31;;-1:-1;;;;;14605:30;;14602:2;;;14648:1;14645;14638:12;14602:2;14668:62;14722:7;14713:6;14702:9;14698:22;14668:62;;;14658:72;;14544:192;14767:2;14785:53;14830:7;14821:6;14810:9;14806:22;14785:53;;;14775:63;;14746:98;14875:2;14893:53;14938:7;14929:6;14918:9;14914:22;14893:53;;;14883:63;;14854:98;15011:2;15000:9;14996:18;14983:32;-1:-1;;;;;15027:6;15024:30;15021:2;;;15067:1;15064;15057:12;15021:2;15087:86;15165:7;15156:6;15145:9;15141:22;15087:86;;;15077:96;;14962:217;15238:3;15227:9;15223:19;15210:33;-1:-1;;;;;15255:6;15252:30;15249:2;;;15295:1;15292;15285:12;15249:2;15315:63;15370:7;15361:6;15350:9;15346:22;15315:63;;;15305:73;;15189:195;15415:3;15434:53;15479:7;15470:6;15459:9;15455:22;15434:53;;;15424:63;;15394:99;14475:1028;;;;;;;;;15510:999;;;;;;15724:3;15712:9;15703:7;15699:23;15695:33;15692:2;;;15741:1;15738;15731:12;15692:2;15776:31;;-1:-1;;;;;15816:30;;15813:2;;;15859:1;15856;15849:12;15813:2;15879:62;15933:7;15924:6;15913:9;15909:22;15879:62;;;15869:72;;15755:192;15978:2;15996:53;16041:7;16032:6;16021:9;16017:22;15996:53;;;15986:63;;15957:98;16086:2;16104:53;16149:7;16140:6;16129:9;16125:22;16104:53;;;16094:63;;16065:98;16222:2;16211:9;16207:18;16194:32;-1:-1;;;;;16238:6;16235:30;16232:2;;;16278:1;16275;16268:12;16232:2;16298:86;16376:7;16367:6;16356:9;16352:22;16298:86;;16516:983;;;;;;16722:3;16710:9;16701:7;16697:23;16693:33;16690:2;;;16739:1;16736;16729:12;16690:2;16774:31;;-1:-1;;;;;16814:30;;16811:2;;;16857:1;16854;16847:12;16811:2;16877:62;16931:7;16922:6;16911:9;16907:22;16877:62;;;16867:72;;16753:192;16976:2;16994:53;17039:7;17030:6;17019:9;17015:22;16994:53;;;16984:63;;16955:98;17084:2;17102:53;17147:7;17138:6;17127:9;17123:22;17102:53;;;17092:63;;17063:98;17220:2;17209:9;17205:18;17192:32;-1:-1;;;;;17236:6;17233:30;17230:2;;;17276:1;17273;17266:12;17230:2;17296:78;17366:7;17357:6;17346:9;17342:22;17296:78;;17506:953;;;;;;17697:3;17685:9;17676:7;17672:23;17668:33;17665:2;;;17714:1;17711;17704:12;17665:2;17749:31;;-1:-1;;;;;17789:30;;17786:2;;;17832:1;17829;17822:12;17786:2;17852:62;17906:7;17897:6;17886:9;17882:22;17852:62;;;17842:72;;17728:192;17951:2;17969:53;18014:7;18005:6;17994:9;17990:22;17969:53;;;17959:63;;17930:98;18059:2;18077:53;18122:7;18113:6;18102:9;18098:22;18077:53;;18466:721;;;;;18630:3;18618:9;18609:7;18605:23;18601:33;18598:2;;;18647:1;18644;18637:12;18598:2;18682:31;;-1:-1;;;;;18722:30;;18719:2;;;18765:1;18762;18755:12;18719:2;18785:62;18839:7;18830:6;18819:9;18815:22;18785:62;;;18775:72;;18661:192;18884:2;18902:53;18947:7;18938:6;18927:9;18923:22;18902:53;;;18892:63;;18863:98;18992:2;19010:53;19055:7;19046:6;19035:9;19031:22;19010:53;;19194:989;;;;;;;19400:3;19388:9;19379:7;19375:23;19371:33;19368:2;;;19417:1;19414;19407:12;19368:2;19452:31;;-1:-1;;;;;19492:30;;19489:2;;;19535:1;19532;19525:12;19489:2;19555:62;19609:7;19600:6;19589:9;19585:22;19555:62;;;19545:72;;19431:192;19654:2;19672:53;19717:7;19708:6;19697:9;19693:22;19672:53;;;19662:63;;19633:98;19762:2;19780:53;19825:7;19816:6;19805:9;19801:22;19780:53;;;19770:63;;19741:98;19870:2;19888:53;19933:7;19924:6;19913:9;19909:22;19888:53;;;19878:63;;19849:98;19978:3;19997:61;20050:7;20041:6;20030:9;20026:22;19997:61;;20190:1109;;;;;;;20413:3;20401:9;20392:7;20388:23;20384:33;20381:2;;;20430:1;20427;20420:12;20381:2;20465:31;;-1:-1;;;;;20505:30;;20502:2;;;20548:1;20545;20538:12;20502:2;20568:62;20622:7;20613:6;20602:9;20598:22;20568:62;;;20558:72;;20444:192;20667:2;20685:53;20730:7;20721:6;20710:9;20706:22;20685:53;;;20675:63;;20646:98;20775:2;20793:53;20838:7;20829:6;20818:9;20814:22;20793:53;;;20783:63;;20754:98;20883:2;20901:53;20946:7;20937:6;20926:9;20922:22;20901:53;;;20891:63;;20862:98;21019:3;21008:9;21004:19;20991:33;-1:-1;;;;;21036:6;21033:30;21030:2;;;21076:1;21073;21066:12;21030:2;21096:78;21166:7;21157:6;21146:9;21142:22;21096:78;;21306:847;;;;;;21487:3;21475:9;21466:7;21462:23;21458:33;21455:2;;;21504:1;21501;21494:12;21455:2;21539:31;;-1:-1;;;;;21579:30;;21576:2;;;21622:1;21619;21612:12;21576:2;21642:62;21696:7;21687:6;21676:9;21672:22;21642:62;;;21632:72;;21518:192;21741:2;21759:53;21804:7;21795:6;21784:9;21780:22;21759:53;;;21749:63;;21720:98;21849:2;21867:53;21912:7;21903:6;21892:9;21888:22;21867:53;;;21857:63;;21828:98;21957:2;21975:53;22020:7;22011:6;22000:9;21996:22;21975:53;;22160:263;;22275:2;22263:9;22254:7;22250:23;22246:32;22243:2;;;22291:1;22288;22281:12;22243:2;22326:1;22343:64;22399:7;22379:9;22343:64;;22431:205;;22534:62;22592:3;22584:6;22534:62;;;-1:-1;;22625:4;22616:14;;22527:109;22827:173;;22914:46;22956:3;22948:6;22914:46;;23008:127;23097:32;23123:5;23097:32;;;23092:3;23085:45;23079:56;;;23547:690;;23692:54;23740:5;23692:54;;;23759:86;23838:6;23833:3;23759:86;;;23752:93;;23866:56;23916:5;23866:56;;;23942:7;23970:1;23955:260;23980:6;23977:1;23974:13;23955:260;;;24047:6;24041:13;24068:63;24127:3;24112:13;24068:63;;;24061:70;;24148:60;24201:6;24148:60;;;24138:70;-1:-1;;24002:1;23995:9;23955:260;;;-1:-1;24228:3;;23671:566;-1:-1;;;;;23671:566;24292:754;;24453:62;24509:5;24453:62;;;24528:94;24615:6;24610:3;24528:94;;;24521:101;;24643:64;24701:5;24643:64;;;24727:7;24755:1;24740:284;24765:6;24762:1;24759:13;24740:284;;;24832:6;24826:13;24853:79;24928:3;24913:13;24853:79;;;24846:86;;24949:68;25010:6;24949:68;;;24939:78;-1:-1;;24787:1;24780:9;24740:284;;25085:690;;25230:54;25278:5;25230:54;;;25297:86;25376:6;25371:3;25297:86;;;25290:93;;25404:56;25454:5;25404:56;;;25480:7;25508:1;25493:260;25518:6;25515:1;25512:13;25493:260;;;25585:6;25579:13;25606:63;25665:3;25650:13;25606:63;;;25599:70;;25686:60;25739:6;25686:60;;;25676:70;-1:-1;;25540:1;25533:9;25493:260;;25783:113;25866:24;25884:5;25866:24;;25903:152;26004:45;26024:24;26042:5;26024:24;;;26004:45;;26062:176;26170:62;26226:5;26170:62;;26245:347;;26357:39;26390:5;26357:39;;;26408:71;26472:6;26467:3;26408:71;;;26401:78;;26484:52;26529:6;26524:3;26517:4;26510:5;26506:16;26484:52;;;26557:29;26579:6;26557:29;;;26548:39;;;;26337:255;-1:-1;;;26337:255;26600:400;;26778:85;26860:2;26855:3;26778:85;;;26896:66;26876:87;;26991:2;26982:12;;26764:236;-1:-1;;26764:236;27009:364;;27169:67;27233:2;27228:3;27169:67;;;-1:-1;;;27249:87;;27364:2;27355:12;;27155:218;-1:-1;;27155:218;27382:364;;27542:67;27606:2;27601:3;27542:67;;;-1:-1;;;27622:87;;27737:2;27728:12;;27528:218;-1:-1;;27528:218;27755:364;;27915:67;27979:2;27974:3;27915:67;;;-1:-1;;;27995:87;;28110:2;28101:12;;27901:218;-1:-1;;27901:218;28128:364;;28288:67;28352:2;28347:3;28288:67;;;28388:66;28368:87;;28483:2;28474:12;;28274:218;-1:-1;;28274:218;28501:364;;28661:67;28725:2;28720:3;28661:67;;;-1:-1;;;28741:87;;28856:2;28847:12;;28647:218;-1:-1;;28647:218;28874:364;;29034:67;29098:2;29093:3;29034:67;;;-1:-1;;;29114:87;;29229:2;29220:12;;29020:218;-1:-1;;29020:218;29247:364;;29407:67;29471:2;29466:3;29407:67;;;-1:-1;;;29487:87;;29602:2;29593:12;;29393:218;-1:-1;;29393:218;29620:364;;29780:67;29844:2;29839:3;29780:67;;;-1:-1;;;29860:87;;29975:2;29966:12;;29766:218;-1:-1;;29766:218;29993:364;;30153:67;30217:2;30212:3;30153:67;;;-1:-1;;;30233:87;;30348:2;30339:12;;30139:218;-1:-1;;30139:218;30366:364;;30526:67;30590:2;30585:3;30526:67;;;-1:-1;;;30606:87;;30721:2;30712:12;;30512:218;-1:-1;;30512:218;30739:364;;30899:67;30963:2;30958:3;30899:67;;;-1:-1;;;30979:87;;31094:2;31085:12;;30885:218;-1:-1;;30885:218;31112:364;;31272:67;31336:2;31331:3;31272:67;;;-1:-1;;;31352:87;;31467:2;31458:12;;31258:218;-1:-1;;31258:218;31485:364;;31645:67;31709:2;31704:3;31645:67;;;-1:-1;;;31725:87;;31840:2;31831:12;;31631:218;-1:-1;;31631:218;31858:364;;32018:67;32082:2;32077:3;32018:67;;;-1:-1;;;32098:87;;32213:2;32204:12;;32004:218;-1:-1;;32004:218;32231:364;;32391:67;32455:2;32450:3;32391:67;;;-1:-1;;;32471:87;;32586:2;32577:12;;32377:218;-1:-1;;32377:218;32604:364;;32764:67;32828:2;32823:3;32764:67;;;-1:-1;;;32844:87;;32959:2;32950:12;;32750:218;-1:-1;;32750:218;32977:364;;33137:67;33201:2;33196:3;33137:67;;;-1:-1;;;33217:87;;33332:2;33323:12;;33123:218;-1:-1;;33123:218;33350:364;;33510:67;33574:2;33569:3;33510:67;;;33610:66;33590:87;;33705:2;33696:12;;33496:218;-1:-1;;33496:218;33723:364;;33883:67;33947:2;33942:3;33883:67;;;-1:-1;;;33963:87;;34078:2;34069:12;;33869:218;-1:-1;;33869:218;34325:107;34404:22;34420:5;34404:22;;34439:511;;34666:148;34810:3;34666:148;;;34659:155;;34825:75;34896:3;34887:6;34825:75;;;-1:-1;34922:2;34913:12;;34647:303;-1:-1;34647:303;34957:1331;35395:3;35380:19;;35410:87;35384:9;35470:6;35410:87;;;35545:9;35539:4;35535:20;35530:2;35519:9;35515:18;35508:48;35570:124;35689:4;35680:6;35570:124;;;35562:132;;35742:9;35736:4;35732:20;35727:2;35716:9;35712:18;35705:48;35767:108;35870:4;35861:6;35767:108;;;35759:116;;35923:9;35917:4;35913:20;35908:2;35897:9;35893:18;35886:48;35948:78;36021:4;36012:6;35948:78;;;35940:86;;36037:73;36105:3;36094:9;36090:19;36081:6;36037:73;;;36121;36189:3;36178:9;36174:19;36165:6;36121:73;;;36205;36273:3;36262:9;36258:19;36249:6;36205:73;;36295:1443;36761:3;36746:19;;36776:87;36750:9;36836:6;36776:87;;;36911:9;36905:4;36901:20;36896:2;36885:9;36881:18;36874:48;36936:124;37055:4;37046:6;36936:124;;;36928:132;;37108:9;37102:4;37098:20;37093:2;37082:9;37078:18;37071:48;37133:108;37236:4;37227:6;37133:108;;;37125:116;;37289:9;37283:4;37279:20;37274:2;37263:9;37259:18;37252:48;37314:78;37387:4;37378:6;37314:78;;;37306:86;;37403:73;37471:3;37460:9;37456:19;37447:6;37403:73;;;37487;37555:3;37544:9;37540:19;37531:6;37487:73;;;37571;37639:3;37628:9;37624:19;37615:6;37571:73;;;37655;37723:3;37712:9;37708:19;37699:6;37655:73;;37745:467;37935:2;37920:18;;37949:87;37924:9;38009:6;37949:87;;;38047:72;38115:2;38104:9;38100:18;38091:6;38047:72;;;38130;38198:2;38187:9;38183:18;38174:6;38130:72;;38219:727;38487:3;38472:19;;38502:87;38476:9;38562:6;38502:87;;;38600:72;38668:2;38657:9;38653:18;38644:6;38600:72;;;38683;38751:2;38740:9;38736:18;38727:6;38683:72;;;38803:9;38797:4;38793:20;38788:2;38777:9;38773:18;38766:48;38828:108;38931:4;38922:6;38828:108;;;38820:116;38458:488;-1:-1;;;;;;38458:488;38953:1749;39520:3;39505:19;;39535:71;39509:9;39579:6;39535:71;;;39654:9;39648:4;39644:20;39639:2;39628:9;39624:18;39617:48;39679:131;39805:4;39679:131;;;39671:139;;39821:72;39889:2;39878:9;39874:18;39865:6;39821:72;;;39904;39972:2;39961:9;39957:18;39948:6;39904:72;;;40025:9;40019:4;40015:20;40009:3;39998:9;39994:19;39987:49;40050:124;40169:4;40160:6;40050:124;;;40042:132;;40223:9;40217:4;40213:20;40207:3;40196:9;40192:19;40185:49;40248:124;40367:4;40358:6;40248:124;;;40240:132;;40421:9;40415:4;40411:20;40405:3;40394:9;40390:19;40383:49;40446:78;40519:4;40510:6;40446:78;;;40438:86;;40535:73;40603:3;40592:9;40588:19;40579:6;40535:73;;;40619;40687:3;40676:9;40672:19;40663:6;40619:73;;40709:1113;41090:3;41075:19;;41105:71;41079:9;41149:6;41105:71;;;41224:9;41218:4;41214:20;41209:2;41198:9;41194:18;41187:48;41249:131;41375:4;41249:131;;;41241:139;;41391:72;41459:2;41448:9;41444:18;41435:6;41391:72;;;41474;41542:2;41531:9;41527:18;41518:6;41474:72;;;41595:9;41589:4;41585:20;41579:3;41568:9;41564:19;41557:49;41620:108;41723:4;41714:6;41620:108;;;41612:116;;41739:73;41807:3;41796:9;41792:19;41783:6;41739:73;;41829:1113;42210:3;42195:19;;42225:71;42199:9;42269:6;42225:71;;;42344:9;42338:4;42334:20;42329:2;42318:9;42314:18;42307:48;42369:131;42495:4;42369:131;;;42361:139;;42511:72;42579:2;42568:9;42564:18;42555:6;42511:72;;;42594;42662:2;42651:9;42647:18;42638:6;42594:72;;;42715:9;42709:4;42705:20;42699:3;42688:9;42684:19;42677:49;42740:108;42843:4;42834:6;42740:108;;42949:1113;43330:3;43315:19;;43345:71;43319:9;43389:6;43345:71;;;43464:9;43458:4;43454:20;43449:2;43438:9;43434:18;43427:48;43489:131;43615:4;43489:131;;44069:941;44392:3;44377:19;;44407:71;44381:9;44451:6;44407:71;;;44526:9;44520:4;44516:20;44511:2;44500:9;44496:18;44489:48;44551:131;44677:4;44551:131;;;44543:139;;44693:72;44761:2;44750:9;44746:18;44737:6;44693:72;;;44813:9;44807:4;44803:20;44798:2;44787:9;44783:18;44776:48;44838:78;44911:4;44902:6;44838:78;;;44830:86;;44927:73;44995:3;44984:9;44980:19;44971:6;44927:73;;;44363:647;;;;;;;;45017:853;45320:3;45305:19;;45335:71;45309:9;45379:6;45335:71;;;45454:9;45448:4;45444:20;45439:2;45428:9;45424:18;45417:48;45479:131;45605:4;45479:131;;;45471:139;;45621:72;45689:2;45678:9;45674:18;45665:6;45621:72;;;45704;45772:2;45761:9;45757:18;45748:6;45704:72;;;45787:73;45855:3;45844:9;45840:19;45831:6;45787:73;;45877:1109;46252:3;46237:19;;46267:71;46241:9;46311:6;46267:71;;;46386:9;46380:4;46376:20;46371:2;46360:9;46356:18;46349:48;46411:131;46537:4;46411:131;;;46403:139;;46553:72;46621:2;46610:9;46606:18;46597:6;46553:72;;;46636;46704:2;46693:9;46689:18;46680:6;46636:72;;;46719:73;46787:3;46776:9;46772:19;46763:6;46719:73;;;46803:89;46887:3;46876:9;46872:19;46863:6;46803:89;;;46903:73;46971:3;46960:9;46956:19;46947:6;46903:73;;;46223:763;;;;;;;;;;46993:1053;47344:3;47329:19;;47359:71;47333:9;47403:6;47359:71;;;47478:9;47472:4;47468:20;47463:2;47452:9;47448:18;47441:48;47503:131;47629:4;47503:131;;;47495:139;;47645:72;47713:2;47702:9;47698:18;47689:6;47645:72;;;47728;47796:2;47785:9;47781:18;47772:6;47728:72;;;47849:9;47843:4;47839:20;47833:3;47822:9;47818:19;47811:49;47874:78;47947:4;47938:6;47874:78;;48053:1233;48470:3;48455:19;;48485:71;48459:9;48529:6;48485:71;;;48604:9;48598:4;48594:20;48589:2;48578:9;48574:18;48567:48;48629:131;48755:4;48629:131;;;48621:139;;48771:72;48839:2;48828:9;48824:18;48815:6;48771:72;;;48891:9;48885:4;48881:20;48876:2;48865:9;48861:18;48854:48;48916:124;49035:4;49026:6;48916:124;;;48908:132;;49089:9;49083:4;49079:20;49073:3;49062:9;49058:19;49051:49;49114:78;49187:4;49178:6;49114:78;;49293:1717;49844:3;49829:19;;49859:71;49833:9;49903:6;49859:71;;;49978:9;49972:4;49968:20;49963:2;49952:9;49948:18;49941:48;50003:131;50129:4;50003:131;;;49995:139;;50182:9;50176:4;50172:20;50167:2;50156:9;50152:18;50145:48;50207:124;50326:4;50317:6;50207:124;;;50199:132;;50379:9;50373:4;50369:20;50364:2;50353:9;50349:18;50342:48;50404:108;50507:4;50498:6;50404:108;;;50396:116;;50561:9;50555:4;50551:20;50545:3;50534:9;50530:19;50523:49;50586:78;50659:4;50650:6;50586:78;;;50578:86;;50675:73;50743:3;50732:9;50728:19;50719:6;50675:73;;;50759;50827:3;50816:9;50812:19;50803:6;50759:73;;;50843;50911:3;50900:9;50896:19;50887:6;50843:73;;51017:965;51348:3;51333:19;;51363:71;51337:9;51407:6;51363:71;;;51482:9;51476:4;51472:20;51467:2;51456:9;51452:18;51445:48;51507:131;51633:4;51507:131;;;51499:139;;51649:72;51717:2;51706:9;51702:18;51693:6;51649:72;;;51732;51800:2;51789:9;51785:18;51776:6;51732:72;;;51815:73;51883:3;51872:9;51868:19;51859:6;51815:73;;;51899;51967:3;51956:9;51952:19;51943:6;51899:73;;51989:1109;52364:3;52349:19;;52379:71;52353:9;52423:6;52379:71;;;52498:9;52492:4;52488:20;52483:2;52472:9;52468:18;52461:48;52523:131;52649:4;52523:131;;53105:853;53408:3;53393:19;;53423:71;53397:9;53467:6;53423:71;;;53542:9;53536:4;53532:20;53527:2;53516:9;53512:18;53505:48;53567:131;53693:4;53567:131;;53965:1225;54374:3;54359:19;;54389:71;54363:9;54433:6;54389:71;;;54508:9;54502:4;54498:20;54493:2;54482:9;54478:18;54471:48;54533:131;54659:4;54533:131;;;54525:139;;54675:72;54743:2;54732:9;54728:18;54719:6;54675:72;;;54758;54826:2;54815:9;54811:18;54802:6;54758:72;;;54841:73;54909:3;54898:9;54894:19;54885:6;54841:73;;;54963:9;54957:4;54953:20;54947:3;54936:9;54932:19;54925:49;54988:108;55091:4;55082:6;54988:108;;;54980:116;;55107:73;55175:3;55164:9;55160:19;55151:6;55107:73;;55197:1829;55776:3;55761:19;;55791:71;55765:9;55835:6;55791:71;;;55910:9;55904:4;55900:20;55895:2;55884:9;55880:18;55873:48;55935:131;56061:4;55935:131;;;55927:139;;56114:9;56108:4;56104:20;56099:2;56088:9;56084:18;56077:48;56139:124;56258:4;56249:6;56139:124;;;56131:132;;56311:9;56305:4;56301:20;56296:2;56285:9;56281:18;56274:48;56336:108;56439:4;56430:6;56336:108;;;56328:116;;56493:9;56487:4;56483:20;56477:3;56466:9;56462:19;56455:49;56518:78;56591:4;56582:6;56518:78;;;56510:86;;56607:73;56675:3;56664:9;56660:19;56651:6;56607:73;;;56691;56759:3;56748:9;56744:19;56735:6;56691:73;;;56775;56843:3;56832:9;56828:19;56819:6;56775:73;;;56859;56927:3;56916:9;56912:19;56903:6;56859:73;;;56943;57011:3;57000:9;56996:19;56987:6;56943:73;;;55747:1279;;;;;;;;;;;;;57033:1605;57556:3;57541:19;;57571:71;57545:9;57615:6;57571:71;;;57690:9;57684:4;57680:20;57675:2;57664:9;57660:18;57653:48;57715:131;57841:4;57715:131;;;57707:139;;57857:72;57925:2;57914:9;57910:18;57901:6;57857:72;;;57977:9;57971:4;57967:20;57962:2;57951:9;57947:18;57940:48;58002:124;58121:4;58112:6;58002:124;;;57994:132;;58175:9;58169:4;58165:20;58159:3;58148:9;58144:19;58137:49;58200:78;58273:4;58264:6;58200:78;;;58192:86;;58289:73;58357:3;58346:9;58342:19;58333:6;58289:73;;;58411:9;58405:4;58401:20;58395:3;58384:9;58380:19;58373:49;58436:108;58539:4;58530:6;58436:108;;;58428:116;;58555:73;58623:3;58612:9;58608:19;58599:6;58555:73;;58645:1345;59090:3;59075:19;;59105:71;59079:9;59149:6;59105:71;;;59224:9;59218:4;59214:20;59209:2;59198:9;59194:18;59187:48;59249:131;59375:4;59249:131;;;59241:139;;59391:72;59459:2;59448:9;59444:18;59435:6;59391:72;;;59474;59542:2;59531:9;59527:18;59518:6;59474:72;;;59595:9;59589:4;59585:20;59579:3;59568:9;59564:19;59557:49;59620:124;59739:4;59730:6;59620:124;;;59612:132;;59793:9;59787:4;59783:20;59777:3;59766:9;59762:19;59755:49;59818:78;59891:4;59882:6;59818:78;;59997:1001;60350:3;60335:19;;60365:71;60339:9;60409:6;60365:71;;;60484:9;60478:4;60474:20;60469:2;60458:9;60454:18;60447:48;60509:131;60635:4;60509:131;;;60501:139;;60651:72;60719:2;60708:9;60704:18;60695:6;60651:72;;;60771:9;60765:4;60761:20;60756:2;60745:9;60741:18;60734:48;60796:108;60899:4;60890:6;60796:108;;61005:1145;61402:3;61387:19;;61417:71;61391:9;61461:6;61417:71;;;61536:9;61530:4;61526:20;61521:2;61510:9;61506:18;61499:48;61561:131;61687:4;61561:131;;;61553:139;;61703:72;61771:2;61760:9;61756:18;61747:6;61703:72;;;61786;61854:2;61843:9;61839:18;61830:6;61786:72;;;61907:9;61901:4;61897:20;61891:3;61880:9;61876:19;61869:49;61932:124;62051:4;62042:6;61932:124;;62157:815;62445:3;62430:19;;62460:71;62434:9;62504:6;62460:71;;;62542:72;62610:2;62599:9;62595:18;62586:6;62542:72;;;62662:9;62656:4;62652:20;62647:2;62636:9;62632:18;62625:48;62687:124;62806:4;62797:6;62687:124;;;62679:132;;62859:9;62853:4;62849:20;62844:2;62833:9;62829:18;62822:48;62884:78;62957:4;62948:6;62884:78;;62979:1187;63373:3;63358:19;;63388:71;63362:9;63432:6;63388:71;;;63470:72;63538:2;63527:9;63523:18;63514:6;63470:72;;;63590:9;63584:4;63580:20;63575:2;63564:9;63560:18;63553:48;63615:124;63734:4;63725:6;63615:124;;;63607:132;;63787:9;63781:4;63777:20;63772:2;63761:9;63757:18;63750:48;63812:78;63885:4;63876:6;63812:78;;;63804:86;;63901:73;63969:3;63958:9;63954:19;63945:6;63901:73;;;64023:9;64017:4;64013:20;64007:3;63996:9;63992:19;63985:49;64048:108;64151:4;64142:6;64048:108;;64173:583;64397:2;64382:18;;64411:71;64386:9;64455:6;64411:71;;;64493:72;64561:2;64550:9;64546:18;64537:6;64493:72;;;64613:9;64607:4;64603:20;64598:2;64587:9;64583:18;64576:48;64638:108;64741:4;64732:6;64638:108;;64763:523;64957:2;64942:18;;64971:71;64946:9;65015:6;64971:71;;;65053:72;65121:2;65110:9;65106:18;65097:6;65053:72;;;65173:9;65167:4;65163:20;65158:2;65147:9;65143:18;65136:48;65198:78;65271:4;65262:6;65198:78;;65735:695;65987:3;65972:19;;66002:71;65976:9;66046:6;66002:71;;;66084:72;66152:2;66141:9;66137:18;66128:6;66084:72;;;66167;66235:2;66224:9;66220:18;66211:6;66167:72;;;66287:9;66281:4;66277:20;66272:2;66261:9;66257:18;66250:48;66312:108;66415:4;66406:6;66312:108;;66437:727;66705:3;66690:19;;66720:71;66694:9;66764:6;66720:71;;;66802:72;66870:2;66859:9;66855:18;66846:6;66802:72;;;66885;66953:2;66942:9;66938:18;66929:6;66885:72;;;67005:9;66999:4;66995:20;66990:2;66979:9;66975:18;66968:48;67030:124;67149:4;67140:6;67030:124;;67171:1331;67609:3;67594:19;;67624:71;67598:9;67668:6;67624:71;;;67706:72;67774:2;67763:9;67759:18;67750:6;67706:72;;;67789;67857:2;67846:9;67842:18;67833:6;67789:72;;;67909:9;67903:4;67899:20;67894:2;67883:9;67879:18;67872:48;67934:124;68053:4;68044:6;67934:124;;;67926:132;;68107:9;68101:4;68097:20;68091:3;68080:9;68076:19;68069:49;68132:124;68251:4;68242:6;68132:124;;;68124:132;;68305:9;68299:4;68295:20;68289:3;68278:9;68274:19;68267:49;68330:78;68403:4;68394:6;68330:78;;;68322:86;;68419:73;68487:3;68476:9;68472:19;68463:6;68419:73;;68509:927;68825:3;68810:19;;68840:71;68814:9;68884:6;68840:71;;;68922:72;68990:2;68979:9;68975:18;68966:6;68922:72;;;69005;69073:2;69062:9;69058:18;69049:6;69005:72;;;69125:9;69119:4;69115:20;69110:2;69099:9;69095:18;69088:48;69150:124;69269:4;69260:6;69150:124;;;69142:132;;69323:9;69317:4;69313:20;69307:3;69296:9;69292:19;69285:49;69348:78;69421:4;69412:6;69348:78;;70145:635;70367:3;70352:19;;70382:71;70356:9;70426:6;70382:71;;;70464:72;70532:2;70521:9;70517:18;70508:6;70464:72;;;70547;70615:2;70604:9;70600:18;70591:6;70547:72;;;70667:9;70661:4;70657:20;70652:2;70641:9;70637:18;70630:48;70692:78;70765:4;70756:6;70692:78;;70787:547;70989:3;70974:19;;71004:71;70978:9;71048:6;71004:71;;;71086:72;71154:2;71143:9;71139:18;71130:6;71086:72;;;71169;71237:2;71226:9;71222:18;71213:6;71169:72;;;71252;71320:2;71309:9;71305:18;71296:6;71252:72;;71341:691;71587:3;71572:19;;71602:71;71576:9;71646:6;71602:71;;;71684:72;71752:2;71741:9;71737:18;71728:6;71684:72;;;71767;71835:2;71824:9;71820:18;71811:6;71767:72;;;71850;71918:2;71907:9;71903:18;71894:6;71850:72;;;71933:89;72017:3;72006:9;72002:19;71993:6;71933:89;;72039:807;72319:3;72304:19;;72334:71;72308:9;72378:6;72334:71;;;72416:72;72484:2;72473:9;72469:18;72460:6;72416:72;;;72499;72567:2;72556:9;72552:18;72543:6;72499:72;;;72582;72650:2;72639:9;72635:18;72626:6;72582:72;;;72703:9;72697:4;72693:20;72687:3;72676:9;72672:19;72665:49;72728:108;72831:4;72822:6;72728:108;;72853:539;73051:3;73036:19;;73066:71;73040:9;73110:6;73066:71;;;73148:68;73212:2;73201:9;73197:18;73188:6;73148:68;;73399:263;73542:2;73527:18;;73556:96;73531:9;73625:6;73556:96;;73669:213;73787:2;73772:18;;73801:71;73776:9;73845:6;73801:71;;73889:256;73951:2;73945:9;73977:17;;;-1:-1;;;;;74037:34;;74073:22;;;74034:62;74031:2;;;74109:1;74106;74099:12;74031:2;74125;74118:22;73929:216;;-1:-1;73929:216;74152:304;;-1:-1;;;;;74303:6;74300:30;74297:2;;;74343:1;74340;74333:12;74297:2;-1:-1;74378:4;74366:17;;;74431:15;;74234:222;75093:321;;-1:-1;;;;;75228:6;75225:30;75222:2;;;75268:1;75265;75258:12;75222:2;-1:-1;75399:4;75335;75312:17;;;;-1:-1;;75308:33;75389:15;;75159:255;75750:151;75874:4;75865:14;;75822:79;76232:137;76335:12;;76306:63;77155:178;77273:19;;;77322:4;77313:14;;77266:67;77896:145;78032:3;78010:31;-1:-1;78010:31;78049:91;;78111:24;78129:5;78111:24;;78253:72;78315:5;78298:27;78332:121;-1:-1;;;;;78394:54;;78377:76;78539:81;78610:4;78599:16;;78582:38;78627:171;;78731:62;78787:5;78731:62;;78946:145;79027:6;79022:3;79017;79004:30;-1:-1;79083:1;79065:16;;79058:27;78997:94;79100:268;79165:1;79172:101;79186:6;79183:1;79180:13;79172:101;;;79253:11;;;79247:18;79234:11;;;79227:39;79208:2;79201:10;79172:101;;;79288:6;79285:1;79282:13;79279:2;;;79353:1;79344:6;79339:3;79335:16;79328:27;79279:2;79149:219;;;;;79457:97;79545:2;79525:14;-1:-1;;79521:28;;79505:49;79562:117;79631:24;79649:5;79631:24;;;79624:5;79621:35;79611:2;;79670:1;79667;79660:12;79611:2;79605:74;;79826:117;79895:24;79913:5;79895:24;", + "source": "pragma solidity >=0.5.0 < 0.6.0;\r\npragma experimental ABIEncoderV2;\r\n\r\nimport \"./StandardBounties.sol\";\r\n\r\n\r\ncontract BountiesMetaTxRelayer {\r\n\r\n // This contract serves as a relayer for meta txns being sent to the Bounties contract\r\n\r\n StandardBounties public bountiesContract;\r\n mapping(address => uint) public replayNonce;\r\n\r\n\r\n constructor(address _contract) public {\r\n bountiesContract = StandardBounties(_contract);\r\n }\r\n\r\n function metaIssueBounty(\r\n bytes memory signature,\r\n address payable[] memory _issuers,\r\n address[] memory _approvers,\r\n string memory _data,\r\n uint _deadline,\r\n address _token,\r\n uint _tokenVersion,\r\n uint _nonce)\r\n public\r\n returns (uint)\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaIssueBounty\",\r\n _issuers,\r\n _approvers,\r\n _data,\r\n _deadline,\r\n _token,\r\n _tokenVersion,\r\n _nonce));\r\n address signer = getSigner(metaHash, signature);\r\n\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n return bountiesContract.issueBounty(address(uint160(signer)),\r\n _issuers,\r\n _approvers,\r\n _data,\r\n _deadline,\r\n _token,\r\n _tokenVersion);\r\n }\r\n\r\n function metaIssueAndContribute(\r\n bytes memory signature,\r\n address payable[] memory _issuers,\r\n address[] memory _approvers,\r\n string memory _data,\r\n uint _deadline,\r\n address _token,\r\n uint _tokenVersion,\r\n uint _depositAmount,\r\n uint _nonce)\r\n public\r\n payable\r\n returns (uint)\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaIssueAndContribute\",\r\n _issuers,\r\n _approvers,\r\n _data,\r\n _deadline,\r\n _token,\r\n _tokenVersion,\r\n _depositAmount,\r\n _nonce));\r\n address signer = getSigner(metaHash, signature);\r\n\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n if (msg.value > 0){\r\n return bountiesContract.issueAndContribute.value(msg.value)(address(uint160(signer)),\r\n _issuers,\r\n _approvers,\r\n _data,\r\n _deadline,\r\n _token,\r\n _tokenVersion,\r\n _depositAmount);\r\n } else {\r\n return bountiesContract.issueAndContribute(address(uint160(signer)),\r\n _issuers,\r\n _approvers,\r\n _data,\r\n _deadline,\r\n _token,\r\n _tokenVersion,\r\n _depositAmount);\r\n }\r\n\r\n }\r\n\r\n function metaContribute(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _amount,\r\n uint _nonce)\r\n public\r\n payable\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaContribute\",\r\n _bountyId,\r\n _amount,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n if (msg.value > 0){\r\n bountiesContract.contribute.value(msg.value)(address(uint160(signer)), _bountyId, _amount);\r\n } else {\r\n bountiesContract.contribute(address(uint160(signer)), _bountyId, _amount);\r\n }\r\n }\r\n\r\n\r\n function metaRefundContribution(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _contributionId,\r\n uint _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaRefundContribution\",\r\n _bountyId,\r\n _contributionId,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.refundContribution(signer, _bountyId, _contributionId);\r\n }\r\n\r\n function metaRefundMyContributions(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint[] memory _contributionIds,\r\n uint _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaRefundMyContributions\",\r\n _bountyId,\r\n _contributionIds,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.refundMyContributions(signer, _bountyId, _contributionIds);\r\n }\r\n\r\n function metaRefundContributions(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint[] memory _contributionIds,\r\n uint _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaRefundContributions\",\r\n _bountyId,\r\n _issuerId,\r\n _contributionIds,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.refundContributions(signer, _bountyId, _issuerId, _contributionIds);\r\n }\r\n\r\n function metaDrainBounty(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint[] memory _amounts,\r\n uint _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaDrainBounty\",\r\n _bountyId,\r\n _issuerId,\r\n _amounts,\r\n _nonce));\r\n address payable signer = address(uint160(getSigner(metaHash, _signature)));\r\n\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.drainBounty(signer, _bountyId, _issuerId, _amounts);\r\n }\r\n\r\n function metaPerformAction(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n string memory _data,\r\n uint256 _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaPerformAction\",\r\n _bountyId,\r\n _data,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.performAction(signer, _bountyId, _data);\r\n }\r\n\r\n function metaFulfillBounty(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n address payable[] memory _fulfillers,\r\n string memory _data,\r\n uint256 _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaFulfillBounty\",\r\n _bountyId,\r\n _fulfillers,\r\n _data,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.fulfillBounty(signer, _bountyId, _fulfillers, _data);\r\n }\r\n\r\n function metaUpdateFulfillment(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _fulfillmentId,\r\n address payable[] memory _fulfillers,\r\n string memory _data,\r\n uint256 _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaUpdateFulfillment\",\r\n _bountyId,\r\n _fulfillmentId,\r\n _fulfillers,\r\n _data,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.updateFulfillment(signer, _bountyId, _fulfillmentId, _fulfillers, _data);\r\n }\r\n\r\n function metaAcceptFulfillment(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _fulfillmentId,\r\n uint _approverId,\r\n uint[] memory _tokenAmounts,\r\n uint256 _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaAcceptFulfillment\",\r\n _bountyId,\r\n _fulfillmentId,\r\n _approverId,\r\n _tokenAmounts,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.acceptFulfillment(signer,\r\n _bountyId,\r\n _fulfillmentId,\r\n _approverId,\r\n _tokenAmounts);\r\n }\r\n\r\n function metaFulfillAndAccept(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n address payable[] memory _fulfillers,\r\n string memory _data,\r\n uint _approverId,\r\n uint[] memory _tokenAmounts,\r\n uint256 _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaFulfillAndAccept\",\r\n _bountyId,\r\n _fulfillers,\r\n _data,\r\n _approverId,\r\n _tokenAmounts,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.fulfillAndAccept(signer,\r\n _bountyId,\r\n _fulfillers,\r\n _data,\r\n _approverId,\r\n _tokenAmounts);\r\n }\r\n\r\n function metaChangeBounty(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n address payable[] memory _issuers,\r\n address payable[] memory _approvers,\r\n string memory _data,\r\n uint _deadline,\r\n uint256 _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaChangeBounty\",\r\n _bountyId,\r\n _issuerId,\r\n _issuers,\r\n _approvers,\r\n _data,\r\n _deadline,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.changeBounty(signer,\r\n _bountyId,\r\n _issuerId,\r\n _issuers,\r\n _approvers,\r\n _data,\r\n _deadline);\r\n }\r\n\r\n function metaChangeIssuer(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint _issuerIdToChange,\r\n address payable _newIssuer,\r\n uint256 _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaChangeIssuer\",\r\n _bountyId,\r\n _issuerId,\r\n _issuerIdToChange,\r\n _newIssuer,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.changeIssuer(signer,\r\n _bountyId,\r\n _issuerId,\r\n _issuerIdToChange,\r\n _newIssuer);\r\n }\r\n\r\n function metaChangeApprover(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint _approverId,\r\n address payable _approver,\r\n uint256 _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaChangeApprover\",\r\n _bountyId,\r\n _issuerId,\r\n _approverId,\r\n _approver,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.changeApprover(signer,\r\n _bountyId,\r\n _issuerId,\r\n _approverId,\r\n _approver);\r\n }\r\n\r\n function metaChangeData(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n string memory _data,\r\n uint256 _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaChangeData\",\r\n _bountyId,\r\n _issuerId,\r\n _data,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.changeData(signer,\r\n _bountyId,\r\n _issuerId,\r\n _data);\r\n }\r\n\r\n function metaChangeDeadline(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint _deadline,\r\n uint256 _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaChangeDeadline\",\r\n _bountyId,\r\n _issuerId,\r\n _deadline,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.changeDeadline(signer,\r\n _bountyId,\r\n _issuerId,\r\n _deadline);\r\n }\r\n\r\n function metaAddIssuers(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n address payable[] memory _issuers,\r\n uint256 _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaAddIssuers\",\r\n _bountyId,\r\n _issuerId,\r\n _issuers,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.addIssuers(signer,\r\n _bountyId,\r\n _issuerId,\r\n _issuers);\r\n }\r\n\r\n function metaAddApprovers(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n address[] memory _approvers,\r\n uint256 _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaAddApprovers\",\r\n _bountyId,\r\n _issuerId,\r\n _approvers,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.addApprovers(signer,\r\n _bountyId,\r\n _issuerId,\r\n _approvers);\r\n }\r\n\r\n function getSigner(\r\n bytes32 _hash,\r\n bytes memory _signature)\r\n internal\r\n pure\r\n returns (address)\r\n {\r\n bytes32 r;\r\n bytes32 s;\r\n uint8 v;\r\n if (_signature.length != 65){\r\n return address(0);\r\n }\r\n assembly {\r\n r := mload(add(_signature, 32))\r\n s := mload(add(_signature, 64))\r\n v := byte(0, mload(add(_signature, 96)))\r\n }\r\n if (v < 27){\r\n v += 27;\r\n }\r\n if (v != 27 && v != 28){\r\n return address(0);\r\n } else {\r\n return ecrecover(keccak256(abi.encodePacked(\"\\x19Ethereum Signed Message:\\n32\", _hash)), v, r, s );\r\n }\r\n }\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\BountiesMetaTxRelayer.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/BountiesMetaTxRelayer.sol", + "exportedSymbols": { + "BountiesMetaTxRelayer": [ + 2505 + ] + }, + "id": 2506, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1012, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:4" + }, + { + "id": 1013, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "34:33:4" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/StandardBounties.sol", + "file": "./StandardBounties.sol", + "id": 1014, + "nodeType": "ImportDirective", + "scope": 2506, + "sourceUnit": 4513, + "src": "71:32:4", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2505, + "linearizedBaseContracts": [ + 2505 + ], + "name": "BountiesMetaTxRelayer", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 1016, + "name": "bountiesContract", + "nodeType": "VariableDeclaration", + "scope": 2505, + "src": "239:40:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + }, + "typeName": { + "contractScope": null, + "id": 1015, + "name": "StandardBounties", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4512, + "src": "239:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1020, + "name": "replayNonce", + "nodeType": "VariableDeclaration", + "scope": 2505, + "src": "284:43:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 1019, + "keyType": { + "id": 1017, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "292:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "284:24:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 1018, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "303:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 1031, + "nodeType": "Block", + "src": "374:59:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1025, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "381:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1027, + "name": "_contract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1022, + "src": "417:9:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1026, + "name": "StandardBounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4512, + "src": "400:16:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_StandardBounties_$4512_$", + "typeString": "type(contract StandardBounties)" + } + }, + "id": 1028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "400:27:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "src": "381:46:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1030, + "nodeType": "ExpressionStatement", + "src": "381:46:4" + } + ] + }, + "documentation": null, + "id": 1032, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1023, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1022, + "name": "_contract", + "nodeType": "VariableDeclaration", + "scope": 1032, + "src": "348:17:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1021, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "348:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "347:19:4" + }, + "returnParameters": { + "id": 1024, + "nodeType": "ParameterList", + "parameters": [], + "src": "374:0:4" + }, + "scope": 2505, + "src": "336:97:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1117, + "nodeType": "Block", + "src": "716:1217:4", + "statements": [ + { + "assignments": [ + 1056 + ], + "declarations": [ + { + "constant": false, + "id": 1056, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 1117, + "src": "723:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1055, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "723:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1073, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1061, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "771:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "763:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "763:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d6574614973737565426f756e7479", + "id": 1063, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "829:17:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_aa276ab5ec69bfbc25fe6788e9d93617d817f695e4ebfc350a16976fa2655d35", + "typeString": "literal_string \"metaIssueBounty\"" + }, + "value": "metaIssueBounty" + }, + { + "argumentTypes": null, + "id": 1064, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1037, + "src": "899:8:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1065, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1040, + "src": "960:10:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 1066, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1042, + "src": "1023:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1067, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1044, + "src": "1081:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1068, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1046, + "src": "1143:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1069, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1048, + "src": "1202:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1070, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "1268:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_aa276ab5ec69bfbc25fe6788e9d93617d817f695e4ebfc350a16976fa2655d35", + "typeString": "literal_string \"metaIssueBounty\"" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1058, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "752:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1059, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "752:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "752:523:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1057, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "742:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "742:534:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "723:553:4" + }, + { + "assignments": [ + 1075 + ], + "declarations": [ + { + "constant": false, + "id": 1075, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 1117, + "src": "1283:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1074, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1283:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1080, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1077, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1056, + "src": "1310:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1078, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "1320:9:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1076, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "1300:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1300:30:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1283:47:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1082, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1075, + "src": "1396:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1084, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1414:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1406:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1085, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1406:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1396:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1081, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "1388:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1388:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1088, + "nodeType": "ExpressionStatement", + "src": "1388:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1090, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "1432:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1091, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "1442:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1093, + "indexExpression": { + "argumentTypes": null, + "id": 1092, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1075, + "src": "1454:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1442:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1432:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1089, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "1424:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1424:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1096, + "nodeType": "ExpressionStatement", + "src": "1424:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1523:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1097, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "1523:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1099, + "indexExpression": { + "argumentTypes": null, + "id": 1098, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1075, + "src": "1535:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1523:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1101, + "nodeType": "ExpressionStatement", + "src": "1523:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1106, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1075, + "src": "1603:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1595:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": "uint160" + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1595:15:4", + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1587:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1587:24:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1109, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1037, + "src": "1655:8:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1110, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1040, + "src": "1707:10:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 1111, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1042, + "src": "1761:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1112, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1044, + "src": "1810:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1113, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1046, + "src": "1863:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1114, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1048, + "src": "1913:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1102, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "1558:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "issueBounty", + "nodeType": "MemberAccess", + "referencedDeclaration": 2956, + "src": "1558:28:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256) external returns (uint256)" + } + }, + "id": 1115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1558:369:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1054, + "id": 1116, + "nodeType": "Return", + "src": "1551:376:4" + } + ] + }, + "documentation": null, + "id": 1118, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaIssueBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1051, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1034, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 1118, + "src": "470:22:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1033, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "470:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1037, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 1118, + "src": "499:33:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 1035, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "499:15:4", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1036, + "length": null, + "nodeType": "ArrayTypeName", + "src": "499:17:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1040, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 1118, + "src": "539:27:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1038, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "539:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1039, + "length": null, + "nodeType": "ArrayTypeName", + "src": "539:9:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1042, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 1118, + "src": "573:19:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1041, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "573:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1044, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 1118, + "src": "599:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1043, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "599:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1046, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 1118, + "src": "620:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1045, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "620:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1048, + "name": "_tokenVersion", + "nodeType": "VariableDeclaration", + "scope": 1118, + "src": "641:18:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1047, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "641:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1050, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 1118, + "src": "666:11:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1049, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "666:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "463:215:4" + }, + "returnParameters": { + "id": 1054, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1053, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1118, + "src": "705:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1052, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "705:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "704:6:4" + }, + "scope": 2505, + "src": "439:1494:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1234, + "nodeType": "Block", + "src": "2262:1987:4", + "statements": [ + { + "assignments": [ + 1144 + ], + "declarations": [ + { + "constant": false, + "id": 1144, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 1234, + "src": "2269:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1143, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2269:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1162, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1149, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "2317:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2309:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2309:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d6574614973737565416e64436f6e74726962757465", + "id": 1151, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2375:24:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d7582cbbdb7194126649dea0d2d2499e8980380297911f39d550880a6674f395", + "typeString": "literal_string \"metaIssueAndContribute\"" + }, + "value": "metaIssueAndContribute" + }, + { + "argumentTypes": null, + "id": 1152, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1123, + "src": "2452:8:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1153, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1126, + "src": "2513:10:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 1154, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1128, + "src": "2576:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1155, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1130, + "src": "2634:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1156, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1132, + "src": "2696:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1157, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1134, + "src": "2755:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1158, + "name": "_depositAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1136, + "src": "2821:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1159, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1138, + "src": "2888:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_d7582cbbdb7194126649dea0d2d2499e8980380297911f39d550880a6674f395", + "typeString": "literal_string \"metaIssueAndContribute\"" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1146, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "2298:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1147, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2298:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2298:597:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1145, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "2288:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2288:608:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2269:627:4" + }, + { + "assignments": [ + 1164 + ], + "declarations": [ + { + "constant": false, + "id": 1164, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 1234, + "src": "2903:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1163, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2903:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1169, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1166, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1144, + "src": "2930:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1167, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1120, + "src": "2940:9:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1165, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "2920:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2920:30:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2903:47:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1171, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1164, + "src": "3016:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1173, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3034:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3026:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3026:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "3016:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1170, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "3008:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3008:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1177, + "nodeType": "ExpressionStatement", + "src": "3008:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1179, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1138, + "src": "3052:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1180, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "3062:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1182, + "indexExpression": { + "argumentTypes": null, + "id": 1181, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1164, + "src": "3074:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3062:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3052:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1178, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "3044:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3044:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1185, + "nodeType": "ExpressionStatement", + "src": "3044:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3143:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1186, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "3143:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1188, + "indexExpression": { + "argumentTypes": null, + "id": 1187, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1164, + "src": "3155:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3143:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1190, + "nodeType": "ExpressionStatement", + "src": "3143:21:4" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1191, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3177:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3177:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3189:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3177:13:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1232, + "nodeType": "Block", + "src": "3728:514:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1220, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1164, + "src": "3796:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1219, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3788:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": "uint160" + }, + "id": 1221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3788:15:4", + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1218, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3780:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3780:24:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1223, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1123, + "src": "3856:8:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1224, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1126, + "src": "3916:10:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 1225, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1128, + "src": "3978:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1226, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1130, + "src": "4035:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1227, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1132, + "src": "4096:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1228, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1134, + "src": "4154:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1229, + "name": "_depositAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1136, + "src": "4219:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1216, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "3744:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "issueAndContribute", + "nodeType": "MemberAccess", + "referencedDeclaration": 3001, + "src": "3744:35:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256) payable external returns (uint256)" + } + }, + "id": 1230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3744:490:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1142, + "id": 1231, + "nodeType": "Return", + "src": "3737:497:4" + } + ] + }, + "id": 1233, + "nodeType": "IfStatement", + "src": "3173:1069:4", + "trueBody": { + "id": 1215, + "nodeType": "Block", + "src": "3191:531:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1203, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1164, + "src": "3276:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3268:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": "uint160" + }, + "id": 1204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3268:15:4", + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3260:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3260:24:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1206, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1123, + "src": "3336:8:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1207, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1126, + "src": "3396:10:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 1208, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1128, + "src": "3458:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1209, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1130, + "src": "3515:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1210, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1132, + "src": "3576:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1211, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1134, + "src": "3634:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1212, + "name": "_depositAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1136, + "src": "3699:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1198, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3249:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3249:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1195, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "3207:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "issueAndContribute", + "nodeType": "MemberAccess", + "referencedDeclaration": 3001, + "src": "3207:35:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256) payable external returns (uint256)" + } + }, + "id": 1197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3207:41:4", + "typeDescriptions": { + "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$value_$", + "typeString": "function (uint256) returns (function (address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256) payable external returns (uint256))" + } + }, + "id": 1200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3207:52:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$value", + "typeString": "function (address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256) payable external returns (uint256)" + } + }, + "id": 1213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3207:507:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1142, + "id": 1214, + "nodeType": "Return", + "src": "3200:514:4" + } + ] + } + } + ] + }, + "documentation": null, + "id": 1235, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaIssueAndContribute", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1139, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1120, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 1235, + "src": "1977:22:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1119, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1977:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1123, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 1235, + "src": "2006:33:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 1121, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2006:15:4", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1122, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2006:17:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1126, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 1235, + "src": "2046:27:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2046:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1125, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2046:9:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1128, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 1235, + "src": "2080:19:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1127, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2080:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1130, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 1235, + "src": "2106:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1129, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2106:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1132, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 1235, + "src": "2127:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1131, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2127:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1134, + "name": "_tokenVersion", + "nodeType": "VariableDeclaration", + "scope": 1235, + "src": "2148:18:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1133, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2148:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1136, + "name": "_depositAmount", + "nodeType": "VariableDeclaration", + "scope": 1235, + "src": "2173:19:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1135, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2173:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1138, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 1235, + "src": "2199:11:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1137, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2199:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1970:241:4" + }, + "returnParameters": { + "id": 1142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1141, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1235, + "src": "2251:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1140, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2251:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2250:6:4" + }, + "scope": 2505, + "src": "1939:2310:4", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1325, + "nodeType": "Block", + "src": "4398:816:4", + "statements": [ + { + "assignments": [ + 1247 + ], + "declarations": [ + { + "constant": false, + "id": 1247, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 1325, + "src": "4405:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1246, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4405:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1260, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1252, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "4453:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4445:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4445:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d657461436f6e74726962757465", + "id": 1254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4511:16:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7d76b93a2b426b4994ed488a90b484491fbd027f588de1d7e23a4267d0413fb2", + "typeString": "literal_string \"metaContribute\"" + }, + "value": "metaContribute" + }, + { + "argumentTypes": null, + "id": 1255, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1239, + "src": "4580:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1256, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1241, + "src": "4642:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1257, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1243, + "src": "4702:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_7d76b93a2b426b4994ed488a90b484491fbd027f588de1d7e23a4267d0413fb2", + "typeString": "literal_string \"metaContribute\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1249, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "4434:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4434:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4434:275:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1248, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "4424:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4424:286:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4405:305:4" + }, + { + "assignments": [ + 1262 + ], + "declarations": [ + { + "constant": false, + "id": 1262, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 1325, + "src": "4717:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1261, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4717:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1267, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1264, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1247, + "src": "4744:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1265, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1237, + "src": "4754:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1263, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "4734:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4734:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4717:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1269, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1262, + "src": "4831:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1271, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4849:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4841:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1272, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4841:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "4831:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1268, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4823:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4823:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1275, + "nodeType": "ExpressionStatement", + "src": "4823:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1277, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1243, + "src": "4867:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1278, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "4877:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1280, + "indexExpression": { + "argumentTypes": null, + "id": 1279, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1262, + "src": "4889:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4877:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4867:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1276, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4859:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4859:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1283, + "nodeType": "ExpressionStatement", + "src": "4859:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4958:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1284, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "4958:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1286, + "indexExpression": { + "argumentTypes": null, + "id": 1285, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1262, + "src": "4970:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4958:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1288, + "nodeType": "ExpressionStatement", + "src": "4958:21:4" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1289, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "4992:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4992:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5004:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4992:13:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1323, + "nodeType": "Block", + "src": "5119:90:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1316, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1262, + "src": "5172:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1315, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5164:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": "uint160" + }, + "id": 1317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5164:15:4", + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5156:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5156:24:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1319, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1239, + "src": "5182:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1320, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1241, + "src": "5193:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1311, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "5128:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contribute", + "nodeType": "MemberAccess", + "referencedDeclaration": 3163, + "src": "5128:27:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_address_payable_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address payable,uint256,uint256) payable external" + } + }, + "id": 1321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5128:73:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1322, + "nodeType": "ExpressionStatement", + "src": "5128:73:4" + } + ] + }, + "id": 1324, + "nodeType": "IfStatement", + "src": "4988:221:4", + "trueBody": { + "id": 1310, + "nodeType": "Block", + "src": "5006:107:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1303, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1262, + "src": "5076:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5068:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": "uint160" + }, + "id": 1304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5068:15:4", + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1301, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5060:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5060:24:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1306, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1239, + "src": "5086:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1307, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1241, + "src": "5097:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1298, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "5049:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5049:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1293, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "5015:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contribute", + "nodeType": "MemberAccess", + "referencedDeclaration": 3163, + "src": "5015:27:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_address_payable_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address payable,uint256,uint256) payable external" + } + }, + "id": 1297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5015:33:4", + "typeDescriptions": { + "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_address_payable_$_t_uint256_$_t_uint256_$returns$__$value_$", + "typeString": "function (uint256) returns (function (address payable,uint256,uint256) payable external)" + } + }, + "id": 1300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5015:44:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_address_payable_$_t_uint256_$_t_uint256_$returns$__$value", + "typeString": "function (address payable,uint256,uint256) payable external" + } + }, + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5015:90:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1309, + "nodeType": "ExpressionStatement", + "src": "5015:90:4" + } + ] + } + } + ] + }, + "documentation": null, + "id": 1326, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaContribute", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1244, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1237, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 1326, + "src": "4285:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1236, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4285:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1239, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 1326, + "src": "4315:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1238, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4315:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1241, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 1326, + "src": "4336:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1240, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4336:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1243, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 1326, + "src": "4355:11:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1242, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4355:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4278:89:4" + }, + "returnParameters": { + "id": 1245, + "nodeType": "ParameterList", + "parameters": [], + "src": "4398:0:4" + }, + "scope": 2505, + "src": "4255:959:4", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1388, + "nodeType": "Block", + "src": "5368:683:4", + "statements": [ + { + "assignments": [ + 1338 + ], + "declarations": [ + { + "constant": false, + "id": 1338, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 1388, + "src": "5375:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1337, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5375:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1351, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1343, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "5423:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1342, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5415:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5415:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d657461526566756e64436f6e747269627574696f6e", + "id": 1345, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5481:24:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c2f0a3ca9cbf2bed82817cc9072419ef9150d33bdcc6898ef7adc26aed37120a", + "typeString": "literal_string \"metaRefundContribution\"" + }, + "value": "metaRefundContribution" + }, + { + "argumentTypes": null, + "id": 1346, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1330, + "src": "5558:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1347, + "name": "_contributionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1332, + "src": "5620:15:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1348, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1334, + "src": "5688:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_c2f0a3ca9cbf2bed82817cc9072419ef9150d33bdcc6898ef7adc26aed37120a", + "typeString": "literal_string \"metaRefundContribution\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1340, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "5404:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1341, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5404:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5404:291:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1339, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "5394:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5394:302:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5375:321:4" + }, + { + "assignments": [ + 1353 + ], + "declarations": [ + { + "constant": false, + "id": 1353, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 1388, + "src": "5703:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1352, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5703:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1358, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1355, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1338, + "src": "5730:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1356, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1328, + "src": "5740:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1354, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "5720:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5720:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5703:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1360, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1353, + "src": "5817:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1362, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5835:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5827:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5827:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "5817:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1359, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "5809:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5809:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1366, + "nodeType": "ExpressionStatement", + "src": "5809:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1368, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1334, + "src": "5853:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1369, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "5863:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1371, + "indexExpression": { + "argumentTypes": null, + "id": 1370, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1353, + "src": "5875:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5863:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5853:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1367, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "5845:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5845:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1374, + "nodeType": "ExpressionStatement", + "src": "5845:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "5944:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1375, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "5944:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1377, + "indexExpression": { + "argumentTypes": null, + "id": 1376, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1353, + "src": "5956:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5944:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1379, + "nodeType": "ExpressionStatement", + "src": "5944:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1383, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1353, + "src": "6010:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1384, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1330, + "src": "6018:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1385, + "name": "_contributionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1332, + "src": "6029:15:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1380, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "5974:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "refundContribution", + "nodeType": "MemberAccess", + "referencedDeclaration": 3234, + "src": "5974:35:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256) external" + } + }, + "id": 1386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5974:71:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1387, + "nodeType": "ExpressionStatement", + "src": "5974:71:4" + } + ] + }, + "documentation": null, + "id": 1389, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaRefundContribution", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1335, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1328, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 1389, + "src": "5260:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1327, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5260:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1330, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 1389, + "src": "5290:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1329, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5290:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1332, + "name": "_contributionId", + "nodeType": "VariableDeclaration", + "scope": 1389, + "src": "5311:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1331, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5311:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1334, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 1389, + "src": "5338:11:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1333, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5338:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5253:97:4" + }, + "returnParameters": { + "id": 1336, + "nodeType": "ParameterList", + "parameters": [], + "src": "5368:0:4" + }, + "scope": 2505, + "src": "5222:829:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1452, + "nodeType": "Block", + "src": "6216:691:4", + "statements": [ + { + "assignments": [ + 1402 + ], + "declarations": [ + { + "constant": false, + "id": 1402, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 1452, + "src": "6223:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1401, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6223:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1415, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1407, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "6271:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6263:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6263:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d657461526566756e644d79436f6e747269627574696f6e73", + "id": 1409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6329:27:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e34c123f73c46ea90307822135f22d72b921a988184ca5170e0b8f0143d0217b", + "typeString": "literal_string \"metaRefundMyContributions\"" + }, + "value": "metaRefundMyContributions" + }, + { + "argumentTypes": null, + "id": 1410, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1393, + "src": "6409:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1411, + "name": "_contributionIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1396, + "src": "6471:16:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 1412, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1398, + "src": "6540:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_e34c123f73c46ea90307822135f22d72b921a988184ca5170e0b8f0143d0217b", + "typeString": "literal_string \"metaRefundMyContributions\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1404, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "6252:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1405, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6252:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6252:295:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1403, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "6242:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6242:306:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6223:325:4" + }, + { + "assignments": [ + 1417 + ], + "declarations": [ + { + "constant": false, + "id": 1417, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 1452, + "src": "6555:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1416, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6555:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1422, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1419, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1402, + "src": "6582:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1420, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1391, + "src": "6592:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1418, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "6572:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6572:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6555:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1424, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "6669:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6687:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1425, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6679:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1427, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6679:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "6669:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1423, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "6661:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6661:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1430, + "nodeType": "ExpressionStatement", + "src": "6661:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1432, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1398, + "src": "6705:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1433, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "6715:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1435, + "indexExpression": { + "argumentTypes": null, + "id": 1434, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "6727:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6715:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6705:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1431, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "6697:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6697:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1438, + "nodeType": "ExpressionStatement", + "src": "6697:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6796:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1439, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "6796:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1441, + "indexExpression": { + "argumentTypes": null, + "id": 1440, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "6808:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6796:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1443, + "nodeType": "ExpressionStatement", + "src": "6796:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1447, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "6865:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1448, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1393, + "src": "6873:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1449, + "name": "_contributionIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1396, + "src": "6884:16:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 1444, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "6826:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "refundMyContributions", + "nodeType": "MemberAccess", + "referencedDeclaration": 3269, + "src": "6826:38:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256[] memory) external" + } + }, + "id": 1450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6826:75:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1451, + "nodeType": "ExpressionStatement", + "src": "6826:75:4" + } + ] + }, + "documentation": null, + "id": 1453, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaRefundMyContributions", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1399, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1391, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 1453, + "src": "6098:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1390, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6098:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1393, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 1453, + "src": "6128:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1392, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6128:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1396, + "name": "_contributionIds", + "nodeType": "VariableDeclaration", + "scope": 1453, + "src": "6149:30:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1394, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6149:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1395, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6149:6:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1398, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 1453, + "src": "6186:11:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1397, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6186:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6091:107:4" + }, + "returnParameters": { + "id": 1400, + "nodeType": "ParameterList", + "parameters": [], + "src": "6216:0:4" + }, + "scope": 2505, + "src": "6057:850:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1520, + "nodeType": "Block", + "src": "7091:760:4", + "statements": [ + { + "assignments": [ + 1468 + ], + "declarations": [ + { + "constant": false, + "id": 1468, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 1520, + "src": "7098:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1467, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7098:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1482, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1473, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "7146:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1472, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7138:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7138:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d657461526566756e64436f6e747269627574696f6e73", + "id": 1475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7204:25:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6dc07cd3819461cfdff6f1564bcc681706d72dbddb433578d7e030a6fb3cde9c", + "typeString": "literal_string \"metaRefundContributions\"" + }, + "value": "metaRefundContributions" + }, + { + "argumentTypes": null, + "id": 1476, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1457, + "src": "7282:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1477, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1459, + "src": "7344:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1478, + "name": "_contributionIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1462, + "src": "7406:16:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 1479, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1464, + "src": "7475:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_6dc07cd3819461cfdff6f1564bcc681706d72dbddb433578d7e030a6fb3cde9c", + "typeString": "literal_string \"metaRefundContributions\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1470, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "7127:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7127:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7127:355:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1469, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "7117:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7117:366:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7098:385:4" + }, + { + "assignments": [ + 1484 + ], + "declarations": [ + { + "constant": false, + "id": 1484, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 1520, + "src": "7490:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1483, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7490:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1489, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1486, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1468, + "src": "7517:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1487, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1455, + "src": "7527:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1485, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "7507:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7507:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7490:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1491, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "7604:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7622:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1492, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7614:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7614:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7604:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1490, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "7596:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7596:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1497, + "nodeType": "ExpressionStatement", + "src": "7596:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1499, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1464, + "src": "7640:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1500, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "7650:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1502, + "indexExpression": { + "argumentTypes": null, + "id": 1501, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "7662:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7650:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7640:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1498, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "7632:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7632:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1505, + "nodeType": "ExpressionStatement", + "src": "7632:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7731:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1506, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "7731:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1508, + "indexExpression": { + "argumentTypes": null, + "id": 1507, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "7743:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7731:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1510, + "nodeType": "ExpressionStatement", + "src": "7731:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1514, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "7798:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1515, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1457, + "src": "7806:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1516, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1459, + "src": "7817:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1517, + "name": "_contributionIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1462, + "src": "7828:16:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 1511, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "7761:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "refundContributions", + "nodeType": "MemberAccess", + "referencedDeclaration": 3357, + "src": "7761:36:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256[] memory) external" + } + }, + "id": 1518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7761:84:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1519, + "nodeType": "ExpressionStatement", + "src": "7761:84:4" + } + ] + }, + "documentation": null, + "id": 1521, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaRefundContributions", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1465, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1455, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 1521, + "src": "6952:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1454, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6952:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1457, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 1521, + "src": "6982:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1456, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6982:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1459, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 1521, + "src": "7003:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1458, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7003:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1462, + "name": "_contributionIds", + "nodeType": "VariableDeclaration", + "scope": 1521, + "src": "7024:30:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1460, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7024:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1461, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7024:6:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1464, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 1521, + "src": "7061:11:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1463, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7061:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6945:128:4" + }, + "returnParameters": { + "id": 1466, + "nodeType": "ParameterList", + "parameters": [], + "src": "7091:0:4" + }, + "scope": 2505, + "src": "6913:938:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1592, + "nodeType": "Block", + "src": "8019:754:4", + "statements": [ + { + "assignments": [ + 1536 + ], + "declarations": [ + { + "constant": false, + "id": 1536, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "8026:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1535, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8026:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1550, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1541, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "8074:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1540, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8066:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8066:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d657461447261696e426f756e7479", + "id": 1543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8132:17:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6b08dc5b26fa52617a877f2faf24f03225f30a7b2c3584eb05ed10c59e6e4793", + "typeString": "literal_string \"metaDrainBounty\"" + }, + "value": "metaDrainBounty" + }, + { + "argumentTypes": null, + "id": 1544, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1525, + "src": "8202:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1545, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1527, + "src": "8264:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1546, + "name": "_amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1530, + "src": "8326:8:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 1547, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1532, + "src": "8387:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_6b08dc5b26fa52617a877f2faf24f03225f30a7b2c3584eb05ed10c59e6e4793", + "typeString": "literal_string \"metaDrainBounty\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1538, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "8055:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8055:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8055:339:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1537, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "8045:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8045:350:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8026:369:4" + }, + { + "assignments": [ + 1552 + ], + "declarations": [ + { + "constant": false, + "id": 1552, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "8402:22:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 1551, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8402:15:4", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1561, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1556, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1536, + "src": "8453:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1557, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1523, + "src": "8463:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1555, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "8443:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8443:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8435:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": "uint160" + }, + "id": 1559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8435:40:4", + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8427:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8427:49:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8402:74:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "id": 1567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1563, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1552, + "src": "8542:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8560:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8552:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8552:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8542:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1562, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "8534:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8534:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1569, + "nodeType": "ExpressionStatement", + "src": "8534:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1571, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1532, + "src": "8578:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1572, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "8588:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1574, + "indexExpression": { + "argumentTypes": null, + "id": 1573, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1552, + "src": "8600:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8588:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8578:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1570, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "8570:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8570:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1577, + "nodeType": "ExpressionStatement", + "src": "8570:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "8669:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1578, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "8669:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1580, + "indexExpression": { + "argumentTypes": null, + "id": 1579, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1552, + "src": "8681:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8669:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1582, + "nodeType": "ExpressionStatement", + "src": "8669:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1586, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1552, + "src": "8728:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1587, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1525, + "src": "8736:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1588, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1527, + "src": "8747:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1589, + "name": "_amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1530, + "src": "8758:8:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 1583, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "8699:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "drainBounty", + "nodeType": "MemberAccess", + "referencedDeclaration": 3462, + "src": "8699:28:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address payable,uint256,uint256,uint256[] memory) external" + } + }, + "id": 1590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8699:68:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1591, + "nodeType": "ExpressionStatement", + "src": "8699:68:4" + } + ] + }, + "documentation": null, + "id": 1593, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaDrainBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1533, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1523, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 1593, + "src": "7888:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1522, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7888:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1525, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 1593, + "src": "7918:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1524, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7918:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1527, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 1593, + "src": "7939:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1526, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7939:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1530, + "name": "_amounts", + "nodeType": "VariableDeclaration", + "scope": 1593, + "src": "7960:22:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1528, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7960:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1529, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7960:6:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1532, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 1593, + "src": "7989:11:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1531, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7989:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7881:120:4" + }, + "returnParameters": { + "id": 1534, + "nodeType": "ParameterList", + "parameters": [], + "src": "8019:0:4" + }, + "scope": 2505, + "src": "7857:916:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1655, + "nodeType": "Block", + "src": "8922:651:4", + "statements": [ + { + "assignments": [ + 1605 + ], + "declarations": [ + { + "constant": false, + "id": 1605, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 1655, + "src": "8929:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1604, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8929:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1618, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1610, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "8977:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1609, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8969:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8969:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d657461506572666f726d416374696f6e", + "id": 1612, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9035:19:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6eb47f203931c2dfd0ec3b57dc38e7047f05e2866d6badfcd9eefc81a69d765c", + "typeString": "literal_string \"metaPerformAction\"" + }, + "value": "metaPerformAction" + }, + { + "argumentTypes": null, + "id": 1613, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "9107:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1614, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1599, + "src": "9169:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1615, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1601, + "src": "9227:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_6eb47f203931c2dfd0ec3b57dc38e7047f05e2866d6badfcd9eefc81a69d765c", + "typeString": "literal_string \"metaPerformAction\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1607, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "8958:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8958:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8958:276:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1606, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "8948:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8948:287:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8929:306:4" + }, + { + "assignments": [ + 1620 + ], + "declarations": [ + { + "constant": false, + "id": 1620, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 1655, + "src": "9242:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1619, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9242:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1625, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1622, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1605, + "src": "9269:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1623, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "9279:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1621, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "9259:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9259:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9242:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1627, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1620, + "src": "9354:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9372:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9364:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9364:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "9354:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1626, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9346:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9346:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1633, + "nodeType": "ExpressionStatement", + "src": "9346:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1635, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1601, + "src": "9390:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1636, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "9400:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1638, + "indexExpression": { + "argumentTypes": null, + "id": 1637, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1620, + "src": "9412:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9400:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9390:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1634, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9382:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9382:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1641, + "nodeType": "ExpressionStatement", + "src": "9382:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "9481:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1642, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "9481:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1644, + "indexExpression": { + "argumentTypes": null, + "id": 1643, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1620, + "src": "9493:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9481:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1646, + "nodeType": "ExpressionStatement", + "src": "9481:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1650, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1620, + "src": "9542:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1651, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "9550:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1652, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1599, + "src": "9561:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 1647, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "9511:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "performAction", + "nodeType": "MemberAccess", + "referencedDeclaration": 3484, + "src": "9511:30:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,string memory) external" + } + }, + "id": 1653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9511:56:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1654, + "nodeType": "ExpressionStatement", + "src": "9511:56:4" + } + ] + }, + "documentation": null, + "id": 1656, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaPerformAction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1595, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 1656, + "src": "8812:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1594, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8812:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1597, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 1656, + "src": "8842:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1596, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8842:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1599, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 1656, + "src": "8863:19:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1598, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8863:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1601, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 1656, + "src": "8889:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8889:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8805:99:4" + }, + "returnParameters": { + "id": 1603, + "nodeType": "ParameterList", + "parameters": [], + "src": "8922:0:4" + }, + "scope": 2505, + "src": "8779:794:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1723, + "nodeType": "Block", + "src": "9766:728:4", + "statements": [ + { + "assignments": [ + 1671 + ], + "declarations": [ + { + "constant": false, + "id": 1671, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 1723, + "src": "9773:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1670, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "9773:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1685, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1676, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "9821:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1675, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9813:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9813:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d65746146756c66696c6c426f756e7479", + "id": 1678, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9879:19:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a13e8c3cdcf546caa5d6bbf26d3005b64ad6ad4a9f5918d69febb90107dfae0b", + "typeString": "literal_string \"metaFulfillBounty\"" + }, + "value": "metaFulfillBounty" + }, + { + "argumentTypes": null, + "id": 1679, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1660, + "src": "9951:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1680, + "name": "_fulfillers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1663, + "src": "10013:11:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1681, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1665, + "src": "10077:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1682, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1667, + "src": "10135:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_a13e8c3cdcf546caa5d6bbf26d3005b64ad6ad4a9f5918d69febb90107dfae0b", + "typeString": "literal_string \"metaFulfillBounty\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1673, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "9802:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9802:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9802:340:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1672, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "9792:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9792:351:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9773:370:4" + }, + { + "assignments": [ + 1687 + ], + "declarations": [ + { + "constant": false, + "id": 1687, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 1723, + "src": "10150:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1686, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10150:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1692, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1689, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1671, + "src": "10177:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1690, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1658, + "src": "10187:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1688, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "10167:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10167:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10150:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1694, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1687, + "src": "10262:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1696, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10280:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1695, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10272:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1697, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10272:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10262:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1693, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10254:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10254:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1700, + "nodeType": "ExpressionStatement", + "src": "10254:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1702, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1667, + "src": "10298:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1703, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "10308:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1705, + "indexExpression": { + "argumentTypes": null, + "id": 1704, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1687, + "src": "10320:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10308:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10298:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1701, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10290:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10290:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1708, + "nodeType": "ExpressionStatement", + "src": "10290:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "10389:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1709, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "10389:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1711, + "indexExpression": { + "argumentTypes": null, + "id": 1710, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1687, + "src": "10401:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10389:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1713, + "nodeType": "ExpressionStatement", + "src": "10389:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1717, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1687, + "src": "10450:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1718, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1660, + "src": "10458:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1719, + "name": "_fulfillers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1663, + "src": "10469:11:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1720, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1665, + "src": "10482:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 1714, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "10419:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "fulfillBounty", + "nodeType": "MemberAccess", + "referencedDeclaration": 3545, + "src": "10419:30:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,address payable[] memory,string memory) external" + } + }, + "id": 1721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10419:69:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1722, + "nodeType": "ExpressionStatement", + "src": "10419:69:4" + } + ] + }, + "documentation": null, + "id": 1724, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaFulfillBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1658, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 1724, + "src": "9612:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1657, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9612:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1660, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 1724, + "src": "9642:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1659, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9642:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1663, + "name": "_fulfillers", + "nodeType": "VariableDeclaration", + "scope": 1724, + "src": "9663:37:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 1661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9663:15:4", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1662, + "length": null, + "nodeType": "ArrayTypeName", + "src": "9663:17:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1665, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 1724, + "src": "9707:19:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1664, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9707:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1667, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 1724, + "src": "9733:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9733:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9605:143:4" + }, + "returnParameters": { + "id": 1669, + "nodeType": "ParameterList", + "parameters": [], + "src": "9766:0:4" + }, + "scope": 2505, + "src": "9579:915:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1795, + "nodeType": "Block", + "src": "10717:819:4", + "statements": [ + { + "assignments": [ + 1741 + ], + "declarations": [ + { + "constant": false, + "id": 1741, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 1795, + "src": "10724:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1740, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10724:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1756, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1746, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "10772:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10764:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10764:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d65746155706461746546756c66696c6c6d656e74", + "id": 1748, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10830:23:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e24628a0114f1b1eca1d45f0798a3051de9b226fbeb75086a6ca0746c4a11eaa", + "typeString": "literal_string \"metaUpdateFulfillment\"" + }, + "value": "metaUpdateFulfillment" + }, + { + "argumentTypes": null, + "id": 1749, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1728, + "src": "10906:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1750, + "name": "_fulfillmentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1730, + "src": "10968:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1751, + "name": "_fulfillers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1733, + "src": "11035:11:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1752, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1735, + "src": "11099:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1753, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1737, + "src": "11157:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_e24628a0114f1b1eca1d45f0798a3051de9b226fbeb75086a6ca0746c4a11eaa", + "typeString": "literal_string \"metaUpdateFulfillment\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1743, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "10753:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10753:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10753:411:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1742, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "10743:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10743:422:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10724:441:4" + }, + { + "assignments": [ + 1758 + ], + "declarations": [ + { + "constant": false, + "id": 1758, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 1795, + "src": "11172:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1757, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11172:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1763, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1760, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1741, + "src": "11199:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1761, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1726, + "src": "11209:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1759, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "11189:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11189:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11172:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1765, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1758, + "src": "11284:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1767, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11302:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1766, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11294:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11294:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "11284:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1764, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "11276:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11276:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1771, + "nodeType": "ExpressionStatement", + "src": "11276:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1773, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1737, + "src": "11320:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1774, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "11330:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1776, + "indexExpression": { + "argumentTypes": null, + "id": 1775, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1758, + "src": "11342:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11330:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11320:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1772, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "11312:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11312:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1779, + "nodeType": "ExpressionStatement", + "src": "11312:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "11411:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1780, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "11411:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1782, + "indexExpression": { + "argumentTypes": null, + "id": 1781, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1758, + "src": "11423:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11411:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1784, + "nodeType": "ExpressionStatement", + "src": "11411:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1788, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1758, + "src": "11476:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1789, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1728, + "src": "11484:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1790, + "name": "_fulfillmentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1730, + "src": "11495:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1791, + "name": "_fulfillers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1733, + "src": "11511:11:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1792, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1735, + "src": "11524:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 1785, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "11441:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "updateFulfillment", + "nodeType": "MemberAccess", + "referencedDeclaration": 3592, + "src": "11441:34:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,address payable[] memory,string memory) external" + } + }, + "id": 1793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11441:89:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1794, + "nodeType": "ExpressionStatement", + "src": "11441:89:4" + } + ] + }, + "documentation": null, + "id": 1796, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaUpdateFulfillment", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1738, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1726, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 1796, + "src": "10537:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1725, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "10537:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1728, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 1796, + "src": "10567:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1727, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10567:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1730, + "name": "_fulfillmentId", + "nodeType": "VariableDeclaration", + "scope": 1796, + "src": "10588:19:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1729, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10588:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1733, + "name": "_fulfillers", + "nodeType": "VariableDeclaration", + "scope": 1796, + "src": "10614:37:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 1731, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10614:15:4", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1732, + "length": null, + "nodeType": "ArrayTypeName", + "src": "10614:17:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1735, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 1796, + "src": "10658:19:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1734, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "10658:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1737, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 1796, + "src": "10684:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1736, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10684:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10530:169:4" + }, + "returnParameters": { + "id": 1739, + "nodeType": "ParameterList", + "parameters": [], + "src": "10717:0:4" + }, + "scope": 2505, + "src": "10500:1036:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1867, + "nodeType": "Block", + "src": "11746:931:4", + "statements": [ + { + "assignments": [ + 1813 + ], + "declarations": [ + { + "constant": false, + "id": 1813, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 1867, + "src": "11753:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1812, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "11753:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1828, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1818, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "11801:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1817, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11793:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11793:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d65746141636365707446756c66696c6c6d656e74", + "id": 1820, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11859:23:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d1ba16c1b44101c30e47cc84c2585662e68208e4ff0edc1b552b69fbd7a7ce97", + "typeString": "literal_string \"metaAcceptFulfillment\"" + }, + "value": "metaAcceptFulfillment" + }, + { + "argumentTypes": null, + "id": 1821, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1800, + "src": "11935:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1822, + "name": "_fulfillmentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1802, + "src": "11997:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1823, + "name": "_approverId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1804, + "src": "12064:11:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1824, + "name": "_tokenAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1807, + "src": "12128:13:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 1825, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1809, + "src": "12194:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_d1ba16c1b44101c30e47cc84c2585662e68208e4ff0edc1b552b69fbd7a7ce97", + "typeString": "literal_string \"metaAcceptFulfillment\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1815, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "11782:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1816, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11782:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11782:419:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1814, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "11772:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11772:430:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11753:449:4" + }, + { + "assignments": [ + 1830 + ], + "declarations": [ + { + "constant": false, + "id": 1830, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 1867, + "src": "12209:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1829, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12209:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1835, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1832, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1813, + "src": "12236:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1833, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1798, + "src": "12246:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1831, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "12226:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12226:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12209:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1837, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1830, + "src": "12321:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1839, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12339:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1838, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12331:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12331:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "12321:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1836, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "12313:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12313:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1843, + "nodeType": "ExpressionStatement", + "src": "12313:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1845, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1809, + "src": "12357:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1846, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "12367:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1848, + "indexExpression": { + "argumentTypes": null, + "id": 1847, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1830, + "src": "12379:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12367:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12357:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1844, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "12349:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12349:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1851, + "nodeType": "ExpressionStatement", + "src": "12349:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "12448:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1852, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "12448:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1854, + "indexExpression": { + "argumentTypes": null, + "id": 1853, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1830, + "src": "12460:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12448:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1856, + "nodeType": "ExpressionStatement", + "src": "12448:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1860, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1830, + "src": "12513:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1861, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1800, + "src": "12545:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1862, + "name": "_fulfillmentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1802, + "src": "12580:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1863, + "name": "_approverId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1804, + "src": "12620:11:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1864, + "name": "_tokenAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1807, + "src": "12657:13:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 1857, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "12478:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "acceptFulfillment", + "nodeType": "MemberAccess", + "referencedDeclaration": 3688, + "src": "12478:34:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,uint256[] memory) external" + } + }, + "id": 1865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12478:193:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1866, + "nodeType": "ExpressionStatement", + "src": "12478:193:4" + } + ] + }, + "documentation": null, + "id": 1868, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaAcceptFulfillment", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1810, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1798, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 1868, + "src": "11579:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1797, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11579:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1800, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 1868, + "src": "11609:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1799, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11609:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1802, + "name": "_fulfillmentId", + "nodeType": "VariableDeclaration", + "scope": 1868, + "src": "11630:19:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1801, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11630:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1804, + "name": "_approverId", + "nodeType": "VariableDeclaration", + "scope": 1868, + "src": "11656:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1803, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11656:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1807, + "name": "_tokenAmounts", + "nodeType": "VariableDeclaration", + "scope": 1868, + "src": "11679:27:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1805, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11679:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1806, + "length": null, + "nodeType": "ArrayTypeName", + "src": "11679:6:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1809, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 1868, + "src": "11713:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1808, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11713:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11572:156:4" + }, + "returnParameters": { + "id": 1811, + "nodeType": "ParameterList", + "parameters": [], + "src": "11746:0:4" + }, + "scope": 2505, + "src": "11542:1135:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1944, + "nodeType": "Block", + "src": "12929:1007:4", + "statements": [ + { + "assignments": [ + 1888 + ], + "declarations": [ + { + "constant": false, + "id": 1888, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 1944, + "src": "12936:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1887, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12936:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1904, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1893, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "12984:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12976:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12976:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d65746146756c66696c6c416e64416363657074", + "id": 1895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13042:22:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_db72f4dcd4409d42468853b76fdc90367666ba6a49ba29d06ffa869878d8b2ff", + "typeString": "literal_string \"metaFulfillAndAccept\"" + }, + "value": "metaFulfillAndAccept" + }, + { + "argumentTypes": null, + "id": 1896, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1872, + "src": "13117:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1897, + "name": "_fulfillers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "13179:11:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1898, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1877, + "src": "13243:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1899, + "name": "_approverId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1879, + "src": "13301:11:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1900, + "name": "_tokenAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1882, + "src": "13365:13:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 1901, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1884, + "src": "13431:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_db72f4dcd4409d42468853b76fdc90367666ba6a49ba29d06ffa869878d8b2ff", + "typeString": "literal_string \"metaFulfillAndAccept\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1890, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "12965:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1891, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12965:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12965:473:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1889, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "12955:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12955:484:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12936:503:4" + }, + { + "assignments": [ + 1906 + ], + "declarations": [ + { + "constant": false, + "id": 1906, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 1944, + "src": "13446:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1905, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13446:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1911, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1908, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1888, + "src": "13473:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1909, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1870, + "src": "13483:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1907, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "13463:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13463:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13446:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1913, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1906, + "src": "13558:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1915, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13576:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13568:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1916, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13568:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13558:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1912, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "13550:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13550:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1919, + "nodeType": "ExpressionStatement", + "src": "13550:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1921, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1884, + "src": "13594:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1922, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "13604:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1924, + "indexExpression": { + "argumentTypes": null, + "id": 1923, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1906, + "src": "13616:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13604:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13594:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1920, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "13586:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13586:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1927, + "nodeType": "ExpressionStatement", + "src": "13586:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "13685:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1928, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "13685:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1930, + "indexExpression": { + "argumentTypes": null, + "id": 1929, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1906, + "src": "13697:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13685:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1932, + "nodeType": "ExpressionStatement", + "src": "13685:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1936, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1906, + "src": "13749:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1937, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1872, + "src": "13780:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1938, + "name": "_fulfillers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "13814:11:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1939, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1877, + "src": "13850:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1940, + "name": "_approverId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1879, + "src": "13880:11:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1941, + "name": "_tokenAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1882, + "src": "13916:13:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 1933, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "13715:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "fulfillAndAccept", + "nodeType": "MemberAccess", + "referencedDeclaration": 3730, + "src": "13715:33:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,address payable[] memory,string memory,uint256,uint256[] memory) external" + } + }, + "id": 1942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13715:215:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1943, + "nodeType": "ExpressionStatement", + "src": "13715:215:4" + } + ] + }, + "documentation": null, + "id": 1945, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaFulfillAndAccept", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1885, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1870, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 1945, + "src": "12719:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1869, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12719:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1872, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 1945, + "src": "12749:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1871, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12749:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1875, + "name": "_fulfillers", + "nodeType": "VariableDeclaration", + "scope": 1945, + "src": "12770:36:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 1873, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12770:15:4", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1874, + "length": null, + "nodeType": "ArrayTypeName", + "src": "12770:17:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1877, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 1945, + "src": "12813:19:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1876, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "12813:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1879, + "name": "_approverId", + "nodeType": "VariableDeclaration", + "scope": 1945, + "src": "12839:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1878, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12839:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1882, + "name": "_tokenAmounts", + "nodeType": "VariableDeclaration", + "scope": 1945, + "src": "12862:27:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1880, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12862:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1881, + "length": null, + "nodeType": "ArrayTypeName", + "src": "12862:6:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1884, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 1945, + "src": "12896:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1883, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12896:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12712:199:4" + }, + "returnParameters": { + "id": 1886, + "nodeType": "ParameterList", + "parameters": [], + "src": "12929:0:4" + }, + "scope": 2505, + "src": "12683:1253:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2025, + "nodeType": "Block", + "src": "14208:1055:4", + "statements": [ + { + "assignments": [ + 1967 + ], + "declarations": [ + { + "constant": false, + "id": 1967, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 2025, + "src": "14215:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1966, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "14215:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1984, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1972, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "14263:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1971, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14255:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14255:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d6574614368616e6765426f756e7479", + "id": 1974, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14321:18:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24aac19b9cf3bf43d15f431164280285fcec8fd7e4162f5257dc77096a92ad13", + "typeString": "literal_string \"metaChangeBounty\"" + }, + "value": "metaChangeBounty" + }, + { + "argumentTypes": null, + "id": 1975, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "14392:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1976, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1951, + "src": "14454:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1977, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1954, + "src": "14516:8:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1978, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1957, + "src": "14577:10:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1979, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1959, + "src": "14640:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1980, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1961, + "src": "14698:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1981, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1963, + "src": "14760:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_24aac19b9cf3bf43d15f431164280285fcec8fd7e4162f5257dc77096a92ad13", + "typeString": "literal_string \"metaChangeBounty\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1969, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "14244:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14244:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14244:523:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1968, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "14234:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14234:534:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14215:553:4" + }, + { + "assignments": [ + 1986 + ], + "declarations": [ + { + "constant": false, + "id": 1986, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 2025, + "src": "14775:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1985, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14775:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1991, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1988, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1967, + "src": "14802:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1989, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1947, + "src": "14812:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1987, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "14792:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14792:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14775:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1993, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1986, + "src": "14887:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14905:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1994, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14897:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14897:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "14887:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1992, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "14879:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14879:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1999, + "nodeType": "ExpressionStatement", + "src": "14879:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2001, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1963, + "src": "14923:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2002, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "14933:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2004, + "indexExpression": { + "argumentTypes": null, + "id": 2003, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1986, + "src": "14945:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14933:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14923:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2000, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "14915:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14915:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2007, + "nodeType": "ExpressionStatement", + "src": "14915:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 2011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "15014:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2008, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "15014:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2010, + "indexExpression": { + "argumentTypes": null, + "id": 2009, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1986, + "src": "15026:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15014:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2012, + "nodeType": "ExpressionStatement", + "src": "15014:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2016, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1986, + "src": "15074:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2017, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "15101:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2018, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1951, + "src": "15131:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2019, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1954, + "src": "15161:8:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 2020, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1957, + "src": "15190:10:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 2021, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1959, + "src": "15221:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 2022, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1961, + "src": "15247:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2013, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "15044:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 2015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "changeBounty", + "nodeType": "MemberAccess", + "referencedDeclaration": 3822, + "src": "15044:29:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256,address payable[] memory,address payable[] memory,string memory,uint256) external" + } + }, + "id": 2023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15044:213:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2024, + "nodeType": "ExpressionStatement", + "src": "15044:213:4" + } + ] + }, + "documentation": null, + "id": 2026, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaChangeBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1964, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1947, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 2026, + "src": "13974:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1946, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "13974:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1949, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2026, + "src": "14004:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1948, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14004:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1951, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 2026, + "src": "14025:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1950, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14025:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1954, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 2026, + "src": "14046:33:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 1952, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14046:15:4", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1953, + "length": null, + "nodeType": "ArrayTypeName", + "src": "14046:17:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1957, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 2026, + "src": "14086:35:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 1955, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14086:15:4", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1956, + "length": null, + "nodeType": "ArrayTypeName", + "src": "14086:17:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1959, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 2026, + "src": "14128:19:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1958, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "14128:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1961, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 2026, + "src": "14154:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1960, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14154:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1963, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 2026, + "src": "14175:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1962, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14175:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13967:223:4" + }, + "returnParameters": { + "id": 1965, + "nodeType": "ParameterList", + "parameters": [], + "src": "14208:0:4" + }, + "scope": 2505, + "src": "13942:1321:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2096, + "nodeType": "Block", + "src": "15468:897:4", + "statements": [ + { + "assignments": [ + 2042 + ], + "declarations": [ + { + "constant": false, + "id": 2042, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 2096, + "src": "15475:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2041, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "15475:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2057, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2047, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "15523:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 2046, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15515:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15515:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d6574614368616e6765497373756572", + "id": 2049, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15581:18:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8d269e2c77a9b37189b50de51e931f880e2cc9f26874ecdc24a474461a07ab08", + "typeString": "literal_string \"metaChangeIssuer\"" + }, + "value": "metaChangeIssuer" + }, + { + "argumentTypes": null, + "id": 2050, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2030, + "src": "15652:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2051, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2032, + "src": "15714:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2052, + "name": "_issuerIdToChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2034, + "src": "15776:17:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2053, + "name": "_newIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2036, + "src": "15846:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 2054, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2038, + "src": "15909:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_8d269e2c77a9b37189b50de51e931f880e2cc9f26874ecdc24a474461a07ab08", + "typeString": "literal_string \"metaChangeIssuer\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2044, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "15504:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15504:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15504:412:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2043, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "15494:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15494:423:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15475:442:4" + }, + { + "assignments": [ + 2059 + ], + "declarations": [ + { + "constant": false, + "id": 2059, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 2096, + "src": "15924:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2058, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15924:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2064, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2061, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2042, + "src": "15951:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2062, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2028, + "src": "15961:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2060, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "15941:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 2063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15941:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15924:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2066, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2059, + "src": "16036:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16054:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16046:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2069, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16046:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "16036:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2065, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "16028:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16028:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2072, + "nodeType": "ExpressionStatement", + "src": "16028:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2074, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2038, + "src": "16072:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2075, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "16082:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2077, + "indexExpression": { + "argumentTypes": null, + "id": 2076, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2059, + "src": "16094:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16082:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16072:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2073, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "16064:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16064:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2080, + "nodeType": "ExpressionStatement", + "src": "16064:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 2084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "16163:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2081, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "16163:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2083, + "indexExpression": { + "argumentTypes": null, + "id": 2082, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2059, + "src": "16175:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16163:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2085, + "nodeType": "ExpressionStatement", + "src": "16163:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2089, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2059, + "src": "16223:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2090, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2030, + "src": "16250:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2091, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2032, + "src": "16280:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2092, + "name": "_issuerIdToChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2034, + "src": "16310:17:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2093, + "name": "_newIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2036, + "src": "16348:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "id": 2086, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "16193:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 2088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "changeIssuer", + "nodeType": "MemberAccess", + "referencedDeclaration": 3883, + "src": "16193:29:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_payable_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,address payable) external" + } + }, + "id": 2094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16193:166:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2095, + "nodeType": "ExpressionStatement", + "src": "16193:166:4" + } + ] + }, + "documentation": null, + "id": 2097, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaChangeIssuer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2039, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2028, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "15301:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2027, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "15301:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2030, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "15331:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2029, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15331:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2032, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "15352:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2031, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15352:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2034, + "name": "_issuerIdToChange", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "15373:22:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2033, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15373:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2036, + "name": "_newIssuer", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "15402:26:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 2035, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15402:15:4", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2038, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "15435:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2037, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15435:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15294:156:4" + }, + "returnParameters": { + "id": 2040, + "nodeType": "ParameterList", + "parameters": [], + "src": "15468:0:4" + }, + "scope": 2505, + "src": "15269:1096:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2167, + "nodeType": "Block", + "src": "16565:887:4", + "statements": [ + { + "assignments": [ + 2113 + ], + "declarations": [ + { + "constant": false, + "id": 2113, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 2167, + "src": "16572:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2112, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "16572:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2128, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2118, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "16620:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 2117, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16612:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16612:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d6574614368616e6765417070726f766572", + "id": 2120, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16678:20:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bd48a1a42af7ff3da4fad85a4891b6333c7a585b9c13c519e9fd54a5d4c7a5f6", + "typeString": "literal_string \"metaChangeApprover\"" + }, + "value": "metaChangeApprover" + }, + { + "argumentTypes": null, + "id": 2121, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2101, + "src": "16751:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2122, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2103, + "src": "16813:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2123, + "name": "_approverId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2105, + "src": "16875:11:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2124, + "name": "_approver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2107, + "src": "16939:9:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 2125, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2109, + "src": "17001:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_bd48a1a42af7ff3da4fad85a4891b6333c7a585b9c13c519e9fd54a5d4c7a5f6", + "typeString": "literal_string \"metaChangeApprover\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2115, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "16601:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16601:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16601:407:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2114, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "16591:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16591:418:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16572:437:4" + }, + { + "assignments": [ + 2130 + ], + "declarations": [ + { + "constant": false, + "id": 2130, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 2167, + "src": "17016:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17016:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2135, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2132, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "17043:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2133, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2099, + "src": "17053:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2131, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "17033:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 2134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17033:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17016:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2137, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2130, + "src": "17128:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2139, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17146:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17138:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17138:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17128:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2136, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17120:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17120:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2143, + "nodeType": "ExpressionStatement", + "src": "17120:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2145, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2109, + "src": "17164:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2146, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "17174:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2148, + "indexExpression": { + "argumentTypes": null, + "id": 2147, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2130, + "src": "17186:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17174:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17164:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2144, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17156:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17156:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2151, + "nodeType": "ExpressionStatement", + "src": "17156:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 2155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "17255:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2152, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "17255:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2154, + "indexExpression": { + "argumentTypes": null, + "id": 2153, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2130, + "src": "17267:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17255:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2156, + "nodeType": "ExpressionStatement", + "src": "17255:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2160, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2130, + "src": "17317:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2161, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2101, + "src": "17344:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2162, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2103, + "src": "17374:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2163, + "name": "_approverId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2105, + "src": "17404:11:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2164, + "name": "_approver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2107, + "src": "17436:9:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "id": 2157, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "17285:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 2159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "changeApprover", + "nodeType": "MemberAccess", + "referencedDeclaration": 3930, + "src": "17285:31:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_payable_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,address payable) external" + } + }, + "id": 2165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17285:161:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2166, + "nodeType": "ExpressionStatement", + "src": "17285:161:4" + } + ] + }, + "documentation": null, + "id": 2168, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaChangeApprover", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2099, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 2168, + "src": "16405:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2098, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "16405:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2101, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2168, + "src": "16435:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2100, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "16435:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2103, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 2168, + "src": "16456:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2102, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "16456:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2105, + "name": "_approverId", + "nodeType": "VariableDeclaration", + "scope": 2168, + "src": "16477:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2104, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "16477:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2107, + "name": "_approver", + "nodeType": "VariableDeclaration", + "scope": 2168, + "src": "16500:25:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 2106, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16500:15:4", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2109, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 2168, + "src": "16532:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2108, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16532:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16398:149:4" + }, + "returnParameters": { + "id": 2111, + "nodeType": "ParameterList", + "parameters": [], + "src": "16565:0:4" + }, + "scope": 2505, + "src": "16371:1081:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2234, + "nodeType": "Block", + "src": "17619:769:4", + "statements": [ + { + "assignments": [ + 2182 + ], + "declarations": [ + { + "constant": false, + "id": 2182, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 2234, + "src": "17626:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2181, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "17626:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2196, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2187, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "17674:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 2186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17666:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17666:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d6574614368616e676544617461", + "id": 2189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17732:16:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a136a7e99fd205d0dcb4550621ef5b54e3c98302578208b3f3175b4335c2c913", + "typeString": "literal_string \"metaChangeData\"" + }, + "value": "metaChangeData" + }, + { + "argumentTypes": null, + "id": 2190, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2172, + "src": "17801:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2191, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2174, + "src": "17863:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2192, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2176, + "src": "17925:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 2193, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2178, + "src": "17983:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_a136a7e99fd205d0dcb4550621ef5b54e3c98302578208b3f3175b4335c2c913", + "typeString": "literal_string \"metaChangeData\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2184, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "17655:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "17655:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17655:335:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2183, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "17645:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17645:346:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17626:365:4" + }, + { + "assignments": [ + 2198 + ], + "declarations": [ + { + "constant": false, + "id": 2198, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 2234, + "src": "17998:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2197, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17998:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2203, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2200, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2182, + "src": "18025:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2201, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2170, + "src": "18035:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2199, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "18015:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 2202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18015:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17998:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2205, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2198, + "src": "18110:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18128:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18120:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18120:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "18110:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2204, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "18102:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18102:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2211, + "nodeType": "ExpressionStatement", + "src": "18102:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2213, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2178, + "src": "18146:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2214, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "18156:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2216, + "indexExpression": { + "argumentTypes": null, + "id": 2215, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2198, + "src": "18168:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18156:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18146:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2212, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "18138:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18138:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2219, + "nodeType": "ExpressionStatement", + "src": "18138:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 2223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "18237:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2220, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "18237:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2222, + "indexExpression": { + "argumentTypes": null, + "id": 2221, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2198, + "src": "18249:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18237:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2224, + "nodeType": "ExpressionStatement", + "src": "18237:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2228, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2198, + "src": "18295:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2229, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2172, + "src": "18320:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2230, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2174, + "src": "18348:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2231, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2176, + "src": "18376:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 2225, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "18267:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 2227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "changeData", + "nodeType": "MemberAccess", + "referencedDeclaration": 4049, + "src": "18267:27:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,string memory) external" + } + }, + "id": 2232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18267:115:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2233, + "nodeType": "ExpressionStatement", + "src": "18267:115:4" + } + ] + }, + "documentation": null, + "id": 2235, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaChangeData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2179, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2170, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 2235, + "src": "17488:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2169, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "17488:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2172, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2235, + "src": "17518:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2171, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17518:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2174, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 2235, + "src": "17539:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2173, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17539:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2176, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 2235, + "src": "17560:19:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2175, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17560:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2178, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 2235, + "src": "17586:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2177, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17586:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17481:120:4" + }, + "returnParameters": { + "id": 2180, + "nodeType": "ParameterList", + "parameters": [], + "src": "17619:0:4" + }, + "scope": 2505, + "src": "17458:930:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2301, + "nodeType": "Block", + "src": "18555:797:4", + "statements": [ + { + "assignments": [ + 2249 + ], + "declarations": [ + { + "constant": false, + "id": 2249, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 2301, + "src": "18562:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2248, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "18562:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2263, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2254, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "18610:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 2253, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18602:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18602:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d6574614368616e6765446561646c696e65", + "id": 2256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18668:20:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b419befe26b3c7190750e9f6987242e374c4ca6b6a5aeede9805c14cb6cb7228", + "typeString": "literal_string \"metaChangeDeadline\"" + }, + "value": "metaChangeDeadline" + }, + { + "argumentTypes": null, + "id": 2257, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2239, + "src": "18741:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2258, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2241, + "src": "18803:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2259, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2243, + "src": "18865:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2260, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "18927:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_b419befe26b3c7190750e9f6987242e374c4ca6b6a5aeede9805c14cb6cb7228", + "typeString": "literal_string \"metaChangeDeadline\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2251, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "18591:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18591:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18591:343:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2250, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "18581:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2262, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18581:354:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18562:373:4" + }, + { + "assignments": [ + 2265 + ], + "declarations": [ + { + "constant": false, + "id": 2265, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 2301, + "src": "18942:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2264, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18942:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2270, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2267, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2249, + "src": "18969:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2268, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2237, + "src": "18979:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2266, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "18959:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 2269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18959:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18942:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2272, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2265, + "src": "19054:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19072:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2273, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19064:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2275, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19064:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "19054:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2271, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "19046:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19046:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2278, + "nodeType": "ExpressionStatement", + "src": "19046:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2280, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "19090:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2281, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "19100:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2283, + "indexExpression": { + "argumentTypes": null, + "id": 2282, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2265, + "src": "19112:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19100:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19090:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "19082:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19082:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2286, + "nodeType": "ExpressionStatement", + "src": "19082:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 2290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "19181:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2287, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "19181:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2289, + "indexExpression": { + "argumentTypes": null, + "id": 2288, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2265, + "src": "19193:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "19181:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2291, + "nodeType": "ExpressionStatement", + "src": "19181:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2295, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2265, + "src": "19243:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2296, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2239, + "src": "19272:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2297, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2241, + "src": "19304:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2298, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2243, + "src": "19336:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2292, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "19211:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 2294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "changeDeadline", + "nodeType": "MemberAccess", + "referencedDeclaration": 4089, + "src": "19211:31:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256) external" + } + }, + "id": 2299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19211:135:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2300, + "nodeType": "ExpressionStatement", + "src": "19211:135:4" + } + ] + }, + "documentation": null, + "id": 2302, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaChangeDeadline", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2237, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 2302, + "src": "18428:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2236, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18428:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2239, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2302, + "src": "18458:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2238, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18458:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2241, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 2302, + "src": "18479:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2240, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18479:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2243, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 2302, + "src": "18500:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2242, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18500:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2245, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 2302, + "src": "18522:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2244, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18522:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18421:116:4" + }, + "returnParameters": { + "id": 2247, + "nodeType": "ParameterList", + "parameters": [], + "src": "18555:0:4" + }, + "scope": 2505, + "src": "18394:958:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2369, + "nodeType": "Block", + "src": "19533:775:4", + "statements": [ + { + "assignments": [ + 2317 + ], + "declarations": [ + { + "constant": false, + "id": 2317, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 2369, + "src": "19540:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2316, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "19540:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2331, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2322, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "19588:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 2321, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19580:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19580:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d65746141646449737375657273", + "id": 2324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19646:16:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e5c366eaaa397c768341eb557a97468d5e3264c4ebefb507fce9144dd234a80a", + "typeString": "literal_string \"metaAddIssuers\"" + }, + "value": "metaAddIssuers" + }, + { + "argumentTypes": null, + "id": 2325, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2306, + "src": "19715:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2326, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2308, + "src": "19777:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2327, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2311, + "src": "19839:8:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 2328, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2313, + "src": "19900:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_e5c366eaaa397c768341eb557a97468d5e3264c4ebefb507fce9144dd234a80a", + "typeString": "literal_string \"metaAddIssuers\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2319, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "19569:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19569:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19569:338:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2318, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "19559:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19559:349:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19540:368:4" + }, + { + "assignments": [ + 2333 + ], + "declarations": [ + { + "constant": false, + "id": 2333, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 2369, + "src": "19915:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19915:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2338, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2335, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2317, + "src": "19942:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2336, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2304, + "src": "19952:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2334, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "19932:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 2337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19932:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19915:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2340, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2333, + "src": "20027:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2342, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20045:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2341, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20037:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2343, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20037:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "20027:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2339, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "20019:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20019:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2346, + "nodeType": "ExpressionStatement", + "src": "20019:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2348, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2313, + "src": "20063:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2349, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "20073:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2351, + "indexExpression": { + "argumentTypes": null, + "id": 2350, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2333, + "src": "20085:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20073:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20063:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2347, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "20055:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20055:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2354, + "nodeType": "ExpressionStatement", + "src": "20055:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 2358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "20154:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2355, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "20154:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2357, + "indexExpression": { + "argumentTypes": null, + "id": 2356, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2333, + "src": "20166:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "20154:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2359, + "nodeType": "ExpressionStatement", + "src": "20154:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2363, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2333, + "src": "20212:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2364, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2306, + "src": "20237:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2365, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2308, + "src": "20265:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2366, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2311, + "src": "20293:8:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 2360, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "20184:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 2362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addIssuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 4149, + "src": "20184:27:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,address payable[] memory) external" + } + }, + "id": 2367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20184:118:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2368, + "nodeType": "ExpressionStatement", + "src": "20184:118:4" + } + ] + }, + "documentation": null, + "id": 2370, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaAddIssuers", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2304, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 2370, + "src": "19388:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2303, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "19388:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2306, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2370, + "src": "19418:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2305, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "19418:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2308, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 2370, + "src": "19439:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2307, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "19439:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2311, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 2370, + "src": "19460:33:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 2309, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19460:15:4", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 2310, + "length": null, + "nodeType": "ArrayTypeName", + "src": "19460:17:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2313, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 2370, + "src": "19500:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19500:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19381:134:4" + }, + "returnParameters": { + "id": 2315, + "nodeType": "ParameterList", + "parameters": [], + "src": "19533:0:4" + }, + "scope": 2505, + "src": "19358:950:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2437, + "nodeType": "Block", + "src": "20485:783:4", + "statements": [ + { + "assignments": [ + 2385 + ], + "declarations": [ + { + "constant": false, + "id": 2385, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 2437, + "src": "20492:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2384, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "20492:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2399, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2390, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "20540:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 2389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20532:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20532:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d657461416464417070726f76657273", + "id": 2392, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20598:18:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3dd98bd79db118185d095fd282d4e4d83c44be55d5f5c1409639178e159df2f4", + "typeString": "literal_string \"metaAddApprovers\"" + }, + "value": "metaAddApprovers" + }, + { + "argumentTypes": null, + "id": 2393, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2374, + "src": "20669:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2394, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2376, + "src": "20731:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2395, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2379, + "src": "20793:10:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 2396, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2381, + "src": "20856:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_3dd98bd79db118185d095fd282d4e4d83c44be55d5f5c1409639178e159df2f4", + "typeString": "literal_string \"metaAddApprovers\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2387, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "20521:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2388, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "20521:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20521:342:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2386, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "20511:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20511:353:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20492:372:4" + }, + { + "assignments": [ + 2401 + ], + "declarations": [ + { + "constant": false, + "id": 2401, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 2437, + "src": "20871:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2400, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20871:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2406, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2403, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2385, + "src": "20898:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2404, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2372, + "src": "20908:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2402, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "20888:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 2405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20888:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20871:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2408, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2401, + "src": "20983:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21001:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20993:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2411, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20993:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "20983:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2407, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "20975:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20975:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2414, + "nodeType": "ExpressionStatement", + "src": "20975:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2416, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2381, + "src": "21019:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2417, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "21029:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2419, + "indexExpression": { + "argumentTypes": null, + "id": 2418, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2401, + "src": "21041:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21029:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "21019:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2415, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "21011:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21011:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2422, + "nodeType": "ExpressionStatement", + "src": "21011:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 2426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "21110:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2423, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "21110:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2425, + "indexExpression": { + "argumentTypes": null, + "id": 2424, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2401, + "src": "21122:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "21110:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2427, + "nodeType": "ExpressionStatement", + "src": "21110:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2431, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2401, + "src": "21170:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2432, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2374, + "src": "21195:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2433, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2376, + "src": "21223:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2434, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2379, + "src": "21251:10:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 2428, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "21140:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 2430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addApprovers", + "nodeType": "MemberAccess", + "referencedDeclaration": 4209, + "src": "21140:29:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,address[] memory) external" + } + }, + "id": 2435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21140:122:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2436, + "nodeType": "ExpressionStatement", + "src": "21140:122:4" + } + ] + }, + "documentation": null, + "id": 2438, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaAddApprovers", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2372, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 2438, + "src": "20346:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2371, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "20346:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2374, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2438, + "src": "20376:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2373, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "20376:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2376, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 2438, + "src": "20397:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2375, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "20397:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2379, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 2438, + "src": "20418:27:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2377, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20418:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2378, + "length": null, + "nodeType": "ArrayTypeName", + "src": "20418:9:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2381, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 2438, + "src": "20452:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2380, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20452:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20339:128:4" + }, + "returnParameters": { + "id": 2383, + "nodeType": "ParameterList", + "parameters": [], + "src": "20485:0:4" + }, + "scope": 2505, + "src": "20314:954:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2503, + "nodeType": "Block", + "src": "21394:496:4", + "statements": [ + { + "assignments": [ + 2448 + ], + "declarations": [ + { + "constant": false, + "id": 2448, + "name": "r", + "nodeType": "VariableDeclaration", + "scope": 2503, + "src": "21401:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2447, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "21401:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2449, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "21401:9:4" + }, + { + "assignments": [ + 2451 + ], + "declarations": [ + { + "constant": false, + "id": 2451, + "name": "s", + "nodeType": "VariableDeclaration", + "scope": 2503, + "src": "21417:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2450, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "21417:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2452, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "21417:9:4" + }, + { + "assignments": [ + 2454 + ], + "declarations": [ + { + "constant": false, + "id": 2454, + "name": "v", + "nodeType": "VariableDeclaration", + "scope": 2503, + "src": "21433:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2453, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "21433:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2455, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "21433:7:4" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2456, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2442, + "src": "21451:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "21451:17:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3635", + "id": 2458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21472:2:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_65_by_1", + "typeString": "int_const 65" + }, + "value": "65" + }, + "src": "21451:23:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2465, + "nodeType": "IfStatement", + "src": "21447:62:4", + "trueBody": { + "id": 2464, + "nodeType": "Block", + "src": "21475:34:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2461, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21499:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2460, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21491:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2462, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21491:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2446, + "id": 2463, + "nodeType": "Return", + "src": "21484:17:4" + } + ] + } + }, + { + "externalReferences": [ + { + "r": { + "declaration": 2448, + "isOffset": false, + "isSlot": false, + "src": "21533:1:4", + "valueSize": 1 + } + }, + { + "_signature": { + "declaration": 2442, + "isOffset": false, + "isSlot": false, + "src": "21548:10:4", + "valueSize": 1 + } + }, + { + "v": { + "declaration": 2454, + "isOffset": false, + "isSlot": false, + "src": "21611:1:4", + "valueSize": 1 + } + }, + { + "s": { + "declaration": 2451, + "isOffset": false, + "isSlot": false, + "src": "21572:1:4", + "valueSize": 1 + } + }, + { + "_signature": { + "declaration": 2442, + "isOffset": false, + "isSlot": false, + "src": "21587:10:4", + "valueSize": 1 + } + }, + { + "_signature": { + "declaration": 2442, + "isOffset": false, + "isSlot": false, + "src": "21634:10:4", + "valueSize": 1 + } + } + ], + "id": 2466, + "nodeType": "InlineAssembly", + "operations": "{\n r := mload(add(_signature, 32))\n s := mload(add(_signature, 64))\n v := byte(0, mload(add(_signature, 96)))\n}", + "src": "21515:143:4" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2467, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2454, + "src": "21668:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3237", + "id": 2468, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21672:2:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_27_by_1", + "typeString": "int_const 27" + }, + "value": "27" + }, + "src": "21668:6:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2475, + "nodeType": "IfStatement", + "src": "21664:35:4", + "trueBody": { + "id": 2474, + "nodeType": "Block", + "src": "21675:24:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2470, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2454, + "src": "21684:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "3237", + "id": 2471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21689:2:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_27_by_1", + "typeString": "int_const 27" + }, + "value": "27" + }, + "src": "21684:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 2473, + "nodeType": "ExpressionStatement", + "src": "21684:7:4" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2476, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2454, + "src": "21709:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3237", + "id": 2477, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21714:2:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_27_by_1", + "typeString": "int_const 27" + }, + "value": "27" + }, + "src": "21709:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2479, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2454, + "src": "21720:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3238", + "id": 2480, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21725:2:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_28_by_1", + "typeString": "int_const 28" + }, + "value": "28" + }, + "src": "21720:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "21709:18:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2501, + "nodeType": "Block", + "src": "21768:117:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "19457468657265756d205369676e6564204d6573736167653a0a3332", + "id": 2492, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21823:34:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73", + "typeString": "literal_string \"\u0019Ethereum Signed Message:\n32\"" + }, + "value": "\u0019Ethereum Signed Message:\n32" + }, + { + "argumentTypes": null, + "id": 2493, + "name": "_hash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2440, + "src": "21859:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73", + "typeString": "literal_string \"\u0019Ethereum Signed Message:\n32\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2490, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "21806:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "21806:16:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21806:59:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2489, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "21796:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21796:70:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2496, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2454, + "src": "21868:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 2497, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2448, + "src": "21871:1:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2498, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2451, + "src": "21874:1:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2488, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10403, + "src": "21786:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 2499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21786:91:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2446, + "id": 2500, + "nodeType": "Return", + "src": "21779:98:4" + } + ] + }, + "id": 2502, + "nodeType": "IfStatement", + "src": "21705:180:4", + "trueBody": { + "id": 2487, + "nodeType": "Block", + "src": "21728:34:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21752:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21744:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21744:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2446, + "id": 2486, + "nodeType": "Return", + "src": "21737:17:4" + } + ] + } + } + ] + }, + "documentation": null, + "id": 2504, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getSigner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2443, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2440, + "name": "_hash", + "nodeType": "VariableDeclaration", + "scope": 2504, + "src": "21299:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2439, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "21299:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2442, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 2504, + "src": "21319:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2441, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21319:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "21292:51:4" + }, + "returnParameters": { + "id": 2446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2445, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2504, + "src": "21382:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2444, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21382:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "21381:9:4" + }, + "scope": 2505, + "src": "21274:616:4", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 2506, + "src": "109:21784:4" + } + ], + "src": "0:21895:4" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/BountiesMetaTxRelayer.sol", + "exportedSymbols": { + "BountiesMetaTxRelayer": [ + 2505 + ] + }, + "id": 2506, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1012, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:4" + }, + { + "id": 1013, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "34:33:4" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/StandardBounties.sol", + "file": "./StandardBounties.sol", + "id": 1014, + "nodeType": "ImportDirective", + "scope": 2506, + "sourceUnit": 4513, + "src": "71:32:4", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 2505, + "linearizedBaseContracts": [ + 2505 + ], + "name": "BountiesMetaTxRelayer", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 1016, + "name": "bountiesContract", + "nodeType": "VariableDeclaration", + "scope": 2505, + "src": "239:40:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + }, + "typeName": { + "contractScope": null, + "id": 1015, + "name": "StandardBounties", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4512, + "src": "239:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 1020, + "name": "replayNonce", + "nodeType": "VariableDeclaration", + "scope": 2505, + "src": "284:43:4", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 1019, + "keyType": { + "id": 1017, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "292:7:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "284:24:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 1018, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "303:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 1031, + "nodeType": "Block", + "src": "374:59:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 1029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 1025, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "381:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1027, + "name": "_contract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1022, + "src": "417:9:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1026, + "name": "StandardBounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4512, + "src": "400:16:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_StandardBounties_$4512_$", + "typeString": "type(contract StandardBounties)" + } + }, + "id": 1028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "400:27:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "src": "381:46:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1030, + "nodeType": "ExpressionStatement", + "src": "381:46:4" + } + ] + }, + "documentation": null, + "id": 1032, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1023, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1022, + "name": "_contract", + "nodeType": "VariableDeclaration", + "scope": 1032, + "src": "348:17:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1021, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "348:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "347:19:4" + }, + "returnParameters": { + "id": 1024, + "nodeType": "ParameterList", + "parameters": [], + "src": "374:0:4" + }, + "scope": 2505, + "src": "336:97:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1117, + "nodeType": "Block", + "src": "716:1217:4", + "statements": [ + { + "assignments": [ + 1056 + ], + "declarations": [ + { + "constant": false, + "id": 1056, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 1117, + "src": "723:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1055, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "723:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1073, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1061, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "771:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "763:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "763:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d6574614973737565426f756e7479", + "id": 1063, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "829:17:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_aa276ab5ec69bfbc25fe6788e9d93617d817f695e4ebfc350a16976fa2655d35", + "typeString": "literal_string \"metaIssueBounty\"" + }, + "value": "metaIssueBounty" + }, + { + "argumentTypes": null, + "id": 1064, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1037, + "src": "899:8:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1065, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1040, + "src": "960:10:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 1066, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1042, + "src": "1023:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1067, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1044, + "src": "1081:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1068, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1046, + "src": "1143:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1069, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1048, + "src": "1202:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1070, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "1268:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_aa276ab5ec69bfbc25fe6788e9d93617d817f695e4ebfc350a16976fa2655d35", + "typeString": "literal_string \"metaIssueBounty\"" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1058, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "752:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1059, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "752:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "752:523:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1057, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "742:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1072, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "742:534:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "723:553:4" + }, + { + "assignments": [ + 1075 + ], + "declarations": [ + { + "constant": false, + "id": 1075, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 1117, + "src": "1283:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1074, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1283:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1080, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1077, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1056, + "src": "1310:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1078, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1034, + "src": "1320:9:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1076, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "1300:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1300:30:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1283:47:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1082, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1075, + "src": "1396:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1084, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1414:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1406:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1085, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1406:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "1396:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1081, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "1388:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1388:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1088, + "nodeType": "ExpressionStatement", + "src": "1388:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1090, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1050, + "src": "1432:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1091, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "1442:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1093, + "indexExpression": { + "argumentTypes": null, + "id": 1092, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1075, + "src": "1454:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1442:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1432:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1089, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "1424:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1424:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1096, + "nodeType": "ExpressionStatement", + "src": "1424:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1523:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1097, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "1523:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1099, + "indexExpression": { + "argumentTypes": null, + "id": 1098, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1075, + "src": "1535:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1523:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1101, + "nodeType": "ExpressionStatement", + "src": "1523:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1106, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1075, + "src": "1603:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1595:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": "uint160" + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1595:15:4", + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1104, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1587:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1587:24:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1109, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1037, + "src": "1655:8:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1110, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1040, + "src": "1707:10:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 1111, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1042, + "src": "1761:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1112, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1044, + "src": "1810:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1113, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1046, + "src": "1863:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1114, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1048, + "src": "1913:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1102, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "1558:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "issueBounty", + "nodeType": "MemberAccess", + "referencedDeclaration": 2956, + "src": "1558:28:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256) external returns (uint256)" + } + }, + "id": 1115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1558:369:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1054, + "id": 1116, + "nodeType": "Return", + "src": "1551:376:4" + } + ] + }, + "documentation": null, + "id": 1118, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaIssueBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1051, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1034, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 1118, + "src": "470:22:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1033, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "470:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1037, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 1118, + "src": "499:33:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 1035, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "499:15:4", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1036, + "length": null, + "nodeType": "ArrayTypeName", + "src": "499:17:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1040, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 1118, + "src": "539:27:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1038, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "539:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1039, + "length": null, + "nodeType": "ArrayTypeName", + "src": "539:9:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1042, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 1118, + "src": "573:19:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1041, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "573:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1044, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 1118, + "src": "599:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1043, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "599:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1046, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 1118, + "src": "620:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1045, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "620:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1048, + "name": "_tokenVersion", + "nodeType": "VariableDeclaration", + "scope": 1118, + "src": "641:18:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1047, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "641:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1050, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 1118, + "src": "666:11:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1049, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "666:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "463:215:4" + }, + "returnParameters": { + "id": 1054, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1053, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1118, + "src": "705:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1052, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "705:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "704:6:4" + }, + "scope": 2505, + "src": "439:1494:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1234, + "nodeType": "Block", + "src": "2262:1987:4", + "statements": [ + { + "assignments": [ + 1144 + ], + "declarations": [ + { + "constant": false, + "id": 1144, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 1234, + "src": "2269:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1143, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "2269:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1162, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1149, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "2317:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1148, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2309:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2309:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d6574614973737565416e64436f6e74726962757465", + "id": 1151, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2375:24:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d7582cbbdb7194126649dea0d2d2499e8980380297911f39d550880a6674f395", + "typeString": "literal_string \"metaIssueAndContribute\"" + }, + "value": "metaIssueAndContribute" + }, + { + "argumentTypes": null, + "id": 1152, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1123, + "src": "2452:8:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1153, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1126, + "src": "2513:10:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 1154, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1128, + "src": "2576:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1155, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1130, + "src": "2634:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1156, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1132, + "src": "2696:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1157, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1134, + "src": "2755:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1158, + "name": "_depositAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1136, + "src": "2821:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1159, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1138, + "src": "2888:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_d7582cbbdb7194126649dea0d2d2499e8980380297911f39d550880a6674f395", + "typeString": "literal_string \"metaIssueAndContribute\"" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1146, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "2298:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1147, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2298:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2298:597:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1145, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "2288:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2288:608:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2269:627:4" + }, + { + "assignments": [ + 1164 + ], + "declarations": [ + { + "constant": false, + "id": 1164, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 1234, + "src": "2903:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1163, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2903:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1169, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1166, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1144, + "src": "2930:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1167, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1120, + "src": "2940:9:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1165, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "2920:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2920:30:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2903:47:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1171, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1164, + "src": "3016:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1173, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3034:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3026:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3026:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "3016:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1170, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "3008:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3008:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1177, + "nodeType": "ExpressionStatement", + "src": "3008:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1179, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1138, + "src": "3052:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1180, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "3062:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1182, + "indexExpression": { + "argumentTypes": null, + "id": 1181, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1164, + "src": "3074:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3062:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3052:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1178, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "3044:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3044:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1185, + "nodeType": "ExpressionStatement", + "src": "3044:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "3143:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1186, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "3143:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1188, + "indexExpression": { + "argumentTypes": null, + "id": 1187, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1164, + "src": "3155:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3143:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1190, + "nodeType": "ExpressionStatement", + "src": "3143:21:4" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1191, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3177:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3177:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3189:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3177:13:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1232, + "nodeType": "Block", + "src": "3728:514:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1220, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1164, + "src": "3796:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1219, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3788:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": "uint160" + }, + "id": 1221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3788:15:4", + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1218, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3780:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3780:24:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1223, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1123, + "src": "3856:8:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1224, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1126, + "src": "3916:10:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 1225, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1128, + "src": "3978:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1226, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1130, + "src": "4035:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1227, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1132, + "src": "4096:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1228, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1134, + "src": "4154:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1229, + "name": "_depositAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1136, + "src": "4219:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1216, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "3744:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "issueAndContribute", + "nodeType": "MemberAccess", + "referencedDeclaration": 3001, + "src": "3744:35:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256) payable external returns (uint256)" + } + }, + "id": 1230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3744:490:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1142, + "id": 1231, + "nodeType": "Return", + "src": "3737:497:4" + } + ] + }, + "id": 1233, + "nodeType": "IfStatement", + "src": "3173:1069:4", + "trueBody": { + "id": 1215, + "nodeType": "Block", + "src": "3191:531:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1203, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1164, + "src": "3276:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3268:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": "uint160" + }, + "id": 1204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3268:15:4", + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3260:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3260:24:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1206, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1123, + "src": "3336:8:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1207, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1126, + "src": "3396:10:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 1208, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1128, + "src": "3458:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1209, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1130, + "src": "3515:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1210, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1132, + "src": "3576:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1211, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1134, + "src": "3634:13:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1212, + "name": "_depositAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1136, + "src": "3699:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1198, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3249:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3249:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1195, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "3207:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "issueAndContribute", + "nodeType": "MemberAccess", + "referencedDeclaration": 3001, + "src": "3207:35:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256) payable external returns (uint256)" + } + }, + "id": 1197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3207:41:4", + "typeDescriptions": { + "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$value_$", + "typeString": "function (uint256) returns (function (address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256) payable external returns (uint256))" + } + }, + "id": 1200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3207:52:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$value", + "typeString": "function (address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256) payable external returns (uint256)" + } + }, + "id": 1213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3207:507:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1142, + "id": 1214, + "nodeType": "Return", + "src": "3200:514:4" + } + ] + } + } + ] + }, + "documentation": null, + "id": 1235, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaIssueAndContribute", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1139, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1120, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 1235, + "src": "1977:22:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1119, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1977:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1123, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 1235, + "src": "2006:33:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 1121, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2006:15:4", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1122, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2006:17:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1126, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 1235, + "src": "2046:27:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 1124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2046:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1125, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2046:9:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1128, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 1235, + "src": "2080:19:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1127, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2080:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1130, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 1235, + "src": "2106:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1129, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2106:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1132, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 1235, + "src": "2127:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1131, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2127:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1134, + "name": "_tokenVersion", + "nodeType": "VariableDeclaration", + "scope": 1235, + "src": "2148:18:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1133, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2148:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1136, + "name": "_depositAmount", + "nodeType": "VariableDeclaration", + "scope": 1235, + "src": "2173:19:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1135, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2173:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1138, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 1235, + "src": "2199:11:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1137, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2199:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1970:241:4" + }, + "returnParameters": { + "id": 1142, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1141, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1235, + "src": "2251:4:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1140, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2251:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2250:6:4" + }, + "scope": 2505, + "src": "1939:2310:4", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1325, + "nodeType": "Block", + "src": "4398:816:4", + "statements": [ + { + "assignments": [ + 1247 + ], + "declarations": [ + { + "constant": false, + "id": 1247, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 1325, + "src": "4405:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1246, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "4405:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1260, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1252, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "4453:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4445:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4445:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d657461436f6e74726962757465", + "id": 1254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4511:16:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7d76b93a2b426b4994ed488a90b484491fbd027f588de1d7e23a4267d0413fb2", + "typeString": "literal_string \"metaContribute\"" + }, + "value": "metaContribute" + }, + { + "argumentTypes": null, + "id": 1255, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1239, + "src": "4580:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1256, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1241, + "src": "4642:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1257, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1243, + "src": "4702:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_7d76b93a2b426b4994ed488a90b484491fbd027f588de1d7e23a4267d0413fb2", + "typeString": "literal_string \"metaContribute\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1249, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "4434:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4434:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4434:275:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1248, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "4424:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4424:286:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4405:305:4" + }, + { + "assignments": [ + 1262 + ], + "declarations": [ + { + "constant": false, + "id": 1262, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 1325, + "src": "4717:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1261, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4717:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1267, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1264, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1247, + "src": "4744:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1265, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1237, + "src": "4754:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1263, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "4734:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4734:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4717:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1269, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1262, + "src": "4831:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1271, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4849:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4841:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1272, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4841:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "4831:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1268, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4823:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4823:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1275, + "nodeType": "ExpressionStatement", + "src": "4823:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1277, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1243, + "src": "4867:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1278, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "4877:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1280, + "indexExpression": { + "argumentTypes": null, + "id": 1279, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1262, + "src": "4889:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4877:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4867:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1276, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4859:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4859:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1283, + "nodeType": "ExpressionStatement", + "src": "4859:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "4958:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1284, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "4958:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1286, + "indexExpression": { + "argumentTypes": null, + "id": 1285, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1262, + "src": "4970:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4958:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1288, + "nodeType": "ExpressionStatement", + "src": "4958:21:4" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1289, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "4992:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4992:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 1291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5004:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "4992:13:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1323, + "nodeType": "Block", + "src": "5119:90:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1316, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1262, + "src": "5172:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1315, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5164:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": "uint160" + }, + "id": 1317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5164:15:4", + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5156:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5156:24:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1319, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1239, + "src": "5182:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1320, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1241, + "src": "5193:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1311, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "5128:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contribute", + "nodeType": "MemberAccess", + "referencedDeclaration": 3163, + "src": "5128:27:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_address_payable_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address payable,uint256,uint256) payable external" + } + }, + "id": 1321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5128:73:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1322, + "nodeType": "ExpressionStatement", + "src": "5128:73:4" + } + ] + }, + "id": 1324, + "nodeType": "IfStatement", + "src": "4988:221:4", + "trueBody": { + "id": 1310, + "nodeType": "Block", + "src": "5006:107:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1303, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1262, + "src": "5076:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5068:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": "uint160" + }, + "id": 1304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5068:15:4", + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1301, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5060:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5060:24:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1306, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1239, + "src": "5086:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1307, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1241, + "src": "5097:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1298, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "5049:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5049:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 1293, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "5015:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "contribute", + "nodeType": "MemberAccess", + "referencedDeclaration": 3163, + "src": "5015:27:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_address_payable_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address payable,uint256,uint256) payable external" + } + }, + "id": 1297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5015:33:4", + "typeDescriptions": { + "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_address_payable_$_t_uint256_$_t_uint256_$returns$__$value_$", + "typeString": "function (uint256) returns (function (address payable,uint256,uint256) payable external)" + } + }, + "id": 1300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5015:44:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_address_payable_$_t_uint256_$_t_uint256_$returns$__$value", + "typeString": "function (address payable,uint256,uint256) payable external" + } + }, + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5015:90:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1309, + "nodeType": "ExpressionStatement", + "src": "5015:90:4" + } + ] + } + } + ] + }, + "documentation": null, + "id": 1326, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaContribute", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1244, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1237, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 1326, + "src": "4285:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1236, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "4285:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1239, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 1326, + "src": "4315:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1238, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4315:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1241, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 1326, + "src": "4336:12:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1240, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4336:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1243, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 1326, + "src": "4355:11:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1242, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4355:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4278:89:4" + }, + "returnParameters": { + "id": 1245, + "nodeType": "ParameterList", + "parameters": [], + "src": "4398:0:4" + }, + "scope": 2505, + "src": "4255:959:4", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1388, + "nodeType": "Block", + "src": "5368:683:4", + "statements": [ + { + "assignments": [ + 1338 + ], + "declarations": [ + { + "constant": false, + "id": 1338, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 1388, + "src": "5375:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1337, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "5375:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1351, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1343, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "5423:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1342, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5415:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5415:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d657461526566756e64436f6e747269627574696f6e", + "id": 1345, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5481:24:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c2f0a3ca9cbf2bed82817cc9072419ef9150d33bdcc6898ef7adc26aed37120a", + "typeString": "literal_string \"metaRefundContribution\"" + }, + "value": "metaRefundContribution" + }, + { + "argumentTypes": null, + "id": 1346, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1330, + "src": "5558:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1347, + "name": "_contributionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1332, + "src": "5620:15:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1348, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1334, + "src": "5688:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_c2f0a3ca9cbf2bed82817cc9072419ef9150d33bdcc6898ef7adc26aed37120a", + "typeString": "literal_string \"metaRefundContribution\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1340, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "5404:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1341, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5404:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1349, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5404:291:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1339, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "5394:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5394:302:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5375:321:4" + }, + { + "assignments": [ + 1353 + ], + "declarations": [ + { + "constant": false, + "id": 1353, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 1388, + "src": "5703:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1352, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5703:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1358, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1355, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1338, + "src": "5730:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1356, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1328, + "src": "5740:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1354, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "5720:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5720:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5703:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1360, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1353, + "src": "5817:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1362, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5835:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1361, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5827:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5827:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "5817:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1359, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "5809:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5809:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1366, + "nodeType": "ExpressionStatement", + "src": "5809:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1368, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1334, + "src": "5853:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1369, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "5863:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1371, + "indexExpression": { + "argumentTypes": null, + "id": 1370, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1353, + "src": "5875:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5863:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5853:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1367, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "5845:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5845:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1374, + "nodeType": "ExpressionStatement", + "src": "5845:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "5944:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1375, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "5944:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1377, + "indexExpression": { + "argumentTypes": null, + "id": 1376, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1353, + "src": "5956:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5944:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1379, + "nodeType": "ExpressionStatement", + "src": "5944:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1383, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1353, + "src": "6010:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1384, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1330, + "src": "6018:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1385, + "name": "_contributionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1332, + "src": "6029:15:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1380, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "5974:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "refundContribution", + "nodeType": "MemberAccess", + "referencedDeclaration": 3234, + "src": "5974:35:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256) external" + } + }, + "id": 1386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5974:71:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1387, + "nodeType": "ExpressionStatement", + "src": "5974:71:4" + } + ] + }, + "documentation": null, + "id": 1389, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaRefundContribution", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1335, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1328, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 1389, + "src": "5260:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1327, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5260:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1330, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 1389, + "src": "5290:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1329, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5290:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1332, + "name": "_contributionId", + "nodeType": "VariableDeclaration", + "scope": 1389, + "src": "5311:20:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1331, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5311:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1334, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 1389, + "src": "5338:11:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1333, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5338:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5253:97:4" + }, + "returnParameters": { + "id": 1336, + "nodeType": "ParameterList", + "parameters": [], + "src": "5368:0:4" + }, + "scope": 2505, + "src": "5222:829:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1452, + "nodeType": "Block", + "src": "6216:691:4", + "statements": [ + { + "assignments": [ + 1402 + ], + "declarations": [ + { + "constant": false, + "id": 1402, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 1452, + "src": "6223:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1401, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "6223:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1415, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1407, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "6271:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6263:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6263:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d657461526566756e644d79436f6e747269627574696f6e73", + "id": 1409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6329:27:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e34c123f73c46ea90307822135f22d72b921a988184ca5170e0b8f0143d0217b", + "typeString": "literal_string \"metaRefundMyContributions\"" + }, + "value": "metaRefundMyContributions" + }, + { + "argumentTypes": null, + "id": 1410, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1393, + "src": "6409:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1411, + "name": "_contributionIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1396, + "src": "6471:16:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 1412, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1398, + "src": "6540:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_e34c123f73c46ea90307822135f22d72b921a988184ca5170e0b8f0143d0217b", + "typeString": "literal_string \"metaRefundMyContributions\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1404, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "6252:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1405, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6252:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6252:295:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1403, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "6242:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6242:306:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6223:325:4" + }, + { + "assignments": [ + 1417 + ], + "declarations": [ + { + "constant": false, + "id": 1417, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 1452, + "src": "6555:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1416, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6555:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1422, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1419, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1402, + "src": "6582:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1420, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1391, + "src": "6592:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1418, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "6572:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6572:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6555:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1424, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "6669:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1426, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6687:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1425, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6679:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1427, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6679:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "6669:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1423, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "6661:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6661:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1430, + "nodeType": "ExpressionStatement", + "src": "6661:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1432, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1398, + "src": "6705:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1433, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "6715:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1435, + "indexExpression": { + "argumentTypes": null, + "id": 1434, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "6727:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6715:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6705:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1431, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "6697:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6697:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1438, + "nodeType": "ExpressionStatement", + "src": "6697:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6796:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1439, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "6796:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1441, + "indexExpression": { + "argumentTypes": null, + "id": 1440, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "6808:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6796:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1443, + "nodeType": "ExpressionStatement", + "src": "6796:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1447, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1417, + "src": "6865:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1448, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1393, + "src": "6873:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1449, + "name": "_contributionIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1396, + "src": "6884:16:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 1444, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "6826:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "refundMyContributions", + "nodeType": "MemberAccess", + "referencedDeclaration": 3269, + "src": "6826:38:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256[] memory) external" + } + }, + "id": 1450, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6826:75:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1451, + "nodeType": "ExpressionStatement", + "src": "6826:75:4" + } + ] + }, + "documentation": null, + "id": 1453, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaRefundMyContributions", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1399, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1391, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 1453, + "src": "6098:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1390, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6098:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1393, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 1453, + "src": "6128:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1392, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6128:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1396, + "name": "_contributionIds", + "nodeType": "VariableDeclaration", + "scope": 1453, + "src": "6149:30:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1394, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6149:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1395, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6149:6:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1398, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 1453, + "src": "6186:11:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1397, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6186:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6091:107:4" + }, + "returnParameters": { + "id": 1400, + "nodeType": "ParameterList", + "parameters": [], + "src": "6216:0:4" + }, + "scope": 2505, + "src": "6057:850:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1520, + "nodeType": "Block", + "src": "7091:760:4", + "statements": [ + { + "assignments": [ + 1468 + ], + "declarations": [ + { + "constant": false, + "id": 1468, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 1520, + "src": "7098:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1467, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "7098:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1482, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1473, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "7146:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1472, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7138:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7138:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d657461526566756e64436f6e747269627574696f6e73", + "id": 1475, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7204:25:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6dc07cd3819461cfdff6f1564bcc681706d72dbddb433578d7e030a6fb3cde9c", + "typeString": "literal_string \"metaRefundContributions\"" + }, + "value": "metaRefundContributions" + }, + { + "argumentTypes": null, + "id": 1476, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1457, + "src": "7282:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1477, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1459, + "src": "7344:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1478, + "name": "_contributionIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1462, + "src": "7406:16:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 1479, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1464, + "src": "7475:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_6dc07cd3819461cfdff6f1564bcc681706d72dbddb433578d7e030a6fb3cde9c", + "typeString": "literal_string \"metaRefundContributions\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1470, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "7127:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7127:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7127:355:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1469, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "7117:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7117:366:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7098:385:4" + }, + { + "assignments": [ + 1484 + ], + "declarations": [ + { + "constant": false, + "id": 1484, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 1520, + "src": "7490:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1483, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7490:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1489, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1486, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1468, + "src": "7517:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1487, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1455, + "src": "7527:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1485, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "7507:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7507:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7490:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1491, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "7604:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7622:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1492, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7614:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7614:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7604:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1490, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "7596:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1496, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7596:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1497, + "nodeType": "ExpressionStatement", + "src": "7596:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1499, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1464, + "src": "7640:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1500, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "7650:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1502, + "indexExpression": { + "argumentTypes": null, + "id": 1501, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "7662:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7650:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7640:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1498, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "7632:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7632:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1505, + "nodeType": "ExpressionStatement", + "src": "7632:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7731:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1506, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "7731:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1508, + "indexExpression": { + "argumentTypes": null, + "id": 1507, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "7743:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7731:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1510, + "nodeType": "ExpressionStatement", + "src": "7731:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1514, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "7798:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1515, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1457, + "src": "7806:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1516, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1459, + "src": "7817:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1517, + "name": "_contributionIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1462, + "src": "7828:16:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 1511, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "7761:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "refundContributions", + "nodeType": "MemberAccess", + "referencedDeclaration": 3357, + "src": "7761:36:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256[] memory) external" + } + }, + "id": 1518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7761:84:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1519, + "nodeType": "ExpressionStatement", + "src": "7761:84:4" + } + ] + }, + "documentation": null, + "id": 1521, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaRefundContributions", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1465, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1455, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 1521, + "src": "6952:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1454, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6952:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1457, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 1521, + "src": "6982:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1456, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6982:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1459, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 1521, + "src": "7003:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1458, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7003:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1462, + "name": "_contributionIds", + "nodeType": "VariableDeclaration", + "scope": 1521, + "src": "7024:30:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1460, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7024:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1461, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7024:6:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1464, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 1521, + "src": "7061:11:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1463, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7061:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6945:128:4" + }, + "returnParameters": { + "id": 1466, + "nodeType": "ParameterList", + "parameters": [], + "src": "7091:0:4" + }, + "scope": 2505, + "src": "6913:938:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1592, + "nodeType": "Block", + "src": "8019:754:4", + "statements": [ + { + "assignments": [ + 1536 + ], + "declarations": [ + { + "constant": false, + "id": 1536, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "8026:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1535, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8026:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1550, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1541, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "8074:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1540, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8066:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8066:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d657461447261696e426f756e7479", + "id": 1543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8132:17:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6b08dc5b26fa52617a877f2faf24f03225f30a7b2c3584eb05ed10c59e6e4793", + "typeString": "literal_string \"metaDrainBounty\"" + }, + "value": "metaDrainBounty" + }, + { + "argumentTypes": null, + "id": 1544, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1525, + "src": "8202:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1545, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1527, + "src": "8264:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1546, + "name": "_amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1530, + "src": "8326:8:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 1547, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1532, + "src": "8387:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_6b08dc5b26fa52617a877f2faf24f03225f30a7b2c3584eb05ed10c59e6e4793", + "typeString": "literal_string \"metaDrainBounty\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1538, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "8055:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8055:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8055:339:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1537, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "8045:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8045:350:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8026:369:4" + }, + { + "assignments": [ + 1552 + ], + "declarations": [ + { + "constant": false, + "id": 1552, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "8402:22:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 1551, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8402:15:4", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1561, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1556, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1536, + "src": "8453:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1557, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1523, + "src": "8463:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1555, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "8443:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8443:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8435:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": "uint160" + }, + "id": 1559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8435:40:4", + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8427:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1560, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8427:49:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8402:74:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "id": 1567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1563, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1552, + "src": "8542:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1565, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8560:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1564, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8552:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8552:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8542:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1562, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "8534:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8534:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1569, + "nodeType": "ExpressionStatement", + "src": "8534:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1571, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1532, + "src": "8578:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1572, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "8588:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1574, + "indexExpression": { + "argumentTypes": null, + "id": 1573, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1552, + "src": "8600:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8588:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8578:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1570, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "8570:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8570:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1577, + "nodeType": "ExpressionStatement", + "src": "8570:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "8669:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1578, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "8669:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1580, + "indexExpression": { + "argumentTypes": null, + "id": 1579, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1552, + "src": "8681:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "8669:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1582, + "nodeType": "ExpressionStatement", + "src": "8669:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1586, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1552, + "src": "8728:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 1587, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1525, + "src": "8736:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1588, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1527, + "src": "8747:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1589, + "name": "_amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1530, + "src": "8758:8:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 1583, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "8699:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "drainBounty", + "nodeType": "MemberAccess", + "referencedDeclaration": 3462, + "src": "8699:28:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address payable,uint256,uint256,uint256[] memory) external" + } + }, + "id": 1590, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8699:68:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1591, + "nodeType": "ExpressionStatement", + "src": "8699:68:4" + } + ] + }, + "documentation": null, + "id": 1593, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaDrainBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1533, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1523, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 1593, + "src": "7888:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1522, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7888:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1525, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 1593, + "src": "7918:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1524, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7918:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1527, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 1593, + "src": "7939:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1526, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7939:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1530, + "name": "_amounts", + "nodeType": "VariableDeclaration", + "scope": 1593, + "src": "7960:22:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1528, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7960:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1529, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7960:6:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1532, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 1593, + "src": "7989:11:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1531, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7989:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7881:120:4" + }, + "returnParameters": { + "id": 1534, + "nodeType": "ParameterList", + "parameters": [], + "src": "8019:0:4" + }, + "scope": 2505, + "src": "7857:916:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1655, + "nodeType": "Block", + "src": "8922:651:4", + "statements": [ + { + "assignments": [ + 1605 + ], + "declarations": [ + { + "constant": false, + "id": 1605, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 1655, + "src": "8929:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1604, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "8929:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1618, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1610, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "8977:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1609, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8969:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8969:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d657461506572666f726d416374696f6e", + "id": 1612, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9035:19:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6eb47f203931c2dfd0ec3b57dc38e7047f05e2866d6badfcd9eefc81a69d765c", + "typeString": "literal_string \"metaPerformAction\"" + }, + "value": "metaPerformAction" + }, + { + "argumentTypes": null, + "id": 1613, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "9107:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1614, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1599, + "src": "9169:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1615, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1601, + "src": "9227:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_6eb47f203931c2dfd0ec3b57dc38e7047f05e2866d6badfcd9eefc81a69d765c", + "typeString": "literal_string \"metaPerformAction\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1607, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "8958:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8958:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1616, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8958:276:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1606, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "8948:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8948:287:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8929:306:4" + }, + { + "assignments": [ + 1620 + ], + "declarations": [ + { + "constant": false, + "id": 1620, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 1655, + "src": "9242:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1619, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9242:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1625, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1622, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1605, + "src": "9269:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1623, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "9279:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1621, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "9259:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1624, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9259:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9242:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1627, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1620, + "src": "9354:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1629, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9372:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9364:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9364:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "9354:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1626, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9346:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9346:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1633, + "nodeType": "ExpressionStatement", + "src": "9346:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1635, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1601, + "src": "9390:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1636, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "9400:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1638, + "indexExpression": { + "argumentTypes": null, + "id": 1637, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1620, + "src": "9412:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9400:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9390:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1634, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9382:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9382:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1641, + "nodeType": "ExpressionStatement", + "src": "9382:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "9481:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1642, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "9481:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1644, + "indexExpression": { + "argumentTypes": null, + "id": 1643, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1620, + "src": "9493:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9481:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1646, + "nodeType": "ExpressionStatement", + "src": "9481:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1650, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1620, + "src": "9542:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1651, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "9550:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1652, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1599, + "src": "9561:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 1647, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "9511:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "performAction", + "nodeType": "MemberAccess", + "referencedDeclaration": 3484, + "src": "9511:30:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,string memory) external" + } + }, + "id": 1653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9511:56:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1654, + "nodeType": "ExpressionStatement", + "src": "9511:56:4" + } + ] + }, + "documentation": null, + "id": 1656, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaPerformAction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1602, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1595, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 1656, + "src": "8812:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1594, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8812:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1597, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 1656, + "src": "8842:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1596, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8842:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1599, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 1656, + "src": "8863:19:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1598, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8863:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1601, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 1656, + "src": "8889:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1600, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8889:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8805:99:4" + }, + "returnParameters": { + "id": 1603, + "nodeType": "ParameterList", + "parameters": [], + "src": "8922:0:4" + }, + "scope": 2505, + "src": "8779:794:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1723, + "nodeType": "Block", + "src": "9766:728:4", + "statements": [ + { + "assignments": [ + 1671 + ], + "declarations": [ + { + "constant": false, + "id": 1671, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 1723, + "src": "9773:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1670, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "9773:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1685, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1676, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "9821:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1675, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9813:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9813:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d65746146756c66696c6c426f756e7479", + "id": 1678, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9879:19:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a13e8c3cdcf546caa5d6bbf26d3005b64ad6ad4a9f5918d69febb90107dfae0b", + "typeString": "literal_string \"metaFulfillBounty\"" + }, + "value": "metaFulfillBounty" + }, + { + "argumentTypes": null, + "id": 1679, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1660, + "src": "9951:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1680, + "name": "_fulfillers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1663, + "src": "10013:11:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1681, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1665, + "src": "10077:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1682, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1667, + "src": "10135:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_a13e8c3cdcf546caa5d6bbf26d3005b64ad6ad4a9f5918d69febb90107dfae0b", + "typeString": "literal_string \"metaFulfillBounty\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1673, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "9802:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9802:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9802:340:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1672, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "9792:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9792:351:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9773:370:4" + }, + { + "assignments": [ + 1687 + ], + "declarations": [ + { + "constant": false, + "id": 1687, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 1723, + "src": "10150:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1686, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10150:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1692, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1689, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1671, + "src": "10177:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1690, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1658, + "src": "10187:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1688, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "10167:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10167:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10150:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1698, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1694, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1687, + "src": "10262:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1696, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10280:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1695, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10272:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1697, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10272:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10262:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1693, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10254:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10254:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1700, + "nodeType": "ExpressionStatement", + "src": "10254:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1702, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1667, + "src": "10298:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1703, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "10308:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1705, + "indexExpression": { + "argumentTypes": null, + "id": 1704, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1687, + "src": "10320:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10308:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10298:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1701, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10290:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10290:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1708, + "nodeType": "ExpressionStatement", + "src": "10290:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1712, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "10389:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1709, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "10389:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1711, + "indexExpression": { + "argumentTypes": null, + "id": 1710, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1687, + "src": "10401:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10389:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1713, + "nodeType": "ExpressionStatement", + "src": "10389:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1717, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1687, + "src": "10450:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1718, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1660, + "src": "10458:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1719, + "name": "_fulfillers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1663, + "src": "10469:11:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1720, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1665, + "src": "10482:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 1714, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "10419:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1716, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "fulfillBounty", + "nodeType": "MemberAccess", + "referencedDeclaration": 3545, + "src": "10419:30:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,address payable[] memory,string memory) external" + } + }, + "id": 1721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10419:69:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1722, + "nodeType": "ExpressionStatement", + "src": "10419:69:4" + } + ] + }, + "documentation": null, + "id": 1724, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaFulfillBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1658, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 1724, + "src": "9612:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1657, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "9612:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1660, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 1724, + "src": "9642:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1659, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9642:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1663, + "name": "_fulfillers", + "nodeType": "VariableDeclaration", + "scope": 1724, + "src": "9663:37:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 1661, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9663:15:4", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1662, + "length": null, + "nodeType": "ArrayTypeName", + "src": "9663:17:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1665, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 1724, + "src": "9707:19:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1664, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9707:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1667, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 1724, + "src": "9733:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9733:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9605:143:4" + }, + "returnParameters": { + "id": 1669, + "nodeType": "ParameterList", + "parameters": [], + "src": "9766:0:4" + }, + "scope": 2505, + "src": "9579:915:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1795, + "nodeType": "Block", + "src": "10717:819:4", + "statements": [ + { + "assignments": [ + 1741 + ], + "declarations": [ + { + "constant": false, + "id": 1741, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 1795, + "src": "10724:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1740, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "10724:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1756, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1746, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "10772:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10764:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10764:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d65746155706461746546756c66696c6c6d656e74", + "id": 1748, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10830:23:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e24628a0114f1b1eca1d45f0798a3051de9b226fbeb75086a6ca0746c4a11eaa", + "typeString": "literal_string \"metaUpdateFulfillment\"" + }, + "value": "metaUpdateFulfillment" + }, + { + "argumentTypes": null, + "id": 1749, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1728, + "src": "10906:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1750, + "name": "_fulfillmentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1730, + "src": "10968:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1751, + "name": "_fulfillers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1733, + "src": "11035:11:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1752, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1735, + "src": "11099:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1753, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1737, + "src": "11157:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_e24628a0114f1b1eca1d45f0798a3051de9b226fbeb75086a6ca0746c4a11eaa", + "typeString": "literal_string \"metaUpdateFulfillment\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1743, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "10753:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10753:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10753:411:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1742, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "10743:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10743:422:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10724:441:4" + }, + { + "assignments": [ + 1758 + ], + "declarations": [ + { + "constant": false, + "id": 1758, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 1795, + "src": "11172:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1757, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11172:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1763, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1760, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1741, + "src": "11199:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1761, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1726, + "src": "11209:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1759, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "11189:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11189:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11172:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1765, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1758, + "src": "11284:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1767, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11302:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1766, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11294:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11294:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "11284:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1764, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "11276:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11276:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1771, + "nodeType": "ExpressionStatement", + "src": "11276:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1773, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1737, + "src": "11320:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1774, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "11330:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1776, + "indexExpression": { + "argumentTypes": null, + "id": 1775, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1758, + "src": "11342:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11330:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11320:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1772, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "11312:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11312:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1779, + "nodeType": "ExpressionStatement", + "src": "11312:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "11411:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1780, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "11411:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1782, + "indexExpression": { + "argumentTypes": null, + "id": 1781, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1758, + "src": "11423:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11411:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1784, + "nodeType": "ExpressionStatement", + "src": "11411:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1788, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1758, + "src": "11476:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1789, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1728, + "src": "11484:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1790, + "name": "_fulfillmentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1730, + "src": "11495:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1791, + "name": "_fulfillers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1733, + "src": "11511:11:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1792, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1735, + "src": "11524:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 1785, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "11441:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "updateFulfillment", + "nodeType": "MemberAccess", + "referencedDeclaration": 3592, + "src": "11441:34:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,address payable[] memory,string memory) external" + } + }, + "id": 1793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11441:89:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1794, + "nodeType": "ExpressionStatement", + "src": "11441:89:4" + } + ] + }, + "documentation": null, + "id": 1796, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaUpdateFulfillment", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1738, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1726, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 1796, + "src": "10537:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1725, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "10537:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1728, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 1796, + "src": "10567:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1727, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10567:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1730, + "name": "_fulfillmentId", + "nodeType": "VariableDeclaration", + "scope": 1796, + "src": "10588:19:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1729, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "10588:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1733, + "name": "_fulfillers", + "nodeType": "VariableDeclaration", + "scope": 1796, + "src": "10614:37:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 1731, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10614:15:4", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1732, + "length": null, + "nodeType": "ArrayTypeName", + "src": "10614:17:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1735, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 1796, + "src": "10658:19:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1734, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "10658:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1737, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 1796, + "src": "10684:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1736, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10684:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10530:169:4" + }, + "returnParameters": { + "id": 1739, + "nodeType": "ParameterList", + "parameters": [], + "src": "10717:0:4" + }, + "scope": 2505, + "src": "10500:1036:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1867, + "nodeType": "Block", + "src": "11746:931:4", + "statements": [ + { + "assignments": [ + 1813 + ], + "declarations": [ + { + "constant": false, + "id": 1813, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 1867, + "src": "11753:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1812, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "11753:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1828, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1818, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "11801:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1817, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11793:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11793:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d65746141636365707446756c66696c6c6d656e74", + "id": 1820, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11859:23:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d1ba16c1b44101c30e47cc84c2585662e68208e4ff0edc1b552b69fbd7a7ce97", + "typeString": "literal_string \"metaAcceptFulfillment\"" + }, + "value": "metaAcceptFulfillment" + }, + { + "argumentTypes": null, + "id": 1821, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1800, + "src": "11935:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1822, + "name": "_fulfillmentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1802, + "src": "11997:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1823, + "name": "_approverId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1804, + "src": "12064:11:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1824, + "name": "_tokenAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1807, + "src": "12128:13:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 1825, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1809, + "src": "12194:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_d1ba16c1b44101c30e47cc84c2585662e68208e4ff0edc1b552b69fbd7a7ce97", + "typeString": "literal_string \"metaAcceptFulfillment\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1815, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "11782:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1816, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11782:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11782:419:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1814, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "11772:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11772:430:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11753:449:4" + }, + { + "assignments": [ + 1830 + ], + "declarations": [ + { + "constant": false, + "id": 1830, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 1867, + "src": "12209:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1829, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12209:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1835, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1832, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1813, + "src": "12236:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1833, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1798, + "src": "12246:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1831, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "12226:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12226:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12209:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1837, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1830, + "src": "12321:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1839, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12339:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1838, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12331:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12331:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "12321:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1836, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "12313:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12313:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1843, + "nodeType": "ExpressionStatement", + "src": "12313:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1845, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1809, + "src": "12357:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1846, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "12367:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1848, + "indexExpression": { + "argumentTypes": null, + "id": 1847, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1830, + "src": "12379:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12367:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12357:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1844, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "12349:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12349:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1851, + "nodeType": "ExpressionStatement", + "src": "12349:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "12448:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1852, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "12448:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1854, + "indexExpression": { + "argumentTypes": null, + "id": 1853, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1830, + "src": "12460:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "12448:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1856, + "nodeType": "ExpressionStatement", + "src": "12448:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1860, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1830, + "src": "12513:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1861, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1800, + "src": "12545:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1862, + "name": "_fulfillmentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1802, + "src": "12580:14:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1863, + "name": "_approverId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1804, + "src": "12620:11:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1864, + "name": "_tokenAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1807, + "src": "12657:13:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 1857, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "12478:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "acceptFulfillment", + "nodeType": "MemberAccess", + "referencedDeclaration": 3688, + "src": "12478:34:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,uint256[] memory) external" + } + }, + "id": 1865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12478:193:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1866, + "nodeType": "ExpressionStatement", + "src": "12478:193:4" + } + ] + }, + "documentation": null, + "id": 1868, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaAcceptFulfillment", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1810, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1798, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 1868, + "src": "11579:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1797, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "11579:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1800, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 1868, + "src": "11609:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1799, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11609:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1802, + "name": "_fulfillmentId", + "nodeType": "VariableDeclaration", + "scope": 1868, + "src": "11630:19:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1801, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11630:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1804, + "name": "_approverId", + "nodeType": "VariableDeclaration", + "scope": 1868, + "src": "11656:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1803, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11656:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1807, + "name": "_tokenAmounts", + "nodeType": "VariableDeclaration", + "scope": 1868, + "src": "11679:27:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1805, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "11679:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1806, + "length": null, + "nodeType": "ArrayTypeName", + "src": "11679:6:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1809, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 1868, + "src": "11713:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1808, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11713:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11572:156:4" + }, + "returnParameters": { + "id": 1811, + "nodeType": "ParameterList", + "parameters": [], + "src": "11746:0:4" + }, + "scope": 2505, + "src": "11542:1135:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 1944, + "nodeType": "Block", + "src": "12929:1007:4", + "statements": [ + { + "assignments": [ + 1888 + ], + "declarations": [ + { + "constant": false, + "id": 1888, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 1944, + "src": "12936:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1887, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "12936:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1904, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1893, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "12984:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1892, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12976:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12976:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d65746146756c66696c6c416e64416363657074", + "id": 1895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13042:22:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_db72f4dcd4409d42468853b76fdc90367666ba6a49ba29d06ffa869878d8b2ff", + "typeString": "literal_string \"metaFulfillAndAccept\"" + }, + "value": "metaFulfillAndAccept" + }, + { + "argumentTypes": null, + "id": 1896, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1872, + "src": "13117:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1897, + "name": "_fulfillers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "13179:11:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1898, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1877, + "src": "13243:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1899, + "name": "_approverId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1879, + "src": "13301:11:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1900, + "name": "_tokenAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1882, + "src": "13365:13:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + { + "argumentTypes": null, + "id": 1901, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1884, + "src": "13431:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_db72f4dcd4409d42468853b76fdc90367666ba6a49ba29d06ffa869878d8b2ff", + "typeString": "literal_string \"metaFulfillAndAccept\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1890, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "12965:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1891, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12965:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12965:473:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1889, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "12955:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12955:484:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12936:503:4" + }, + { + "assignments": [ + 1906 + ], + "declarations": [ + { + "constant": false, + "id": 1906, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 1944, + "src": "13446:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1905, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13446:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1911, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1908, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1888, + "src": "13473:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1909, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1870, + "src": "13483:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1907, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "13463:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13463:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13446:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1913, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1906, + "src": "13558:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1915, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13576:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13568:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1916, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13568:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13558:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1912, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "13550:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13550:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1919, + "nodeType": "ExpressionStatement", + "src": "13550:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1921, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1884, + "src": "13594:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1922, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "13604:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1924, + "indexExpression": { + "argumentTypes": null, + "id": 1923, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1906, + "src": "13616:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13604:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13594:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1920, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "13586:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13586:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1927, + "nodeType": "ExpressionStatement", + "src": "13586:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 1931, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "13685:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 1928, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "13685:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1930, + "indexExpression": { + "argumentTypes": null, + "id": 1929, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1906, + "src": "13697:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13685:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1932, + "nodeType": "ExpressionStatement", + "src": "13685:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1936, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1906, + "src": "13749:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 1937, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1872, + "src": "13780:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1938, + "name": "_fulfillers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1875, + "src": "13814:11:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1939, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1877, + "src": "13850:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1940, + "name": "_approverId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1879, + "src": "13880:11:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1941, + "name": "_tokenAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1882, + "src": "13916:13:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 1933, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "13715:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 1935, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "fulfillAndAccept", + "nodeType": "MemberAccess", + "referencedDeclaration": 3730, + "src": "13715:33:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,address payable[] memory,string memory,uint256,uint256[] memory) external" + } + }, + "id": 1942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13715:215:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1943, + "nodeType": "ExpressionStatement", + "src": "13715:215:4" + } + ] + }, + "documentation": null, + "id": 1945, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaFulfillAndAccept", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1885, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1870, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 1945, + "src": "12719:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1869, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "12719:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1872, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 1945, + "src": "12749:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1871, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12749:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1875, + "name": "_fulfillers", + "nodeType": "VariableDeclaration", + "scope": 1945, + "src": "12770:36:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 1873, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12770:15:4", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1874, + "length": null, + "nodeType": "ArrayTypeName", + "src": "12770:17:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1877, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 1945, + "src": "12813:19:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1876, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "12813:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1879, + "name": "_approverId", + "nodeType": "VariableDeclaration", + "scope": 1945, + "src": "12839:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1878, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12839:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1882, + "name": "_tokenAmounts", + "nodeType": "VariableDeclaration", + "scope": 1945, + "src": "12862:27:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 1880, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12862:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1881, + "length": null, + "nodeType": "ArrayTypeName", + "src": "12862:6:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1884, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 1945, + "src": "12896:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1883, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12896:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12712:199:4" + }, + "returnParameters": { + "id": 1886, + "nodeType": "ParameterList", + "parameters": [], + "src": "12929:0:4" + }, + "scope": 2505, + "src": "12683:1253:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2025, + "nodeType": "Block", + "src": "14208:1055:4", + "statements": [ + { + "assignments": [ + 1967 + ], + "declarations": [ + { + "constant": false, + "id": 1967, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 2025, + "src": "14215:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1966, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "14215:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1984, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1972, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "14263:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 1971, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14255:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1973, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14255:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d6574614368616e6765426f756e7479", + "id": 1974, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14321:18:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24aac19b9cf3bf43d15f431164280285fcec8fd7e4162f5257dc77096a92ad13", + "typeString": "literal_string \"metaChangeBounty\"" + }, + "value": "metaChangeBounty" + }, + { + "argumentTypes": null, + "id": 1975, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "14392:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1976, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1951, + "src": "14454:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1977, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1954, + "src": "14516:8:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1978, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1957, + "src": "14577:10:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 1979, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1959, + "src": "14640:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 1980, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1961, + "src": "14698:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 1981, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1963, + "src": "14760:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_24aac19b9cf3bf43d15f431164280285fcec8fd7e4162f5257dc77096a92ad13", + "typeString": "literal_string \"metaChangeBounty\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 1969, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "14244:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 1970, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14244:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 1982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14244:523:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1968, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "14234:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 1983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14234:534:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14215:553:4" + }, + { + "assignments": [ + 1986 + ], + "declarations": [ + { + "constant": false, + "id": 1986, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 2025, + "src": "14775:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1985, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14775:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 1991, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 1988, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1967, + "src": "14802:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 1989, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1947, + "src": "14812:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 1987, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "14792:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 1990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14792:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14775:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 1997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 1993, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1986, + "src": "14887:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 1995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14905:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 1994, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14897:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 1996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14897:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "14887:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1992, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "14879:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14879:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1999, + "nodeType": "ExpressionStatement", + "src": "14879:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2001, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1963, + "src": "14923:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2002, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "14933:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2004, + "indexExpression": { + "argumentTypes": null, + "id": 2003, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1986, + "src": "14945:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14933:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14923:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2000, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "14915:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14915:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2007, + "nodeType": "ExpressionStatement", + "src": "14915:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 2011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "15014:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2008, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "15014:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2010, + "indexExpression": { + "argumentTypes": null, + "id": 2009, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1986, + "src": "15026:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15014:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2012, + "nodeType": "ExpressionStatement", + "src": "15014:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2016, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1986, + "src": "15074:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2017, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "15101:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2018, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1951, + "src": "15131:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2019, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1954, + "src": "15161:8:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 2020, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1957, + "src": "15190:10:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 2021, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1959, + "src": "15221:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 2022, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1961, + "src": "15247:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2013, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "15044:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 2015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "changeBounty", + "nodeType": "MemberAccess", + "referencedDeclaration": 3822, + "src": "15044:29:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256,address payable[] memory,address payable[] memory,string memory,uint256) external" + } + }, + "id": 2023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15044:213:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2024, + "nodeType": "ExpressionStatement", + "src": "15044:213:4" + } + ] + }, + "documentation": null, + "id": 2026, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaChangeBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1964, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1947, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 2026, + "src": "13974:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1946, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "13974:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1949, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2026, + "src": "14004:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1948, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14004:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1951, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 2026, + "src": "14025:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1950, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14025:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1954, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 2026, + "src": "14046:33:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 1952, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14046:15:4", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1953, + "length": null, + "nodeType": "ArrayTypeName", + "src": "14046:17:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1957, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 2026, + "src": "14086:35:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 1955, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14086:15:4", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1956, + "length": null, + "nodeType": "ArrayTypeName", + "src": "14086:17:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1959, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 2026, + "src": "14128:19:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1958, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "14128:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1961, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 2026, + "src": "14154:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1960, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14154:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 1963, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 2026, + "src": "14175:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1962, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14175:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13967:223:4" + }, + "returnParameters": { + "id": 1965, + "nodeType": "ParameterList", + "parameters": [], + "src": "14208:0:4" + }, + "scope": 2505, + "src": "13942:1321:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2096, + "nodeType": "Block", + "src": "15468:897:4", + "statements": [ + { + "assignments": [ + 2042 + ], + "declarations": [ + { + "constant": false, + "id": 2042, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 2096, + "src": "15475:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2041, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "15475:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2057, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2047, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "15523:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 2046, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "15515:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15515:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d6574614368616e6765497373756572", + "id": 2049, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15581:18:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8d269e2c77a9b37189b50de51e931f880e2cc9f26874ecdc24a474461a07ab08", + "typeString": "literal_string \"metaChangeIssuer\"" + }, + "value": "metaChangeIssuer" + }, + { + "argumentTypes": null, + "id": 2050, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2030, + "src": "15652:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2051, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2032, + "src": "15714:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2052, + "name": "_issuerIdToChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2034, + "src": "15776:17:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2053, + "name": "_newIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2036, + "src": "15846:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 2054, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2038, + "src": "15909:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_8d269e2c77a9b37189b50de51e931f880e2cc9f26874ecdc24a474461a07ab08", + "typeString": "literal_string \"metaChangeIssuer\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2044, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "15504:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2045, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15504:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15504:412:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2043, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "15494:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15494:423:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15475:442:4" + }, + { + "assignments": [ + 2059 + ], + "declarations": [ + { + "constant": false, + "id": 2059, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 2096, + "src": "15924:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2058, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15924:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2064, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2061, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2042, + "src": "15951:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2062, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2028, + "src": "15961:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2060, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "15941:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 2063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15941:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15924:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2066, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2059, + "src": "16036:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2068, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16054:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16046:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2069, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16046:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "16036:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2065, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "16028:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16028:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2072, + "nodeType": "ExpressionStatement", + "src": "16028:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2074, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2038, + "src": "16072:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2075, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "16082:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2077, + "indexExpression": { + "argumentTypes": null, + "id": 2076, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2059, + "src": "16094:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16082:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16072:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2073, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "16064:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16064:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2080, + "nodeType": "ExpressionStatement", + "src": "16064:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 2084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "16163:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2081, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "16163:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2083, + "indexExpression": { + "argumentTypes": null, + "id": 2082, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2059, + "src": "16175:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16163:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2085, + "nodeType": "ExpressionStatement", + "src": "16163:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2089, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2059, + "src": "16223:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2090, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2030, + "src": "16250:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2091, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2032, + "src": "16280:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2092, + "name": "_issuerIdToChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2034, + "src": "16310:17:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2093, + "name": "_newIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2036, + "src": "16348:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "id": 2086, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "16193:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 2088, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "changeIssuer", + "nodeType": "MemberAccess", + "referencedDeclaration": 3883, + "src": "16193:29:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_payable_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,address payable) external" + } + }, + "id": 2094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16193:166:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2095, + "nodeType": "ExpressionStatement", + "src": "16193:166:4" + } + ] + }, + "documentation": null, + "id": 2097, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaChangeIssuer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2039, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2028, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "15301:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2027, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "15301:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2030, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "15331:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2029, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15331:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2032, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "15352:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2031, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15352:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2034, + "name": "_issuerIdToChange", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "15373:22:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2033, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15373:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2036, + "name": "_newIssuer", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "15402:26:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 2035, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15402:15:4", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2038, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "15435:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2037, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15435:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15294:156:4" + }, + "returnParameters": { + "id": 2040, + "nodeType": "ParameterList", + "parameters": [], + "src": "15468:0:4" + }, + "scope": 2505, + "src": "15269:1096:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2167, + "nodeType": "Block", + "src": "16565:887:4", + "statements": [ + { + "assignments": [ + 2113 + ], + "declarations": [ + { + "constant": false, + "id": 2113, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 2167, + "src": "16572:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2112, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "16572:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2128, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2118, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "16620:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 2117, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16612:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16612:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d6574614368616e6765417070726f766572", + "id": 2120, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16678:20:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bd48a1a42af7ff3da4fad85a4891b6333c7a585b9c13c519e9fd54a5d4c7a5f6", + "typeString": "literal_string \"metaChangeApprover\"" + }, + "value": "metaChangeApprover" + }, + { + "argumentTypes": null, + "id": 2121, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2101, + "src": "16751:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2122, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2103, + "src": "16813:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2123, + "name": "_approverId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2105, + "src": "16875:11:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2124, + "name": "_approver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2107, + "src": "16939:9:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 2125, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2109, + "src": "17001:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_bd48a1a42af7ff3da4fad85a4891b6333c7a585b9c13c519e9fd54a5d4c7a5f6", + "typeString": "literal_string \"metaChangeApprover\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2115, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "16601:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16601:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16601:407:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2114, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "16591:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16591:418:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16572:437:4" + }, + { + "assignments": [ + 2130 + ], + "declarations": [ + { + "constant": false, + "id": 2130, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 2167, + "src": "17016:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17016:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2135, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2132, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "17043:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2133, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2099, + "src": "17053:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2131, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "17033:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 2134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17033:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17016:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2137, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2130, + "src": "17128:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2139, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17146:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17138:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17138:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17128:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2136, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17120:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17120:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2143, + "nodeType": "ExpressionStatement", + "src": "17120:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2145, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2109, + "src": "17164:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2146, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "17174:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2148, + "indexExpression": { + "argumentTypes": null, + "id": 2147, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2130, + "src": "17186:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17174:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17164:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2144, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17156:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17156:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2151, + "nodeType": "ExpressionStatement", + "src": "17156:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 2155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "17255:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2152, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "17255:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2154, + "indexExpression": { + "argumentTypes": null, + "id": 2153, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2130, + "src": "17267:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17255:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2156, + "nodeType": "ExpressionStatement", + "src": "17255:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2160, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2130, + "src": "17317:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2161, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2101, + "src": "17344:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2162, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2103, + "src": "17374:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2163, + "name": "_approverId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2105, + "src": "17404:11:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2164, + "name": "_approver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2107, + "src": "17436:9:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "id": 2157, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "17285:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 2159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "changeApprover", + "nodeType": "MemberAccess", + "referencedDeclaration": 3930, + "src": "17285:31:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_payable_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,address payable) external" + } + }, + "id": 2165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17285:161:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2166, + "nodeType": "ExpressionStatement", + "src": "17285:161:4" + } + ] + }, + "documentation": null, + "id": 2168, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaChangeApprover", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2110, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2099, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 2168, + "src": "16405:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2098, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "16405:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2101, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2168, + "src": "16435:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2100, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "16435:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2103, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 2168, + "src": "16456:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2102, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "16456:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2105, + "name": "_approverId", + "nodeType": "VariableDeclaration", + "scope": 2168, + "src": "16477:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2104, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "16477:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2107, + "name": "_approver", + "nodeType": "VariableDeclaration", + "scope": 2168, + "src": "16500:25:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 2106, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16500:15:4", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2109, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 2168, + "src": "16532:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2108, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16532:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16398:149:4" + }, + "returnParameters": { + "id": 2111, + "nodeType": "ParameterList", + "parameters": [], + "src": "16565:0:4" + }, + "scope": 2505, + "src": "16371:1081:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2234, + "nodeType": "Block", + "src": "17619:769:4", + "statements": [ + { + "assignments": [ + 2182 + ], + "declarations": [ + { + "constant": false, + "id": 2182, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 2234, + "src": "17626:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2181, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "17626:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2196, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2187, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "17674:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 2186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17666:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17666:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d6574614368616e676544617461", + "id": 2189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17732:16:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a136a7e99fd205d0dcb4550621ef5b54e3c98302578208b3f3175b4335c2c913", + "typeString": "literal_string \"metaChangeData\"" + }, + "value": "metaChangeData" + }, + { + "argumentTypes": null, + "id": 2190, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2172, + "src": "17801:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2191, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2174, + "src": "17863:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2192, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2176, + "src": "17925:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 2193, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2178, + "src": "17983:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_a136a7e99fd205d0dcb4550621ef5b54e3c98302578208b3f3175b4335c2c913", + "typeString": "literal_string \"metaChangeData\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2184, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "17655:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "17655:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17655:335:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2183, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "17645:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17645:346:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17626:365:4" + }, + { + "assignments": [ + 2198 + ], + "declarations": [ + { + "constant": false, + "id": 2198, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 2234, + "src": "17998:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2197, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17998:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2203, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2200, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2182, + "src": "18025:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2201, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2170, + "src": "18035:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2199, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "18015:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 2202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18015:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17998:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2205, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2198, + "src": "18110:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18128:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18120:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2208, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18120:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "18110:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2204, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "18102:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2210, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18102:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2211, + "nodeType": "ExpressionStatement", + "src": "18102:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2213, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2178, + "src": "18146:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2214, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "18156:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2216, + "indexExpression": { + "argumentTypes": null, + "id": 2215, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2198, + "src": "18168:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18156:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18146:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2212, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "18138:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18138:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2219, + "nodeType": "ExpressionStatement", + "src": "18138:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 2223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "18237:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2220, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "18237:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2222, + "indexExpression": { + "argumentTypes": null, + "id": 2221, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2198, + "src": "18249:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18237:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2224, + "nodeType": "ExpressionStatement", + "src": "18237:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2228, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2198, + "src": "18295:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2229, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2172, + "src": "18320:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2230, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2174, + "src": "18348:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2231, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2176, + "src": "18376:5:4", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 2225, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "18267:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 2227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "changeData", + "nodeType": "MemberAccess", + "referencedDeclaration": 4049, + "src": "18267:27:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,string memory) external" + } + }, + "id": 2232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18267:115:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2233, + "nodeType": "ExpressionStatement", + "src": "18267:115:4" + } + ] + }, + "documentation": null, + "id": 2235, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaChangeData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2179, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2170, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 2235, + "src": "17488:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2169, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "17488:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2172, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2235, + "src": "17518:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2171, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17518:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2174, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 2235, + "src": "17539:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2173, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17539:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2176, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 2235, + "src": "17560:19:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2175, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17560:6:4", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2178, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 2235, + "src": "17586:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2177, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17586:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17481:120:4" + }, + "returnParameters": { + "id": 2180, + "nodeType": "ParameterList", + "parameters": [], + "src": "17619:0:4" + }, + "scope": 2505, + "src": "17458:930:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2301, + "nodeType": "Block", + "src": "18555:797:4", + "statements": [ + { + "assignments": [ + 2249 + ], + "declarations": [ + { + "constant": false, + "id": 2249, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 2301, + "src": "18562:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2248, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "18562:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2263, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2254, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "18610:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 2253, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18602:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2255, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18602:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d6574614368616e6765446561646c696e65", + "id": 2256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18668:20:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b419befe26b3c7190750e9f6987242e374c4ca6b6a5aeede9805c14cb6cb7228", + "typeString": "literal_string \"metaChangeDeadline\"" + }, + "value": "metaChangeDeadline" + }, + { + "argumentTypes": null, + "id": 2257, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2239, + "src": "18741:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2258, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2241, + "src": "18803:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2259, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2243, + "src": "18865:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2260, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "18927:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_b419befe26b3c7190750e9f6987242e374c4ca6b6a5aeede9805c14cb6cb7228", + "typeString": "literal_string \"metaChangeDeadline\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2251, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "18591:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18591:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18591:343:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2250, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "18581:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2262, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18581:354:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18562:373:4" + }, + { + "assignments": [ + 2265 + ], + "declarations": [ + { + "constant": false, + "id": 2265, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 2301, + "src": "18942:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2264, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18942:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2270, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2267, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2249, + "src": "18969:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2268, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2237, + "src": "18979:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2266, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "18959:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 2269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18959:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18942:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2272, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2265, + "src": "19054:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19072:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2273, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19064:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2275, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19064:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "19054:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2271, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "19046:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19046:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2278, + "nodeType": "ExpressionStatement", + "src": "19046:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2280, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2245, + "src": "19090:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2281, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "19100:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2283, + "indexExpression": { + "argumentTypes": null, + "id": 2282, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2265, + "src": "19112:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19100:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19090:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2279, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "19082:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2285, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19082:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2286, + "nodeType": "ExpressionStatement", + "src": "19082:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 2290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "19181:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2287, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "19181:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2289, + "indexExpression": { + "argumentTypes": null, + "id": 2288, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2265, + "src": "19193:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "19181:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2291, + "nodeType": "ExpressionStatement", + "src": "19181:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2295, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2265, + "src": "19243:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2296, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2239, + "src": "19272:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2297, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2241, + "src": "19304:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2298, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2243, + "src": "19336:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2292, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "19211:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 2294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "changeDeadline", + "nodeType": "MemberAccess", + "referencedDeclaration": 4089, + "src": "19211:31:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256) external" + } + }, + "id": 2299, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19211:135:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2300, + "nodeType": "ExpressionStatement", + "src": "19211:135:4" + } + ] + }, + "documentation": null, + "id": 2302, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaChangeDeadline", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2246, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2237, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 2302, + "src": "18428:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2236, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18428:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2239, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2302, + "src": "18458:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2238, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18458:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2241, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 2302, + "src": "18479:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2240, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18479:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2243, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 2302, + "src": "18500:15:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2242, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18500:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2245, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 2302, + "src": "18522:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2244, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18522:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18421:116:4" + }, + "returnParameters": { + "id": 2247, + "nodeType": "ParameterList", + "parameters": [], + "src": "18555:0:4" + }, + "scope": 2505, + "src": "18394:958:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2369, + "nodeType": "Block", + "src": "19533:775:4", + "statements": [ + { + "assignments": [ + 2317 + ], + "declarations": [ + { + "constant": false, + "id": 2317, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 2369, + "src": "19540:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2316, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "19540:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2331, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2322, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "19588:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 2321, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "19580:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19580:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d65746141646449737375657273", + "id": 2324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19646:16:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e5c366eaaa397c768341eb557a97468d5e3264c4ebefb507fce9144dd234a80a", + "typeString": "literal_string \"metaAddIssuers\"" + }, + "value": "metaAddIssuers" + }, + { + "argumentTypes": null, + "id": 2325, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2306, + "src": "19715:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2326, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2308, + "src": "19777:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2327, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2311, + "src": "19839:8:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 2328, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2313, + "src": "19900:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_e5c366eaaa397c768341eb557a97468d5e3264c4ebefb507fce9144dd234a80a", + "typeString": "literal_string \"metaAddIssuers\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2319, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "19569:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "19569:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19569:338:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2318, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "19559:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19559:349:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19540:368:4" + }, + { + "assignments": [ + 2333 + ], + "declarations": [ + { + "constant": false, + "id": 2333, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 2369, + "src": "19915:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19915:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2338, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2335, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2317, + "src": "19942:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2336, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2304, + "src": "19952:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2334, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "19932:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 2337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19932:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19915:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2340, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2333, + "src": "20027:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2342, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20045:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2341, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20037:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2343, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20037:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "20027:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2339, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "20019:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20019:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2346, + "nodeType": "ExpressionStatement", + "src": "20019:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2348, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2313, + "src": "20063:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2349, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "20073:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2351, + "indexExpression": { + "argumentTypes": null, + "id": 2350, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2333, + "src": "20085:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "20073:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20063:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2347, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "20055:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20055:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2354, + "nodeType": "ExpressionStatement", + "src": "20055:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 2358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "20154:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2355, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "20154:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2357, + "indexExpression": { + "argumentTypes": null, + "id": 2356, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2333, + "src": "20166:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "20154:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2359, + "nodeType": "ExpressionStatement", + "src": "20154:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2363, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2333, + "src": "20212:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2364, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2306, + "src": "20237:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2365, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2308, + "src": "20265:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2366, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2311, + "src": "20293:8:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 2360, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "20184:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 2362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addIssuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 4149, + "src": "20184:27:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,address payable[] memory) external" + } + }, + "id": 2367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20184:118:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2368, + "nodeType": "ExpressionStatement", + "src": "20184:118:4" + } + ] + }, + "documentation": null, + "id": 2370, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaAddIssuers", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2304, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 2370, + "src": "19388:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2303, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "19388:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2306, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2370, + "src": "19418:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2305, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "19418:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2308, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 2370, + "src": "19439:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2307, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "19439:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2311, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 2370, + "src": "19460:33:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 2309, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19460:15:4", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 2310, + "length": null, + "nodeType": "ArrayTypeName", + "src": "19460:17:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2313, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 2370, + "src": "19500:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19500:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19381:134:4" + }, + "returnParameters": { + "id": 2315, + "nodeType": "ParameterList", + "parameters": [], + "src": "19533:0:4" + }, + "scope": 2505, + "src": "19358:950:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2437, + "nodeType": "Block", + "src": "20485:783:4", + "statements": [ + { + "assignments": [ + 2385 + ], + "declarations": [ + { + "constant": false, + "id": 2385, + "name": "metaHash", + "nodeType": "VariableDeclaration", + "scope": 2437, + "src": "20492:16:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2384, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "20492:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2399, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2390, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10467, + "src": "20540:4:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", + "typeString": "contract BountiesMetaTxRelayer" + } + ], + "id": 2389, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20532:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20532:13:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "6d657461416464417070726f76657273", + "id": 2392, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20598:18:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3dd98bd79db118185d095fd282d4e4d83c44be55d5f5c1409639178e159df2f4", + "typeString": "literal_string \"metaAddApprovers\"" + }, + "value": "metaAddApprovers" + }, + { + "argumentTypes": null, + "id": 2393, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2374, + "src": "20669:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2394, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2376, + "src": "20731:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2395, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2379, + "src": "20793:10:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 2396, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2381, + "src": "20856:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_stringliteral_3dd98bd79db118185d095fd282d4e4d83c44be55d5f5c1409639178e159df2f4", + "typeString": "literal_string \"metaAddApprovers\"" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 2387, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "20521:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2388, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encode", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "20521:10:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20521:342:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2386, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "20511:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20511:353:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20492:372:4" + }, + { + "assignments": [ + 2401 + ], + "declarations": [ + { + "constant": false, + "id": 2401, + "name": "signer", + "nodeType": "VariableDeclaration", + "scope": 2437, + "src": "20871:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2400, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20871:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2406, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2403, + "name": "metaHash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2385, + "src": "20898:8:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2404, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2372, + "src": "20908:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2402, + "name": "getSigner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2504, + "src": "20888:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", + "typeString": "function (bytes32,bytes memory) pure returns (address)" + } + }, + "id": 2405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20888:31:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20871:48:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2408, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2401, + "src": "20983:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21001:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2409, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20993:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2411, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20993:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "20983:20:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2407, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "20975:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20975:29:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2414, + "nodeType": "ExpressionStatement", + "src": "20975:29:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2416, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2381, + "src": "21019:6:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2417, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "21029:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2419, + "indexExpression": { + "argumentTypes": null, + "id": 2418, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2401, + "src": "21041:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21029:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "21019:29:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2415, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "21011:7:4", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21011:38:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2422, + "nodeType": "ExpressionStatement", + "src": "21011:38:4" + }, + { + "expression": { + "argumentTypes": null, + "id": 2426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "21110:21:4", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2423, + "name": "replayNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1020, + "src": "21110:11:4", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 2425, + "indexExpression": { + "argumentTypes": null, + "id": 2424, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2401, + "src": "21122:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "21110:19:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2427, + "nodeType": "ExpressionStatement", + "src": "21110:21:4" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2431, + "name": "signer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2401, + "src": "21170:6:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2432, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2374, + "src": "21195:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2433, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2376, + "src": "21223:9:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2434, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2379, + "src": "21251:10:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 2428, + "name": "bountiesContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1016, + "src": "21140:16:4", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + }, + "id": 2430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "addApprovers", + "nodeType": "MemberAccess", + "referencedDeclaration": 4209, + "src": "21140:29:4", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,address[] memory) external" + } + }, + "id": 2435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21140:122:4", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2436, + "nodeType": "ExpressionStatement", + "src": "21140:122:4" + } + ] + }, + "documentation": null, + "id": 2438, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "metaAddApprovers", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2372, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 2438, + "src": "20346:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2371, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "20346:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2374, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2438, + "src": "20376:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2373, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "20376:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2376, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 2438, + "src": "20397:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2375, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "20397:4:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2379, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 2438, + "src": "20418:27:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2377, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20418:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2378, + "length": null, + "nodeType": "ArrayTypeName", + "src": "20418:9:4", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2381, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 2438, + "src": "20452:14:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2380, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20452:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "20339:128:4" + }, + "returnParameters": { + "id": 2383, + "nodeType": "ParameterList", + "parameters": [], + "src": "20485:0:4" + }, + "scope": 2505, + "src": "20314:954:4", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2503, + "nodeType": "Block", + "src": "21394:496:4", + "statements": [ + { + "assignments": [ + 2448 + ], + "declarations": [ + { + "constant": false, + "id": 2448, + "name": "r", + "nodeType": "VariableDeclaration", + "scope": 2503, + "src": "21401:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2447, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "21401:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2449, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "21401:9:4" + }, + { + "assignments": [ + 2451 + ], + "declarations": [ + { + "constant": false, + "id": 2451, + "name": "s", + "nodeType": "VariableDeclaration", + "scope": 2503, + "src": "21417:9:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2450, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "21417:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2452, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "21417:9:4" + }, + { + "assignments": [ + 2454 + ], + "declarations": [ + { + "constant": false, + "id": 2454, + "name": "v", + "nodeType": "VariableDeclaration", + "scope": 2503, + "src": "21433:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2453, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "21433:5:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2455, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "21433:7:4" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2456, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2442, + "src": "21451:10:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "21451:17:4", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3635", + "id": 2458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21472:2:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_65_by_1", + "typeString": "int_const 65" + }, + "value": "65" + }, + "src": "21451:23:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2465, + "nodeType": "IfStatement", + "src": "21447:62:4", + "trueBody": { + "id": 2464, + "nodeType": "Block", + "src": "21475:34:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2461, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21499:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2460, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21491:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2462, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21491:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2446, + "id": 2463, + "nodeType": "Return", + "src": "21484:17:4" + } + ] + } + }, + { + "externalReferences": [ + { + "r": { + "declaration": 2448, + "isOffset": false, + "isSlot": false, + "src": "21533:1:4", + "valueSize": 1 + } + }, + { + "_signature": { + "declaration": 2442, + "isOffset": false, + "isSlot": false, + "src": "21548:10:4", + "valueSize": 1 + } + }, + { + "v": { + "declaration": 2454, + "isOffset": false, + "isSlot": false, + "src": "21611:1:4", + "valueSize": 1 + } + }, + { + "s": { + "declaration": 2451, + "isOffset": false, + "isSlot": false, + "src": "21572:1:4", + "valueSize": 1 + } + }, + { + "_signature": { + "declaration": 2442, + "isOffset": false, + "isSlot": false, + "src": "21587:10:4", + "valueSize": 1 + } + }, + { + "_signature": { + "declaration": 2442, + "isOffset": false, + "isSlot": false, + "src": "21634:10:4", + "valueSize": 1 + } + } + ], + "id": 2466, + "nodeType": "InlineAssembly", + "operations": "{\n r := mload(add(_signature, 32))\n s := mload(add(_signature, 64))\n v := byte(0, mload(add(_signature, 96)))\n}", + "src": "21515:143:4" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2467, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2454, + "src": "21668:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3237", + "id": 2468, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21672:2:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_27_by_1", + "typeString": "int_const 27" + }, + "value": "27" + }, + "src": "21668:6:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2475, + "nodeType": "IfStatement", + "src": "21664:35:4", + "trueBody": { + "id": 2474, + "nodeType": "Block", + "src": "21675:24:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2470, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2454, + "src": "21684:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "3237", + "id": 2471, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21689:2:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_27_by_1", + "typeString": "int_const 27" + }, + "value": "27" + }, + "src": "21684:7:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 2473, + "nodeType": "ExpressionStatement", + "src": "21684:7:4" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2476, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2454, + "src": "21709:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3237", + "id": 2477, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21714:2:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_27_by_1", + "typeString": "int_const 27" + }, + "value": "27" + }, + "src": "21709:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2479, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2454, + "src": "21720:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3238", + "id": 2480, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21725:2:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_28_by_1", + "typeString": "int_const 28" + }, + "value": "28" + }, + "src": "21720:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "21709:18:4", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2501, + "nodeType": "Block", + "src": "21768:117:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "19457468657265756d205369676e6564204d6573736167653a0a3332", + "id": 2492, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21823:34:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73", + "typeString": "literal_string \"\u0019Ethereum Signed Message:\n32\"" + }, + "value": "\u0019Ethereum Signed Message:\n32" + }, + { + "argumentTypes": null, + "id": 2493, + "name": "_hash", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2440, + "src": "21859:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73", + "typeString": "literal_string \"\u0019Ethereum Signed Message:\n32\"" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "argumentTypes": null, + "id": 2490, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10398, + "src": "21806:3:4", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "21806:16:4", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21806:59:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2489, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10405, + "src": "21796:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" + } + }, + "id": 2495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21796:70:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2496, + "name": "v", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2454, + "src": "21868:1:4", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "argumentTypes": null, + "id": 2497, + "name": "r", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2448, + "src": "21871:1:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "argumentTypes": null, + "id": 2498, + "name": "s", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2451, + "src": "21874:1:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2488, + "name": "ecrecover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10403, + "src": "21786:9:4", + "typeDescriptions": { + "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", + "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" + } + }, + "id": 2499, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21786:91:4", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2446, + "id": 2500, + "nodeType": "Return", + "src": "21779:98:4" + } + ] + }, + "id": 2502, + "nodeType": "IfStatement", + "src": "21705:180:4", + "trueBody": { + "id": 2487, + "nodeType": "Block", + "src": "21728:34:4", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2484, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21752:1:4", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2483, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "21744:7:4", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2485, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21744:10:4", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2446, + "id": 2486, + "nodeType": "Return", + "src": "21737:17:4" + } + ] + } + } + ] + }, + "documentation": null, + "id": 2504, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getSigner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2443, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2440, + "name": "_hash", + "nodeType": "VariableDeclaration", + "scope": 2504, + "src": "21299:13:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2439, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "21299:7:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2442, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 2504, + "src": "21319:23:4", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2441, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21319:5:4", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "21292:51:4" + }, + "returnParameters": { + "id": 2446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2445, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2504, + "src": "21382:7:4", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2444, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21382:7:4", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "21381:9:4" + }, + "scope": 2505, + "src": "21274:616:4", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 2506, + "src": "109:21784:4" + } + ], + "src": "0:21895:4" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": { + "10": { + "events": {}, + "links": {}, + "address": "0x94A9B7f96c5ad50AEDDFc8191dE3CF19E3F6E06A", + "transactionHash": "0xc7eb7d1a1b9393906f2db2387cceb8ea491cbeceaac07bad156cb3acf3a46641" + } + }, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:31.137Z", + "networkType": "ethereum", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/contracts/ClaimsToken.json b/src/contracts/ClaimsToken.json new file mode 100644 index 0000000..5a3cc0e --- /dev/null +++ b/src/contracts/ClaimsToken.json @@ -0,0 +1,10929 @@ +{ + "contractName": "ClaimsToken", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "withdrawFunds", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "processedFunds", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "claimedFunds", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "receivedFunds", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": false, + "name": "fundsReceived", + "type": "uint256" + } + ], + "name": "FundsReceived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "by", + "type": "address" + }, + { + "indexed": false, + "name": "fundsWithdrawn", + "type": "uint256" + } + ], + "name": "FundsWithdrawn", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalReceivedFunds", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_forAddress", + "type": "address" + } + ], + "name": "availableFunds", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalReceivedFunds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"withdrawFunds\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"processedFunds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimedFunds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_forAddress\",\"type\":\"address\"}],\"name\":\"availableFunds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"receivedFunds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"fundsReceived\",\"type\":\"uint256\"}],\"name\":\"FundsReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"by\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"fundsWithdrawn\",\"type\":\"uint256\"}],\"name\":\"FundsWithdrawn\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"details\":\"Function to check the amount of tokens that an owner allowed to a spender.\\r\",\"params\":{\"owner\":\"address The address which owns the funds.\\r\",\"spender\":\"address The address which will spend the funds.\\r\"},\"return\":\"A uint256 specifying the amount of tokens still available for the spender.\\r\"},\"approve(address,uint256)\":{\"details\":\"Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\\r Beware that changing an allowance with this method brings the risk that someone may use both the old\\r and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\\r race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\\r https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\r\",\"params\":{\"spender\":\"The address which will spend the funds.\\r\",\"value\":\"The amount of tokens to be spent.\\r\"}},\"availableFunds(address)\":{\"details\":\"Returns the amount of funds a given address is able to withdraw currently.\\r\",\"params\":{\"_forAddress\":\"Address of ClaimsToken holder\\r\"},\"return\":\"A uint256 representing the available funds for a given account\\r\"},\"balanceOf(address)\":{\"details\":\"Gets the balance of the specified address.\\r\",\"params\":{\"owner\":\"The address to query the balance of.\\r\"},\"return\":\"An uint256 representing the amount owned by the passed address.\\r\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation.\\r For example, if `decimals` equals `2`, a balance of `505` tokens should\\r be displayed to a user as `5,05` (`505 / 10 ** 2`).\\r * Tokens usually opt for a value of 18, imitating the relationship between\\r Ether and Wei.\\r * NOTE: This information is only used for _display_ purposes: it in\\r no way affects any of the arithmetic of the contract, including\\r {IERC20-balanceOf} and {IERC20-transfer}.\\r\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Decrease the amount of tokens that an owner allowed to a spender.\\r approve should be called when allowed_[_spender] == 0. To decrement\\r allowed value is better to use this function to avoid 2 calls (and wait until\\r the first transaction is mined)\\r From MonolithDAO Token.sol\\r Emits an Approval event.\\r\",\"params\":{\"spender\":\"The address which will spend the funds.\\r\",\"subtractedValue\":\"The amount of tokens to decrease the allowance by.\\r\"}},\"increaseAllowance(address,uint256)\":{\"details\":\"Increase the amount of tokens that an owner allowed to a spender.\\r approve should be called when allowed_[_spender] == 0. To increment\\r allowed value is better to use this function to avoid 2 calls (and wait until\\r the first transaction is mined)\\r From MonolithDAO Token.sol\\r Emits an Approval event.\\r\",\"params\":{\"addedValue\":\"The amount of tokens to increase the allowance by.\\r\",\"spender\":\"The address which will spend the funds.\\r\"}},\"name()\":{\"details\":\"Returns the name of the token.\\r\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the\\r name.\\r\"},\"totalReceivedFunds()\":{\"details\":\"Get cumulative funds received by ClaimsToken.\\r\",\"return\":\"A uint256 representing the total funds received by ClaimsToken\\r\"},\"totalSupply()\":{\"details\":\"Total number of tokens in existence\\r\"},\"transfer(address,uint256)\":{\"details\":\"Transfer token to a specified address.\\r Claims funds for both parties, whereby the amount of tokens withdrawn\\r is inherited by the new token owner.\\r\",\"params\":{\"_to\":\"The address to transfer to\\r\",\"_value\":\"The amount to be transferred\\r\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfer tokens from one address to another.\\r Claims funds for both parties, whereby the amount of tokens withdrawn\\r is inherited by the new token owner.\\r\",\"params\":{\"_from\":\"address The address which you want to send tokens from\\r\",\"_to\":\"address The address which you want to transfer to\\r\",\"_value\":\"uint256 the amount of tokens to be transferred\\r\"}},\"withdrawFunds()\":{\"details\":\"Withdraws available funds for user.\\r\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol\":\"ClaimsToken\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol\":{\"keccak256\":\"0x83d94afc84930834148f8e00b2b2b624be5e2a910aeb9f508b6e3252648b304a\",\"urls\":[\"bzzr://074edfefdd7f638d059397b8b72e70605bb8eba1e750d8d512d86a5d8abaf966\",\"dweb:/ipfs/QmTPEnc9wjRf7jZ1xzh68sAjusFY5XHCTLpy79yCtCuWrA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol\":{\"keccak256\":\"0xd97866cc5c8b2c90cd57a126748771aad20762b3c708c30a4412ce17a9b79333\",\"urls\":[\"bzzr://0b6010f15f59b69c79df02987919092e5c44bd47602737eb54f4545237b5e636\",\"dweb:/ipfs/QmbPTbnWnvkWF8PRLgpmoXBr7UpJVyULmVRagrskTpkjyJ\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity >=0.5.0 < 0.6.0;\r\n\r\nimport \"../oz/SafeMath.sol\";\r\nimport \"../oz/IERC20.sol\";\r\nimport \"../oz/ERC20.sol\";\r\n\r\n/**\r\n * @dev Optional functions from the ERC20 standard.\r\n */\r\ncontract ERC20Detailed is IERC20 {\r\n string private _name;\r\n string private _symbol;\r\n uint8 private _decimals;\r\n\r\n /**\r\n * @dev Sets the values for `name`, `symbol`, and `decimals`. All three of\r\n * these values are immutable: they can only be set once during\r\n * construction.\r\n */\r\n constructor (string memory name, string memory symbol, uint8 decimals) public {\r\n _name = name;\r\n _symbol = symbol;\r\n _decimals = decimals;\r\n }\r\n\r\n /**\r\n * @dev Returns the name of the token.\r\n */\r\n function name() public view returns (string memory) {\r\n return _name;\r\n }\r\n\r\n /**\r\n * @dev Returns the symbol of the token, usually a shorter version of the\r\n * name.\r\n */\r\n function symbol() public view returns (string memory) {\r\n return _symbol;\r\n }\r\n\r\n /**\r\n * @dev Returns the number of decimals used to get its user representation.\r\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\r\n * be displayed to a user as `5,05` (`505 / 10 ** 2`).\r\n *\r\n * Tokens usually opt for a value of 18, imitating the relationship between\r\n * Ether and Wei.\r\n *\r\n * NOTE: This information is only used for _display_ purposes: it in\r\n * no way affects any of the arithmetic of the contract, including\r\n * {IERC20-balanceOf} and {IERC20-transfer}.\r\n */\r\n function decimals() public view returns (uint8) {\r\n return _decimals;\r\n }\r\n}\r\n\r\ninterface IClaimsToken {\r\n\r\n\t/**\r\n\t * @dev This event emits when funds to be deposited are sent to the token contract\r\n\t * @param from contains the address of the sender of the received funds\r\n\t * @param fundsReceived contains the amount of funds received for distribution\r\n\t */\r\n\tevent FundsReceived(address indexed from, uint256 fundsReceived);\r\n\r\n\t/**\r\n\t * @dev This event emits when distributed funds are withdrawn by a token holder.\r\n\t * @param by contains the address of the receiver of funds\r\n\t * @param fundsWithdrawn contains the amount of funds that were withdrawn\r\n\t */\r\n\tevent FundsWithdrawn(address indexed by, uint256 fundsWithdrawn);\r\n\r\n\t/**\r\n\t * @dev Withdraws available funds for user.\r\n\t */\r\n\tfunction withdrawFunds() external payable;\r\n\r\n\t/**\r\n\t * @dev Returns the amount of funds a given address is able to withdraw currently.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t * @return A uint256 representing the available funds for a given account\r\n\t */\r\n\tfunction availableFunds(address _forAddress) external view returns (uint256);\r\n\r\n\t/**\r\n\t * @dev Get cumulative funds received by ClaimsToken.\r\n\t * @return A uint256 representing the total funds received by ClaimsToken\r\n\t */\r\n\tfunction totalReceivedFunds() external view returns (uint256);\r\n}\r\n\r\ncontract ClaimsToken is IClaimsToken, ERC20, ERC20Detailed {\r\n\r\n\tusing SafeMath for uint256;\r\n\r\n\t// cumulative funds received by this contract\r\n\tuint256 public receivedFunds;\r\n\t// cumulative funds received which were already processed for distribution - by user\r\n\tmapping (address => uint256) public processedFunds;\r\n\t// claimed but not yet withdrawn funds for a user\r\n\tmapping (address => uint256) public claimedFunds;\r\n\r\n\r\n\tconstructor(address _owner)\r\n\t\tpublic\r\n\t\tERC20Detailed(\"ClaimsToken\", \"CST\", 18)\r\n\t{\r\n\t\t_mint(_owner, 10000 * (10 ** uint256(18)));\r\n\r\n\t\treceivedFunds = 0;\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Transfer token to a specified address.\r\n\t * Claims funds for both parties, whereby the amount of tokens withdrawn\r\n\t * is inherited by the new token owner.\r\n\t * @param _to The address to transfer to\r\n\t * @param _value The amount to be transferred\r\n\t */\r\n\tfunction transfer(address _to, uint256 _value)\r\n\t\tpublic\r\n\t\treturns (bool)\r\n\t{\r\n\t\t_claimFunds(msg.sender);\r\n\t\t_claimFunds(_to);\r\n\r\n\t\treturn super.transfer(_to, _value);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @dev Transfer tokens from one address to another.\r\n\t * Claims funds for both parties, whereby the amount of tokens withdrawn\r\n\t * is inherited by the new token owner.\r\n\t * @param _from address The address which you want to send tokens from\r\n\t * @param _to address The address which you want to transfer to\r\n\t * @param _value uint256 the amount of tokens to be transferred\r\n\t */\r\n\tfunction transferFrom(address _from, address _to, uint256 _value)\r\n\t\tpublic\r\n\t\treturns (bool)\r\n\t{\r\n\t\t_claimFunds(_from);\r\n\t\t_claimFunds(_to);\r\n\r\n\t\treturn super.transferFrom(_from, _to, _value);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Get cumulative funds received by ClaimsToken.\r\n\t * @return A uint256 representing the total funds received by ClaimsToken\r\n\t */\r\n\tfunction totalReceivedFunds()\r\n\t\texternal\r\n\t\tview\r\n\t\treturns (uint256)\r\n\t{\r\n\t\treturn receivedFunds;\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Returns the amount of funds a given address is able to withdraw currently.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t * @return A uint256 representing the available funds for a given account\r\n\t */\r\n\tfunction availableFunds(address _forAddress)\r\n\t\tpublic\r\n\t\tview\r\n\t\treturns (uint256)\r\n\t{\r\n\t\treturn _calcUnprocessedFunds(_forAddress).add(claimedFunds[_forAddress]);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Increments cumulative received funds by new received funds.\r\n\t * Called when ClaimsToken receives funds.\r\n\t * @param _value Amount of tokens / Ether received\r\n\t */\r\n\tfunction _registerFunds(uint256 _value)\r\n\t\tinternal\r\n\t{\r\n\t\treceivedFunds = receivedFunds.add(_value);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Returns payout for a user which can be withdrawn or claimed.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t */\r\n\tfunction _calcUnprocessedFunds(address _forAddress)\r\n\t\tinternal\r\n\t\tview\r\n\t\treturns (uint256)\r\n\t{\r\n\t\tuint256 newReceivedFunds = receivedFunds.sub(processedFunds[_forAddress]);\r\n\t\treturn balanceOf(_forAddress).mul(newReceivedFunds).div(totalSupply());\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Claims funds for a user.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t */\r\n\tfunction _claimFunds(address _forAddress) internal {\r\n\t\tuint256 unprocessedFunds = _calcUnprocessedFunds(_forAddress);\r\n\r\n\t\tprocessedFunds[_forAddress] = receivedFunds;\r\n\t\tclaimedFunds[_forAddress] = claimedFunds[_forAddress].add(unprocessedFunds);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Sets claimed but not yet withdrawn funds to 0,\r\n\t * marks total received funds as processed and\r\n\t * returns the withdrawable amount for a user.\r\n\t * @return A uint256 representing the withdrawable funds\r\n\t */\r\n\tfunction _prepareWithdraw()\r\n\t\tinternal\r\n\t\treturns (uint256)\r\n\t{\r\n\t\tuint256 withdrawableFunds = availableFunds(msg.sender);\r\n\r\n\t\tprocessedFunds[msg.sender] = receivedFunds;\r\n\t\tclaimedFunds[msg.sender] = 0;\r\n\r\n\t\treturn withdrawableFunds;\r\n\t}\r\n}\r\n\r\ncontract ClaimsTokenERC20Extension is IClaimsToken, ClaimsToken {\r\n\r\n\t// token that ClaimsToken takes in custodianship\r\n\tIERC20 public fundsToken;\r\n\r\n\tmodifier onlyFundsToken () {\r\n\t\trequire(msg.sender == address(fundsToken), \"UNAUTHORIZED_SENDER\");\r\n\t\t_;\r\n\t}\r\n\r\n\tconstructor(address _owner, IERC20 _fundsToken)\r\n\t\tpublic\r\n\t\tClaimsToken(_owner)\r\n\t{\r\n\t\trequire(address(_fundsToken) != address(0));\r\n\r\n\t\tfundsToken = _fundsToken;\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Withdraws available funds for user.\r\n\t */\r\n\tfunction withdrawFunds()\r\n\t\texternal\r\n\t\tpayable\r\n\t{\r\n\t\trequire(msg.value == 0, \"\");\r\n\r\n\t\tuint256 withdrawableFunds = _prepareWithdraw();\r\n\r\n\t\trequire(fundsToken.transfer(msg.sender, withdrawableFunds), \"TRANSFER_FAILED\");\r\n\t}\r\n\r\n\t/**\r\n\t * @dev For ERC223.\r\n\t * Calls _registerFunds(), whereby total received funds (cumulative) gets updated.\r\n\t * @param _sender Sender of tokens\r\n\t * @param _value Amount of tokens\r\n\t */\r\n\tfunction tokenFallback(address _sender, uint256 _value, bytes memory)\r\n\t\tpublic\r\n\t\tonlyFundsToken()\r\n\t{\r\n\t\tif (_value > 0) {\r\n\t\t\t_registerFunds(_value);\r\n\t\t\temit FundsReceived(_sender, _value);\r\n\t\t}\r\n\t}\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\tokens\\ClaimsToken.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol", + "exportedSymbols": { + "ClaimsToken": [ + 10228 + ], + "ClaimsTokenERC20Extension": [ + 10327 + ], + "ERC20Detailed": [ + 9977 + ], + "IClaimsToken": [ + 10005 + ] + }, + "id": 10328, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9919, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:24" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "../oz/SafeMath.sol", + "id": 9920, + "nodeType": "ImportDirective", + "scope": 10328, + "sourceUnit": 9858, + "src": "36:28:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", + "file": "../oz/IERC20.sol", + "id": 9921, + "nodeType": "ImportDirective", + "scope": 10328, + "sourceUnit": 9720, + "src": "66:26:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol", + "file": "../oz/ERC20.sol", + "id": 9922, + "nodeType": "ImportDirective", + "scope": 10328, + "sourceUnit": 9651, + "src": "94:25:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9923, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "212:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 9924, + "nodeType": "InheritanceSpecifier", + "src": "212:6:24" + } + ], + "contractDependencies": [ + 9719 + ], + "contractKind": "contract", + "documentation": "@dev Optional functions from the ERC20 standard.\r", + "fullyImplemented": false, + "id": 9977, + "linearizedBaseContracts": [ + 9977, + 9719 + ], + "name": "ERC20Detailed", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 9926, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 9977, + "src": "226:20:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 9925, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "226:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 9928, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 9977, + "src": "253:22:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 9927, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "253:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 9930, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 9977, + "src": "282:23:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9929, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "282:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 9951, + "nodeType": "Block", + "src": "581:89:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9939, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9926, + "src": "592:5:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9940, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9932, + "src": "600:4:24", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "592:12:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 9942, + "nodeType": "ExpressionStatement", + "src": "592:12:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 9945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9943, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9928, + "src": "615:7:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9944, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9934, + "src": "625:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "615:16:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 9946, + "nodeType": "ExpressionStatement", + "src": "615:16:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 9949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9947, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9930, + "src": "642:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9948, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9936, + "src": "654:8:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "642:20:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 9950, + "nodeType": "ExpressionStatement", + "src": "642:20:24" + } + ] + }, + "documentation": "@dev Sets the values for `name`, `symbol`, and `decimals`. All three of\r\nthese values are immutable: they can only be set once during\r\nconstruction.\r", + "id": 9952, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9937, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9932, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 9952, + "src": "516:18:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9931, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "516:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9934, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 9952, + "src": "536:20:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9933, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "536:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9936, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 9952, + "src": "558:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9935, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "558:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "515:58:24" + }, + "returnParameters": { + "id": 9938, + "nodeType": "ParameterList", + "parameters": [], + "src": "581:0:24" + }, + "scope": 9977, + "src": "503:167:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9959, + "nodeType": "Block", + "src": "792:31:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9957, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9926, + "src": "810:5:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 9956, + "id": 9958, + "nodeType": "Return", + "src": "803:12:24" + } + ] + }, + "documentation": "@dev Returns the name of the token.\r", + "id": 9960, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9953, + "nodeType": "ParameterList", + "parameters": [], + "src": "753:2:24" + }, + "returnParameters": { + "id": 9956, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9955, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9960, + "src": "777:13:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9954, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "777:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "776:15:24" + }, + "scope": 9977, + "src": "740:83:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9967, + "nodeType": "Block", + "src": "996:33:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9965, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9928, + "src": "1014:7:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 9964, + "id": 9966, + "nodeType": "Return", + "src": "1007:14:24" + } + ] + }, + "documentation": "@dev Returns the symbol of the token, usually a shorter version of the\r\nname.\r", + "id": 9968, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9961, + "nodeType": "ParameterList", + "parameters": [], + "src": "957:2:24" + }, + "returnParameters": { + "id": 9964, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9963, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9968, + "src": "981:13:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9962, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "981:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "980:15:24" + }, + "scope": 9977, + "src": "942:87:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9975, + "nodeType": "Block", + "src": "1640:35:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9973, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9930, + "src": "1658:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 9972, + "id": 9974, + "nodeType": "Return", + "src": "1651:16:24" + } + ] + }, + "documentation": "@dev Returns the number of decimals used to get its user representation.\r\nFor example, if `decimals` equals `2`, a balance of `505` tokens should\r\nbe displayed to a user as `5,05` (`505 / 10 ** 2`).\r\n\n * Tokens usually opt for a value of 18, imitating the relationship between\r\nEther and Wei.\r\n\n * NOTE: This information is only used for _display_ purposes: it in\r\nno way affects any of the arithmetic of the contract, including\r\n{IERC20-balanceOf} and {IERC20-transfer}.\r", + "id": 9976, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9969, + "nodeType": "ParameterList", + "parameters": [], + "src": "1609:2:24" + }, + "returnParameters": { + "id": 9972, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9971, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9976, + "src": "1633:5:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9970, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1633:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1632:7:24" + }, + "scope": 9977, + "src": "1592:83:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 10328, + "src": "186:1492:24" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 10005, + "linearizedBaseContracts": [ + 10005 + ], + "name": "IClaimsToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": "@dev This event emits when funds to be deposited are sent to the token contract\r\n@param from contains the address of the sender of the received funds\r\n@param fundsReceived contains the amount of funds received for distribution\r", + "id": 9983, + "name": "FundsReceived", + "nodeType": "EventDefinition", + "parameters": { + "id": 9982, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9979, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 9983, + "src": "1983:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9978, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1983:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9981, + "indexed": false, + "name": "fundsReceived", + "nodeType": "VariableDeclaration", + "scope": 9983, + "src": "2005:21:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2005:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1982:45:24" + }, + "src": "1963:65:24" + }, + { + "anonymous": false, + "documentation": "@dev This event emits when distributed funds are withdrawn by a token holder.\r\n@param by contains the address of the receiver of funds\r\n@param fundsWithdrawn contains the amount of funds that were withdrawn\r", + "id": 9989, + "name": "FundsWithdrawn", + "nodeType": "EventDefinition", + "parameters": { + "id": 9988, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9985, + "indexed": true, + "name": "by", + "nodeType": "VariableDeclaration", + "scope": 9989, + "src": "2286:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9984, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2286:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9987, + "indexed": false, + "name": "fundsWithdrawn", + "nodeType": "VariableDeclaration", + "scope": 9989, + "src": "2306:22:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2306:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2285:44:24" + }, + "src": "2265:65:24" + }, + { + "body": null, + "documentation": "@dev Withdraws available funds for user.\r", + "id": 9992, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdrawFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9990, + "nodeType": "ParameterList", + "parameters": [], + "src": "2415:2:24" + }, + "returnParameters": { + "id": 9991, + "nodeType": "ParameterList", + "parameters": [], + "src": "2434:0:24" + }, + "scope": 10005, + "src": "2393:42:24", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", + "id": 9999, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "availableFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9994, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 9999, + "src": "2691:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2691:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2690:21:24" + }, + "returnParameters": { + "id": 9998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9997, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9999, + "src": "2735:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9996, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2735:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2734:9:24" + }, + "scope": 10005, + "src": "2667:77:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", + "id": 10004, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalReceivedFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10000, + "nodeType": "ParameterList", + "parameters": [], + "src": "2920:2:24" + }, + "returnParameters": { + "id": 10003, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10002, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10004, + "src": "2946:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2946:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2945:9:24" + }, + "scope": 10005, + "src": "2893:62:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 10328, + "src": "1682:1276:24" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10006, + "name": "IClaimsToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10005, + "src": "2986:12:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IClaimsToken_$10005", + "typeString": "contract IClaimsToken" + } + }, + "id": 10007, + "nodeType": "InheritanceSpecifier", + "src": "2986:12:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10008, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9650, + "src": "3000:5:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9650", + "typeString": "contract ERC20" + } + }, + "id": 10009, + "nodeType": "InheritanceSpecifier", + "src": "3000:5:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10010, + "name": "ERC20Detailed", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9977, + "src": "3007:13:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$9977", + "typeString": "contract ERC20Detailed" + } + }, + "id": 10011, + "nodeType": "InheritanceSpecifier", + "src": "3007:13:24" + } + ], + "contractDependencies": [ + 9650, + 9719, + 9977, + 10005 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 10228, + "linearizedBaseContracts": [ + 10228, + 9977, + 9650, + 9719, + 10005 + ], + "name": "ClaimsToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 10014, + "libraryName": { + "contractScope": null, + "id": 10012, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "3033:8:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "3027:27:24", + "typeName": { + "id": 10013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3046:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 10016, + "name": "receivedFunds", + "nodeType": "VariableDeclaration", + "scope": 10228, + "src": "3107:28:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10015, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3107:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 10020, + "name": "processedFunds", + "nodeType": "VariableDeclaration", + "scope": 10228, + "src": "3226:50:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 10019, + "keyType": { + "id": 10017, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3235:7:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3226:28:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 10018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3246:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 10024, + "name": "claimedFunds", + "nodeType": "VariableDeclaration", + "scope": 10228, + "src": "3332:48:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 10023, + "keyType": { + "id": 10021, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3341:7:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3332:28:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 10022, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3352:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 10050, + "nodeType": "Block", + "src": "3471:76:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10035, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10026, + "src": "3482:6:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10043, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130303030", + "id": 10036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3490:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "value": "10000" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10041, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 10037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3499:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "3138", + "id": 10039, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3513:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + } + ], + "id": 10038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3505:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 10040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3505:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3499:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10042, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3498:19:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3490:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10034, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9539, + "src": "3476:5:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 10044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3476:42:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10045, + "nodeType": "ExpressionStatement", + "src": "3476:42:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10046, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "3525:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 10047, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3541:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3525:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10049, + "nodeType": "ExpressionStatement", + "src": "3525:17:24" + } + ] + }, + "documentation": null, + "id": 10051, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "hexValue": "436c61696d73546f6b656e", + "id": 10029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3443:13:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25771c0ba9a97de4408886fe552885a1751acfa735dfd2ef9c66e7b9e8871e71", + "typeString": "literal_string \"ClaimsToken\"" + }, + "value": "ClaimsToken" + }, + { + "argumentTypes": null, + "hexValue": "435354", + "id": 10030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3458:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0626086d51c299e905c42b7a28a0add92109e49b12cb2bd2531769201453ab94", + "typeString": "literal_string \"CST\"" + }, + "value": "CST" + }, + { + "argumentTypes": null, + "hexValue": "3138", + "id": 10031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3465:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + } + ], + "id": 10032, + "modifierName": { + "argumentTypes": null, + "id": 10028, + "name": "ERC20Detailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9977, + "src": "3429:13:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$9977_$", + "typeString": "type(contract ERC20Detailed)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3429:39:24" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10026, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 10051, + "src": "3400:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10025, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3400:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3399:16:24" + }, + "returnParameters": { + "id": 10033, + "nodeType": "ParameterList", + "parameters": [], + "src": "3471:0:24" + }, + "scope": 10228, + "src": "3388:159:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 10075, + "nodeType": "Block", + "src": "3898:95:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10061, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3915:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3915:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 10060, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "3903:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3903:23:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10064, + "nodeType": "ExpressionStatement", + "src": "3903:23:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10066, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10053, + "src": "3943:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10065, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "3931:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3931:16:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10068, + "nodeType": "ExpressionStatement", + "src": "3931:16:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10071, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10053, + "src": "3976:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10072, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10055, + "src": "3981:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10069, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10490, + "src": "3961:5:24", + "typeDescriptions": { + "typeIdentifier": "t_super$_ClaimsToken_$10228", + "typeString": "contract super ClaimsToken" + } + }, + "id": 10070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9343, + "src": "3961:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" + } + }, + "id": 10073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3961:27:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 10059, + "id": 10074, + "nodeType": "Return", + "src": "3954:34:24" + } + ] + }, + "documentation": "@dev Transfer token to a specified address.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _to The address to transfer to\r\n@param _value The amount to be transferred\r", + "id": 10076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10056, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10053, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 10076, + "src": "3839:11:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10052, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3839:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10055, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10076, + "src": "3852:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10054, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3852:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3838:29:24" + }, + "returnParameters": { + "id": 10059, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10058, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10076, + "src": "3890:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10057, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3890:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3889:6:24" + }, + "scope": 10228, + "src": "3821:172:24", + "stateMutability": "nonpayable", + "superFunction": 9343, + "visibility": "public" + }, + { + "body": { + "id": 10102, + "nodeType": "Block", + "src": "4485:101:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10088, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10078, + "src": "4502:5:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10087, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "4490:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4490:18:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10090, + "nodeType": "ExpressionStatement", + "src": "4490:18:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10092, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10080, + "src": "4525:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10091, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "4513:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4513:16:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10094, + "nodeType": "ExpressionStatement", + "src": "4513:16:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10097, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10078, + "src": "4562:5:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10098, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10080, + "src": "4569:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10099, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10082, + "src": "4574:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10095, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10490, + "src": "4543:5:24", + "typeDescriptions": { + "typeIdentifier": "t_super$_ClaimsToken_$10228", + "typeString": "contract super ClaimsToken" + } + }, + "id": 10096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 9397, + "src": "4543:18:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) returns (bool)" + } + }, + "id": 10100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4543:38:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 10086, + "id": 10101, + "nodeType": "Return", + "src": "4536:45:24" + } + ] + }, + "documentation": "@dev Transfer tokens from one address to another.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _from address The address which you want to send tokens from\r\n@param _to address The address which you want to transfer to\r\n@param _value uint256 the amount of tokens to be transferred\r", + "id": 10103, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10083, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10078, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4411:13:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4411:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10080, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4426:11:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10079, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4426:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10082, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4439:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10081, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4439:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4410:44:24" + }, + "returnParameters": { + "id": 10086, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10085, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4477:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10084, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4477:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4476:6:24" + }, + "scope": 10228, + "src": "4389:197:24", + "stateMutability": "nonpayable", + "superFunction": 9397, + "visibility": "public" + }, + { + "body": { + "id": 10110, + "nodeType": "Block", + "src": "4808:30:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10108, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "4820:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10107, + "id": 10109, + "nodeType": "Return", + "src": "4813:20:24" + } + ] + }, + "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", + "id": 10111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalReceivedFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10104, + "nodeType": "ParameterList", + "parameters": [], + "src": "4762:2:24" + }, + "returnParameters": { + "id": 10107, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10106, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10111, + "src": "4797:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10105, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4797:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4796:9:24" + }, + "scope": 10228, + "src": "4735:103:24", + "stateMutability": "view", + "superFunction": 10004, + "visibility": "external" + }, + { + "body": { + "id": 10127, + "nodeType": "Block", + "src": "5156:82:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10122, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "5207:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10124, + "indexExpression": { + "argumentTypes": null, + "id": 10123, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10113, + "src": "5220:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5207:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10119, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10113, + "src": "5190:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10118, + "name": "_calcUnprocessedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10169, + "src": "5168:21:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5168:34:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "5168:38:24", + "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": 10125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5168:65:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10117, + "id": 10126, + "nodeType": "Return", + "src": "5161:72:24" + } + ] + }, + "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", + "id": 10128, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "availableFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10114, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10113, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 10128, + "src": "5094:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5094:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5093:21:24" + }, + "returnParameters": { + "id": 10117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10116, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10128, + "src": "5145:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10115, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5145:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5144:9:24" + }, + "scope": 10228, + "src": "5070:168:24", + "stateMutability": "view", + "superFunction": 9999, + "visibility": "public" + }, + { + "body": { + "id": 10140, + "nodeType": "Block", + "src": "5477:51:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10133, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "5482:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10136, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10130, + "src": "5516:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10134, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "5498:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "5498:17:24", + "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": 10137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5498:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5482:41:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10139, + "nodeType": "ExpressionStatement", + "src": "5482:41:24" + } + ] + }, + "documentation": "@dev Increments cumulative received funds by new received funds.\r\nCalled when ClaimsToken receives funds.\r\n@param _value Amount of tokens / Ether received\r", + "id": 10141, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10130, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10141, + "src": "5447:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10129, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5447:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5446:16:24" + }, + "returnParameters": { + "id": 10132, + "nodeType": "ParameterList", + "parameters": [], + "src": "5477:0:24" + }, + "scope": 10228, + "src": "5423:105:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10168, + "nodeType": "Block", + "src": "5765:158:24", + "statements": [ + { + "assignments": [ + 10149 + ], + "declarations": [ + { + "constant": false, + "id": 10149, + "name": "newReceivedFunds", + "nodeType": "VariableDeclaration", + "scope": 10168, + "src": "5770:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10148, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5770:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10156, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10152, + "name": "processedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10020, + "src": "5815:14:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10154, + "indexExpression": { + "argumentTypes": null, + "id": 10153, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10143, + "src": "5830:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5815:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10150, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "5797:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "5797:17:24", + "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": 10155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5797:46:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5770:73:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 10164, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9296, + "src": "5904:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 10165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5904:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10161, + "name": "newReceivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10149, + "src": "5882:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10158, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10143, + "src": "5865:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10157, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9308, + "src": "5855:9:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5855:22:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 9784, + "src": "5855:26:24", + "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": 10162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5855:44:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9808, + "src": "5855:48:24", + "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": 10166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5855:63:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10147, + "id": 10167, + "nodeType": "Return", + "src": "5848:70:24" + } + ] + }, + "documentation": "@dev Returns payout for a user which can be withdrawn or claimed.\r\n@param _forAddress Address of ClaimsToken holder\r", + "id": 10169, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_calcUnprocessedFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10143, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 10169, + "src": "5701:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5701:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5700:21:24" + }, + "returnParameters": { + "id": 10147, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10146, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10169, + "src": "5754:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5754:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5753:9:24" + }, + "scope": 10228, + "src": "5670:253:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10197, + "nodeType": "Block", + "src": "6080:201:24", + "statements": [ + { + "assignments": [ + 10175 + ], + "declarations": [ + { + "constant": false, + "id": 10175, + "name": "unprocessedFunds", + "nodeType": "VariableDeclaration", + "scope": 10197, + "src": "6085:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10174, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6085:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10179, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10177, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6134:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10176, + "name": "_calcUnprocessedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10169, + "src": "6112:21:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6112:34:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6085:61:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10180, + "name": "processedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10020, + "src": "6153:14:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10182, + "indexExpression": { + "argumentTypes": null, + "id": 10181, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6168:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6153:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10183, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "6183:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6153:43:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10185, + "nodeType": "ExpressionStatement", + "src": "6153:43:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10186, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "6201:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10188, + "indexExpression": { + "argumentTypes": null, + "id": 10187, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6214:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6201:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10193, + "name": "unprocessedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10175, + "src": "6259:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10189, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "6229:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10191, + "indexExpression": { + "argumentTypes": null, + "id": 10190, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6242:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6229:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "6229:29:24", + "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": 10194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6229:47:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6201:75:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10196, + "nodeType": "ExpressionStatement", + "src": "6201:75:24" + } + ] + }, + "documentation": "@dev Claims funds for a user.\r\n@param _forAddress Address of ClaimsToken holder\r", + "id": 10198, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_claimFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10172, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10171, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 10198, + "src": "6050:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10170, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6050:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6049:21:24" + }, + "returnParameters": { + "id": 10173, + "nodeType": "ParameterList", + "parameters": [], + "src": "6080:0:24" + }, + "scope": 10228, + "src": "6029:252:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10226, + "nodeType": "Block", + "src": "6575:177:24", + "statements": [ + { + "assignments": [ + 10204 + ], + "declarations": [ + { + "constant": false, + "id": 10204, + "name": "withdrawableFunds", + "nodeType": "VariableDeclaration", + "scope": 10226, + "src": "6580:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6580:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10209, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10206, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6623:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6623:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 10205, + "name": "availableFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10128, + "src": "6608:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6608:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6580:54:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10210, + "name": "processedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10020, + "src": "6641:14:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10213, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10211, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6656:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6656:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6641:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10214, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "6670:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6641:42:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10216, + "nodeType": "ExpressionStatement", + "src": "6641:42:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10217, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "6688:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10220, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10218, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6701:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6701:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6688:24:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 10221, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6715:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6688:28:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10223, + "nodeType": "ExpressionStatement", + "src": "6688:28:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10224, + "name": "withdrawableFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10204, + "src": "6730:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10202, + "id": 10225, + "nodeType": "Return", + "src": "6723:24:24" + } + ] + }, + "documentation": "@dev Sets claimed but not yet withdrawn funds to 0,\r\nmarks total received funds as processed and\r\nreturns the withdrawable amount for a user.\r\n@return A uint256 representing the withdrawable funds\r", + "id": 10227, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_prepareWithdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10199, + "nodeType": "ParameterList", + "parameters": [], + "src": "6537:2:24" + }, + "returnParameters": { + "id": 10202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10201, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10227, + "src": "6564:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10200, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6564:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6563:9:24" + }, + "scope": 10228, + "src": "6512:240:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 10328, + "src": "2962:3793:24" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10229, + "name": "IClaimsToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10005, + "src": "6797:12:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IClaimsToken_$10005", + "typeString": "contract IClaimsToken" + } + }, + "id": 10230, + "nodeType": "InheritanceSpecifier", + "src": "6797:12:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10231, + "name": "ClaimsToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10228, + "src": "6811:11:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ClaimsToken_$10228", + "typeString": "contract ClaimsToken" + } + }, + "id": 10232, + "nodeType": "InheritanceSpecifier", + "src": "6811:11:24" + } + ], + "contractDependencies": [ + 9650, + 9719, + 9977, + 10005, + 10228 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 10327, + "linearizedBaseContracts": [ + 10327, + 10228, + 9977, + 9650, + 9719, + 10005 + ], + "name": "ClaimsTokenERC20Extension", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 10234, + "name": "fundsToken", + "nodeType": "VariableDeclaration", + "scope": 10327, + "src": "6880:24:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 10233, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "6880:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 10247, + "nodeType": "Block", + "src": "6937:81:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 10242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10237, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6950:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6950:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10240, + "name": "fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10234, + "src": "6972:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + ], + "id": 10239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6964:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6964:19:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6950:33:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "554e415554484f52495a45445f53454e444552", + "id": 10243, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6985:21:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", + "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" + }, + "value": "UNAUTHORIZED_SENDER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", + "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" + } + ], + "id": 10236, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "6942:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 10244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6942:65:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10245, + "nodeType": "ExpressionStatement", + "src": "6942:65:24" + }, + { + "id": 10246, + "nodeType": "PlaceholderStatement", + "src": "7012:1:24" + } + ] + }, + "documentation": null, + "id": 10248, + "name": "onlyFundsToken", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 10235, + "nodeType": "ParameterList", + "parameters": [], + "src": "6934:2:24" + }, + "src": "6910:108:24", + "visibility": "internal" + }, + { + "body": { + "id": 10272, + "nodeType": "Block", + "src": "7106:84:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 10265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10260, + "name": "_fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10252, + "src": "7127:11:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + ], + "id": 10259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7119:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7119:20:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 10263, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7151:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 10262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7143:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10264, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7143:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7119:34:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10258, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "7111:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 10266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7111:43:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10267, + "nodeType": "ExpressionStatement", + "src": "7111:43:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10268, + "name": "fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10234, + "src": "7161:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10269, + "name": "_fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10252, + "src": "7174:11:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "src": "7161:24:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 10271, + "nodeType": "ExpressionStatement", + "src": "7161:24:24" + } + ] + }, + "documentation": null, + "id": 10273, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 10255, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10250, + "src": "7096:6:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 10256, + "modifierName": { + "argumentTypes": null, + "id": 10254, + "name": "ClaimsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10228, + "src": "7084:11:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ClaimsToken_$10228_$", + "typeString": "type(contract ClaimsToken)" + } + }, + "nodeType": "ModifierInvocation", + "src": "7084:19:24" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10250, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 10273, + "src": "7035:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10249, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7035:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10252, + "name": "_fundsToken", + "nodeType": "VariableDeclaration", + "scope": 10273, + "src": "7051:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 10251, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "7051:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7034:36:24" + }, + "returnParameters": { + "id": 10257, + "nodeType": "ParameterList", + "parameters": [], + "src": "7106:0:24" + }, + "scope": 10327, + "src": "7023:167:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 10299, + "nodeType": "Block", + "src": "7303:175:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10277, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "7316:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7316:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 10279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7329:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7316:14:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 10281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7332:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 10276, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7308:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 10282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7308:27:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10283, + "nodeType": "ExpressionStatement", + "src": "7308:27:24" + }, + { + "assignments": [ + 10285 + ], + "declarations": [ + { + "constant": false, + "id": 10285, + "name": "withdrawableFunds", + "nodeType": "VariableDeclaration", + "scope": 10299, + "src": "7342:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10284, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7342:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10288, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 10286, + "name": "_prepareWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10227, + "src": "7370:16:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () returns (uint256)" + } + }, + "id": 10287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7370:18:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7342:46:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10292, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "7423:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7423:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 10294, + "name": "withdrawableFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10285, + "src": "7435:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10290, + "name": "fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10234, + "src": "7403:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 10291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9661, + "src": "7403:19:24", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 10295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7403:50:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5452414e534645525f4641494c4544", + "id": 10296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7455:17:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", + "typeString": "literal_string \"TRANSFER_FAILED\"" + }, + "value": "TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", + "typeString": "literal_string \"TRANSFER_FAILED\"" + } + ], + "id": 10289, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7395:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 10297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7395:78:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10298, + "nodeType": "ExpressionStatement", + "src": "7395:78:24" + } + ] + }, + "documentation": "@dev Withdraws available funds for user.\r", + "id": 10300, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10274, + "nodeType": "ParameterList", + "parameters": [], + "src": "7275:2:24" + }, + "returnParameters": { + "id": 10275, + "nodeType": "ParameterList", + "parameters": [], + "src": "7303:0:24" + }, + "scope": 10327, + "src": "7253:225:24", + "stateMutability": "payable", + "superFunction": 9992, + "visibility": "external" + }, + { + "body": { + "id": 10325, + "nodeType": "Block", + "src": "7777:100:24", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10311, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7786:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 10312, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7795:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7786:10:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 10324, + "nodeType": "IfStatement", + "src": "7782:91:24", + "trueBody": { + "id": 10323, + "nodeType": "Block", + "src": "7798:75:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10315, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7819:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10314, + "name": "_registerFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10141, + "src": "7804:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 10316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7804:22:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10317, + "nodeType": "ExpressionStatement", + "src": "7804:22:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10319, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10302, + "src": "7851:7:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10320, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7860:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10318, + "name": "FundsReceived", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9983, + "src": "7837:13:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 10321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7837:30:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10322, + "nodeType": "EmitStatement", + "src": "7832:35:24" + } + ] + } + } + ] + }, + "documentation": "@dev For ERC223.\r\nCalls _registerFunds(), whereby total received funds (cumulative) gets updated.\r\n@param _sender Sender of tokens\r\n@param _value Amount of tokens\r", + "id": 10326, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [], + "id": 10309, + "modifierName": { + "argumentTypes": null, + "id": 10308, + "name": "onlyFundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10248, + "src": "7758:14:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7758:16:24" + } + ], + "name": "tokenFallback", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10302, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 10326, + "src": "7698:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10301, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7698:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10304, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10326, + "src": "7715:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10303, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7715:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10306, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10326, + "src": "7731:12:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 10305, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7731:5:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7697:47:24" + }, + "returnParameters": { + "id": 10310, + "nodeType": "ParameterList", + "parameters": [], + "src": "7777:0:24" + }, + "scope": 10327, + "src": "7675:202:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 10328, + "src": "6759:1121:24" + } + ], + "src": "0:7882:24" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol", + "exportedSymbols": { + "ClaimsToken": [ + 10228 + ], + "ClaimsTokenERC20Extension": [ + 10327 + ], + "ERC20Detailed": [ + 9977 + ], + "IClaimsToken": [ + 10005 + ] + }, + "id": 10328, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9919, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:24" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "../oz/SafeMath.sol", + "id": 9920, + "nodeType": "ImportDirective", + "scope": 10328, + "sourceUnit": 9858, + "src": "36:28:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", + "file": "../oz/IERC20.sol", + "id": 9921, + "nodeType": "ImportDirective", + "scope": 10328, + "sourceUnit": 9720, + "src": "66:26:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol", + "file": "../oz/ERC20.sol", + "id": 9922, + "nodeType": "ImportDirective", + "scope": 10328, + "sourceUnit": 9651, + "src": "94:25:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9923, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "212:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 9924, + "nodeType": "InheritanceSpecifier", + "src": "212:6:24" + } + ], + "contractDependencies": [ + 9719 + ], + "contractKind": "contract", + "documentation": "@dev Optional functions from the ERC20 standard.\r", + "fullyImplemented": false, + "id": 9977, + "linearizedBaseContracts": [ + 9977, + 9719 + ], + "name": "ERC20Detailed", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 9926, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 9977, + "src": "226:20:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 9925, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "226:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 9928, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 9977, + "src": "253:22:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 9927, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "253:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 9930, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 9977, + "src": "282:23:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9929, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "282:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 9951, + "nodeType": "Block", + "src": "581:89:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9939, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9926, + "src": "592:5:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9940, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9932, + "src": "600:4:24", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "592:12:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 9942, + "nodeType": "ExpressionStatement", + "src": "592:12:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 9945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9943, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9928, + "src": "615:7:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9944, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9934, + "src": "625:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "615:16:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 9946, + "nodeType": "ExpressionStatement", + "src": "615:16:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 9949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9947, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9930, + "src": "642:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9948, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9936, + "src": "654:8:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "642:20:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 9950, + "nodeType": "ExpressionStatement", + "src": "642:20:24" + } + ] + }, + "documentation": "@dev Sets the values for `name`, `symbol`, and `decimals`. All three of\r\nthese values are immutable: they can only be set once during\r\nconstruction.\r", + "id": 9952, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9937, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9932, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 9952, + "src": "516:18:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9931, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "516:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9934, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 9952, + "src": "536:20:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9933, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "536:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9936, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 9952, + "src": "558:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9935, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "558:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "515:58:24" + }, + "returnParameters": { + "id": 9938, + "nodeType": "ParameterList", + "parameters": [], + "src": "581:0:24" + }, + "scope": 9977, + "src": "503:167:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9959, + "nodeType": "Block", + "src": "792:31:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9957, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9926, + "src": "810:5:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 9956, + "id": 9958, + "nodeType": "Return", + "src": "803:12:24" + } + ] + }, + "documentation": "@dev Returns the name of the token.\r", + "id": 9960, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9953, + "nodeType": "ParameterList", + "parameters": [], + "src": "753:2:24" + }, + "returnParameters": { + "id": 9956, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9955, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9960, + "src": "777:13:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9954, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "777:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "776:15:24" + }, + "scope": 9977, + "src": "740:83:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9967, + "nodeType": "Block", + "src": "996:33:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9965, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9928, + "src": "1014:7:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 9964, + "id": 9966, + "nodeType": "Return", + "src": "1007:14:24" + } + ] + }, + "documentation": "@dev Returns the symbol of the token, usually a shorter version of the\r\nname.\r", + "id": 9968, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9961, + "nodeType": "ParameterList", + "parameters": [], + "src": "957:2:24" + }, + "returnParameters": { + "id": 9964, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9963, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9968, + "src": "981:13:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9962, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "981:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "980:15:24" + }, + "scope": 9977, + "src": "942:87:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9975, + "nodeType": "Block", + "src": "1640:35:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9973, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9930, + "src": "1658:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 9972, + "id": 9974, + "nodeType": "Return", + "src": "1651:16:24" + } + ] + }, + "documentation": "@dev Returns the number of decimals used to get its user representation.\r\nFor example, if `decimals` equals `2`, a balance of `505` tokens should\r\nbe displayed to a user as `5,05` (`505 / 10 ** 2`).\r\n\n * Tokens usually opt for a value of 18, imitating the relationship between\r\nEther and Wei.\r\n\n * NOTE: This information is only used for _display_ purposes: it in\r\nno way affects any of the arithmetic of the contract, including\r\n{IERC20-balanceOf} and {IERC20-transfer}.\r", + "id": 9976, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9969, + "nodeType": "ParameterList", + "parameters": [], + "src": "1609:2:24" + }, + "returnParameters": { + "id": 9972, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9971, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9976, + "src": "1633:5:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9970, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1633:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1632:7:24" + }, + "scope": 9977, + "src": "1592:83:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 10328, + "src": "186:1492:24" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 10005, + "linearizedBaseContracts": [ + 10005 + ], + "name": "IClaimsToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": "@dev This event emits when funds to be deposited are sent to the token contract\r\n@param from contains the address of the sender of the received funds\r\n@param fundsReceived contains the amount of funds received for distribution\r", + "id": 9983, + "name": "FundsReceived", + "nodeType": "EventDefinition", + "parameters": { + "id": 9982, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9979, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 9983, + "src": "1983:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9978, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1983:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9981, + "indexed": false, + "name": "fundsReceived", + "nodeType": "VariableDeclaration", + "scope": 9983, + "src": "2005:21:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2005:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1982:45:24" + }, + "src": "1963:65:24" + }, + { + "anonymous": false, + "documentation": "@dev This event emits when distributed funds are withdrawn by a token holder.\r\n@param by contains the address of the receiver of funds\r\n@param fundsWithdrawn contains the amount of funds that were withdrawn\r", + "id": 9989, + "name": "FundsWithdrawn", + "nodeType": "EventDefinition", + "parameters": { + "id": 9988, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9985, + "indexed": true, + "name": "by", + "nodeType": "VariableDeclaration", + "scope": 9989, + "src": "2286:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9984, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2286:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9987, + "indexed": false, + "name": "fundsWithdrawn", + "nodeType": "VariableDeclaration", + "scope": 9989, + "src": "2306:22:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2306:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2285:44:24" + }, + "src": "2265:65:24" + }, + { + "body": null, + "documentation": "@dev Withdraws available funds for user.\r", + "id": 9992, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdrawFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9990, + "nodeType": "ParameterList", + "parameters": [], + "src": "2415:2:24" + }, + "returnParameters": { + "id": 9991, + "nodeType": "ParameterList", + "parameters": [], + "src": "2434:0:24" + }, + "scope": 10005, + "src": "2393:42:24", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", + "id": 9999, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "availableFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9994, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 9999, + "src": "2691:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2691:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2690:21:24" + }, + "returnParameters": { + "id": 9998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9997, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9999, + "src": "2735:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9996, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2735:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2734:9:24" + }, + "scope": 10005, + "src": "2667:77:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", + "id": 10004, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalReceivedFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10000, + "nodeType": "ParameterList", + "parameters": [], + "src": "2920:2:24" + }, + "returnParameters": { + "id": 10003, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10002, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10004, + "src": "2946:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2946:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2945:9:24" + }, + "scope": 10005, + "src": "2893:62:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 10328, + "src": "1682:1276:24" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10006, + "name": "IClaimsToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10005, + "src": "2986:12:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IClaimsToken_$10005", + "typeString": "contract IClaimsToken" + } + }, + "id": 10007, + "nodeType": "InheritanceSpecifier", + "src": "2986:12:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10008, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9650, + "src": "3000:5:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9650", + "typeString": "contract ERC20" + } + }, + "id": 10009, + "nodeType": "InheritanceSpecifier", + "src": "3000:5:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10010, + "name": "ERC20Detailed", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9977, + "src": "3007:13:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$9977", + "typeString": "contract ERC20Detailed" + } + }, + "id": 10011, + "nodeType": "InheritanceSpecifier", + "src": "3007:13:24" + } + ], + "contractDependencies": [ + 9650, + 9719, + 9977, + 10005 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 10228, + "linearizedBaseContracts": [ + 10228, + 9977, + 9650, + 9719, + 10005 + ], + "name": "ClaimsToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 10014, + "libraryName": { + "contractScope": null, + "id": 10012, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "3033:8:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "3027:27:24", + "typeName": { + "id": 10013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3046:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 10016, + "name": "receivedFunds", + "nodeType": "VariableDeclaration", + "scope": 10228, + "src": "3107:28:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10015, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3107:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 10020, + "name": "processedFunds", + "nodeType": "VariableDeclaration", + "scope": 10228, + "src": "3226:50:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 10019, + "keyType": { + "id": 10017, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3235:7:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3226:28:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 10018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3246:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 10024, + "name": "claimedFunds", + "nodeType": "VariableDeclaration", + "scope": 10228, + "src": "3332:48:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 10023, + "keyType": { + "id": 10021, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3341:7:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3332:28:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 10022, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3352:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 10050, + "nodeType": "Block", + "src": "3471:76:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10035, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10026, + "src": "3482:6:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10043, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130303030", + "id": 10036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3490:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "value": "10000" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10041, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 10037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3499:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "3138", + "id": 10039, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3513:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + } + ], + "id": 10038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3505:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 10040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3505:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3499:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10042, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3498:19:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3490:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10034, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9539, + "src": "3476:5:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 10044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3476:42:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10045, + "nodeType": "ExpressionStatement", + "src": "3476:42:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10046, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "3525:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 10047, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3541:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3525:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10049, + "nodeType": "ExpressionStatement", + "src": "3525:17:24" + } + ] + }, + "documentation": null, + "id": 10051, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "hexValue": "436c61696d73546f6b656e", + "id": 10029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3443:13:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25771c0ba9a97de4408886fe552885a1751acfa735dfd2ef9c66e7b9e8871e71", + "typeString": "literal_string \"ClaimsToken\"" + }, + "value": "ClaimsToken" + }, + { + "argumentTypes": null, + "hexValue": "435354", + "id": 10030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3458:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0626086d51c299e905c42b7a28a0add92109e49b12cb2bd2531769201453ab94", + "typeString": "literal_string \"CST\"" + }, + "value": "CST" + }, + { + "argumentTypes": null, + "hexValue": "3138", + "id": 10031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3465:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + } + ], + "id": 10032, + "modifierName": { + "argumentTypes": null, + "id": 10028, + "name": "ERC20Detailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9977, + "src": "3429:13:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$9977_$", + "typeString": "type(contract ERC20Detailed)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3429:39:24" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10026, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 10051, + "src": "3400:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10025, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3400:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3399:16:24" + }, + "returnParameters": { + "id": 10033, + "nodeType": "ParameterList", + "parameters": [], + "src": "3471:0:24" + }, + "scope": 10228, + "src": "3388:159:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 10075, + "nodeType": "Block", + "src": "3898:95:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10061, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3915:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3915:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 10060, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "3903:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3903:23:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10064, + "nodeType": "ExpressionStatement", + "src": "3903:23:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10066, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10053, + "src": "3943:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10065, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "3931:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3931:16:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10068, + "nodeType": "ExpressionStatement", + "src": "3931:16:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10071, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10053, + "src": "3976:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10072, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10055, + "src": "3981:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10069, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10490, + "src": "3961:5:24", + "typeDescriptions": { + "typeIdentifier": "t_super$_ClaimsToken_$10228", + "typeString": "contract super ClaimsToken" + } + }, + "id": 10070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9343, + "src": "3961:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" + } + }, + "id": 10073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3961:27:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 10059, + "id": 10074, + "nodeType": "Return", + "src": "3954:34:24" + } + ] + }, + "documentation": "@dev Transfer token to a specified address.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _to The address to transfer to\r\n@param _value The amount to be transferred\r", + "id": 10076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10056, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10053, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 10076, + "src": "3839:11:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10052, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3839:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10055, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10076, + "src": "3852:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10054, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3852:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3838:29:24" + }, + "returnParameters": { + "id": 10059, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10058, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10076, + "src": "3890:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10057, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3890:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3889:6:24" + }, + "scope": 10228, + "src": "3821:172:24", + "stateMutability": "nonpayable", + "superFunction": 9343, + "visibility": "public" + }, + { + "body": { + "id": 10102, + "nodeType": "Block", + "src": "4485:101:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10088, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10078, + "src": "4502:5:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10087, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "4490:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4490:18:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10090, + "nodeType": "ExpressionStatement", + "src": "4490:18:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10092, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10080, + "src": "4525:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10091, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "4513:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4513:16:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10094, + "nodeType": "ExpressionStatement", + "src": "4513:16:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10097, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10078, + "src": "4562:5:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10098, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10080, + "src": "4569:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10099, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10082, + "src": "4574:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10095, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10490, + "src": "4543:5:24", + "typeDescriptions": { + "typeIdentifier": "t_super$_ClaimsToken_$10228", + "typeString": "contract super ClaimsToken" + } + }, + "id": 10096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 9397, + "src": "4543:18:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) returns (bool)" + } + }, + "id": 10100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4543:38:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 10086, + "id": 10101, + "nodeType": "Return", + "src": "4536:45:24" + } + ] + }, + "documentation": "@dev Transfer tokens from one address to another.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _from address The address which you want to send tokens from\r\n@param _to address The address which you want to transfer to\r\n@param _value uint256 the amount of tokens to be transferred\r", + "id": 10103, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10083, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10078, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4411:13:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4411:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10080, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4426:11:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10079, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4426:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10082, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4439:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10081, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4439:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4410:44:24" + }, + "returnParameters": { + "id": 10086, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10085, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4477:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10084, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4477:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4476:6:24" + }, + "scope": 10228, + "src": "4389:197:24", + "stateMutability": "nonpayable", + "superFunction": 9397, + "visibility": "public" + }, + { + "body": { + "id": 10110, + "nodeType": "Block", + "src": "4808:30:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10108, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "4820:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10107, + "id": 10109, + "nodeType": "Return", + "src": "4813:20:24" + } + ] + }, + "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", + "id": 10111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalReceivedFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10104, + "nodeType": "ParameterList", + "parameters": [], + "src": "4762:2:24" + }, + "returnParameters": { + "id": 10107, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10106, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10111, + "src": "4797:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10105, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4797:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4796:9:24" + }, + "scope": 10228, + "src": "4735:103:24", + "stateMutability": "view", + "superFunction": 10004, + "visibility": "external" + }, + { + "body": { + "id": 10127, + "nodeType": "Block", + "src": "5156:82:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10122, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "5207:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10124, + "indexExpression": { + "argumentTypes": null, + "id": 10123, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10113, + "src": "5220:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5207:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10119, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10113, + "src": "5190:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10118, + "name": "_calcUnprocessedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10169, + "src": "5168:21:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5168:34:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "5168:38:24", + "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": 10125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5168:65:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10117, + "id": 10126, + "nodeType": "Return", + "src": "5161:72:24" + } + ] + }, + "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", + "id": 10128, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "availableFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10114, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10113, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 10128, + "src": "5094:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5094:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5093:21:24" + }, + "returnParameters": { + "id": 10117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10116, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10128, + "src": "5145:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10115, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5145:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5144:9:24" + }, + "scope": 10228, + "src": "5070:168:24", + "stateMutability": "view", + "superFunction": 9999, + "visibility": "public" + }, + { + "body": { + "id": 10140, + "nodeType": "Block", + "src": "5477:51:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10133, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "5482:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10136, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10130, + "src": "5516:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10134, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "5498:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "5498:17:24", + "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": 10137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5498:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5482:41:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10139, + "nodeType": "ExpressionStatement", + "src": "5482:41:24" + } + ] + }, + "documentation": "@dev Increments cumulative received funds by new received funds.\r\nCalled when ClaimsToken receives funds.\r\n@param _value Amount of tokens / Ether received\r", + "id": 10141, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10130, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10141, + "src": "5447:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10129, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5447:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5446:16:24" + }, + "returnParameters": { + "id": 10132, + "nodeType": "ParameterList", + "parameters": [], + "src": "5477:0:24" + }, + "scope": 10228, + "src": "5423:105:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10168, + "nodeType": "Block", + "src": "5765:158:24", + "statements": [ + { + "assignments": [ + 10149 + ], + "declarations": [ + { + "constant": false, + "id": 10149, + "name": "newReceivedFunds", + "nodeType": "VariableDeclaration", + "scope": 10168, + "src": "5770:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10148, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5770:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10156, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10152, + "name": "processedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10020, + "src": "5815:14:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10154, + "indexExpression": { + "argumentTypes": null, + "id": 10153, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10143, + "src": "5830:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5815:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10150, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "5797:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "5797:17:24", + "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": 10155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5797:46:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5770:73:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 10164, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9296, + "src": "5904:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 10165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5904:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10161, + "name": "newReceivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10149, + "src": "5882:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10158, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10143, + "src": "5865:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10157, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9308, + "src": "5855:9:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5855:22:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 9784, + "src": "5855:26:24", + "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": 10162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5855:44:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9808, + "src": "5855:48:24", + "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": 10166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5855:63:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10147, + "id": 10167, + "nodeType": "Return", + "src": "5848:70:24" + } + ] + }, + "documentation": "@dev Returns payout for a user which can be withdrawn or claimed.\r\n@param _forAddress Address of ClaimsToken holder\r", + "id": 10169, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_calcUnprocessedFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10143, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 10169, + "src": "5701:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5701:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5700:21:24" + }, + "returnParameters": { + "id": 10147, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10146, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10169, + "src": "5754:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5754:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5753:9:24" + }, + "scope": 10228, + "src": "5670:253:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10197, + "nodeType": "Block", + "src": "6080:201:24", + "statements": [ + { + "assignments": [ + 10175 + ], + "declarations": [ + { + "constant": false, + "id": 10175, + "name": "unprocessedFunds", + "nodeType": "VariableDeclaration", + "scope": 10197, + "src": "6085:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10174, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6085:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10179, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10177, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6134:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10176, + "name": "_calcUnprocessedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10169, + "src": "6112:21:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6112:34:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6085:61:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10180, + "name": "processedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10020, + "src": "6153:14:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10182, + "indexExpression": { + "argumentTypes": null, + "id": 10181, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6168:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6153:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10183, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "6183:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6153:43:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10185, + "nodeType": "ExpressionStatement", + "src": "6153:43:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10186, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "6201:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10188, + "indexExpression": { + "argumentTypes": null, + "id": 10187, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6214:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6201:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10193, + "name": "unprocessedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10175, + "src": "6259:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10189, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "6229:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10191, + "indexExpression": { + "argumentTypes": null, + "id": 10190, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6242:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6229:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "6229:29:24", + "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": 10194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6229:47:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6201:75:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10196, + "nodeType": "ExpressionStatement", + "src": "6201:75:24" + } + ] + }, + "documentation": "@dev Claims funds for a user.\r\n@param _forAddress Address of ClaimsToken holder\r", + "id": 10198, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_claimFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10172, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10171, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 10198, + "src": "6050:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10170, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6050:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6049:21:24" + }, + "returnParameters": { + "id": 10173, + "nodeType": "ParameterList", + "parameters": [], + "src": "6080:0:24" + }, + "scope": 10228, + "src": "6029:252:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10226, + "nodeType": "Block", + "src": "6575:177:24", + "statements": [ + { + "assignments": [ + 10204 + ], + "declarations": [ + { + "constant": false, + "id": 10204, + "name": "withdrawableFunds", + "nodeType": "VariableDeclaration", + "scope": 10226, + "src": "6580:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6580:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10209, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10206, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6623:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6623:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 10205, + "name": "availableFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10128, + "src": "6608:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6608:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6580:54:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10210, + "name": "processedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10020, + "src": "6641:14:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10213, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10211, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6656:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6656:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6641:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10214, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "6670:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6641:42:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10216, + "nodeType": "ExpressionStatement", + "src": "6641:42:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10217, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "6688:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10220, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10218, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6701:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6701:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6688:24:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 10221, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6715:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6688:28:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10223, + "nodeType": "ExpressionStatement", + "src": "6688:28:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10224, + "name": "withdrawableFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10204, + "src": "6730:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10202, + "id": 10225, + "nodeType": "Return", + "src": "6723:24:24" + } + ] + }, + "documentation": "@dev Sets claimed but not yet withdrawn funds to 0,\r\nmarks total received funds as processed and\r\nreturns the withdrawable amount for a user.\r\n@return A uint256 representing the withdrawable funds\r", + "id": 10227, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_prepareWithdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10199, + "nodeType": "ParameterList", + "parameters": [], + "src": "6537:2:24" + }, + "returnParameters": { + "id": 10202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10201, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10227, + "src": "6564:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10200, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6564:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6563:9:24" + }, + "scope": 10228, + "src": "6512:240:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 10328, + "src": "2962:3793:24" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10229, + "name": "IClaimsToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10005, + "src": "6797:12:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IClaimsToken_$10005", + "typeString": "contract IClaimsToken" + } + }, + "id": 10230, + "nodeType": "InheritanceSpecifier", + "src": "6797:12:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10231, + "name": "ClaimsToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10228, + "src": "6811:11:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ClaimsToken_$10228", + "typeString": "contract ClaimsToken" + } + }, + "id": 10232, + "nodeType": "InheritanceSpecifier", + "src": "6811:11:24" + } + ], + "contractDependencies": [ + 9650, + 9719, + 9977, + 10005, + 10228 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 10327, + "linearizedBaseContracts": [ + 10327, + 10228, + 9977, + 9650, + 9719, + 10005 + ], + "name": "ClaimsTokenERC20Extension", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 10234, + "name": "fundsToken", + "nodeType": "VariableDeclaration", + "scope": 10327, + "src": "6880:24:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 10233, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "6880:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 10247, + "nodeType": "Block", + "src": "6937:81:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 10242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10237, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6950:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6950:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10240, + "name": "fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10234, + "src": "6972:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + ], + "id": 10239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6964:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6964:19:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6950:33:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "554e415554484f52495a45445f53454e444552", + "id": 10243, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6985:21:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", + "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" + }, + "value": "UNAUTHORIZED_SENDER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", + "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" + } + ], + "id": 10236, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "6942:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 10244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6942:65:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10245, + "nodeType": "ExpressionStatement", + "src": "6942:65:24" + }, + { + "id": 10246, + "nodeType": "PlaceholderStatement", + "src": "7012:1:24" + } + ] + }, + "documentation": null, + "id": 10248, + "name": "onlyFundsToken", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 10235, + "nodeType": "ParameterList", + "parameters": [], + "src": "6934:2:24" + }, + "src": "6910:108:24", + "visibility": "internal" + }, + { + "body": { + "id": 10272, + "nodeType": "Block", + "src": "7106:84:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 10265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10260, + "name": "_fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10252, + "src": "7127:11:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + ], + "id": 10259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7119:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7119:20:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 10263, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7151:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 10262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7143:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10264, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7143:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7119:34:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10258, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "7111:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 10266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7111:43:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10267, + "nodeType": "ExpressionStatement", + "src": "7111:43:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10268, + "name": "fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10234, + "src": "7161:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10269, + "name": "_fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10252, + "src": "7174:11:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "src": "7161:24:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 10271, + "nodeType": "ExpressionStatement", + "src": "7161:24:24" + } + ] + }, + "documentation": null, + "id": 10273, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 10255, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10250, + "src": "7096:6:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 10256, + "modifierName": { + "argumentTypes": null, + "id": 10254, + "name": "ClaimsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10228, + "src": "7084:11:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ClaimsToken_$10228_$", + "typeString": "type(contract ClaimsToken)" + } + }, + "nodeType": "ModifierInvocation", + "src": "7084:19:24" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10250, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 10273, + "src": "7035:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10249, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7035:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10252, + "name": "_fundsToken", + "nodeType": "VariableDeclaration", + "scope": 10273, + "src": "7051:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 10251, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "7051:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7034:36:24" + }, + "returnParameters": { + "id": 10257, + "nodeType": "ParameterList", + "parameters": [], + "src": "7106:0:24" + }, + "scope": 10327, + "src": "7023:167:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 10299, + "nodeType": "Block", + "src": "7303:175:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10277, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "7316:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7316:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 10279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7329:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7316:14:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 10281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7332:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 10276, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7308:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 10282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7308:27:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10283, + "nodeType": "ExpressionStatement", + "src": "7308:27:24" + }, + { + "assignments": [ + 10285 + ], + "declarations": [ + { + "constant": false, + "id": 10285, + "name": "withdrawableFunds", + "nodeType": "VariableDeclaration", + "scope": 10299, + "src": "7342:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10284, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7342:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10288, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 10286, + "name": "_prepareWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10227, + "src": "7370:16:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () returns (uint256)" + } + }, + "id": 10287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7370:18:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7342:46:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10292, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "7423:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7423:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 10294, + "name": "withdrawableFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10285, + "src": "7435:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10290, + "name": "fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10234, + "src": "7403:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 10291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9661, + "src": "7403:19:24", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 10295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7403:50:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5452414e534645525f4641494c4544", + "id": 10296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7455:17:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", + "typeString": "literal_string \"TRANSFER_FAILED\"" + }, + "value": "TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", + "typeString": "literal_string \"TRANSFER_FAILED\"" + } + ], + "id": 10289, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7395:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 10297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7395:78:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10298, + "nodeType": "ExpressionStatement", + "src": "7395:78:24" + } + ] + }, + "documentation": "@dev Withdraws available funds for user.\r", + "id": 10300, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10274, + "nodeType": "ParameterList", + "parameters": [], + "src": "7275:2:24" + }, + "returnParameters": { + "id": 10275, + "nodeType": "ParameterList", + "parameters": [], + "src": "7303:0:24" + }, + "scope": 10327, + "src": "7253:225:24", + "stateMutability": "payable", + "superFunction": 9992, + "visibility": "external" + }, + { + "body": { + "id": 10325, + "nodeType": "Block", + "src": "7777:100:24", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10311, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7786:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 10312, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7795:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7786:10:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 10324, + "nodeType": "IfStatement", + "src": "7782:91:24", + "trueBody": { + "id": 10323, + "nodeType": "Block", + "src": "7798:75:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10315, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7819:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10314, + "name": "_registerFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10141, + "src": "7804:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 10316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7804:22:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10317, + "nodeType": "ExpressionStatement", + "src": "7804:22:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10319, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10302, + "src": "7851:7:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10320, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7860:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10318, + "name": "FundsReceived", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9983, + "src": "7837:13:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 10321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7837:30:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10322, + "nodeType": "EmitStatement", + "src": "7832:35:24" + } + ] + } + } + ] + }, + "documentation": "@dev For ERC223.\r\nCalls _registerFunds(), whereby total received funds (cumulative) gets updated.\r\n@param _sender Sender of tokens\r\n@param _value Amount of tokens\r", + "id": 10326, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [], + "id": 10309, + "modifierName": { + "argumentTypes": null, + "id": 10308, + "name": "onlyFundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10248, + "src": "7758:14:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7758:16:24" + } + ], + "name": "tokenFallback", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10302, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 10326, + "src": "7698:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10301, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7698:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10304, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10326, + "src": "7715:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10303, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7715:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10306, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10326, + "src": "7731:12:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 10305, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7731:5:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7697:47:24" + }, + "returnParameters": { + "id": 10310, + "nodeType": "ParameterList", + "parameters": [], + "src": "7777:0:24" + }, + "scope": 10327, + "src": "7675:202:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 10328, + "src": "6759:1121:24" + } + ], + "src": "0:7882:24" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:20.267Z", + "devdoc": { + "methods": { + "allowance(address,address)": { + "details": "Function to check the amount of tokens that an owner allowed to a spender.\r", + "params": { + "owner": "address The address which owns the funds.\r", + "spender": "address The address which will spend the funds.\r" + }, + "return": "A uint256 specifying the amount of tokens still available for the spender.\r" + }, + "approve(address,uint256)": { + "details": "Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\r Beware that changing an allowance with this method brings the risk that someone may use both the old\r and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\r race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\r https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\r", + "params": { + "spender": "The address which will spend the funds.\r", + "value": "The amount of tokens to be spent.\r" + } + }, + "availableFunds(address)": { + "details": "Returns the amount of funds a given address is able to withdraw currently.\r", + "params": { + "_forAddress": "Address of ClaimsToken holder\r" + }, + "return": "A uint256 representing the available funds for a given account\r" + }, + "balanceOf(address)": { + "details": "Gets the balance of the specified address.\r", + "params": { + "owner": "The address to query the balance of.\r" + }, + "return": "An uint256 representing the amount owned by the passed address.\r" + }, + "decimals()": { + "details": "Returns the number of decimals used to get its user representation.\r For example, if `decimals` equals `2`, a balance of `505` tokens should\r be displayed to a user as `5,05` (`505 / 10 ** 2`).\r * Tokens usually opt for a value of 18, imitating the relationship between\r Ether and Wei.\r * NOTE: This information is only used for _display_ purposes: it in\r no way affects any of the arithmetic of the contract, including\r {IERC20-balanceOf} and {IERC20-transfer}.\r" + }, + "decreaseAllowance(address,uint256)": { + "details": "Decrease the amount of tokens that an owner allowed to a spender.\r approve should be called when allowed_[_spender] == 0. To decrement\r allowed value is better to use this function to avoid 2 calls (and wait until\r the first transaction is mined)\r From MonolithDAO Token.sol\r Emits an Approval event.\r", + "params": { + "spender": "The address which will spend the funds.\r", + "subtractedValue": "The amount of tokens to decrease the allowance by.\r" + } + }, + "increaseAllowance(address,uint256)": { + "details": "Increase the amount of tokens that an owner allowed to a spender.\r approve should be called when allowed_[_spender] == 0. To increment\r allowed value is better to use this function to avoid 2 calls (and wait until\r the first transaction is mined)\r From MonolithDAO Token.sol\r Emits an Approval event.\r", + "params": { + "addedValue": "The amount of tokens to increase the allowance by.\r", + "spender": "The address which will spend the funds.\r" + } + }, + "name()": { + "details": "Returns the name of the token.\r" + }, + "symbol()": { + "details": "Returns the symbol of the token, usually a shorter version of the\r name.\r" + }, + "totalReceivedFunds()": { + "details": "Get cumulative funds received by ClaimsToken.\r", + "return": "A uint256 representing the total funds received by ClaimsToken\r" + }, + "totalSupply()": { + "details": "Total number of tokens in existence\r" + }, + "transfer(address,uint256)": { + "details": "Transfer token to a specified address.\r Claims funds for both parties, whereby the amount of tokens withdrawn\r is inherited by the new token owner.\r", + "params": { + "_to": "The address to transfer to\r", + "_value": "The amount to be transferred\r" + } + }, + "transferFrom(address,address,uint256)": { + "details": "Transfer tokens from one address to another.\r Claims funds for both parties, whereby the amount of tokens withdrawn\r is inherited by the new token owner.\r", + "params": { + "_from": "address The address which you want to send tokens from\r", + "_to": "address The address which you want to transfer to\r", + "_value": "uint256 the amount of tokens to be transferred\r" + } + }, + "withdrawFunds()": { + "details": "Withdraws available funds for user.\r" + } + } + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/contracts/ClaimsTokenERC20Extension.json b/src/contracts/ClaimsTokenERC20Extension.json new file mode 100644 index 0000000..146da75 --- /dev/null +++ b/src/contracts/ClaimsTokenERC20Extension.json @@ -0,0 +1,10976 @@ +{ + "contractName": "ClaimsTokenERC20Extension", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalReceivedFunds", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "processedFunds", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "claimedFunds", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_forAddress", + "type": "address" + } + ], + "name": "availableFunds", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "fundsToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "receivedFunds", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_fundsToken", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": false, + "name": "fundsReceived", + "type": "uint256" + } + ], + "name": "FundsReceived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "by", + "type": "address" + }, + { + "indexed": false, + "name": "fundsWithdrawn", + "type": "uint256" + } + ], + "name": "FundsWithdrawn", + "type": "event" + }, + { + "constant": false, + "inputs": [], + "name": "withdrawFunds", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + }, + { + "name": "", + "type": "bytes" + } + ], + "name": "tokenFallback", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalReceivedFunds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"withdrawFunds\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"processedFunds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimedFunds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_forAddress\",\"type\":\"address\"}],\"name\":\"availableFunds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"fundsToken\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"receivedFunds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"tokenFallback\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_fundsToken\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"fundsReceived\",\"type\":\"uint256\"}],\"name\":\"FundsReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"by\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"fundsWithdrawn\",\"type\":\"uint256\"}],\"name\":\"FundsWithdrawn\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"details\":\"Function to check the amount of tokens that an owner allowed to a spender.\\r\",\"params\":{\"owner\":\"address The address which owns the funds.\\r\",\"spender\":\"address The address which will spend the funds.\\r\"},\"return\":\"A uint256 specifying the amount of tokens still available for the spender.\\r\"},\"approve(address,uint256)\":{\"details\":\"Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\\r Beware that changing an allowance with this method brings the risk that someone may use both the old\\r and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\\r race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\\r https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\r\",\"params\":{\"spender\":\"The address which will spend the funds.\\r\",\"value\":\"The amount of tokens to be spent.\\r\"}},\"availableFunds(address)\":{\"details\":\"Returns the amount of funds a given address is able to withdraw currently.\\r\",\"params\":{\"_forAddress\":\"Address of ClaimsToken holder\\r\"},\"return\":\"A uint256 representing the available funds for a given account\\r\"},\"balanceOf(address)\":{\"details\":\"Gets the balance of the specified address.\\r\",\"params\":{\"owner\":\"The address to query the balance of.\\r\"},\"return\":\"An uint256 representing the amount owned by the passed address.\\r\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation.\\r For example, if `decimals` equals `2`, a balance of `505` tokens should\\r be displayed to a user as `5,05` (`505 / 10 ** 2`).\\r * Tokens usually opt for a value of 18, imitating the relationship between\\r Ether and Wei.\\r * NOTE: This information is only used for _display_ purposes: it in\\r no way affects any of the arithmetic of the contract, including\\r {IERC20-balanceOf} and {IERC20-transfer}.\\r\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Decrease the amount of tokens that an owner allowed to a spender.\\r approve should be called when allowed_[_spender] == 0. To decrement\\r allowed value is better to use this function to avoid 2 calls (and wait until\\r the first transaction is mined)\\r From MonolithDAO Token.sol\\r Emits an Approval event.\\r\",\"params\":{\"spender\":\"The address which will spend the funds.\\r\",\"subtractedValue\":\"The amount of tokens to decrease the allowance by.\\r\"}},\"increaseAllowance(address,uint256)\":{\"details\":\"Increase the amount of tokens that an owner allowed to a spender.\\r approve should be called when allowed_[_spender] == 0. To increment\\r allowed value is better to use this function to avoid 2 calls (and wait until\\r the first transaction is mined)\\r From MonolithDAO Token.sol\\r Emits an Approval event.\\r\",\"params\":{\"addedValue\":\"The amount of tokens to increase the allowance by.\\r\",\"spender\":\"The address which will spend the funds.\\r\"}},\"name()\":{\"details\":\"Returns the name of the token.\\r\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the\\r name.\\r\"},\"tokenFallback(address,uint256,bytes)\":{\"details\":\"For ERC223.\\r Calls _registerFunds(), whereby total received funds (cumulative) gets updated.\\r\",\"params\":{\"_sender\":\"Sender of tokens\\r\",\"_value\":\"Amount of tokens\\r\"}},\"totalReceivedFunds()\":{\"details\":\"Get cumulative funds received by ClaimsToken.\\r\",\"return\":\"A uint256 representing the total funds received by ClaimsToken\\r\"},\"totalSupply()\":{\"details\":\"Total number of tokens in existence\\r\"},\"transfer(address,uint256)\":{\"details\":\"Transfer token to a specified address.\\r Claims funds for both parties, whereby the amount of tokens withdrawn\\r is inherited by the new token owner.\\r\",\"params\":{\"_to\":\"The address to transfer to\\r\",\"_value\":\"The amount to be transferred\\r\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfer tokens from one address to another.\\r Claims funds for both parties, whereby the amount of tokens withdrawn\\r is inherited by the new token owner.\\r\",\"params\":{\"_from\":\"address The address which you want to send tokens from\\r\",\"_to\":\"address The address which you want to transfer to\\r\",\"_value\":\"uint256 the amount of tokens to be transferred\\r\"}},\"withdrawFunds()\":{\"details\":\"Withdraws available funds for user.\\r\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol\":\"ClaimsTokenERC20Extension\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol\":{\"keccak256\":\"0x83d94afc84930834148f8e00b2b2b624be5e2a910aeb9f508b6e3252648b304a\",\"urls\":[\"bzzr://074edfefdd7f638d059397b8b72e70605bb8eba1e750d8d512d86a5d8abaf966\",\"dweb:/ipfs/QmTPEnc9wjRf7jZ1xzh68sAjusFY5XHCTLpy79yCtCuWrA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol\":{\"keccak256\":\"0xd97866cc5c8b2c90cd57a126748771aad20762b3c708c30a4412ce17a9b79333\",\"urls\":[\"bzzr://0b6010f15f59b69c79df02987919092e5c44bd47602737eb54f4545237b5e636\",\"dweb:/ipfs/QmbPTbnWnvkWF8PRLgpmoXBr7UpJVyULmVRagrskTpkjyJ\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001157600080fd5b5060405162000ff738038062000ff7833981810160405260408110156200003757600080fd5b508051602091820151604080518082018252600b81527f436c61696d73546f6b656e000000000000000000000000000000000000000000818601908152825180840190935260038084527f4353540000000000000000000000000000000000000000000000000000000000968401969096528151949593948694929392601292620000c2926200021a565b508151620000d89060049060208501906200021a565b506005805460ff191660ff92909216919091179055506200010690508169021e19e0c9bab240000062000147565b5060006006556001600160a01b0381166200012057600080fd5b600980546001600160a01b0319166001600160a01b039290921691909117905550620002bf565b6001600160a01b0382166200015b57600080fd5b62000177816002546200020060201b62000b321790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620001aa91839062000b3262000200821b17901c565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000828201838110156200021357600080fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200025d57805160ff19168380011785556200028d565b828001600101855582156200028d579182015b828111156200028d57825182559160200191906001019062000270565b506200029b9291506200029f565b5090565b620002bc91905b808211156200029b5760008155600101620002a6565b90565b610d2880620002cf6000396000f3fe6080604052600436106101145760003560e01c8063468ce230116100a0578063a457c2d711610064578063a457c2d7146103ef578063a9059cbb14610428578063ab96cc4c14610461578063c0ee0b8a14610476578063dd62ed3e1461053e57610114565b8063468ce230146103105780635d16eb5c1461034357806363f04b151461037657806370a08231146103a757806395d89b41146103da57610114565b806323b872dd116100e757806323b872dd1461022c57806324600fc31461026f578063313ce5671461027957806339509351146102a45780633a4486de146102dd57610114565b806306fdde0314610119578063095ea7b3146101a357806318160ddd146101f0578063197aecb114610217575b600080fd5b34801561012557600080fd5b5061012e610579565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610168578181015183820152602001610150565b50505050905090810190601f1680156101955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101af57600080fd5b506101dc600480360360408110156101c657600080fd5b506001600160a01b03813516906020013561060f565b604080519115158252519081900360200190f35b3480156101fc57600080fd5b50610205610626565b60408051918252519081900360200190f35b34801561022357600080fd5b5061020561062c565b34801561023857600080fd5b506101dc6004803603606081101561024f57600080fd5b506001600160a01b03813581169160208101359091169060400135610632565b610277610659565b005b34801561028557600080fd5b5061028e610759565b6040805160ff9092168252519081900360200190f35b3480156102b057600080fd5b506101dc600480360360408110156102c757600080fd5b506001600160a01b038135169060200135610762565b3480156102e957600080fd5b506102056004803603602081101561030057600080fd5b50356001600160a01b03166107a3565b34801561031c57600080fd5b506102056004803603602081101561033357600080fd5b50356001600160a01b03166107b5565b34801561034f57600080fd5b506102056004803603602081101561036657600080fd5b50356001600160a01b03166107c7565b34801561038257600080fd5b5061038b6107f9565b604080516001600160a01b039092168252519081900360200190f35b3480156103b357600080fd5b50610205600480360360208110156103ca57600080fd5b50356001600160a01b0316610808565b3480156103e657600080fd5b5061012e610823565b3480156103fb57600080fd5b506101dc6004803603604081101561041257600080fd5b506001600160a01b038135169060200135610884565b34801561043457600080fd5b506101dc6004803603604081101561044b57600080fd5b506001600160a01b0381351690602001356108c0565b34801561046d57600080fd5b506102056108e5565b34801561048257600080fd5b506102776004803603606081101561049957600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156104c957600080fd5b8201836020820111156104db57600080fd5b803590602001918460018302840111640100000000831117156104fd57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506108eb945050505050565b34801561054a57600080fd5b506102056004803603604081101561056157600080fd5b506001600160a01b0381358116916020013516610994565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106055780601f106105da57610100808354040283529160200191610605565b820191906000526020600020905b8154815290600101906020018083116105e857829003601f168201915b5050505050905090565b600061061c3384846109bf565b5060015b92915050565b60025490565b60065490565b600061063d84610a47565b61064683610a47565b610651848484610aad565b949350505050565b3415610686576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6000610690610aff565b6009546040805163a9059cbb60e01b81523360048201526024810184905290519293506001600160a01b039091169163a9059cbb916044808201926020929091908290030181600087803b1580156106e757600080fd5b505af11580156106fb573d6000803e3d6000fd5b505050506040513d602081101561071157600080fd5b5051610756576040805162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b604482015290519081900360640190fd5b50565b60055460ff1690565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161061c91859061079e908663ffffffff610b3216565b6109bf565b60076020526000908152604090205481565b60086020526000908152604090205481565b6001600160a01b038116600090815260086020526040812054610620906107ed84610b44565b9063ffffffff610b3216565b6009546001600160a01b031681565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106055780601f106105da57610100808354040283529160200191610605565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161061c91859061079e908663ffffffff610ba416565b60006108cb33610a47565b6108d483610a47565b6108de8383610bb9565b9392505050565b60065481565b6009546001600160a01b03163314610940576040805162461bcd60e51b81526020600482015260136024820152722aa720aaaa2427a924ad22a22fa9a2a72222a960691b604482015290519081900360640190fd5b811561098f5761094f82610bc6565b6040805183815290516001600160a01b038516917f8e47b87b0ef542cdfa1659c551d88bad38aa7f452d2bbb349ab7530dfec8be8f919081900360200190a25b505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0382166109d257600080fd5b6001600160a01b0383166109e557600080fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000610a5282610b44565b6006546001600160a01b038416600090815260076020908152604080832093909355600890522054909150610a8d908263ffffffff610b3216565b6001600160a01b0390921660009081526008602052604090209190915550565b6000610aba848484610bdf565b6001600160a01b038416600090815260016020908152604080832033808552925290912054610af591869161079e908663ffffffff610ba416565b5060019392505050565b600080610b0b336107c7565b60065433600090815260076020908152604080832093909355600890529081205591505090565b6000828201838110156108de57600080fd5b6001600160a01b0381166000908152600760205260408120546006548291610b72919063ffffffff610ba416565b90506108de610b7f610626565b610b9883610b8c87610808565b9063ffffffff610caa16565b9063ffffffff610cd116565b600082821115610bb357600080fd5b50900390565b600061061c338484610bdf565b600654610bd9908263ffffffff610b3216565b60065550565b6001600160a01b038216610bf257600080fd5b6001600160a01b038316600090815260208190526040902054610c1b908263ffffffff610ba416565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610c50908263ffffffff610b3216565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082610cb957506000610620565b82820282848281610cc657fe5b04146108de57600080fd5b6000808211610cdf57600080fd5b6000828481610cea57fe5b0494935050505056fea265627a7a723058202d27ea649c0db74c87d7535afa712353cbcf5d8b81669d0e220df846307e2e5b64736f6c63430005090032", + "deployedBytecode": "0x6080604052600436106101145760003560e01c8063468ce230116100a0578063a457c2d711610064578063a457c2d7146103ef578063a9059cbb14610428578063ab96cc4c14610461578063c0ee0b8a14610476578063dd62ed3e1461053e57610114565b8063468ce230146103105780635d16eb5c1461034357806363f04b151461037657806370a08231146103a757806395d89b41146103da57610114565b806323b872dd116100e757806323b872dd1461022c57806324600fc31461026f578063313ce5671461027957806339509351146102a45780633a4486de146102dd57610114565b806306fdde0314610119578063095ea7b3146101a357806318160ddd146101f0578063197aecb114610217575b600080fd5b34801561012557600080fd5b5061012e610579565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610168578181015183820152602001610150565b50505050905090810190601f1680156101955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101af57600080fd5b506101dc600480360360408110156101c657600080fd5b506001600160a01b03813516906020013561060f565b604080519115158252519081900360200190f35b3480156101fc57600080fd5b50610205610626565b60408051918252519081900360200190f35b34801561022357600080fd5b5061020561062c565b34801561023857600080fd5b506101dc6004803603606081101561024f57600080fd5b506001600160a01b03813581169160208101359091169060400135610632565b610277610659565b005b34801561028557600080fd5b5061028e610759565b6040805160ff9092168252519081900360200190f35b3480156102b057600080fd5b506101dc600480360360408110156102c757600080fd5b506001600160a01b038135169060200135610762565b3480156102e957600080fd5b506102056004803603602081101561030057600080fd5b50356001600160a01b03166107a3565b34801561031c57600080fd5b506102056004803603602081101561033357600080fd5b50356001600160a01b03166107b5565b34801561034f57600080fd5b506102056004803603602081101561036657600080fd5b50356001600160a01b03166107c7565b34801561038257600080fd5b5061038b6107f9565b604080516001600160a01b039092168252519081900360200190f35b3480156103b357600080fd5b50610205600480360360208110156103ca57600080fd5b50356001600160a01b0316610808565b3480156103e657600080fd5b5061012e610823565b3480156103fb57600080fd5b506101dc6004803603604081101561041257600080fd5b506001600160a01b038135169060200135610884565b34801561043457600080fd5b506101dc6004803603604081101561044b57600080fd5b506001600160a01b0381351690602001356108c0565b34801561046d57600080fd5b506102056108e5565b34801561048257600080fd5b506102776004803603606081101561049957600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156104c957600080fd5b8201836020820111156104db57600080fd5b803590602001918460018302840111640100000000831117156104fd57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506108eb945050505050565b34801561054a57600080fd5b506102056004803603604081101561056157600080fd5b506001600160a01b0381358116916020013516610994565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106055780601f106105da57610100808354040283529160200191610605565b820191906000526020600020905b8154815290600101906020018083116105e857829003601f168201915b5050505050905090565b600061061c3384846109bf565b5060015b92915050565b60025490565b60065490565b600061063d84610a47565b61064683610a47565b610651848484610aad565b949350505050565b3415610686576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6000610690610aff565b6009546040805163a9059cbb60e01b81523360048201526024810184905290519293506001600160a01b039091169163a9059cbb916044808201926020929091908290030181600087803b1580156106e757600080fd5b505af11580156106fb573d6000803e3d6000fd5b505050506040513d602081101561071157600080fd5b5051610756576040805162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b604482015290519081900360640190fd5b50565b60055460ff1690565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161061c91859061079e908663ffffffff610b3216565b6109bf565b60076020526000908152604090205481565b60086020526000908152604090205481565b6001600160a01b038116600090815260086020526040812054610620906107ed84610b44565b9063ffffffff610b3216565b6009546001600160a01b031681565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106055780601f106105da57610100808354040283529160200191610605565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161061c91859061079e908663ffffffff610ba416565b60006108cb33610a47565b6108d483610a47565b6108de8383610bb9565b9392505050565b60065481565b6009546001600160a01b03163314610940576040805162461bcd60e51b81526020600482015260136024820152722aa720aaaa2427a924ad22a22fa9a2a72222a960691b604482015290519081900360640190fd5b811561098f5761094f82610bc6565b6040805183815290516001600160a01b038516917f8e47b87b0ef542cdfa1659c551d88bad38aa7f452d2bbb349ab7530dfec8be8f919081900360200190a25b505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0382166109d257600080fd5b6001600160a01b0383166109e557600080fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000610a5282610b44565b6006546001600160a01b038416600090815260076020908152604080832093909355600890522054909150610a8d908263ffffffff610b3216565b6001600160a01b0390921660009081526008602052604090209190915550565b6000610aba848484610bdf565b6001600160a01b038416600090815260016020908152604080832033808552925290912054610af591869161079e908663ffffffff610ba416565b5060019392505050565b600080610b0b336107c7565b60065433600090815260076020908152604080832093909355600890529081205591505090565b6000828201838110156108de57600080fd5b6001600160a01b0381166000908152600760205260408120546006548291610b72919063ffffffff610ba416565b90506108de610b7f610626565b610b9883610b8c87610808565b9063ffffffff610caa16565b9063ffffffff610cd116565b600082821115610bb357600080fd5b50900390565b600061061c338484610bdf565b600654610bd9908263ffffffff610b3216565b60065550565b6001600160a01b038216610bf257600080fd5b6001600160a01b038316600090815260208190526040902054610c1b908263ffffffff610ba416565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610c50908263ffffffff610b3216565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082610cb957506000610620565b82820282848281610cc657fe5b04146108de57600080fd5b6000808211610cdf57600080fd5b6000828481610cea57fe5b0494935050505056fea265627a7a723058202d27ea649c0db74c87d7535afa712353cbcf5d8b81669d0e220df846307e2e5b64736f6c63430005090032", + "sourceMap": "6759:1121:24:-;;;7023:167;8:9:-1;5:2;;;30:1;27;20:12;5:2;7023:167:24;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7023:167:24;;;;;;;;503;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;592:12;;7023:167;;;;;;503;;;3465:2;;592:12;;;:::i;:::-;-1:-1:-1;615:16:24;;;;:7;;:16;;;;;:::i;:::-;-1:-1:-1;642:9:24;:20;;-1:-1:-1;;642:20:24;;;;;;;;;;;;-1:-1:-1;3476:42:24;;-1:-1:-1;3482:6:24;3490:27;3476:5;:42::i;:::-;-1:-1:-1;3541:1:24;3525:13;:17;-1:-1:-1;;;;;7119:34:24;;7111:43;;;;;;7161:10;:24;;-1:-1:-1;;;;;;7161:24:24;-1:-1:-1;;;;;7161:24:24;;;;;;;;;;-1:-1:-1;6759:1121:24;;5948:269:19;-1:-1:-1;;;;;6023:21:19;;6015:30;;;;;;6073:23;6090:5;6073:12;;:16;;;;;;:23;;;;:::i;:::-;6058:12;:38;-1:-1:-1;;;;;6128:18:19;;:9;:18;;;;;;;;;;;;:29;;6151:5;;6128:22;;;;;:29;;:::i;:::-;-1:-1:-1;;;;;6107:18:19;;:9;:18;;;;;;;;;;;:50;;;;6173:36;;;;;;;6107:18;;:9;;6173:36;;;;;;;;;;5948:269;;:::o;589:150:22:-;647:7;679:5;;;703:6;;;;695:15;;;;;;730:1;589:150;-1:-1:-1;;;589:150:22:o;6759:1121:24:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6759:1121:24;;;-1:-1:-1;6759:1121:24;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "6759:1121:24:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;740:83:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;740:83:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2807:148:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2807:148:19;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2807:148:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;958:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;958:91:19;;;:::i;:::-;;;;;;;;;;;;;;;;4735:103:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4735:103:24;;;:::i;4389:197::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4389:197:24;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4389:197:24;;;;;;;;;;;;;;;;;:::i;7253:225::-;;;:::i;:::-;;1592:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1592:83:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4171:203:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4171:203:19;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4171:203:19;;;;;;;;:::i;3226:50:24:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3226:50:24;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3226:50:24;-1:-1:-1;;;;;3226:50:24;;:::i;3332:48::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3332:48:24;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3332:48:24;-1:-1:-1;;;;;3332:48:24;;:::i;5070:168::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5070:168:24;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5070:168:24;-1:-1:-1;;;;;5070:168:24;;:::i;6880:24::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6880:24:24;;;:::i;:::-;;;;-1:-1:-1;;;;;6880:24:24;;;;;;;;;;;;;;1269:106:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1269:106:19;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1269:106:19;-1:-1:-1;;;;;1269:106:19;;:::i;942:87:24:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;942:87:24;;;:::i;4894:213:19:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4894:213:19;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4894:213:19;;;;;;;;:::i;3821:172:24:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3821:172:24;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3821:172:24;;;;;;;;:::i;3107:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3107:28:24;;;:::i;7675:202::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7675:202:24;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;7675:202:24;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;7675:202:24;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7675:202:24;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;7675:202:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;7675:202:24;;-1:-1:-1;7675:202:24;;-1:-1:-1;;;;;7675:202:24:i;1714:131:19:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1714:131:19;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1714:131:19;;;;;;;;;;:::i;740:83:24:-;810:5;803:12;;;;;;;;-1:-1:-1;;803:12:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;777:13;;803:12;;810:5;;803:12;;810:5;803:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:83;:::o;2807:148:19:-;2872:4;2889:36;2898:10;2910:7;2919:5;2889:8;:36::i;:::-;-1:-1:-1;2943:4:19;2807:148;;;;;:::o;958:91::-;1029:12;;958:91;:::o;4735:103:24:-;4820:13;;4735:103;:::o;4389:197::-;4477:4;4490:18;4502:5;4490:11;:18::i;:::-;4513:16;4525:3;4513:11;:16::i;:::-;4543:38;4562:5;4569:3;4574:6;4543:18;:38::i;:::-;4536:45;4389:197;-1:-1:-1;;;;4389:197:24:o;7253:225::-;7316:9;:14;7308:27;;;;;-1:-1:-1;;;7308:27:24;;;;;;;;;;;;;;;;;;;;;;;7342:25;7370:18;:16;:18::i;:::-;7403:10;;:50;;;-1:-1:-1;;;7403:50:24;;7423:10;7403:50;;;;;;;;;;;;7342:46;;-1:-1:-1;;;;;;7403:10:24;;;;:19;;:50;;;;;;;;;;;;;;;:10;;:50;;;5:2:-1;;;;30:1;27;20:12;5:2;7403:50:24;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7403:50:24;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7403:50:24;7395:78;;;;;-1:-1:-1;;;7395:78:24;;;;;;;;;;;;-1:-1:-1;;;7395:78:24;;;;;;;;;;;;;;;7253:225;:::o;1592:83::-;1658:9;;;;1592:83;:::o;4171:203:19:-;4277:10;4251:4;4298:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;4298:29:19;;;;;;;;;;4251:4;;4268:76;;4289:7;;4298:45;;4332:10;4298:45;:33;:45;:::i;:::-;4268:8;:76::i;3226:50:24:-;;;;;;;;;;;;;:::o;3332:48::-;;;;;;;;;;;;;:::o;5070:168::-;-1:-1:-1;;;;;5207:25:24;;5145:7;5207:25;;;:12;:25;;;;;;5168:65;;:34;5220:11;5168:21;:34::i;:::-;:38;:65;:38;:65;:::i;6880:24::-;;;-1:-1:-1;;;;;6880:24:24;;:::o;1269:106:19:-;-1:-1:-1;;;;;1351:16:19;1324:7;1351:16;;;;;;;;;;;;1269:106::o;942:87:24:-;1014:7;1007:14;;;;;;;;-1:-1:-1;;1007:14:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;981:13;;1007:14;;1014:7;;1007:14;;1014:7;1007:14;;;;;;;;;;;;;;;;;;;;;;;;4894:213:19;5005:10;4979:4;5026:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;5026:29:19;;;;;;;;;;4979:4;;4996:81;;5017:7;;5026:50;;5060:15;5026:50;:33;:50;:::i;3821:172:24:-;3890:4;3903:23;3915:10;3903:11;:23::i;:::-;3931:16;3943:3;3931:11;:16::i;:::-;3961:27;3976:3;3981:6;3961:14;:27::i;:::-;3954:34;3821:172;-1:-1:-1;;;3821:172:24:o;3107:28::-;;;;:::o;7675:202::-;6972:10;;-1:-1:-1;;;;;6972:10:24;6950;:33;6942:65;;;;;-1:-1:-1;;;6942:65:24;;;;;;;;;;;;-1:-1:-1;;;6942:65:24;;;;;;;;;;;;;;;7786:10;;7782:91;;7804:22;7819:6;7804:14;:22::i;:::-;7837:30;;;;;;;;-1:-1:-1;;;;;7837:30:24;;;;;;;;;;;;;7782:91;7675:202;;;:::o;1714:131:19:-;-1:-1:-1;;;;;1813:15:19;;;1786:7;1813:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;1714:131::o;6993:254::-;-1:-1:-1;;;;;7086:21:19;;7078:30;;;;;;-1:-1:-1;;;;;7127:19:19;;7119:28;;;;;;-1:-1:-1;;;;;7160:15:19;;;;;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;:32;;;7208:31;;;;;;;;;;;;;;;;;6993:254;;;:::o;6029:252:24:-;6085:24;6112:34;6134:11;6112:21;:34::i;:::-;6183:13;;-1:-1:-1;;;;;6153:27:24;;;;;;:14;:27;;;;;;;;:43;;;;6229:12;:25;;;;6085:61;;-1:-1:-1;6229:47:24;;6085:61;6229:47;:29;:47;:::i;:::-;-1:-1:-1;;;;;6201:25:24;;;;;;;:12;:25;;;;;:75;;;;-1:-1:-1;6029:252:24:o;3428:228:19:-;3507:4;3524:26;3534:4;3540:2;3544:5;3524:9;:26::i;:::-;-1:-1:-1;;;;;3588:14:19;;;;;;:8;:14;;;;;;;;3576:10;3588:26;;;;;;;;;3561:65;;3570:4;;3588:37;;3619:5;3588:37;:30;:37;:::i;3561:65::-;-1:-1:-1;3644:4:19;3428:228;;;;;:::o;6512:240:24:-;6564:7;6580:25;6608:26;6623:10;6608:14;:26::i;:::-;6670:13;;6656:10;6641:26;;;;:14;:26;;;;;;;;:42;;;;6688:12;:24;;;;;:28;6580:54;-1:-1:-1;;6512:240:24;:::o;589:150:22:-;647:7;679:5;;;703:6;;;;695:15;;;;;5670:253:24;-1:-1:-1;;;;;5815:27:24;;5754:7;5815:27;;;:14;:27;;;;;;5797:13;;5754:7;;5797:46;;:13;:46;:17;:46;:::i;:::-;5770:73;;5855:63;5904:13;:11;:13::i;:::-;5855:44;5882:16;5855:22;5865:11;5855:9;:22::i;:::-;:26;:44;:26;:44;:::i;:::-;:48;:63;:48;:63;:::i;431:150:22:-;489:7;522:1;517;:6;;509:15;;;;;;-1:-1:-1;547:5:22;;;431:150::o;2020:140:19:-;2081:4;2098:32;2108:10;2120:2;2124:5;2098:9;:32::i;5423:105:24:-;5498:13;;:25;;5516:6;5498:25;:17;:25;:::i;:::-;5482:13;:41;-1:-1:-1;5423:105:24:o;5334:262:19:-;-1:-1:-1;;;;;5422:16:19;;5414:25;;;;;;-1:-1:-1;;;;;5470:15:19;;:9;:15;;;;;;;;;;;:26;;5490:5;5470:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;5452:15:19;;;:9;:15;;;;;;;;;;;:44;;;;5523:13;;;;;;;:24;;5541:5;5523:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;5507:13:19;;;:9;:13;;;;;;;;;;;;:40;;;;5563:25;;;;;;;5507:13;;5563:25;;;;;;;;;;;;;5334:262;;;:::o;51:213:22:-;109:7;133:6;129:47;;-1:-1:-1;163:1:22;156:8;;129:47;200:5;;;204:1;200;:5;:1;224:5;;;;;:10;216:19;;;;;272:151;330:7;364:1;360;:5;352:14;;;;;;377:9;393:1;389;:5;;;;;;;272:151;-1:-1:-1;;;;272:151:22:o", + "source": "pragma solidity >=0.5.0 < 0.6.0;\r\n\r\nimport \"../oz/SafeMath.sol\";\r\nimport \"../oz/IERC20.sol\";\r\nimport \"../oz/ERC20.sol\";\r\n\r\n/**\r\n * @dev Optional functions from the ERC20 standard.\r\n */\r\ncontract ERC20Detailed is IERC20 {\r\n string private _name;\r\n string private _symbol;\r\n uint8 private _decimals;\r\n\r\n /**\r\n * @dev Sets the values for `name`, `symbol`, and `decimals`. All three of\r\n * these values are immutable: they can only be set once during\r\n * construction.\r\n */\r\n constructor (string memory name, string memory symbol, uint8 decimals) public {\r\n _name = name;\r\n _symbol = symbol;\r\n _decimals = decimals;\r\n }\r\n\r\n /**\r\n * @dev Returns the name of the token.\r\n */\r\n function name() public view returns (string memory) {\r\n return _name;\r\n }\r\n\r\n /**\r\n * @dev Returns the symbol of the token, usually a shorter version of the\r\n * name.\r\n */\r\n function symbol() public view returns (string memory) {\r\n return _symbol;\r\n }\r\n\r\n /**\r\n * @dev Returns the number of decimals used to get its user representation.\r\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\r\n * be displayed to a user as `5,05` (`505 / 10 ** 2`).\r\n *\r\n * Tokens usually opt for a value of 18, imitating the relationship between\r\n * Ether and Wei.\r\n *\r\n * NOTE: This information is only used for _display_ purposes: it in\r\n * no way affects any of the arithmetic of the contract, including\r\n * {IERC20-balanceOf} and {IERC20-transfer}.\r\n */\r\n function decimals() public view returns (uint8) {\r\n return _decimals;\r\n }\r\n}\r\n\r\ninterface IClaimsToken {\r\n\r\n\t/**\r\n\t * @dev This event emits when funds to be deposited are sent to the token contract\r\n\t * @param from contains the address of the sender of the received funds\r\n\t * @param fundsReceived contains the amount of funds received for distribution\r\n\t */\r\n\tevent FundsReceived(address indexed from, uint256 fundsReceived);\r\n\r\n\t/**\r\n\t * @dev This event emits when distributed funds are withdrawn by a token holder.\r\n\t * @param by contains the address of the receiver of funds\r\n\t * @param fundsWithdrawn contains the amount of funds that were withdrawn\r\n\t */\r\n\tevent FundsWithdrawn(address indexed by, uint256 fundsWithdrawn);\r\n\r\n\t/**\r\n\t * @dev Withdraws available funds for user.\r\n\t */\r\n\tfunction withdrawFunds() external payable;\r\n\r\n\t/**\r\n\t * @dev Returns the amount of funds a given address is able to withdraw currently.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t * @return A uint256 representing the available funds for a given account\r\n\t */\r\n\tfunction availableFunds(address _forAddress) external view returns (uint256);\r\n\r\n\t/**\r\n\t * @dev Get cumulative funds received by ClaimsToken.\r\n\t * @return A uint256 representing the total funds received by ClaimsToken\r\n\t */\r\n\tfunction totalReceivedFunds() external view returns (uint256);\r\n}\r\n\r\ncontract ClaimsToken is IClaimsToken, ERC20, ERC20Detailed {\r\n\r\n\tusing SafeMath for uint256;\r\n\r\n\t// cumulative funds received by this contract\r\n\tuint256 public receivedFunds;\r\n\t// cumulative funds received which were already processed for distribution - by user\r\n\tmapping (address => uint256) public processedFunds;\r\n\t// claimed but not yet withdrawn funds for a user\r\n\tmapping (address => uint256) public claimedFunds;\r\n\r\n\r\n\tconstructor(address _owner)\r\n\t\tpublic\r\n\t\tERC20Detailed(\"ClaimsToken\", \"CST\", 18)\r\n\t{\r\n\t\t_mint(_owner, 10000 * (10 ** uint256(18)));\r\n\r\n\t\treceivedFunds = 0;\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Transfer token to a specified address.\r\n\t * Claims funds for both parties, whereby the amount of tokens withdrawn\r\n\t * is inherited by the new token owner.\r\n\t * @param _to The address to transfer to\r\n\t * @param _value The amount to be transferred\r\n\t */\r\n\tfunction transfer(address _to, uint256 _value)\r\n\t\tpublic\r\n\t\treturns (bool)\r\n\t{\r\n\t\t_claimFunds(msg.sender);\r\n\t\t_claimFunds(_to);\r\n\r\n\t\treturn super.transfer(_to, _value);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @dev Transfer tokens from one address to another.\r\n\t * Claims funds for both parties, whereby the amount of tokens withdrawn\r\n\t * is inherited by the new token owner.\r\n\t * @param _from address The address which you want to send tokens from\r\n\t * @param _to address The address which you want to transfer to\r\n\t * @param _value uint256 the amount of tokens to be transferred\r\n\t */\r\n\tfunction transferFrom(address _from, address _to, uint256 _value)\r\n\t\tpublic\r\n\t\treturns (bool)\r\n\t{\r\n\t\t_claimFunds(_from);\r\n\t\t_claimFunds(_to);\r\n\r\n\t\treturn super.transferFrom(_from, _to, _value);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Get cumulative funds received by ClaimsToken.\r\n\t * @return A uint256 representing the total funds received by ClaimsToken\r\n\t */\r\n\tfunction totalReceivedFunds()\r\n\t\texternal\r\n\t\tview\r\n\t\treturns (uint256)\r\n\t{\r\n\t\treturn receivedFunds;\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Returns the amount of funds a given address is able to withdraw currently.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t * @return A uint256 representing the available funds for a given account\r\n\t */\r\n\tfunction availableFunds(address _forAddress)\r\n\t\tpublic\r\n\t\tview\r\n\t\treturns (uint256)\r\n\t{\r\n\t\treturn _calcUnprocessedFunds(_forAddress).add(claimedFunds[_forAddress]);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Increments cumulative received funds by new received funds.\r\n\t * Called when ClaimsToken receives funds.\r\n\t * @param _value Amount of tokens / Ether received\r\n\t */\r\n\tfunction _registerFunds(uint256 _value)\r\n\t\tinternal\r\n\t{\r\n\t\treceivedFunds = receivedFunds.add(_value);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Returns payout for a user which can be withdrawn or claimed.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t */\r\n\tfunction _calcUnprocessedFunds(address _forAddress)\r\n\t\tinternal\r\n\t\tview\r\n\t\treturns (uint256)\r\n\t{\r\n\t\tuint256 newReceivedFunds = receivedFunds.sub(processedFunds[_forAddress]);\r\n\t\treturn balanceOf(_forAddress).mul(newReceivedFunds).div(totalSupply());\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Claims funds for a user.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t */\r\n\tfunction _claimFunds(address _forAddress) internal {\r\n\t\tuint256 unprocessedFunds = _calcUnprocessedFunds(_forAddress);\r\n\r\n\t\tprocessedFunds[_forAddress] = receivedFunds;\r\n\t\tclaimedFunds[_forAddress] = claimedFunds[_forAddress].add(unprocessedFunds);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Sets claimed but not yet withdrawn funds to 0,\r\n\t * marks total received funds as processed and\r\n\t * returns the withdrawable amount for a user.\r\n\t * @return A uint256 representing the withdrawable funds\r\n\t */\r\n\tfunction _prepareWithdraw()\r\n\t\tinternal\r\n\t\treturns (uint256)\r\n\t{\r\n\t\tuint256 withdrawableFunds = availableFunds(msg.sender);\r\n\r\n\t\tprocessedFunds[msg.sender] = receivedFunds;\r\n\t\tclaimedFunds[msg.sender] = 0;\r\n\r\n\t\treturn withdrawableFunds;\r\n\t}\r\n}\r\n\r\ncontract ClaimsTokenERC20Extension is IClaimsToken, ClaimsToken {\r\n\r\n\t// token that ClaimsToken takes in custodianship\r\n\tIERC20 public fundsToken;\r\n\r\n\tmodifier onlyFundsToken () {\r\n\t\trequire(msg.sender == address(fundsToken), \"UNAUTHORIZED_SENDER\");\r\n\t\t_;\r\n\t}\r\n\r\n\tconstructor(address _owner, IERC20 _fundsToken)\r\n\t\tpublic\r\n\t\tClaimsToken(_owner)\r\n\t{\r\n\t\trequire(address(_fundsToken) != address(0));\r\n\r\n\t\tfundsToken = _fundsToken;\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Withdraws available funds for user.\r\n\t */\r\n\tfunction withdrawFunds()\r\n\t\texternal\r\n\t\tpayable\r\n\t{\r\n\t\trequire(msg.value == 0, \"\");\r\n\r\n\t\tuint256 withdrawableFunds = _prepareWithdraw();\r\n\r\n\t\trequire(fundsToken.transfer(msg.sender, withdrawableFunds), \"TRANSFER_FAILED\");\r\n\t}\r\n\r\n\t/**\r\n\t * @dev For ERC223.\r\n\t * Calls _registerFunds(), whereby total received funds (cumulative) gets updated.\r\n\t * @param _sender Sender of tokens\r\n\t * @param _value Amount of tokens\r\n\t */\r\n\tfunction tokenFallback(address _sender, uint256 _value, bytes memory)\r\n\t\tpublic\r\n\t\tonlyFundsToken()\r\n\t{\r\n\t\tif (_value > 0) {\r\n\t\t\t_registerFunds(_value);\r\n\t\t\temit FundsReceived(_sender, _value);\r\n\t\t}\r\n\t}\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\tokens\\ClaimsToken.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol", + "exportedSymbols": { + "ClaimsToken": [ + 10228 + ], + "ClaimsTokenERC20Extension": [ + 10327 + ], + "ERC20Detailed": [ + 9977 + ], + "IClaimsToken": [ + 10005 + ] + }, + "id": 10328, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9919, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:24" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "../oz/SafeMath.sol", + "id": 9920, + "nodeType": "ImportDirective", + "scope": 10328, + "sourceUnit": 9858, + "src": "36:28:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", + "file": "../oz/IERC20.sol", + "id": 9921, + "nodeType": "ImportDirective", + "scope": 10328, + "sourceUnit": 9720, + "src": "66:26:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol", + "file": "../oz/ERC20.sol", + "id": 9922, + "nodeType": "ImportDirective", + "scope": 10328, + "sourceUnit": 9651, + "src": "94:25:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9923, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "212:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 9924, + "nodeType": "InheritanceSpecifier", + "src": "212:6:24" + } + ], + "contractDependencies": [ + 9719 + ], + "contractKind": "contract", + "documentation": "@dev Optional functions from the ERC20 standard.\r", + "fullyImplemented": false, + "id": 9977, + "linearizedBaseContracts": [ + 9977, + 9719 + ], + "name": "ERC20Detailed", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 9926, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 9977, + "src": "226:20:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 9925, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "226:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 9928, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 9977, + "src": "253:22:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 9927, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "253:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 9930, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 9977, + "src": "282:23:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9929, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "282:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 9951, + "nodeType": "Block", + "src": "581:89:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9939, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9926, + "src": "592:5:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9940, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9932, + "src": "600:4:24", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "592:12:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 9942, + "nodeType": "ExpressionStatement", + "src": "592:12:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 9945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9943, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9928, + "src": "615:7:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9944, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9934, + "src": "625:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "615:16:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 9946, + "nodeType": "ExpressionStatement", + "src": "615:16:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 9949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9947, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9930, + "src": "642:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9948, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9936, + "src": "654:8:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "642:20:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 9950, + "nodeType": "ExpressionStatement", + "src": "642:20:24" + } + ] + }, + "documentation": "@dev Sets the values for `name`, `symbol`, and `decimals`. All three of\r\nthese values are immutable: they can only be set once during\r\nconstruction.\r", + "id": 9952, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9937, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9932, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 9952, + "src": "516:18:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9931, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "516:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9934, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 9952, + "src": "536:20:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9933, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "536:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9936, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 9952, + "src": "558:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9935, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "558:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "515:58:24" + }, + "returnParameters": { + "id": 9938, + "nodeType": "ParameterList", + "parameters": [], + "src": "581:0:24" + }, + "scope": 9977, + "src": "503:167:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9959, + "nodeType": "Block", + "src": "792:31:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9957, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9926, + "src": "810:5:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 9956, + "id": 9958, + "nodeType": "Return", + "src": "803:12:24" + } + ] + }, + "documentation": "@dev Returns the name of the token.\r", + "id": 9960, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9953, + "nodeType": "ParameterList", + "parameters": [], + "src": "753:2:24" + }, + "returnParameters": { + "id": 9956, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9955, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9960, + "src": "777:13:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9954, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "777:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "776:15:24" + }, + "scope": 9977, + "src": "740:83:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9967, + "nodeType": "Block", + "src": "996:33:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9965, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9928, + "src": "1014:7:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 9964, + "id": 9966, + "nodeType": "Return", + "src": "1007:14:24" + } + ] + }, + "documentation": "@dev Returns the symbol of the token, usually a shorter version of the\r\nname.\r", + "id": 9968, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9961, + "nodeType": "ParameterList", + "parameters": [], + "src": "957:2:24" + }, + "returnParameters": { + "id": 9964, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9963, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9968, + "src": "981:13:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9962, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "981:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "980:15:24" + }, + "scope": 9977, + "src": "942:87:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9975, + "nodeType": "Block", + "src": "1640:35:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9973, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9930, + "src": "1658:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 9972, + "id": 9974, + "nodeType": "Return", + "src": "1651:16:24" + } + ] + }, + "documentation": "@dev Returns the number of decimals used to get its user representation.\r\nFor example, if `decimals` equals `2`, a balance of `505` tokens should\r\nbe displayed to a user as `5,05` (`505 / 10 ** 2`).\r\n\n * Tokens usually opt for a value of 18, imitating the relationship between\r\nEther and Wei.\r\n\n * NOTE: This information is only used for _display_ purposes: it in\r\nno way affects any of the arithmetic of the contract, including\r\n{IERC20-balanceOf} and {IERC20-transfer}.\r", + "id": 9976, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9969, + "nodeType": "ParameterList", + "parameters": [], + "src": "1609:2:24" + }, + "returnParameters": { + "id": 9972, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9971, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9976, + "src": "1633:5:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9970, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1633:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1632:7:24" + }, + "scope": 9977, + "src": "1592:83:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 10328, + "src": "186:1492:24" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 10005, + "linearizedBaseContracts": [ + 10005 + ], + "name": "IClaimsToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": "@dev This event emits when funds to be deposited are sent to the token contract\r\n@param from contains the address of the sender of the received funds\r\n@param fundsReceived contains the amount of funds received for distribution\r", + "id": 9983, + "name": "FundsReceived", + "nodeType": "EventDefinition", + "parameters": { + "id": 9982, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9979, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 9983, + "src": "1983:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9978, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1983:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9981, + "indexed": false, + "name": "fundsReceived", + "nodeType": "VariableDeclaration", + "scope": 9983, + "src": "2005:21:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2005:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1982:45:24" + }, + "src": "1963:65:24" + }, + { + "anonymous": false, + "documentation": "@dev This event emits when distributed funds are withdrawn by a token holder.\r\n@param by contains the address of the receiver of funds\r\n@param fundsWithdrawn contains the amount of funds that were withdrawn\r", + "id": 9989, + "name": "FundsWithdrawn", + "nodeType": "EventDefinition", + "parameters": { + "id": 9988, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9985, + "indexed": true, + "name": "by", + "nodeType": "VariableDeclaration", + "scope": 9989, + "src": "2286:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9984, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2286:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9987, + "indexed": false, + "name": "fundsWithdrawn", + "nodeType": "VariableDeclaration", + "scope": 9989, + "src": "2306:22:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2306:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2285:44:24" + }, + "src": "2265:65:24" + }, + { + "body": null, + "documentation": "@dev Withdraws available funds for user.\r", + "id": 9992, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdrawFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9990, + "nodeType": "ParameterList", + "parameters": [], + "src": "2415:2:24" + }, + "returnParameters": { + "id": 9991, + "nodeType": "ParameterList", + "parameters": [], + "src": "2434:0:24" + }, + "scope": 10005, + "src": "2393:42:24", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", + "id": 9999, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "availableFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9994, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 9999, + "src": "2691:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2691:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2690:21:24" + }, + "returnParameters": { + "id": 9998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9997, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9999, + "src": "2735:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9996, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2735:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2734:9:24" + }, + "scope": 10005, + "src": "2667:77:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", + "id": 10004, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalReceivedFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10000, + "nodeType": "ParameterList", + "parameters": [], + "src": "2920:2:24" + }, + "returnParameters": { + "id": 10003, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10002, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10004, + "src": "2946:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2946:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2945:9:24" + }, + "scope": 10005, + "src": "2893:62:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 10328, + "src": "1682:1276:24" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10006, + "name": "IClaimsToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10005, + "src": "2986:12:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IClaimsToken_$10005", + "typeString": "contract IClaimsToken" + } + }, + "id": 10007, + "nodeType": "InheritanceSpecifier", + "src": "2986:12:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10008, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9650, + "src": "3000:5:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9650", + "typeString": "contract ERC20" + } + }, + "id": 10009, + "nodeType": "InheritanceSpecifier", + "src": "3000:5:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10010, + "name": "ERC20Detailed", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9977, + "src": "3007:13:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$9977", + "typeString": "contract ERC20Detailed" + } + }, + "id": 10011, + "nodeType": "InheritanceSpecifier", + "src": "3007:13:24" + } + ], + "contractDependencies": [ + 9650, + 9719, + 9977, + 10005 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 10228, + "linearizedBaseContracts": [ + 10228, + 9977, + 9650, + 9719, + 10005 + ], + "name": "ClaimsToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 10014, + "libraryName": { + "contractScope": null, + "id": 10012, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "3033:8:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "3027:27:24", + "typeName": { + "id": 10013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3046:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 10016, + "name": "receivedFunds", + "nodeType": "VariableDeclaration", + "scope": 10228, + "src": "3107:28:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10015, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3107:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 10020, + "name": "processedFunds", + "nodeType": "VariableDeclaration", + "scope": 10228, + "src": "3226:50:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 10019, + "keyType": { + "id": 10017, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3235:7:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3226:28:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 10018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3246:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 10024, + "name": "claimedFunds", + "nodeType": "VariableDeclaration", + "scope": 10228, + "src": "3332:48:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 10023, + "keyType": { + "id": 10021, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3341:7:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3332:28:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 10022, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3352:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 10050, + "nodeType": "Block", + "src": "3471:76:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10035, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10026, + "src": "3482:6:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10043, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130303030", + "id": 10036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3490:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "value": "10000" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10041, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 10037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3499:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "3138", + "id": 10039, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3513:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + } + ], + "id": 10038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3505:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 10040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3505:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3499:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10042, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3498:19:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3490:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10034, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9539, + "src": "3476:5:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 10044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3476:42:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10045, + "nodeType": "ExpressionStatement", + "src": "3476:42:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10046, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "3525:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 10047, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3541:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3525:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10049, + "nodeType": "ExpressionStatement", + "src": "3525:17:24" + } + ] + }, + "documentation": null, + "id": 10051, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "hexValue": "436c61696d73546f6b656e", + "id": 10029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3443:13:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25771c0ba9a97de4408886fe552885a1751acfa735dfd2ef9c66e7b9e8871e71", + "typeString": "literal_string \"ClaimsToken\"" + }, + "value": "ClaimsToken" + }, + { + "argumentTypes": null, + "hexValue": "435354", + "id": 10030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3458:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0626086d51c299e905c42b7a28a0add92109e49b12cb2bd2531769201453ab94", + "typeString": "literal_string \"CST\"" + }, + "value": "CST" + }, + { + "argumentTypes": null, + "hexValue": "3138", + "id": 10031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3465:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + } + ], + "id": 10032, + "modifierName": { + "argumentTypes": null, + "id": 10028, + "name": "ERC20Detailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9977, + "src": "3429:13:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$9977_$", + "typeString": "type(contract ERC20Detailed)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3429:39:24" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10026, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 10051, + "src": "3400:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10025, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3400:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3399:16:24" + }, + "returnParameters": { + "id": 10033, + "nodeType": "ParameterList", + "parameters": [], + "src": "3471:0:24" + }, + "scope": 10228, + "src": "3388:159:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 10075, + "nodeType": "Block", + "src": "3898:95:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10061, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3915:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3915:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 10060, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "3903:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3903:23:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10064, + "nodeType": "ExpressionStatement", + "src": "3903:23:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10066, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10053, + "src": "3943:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10065, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "3931:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3931:16:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10068, + "nodeType": "ExpressionStatement", + "src": "3931:16:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10071, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10053, + "src": "3976:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10072, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10055, + "src": "3981:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10069, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10490, + "src": "3961:5:24", + "typeDescriptions": { + "typeIdentifier": "t_super$_ClaimsToken_$10228", + "typeString": "contract super ClaimsToken" + } + }, + "id": 10070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9343, + "src": "3961:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" + } + }, + "id": 10073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3961:27:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 10059, + "id": 10074, + "nodeType": "Return", + "src": "3954:34:24" + } + ] + }, + "documentation": "@dev Transfer token to a specified address.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _to The address to transfer to\r\n@param _value The amount to be transferred\r", + "id": 10076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10056, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10053, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 10076, + "src": "3839:11:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10052, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3839:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10055, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10076, + "src": "3852:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10054, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3852:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3838:29:24" + }, + "returnParameters": { + "id": 10059, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10058, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10076, + "src": "3890:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10057, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3890:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3889:6:24" + }, + "scope": 10228, + "src": "3821:172:24", + "stateMutability": "nonpayable", + "superFunction": 9343, + "visibility": "public" + }, + { + "body": { + "id": 10102, + "nodeType": "Block", + "src": "4485:101:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10088, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10078, + "src": "4502:5:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10087, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "4490:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4490:18:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10090, + "nodeType": "ExpressionStatement", + "src": "4490:18:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10092, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10080, + "src": "4525:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10091, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "4513:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4513:16:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10094, + "nodeType": "ExpressionStatement", + "src": "4513:16:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10097, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10078, + "src": "4562:5:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10098, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10080, + "src": "4569:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10099, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10082, + "src": "4574:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10095, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10490, + "src": "4543:5:24", + "typeDescriptions": { + "typeIdentifier": "t_super$_ClaimsToken_$10228", + "typeString": "contract super ClaimsToken" + } + }, + "id": 10096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 9397, + "src": "4543:18:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) returns (bool)" + } + }, + "id": 10100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4543:38:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 10086, + "id": 10101, + "nodeType": "Return", + "src": "4536:45:24" + } + ] + }, + "documentation": "@dev Transfer tokens from one address to another.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _from address The address which you want to send tokens from\r\n@param _to address The address which you want to transfer to\r\n@param _value uint256 the amount of tokens to be transferred\r", + "id": 10103, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10083, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10078, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4411:13:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4411:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10080, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4426:11:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10079, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4426:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10082, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4439:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10081, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4439:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4410:44:24" + }, + "returnParameters": { + "id": 10086, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10085, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4477:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10084, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4477:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4476:6:24" + }, + "scope": 10228, + "src": "4389:197:24", + "stateMutability": "nonpayable", + "superFunction": 9397, + "visibility": "public" + }, + { + "body": { + "id": 10110, + "nodeType": "Block", + "src": "4808:30:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10108, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "4820:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10107, + "id": 10109, + "nodeType": "Return", + "src": "4813:20:24" + } + ] + }, + "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", + "id": 10111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalReceivedFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10104, + "nodeType": "ParameterList", + "parameters": [], + "src": "4762:2:24" + }, + "returnParameters": { + "id": 10107, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10106, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10111, + "src": "4797:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10105, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4797:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4796:9:24" + }, + "scope": 10228, + "src": "4735:103:24", + "stateMutability": "view", + "superFunction": 10004, + "visibility": "external" + }, + { + "body": { + "id": 10127, + "nodeType": "Block", + "src": "5156:82:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10122, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "5207:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10124, + "indexExpression": { + "argumentTypes": null, + "id": 10123, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10113, + "src": "5220:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5207:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10119, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10113, + "src": "5190:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10118, + "name": "_calcUnprocessedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10169, + "src": "5168:21:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5168:34:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "5168:38:24", + "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": 10125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5168:65:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10117, + "id": 10126, + "nodeType": "Return", + "src": "5161:72:24" + } + ] + }, + "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", + "id": 10128, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "availableFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10114, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10113, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 10128, + "src": "5094:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5094:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5093:21:24" + }, + "returnParameters": { + "id": 10117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10116, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10128, + "src": "5145:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10115, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5145:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5144:9:24" + }, + "scope": 10228, + "src": "5070:168:24", + "stateMutability": "view", + "superFunction": 9999, + "visibility": "public" + }, + { + "body": { + "id": 10140, + "nodeType": "Block", + "src": "5477:51:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10133, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "5482:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10136, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10130, + "src": "5516:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10134, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "5498:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "5498:17:24", + "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": 10137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5498:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5482:41:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10139, + "nodeType": "ExpressionStatement", + "src": "5482:41:24" + } + ] + }, + "documentation": "@dev Increments cumulative received funds by new received funds.\r\nCalled when ClaimsToken receives funds.\r\n@param _value Amount of tokens / Ether received\r", + "id": 10141, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10130, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10141, + "src": "5447:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10129, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5447:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5446:16:24" + }, + "returnParameters": { + "id": 10132, + "nodeType": "ParameterList", + "parameters": [], + "src": "5477:0:24" + }, + "scope": 10228, + "src": "5423:105:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10168, + "nodeType": "Block", + "src": "5765:158:24", + "statements": [ + { + "assignments": [ + 10149 + ], + "declarations": [ + { + "constant": false, + "id": 10149, + "name": "newReceivedFunds", + "nodeType": "VariableDeclaration", + "scope": 10168, + "src": "5770:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10148, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5770:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10156, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10152, + "name": "processedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10020, + "src": "5815:14:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10154, + "indexExpression": { + "argumentTypes": null, + "id": 10153, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10143, + "src": "5830:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5815:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10150, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "5797:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "5797:17:24", + "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": 10155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5797:46:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5770:73:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 10164, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9296, + "src": "5904:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 10165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5904:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10161, + "name": "newReceivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10149, + "src": "5882:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10158, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10143, + "src": "5865:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10157, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9308, + "src": "5855:9:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5855:22:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 9784, + "src": "5855:26:24", + "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": 10162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5855:44:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9808, + "src": "5855:48:24", + "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": 10166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5855:63:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10147, + "id": 10167, + "nodeType": "Return", + "src": "5848:70:24" + } + ] + }, + "documentation": "@dev Returns payout for a user which can be withdrawn or claimed.\r\n@param _forAddress Address of ClaimsToken holder\r", + "id": 10169, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_calcUnprocessedFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10143, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 10169, + "src": "5701:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5701:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5700:21:24" + }, + "returnParameters": { + "id": 10147, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10146, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10169, + "src": "5754:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5754:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5753:9:24" + }, + "scope": 10228, + "src": "5670:253:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10197, + "nodeType": "Block", + "src": "6080:201:24", + "statements": [ + { + "assignments": [ + 10175 + ], + "declarations": [ + { + "constant": false, + "id": 10175, + "name": "unprocessedFunds", + "nodeType": "VariableDeclaration", + "scope": 10197, + "src": "6085:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10174, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6085:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10179, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10177, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6134:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10176, + "name": "_calcUnprocessedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10169, + "src": "6112:21:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6112:34:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6085:61:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10180, + "name": "processedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10020, + "src": "6153:14:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10182, + "indexExpression": { + "argumentTypes": null, + "id": 10181, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6168:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6153:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10183, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "6183:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6153:43:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10185, + "nodeType": "ExpressionStatement", + "src": "6153:43:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10186, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "6201:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10188, + "indexExpression": { + "argumentTypes": null, + "id": 10187, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6214:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6201:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10193, + "name": "unprocessedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10175, + "src": "6259:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10189, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "6229:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10191, + "indexExpression": { + "argumentTypes": null, + "id": 10190, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6242:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6229:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "6229:29:24", + "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": 10194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6229:47:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6201:75:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10196, + "nodeType": "ExpressionStatement", + "src": "6201:75:24" + } + ] + }, + "documentation": "@dev Claims funds for a user.\r\n@param _forAddress Address of ClaimsToken holder\r", + "id": 10198, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_claimFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10172, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10171, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 10198, + "src": "6050:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10170, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6050:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6049:21:24" + }, + "returnParameters": { + "id": 10173, + "nodeType": "ParameterList", + "parameters": [], + "src": "6080:0:24" + }, + "scope": 10228, + "src": "6029:252:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10226, + "nodeType": "Block", + "src": "6575:177:24", + "statements": [ + { + "assignments": [ + 10204 + ], + "declarations": [ + { + "constant": false, + "id": 10204, + "name": "withdrawableFunds", + "nodeType": "VariableDeclaration", + "scope": 10226, + "src": "6580:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6580:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10209, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10206, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6623:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6623:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 10205, + "name": "availableFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10128, + "src": "6608:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6608:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6580:54:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10210, + "name": "processedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10020, + "src": "6641:14:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10213, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10211, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6656:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6656:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6641:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10214, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "6670:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6641:42:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10216, + "nodeType": "ExpressionStatement", + "src": "6641:42:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10217, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "6688:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10220, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10218, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6701:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6701:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6688:24:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 10221, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6715:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6688:28:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10223, + "nodeType": "ExpressionStatement", + "src": "6688:28:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10224, + "name": "withdrawableFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10204, + "src": "6730:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10202, + "id": 10225, + "nodeType": "Return", + "src": "6723:24:24" + } + ] + }, + "documentation": "@dev Sets claimed but not yet withdrawn funds to 0,\r\nmarks total received funds as processed and\r\nreturns the withdrawable amount for a user.\r\n@return A uint256 representing the withdrawable funds\r", + "id": 10227, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_prepareWithdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10199, + "nodeType": "ParameterList", + "parameters": [], + "src": "6537:2:24" + }, + "returnParameters": { + "id": 10202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10201, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10227, + "src": "6564:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10200, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6564:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6563:9:24" + }, + "scope": 10228, + "src": "6512:240:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 10328, + "src": "2962:3793:24" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10229, + "name": "IClaimsToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10005, + "src": "6797:12:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IClaimsToken_$10005", + "typeString": "contract IClaimsToken" + } + }, + "id": 10230, + "nodeType": "InheritanceSpecifier", + "src": "6797:12:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10231, + "name": "ClaimsToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10228, + "src": "6811:11:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ClaimsToken_$10228", + "typeString": "contract ClaimsToken" + } + }, + "id": 10232, + "nodeType": "InheritanceSpecifier", + "src": "6811:11:24" + } + ], + "contractDependencies": [ + 9650, + 9719, + 9977, + 10005, + 10228 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 10327, + "linearizedBaseContracts": [ + 10327, + 10228, + 9977, + 9650, + 9719, + 10005 + ], + "name": "ClaimsTokenERC20Extension", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 10234, + "name": "fundsToken", + "nodeType": "VariableDeclaration", + "scope": 10327, + "src": "6880:24:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 10233, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "6880:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 10247, + "nodeType": "Block", + "src": "6937:81:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 10242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10237, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6950:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6950:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10240, + "name": "fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10234, + "src": "6972:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + ], + "id": 10239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6964:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6964:19:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6950:33:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "554e415554484f52495a45445f53454e444552", + "id": 10243, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6985:21:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", + "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" + }, + "value": "UNAUTHORIZED_SENDER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", + "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" + } + ], + "id": 10236, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "6942:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 10244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6942:65:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10245, + "nodeType": "ExpressionStatement", + "src": "6942:65:24" + }, + { + "id": 10246, + "nodeType": "PlaceholderStatement", + "src": "7012:1:24" + } + ] + }, + "documentation": null, + "id": 10248, + "name": "onlyFundsToken", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 10235, + "nodeType": "ParameterList", + "parameters": [], + "src": "6934:2:24" + }, + "src": "6910:108:24", + "visibility": "internal" + }, + { + "body": { + "id": 10272, + "nodeType": "Block", + "src": "7106:84:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 10265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10260, + "name": "_fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10252, + "src": "7127:11:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + ], + "id": 10259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7119:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7119:20:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 10263, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7151:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 10262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7143:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10264, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7143:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7119:34:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10258, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "7111:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 10266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7111:43:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10267, + "nodeType": "ExpressionStatement", + "src": "7111:43:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10268, + "name": "fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10234, + "src": "7161:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10269, + "name": "_fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10252, + "src": "7174:11:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "src": "7161:24:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 10271, + "nodeType": "ExpressionStatement", + "src": "7161:24:24" + } + ] + }, + "documentation": null, + "id": 10273, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 10255, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10250, + "src": "7096:6:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 10256, + "modifierName": { + "argumentTypes": null, + "id": 10254, + "name": "ClaimsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10228, + "src": "7084:11:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ClaimsToken_$10228_$", + "typeString": "type(contract ClaimsToken)" + } + }, + "nodeType": "ModifierInvocation", + "src": "7084:19:24" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10250, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 10273, + "src": "7035:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10249, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7035:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10252, + "name": "_fundsToken", + "nodeType": "VariableDeclaration", + "scope": 10273, + "src": "7051:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 10251, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "7051:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7034:36:24" + }, + "returnParameters": { + "id": 10257, + "nodeType": "ParameterList", + "parameters": [], + "src": "7106:0:24" + }, + "scope": 10327, + "src": "7023:167:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 10299, + "nodeType": "Block", + "src": "7303:175:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10277, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "7316:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7316:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 10279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7329:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7316:14:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 10281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7332:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 10276, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7308:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 10282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7308:27:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10283, + "nodeType": "ExpressionStatement", + "src": "7308:27:24" + }, + { + "assignments": [ + 10285 + ], + "declarations": [ + { + "constant": false, + "id": 10285, + "name": "withdrawableFunds", + "nodeType": "VariableDeclaration", + "scope": 10299, + "src": "7342:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10284, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7342:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10288, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 10286, + "name": "_prepareWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10227, + "src": "7370:16:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () returns (uint256)" + } + }, + "id": 10287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7370:18:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7342:46:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10292, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "7423:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7423:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 10294, + "name": "withdrawableFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10285, + "src": "7435:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10290, + "name": "fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10234, + "src": "7403:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 10291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9661, + "src": "7403:19:24", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 10295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7403:50:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5452414e534645525f4641494c4544", + "id": 10296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7455:17:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", + "typeString": "literal_string \"TRANSFER_FAILED\"" + }, + "value": "TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", + "typeString": "literal_string \"TRANSFER_FAILED\"" + } + ], + "id": 10289, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7395:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 10297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7395:78:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10298, + "nodeType": "ExpressionStatement", + "src": "7395:78:24" + } + ] + }, + "documentation": "@dev Withdraws available funds for user.\r", + "id": 10300, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10274, + "nodeType": "ParameterList", + "parameters": [], + "src": "7275:2:24" + }, + "returnParameters": { + "id": 10275, + "nodeType": "ParameterList", + "parameters": [], + "src": "7303:0:24" + }, + "scope": 10327, + "src": "7253:225:24", + "stateMutability": "payable", + "superFunction": 9992, + "visibility": "external" + }, + { + "body": { + "id": 10325, + "nodeType": "Block", + "src": "7777:100:24", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10311, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7786:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 10312, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7795:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7786:10:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 10324, + "nodeType": "IfStatement", + "src": "7782:91:24", + "trueBody": { + "id": 10323, + "nodeType": "Block", + "src": "7798:75:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10315, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7819:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10314, + "name": "_registerFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10141, + "src": "7804:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 10316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7804:22:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10317, + "nodeType": "ExpressionStatement", + "src": "7804:22:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10319, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10302, + "src": "7851:7:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10320, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7860:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10318, + "name": "FundsReceived", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9983, + "src": "7837:13:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 10321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7837:30:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10322, + "nodeType": "EmitStatement", + "src": "7832:35:24" + } + ] + } + } + ] + }, + "documentation": "@dev For ERC223.\r\nCalls _registerFunds(), whereby total received funds (cumulative) gets updated.\r\n@param _sender Sender of tokens\r\n@param _value Amount of tokens\r", + "id": 10326, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [], + "id": 10309, + "modifierName": { + "argumentTypes": null, + "id": 10308, + "name": "onlyFundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10248, + "src": "7758:14:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7758:16:24" + } + ], + "name": "tokenFallback", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10302, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 10326, + "src": "7698:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10301, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7698:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10304, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10326, + "src": "7715:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10303, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7715:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10306, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10326, + "src": "7731:12:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 10305, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7731:5:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7697:47:24" + }, + "returnParameters": { + "id": 10310, + "nodeType": "ParameterList", + "parameters": [], + "src": "7777:0:24" + }, + "scope": 10327, + "src": "7675:202:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 10328, + "src": "6759:1121:24" + } + ], + "src": "0:7882:24" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol", + "exportedSymbols": { + "ClaimsToken": [ + 10228 + ], + "ClaimsTokenERC20Extension": [ + 10327 + ], + "ERC20Detailed": [ + 9977 + ], + "IClaimsToken": [ + 10005 + ] + }, + "id": 10328, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9919, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:24" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "../oz/SafeMath.sol", + "id": 9920, + "nodeType": "ImportDirective", + "scope": 10328, + "sourceUnit": 9858, + "src": "36:28:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", + "file": "../oz/IERC20.sol", + "id": 9921, + "nodeType": "ImportDirective", + "scope": 10328, + "sourceUnit": 9720, + "src": "66:26:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol", + "file": "../oz/ERC20.sol", + "id": 9922, + "nodeType": "ImportDirective", + "scope": 10328, + "sourceUnit": 9651, + "src": "94:25:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9923, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "212:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 9924, + "nodeType": "InheritanceSpecifier", + "src": "212:6:24" + } + ], + "contractDependencies": [ + 9719 + ], + "contractKind": "contract", + "documentation": "@dev Optional functions from the ERC20 standard.\r", + "fullyImplemented": false, + "id": 9977, + "linearizedBaseContracts": [ + 9977, + 9719 + ], + "name": "ERC20Detailed", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 9926, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 9977, + "src": "226:20:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 9925, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "226:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 9928, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 9977, + "src": "253:22:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 9927, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "253:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 9930, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 9977, + "src": "282:23:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9929, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "282:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 9951, + "nodeType": "Block", + "src": "581:89:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9939, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9926, + "src": "592:5:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9940, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9932, + "src": "600:4:24", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "592:12:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 9942, + "nodeType": "ExpressionStatement", + "src": "592:12:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 9945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9943, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9928, + "src": "615:7:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9944, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9934, + "src": "625:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "615:16:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 9946, + "nodeType": "ExpressionStatement", + "src": "615:16:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 9949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9947, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9930, + "src": "642:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9948, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9936, + "src": "654:8:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "642:20:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 9950, + "nodeType": "ExpressionStatement", + "src": "642:20:24" + } + ] + }, + "documentation": "@dev Sets the values for `name`, `symbol`, and `decimals`. All three of\r\nthese values are immutable: they can only be set once during\r\nconstruction.\r", + "id": 9952, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9937, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9932, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 9952, + "src": "516:18:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9931, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "516:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9934, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 9952, + "src": "536:20:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9933, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "536:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9936, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 9952, + "src": "558:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9935, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "558:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "515:58:24" + }, + "returnParameters": { + "id": 9938, + "nodeType": "ParameterList", + "parameters": [], + "src": "581:0:24" + }, + "scope": 9977, + "src": "503:167:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9959, + "nodeType": "Block", + "src": "792:31:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9957, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9926, + "src": "810:5:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 9956, + "id": 9958, + "nodeType": "Return", + "src": "803:12:24" + } + ] + }, + "documentation": "@dev Returns the name of the token.\r", + "id": 9960, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9953, + "nodeType": "ParameterList", + "parameters": [], + "src": "753:2:24" + }, + "returnParameters": { + "id": 9956, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9955, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9960, + "src": "777:13:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9954, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "777:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "776:15:24" + }, + "scope": 9977, + "src": "740:83:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9967, + "nodeType": "Block", + "src": "996:33:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9965, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9928, + "src": "1014:7:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 9964, + "id": 9966, + "nodeType": "Return", + "src": "1007:14:24" + } + ] + }, + "documentation": "@dev Returns the symbol of the token, usually a shorter version of the\r\nname.\r", + "id": 9968, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9961, + "nodeType": "ParameterList", + "parameters": [], + "src": "957:2:24" + }, + "returnParameters": { + "id": 9964, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9963, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9968, + "src": "981:13:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9962, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "981:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "980:15:24" + }, + "scope": 9977, + "src": "942:87:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9975, + "nodeType": "Block", + "src": "1640:35:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9973, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9930, + "src": "1658:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 9972, + "id": 9974, + "nodeType": "Return", + "src": "1651:16:24" + } + ] + }, + "documentation": "@dev Returns the number of decimals used to get its user representation.\r\nFor example, if `decimals` equals `2`, a balance of `505` tokens should\r\nbe displayed to a user as `5,05` (`505 / 10 ** 2`).\r\n\n * Tokens usually opt for a value of 18, imitating the relationship between\r\nEther and Wei.\r\n\n * NOTE: This information is only used for _display_ purposes: it in\r\nno way affects any of the arithmetic of the contract, including\r\n{IERC20-balanceOf} and {IERC20-transfer}.\r", + "id": 9976, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9969, + "nodeType": "ParameterList", + "parameters": [], + "src": "1609:2:24" + }, + "returnParameters": { + "id": 9972, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9971, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9976, + "src": "1633:5:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9970, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1633:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1632:7:24" + }, + "scope": 9977, + "src": "1592:83:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 10328, + "src": "186:1492:24" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 10005, + "linearizedBaseContracts": [ + 10005 + ], + "name": "IClaimsToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": "@dev This event emits when funds to be deposited are sent to the token contract\r\n@param from contains the address of the sender of the received funds\r\n@param fundsReceived contains the amount of funds received for distribution\r", + "id": 9983, + "name": "FundsReceived", + "nodeType": "EventDefinition", + "parameters": { + "id": 9982, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9979, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 9983, + "src": "1983:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9978, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1983:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9981, + "indexed": false, + "name": "fundsReceived", + "nodeType": "VariableDeclaration", + "scope": 9983, + "src": "2005:21:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2005:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1982:45:24" + }, + "src": "1963:65:24" + }, + { + "anonymous": false, + "documentation": "@dev This event emits when distributed funds are withdrawn by a token holder.\r\n@param by contains the address of the receiver of funds\r\n@param fundsWithdrawn contains the amount of funds that were withdrawn\r", + "id": 9989, + "name": "FundsWithdrawn", + "nodeType": "EventDefinition", + "parameters": { + "id": 9988, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9985, + "indexed": true, + "name": "by", + "nodeType": "VariableDeclaration", + "scope": 9989, + "src": "2286:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9984, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2286:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9987, + "indexed": false, + "name": "fundsWithdrawn", + "nodeType": "VariableDeclaration", + "scope": 9989, + "src": "2306:22:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2306:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2285:44:24" + }, + "src": "2265:65:24" + }, + { + "body": null, + "documentation": "@dev Withdraws available funds for user.\r", + "id": 9992, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdrawFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9990, + "nodeType": "ParameterList", + "parameters": [], + "src": "2415:2:24" + }, + "returnParameters": { + "id": 9991, + "nodeType": "ParameterList", + "parameters": [], + "src": "2434:0:24" + }, + "scope": 10005, + "src": "2393:42:24", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", + "id": 9999, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "availableFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9994, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 9999, + "src": "2691:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2691:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2690:21:24" + }, + "returnParameters": { + "id": 9998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9997, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9999, + "src": "2735:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9996, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2735:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2734:9:24" + }, + "scope": 10005, + "src": "2667:77:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", + "id": 10004, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalReceivedFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10000, + "nodeType": "ParameterList", + "parameters": [], + "src": "2920:2:24" + }, + "returnParameters": { + "id": 10003, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10002, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10004, + "src": "2946:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2946:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2945:9:24" + }, + "scope": 10005, + "src": "2893:62:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 10328, + "src": "1682:1276:24" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10006, + "name": "IClaimsToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10005, + "src": "2986:12:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IClaimsToken_$10005", + "typeString": "contract IClaimsToken" + } + }, + "id": 10007, + "nodeType": "InheritanceSpecifier", + "src": "2986:12:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10008, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9650, + "src": "3000:5:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9650", + "typeString": "contract ERC20" + } + }, + "id": 10009, + "nodeType": "InheritanceSpecifier", + "src": "3000:5:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10010, + "name": "ERC20Detailed", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9977, + "src": "3007:13:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$9977", + "typeString": "contract ERC20Detailed" + } + }, + "id": 10011, + "nodeType": "InheritanceSpecifier", + "src": "3007:13:24" + } + ], + "contractDependencies": [ + 9650, + 9719, + 9977, + 10005 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 10228, + "linearizedBaseContracts": [ + 10228, + 9977, + 9650, + 9719, + 10005 + ], + "name": "ClaimsToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 10014, + "libraryName": { + "contractScope": null, + "id": 10012, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "3033:8:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "3027:27:24", + "typeName": { + "id": 10013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3046:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 10016, + "name": "receivedFunds", + "nodeType": "VariableDeclaration", + "scope": 10228, + "src": "3107:28:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10015, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3107:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 10020, + "name": "processedFunds", + "nodeType": "VariableDeclaration", + "scope": 10228, + "src": "3226:50:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 10019, + "keyType": { + "id": 10017, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3235:7:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3226:28:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 10018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3246:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 10024, + "name": "claimedFunds", + "nodeType": "VariableDeclaration", + "scope": 10228, + "src": "3332:48:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 10023, + "keyType": { + "id": 10021, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3341:7:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3332:28:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 10022, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3352:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 10050, + "nodeType": "Block", + "src": "3471:76:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10035, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10026, + "src": "3482:6:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10043, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130303030", + "id": 10036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3490:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "value": "10000" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10041, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 10037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3499:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "3138", + "id": 10039, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3513:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + } + ], + "id": 10038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3505:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 10040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3505:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3499:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10042, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3498:19:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3490:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10034, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9539, + "src": "3476:5:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 10044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3476:42:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10045, + "nodeType": "ExpressionStatement", + "src": "3476:42:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10046, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "3525:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 10047, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3541:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3525:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10049, + "nodeType": "ExpressionStatement", + "src": "3525:17:24" + } + ] + }, + "documentation": null, + "id": 10051, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "hexValue": "436c61696d73546f6b656e", + "id": 10029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3443:13:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25771c0ba9a97de4408886fe552885a1751acfa735dfd2ef9c66e7b9e8871e71", + "typeString": "literal_string \"ClaimsToken\"" + }, + "value": "ClaimsToken" + }, + { + "argumentTypes": null, + "hexValue": "435354", + "id": 10030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3458:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0626086d51c299e905c42b7a28a0add92109e49b12cb2bd2531769201453ab94", + "typeString": "literal_string \"CST\"" + }, + "value": "CST" + }, + { + "argumentTypes": null, + "hexValue": "3138", + "id": 10031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3465:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + } + ], + "id": 10032, + "modifierName": { + "argumentTypes": null, + "id": 10028, + "name": "ERC20Detailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9977, + "src": "3429:13:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$9977_$", + "typeString": "type(contract ERC20Detailed)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3429:39:24" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10026, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 10051, + "src": "3400:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10025, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3400:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3399:16:24" + }, + "returnParameters": { + "id": 10033, + "nodeType": "ParameterList", + "parameters": [], + "src": "3471:0:24" + }, + "scope": 10228, + "src": "3388:159:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 10075, + "nodeType": "Block", + "src": "3898:95:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10061, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3915:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3915:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 10060, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "3903:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3903:23:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10064, + "nodeType": "ExpressionStatement", + "src": "3903:23:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10066, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10053, + "src": "3943:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10065, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "3931:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3931:16:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10068, + "nodeType": "ExpressionStatement", + "src": "3931:16:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10071, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10053, + "src": "3976:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10072, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10055, + "src": "3981:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10069, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10490, + "src": "3961:5:24", + "typeDescriptions": { + "typeIdentifier": "t_super$_ClaimsToken_$10228", + "typeString": "contract super ClaimsToken" + } + }, + "id": 10070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9343, + "src": "3961:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" + } + }, + "id": 10073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3961:27:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 10059, + "id": 10074, + "nodeType": "Return", + "src": "3954:34:24" + } + ] + }, + "documentation": "@dev Transfer token to a specified address.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _to The address to transfer to\r\n@param _value The amount to be transferred\r", + "id": 10076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10056, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10053, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 10076, + "src": "3839:11:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10052, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3839:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10055, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10076, + "src": "3852:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10054, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3852:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3838:29:24" + }, + "returnParameters": { + "id": 10059, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10058, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10076, + "src": "3890:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10057, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3890:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3889:6:24" + }, + "scope": 10228, + "src": "3821:172:24", + "stateMutability": "nonpayable", + "superFunction": 9343, + "visibility": "public" + }, + { + "body": { + "id": 10102, + "nodeType": "Block", + "src": "4485:101:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10088, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10078, + "src": "4502:5:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10087, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "4490:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4490:18:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10090, + "nodeType": "ExpressionStatement", + "src": "4490:18:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10092, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10080, + "src": "4525:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10091, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "4513:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4513:16:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10094, + "nodeType": "ExpressionStatement", + "src": "4513:16:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10097, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10078, + "src": "4562:5:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10098, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10080, + "src": "4569:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10099, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10082, + "src": "4574:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10095, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10490, + "src": "4543:5:24", + "typeDescriptions": { + "typeIdentifier": "t_super$_ClaimsToken_$10228", + "typeString": "contract super ClaimsToken" + } + }, + "id": 10096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 9397, + "src": "4543:18:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) returns (bool)" + } + }, + "id": 10100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4543:38:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 10086, + "id": 10101, + "nodeType": "Return", + "src": "4536:45:24" + } + ] + }, + "documentation": "@dev Transfer tokens from one address to another.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _from address The address which you want to send tokens from\r\n@param _to address The address which you want to transfer to\r\n@param _value uint256 the amount of tokens to be transferred\r", + "id": 10103, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10083, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10078, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4411:13:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4411:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10080, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4426:11:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10079, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4426:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10082, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4439:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10081, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4439:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4410:44:24" + }, + "returnParameters": { + "id": 10086, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10085, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4477:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10084, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4477:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4476:6:24" + }, + "scope": 10228, + "src": "4389:197:24", + "stateMutability": "nonpayable", + "superFunction": 9397, + "visibility": "public" + }, + { + "body": { + "id": 10110, + "nodeType": "Block", + "src": "4808:30:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10108, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "4820:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10107, + "id": 10109, + "nodeType": "Return", + "src": "4813:20:24" + } + ] + }, + "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", + "id": 10111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalReceivedFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10104, + "nodeType": "ParameterList", + "parameters": [], + "src": "4762:2:24" + }, + "returnParameters": { + "id": 10107, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10106, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10111, + "src": "4797:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10105, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4797:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4796:9:24" + }, + "scope": 10228, + "src": "4735:103:24", + "stateMutability": "view", + "superFunction": 10004, + "visibility": "external" + }, + { + "body": { + "id": 10127, + "nodeType": "Block", + "src": "5156:82:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10122, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "5207:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10124, + "indexExpression": { + "argumentTypes": null, + "id": 10123, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10113, + "src": "5220:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5207:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10119, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10113, + "src": "5190:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10118, + "name": "_calcUnprocessedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10169, + "src": "5168:21:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5168:34:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "5168:38:24", + "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": 10125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5168:65:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10117, + "id": 10126, + "nodeType": "Return", + "src": "5161:72:24" + } + ] + }, + "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", + "id": 10128, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "availableFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10114, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10113, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 10128, + "src": "5094:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5094:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5093:21:24" + }, + "returnParameters": { + "id": 10117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10116, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10128, + "src": "5145:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10115, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5145:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5144:9:24" + }, + "scope": 10228, + "src": "5070:168:24", + "stateMutability": "view", + "superFunction": 9999, + "visibility": "public" + }, + { + "body": { + "id": 10140, + "nodeType": "Block", + "src": "5477:51:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10133, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "5482:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10136, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10130, + "src": "5516:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10134, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "5498:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "5498:17:24", + "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": 10137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5498:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5482:41:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10139, + "nodeType": "ExpressionStatement", + "src": "5482:41:24" + } + ] + }, + "documentation": "@dev Increments cumulative received funds by new received funds.\r\nCalled when ClaimsToken receives funds.\r\n@param _value Amount of tokens / Ether received\r", + "id": 10141, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10130, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10141, + "src": "5447:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10129, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5447:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5446:16:24" + }, + "returnParameters": { + "id": 10132, + "nodeType": "ParameterList", + "parameters": [], + "src": "5477:0:24" + }, + "scope": 10228, + "src": "5423:105:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10168, + "nodeType": "Block", + "src": "5765:158:24", + "statements": [ + { + "assignments": [ + 10149 + ], + "declarations": [ + { + "constant": false, + "id": 10149, + "name": "newReceivedFunds", + "nodeType": "VariableDeclaration", + "scope": 10168, + "src": "5770:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10148, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5770:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10156, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10152, + "name": "processedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10020, + "src": "5815:14:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10154, + "indexExpression": { + "argumentTypes": null, + "id": 10153, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10143, + "src": "5830:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5815:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10150, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "5797:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "5797:17:24", + "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": 10155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5797:46:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5770:73:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 10164, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9296, + "src": "5904:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 10165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5904:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10161, + "name": "newReceivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10149, + "src": "5882:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10158, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10143, + "src": "5865:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10157, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9308, + "src": "5855:9:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5855:22:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 9784, + "src": "5855:26:24", + "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": 10162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5855:44:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9808, + "src": "5855:48:24", + "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": 10166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5855:63:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10147, + "id": 10167, + "nodeType": "Return", + "src": "5848:70:24" + } + ] + }, + "documentation": "@dev Returns payout for a user which can be withdrawn or claimed.\r\n@param _forAddress Address of ClaimsToken holder\r", + "id": 10169, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_calcUnprocessedFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10143, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 10169, + "src": "5701:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5701:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5700:21:24" + }, + "returnParameters": { + "id": 10147, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10146, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10169, + "src": "5754:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5754:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5753:9:24" + }, + "scope": 10228, + "src": "5670:253:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10197, + "nodeType": "Block", + "src": "6080:201:24", + "statements": [ + { + "assignments": [ + 10175 + ], + "declarations": [ + { + "constant": false, + "id": 10175, + "name": "unprocessedFunds", + "nodeType": "VariableDeclaration", + "scope": 10197, + "src": "6085:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10174, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6085:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10179, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10177, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6134:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10176, + "name": "_calcUnprocessedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10169, + "src": "6112:21:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6112:34:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6085:61:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10180, + "name": "processedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10020, + "src": "6153:14:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10182, + "indexExpression": { + "argumentTypes": null, + "id": 10181, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6168:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6153:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10183, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "6183:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6153:43:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10185, + "nodeType": "ExpressionStatement", + "src": "6153:43:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10186, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "6201:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10188, + "indexExpression": { + "argumentTypes": null, + "id": 10187, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6214:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6201:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10193, + "name": "unprocessedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10175, + "src": "6259:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10189, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "6229:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10191, + "indexExpression": { + "argumentTypes": null, + "id": 10190, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6242:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6229:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "6229:29:24", + "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": 10194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6229:47:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6201:75:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10196, + "nodeType": "ExpressionStatement", + "src": "6201:75:24" + } + ] + }, + "documentation": "@dev Claims funds for a user.\r\n@param _forAddress Address of ClaimsToken holder\r", + "id": 10198, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_claimFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10172, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10171, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 10198, + "src": "6050:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10170, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6050:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6049:21:24" + }, + "returnParameters": { + "id": 10173, + "nodeType": "ParameterList", + "parameters": [], + "src": "6080:0:24" + }, + "scope": 10228, + "src": "6029:252:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10226, + "nodeType": "Block", + "src": "6575:177:24", + "statements": [ + { + "assignments": [ + 10204 + ], + "declarations": [ + { + "constant": false, + "id": 10204, + "name": "withdrawableFunds", + "nodeType": "VariableDeclaration", + "scope": 10226, + "src": "6580:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6580:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10209, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10206, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6623:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6623:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 10205, + "name": "availableFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10128, + "src": "6608:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6608:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6580:54:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10210, + "name": "processedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10020, + "src": "6641:14:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10213, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10211, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6656:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6656:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6641:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10214, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "6670:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6641:42:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10216, + "nodeType": "ExpressionStatement", + "src": "6641:42:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10217, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "6688:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10220, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10218, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6701:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6701:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6688:24:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 10221, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6715:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6688:28:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10223, + "nodeType": "ExpressionStatement", + "src": "6688:28:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10224, + "name": "withdrawableFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10204, + "src": "6730:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10202, + "id": 10225, + "nodeType": "Return", + "src": "6723:24:24" + } + ] + }, + "documentation": "@dev Sets claimed but not yet withdrawn funds to 0,\r\nmarks total received funds as processed and\r\nreturns the withdrawable amount for a user.\r\n@return A uint256 representing the withdrawable funds\r", + "id": 10227, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_prepareWithdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10199, + "nodeType": "ParameterList", + "parameters": [], + "src": "6537:2:24" + }, + "returnParameters": { + "id": 10202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10201, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10227, + "src": "6564:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10200, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6564:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6563:9:24" + }, + "scope": 10228, + "src": "6512:240:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 10328, + "src": "2962:3793:24" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10229, + "name": "IClaimsToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10005, + "src": "6797:12:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IClaimsToken_$10005", + "typeString": "contract IClaimsToken" + } + }, + "id": 10230, + "nodeType": "InheritanceSpecifier", + "src": "6797:12:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10231, + "name": "ClaimsToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10228, + "src": "6811:11:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ClaimsToken_$10228", + "typeString": "contract ClaimsToken" + } + }, + "id": 10232, + "nodeType": "InheritanceSpecifier", + "src": "6811:11:24" + } + ], + "contractDependencies": [ + 9650, + 9719, + 9977, + 10005, + 10228 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 10327, + "linearizedBaseContracts": [ + 10327, + 10228, + 9977, + 9650, + 9719, + 10005 + ], + "name": "ClaimsTokenERC20Extension", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 10234, + "name": "fundsToken", + "nodeType": "VariableDeclaration", + "scope": 10327, + "src": "6880:24:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 10233, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "6880:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 10247, + "nodeType": "Block", + "src": "6937:81:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 10242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10237, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6950:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6950:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10240, + "name": "fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10234, + "src": "6972:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + ], + "id": 10239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6964:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6964:19:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6950:33:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "554e415554484f52495a45445f53454e444552", + "id": 10243, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6985:21:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", + "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" + }, + "value": "UNAUTHORIZED_SENDER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", + "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" + } + ], + "id": 10236, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "6942:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 10244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6942:65:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10245, + "nodeType": "ExpressionStatement", + "src": "6942:65:24" + }, + { + "id": 10246, + "nodeType": "PlaceholderStatement", + "src": "7012:1:24" + } + ] + }, + "documentation": null, + "id": 10248, + "name": "onlyFundsToken", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 10235, + "nodeType": "ParameterList", + "parameters": [], + "src": "6934:2:24" + }, + "src": "6910:108:24", + "visibility": "internal" + }, + { + "body": { + "id": 10272, + "nodeType": "Block", + "src": "7106:84:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 10265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10260, + "name": "_fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10252, + "src": "7127:11:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + ], + "id": 10259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7119:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7119:20:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 10263, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7151:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 10262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7143:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10264, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7143:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7119:34:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10258, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "7111:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 10266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7111:43:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10267, + "nodeType": "ExpressionStatement", + "src": "7111:43:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10268, + "name": "fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10234, + "src": "7161:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10269, + "name": "_fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10252, + "src": "7174:11:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "src": "7161:24:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 10271, + "nodeType": "ExpressionStatement", + "src": "7161:24:24" + } + ] + }, + "documentation": null, + "id": 10273, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 10255, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10250, + "src": "7096:6:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 10256, + "modifierName": { + "argumentTypes": null, + "id": 10254, + "name": "ClaimsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10228, + "src": "7084:11:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ClaimsToken_$10228_$", + "typeString": "type(contract ClaimsToken)" + } + }, + "nodeType": "ModifierInvocation", + "src": "7084:19:24" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10250, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 10273, + "src": "7035:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10249, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7035:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10252, + "name": "_fundsToken", + "nodeType": "VariableDeclaration", + "scope": 10273, + "src": "7051:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 10251, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "7051:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7034:36:24" + }, + "returnParameters": { + "id": 10257, + "nodeType": "ParameterList", + "parameters": [], + "src": "7106:0:24" + }, + "scope": 10327, + "src": "7023:167:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 10299, + "nodeType": "Block", + "src": "7303:175:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10277, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "7316:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7316:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 10279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7329:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7316:14:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 10281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7332:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 10276, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7308:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 10282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7308:27:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10283, + "nodeType": "ExpressionStatement", + "src": "7308:27:24" + }, + { + "assignments": [ + 10285 + ], + "declarations": [ + { + "constant": false, + "id": 10285, + "name": "withdrawableFunds", + "nodeType": "VariableDeclaration", + "scope": 10299, + "src": "7342:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10284, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7342:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10288, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 10286, + "name": "_prepareWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10227, + "src": "7370:16:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () returns (uint256)" + } + }, + "id": 10287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7370:18:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7342:46:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10292, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "7423:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7423:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 10294, + "name": "withdrawableFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10285, + "src": "7435:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10290, + "name": "fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10234, + "src": "7403:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 10291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9661, + "src": "7403:19:24", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 10295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7403:50:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5452414e534645525f4641494c4544", + "id": 10296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7455:17:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", + "typeString": "literal_string \"TRANSFER_FAILED\"" + }, + "value": "TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", + "typeString": "literal_string \"TRANSFER_FAILED\"" + } + ], + "id": 10289, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7395:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 10297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7395:78:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10298, + "nodeType": "ExpressionStatement", + "src": "7395:78:24" + } + ] + }, + "documentation": "@dev Withdraws available funds for user.\r", + "id": 10300, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10274, + "nodeType": "ParameterList", + "parameters": [], + "src": "7275:2:24" + }, + "returnParameters": { + "id": 10275, + "nodeType": "ParameterList", + "parameters": [], + "src": "7303:0:24" + }, + "scope": 10327, + "src": "7253:225:24", + "stateMutability": "payable", + "superFunction": 9992, + "visibility": "external" + }, + { + "body": { + "id": 10325, + "nodeType": "Block", + "src": "7777:100:24", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10311, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7786:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 10312, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7795:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7786:10:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 10324, + "nodeType": "IfStatement", + "src": "7782:91:24", + "trueBody": { + "id": 10323, + "nodeType": "Block", + "src": "7798:75:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10315, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7819:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10314, + "name": "_registerFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10141, + "src": "7804:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 10316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7804:22:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10317, + "nodeType": "ExpressionStatement", + "src": "7804:22:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10319, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10302, + "src": "7851:7:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10320, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7860:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10318, + "name": "FundsReceived", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9983, + "src": "7837:13:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 10321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7837:30:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10322, + "nodeType": "EmitStatement", + "src": "7832:35:24" + } + ] + } + } + ] + }, + "documentation": "@dev For ERC223.\r\nCalls _registerFunds(), whereby total received funds (cumulative) gets updated.\r\n@param _sender Sender of tokens\r\n@param _value Amount of tokens\r", + "id": 10326, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [], + "id": 10309, + "modifierName": { + "argumentTypes": null, + "id": 10308, + "name": "onlyFundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10248, + "src": "7758:14:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7758:16:24" + } + ], + "name": "tokenFallback", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10302, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 10326, + "src": "7698:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10301, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7698:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10304, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10326, + "src": "7715:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10303, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7715:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10306, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10326, + "src": "7731:12:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 10305, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7731:5:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7697:47:24" + }, + "returnParameters": { + "id": 10310, + "nodeType": "ParameterList", + "parameters": [], + "src": "7777:0:24" + }, + "scope": 10327, + "src": "7675:202:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 10328, + "src": "6759:1121:24" + } + ], + "src": "0:7882:24" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:20.280Z", + "devdoc": { + "methods": { + "allowance(address,address)": { + "details": "Function to check the amount of tokens that an owner allowed to a spender.\r", + "params": { + "owner": "address The address which owns the funds.\r", + "spender": "address The address which will spend the funds.\r" + }, + "return": "A uint256 specifying the amount of tokens still available for the spender.\r" + }, + "approve(address,uint256)": { + "details": "Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\r Beware that changing an allowance with this method brings the risk that someone may use both the old\r and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\r race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\r https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\r", + "params": { + "spender": "The address which will spend the funds.\r", + "value": "The amount of tokens to be spent.\r" + } + }, + "availableFunds(address)": { + "details": "Returns the amount of funds a given address is able to withdraw currently.\r", + "params": { + "_forAddress": "Address of ClaimsToken holder\r" + }, + "return": "A uint256 representing the available funds for a given account\r" + }, + "balanceOf(address)": { + "details": "Gets the balance of the specified address.\r", + "params": { + "owner": "The address to query the balance of.\r" + }, + "return": "An uint256 representing the amount owned by the passed address.\r" + }, + "decimals()": { + "details": "Returns the number of decimals used to get its user representation.\r For example, if `decimals` equals `2`, a balance of `505` tokens should\r be displayed to a user as `5,05` (`505 / 10 ** 2`).\r * Tokens usually opt for a value of 18, imitating the relationship between\r Ether and Wei.\r * NOTE: This information is only used for _display_ purposes: it in\r no way affects any of the arithmetic of the contract, including\r {IERC20-balanceOf} and {IERC20-transfer}.\r" + }, + "decreaseAllowance(address,uint256)": { + "details": "Decrease the amount of tokens that an owner allowed to a spender.\r approve should be called when allowed_[_spender] == 0. To decrement\r allowed value is better to use this function to avoid 2 calls (and wait until\r the first transaction is mined)\r From MonolithDAO Token.sol\r Emits an Approval event.\r", + "params": { + "spender": "The address which will spend the funds.\r", + "subtractedValue": "The amount of tokens to decrease the allowance by.\r" + } + }, + "increaseAllowance(address,uint256)": { + "details": "Increase the amount of tokens that an owner allowed to a spender.\r approve should be called when allowed_[_spender] == 0. To increment\r allowed value is better to use this function to avoid 2 calls (and wait until\r the first transaction is mined)\r From MonolithDAO Token.sol\r Emits an Approval event.\r", + "params": { + "addedValue": "The amount of tokens to increase the allowance by.\r", + "spender": "The address which will spend the funds.\r" + } + }, + "name()": { + "details": "Returns the name of the token.\r" + }, + "symbol()": { + "details": "Returns the symbol of the token, usually a shorter version of the\r name.\r" + }, + "tokenFallback(address,uint256,bytes)": { + "details": "For ERC223.\r Calls _registerFunds(), whereby total received funds (cumulative) gets updated.\r", + "params": { + "_sender": "Sender of tokens\r", + "_value": "Amount of tokens\r" + } + }, + "totalReceivedFunds()": { + "details": "Get cumulative funds received by ClaimsToken.\r", + "return": "A uint256 representing the total funds received by ClaimsToken\r" + }, + "totalSupply()": { + "details": "Total number of tokens in existence\r" + }, + "transfer(address,uint256)": { + "details": "Transfer token to a specified address.\r Claims funds for both parties, whereby the amount of tokens withdrawn\r is inherited by the new token owner.\r", + "params": { + "_to": "The address to transfer to\r", + "_value": "The amount to be transferred\r" + } + }, + "transferFrom(address,address,uint256)": { + "details": "Transfer tokens from one address to another.\r Claims funds for both parties, whereby the amount of tokens withdrawn\r is inherited by the new token owner.\r", + "params": { + "_from": "address The address which you want to send tokens from\r", + "_to": "address The address which you want to transfer to\r", + "_value": "uint256 the amount of tokens to be transferred\r" + } + }, + "withdrawFunds()": { + "details": "Withdraws available funds for user.\r" + } + } + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/contracts/DAOFactory.json b/src/contracts/DAOFactory.json new file mode 100644 index 0000000..da15e70 --- /dev/null +++ b/src/contracts/DAOFactory.json @@ -0,0 +1,2699 @@ +{ + "contractName": "DAOFactory", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + }, + { + "name": "", + "type": "uint256" + } + ], + "name": "daos", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "daoCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_tokenAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "admin", + "type": "address" + } + ], + "name": "daoAdded", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_admin", + "type": "address" + } + ], + "name": "newDAO", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getContractAddress", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getDAOCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_admin\",\"type\":\"address\"}],\"name\":\"newDAO\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getContractAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getDAOCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"daos\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"daoCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_tokenAddress\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"daoAdded\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/DAOFactory.sol\":\"DAOFactory\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/DAOFactory.sol\":{\"keccak256\":\"0xdeadbc431796f09fba04a8de5d4d3adfb4ea24a40a1c848c3f2e461b656f39cf\",\"urls\":[\"bzzr://b20fc0d6472c8c792756259659120b9a3f216909735ab5eb9e6c18fca3445687\",\"dweb:/ipfs/QmeNDFqqtyGSqPWr3z8pG31yAuZnV2JnzCMg7tAzctEV3a\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Governance.sol\":{\"keccak256\":\"0x6008b164e82e38bbae1f88843ec8963a73a722963b941dd9bde72d4a0e849d80\",\"urls\":[\"bzzr://310d76b367fcb8cd744884b5e57e2a08ee9995ab845909d50f11f14c5f530273\",\"dweb:/ipfs/QmRVebN3g2R9R7HENS45ctw5Cn4wGLr65f8nGjtYkPW2jb\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol\":{\"keccak256\":\"0xa8ace5b5ac3322c9019470d2a1ad1342ef5d984da3d4818554e703b65ceda667\",\"urls\":[\"bzzr://b38168eab9d05f21a7576958f33878d9d31877a12f1f14bda390f3f4fbdaa2a4\",\"dweb:/ipfs/QmWa9cX9gzUkyM9yVwfhd6FsSeh1jpV62sBzdGJm6jRPRX\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol\":{\"keccak256\":\"0x8d08add2e57d2885eb9cda96d2ce54056015247de9adfea8e13c78bb2d9233f2\",\"urls\":[\"bzzr://24804e36486f935a9e98bf507193d1b160db755edba6c9d124a894aef3741ada\",\"dweb:/ipfs/QmauQVeYbGgqJDNxKAceFj1hFD1gfCfAXNBA8vCh3aGYKA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", + "bytecode": "0x60806040526000805534801561001457600080fd5b5060405161314d38038061314d8339818101604052602081101561003757600080fd5b5051600180546001600160a01b0319166001600160a01b039092169190911790556130e6806100676000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063216874441461005c57806332a2c5d01461009e5780633a479fb8146100f6578063bd18993814610110578063d01cf4191461013c575b600080fd5b6100826004803603602081101561007257600080fd5b50356001600160a01b0316610144565b604080516001600160a01b039092168252519081900360200190f35b6100a66102a6565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156100e25781810151838201526020016100ca565b505050509050019250505060405180910390f35b6100fe610311565b60408051918252519081900360200190f35b6100826004803603604081101561012657600080fd5b506001600160a01b038135169060200135610317565b6100fe61034c565b600080826040518060200160405280600160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681525061438060238060236046600a6003600160405161019a90610352565b6001600160a01b038b1681526020808201908b9080838360005b838110156101cc5781810151838201526020016101b4565b505050509050018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019a5050505050505050505050604051809103906000f08015801561022b573d6000803e3d6000fd5b503360008181526002602090815260408083208054600180820183559185528385200180546001600160a01b0319166001600160a01b038816179055835401909255815192835290519293507fbb14e6561111416eda7607c478c09b236c0873cd3699549afe42dd57656b978792918290030190a192915050565b3360009081526002602090815260409182902080548351818402810184019094528084526060939283018282801561030757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116102e9575b5050505050905090565b60005490565b6002602052816000526040600020818154811061033057fe5b6000918252602090912001546001600160a01b03169150829050565b60005481565b612d52806103608339019056fe608060405260006009819055600a819055600c805460ff19169055600d553480156200002a57600080fd5b5060405162002d5238038062002d5283398181016040526101408110156200005157600080fd5b50805160408201516060830151608084015160a085015160c086015160e08701516101008801516101208901516000805460ff191660011790559798602001976001600160a01b038a166200010757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f61646d696e2063616e6e6f742062652030000000000000000000000000000000604482015290519081900360640190fd5b600088116200017757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5f706572696f644475726174696f6e2063616e6e6f7420626520300000000000604482015290519081900360640190fd5b60008711620001e757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5f766f74696e67506572696f644c656e6774682063616e6e6f74206265203000604482015290519081900360640190fd5b670de0b6b3a76400008711156200024a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018062002d0d6021913960400191505060405180910390fd5b670de0b6b3a7640000861115620002c257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f5f6772616365506572696f644c656e6774682065786365656473206c696d6974604482015290519081900360640190fd5b600085116200031d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018062002d2e6024913960400191505060405180910390fd5b60008054610100600160a81b0319166101006001600160a01b038d160217815589906020020151600780546001600160a01b0319166001600160a01b0390921691909117905560005b60018110156200044e5760008a82600181106200037f57fe5b60200201516001600160a01b03161415620003fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f5f617070726f766564546f6b656e2063616e6e6f742062652030000000000000604482015290519081900360640190fd5b600e8a82600181106200040a57fe5b6020908102919091015182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b03909316929092179091550162000366565b506040516200045d9062000586565b604051809103906000f0801580156200047a573d6000803e3d6000fd5b50600880546001600160a01b03199081166001600160a01b039384161790915560018a815560028a815560038a815560048a9055600588905542600655604080516080810182526000805461010090819004891680845260208085018981528587018a815260608701868152938652600f8352878620965187548d16908e161787559051868b015551978501805460ff1916981515989098179097555192909401919091558054839004871680825260108552828220805490971617909555600a8490559354845193845293519304909316927f03995a801b13c36325306deef859ef977ce61c6e15a794281bf969d20482522792918290030190a25050505050505050505062000594565b61051880620027f583390190565b61225180620005a46000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80638340bbce1161010f578063b2643aab116100a2578063da35c66411610071578063da35c664146106a8578063de292789146106b0578063e63bc62d146106b8578063f851a440146106d5576101e5565b8063b2643aab1461063b578063b470aade14610690578063b9e2bea014610698578063c89039c5146106a0576101e5565b806399653fbe116100de57806399653fbe146105e6578063a3dc38001461060e578063a42afd291461062b578063a44a5e7e14610633576101e5565b80638340bbce1461059c5780638b15a605146105a45780639425a476146105ac5780639746d940146105c9576101e5565b80633b214a741161018757806363858f2d1161015657806363858f2d1461057c5780636537214714610584578063797daf701461058c5780637d5b6c7214610594576101e5565b80633b214a741461043d578063402c17941461045a578063505afd7414610480578063590f940b1461049c576101e5565b806308ae4b0c116101c357806308ae4b0c1461039e5780631dafede0146103f45780631e2362ec1461042d5780633a98ef3914610435576101e5565b8063013cf08b146101ea578063044a0ca814610334578063086146d214610384575b600080fd5b6102076004803603602081101561020057600080fd5b50356106dd565b604051808f6001600160a01b03166001600160a01b031681526020018e6001600160a01b03166001600160a01b031681526020018d6001600160a01b03166001600160a01b031681526020018c81526020018b81526020018a8152602001896001600160a01b03166001600160a01b03168152602001888152602001876001600160a01b03166001600160a01b0316815260200186815260200185815260200184815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156102ec5781810151838201526020016102d4565b50505050905090810190601f1680156103195780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b6103606004803603604081101561034a57600080fd5b506001600160a01b038135169060200135610840565b6040518082600281111561037057fe5b60ff16815260200191505060405180910390f35b61038c610947565b60408051918252519081900360200190f35b6103c4600480360360208110156103b457600080fd5b50356001600160a01b0316610976565b604080516001600160a01b0390951685526020850193909352901515838301526060830152519081900360800190f35b6104116004803603602081101561040a57600080fd5b50356109ad565b604080516001600160a01b039092168252519081900360200190f35b61038c6109d4565b61038c6109da565b61038c6004803603602081101561045357600080fd5b50356109e0565b6104116004803603602081101561047057600080fd5b50356001600160a01b03166109fe565b610488610a19565b604080519115158252519081900360200190f35b61038c60048036036101008110156104b357600080fd5b6001600160a01b038235811692602081013592604082013592606083013592608081013582169260a08201359260c0830135169190810190610100810160e082013564010000000081111561050757600080fd5b82018360208201111561051957600080fd5b8035906020019184600183028401116401000000008311171561053b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a22945050505050565b61038c610b5d565b61038c610b63565b61038c610b69565b61038c610b6f565b61038c610b75565b61038c610b7b565b610488600480360360208110156105c257600080fd5b5035610b81565b61038c600480360360208110156105df57600080fd5b5035610ba8565b61060c600480360360408110156105fc57600080fd5b508035906020013560ff16610ee5565b005b6104886004803603602081101561062457600080fd5b50356112eb565b610411611394565b61038c6113a3565b6106586004803603602081101561065157600080fd5b50356113a9565b604051808260c080838360005b8381101561067d578181015183820152602001610665565b5050505090500191505060405180910390f35b61038c611413565b61038c611419565b61041161141f565b61038c61142e565b61038c611434565b61060c600480360360208110156106ce57600080fd5b503561143a565b610411611736565b60116020528060005260406000206000915090508060000160009054906101000a90046001600160a01b0316908060010160009054906101000a90046001600160a01b0316908060020160009054906101000a90046001600160a01b0316908060030154908060040154908060050154908060060160009054906101000a90046001600160a01b0316908060070154908060080160009054906101000a90046001600160a01b03169080600901549080600a01549080600b01549080600d018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108305780601f1061080557610100808354040283529160200191610830565b820191906000526020600020905b81548152906001019060200180831161081357829003601f168201915b50505050509080600e015490508e565b6001600160a01b0382166000908152600f602052604081206002015460ff166108a8576040805162461bcd60e51b81526020600482015260156024820152741b595b58995c88191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b60125482106108f8576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b601160006012848154811061090957fe5b6000918252602080832090910154835282810193909352604091820181206001600160a01b0387168252600f0190925290205460ff16905092915050565b60006109706001546109646006544261174a90919063ffffffff16565b9063ffffffff61175f16565b90505b90565b600f6020526000908152604090208054600182015460028301546003909301546001600160a01b0390921692909160ff9091169084565b600e81815481106109ba57fe5b6000918252602090912001546001600160a01b0316905081565b60045481565b600a5481565b601281815481106109ed57fe5b600091825260209091200154905081565b6010602052600090815260409020546001600160a01b031681565b600c5460ff1681565b6000805460ff16610a68576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff19169055670de0b6b3a7640000881115610acf576040805162461bcd60e51b815260206004820152601960248201527f746f6f206d616e79207368617265732072657175657374656400000000000000604482015290519081900360640190fd5b6001600160a01b038916610b22576040805162461bcd60e51b815260206004820152601560248201527406170706c6963616e742063616e6e6f74206265203605c1b604482015290519081900360640190fd5b610b2a611f66565b610b3b8a8a8a8a8a8a8a8a89611781565b5050600954600019016000805460ff1916600117905598975050505050505050565b60035481565b600b5481565b60125490565b60065481565b60025481565b60055481565b6000610b9860025483611a4290919063ffffffff16565b610ba0610947565b101592915050565b6000805460ff16610bee576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff19168155338152601060209081526040808320546001600160a01b03168352600f909152902060010154610c60576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b600082815260116020526040902060018101546001600160a01b0316610ccd576040805162461bcd60e51b815260206004820181905260248201527f70726f706f73616c206d7573742068617665206265656e2070726f706f736564604482015290519081900360640190fd5b600c81015460ff1615610d115760405162461bcd60e51b81526004018080602001828103825260238152602001806121b56023913960400191505060405180910390fd5b600c8101546301000000900460ff1615610d72576040805162461bcd60e51b815260206004820152601b60248201527f70726f706f73616c20686173206265656e2063616e63656c6c65640000000000604482015290519081900360640190fd5b6000610de76001610ddb610d84610947565b60125415610dd35760128054601191600091610da790600163ffffffff61174a16565b81548110610db157fe5b9060005260206000200154815260200190815260200160002060090154610dd6565b60005b611a5b565b9063ffffffff611a4216565b60098301819055336000818152601060205260408120546002860180546001600160a01b0319166001600160a01b039092169182179055600c8601805460ff19166001908117909155601280548083018255938190527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449093018990559154939450928392917f2a383a979381335e3eb401ac01dd8083e024ff0256bf5338456ffc0063390bbd918991610e9b919061174a565b604080519283526020830191909152818101879052519081900360600190a3601254610ece90600163ffffffff61174a16565b93505050506000805460ff19166001179055919050565b60005460ff16610f2a576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff19168155338152601060209081526040808320546001600160a01b03168352600f909152902060010154610f9c576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b336000908152601060209081526040808320546001600160a01b0316808452600f9092529091206012548410611013576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6000601160006012878154811061102657fe5b90600052602060002001548152602001908152602001600020905060038460ff161061108f576040805162461bcd60e51b81526020600482015260136024820152726d757374206265206c657373207468616e203360681b604482015290519081900360640190fd5b60008460ff1660028111156110a057fe5b90506110af8260090154610b81565b156110eb5760405162461bcd60e51b81526004018080602001828103825260228152602001806121d86022913960400191505060405180910390fd5b6001600160a01b0384166000908152600f8301602052604081205460ff16600281111561111457fe5b14611166576040805162461bcd60e51b815260206004820152601860248201527f6d656d6265722068617320616c726561647920766f7465640000000000000000604482015290519081900360640190fd5b600181600281111561117457fe5b148061118b5750600281600281111561118957fe5b145b6111dc576040805162461bcd60e51b815260206004820152601d60248201527f766f7465206d7573742062652065697468657220596573206f72204e6f000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600f830160205260409020805482919060ff1916600183600281111561120d57fe5b0217905550600181600281111561122057fe5b141561125d576001830154600a83015461123f9163ffffffff611a4216565b600a830155600383015486111561125857600383018690555b611290565b600281600281111561126b57fe5b1415611290576001830154600b83015461128a9163ffffffff611a4216565b600b8301555b6040805160ff8716815290516001600160a01b03861691339189917f29bf0061f2faa9daa482f061b116195432d435536d8af4ae6b3c5dd78223679b919081900360200190a450506000805460ff1916600117905550505050565b601254600090821061133e576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b601160006012848154811061134f57fe5b90600052602060002001548152602001908152602001600020600c0160016006811061137757fe5b602081049091015460ff601f9092166101000a9004169050919050565b6008546001600160a01b031681565b600d5481565b6113b1611f66565b600082815260116020526040808220815160c081019283905292600c909101916006918390855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116113d8575094979650505050505050565b60015481565b60095490565b6007546001600160a01b031681565b60095481565b600b5490565b60005460ff1661147f576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff1916905561149281611a72565b6000601282815481106114a157fe5b600091825260208083209190910154808352601190915260408220600c8101805461ff00191661010017905590925090806114db85611d83565b91509150670de0b6b3a76400006115018460030154600a54611a4290919063ffffffff16565b111561150c57600091505b81156116e3576001600b55600c8301805462ff000019166201000017905582546001600160a01b03166000908152600f602052604090206002015460ff16156115a257600383015483546001600160a01b03166000908152600f60205260409020600101546115809163ffffffff611a4216565b83546001600160a01b03166000908152600f60205260409020600101556116c4565b82546001600160a01b039081166000908152601060209081526040808320549093168252600f9052206002015460ff16156116265782546001600160a01b0390811660009081526010602090815260408083205490931680835283832080546001600160a01b03199081168317909155600f90925292909120805490911690911790555b6040805160808101825284546001600160a01b0390811680835260038088015460208086019182526001868801818152600060608901818152968152600f8452898120985189549089166001600160a01b0319918216178a559451928901929092555160028801805491151560ff19909216919091179055935195909201949094558754909216808252601090925292909220805490911690911790555b6003830154600a546116db9163ffffffff611a4216565b600a556116e9565b6002600b555b6040805183151581529051859187917f86f74240ecee9e4230d26ff92e17fee978460d9c0f78f5c88b2864c9e7a494279181900360200190a350506000805460ff19166001179055505050565b60005461010090046001600160a01b031681565b60008282111561175957600080fd5b50900390565b600080821161176d57600080fd5b600082848161177857fe5b04949350505050565b611789611f84565b604051806101e001604052808b6001600160a01b03168152602001336001600160a01b0316815260200160006001600160a01b031681526020018a8152602001898152602001888152602001876001600160a01b03168152602001868152602001856001600160a01b03168152602001600081526020016000815260200160008152602001838152602001848152602001600081525090508060116000600954815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060e082015181600701556101008201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c0190600661197a92919061202d565b506101a0820151805161199791600d8401916020909101906120bf565b506101c09190910151600e90910155336000818152601060209081526040918290205460095483519081529182018d90528183018c9052606082018b90526001600160a01b038a8116608084015260a083018a905288811660c0840152925190831693928e1692849290917f1facc413faf060d5cc5c8bc12d8fe29e5c530eb98e2475c76733ec749787a7509181900360e00190a45050600980546001019055505050505050505050565b600082820183811015611a5457600080fd5b9392505050565b600081831015611a6b5781611a54565b5090919050565b6012548110611ac2576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b611aca611f84565b6011600060128481548110611adb57fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff161515815260206001928301818104948501949093039092029101808411611bb157505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152938201939291830182828015611c745780601f10611c4957610100808354040283529160200191611c74565b820191906000526020600020905b815481529060010190602001808311611c5757829003601f168201915b50505050508152602001600e820154815250509050806101800151600160068110611c9b57fe5b602002015115611cdc5760405162461bcd60e51b81526004018080602001828103825260238152602001806121fa6023913960400191505060405180910390fd5b811580611d445750601160006012611cfb85600163ffffffff61174a16565b81548110611d0557fe5b90600052602060002001548152602001908152602001600020600c01600160068110611d2d57fe5b602081049091015460ff601f9092166101000a9004165b611d7f5760405162461bcd60e51b81526004018080602001828103825260238152602001806121926023913960400191505060405180910390fd5b5050565b600080611d8e611f84565b6011600060128681548110611d9f57fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff161515815260206001928301818104948501949093039092029101808411611e7557505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152938201939291830182828015611f385780601f10611f0d57610100808354040283529160200191611f38565b820191906000526020600020905b815481529060010190602001808311611f1b57829003601f168201915b5050509183525050600e91909101546020909101526101608101516101409091015111946000945092505050565b6040518060c001604052806006906020820280388339509192915050565b60405180610280016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001612019611f66565b815260200160608152602001600081525090565b6001830191839082156120af5791602002820160005b8382111561208057835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302612043565b80156120ad5782816101000a81549060ff0219169055600101602081600001049283019260010302612080565b505b506120bb929150612139565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061210057805160ff191683800117855561212d565b8280016001018555821561212d579182015b8281111561212d578251825591602001919060010190612112565b506120bb929150612157565b61097391905b808211156120bb57805460ff1916815560010161213f565b61097391905b808211156120bb576000815560010161215d56fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c0070726576696f75732070726f706f73616c206d7573742062652070726f63657373656470726f706f73616c2068617320616c7265616479206265656e2073706f6e736f72656470726f706f73616c20766f74696e6720706572696f6420686173206578706972656470726f706f73616c2068617320616c7265616479206265656e2070726f636573736564a265627a7a723058204aadd5a65785cc61785723b74e34bd108bbb4ad24956b9ecd95015be2e7f326b64736f6c63430005090032608060405234801561001057600080fd5b50600080546001600160a01b031916331790556104e6806100326000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301e3366714610046578063732c8f57146100905780638da5cb5b1461014f575b600080fd5b61007c6004803603606081101561005c57600080fd5b506001600160a01b03813581169160208101359091169060400135610173565b604080519115158252519081900360200190f35b61007c600480360360808110156100a657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156100dd57600080fd5b8201836020820111156100ef57600080fd5b8035906020019184602083028401116401000000008311171561011157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061026c945050505050565b61015761044e565b604080516001600160a01b039092168252519081900360200190f35b600080546001600160a01b0316331461018b57600080fd5b836001600160a01b0316836001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398846040518082815260200191505060405180910390a3836001600160a01b031663a9059cbb84846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561023657600080fd5b505af115801561024a573d6000803e3d6000fd5b505050506040513d602081101561026057600080fd5b505190505b9392505050565b600080546001600160a01b0316331461028457600080fd5b60005b82518110156104425760006103318483815181106102a157fe5b60200260200101516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156102fe57600080fd5b505afa158015610312573d6000803e3d6000fd5b505050506040513d602081101561032857600080fd5b5051878761045d565b905083828151811061033f57fe5b60200260200101516001600160a01b0316876001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398836040518082815260200191505060405180910390a383828151811061039d57fe5b60200260200101516001600160a01b031663a9059cbb88836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b505050506040513d602081101561042e57600080fd5b505161043957600080fd5b50600101610287565b50600195945050505050565b6000546001600160a01b031681565b60008161046957600080fd5b8361047657506000610265565b8383028385828161048357fe5b04141561049c5782818161049357fe5b04915050610265565b838386816104a657fe5b04029594505050505056fea265627a7a72305820600a90e68081feae486f77ec58352ebe4f959e2362fac128a8d418122da6121464736f6c634300050900325f766f74696e67506572696f644c656e6774682065786365656473206c696d69745f656d657267656e637950726f63657373696e67576169742063616e6e6f742062652030a265627a7a7230582079f1b5475a4ba4a4bde5586d1a3a1ca470c9023ac8016950766732b9eca2ee9b64736f6c63430005090032", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c8063216874441461005c57806332a2c5d01461009e5780633a479fb8146100f6578063bd18993814610110578063d01cf4191461013c575b600080fd5b6100826004803603602081101561007257600080fd5b50356001600160a01b0316610144565b604080516001600160a01b039092168252519081900360200190f35b6100a66102a6565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156100e25781810151838201526020016100ca565b505050509050019250505060405180910390f35b6100fe610311565b60408051918252519081900360200190f35b6100826004803603604081101561012657600080fd5b506001600160a01b038135169060200135610317565b6100fe61034c565b600080826040518060200160405280600160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681525061438060238060236046600a6003600160405161019a90610352565b6001600160a01b038b1681526020808201908b9080838360005b838110156101cc5781810151838201526020016101b4565b505050509050018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019a5050505050505050505050604051809103906000f08015801561022b573d6000803e3d6000fd5b503360008181526002602090815260408083208054600180820183559185528385200180546001600160a01b0319166001600160a01b038816179055835401909255815192835290519293507fbb14e6561111416eda7607c478c09b236c0873cd3699549afe42dd57656b978792918290030190a192915050565b3360009081526002602090815260409182902080548351818402810184019094528084526060939283018282801561030757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116102e9575b5050505050905090565b60005490565b6002602052816000526040600020818154811061033057fe5b6000918252602090912001546001600160a01b03169150829050565b60005481565b612d52806103608339019056fe608060405260006009819055600a819055600c805460ff19169055600d553480156200002a57600080fd5b5060405162002d5238038062002d5283398181016040526101408110156200005157600080fd5b50805160408201516060830151608084015160a085015160c086015160e08701516101008801516101208901516000805460ff191660011790559798602001976001600160a01b038a166200010757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f61646d696e2063616e6e6f742062652030000000000000000000000000000000604482015290519081900360640190fd5b600088116200017757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5f706572696f644475726174696f6e2063616e6e6f7420626520300000000000604482015290519081900360640190fd5b60008711620001e757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5f766f74696e67506572696f644c656e6774682063616e6e6f74206265203000604482015290519081900360640190fd5b670de0b6b3a76400008711156200024a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018062002d0d6021913960400191505060405180910390fd5b670de0b6b3a7640000861115620002c257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f5f6772616365506572696f644c656e6774682065786365656473206c696d6974604482015290519081900360640190fd5b600085116200031d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018062002d2e6024913960400191505060405180910390fd5b60008054610100600160a81b0319166101006001600160a01b038d160217815589906020020151600780546001600160a01b0319166001600160a01b0390921691909117905560005b60018110156200044e5760008a82600181106200037f57fe5b60200201516001600160a01b03161415620003fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f5f617070726f766564546f6b656e2063616e6e6f742062652030000000000000604482015290519081900360640190fd5b600e8a82600181106200040a57fe5b6020908102919091015182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b03909316929092179091550162000366565b506040516200045d9062000586565b604051809103906000f0801580156200047a573d6000803e3d6000fd5b50600880546001600160a01b03199081166001600160a01b039384161790915560018a815560028a815560038a815560048a9055600588905542600655604080516080810182526000805461010090819004891680845260208085018981528587018a815260608701868152938652600f8352878620965187548d16908e161787559051868b015551978501805460ff1916981515989098179097555192909401919091558054839004871680825260108552828220805490971617909555600a8490559354845193845293519304909316927f03995a801b13c36325306deef859ef977ce61c6e15a794281bf969d20482522792918290030190a25050505050505050505062000594565b61051880620027f583390190565b61225180620005a46000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80638340bbce1161010f578063b2643aab116100a2578063da35c66411610071578063da35c664146106a8578063de292789146106b0578063e63bc62d146106b8578063f851a440146106d5576101e5565b8063b2643aab1461063b578063b470aade14610690578063b9e2bea014610698578063c89039c5146106a0576101e5565b806399653fbe116100de57806399653fbe146105e6578063a3dc38001461060e578063a42afd291461062b578063a44a5e7e14610633576101e5565b80638340bbce1461059c5780638b15a605146105a45780639425a476146105ac5780639746d940146105c9576101e5565b80633b214a741161018757806363858f2d1161015657806363858f2d1461057c5780636537214714610584578063797daf701461058c5780637d5b6c7214610594576101e5565b80633b214a741461043d578063402c17941461045a578063505afd7414610480578063590f940b1461049c576101e5565b806308ae4b0c116101c357806308ae4b0c1461039e5780631dafede0146103f45780631e2362ec1461042d5780633a98ef3914610435576101e5565b8063013cf08b146101ea578063044a0ca814610334578063086146d214610384575b600080fd5b6102076004803603602081101561020057600080fd5b50356106dd565b604051808f6001600160a01b03166001600160a01b031681526020018e6001600160a01b03166001600160a01b031681526020018d6001600160a01b03166001600160a01b031681526020018c81526020018b81526020018a8152602001896001600160a01b03166001600160a01b03168152602001888152602001876001600160a01b03166001600160a01b0316815260200186815260200185815260200184815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156102ec5781810151838201526020016102d4565b50505050905090810190601f1680156103195780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b6103606004803603604081101561034a57600080fd5b506001600160a01b038135169060200135610840565b6040518082600281111561037057fe5b60ff16815260200191505060405180910390f35b61038c610947565b60408051918252519081900360200190f35b6103c4600480360360208110156103b457600080fd5b50356001600160a01b0316610976565b604080516001600160a01b0390951685526020850193909352901515838301526060830152519081900360800190f35b6104116004803603602081101561040a57600080fd5b50356109ad565b604080516001600160a01b039092168252519081900360200190f35b61038c6109d4565b61038c6109da565b61038c6004803603602081101561045357600080fd5b50356109e0565b6104116004803603602081101561047057600080fd5b50356001600160a01b03166109fe565b610488610a19565b604080519115158252519081900360200190f35b61038c60048036036101008110156104b357600080fd5b6001600160a01b038235811692602081013592604082013592606083013592608081013582169260a08201359260c0830135169190810190610100810160e082013564010000000081111561050757600080fd5b82018360208201111561051957600080fd5b8035906020019184600183028401116401000000008311171561053b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a22945050505050565b61038c610b5d565b61038c610b63565b61038c610b69565b61038c610b6f565b61038c610b75565b61038c610b7b565b610488600480360360208110156105c257600080fd5b5035610b81565b61038c600480360360208110156105df57600080fd5b5035610ba8565b61060c600480360360408110156105fc57600080fd5b508035906020013560ff16610ee5565b005b6104886004803603602081101561062457600080fd5b50356112eb565b610411611394565b61038c6113a3565b6106586004803603602081101561065157600080fd5b50356113a9565b604051808260c080838360005b8381101561067d578181015183820152602001610665565b5050505090500191505060405180910390f35b61038c611413565b61038c611419565b61041161141f565b61038c61142e565b61038c611434565b61060c600480360360208110156106ce57600080fd5b503561143a565b610411611736565b60116020528060005260406000206000915090508060000160009054906101000a90046001600160a01b0316908060010160009054906101000a90046001600160a01b0316908060020160009054906101000a90046001600160a01b0316908060030154908060040154908060050154908060060160009054906101000a90046001600160a01b0316908060070154908060080160009054906101000a90046001600160a01b03169080600901549080600a01549080600b01549080600d018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108305780601f1061080557610100808354040283529160200191610830565b820191906000526020600020905b81548152906001019060200180831161081357829003601f168201915b50505050509080600e015490508e565b6001600160a01b0382166000908152600f602052604081206002015460ff166108a8576040805162461bcd60e51b81526020600482015260156024820152741b595b58995c88191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b60125482106108f8576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b601160006012848154811061090957fe5b6000918252602080832090910154835282810193909352604091820181206001600160a01b0387168252600f0190925290205460ff16905092915050565b60006109706001546109646006544261174a90919063ffffffff16565b9063ffffffff61175f16565b90505b90565b600f6020526000908152604090208054600182015460028301546003909301546001600160a01b0390921692909160ff9091169084565b600e81815481106109ba57fe5b6000918252602090912001546001600160a01b0316905081565b60045481565b600a5481565b601281815481106109ed57fe5b600091825260209091200154905081565b6010602052600090815260409020546001600160a01b031681565b600c5460ff1681565b6000805460ff16610a68576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff19169055670de0b6b3a7640000881115610acf576040805162461bcd60e51b815260206004820152601960248201527f746f6f206d616e79207368617265732072657175657374656400000000000000604482015290519081900360640190fd5b6001600160a01b038916610b22576040805162461bcd60e51b815260206004820152601560248201527406170706c6963616e742063616e6e6f74206265203605c1b604482015290519081900360640190fd5b610b2a611f66565b610b3b8a8a8a8a8a8a8a8a89611781565b5050600954600019016000805460ff1916600117905598975050505050505050565b60035481565b600b5481565b60125490565b60065481565b60025481565b60055481565b6000610b9860025483611a4290919063ffffffff16565b610ba0610947565b101592915050565b6000805460ff16610bee576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff19168155338152601060209081526040808320546001600160a01b03168352600f909152902060010154610c60576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b600082815260116020526040902060018101546001600160a01b0316610ccd576040805162461bcd60e51b815260206004820181905260248201527f70726f706f73616c206d7573742068617665206265656e2070726f706f736564604482015290519081900360640190fd5b600c81015460ff1615610d115760405162461bcd60e51b81526004018080602001828103825260238152602001806121b56023913960400191505060405180910390fd5b600c8101546301000000900460ff1615610d72576040805162461bcd60e51b815260206004820152601b60248201527f70726f706f73616c20686173206265656e2063616e63656c6c65640000000000604482015290519081900360640190fd5b6000610de76001610ddb610d84610947565b60125415610dd35760128054601191600091610da790600163ffffffff61174a16565b81548110610db157fe5b9060005260206000200154815260200190815260200160002060090154610dd6565b60005b611a5b565b9063ffffffff611a4216565b60098301819055336000818152601060205260408120546002860180546001600160a01b0319166001600160a01b039092169182179055600c8601805460ff19166001908117909155601280548083018255938190527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449093018990559154939450928392917f2a383a979381335e3eb401ac01dd8083e024ff0256bf5338456ffc0063390bbd918991610e9b919061174a565b604080519283526020830191909152818101879052519081900360600190a3601254610ece90600163ffffffff61174a16565b93505050506000805460ff19166001179055919050565b60005460ff16610f2a576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff19168155338152601060209081526040808320546001600160a01b03168352600f909152902060010154610f9c576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b336000908152601060209081526040808320546001600160a01b0316808452600f9092529091206012548410611013576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6000601160006012878154811061102657fe5b90600052602060002001548152602001908152602001600020905060038460ff161061108f576040805162461bcd60e51b81526020600482015260136024820152726d757374206265206c657373207468616e203360681b604482015290519081900360640190fd5b60008460ff1660028111156110a057fe5b90506110af8260090154610b81565b156110eb5760405162461bcd60e51b81526004018080602001828103825260228152602001806121d86022913960400191505060405180910390fd5b6001600160a01b0384166000908152600f8301602052604081205460ff16600281111561111457fe5b14611166576040805162461bcd60e51b815260206004820152601860248201527f6d656d6265722068617320616c726561647920766f7465640000000000000000604482015290519081900360640190fd5b600181600281111561117457fe5b148061118b5750600281600281111561118957fe5b145b6111dc576040805162461bcd60e51b815260206004820152601d60248201527f766f7465206d7573742062652065697468657220596573206f72204e6f000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600f830160205260409020805482919060ff1916600183600281111561120d57fe5b0217905550600181600281111561122057fe5b141561125d576001830154600a83015461123f9163ffffffff611a4216565b600a830155600383015486111561125857600383018690555b611290565b600281600281111561126b57fe5b1415611290576001830154600b83015461128a9163ffffffff611a4216565b600b8301555b6040805160ff8716815290516001600160a01b03861691339189917f29bf0061f2faa9daa482f061b116195432d435536d8af4ae6b3c5dd78223679b919081900360200190a450506000805460ff1916600117905550505050565b601254600090821061133e576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b601160006012848154811061134f57fe5b90600052602060002001548152602001908152602001600020600c0160016006811061137757fe5b602081049091015460ff601f9092166101000a9004169050919050565b6008546001600160a01b031681565b600d5481565b6113b1611f66565b600082815260116020526040808220815160c081019283905292600c909101916006918390855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116113d8575094979650505050505050565b60015481565b60095490565b6007546001600160a01b031681565b60095481565b600b5490565b60005460ff1661147f576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff1916905561149281611a72565b6000601282815481106114a157fe5b600091825260208083209190910154808352601190915260408220600c8101805461ff00191661010017905590925090806114db85611d83565b91509150670de0b6b3a76400006115018460030154600a54611a4290919063ffffffff16565b111561150c57600091505b81156116e3576001600b55600c8301805462ff000019166201000017905582546001600160a01b03166000908152600f602052604090206002015460ff16156115a257600383015483546001600160a01b03166000908152600f60205260409020600101546115809163ffffffff611a4216565b83546001600160a01b03166000908152600f60205260409020600101556116c4565b82546001600160a01b039081166000908152601060209081526040808320549093168252600f9052206002015460ff16156116265782546001600160a01b0390811660009081526010602090815260408083205490931680835283832080546001600160a01b03199081168317909155600f90925292909120805490911690911790555b6040805160808101825284546001600160a01b0390811680835260038088015460208086019182526001868801818152600060608901818152968152600f8452898120985189549089166001600160a01b0319918216178a559451928901929092555160028801805491151560ff19909216919091179055935195909201949094558754909216808252601090925292909220805490911690911790555b6003830154600a546116db9163ffffffff611a4216565b600a556116e9565b6002600b555b6040805183151581529051859187917f86f74240ecee9e4230d26ff92e17fee978460d9c0f78f5c88b2864c9e7a494279181900360200190a350506000805460ff19166001179055505050565b60005461010090046001600160a01b031681565b60008282111561175957600080fd5b50900390565b600080821161176d57600080fd5b600082848161177857fe5b04949350505050565b611789611f84565b604051806101e001604052808b6001600160a01b03168152602001336001600160a01b0316815260200160006001600160a01b031681526020018a8152602001898152602001888152602001876001600160a01b03168152602001868152602001856001600160a01b03168152602001600081526020016000815260200160008152602001838152602001848152602001600081525090508060116000600954815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060e082015181600701556101008201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c0190600661197a92919061202d565b506101a0820151805161199791600d8401916020909101906120bf565b506101c09190910151600e90910155336000818152601060209081526040918290205460095483519081529182018d90528183018c9052606082018b90526001600160a01b038a8116608084015260a083018a905288811660c0840152925190831693928e1692849290917f1facc413faf060d5cc5c8bc12d8fe29e5c530eb98e2475c76733ec749787a7509181900360e00190a45050600980546001019055505050505050505050565b600082820183811015611a5457600080fd5b9392505050565b600081831015611a6b5781611a54565b5090919050565b6012548110611ac2576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b611aca611f84565b6011600060128481548110611adb57fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff161515815260206001928301818104948501949093039092029101808411611bb157505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152938201939291830182828015611c745780601f10611c4957610100808354040283529160200191611c74565b820191906000526020600020905b815481529060010190602001808311611c5757829003601f168201915b50505050508152602001600e820154815250509050806101800151600160068110611c9b57fe5b602002015115611cdc5760405162461bcd60e51b81526004018080602001828103825260238152602001806121fa6023913960400191505060405180910390fd5b811580611d445750601160006012611cfb85600163ffffffff61174a16565b81548110611d0557fe5b90600052602060002001548152602001908152602001600020600c01600160068110611d2d57fe5b602081049091015460ff601f9092166101000a9004165b611d7f5760405162461bcd60e51b81526004018080602001828103825260238152602001806121926023913960400191505060405180910390fd5b5050565b600080611d8e611f84565b6011600060128681548110611d9f57fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff161515815260206001928301818104948501949093039092029101808411611e7557505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152938201939291830182828015611f385780601f10611f0d57610100808354040283529160200191611f38565b820191906000526020600020905b815481529060010190602001808311611f1b57829003601f168201915b5050509183525050600e91909101546020909101526101608101516101409091015111946000945092505050565b6040518060c001604052806006906020820280388339509192915050565b60405180610280016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001612019611f66565b815260200160608152602001600081525090565b6001830191839082156120af5791602002820160005b8382111561208057835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302612043565b80156120ad5782816101000a81549060ff0219169055600101602081600001049283019260010302612080565b505b506120bb929150612139565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061210057805160ff191683800117855561212d565b8280016001018555821561212d579182015b8281111561212d578251825591602001919060010190612112565b506120bb929150612157565b61097391905b808211156120bb57805460ff1916815560010161213f565b61097391905b808211156120bb576000815560010161215d56fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c0070726576696f75732070726f706f73616c206d7573742062652070726f63657373656470726f706f73616c2068617320616c7265616479206265656e2073706f6e736f72656470726f706f73616c20766f74696e6720706572696f6420686173206578706972656470726f706f73616c2068617320616c7265616479206265656e2070726f636573736564a265627a7a723058204aadd5a65785cc61785723b74e34bd108bbb4ad24956b9ecd95015be2e7f326b64736f6c63430005090032608060405234801561001057600080fd5b50600080546001600160a01b031916331790556104e6806100326000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301e3366714610046578063732c8f57146100905780638da5cb5b1461014f575b600080fd5b61007c6004803603606081101561005c57600080fd5b506001600160a01b03813581169160208101359091169060400135610173565b604080519115158252519081900360200190f35b61007c600480360360808110156100a657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156100dd57600080fd5b8201836020820111156100ef57600080fd5b8035906020019184602083028401116401000000008311171561011157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061026c945050505050565b61015761044e565b604080516001600160a01b039092168252519081900360200190f35b600080546001600160a01b0316331461018b57600080fd5b836001600160a01b0316836001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398846040518082815260200191505060405180910390a3836001600160a01b031663a9059cbb84846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561023657600080fd5b505af115801561024a573d6000803e3d6000fd5b505050506040513d602081101561026057600080fd5b505190505b9392505050565b600080546001600160a01b0316331461028457600080fd5b60005b82518110156104425760006103318483815181106102a157fe5b60200260200101516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156102fe57600080fd5b505afa158015610312573d6000803e3d6000fd5b505050506040513d602081101561032857600080fd5b5051878761045d565b905083828151811061033f57fe5b60200260200101516001600160a01b0316876001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398836040518082815260200191505060405180910390a383828151811061039d57fe5b60200260200101516001600160a01b031663a9059cbb88836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b505050506040513d602081101561042e57600080fd5b505161043957600080fd5b50600101610287565b50600195945050505050565b6000546001600160a01b031681565b60008161046957600080fd5b8361047657506000610265565b8383028385828161048357fe5b04141561049c5782818161049357fe5b04915050610265565b838386816104a657fe5b04029594505050505056fea265627a7a72305820600a90e68081feae486f77ec58352ebe4f959e2362fac128a8d418122da6121464736f6c634300050900325f766f74696e67506572696f644c656e6774682065786365656473206c696d69745f656d657267656e637950726f63657373696e67576169742063616e6e6f742062652030a265627a7a7230582079f1b5475a4ba4a4bde5586d1a3a1ca470c9023ac8016950766732b9eca2ee9b64736f6c63430005090032", + "sourceMap": "64:759:12:-;;;114:1;91:24;;193:87;8:9:-1;5:2;;;30:1;27;20:12;5:2;193:87:12;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;193:87:12;244:12;:28;;-1:-1:-1;;;;;;244:28:12;-1:-1:-1;;;;;244:28:12;;;;;;;;;64:759;;;-1:-1:-1;64:759:12;;", + "deployedSourceMap": "64:759:12:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;64:759:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;339:286;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;339:286:12;-1:-1:-1;;;;;339:286:12;;:::i;:::-;;;;-1:-1:-1;;;;;339:286:12;;;;;;;;;;;;;;631:105;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;631:105:12;;;;;;;;;;;;;;;;;742:78;;;:::i;:::-;;;;;;;;;;;;;;;;145:41;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;145:41:12;;;;;;;;:::i;91:24::-;;;:::i;339:286::-;387:7;405:14;437:6;422:71;;;;;;;;446:12;;;;;;;;;-1:-1:-1;;;;;446:12:12;-1:-1:-1;;;;;422:71:12;-1:-1:-1;;;;;422:71:12;;;;461:5;468:2;472;476;480;484;488:1;491;422:71;;;;;:::i;:::-;-1:-1:-1;;;;;422:71:12;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;422:71:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;507:10:12;502:16;;;;:4;:16;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;502:35:12;;;;;;;;;-1:-1:-1;;;;;;502:35:12;-1:-1:-1;;;;;502:35:12;;;;;544:13;;;;;;571:20;;;;;;;502:35;;-1:-1:-1;571:20:12;;;;;;;;;615:3;339:286;-1:-1:-1;;339:286:12:o;631:105::-;719:10;714:16;;;;:4;:16;;;;;;;;;707:23;;;;;;;;;;;;;;;;;682:16;;707:23;;;714:16;707:23;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;707:23:12;;;;;;;;;;;;;;;;;;;;;;;631:105;:::o;742:78::-;786:4;806:8;742:78;:::o;145:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;145:41:12;;-1:-1:-1;145:41:12;;-1:-1:-1;145:41:12:o;91:24::-;;;;:::o;64:759::-;;;;;;;;:::o", + "source": "pragma solidity >=0.5.0 < 0.6.0;\r\nimport './Governance.sol';\r\n\r\ncontract DAOFactory {\r\n\r\n uint public daoCount = 0;\r\n address tokenAddress;\r\n mapping(address => address[]) public daos;\r\n\r\n constructor(address _tokenAddress) public {\r\n\r\n tokenAddress = _tokenAddress;\r\n\r\n }\r\n\r\n event daoAdded (\r\n address admin\r\n\r\n );\r\n\r\n function newDAO(address _admin) public returns (address) {\r\n\r\n Governance dao = new Governance(_admin, [tokenAddress], 17280, 35, 35, 35, 70, 10, 3, 1);\r\n\r\n daos[msg.sender].push(address(dao));\r\n daoCount += 1;\r\n\r\n emit daoAdded(msg.sender);\r\n\r\n return address(dao);\r\n }\r\n\r\n function getContractAddress() public view returns (address[] memory) {\r\n return daos[msg.sender];\r\n }\r\n\r\n function getDAOCount() public view returns (uint) {\r\n return daoCount;\r\n }\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\DAOFactory.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/DAOFactory.sol", + "exportedSymbols": { + "DAOFactory": [ + 6233 + ] + }, + "id": 6234, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6139, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:12" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Governance.sol", + "file": "./Governance.sol", + "id": 6140, + "nodeType": "ImportDirective", + "scope": 6234, + "sourceUnit": 7481, + "src": "34:26:12", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [ + 7480 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6233, + "linearizedBaseContracts": [ + 6233 + ], + "name": "DAOFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 6143, + "name": "daoCount", + "nodeType": "VariableDeclaration", + "scope": 6233, + "src": "91:24:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6141, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "91:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 6142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "114:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 6145, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 6233, + "src": "120:20:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6144, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "120:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6150, + "name": "daos", + "nodeType": "VariableDeclaration", + "scope": 6233, + "src": "145:41:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", + "typeString": "mapping(address => address[])" + }, + "typeName": { + "id": 6149, + "keyType": { + "id": 6146, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "153:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "145:29:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", + "typeString": "mapping(address => address[])" + }, + "valueType": { + "baseType": { + "id": 6147, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "164:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6148, + "length": null, + "nodeType": "ArrayTypeName", + "src": "164:9:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 6159, + "nodeType": "Block", + "src": "235:45:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6155, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6145, + "src": "244:12:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6156, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6152, + "src": "259:13:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "244:28:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6158, + "nodeType": "ExpressionStatement", + "src": "244:28:12" + } + ] + }, + "documentation": null, + "id": 6160, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6153, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6152, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 6160, + "src": "205:21:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6151, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "205:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "204:23:12" + }, + "returnParameters": { + "id": 6154, + "nodeType": "ParameterList", + "parameters": [], + "src": "235:0:12" + }, + "scope": 6233, + "src": "193:87:12", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 6164, + "name": "daoAdded", + "nodeType": "EventDefinition", + "parameters": { + "id": 6163, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6162, + "indexed": false, + "name": "admin", + "nodeType": "VariableDeclaration", + "scope": 6164, + "src": "312:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6161, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "312:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "301:31:12" + }, + "src": "286:47:12" + }, + { + "body": { + "id": 6211, + "nodeType": "Block", + "src": "396:229:12", + "statements": [ + { + "assignments": [ + 6172 + ], + "declarations": [ + { + "constant": false, + "id": 6172, + "name": "dao", + "nodeType": "VariableDeclaration", + "scope": 6211, + "src": "405:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + }, + "typeName": { + "contractScope": null, + "id": 6171, + "name": "Governance", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7480, + "src": "405:10:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6187, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6175, + "name": "_admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6166, + "src": "437:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 6176, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6145, + "src": "446:12:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 6177, + "isConstant": false, + "isInlineArray": true, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "445:14:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + } + }, + { + "argumentTypes": null, + "hexValue": "3137323830", + "id": 6178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "461:5:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_17280_by_1", + "typeString": "int_const 17280" + }, + "value": "17280" + }, + { + "argumentTypes": null, + "hexValue": "3335", + "id": 6179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "468:2:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_35_by_1", + "typeString": "int_const 35" + }, + "value": "35" + }, + { + "argumentTypes": null, + "hexValue": "3335", + "id": 6180, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "472:2:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_35_by_1", + "typeString": "int_const 35" + }, + "value": "35" + }, + { + "argumentTypes": null, + "hexValue": "3335", + "id": 6181, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "476:2:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_35_by_1", + "typeString": "int_const 35" + }, + "value": "35" + }, + { + "argumentTypes": null, + "hexValue": "3730", + "id": 6182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "480:2:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_70_by_1", + "typeString": "int_const 70" + }, + "value": "70" + }, + { + "argumentTypes": null, + "hexValue": "3130", + "id": 6183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "484:2:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + { + "argumentTypes": null, + "hexValue": "33", + "id": 6184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "488:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + { + "argumentTypes": null, + "hexValue": "31", + "id": 6185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "491:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + }, + { + "typeIdentifier": "t_rational_17280_by_1", + "typeString": "int_const 17280" + }, + { + "typeIdentifier": "t_rational_35_by_1", + "typeString": "int_const 35" + }, + { + "typeIdentifier": "t_rational_35_by_1", + "typeString": "int_const 35" + }, + { + "typeIdentifier": "t_rational_35_by_1", + "typeString": "int_const 35" + }, + { + "typeIdentifier": "t_rational_70_by_1", + "typeString": "int_const 70" + }, + { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 6174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "422:14:12", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_array$_t_address_$1_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_contract$_Governance_$7480_$", + "typeString": "function (address,address[1] memory,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) returns (contract Governance)" + }, + "typeName": { + "contractScope": null, + "id": 6173, + "name": "Governance", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7480, + "src": "426:10:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + } + }, + "id": 6186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "422:71:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "405:88:12" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6194, + "name": "dao", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6172, + "src": "532:3:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + ], + "id": 6193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "524:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 6195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "524:12:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6188, + "name": "daos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6150, + "src": "502:4:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", + "typeString": "mapping(address => address[] storage ref)" + } + }, + "id": 6191, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6189, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "507:3:12", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "507:10:12", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "502:16:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 6192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "502:21:12", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) returns (uint256)" + } + }, + "id": 6196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "502:35:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6197, + "nodeType": "ExpressionStatement", + "src": "502:35:12" + }, + { + "expression": { + "argumentTypes": null, + "id": 6200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6198, + "name": "daoCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6143, + "src": "544:8:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 6199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "556:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "544:13:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6201, + "nodeType": "ExpressionStatement", + "src": "544:13:12" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6203, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "580:3:12", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "580:10:12", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 6202, + "name": "daoAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6164, + "src": "571:8:12", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 6205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "571:20:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6206, + "nodeType": "EmitStatement", + "src": "566:25:12" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6208, + "name": "dao", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6172, + "src": "615:3:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + ], + "id": 6207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "607:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 6209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "607:12:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 6170, + "id": 6210, + "nodeType": "Return", + "src": "600:19:12" + } + ] + }, + "documentation": null, + "id": 6212, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "newDAO", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6167, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6166, + "name": "_admin", + "nodeType": "VariableDeclaration", + "scope": 6212, + "src": "355:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6165, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "355:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "354:16:12" + }, + "returnParameters": { + "id": 6170, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6169, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6212, + "src": "387:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6168, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "387:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "386:9:12" + }, + "scope": 6233, + "src": "339:286:12", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6223, + "nodeType": "Block", + "src": "700:36:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6218, + "name": "daos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6150, + "src": "714:4:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", + "typeString": "mapping(address => address[] storage ref)" + } + }, + "id": 6221, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6219, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "719:3:12", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "719:10:12", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "714:16:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "functionReturnParameters": 6217, + "id": 6222, + "nodeType": "Return", + "src": "707:23:12" + } + ] + }, + "documentation": null, + "id": 6224, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getContractAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6213, + "nodeType": "ParameterList", + "parameters": [], + "src": "658:2:12" + }, + "returnParameters": { + "id": 6217, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6216, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6224, + "src": "682:16:12", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 6214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "682:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6215, + "length": null, + "nodeType": "ArrayTypeName", + "src": "682:9:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "681:18:12" + }, + "scope": 6233, + "src": "631:105:12", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6231, + "nodeType": "Block", + "src": "792:28:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6229, + "name": "daoCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6143, + "src": "806:8:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6228, + "id": 6230, + "nodeType": "Return", + "src": "799:15:12" + } + ] + }, + "documentation": null, + "id": 6232, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getDAOCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6225, + "nodeType": "ParameterList", + "parameters": [], + "src": "762:2:12" + }, + "returnParameters": { + "id": 6228, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6227, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6232, + "src": "786:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6226, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "786:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "785:6:12" + }, + "scope": 6233, + "src": "742:78:12", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 6234, + "src": "64:759:12" + } + ], + "src": "0:825:12" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/DAOFactory.sol", + "exportedSymbols": { + "DAOFactory": [ + 6233 + ] + }, + "id": 6234, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6139, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:12" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Governance.sol", + "file": "./Governance.sol", + "id": 6140, + "nodeType": "ImportDirective", + "scope": 6234, + "sourceUnit": 7481, + "src": "34:26:12", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [ + 7480 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6233, + "linearizedBaseContracts": [ + 6233 + ], + "name": "DAOFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 6143, + "name": "daoCount", + "nodeType": "VariableDeclaration", + "scope": 6233, + "src": "91:24:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6141, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "91:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 6142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "114:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 6145, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 6233, + "src": "120:20:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6144, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "120:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6150, + "name": "daos", + "nodeType": "VariableDeclaration", + "scope": 6233, + "src": "145:41:12", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", + "typeString": "mapping(address => address[])" + }, + "typeName": { + "id": 6149, + "keyType": { + "id": 6146, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "153:7:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "145:29:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", + "typeString": "mapping(address => address[])" + }, + "valueType": { + "baseType": { + "id": 6147, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "164:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6148, + "length": null, + "nodeType": "ArrayTypeName", + "src": "164:9:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 6159, + "nodeType": "Block", + "src": "235:45:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6155, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6145, + "src": "244:12:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6156, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6152, + "src": "259:13:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "244:28:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6158, + "nodeType": "ExpressionStatement", + "src": "244:28:12" + } + ] + }, + "documentation": null, + "id": 6160, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6153, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6152, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 6160, + "src": "205:21:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6151, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "205:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "204:23:12" + }, + "returnParameters": { + "id": 6154, + "nodeType": "ParameterList", + "parameters": [], + "src": "235:0:12" + }, + "scope": 6233, + "src": "193:87:12", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 6164, + "name": "daoAdded", + "nodeType": "EventDefinition", + "parameters": { + "id": 6163, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6162, + "indexed": false, + "name": "admin", + "nodeType": "VariableDeclaration", + "scope": 6164, + "src": "312:13:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6161, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "312:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "301:31:12" + }, + "src": "286:47:12" + }, + { + "body": { + "id": 6211, + "nodeType": "Block", + "src": "396:229:12", + "statements": [ + { + "assignments": [ + 6172 + ], + "declarations": [ + { + "constant": false, + "id": 6172, + "name": "dao", + "nodeType": "VariableDeclaration", + "scope": 6211, + "src": "405:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + }, + "typeName": { + "contractScope": null, + "id": 6171, + "name": "Governance", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7480, + "src": "405:10:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6187, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6175, + "name": "_admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6166, + "src": "437:6:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 6176, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6145, + "src": "446:12:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 6177, + "isConstant": false, + "isInlineArray": true, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "445:14:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + } + }, + { + "argumentTypes": null, + "hexValue": "3137323830", + "id": 6178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "461:5:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_17280_by_1", + "typeString": "int_const 17280" + }, + "value": "17280" + }, + { + "argumentTypes": null, + "hexValue": "3335", + "id": 6179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "468:2:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_35_by_1", + "typeString": "int_const 35" + }, + "value": "35" + }, + { + "argumentTypes": null, + "hexValue": "3335", + "id": 6180, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "472:2:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_35_by_1", + "typeString": "int_const 35" + }, + "value": "35" + }, + { + "argumentTypes": null, + "hexValue": "3335", + "id": 6181, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "476:2:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_35_by_1", + "typeString": "int_const 35" + }, + "value": "35" + }, + { + "argumentTypes": null, + "hexValue": "3730", + "id": 6182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "480:2:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_70_by_1", + "typeString": "int_const 70" + }, + "value": "70" + }, + { + "argumentTypes": null, + "hexValue": "3130", + "id": 6183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "484:2:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + { + "argumentTypes": null, + "hexValue": "33", + "id": 6184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "488:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + { + "argumentTypes": null, + "hexValue": "31", + "id": 6185, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "491:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + }, + { + "typeIdentifier": "t_rational_17280_by_1", + "typeString": "int_const 17280" + }, + { + "typeIdentifier": "t_rational_35_by_1", + "typeString": "int_const 35" + }, + { + "typeIdentifier": "t_rational_35_by_1", + "typeString": "int_const 35" + }, + { + "typeIdentifier": "t_rational_35_by_1", + "typeString": "int_const 35" + }, + { + "typeIdentifier": "t_rational_70_by_1", + "typeString": "int_const 70" + }, + { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 6174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "422:14:12", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_array$_t_address_$1_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_contract$_Governance_$7480_$", + "typeString": "function (address,address[1] memory,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) returns (contract Governance)" + }, + "typeName": { + "contractScope": null, + "id": 6173, + "name": "Governance", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7480, + "src": "426:10:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + } + }, + "id": 6186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "422:71:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "405:88:12" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6194, + "name": "dao", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6172, + "src": "532:3:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + ], + "id": 6193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "524:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 6195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "524:12:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6188, + "name": "daos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6150, + "src": "502:4:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", + "typeString": "mapping(address => address[] storage ref)" + } + }, + "id": 6191, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6189, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "507:3:12", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "507:10:12", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "502:16:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 6192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "502:21:12", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) returns (uint256)" + } + }, + "id": 6196, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "502:35:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6197, + "nodeType": "ExpressionStatement", + "src": "502:35:12" + }, + { + "expression": { + "argumentTypes": null, + "id": 6200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6198, + "name": "daoCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6143, + "src": "544:8:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 6199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "556:1:12", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "544:13:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6201, + "nodeType": "ExpressionStatement", + "src": "544:13:12" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6203, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "580:3:12", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "580:10:12", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 6202, + "name": "daoAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6164, + "src": "571:8:12", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 6205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "571:20:12", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6206, + "nodeType": "EmitStatement", + "src": "566:25:12" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6208, + "name": "dao", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6172, + "src": "615:3:12", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + ], + "id": 6207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "607:7:12", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 6209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "607:12:12", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 6170, + "id": 6210, + "nodeType": "Return", + "src": "600:19:12" + } + ] + }, + "documentation": null, + "id": 6212, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "newDAO", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6167, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6166, + "name": "_admin", + "nodeType": "VariableDeclaration", + "scope": 6212, + "src": "355:14:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6165, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "355:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "354:16:12" + }, + "returnParameters": { + "id": 6170, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6169, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6212, + "src": "387:7:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6168, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "387:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "386:9:12" + }, + "scope": 6233, + "src": "339:286:12", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6223, + "nodeType": "Block", + "src": "700:36:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6218, + "name": "daos", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6150, + "src": "714:4:12", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", + "typeString": "mapping(address => address[] storage ref)" + } + }, + "id": 6221, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6219, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "719:3:12", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6220, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "719:10:12", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "714:16:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "functionReturnParameters": 6217, + "id": 6222, + "nodeType": "Return", + "src": "707:23:12" + } + ] + }, + "documentation": null, + "id": 6224, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getContractAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6213, + "nodeType": "ParameterList", + "parameters": [], + "src": "658:2:12" + }, + "returnParameters": { + "id": 6217, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6216, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6224, + "src": "682:16:12", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 6214, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "682:7:12", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6215, + "length": null, + "nodeType": "ArrayTypeName", + "src": "682:9:12", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "681:18:12" + }, + "scope": 6233, + "src": "631:105:12", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6231, + "nodeType": "Block", + "src": "792:28:12", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 6229, + "name": "daoCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6143, + "src": "806:8:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6228, + "id": 6230, + "nodeType": "Return", + "src": "799:15:12" + } + ] + }, + "documentation": null, + "id": 6232, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getDAOCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6225, + "nodeType": "ParameterList", + "parameters": [], + "src": "762:2:12" + }, + "returnParameters": { + "id": 6228, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6227, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6232, + "src": "786:4:12", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6226, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "786:4:12", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "785:6:12" + }, + "scope": 6233, + "src": "742:78:12", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 6234, + "src": "64:759:12" + } + ], + "src": "0:825:12" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": { + "10": { + "events": { + "0xbb14e6561111416eda7607c478c09b236c0873cd3699549afe42dd57656b9787": { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "admin", + "type": "address" + } + ], + "name": "daoAdded", + "type": "event" + } + }, + "links": {}, + "address": "0x5E09Ce55751C6D3BBeE706d96A73970A9c2Ed64B", + "transactionHash": "0x43672e54585b6dd9c407087ce684b9c42b5756cfd0325e46c7d764ecffb928f7" + } + }, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:31.206Z", + "networkType": "ethereum", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/contracts/ERC165.json b/src/contracts/ERC165.json new file mode 100644 index 0000000..ff7b4b3 --- /dev/null +++ b/src/contracts/ERC165.json @@ -0,0 +1,21215 @@ +{ + "contractName": "ERC165", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"_interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\\r\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Interface identification is specified in ERC-165. This function\\r uses less than 30,000 gas.\\r\",\"params\":{\"_interfaceId\":\"The interface identifier, as specified in ERC-165\\r\"}}},\"title\":\"ERC165\\r\"},\"userdoc\":{\"methods\":{\"supportsInterface(bytes4)\":{\"notice\":\"Query if a contract implements an interface\\r\"}}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":\"ERC165\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":{\"keccak256\":\"0x4dd046a190602871aa9743a94149789c1e14b14f609c68d0f34d72e19bd690ce\",\"urls\":[\"bzzr://ea591dfb88f3591fe4344b7e665024c5aa3e8fb758a0409db79b1885a996b825\",\"dweb:/ipfs/QmXrwJ2TTXMWHBQxuLCqrj96gfh5HCHK57JsCEcXJ84t6z\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity >=0.5.0 < 0.6.0;\r\nimport '../../dao/oz/SafeMath.sol';\r\n\r\n/**\r\n * @title SafeMath\r\n * @dev Math operations with safety checks that throw on error\r\n */\r\n//library SafeMath {\r\n//\r\n// /**\r\n// * @dev Multiplies two numbers, throws on overflow.\r\n// */\r\n// function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// // Gas optimization: this is cheaper than asserting 'a' not being zero, but the\r\n// // benefit is lost if 'b' is also tested.\r\n// // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\r\n// if (a == 0) {\r\n// return 0;\r\n// }\r\n//\r\n// c = a * b;\r\n// assert(c / a == b);\r\n// return c;\r\n// }\r\n//\r\n// /**\r\n// * @dev Integer division of two numbers, truncating the quotient.\r\n// */\r\n// function div(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// // assert(b > 0); // Solidity automatically throws when dividing by 0\r\n// // uint256 c = a / b;\r\n// // assert(a == b * c + a % b); // There is no case in which this doesn't hold\r\n// return a / b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).\r\n// */\r\n// function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// assert(b <= a);\r\n// return a - b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Adds two numbers, throws on overflow.\r\n// */\r\n// function add(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// c = a + b;\r\n// assert(c >= a);\r\n// return c;\r\n// }\r\n//}\r\n\r\n/**\r\n * Utility library of inline functions on addresses\r\n */\r\nlibrary AddressUtils {\r\n\r\n /**\r\n * Returns whether the target address is a contract\r\n * @dev This function will return false if invoked during the constructor of a contract,\r\n * as the code is not actually created until after the constructor finishes.\r\n * @param addr address to check\r\n * @return whether the target address is a contract\r\n */\r\n function isContract(address addr) internal view returns (bool) {\r\n uint256 size;\r\n // XXX Currently there is no better way to check if there is a contract in an address\r\n // than to check the size of the code at that address.\r\n // See https://ethereum.stackexchange.com/a/14016/36603\r\n // for more details about how this works.\r\n // TODO Check this again before the Serenity release, because all addresses will be\r\n // contracts then.\r\n // solium-disable-next-line security/no-inline-assembly\r\n assembly { size := extcodesize(addr) }\r\n return size > 0;\r\n }\r\n\r\n}\r\n\r\n/**\r\n * @title ERC165\r\n * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r\n */\r\ninterface ERC165 {\r\n\r\n /**\r\n * @notice Query if a contract implements an interface\r\n * @param _interfaceId The interface identifier, as specified in ERC-165\r\n * @dev Interface identification is specified in ERC-165. This function\r\n * uses less than 30,000 gas.\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool);\r\n}\r\n\r\n\r\n/**\r\n * @title SupportsInterfaceWithLookup\r\n * @author Matt Condon (@shrugs)\r\n * @dev Implements ERC165 using a lookup table.\r\n */\r\ncontract SupportsInterfaceWithLookup is ERC165 {\r\n bytes4 public constant InterfaceId_ERC165 = 0x01ffc9a7;\r\n /**\r\n * 0x01ffc9a7 ===\r\n * bytes4(keccak256('supportsInterface(bytes4)'))\r\n */\r\n\r\n /**\r\n * @dev a mapping of interface id to whether or not it's supported\r\n */\r\n mapping(bytes4 => bool) internal supportedInterfaces;\r\n\r\n /**\r\n * @dev A contract implementing SupportsInterfaceWithLookup\r\n * implement ERC165 itself\r\n */\r\n constructor()\r\n public\r\n {\r\n _registerInterface(InterfaceId_ERC165);\r\n }\r\n\r\n /**\r\n * @dev implement supportsInterface(bytes4) using a lookup table\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool)\r\n {\r\n return supportedInterfaces[_interfaceId];\r\n }\r\n\r\n /**\r\n * @dev private method for registering an interface\r\n */\r\n function _registerInterface(bytes4 _interfaceId)\r\n internal\r\n {\r\n require(_interfaceId != 0xffffffff);\r\n supportedInterfaces[_interfaceId] = true;\r\n }\r\n}\r\n\r\n/**\r\n * @title ERC721 token receiver interface\r\n * @dev Interface for any contract that wants to support safeTransfers\r\n * from ERC721 asset contracts.\r\n */\r\ncontract ERC721Receiver {\r\n /**\r\n * @dev Magic value to be returned upon successful reception of an NFT\r\n * Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`,\r\n * which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n */\r\n bytes4 internal constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n /**\r\n * @notice Handle the receipt of an NFT\r\n * @dev The ERC721 smart contract calls this function on the recipient\r\n * after a `safetransfer`. This function MAY throw to revert and reject the\r\n * transfer. This function MUST use 50,000 gas or less. Return of other\r\n * than the magic value MUST result in the transaction being reverted.\r\n * Note: the contract address is always the message sender.\r\n * @param _from The sending address\r\n * @param _tokenId The NFT identifier which is being transfered\r\n * @param _data Additional data with no specified format\r\n * @return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n */\r\n function onERC721Received(\r\n address _from,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n returns(bytes4);\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic interface\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721Basic is ERC165 {\r\n event Transfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n );\r\n event Approval(\r\n address _owner,\r\n address _approved,\r\n uint256 _tokenId\r\n );\r\n event ApprovalForAll(\r\n address _owner,\r\n address _operator,\r\n bool _approved\r\n );\r\n\r\n function balanceOf(address _owner) public view returns (uint256 _balance);\r\n function ownerOf(uint256 _tokenId) public view returns (address _owner);\r\n function exists(uint256 _tokenId) public view returns (bool _exists);\r\n\r\n function approve(address _to, uint256 _tokenId) public;\r\n function getApproved(uint256 _tokenId)\r\n public view returns (address _operator);\r\n\r\n function setApprovalForAll(address _operator, bool _approved) public;\r\n function isApprovedForAll(address _owner, address _operator)\r\n public view returns (bool);\r\n\r\n function transferFrom(address _from, address _to, uint256 _tokenId) public;\r\n function safeTransferFrom(address _from, address _to, uint256 _tokenId)\r\n public;\r\n\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public;\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic implementation\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721BasicToken is SupportsInterfaceWithLookup, ERC721Basic {\r\n\r\n bytes4 private constant InterfaceId_ERC721 = 0x80ac58cd;\r\n /*\r\n * 0x80ac58cd ===\r\n * bytes4(keccak256('balanceOf(address)')) ^\r\n * bytes4(keccak256('ownerOf(uint256)')) ^\r\n * bytes4(keccak256('approve(address,uint256)')) ^\r\n * bytes4(keccak256('getApproved(uint256)')) ^\r\n * bytes4(keccak256('setApprovalForAll(address,bool)')) ^\r\n * bytes4(keccak256('isApprovedForAll(address,address)')) ^\r\n * bytes4(keccak256('transferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)'))\r\n */\r\n\r\n bytes4 private constant InterfaceId_ERC721Exists = 0x4f558e79;\r\n /*\r\n * 0x4f558e79 ===\r\n * bytes4(keccak256('exists(uint256)'))\r\n */\r\n\r\n using SafeMath for uint256;\r\n using AddressUtils for address;\r\n\r\n // Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n // which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n bytes4 private constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n // Mapping from token ID to owner\r\n mapping (uint256 => address) internal tokenOwner;\r\n\r\n // Mapping from token ID to approved address\r\n mapping (uint256 => address) internal tokenApprovals;\r\n\r\n // Mapping from owner to number of owned token\r\n mapping (address => uint256) internal ownedTokensCount;\r\n\r\n // Mapping from owner to operator approvals\r\n mapping (address => mapping (address => bool)) internal operatorApprovals;\r\n\r\n\r\n uint public testint;\r\n /**\r\n * @dev Guarantees msg.sender is owner of the given token\r\n * @param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r\n */\r\n modifier onlyOwnerOf(uint256 _tokenId) {\r\n require(ownerOf(_tokenId) == msg.sender);\r\n _;\r\n }\r\n\r\n /**\r\n * @dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n * @param _tokenId uint256 ID of the token to validate\r\n */\r\n modifier canTransfer(uint256 _tokenId) {\r\n require(isApprovedOrOwner(msg.sender, _tokenId));\r\n _;\r\n }\r\n\r\n constructor()\r\n public\r\n {\r\n // register the supported interfaces to conform to ERC721 via ERC165\r\n _registerInterface(InterfaceId_ERC721);\r\n _registerInterface(InterfaceId_ERC721Exists);\r\n }\r\n\r\n /**\r\n * @dev Gets the balance of the specified address\r\n * @param _owner address to query the balance of\r\n * @return uint256 representing the amount owned by the passed address\r\n */\r\n function balanceOf(address _owner) public view returns (uint256) {\r\n require(_owner != address(0));\r\n return ownedTokensCount[_owner];\r\n }\r\n\r\n /**\r\n * @dev Gets the owner of the specified token ID\r\n * @param _tokenId uint256 ID of the token to query the owner of\r\n * @return owner address currently marked as the owner of the given token ID\r\n */\r\n function ownerOf(uint256 _tokenId) public view returns (address) {\r\n address owner = tokenOwner[_tokenId];\r\n require(owner != address(0));\r\n return owner;\r\n }\r\n\r\n /**\r\n * @dev Returns whether the specified token exists\r\n * @param _tokenId uint256 ID of the token to query the existence of\r\n * @return whether the token exists\r\n */\r\n function exists(uint256 _tokenId) public view returns (bool) {\r\n address owner = tokenOwner[_tokenId];\r\n return owner != address(0);\r\n }\r\n\r\n /**\r\n * @dev Approves another address to transfer the given token ID\r\n * The zero address indicates there is no approved address.\r\n * There can only be one approved address per token at a given time.\r\n * Can only be called by the token owner or an approved operator.\r\n * @param _to address to be approved for the given token ID\r\n * @param _tokenId uint256 ID of the token to be approved\r\n */\r\n function approve(address _to, uint256 _tokenId) public {\r\n address owner = ownerOf(_tokenId);\r\n require(_to != owner);\r\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender));\r\n\r\n tokenApprovals[_tokenId] = _to;\r\n emit Approval(owner, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Gets the approved address for a token ID, or zero if no address set\r\n * @param _tokenId uint256 ID of the token to query the approval of\r\n * @return address currently approved for the given token ID\r\n */\r\n function getApproved(uint256 _tokenId) public view returns (address) {\r\n return tokenApprovals[_tokenId];\r\n }\r\n\r\n /**\r\n * @dev Sets or unsets the approval of a given operator\r\n * An operator is allowed to transfer all tokens of the sender on their behalf\r\n * @param _to operator address to set the approval\r\n * @param _approved representing the status of the approval to be set\r\n */\r\n function setApprovalForAll(address _to, bool _approved) public {\r\n require(_to != msg.sender);\r\n operatorApprovals[msg.sender][_to] = _approved;\r\n emit ApprovalForAll(msg.sender, _to, _approved);\r\n }\r\n\r\n /**\r\n * @dev Tells whether an operator is approved by a given owner\r\n * @param _owner owner address which you want to query the approval of\r\n * @param _operator operator address which you want to query the approval of\r\n * @return bool whether the given operator is approved by the given owner\r\n */\r\n function isApprovedForAll(\r\n address _owner,\r\n address _operator\r\n )\r\n public\r\n view\r\n returns (bool)\r\n {\r\n return operatorApprovals[_owner][_operator];\r\n }\r\n\r\n /**\r\n * @dev Transfers the ownership of a given token ID to another address\r\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function transferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n require(_from != address(0));\r\n require(_to != address(0));\r\n\r\n clearApproval(_from, _tokenId);\r\n removeTokenFrom(_from, _tokenId);\r\n addTokenTo(_to, _tokenId);\r\n\r\n emit Transfer(_from, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n *\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n // solium-disable-next-line arg-overflow\r\n safeTransferFrom(_from, _to, _tokenId, \"\");\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes data to send along with a safe transfer check\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n transferFrom(_from, _to, _tokenId);\r\n // solium-disable-next-line arg-overflow\r\n require(checkAndCallSafeTransfer(_from, _to, _tokenId, _data));\r\n }\r\n\r\n /**\r\n * @dev Returns whether the given spender can transfer a given token ID\r\n * @param _spender address of the spender to query\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @return bool whether the msg.sender is approved for the given token ID,\r\n * is an operator of the owner, or is the owner of the token\r\n */\r\n function isApprovedOrOwner(\r\n address _spender,\r\n uint256 _tokenId\r\n )\r\n internal\r\n view\r\n returns (bool)\r\n {\r\n address owner = ownerOf(_tokenId);\r\n // Disable solium check because of\r\n // https://github.com/duaraghav8/Solium/issues/175\r\n // solium-disable-next-line operator-whitespace\r\n return (\r\n _spender == owner ||\r\n getApproved(_tokenId) == _spender ||\r\n isApprovedForAll(owner, _spender)\r\n );\r\n }\r\n\r\n /**\r\n * @dev Internal function to mint a new token\r\n * Reverts if the given token ID already exists\r\n * @param _to The address that will own the minted token\r\n * @param _tokenId uint256 ID of the token to be minted by the msg.sender\r\n */\r\n function _mint(address _to, uint256 _tokenId) internal {\r\n require(_to != address(0));\r\n addTokenTo(_to, _tokenId);\r\n emit Transfer(address(0), _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to burn a specific token\r\n * Reverts if the token does not exist\r\n * @param _tokenId uint256 ID of the token being burned by the msg.sender\r\n */\r\n function _burn(address _owner, uint256 _tokenId) internal {\r\n clearApproval(_owner, _tokenId);\r\n removeTokenFrom(_owner, _tokenId);\r\n emit Transfer(_owner, address(0), _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to clear current approval of a given token ID\r\n * Reverts if the given address is not indeed the owner of the token\r\n * @param _owner owner of the token\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function clearApproval(address _owner, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _owner);\r\n if (tokenApprovals[_tokenId] != address(0)) {\r\n tokenApprovals[_tokenId] = address(0);\r\n }\r\n }\r\n\r\n /**\r\n * @dev Internal function to add a token ID to the list of a given address\r\n * @param _to address representing the new owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r\n */\r\n function addTokenTo(address _to, uint256 _tokenId) internal {\r\n require(tokenOwner[_tokenId] == address(0));\r\n tokenOwner[_tokenId] = _to;\r\n ownedTokensCount[_to] = ownedTokensCount[_to].add(1);\r\n }\r\n\r\n /**\r\n * @dev Internal function to remove a token ID from the list of a given address\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r\n */\r\n function removeTokenFrom(address _from, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _from);\r\n ownedTokensCount[_from] = ownedTokensCount[_from].sub(1);\r\n tokenOwner[_tokenId] = address(0);\r\n }\r\n\r\n /**\r\n * @dev Internal function to invoke `onERC721Received` on a target address\r\n * The call is not executed if the target address is not a contract\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _to target address that will receive the tokens\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes optional data to send along with the call\r\n * @return whether the call correctly returned the expected magic value\r\n */\r\n function checkAndCallSafeTransfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n internal\r\n returns (bool)\r\n {\r\n if (!_to.isContract()) {\r\n return true;\r\n }\r\n bytes4 retval = ERC721Receiver(_to).onERC721Received(\r\n _from, _tokenId, _data);\r\n return (retval == ERC721_RECEIVED);\r\n }\r\n}\r\n\r\ncontract ERC721BasicTokenMock is ERC721BasicToken {\r\n function mint(address _to, uint256 _tokenId) public {\r\n super._mint(_to, _tokenId);\r\n }\r\n\r\n function burn(uint256 _tokenId) public {\r\n super._burn(ownerOf(_tokenId), _tokenId);\r\n }\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\inherited\\ERC721Basic.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", + "exportedSymbols": { + "AddressUtils": [ + 5009 + ], + "ERC165": [ + 5017 + ], + "ERC721Basic": [ + 5187 + ], + "ERC721BasicToken": [ + 5764 + ], + "ERC721BasicTokenMock": [ + 5797 + ], + "ERC721Receiver": [ + 5080 + ], + "SupportsInterfaceWithLookup": [ + 5065 + ] + }, + "id": 5798, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4991, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:8" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "../../dao/oz/SafeMath.sol", + "id": 4992, + "nodeType": "ImportDirective", + "scope": 5798, + "sourceUnit": 9858, + "src": "34:35:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "Utility library of inline functions on addresses\r", + "fullyImplemented": true, + "id": 5009, + "linearizedBaseContracts": [ + 5009 + ], + "name": "AddressUtils", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5007, + "nodeType": "Block", + "src": "2012:524:8", + "statements": [ + { + "assignments": [ + 5000 + ], + "declarations": [ + { + "constant": false, + "id": 5000, + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 5007, + "src": "2019:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2019:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5001, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "2019:12:8" + }, + { + "externalReferences": [ + { + "size": { + "declaration": 5000, + "isOffset": false, + "isSlot": false, + "src": "2482:4:8", + "valueSize": 1 + } + }, + { + "addr": { + "declaration": 4994, + "isOffset": false, + "isSlot": false, + "src": "2502:4:8", + "valueSize": 1 + } + } + ], + "id": 5002, + "nodeType": "InlineAssembly", + "operations": "{ size := extcodesize(addr) }", + "src": "2471:38:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5003, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5000, + "src": "2522:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5004, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2529:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2522:8:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4998, + "id": 5006, + "nodeType": "Return", + "src": "2515:15:8" + } + ] + }, + "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", + "id": 5008, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4994, + "name": "addr", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "1969:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1969:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1968:14:8" + }, + "returnParameters": { + "id": 4998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4997, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "2006:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4996, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2006:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2005:6:8" + }, + "scope": 5009, + "src": "1949:587:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "1590:951:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", + "fullyImplemented": false, + "id": 5017, + "linearizedBaseContracts": [ + 5017 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", + "id": 5016, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5012, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5011, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "2950:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5010, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2950:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2949:21:8" + }, + "returnParameters": { + "id": 5015, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5014, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "3009:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5013, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3009:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3008:6:8" + }, + "scope": 5017, + "src": "2923:92:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 5798, + "src": "2643:375:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5018, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "3196:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5019, + "nodeType": "InheritanceSpecifier", + "src": "3196:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", + "fullyImplemented": true, + "id": 5065, + "linearizedBaseContracts": [ + 5065, + 5017 + ], + "name": "SupportsInterfaceWithLookup", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5022, + "name": "InterfaceId_ERC165", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3208:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5020, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3208:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783031666663396137", + "id": 5021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3252:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 5026, + "name": "supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3443:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 5025, + "keyType": { + "id": 5023, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3451:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "3443:23:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 5024, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3461:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 5033, + "nodeType": "Block", + "src": "3638:51:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5030, + "name": "InterfaceId_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5022, + "src": "3664:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5029, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "3645:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3645:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5032, + "nodeType": "ExpressionStatement", + "src": "3645:38:8" + } + ] + }, + "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", + "id": 5034, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5027, + "nodeType": "ParameterList", + "parameters": [], + "src": "3620:2:8" + }, + "returnParameters": { + "id": 5028, + "nodeType": "ParameterList", + "parameters": [], + "src": "3638:0:8" + }, + "scope": 5065, + "src": "3609:80:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5045, + "nodeType": "Block", + "src": "3872:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5041, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "3886:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5043, + "indexExpression": { + "argumentTypes": null, + "id": 5042, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5036, + "src": "3906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3886:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5040, + "id": 5044, + "nodeType": "Return", + "src": "3879:40:8" + } + ] + }, + "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", + "id": 5046, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5037, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5036, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3804:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5035, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3804:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3803:21:8" + }, + "returnParameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5039, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3863:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5038, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3863:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3862:6:8" + }, + "scope": 5065, + "src": "3777:148:8", + "stateMutability": "view", + "superFunction": 5016, + "visibility": "external" + }, + { + "body": { + "id": 5063, + "nodeType": "Block", + "src": "4066:95:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5052, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4081:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30786666666666666666", + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4097:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "4081:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5051, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4073:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4073:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5056, + "nodeType": "ExpressionStatement", + "src": "4073:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5057, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "4115:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5059, + "indexExpression": { + "argumentTypes": null, + "id": 5058, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4135:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4115:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4151:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4115:40:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5062, + "nodeType": "ExpressionStatement", + "src": "4115:40:8" + } + ] + }, + "documentation": "@dev private method for registering an interface\r", + "id": 5064, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5048, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5064, + "src": "4028:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5047, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4028:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4027:21:8" + }, + "returnParameters": { + "id": 5050, + "nodeType": "ParameterList", + "parameters": [], + "src": "4066:0:8" + }, + "scope": 5065, + "src": "4000:161:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "3156:1008:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", + "fullyImplemented": false, + "id": 5080, + "linearizedBaseContracts": [ + 5080 + ], + "name": "ERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5068, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5080, + "src": "4607:53:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5066, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4607:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4650:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "internal" + }, + { + "body": null, + "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", + "id": 5079, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5070, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5364:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5069, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5364:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5072, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5384:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5384:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5074, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5407:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5073, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5407:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5357:73:8" + }, + "returnParameters": { + "id": 5078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5077, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5456:6:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5076, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "5456:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5455:8:8" + }, + "scope": 5080, + "src": "5332:132:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "4326:1141:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5081, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "5641:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5082, + "nodeType": "InheritanceSpecifier", + "src": "5641:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": false, + "id": 5187, + "linearizedBaseContracts": [ + 5187, + 5017 + ], + "name": "ERC721Basic", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5090, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5084, + "indexed": false, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5674:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5083, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5674:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5086, + "indexed": false, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5695:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5695:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5088, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5714:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5087, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5714:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5667:69:8" + }, + "src": "5653:84:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5098, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5092, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5762:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5091, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5762:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5094, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5784:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5784:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5096, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5809:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5809:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5755:76:8" + }, + "src": "5741:91:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5106, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 5105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5100, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5863:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5099, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5863:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5102, + "indexed": false, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5885:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5101, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5885:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5104, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5910:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5103, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5910:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5856:73:8" + }, + "src": "5836:94:8" + }, + { + "body": null, + "documentation": null, + "id": 5113, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5109, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5108, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5955:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5955:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5954:16:8" + }, + "returnParameters": { + "id": 5112, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5111, + "name": "_balance", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5992:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5110, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5992:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5991:18:8" + }, + "scope": 5187, + "src": "5936:74:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5120, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5115, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6031:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6030:18:8" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5118, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6070:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6070:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6069:16:8" + }, + "scope": 5187, + "src": "6014:72:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5127, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5122, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6106:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5121, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6106:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6105:18:8" + }, + "returnParameters": { + "id": 5126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5125, + "name": "_exists", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6145:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5124, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6145:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6144:14:8" + }, + "scope": 5187, + "src": "6090:69:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5134, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5129, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6182:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6182:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5131, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6195:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6195:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6181:31:8" + }, + "returnParameters": { + "id": 5133, + "nodeType": "ParameterList", + "parameters": [], + "src": "6219:0:8" + }, + "scope": 5187, + "src": "6165:55:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5141, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5136, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6245:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6245:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6244:18:8" + }, + "returnParameters": { + "id": 5140, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5139, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6289:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6289:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6288:19:8" + }, + "scope": 5187, + "src": "6224:84:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5148, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5143, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6341:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6341:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5145, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6360:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5144, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6360:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6340:35:8" + }, + "returnParameters": { + "id": 5147, + "nodeType": "ParameterList", + "parameters": [], + "src": "6382:0:8" + }, + "scope": 5187, + "src": "6314:69:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5157, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5153, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5150, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6413:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5149, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6413:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5152, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6429:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5151, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6429:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6412:35:8" + }, + "returnParameters": { + "id": 5156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5155, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6474:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5154, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6474:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6473:6:8" + }, + "scope": 5187, + "src": "6387:93:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5166, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5164, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5159, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6508:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6508:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5161, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6523:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6523:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5163, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6536:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5162, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6536:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6507:46:8" + }, + "returnParameters": { + "id": 5165, + "nodeType": "ParameterList", + "parameters": [], + "src": "6560:0:8" + }, + "scope": 5187, + "src": "6486:75:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5175, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5173, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5168, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6591:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5167, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6591:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5170, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6606:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5169, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6606:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5172, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6619:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5171, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6619:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6590:46:8" + }, + "returnParameters": { + "id": 5174, + "nodeType": "ParameterList", + "parameters": [], + "src": "6648:0:8" + }, + "scope": 5187, + "src": "6565:84:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5186, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5184, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5177, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6687:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5176, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6687:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5179, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6707:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5178, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6707:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5181, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6725:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5180, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6725:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5183, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6748:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5182, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6748:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6680:91:8" + }, + "returnParameters": { + "id": 5185, + "nodeType": "ParameterList", + "parameters": [], + "src": "6783:0:8" + }, + "scope": 5187, + "src": "6655:129:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "5617:1170:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5188, + "name": "SupportsInterfaceWithLookup", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5065, + "src": "6971:27:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", + "typeString": "contract SupportsInterfaceWithLookup" + } + }, + "id": 5189, + "nodeType": "InheritanceSpecifier", + "src": "6971:27:8" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5190, + "name": "ERC721Basic", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5187, + "src": "7000:11:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Basic_$5187", + "typeString": "contract ERC721Basic" + } + }, + "id": 5191, + "nodeType": "InheritanceSpecifier", + "src": "7000:11:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": true, + "id": 5764, + "linearizedBaseContracts": [ + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5194, + "name": "InterfaceId_ERC721", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7019:55:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5192, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7019:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783830616335386364", + "id": 5193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7064:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 5197, + "name": "InterfaceId_ERC721Exists", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7668:61:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5195, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7668:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783466353538653739", + "id": 5196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7719:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1331007097_by_1", + "typeString": "int_const 1331007097" + }, + "value": "0x4f558e79" + }, + "visibility": "private" + }, + { + "id": 5200, + "libraryName": { + "contractScope": null, + "id": 5198, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "7821:8:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "7815:27:8", + "typeName": { + "id": 5199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7834:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5203, + "libraryName": { + "contractScope": null, + "id": 5201, + "name": "AddressUtils", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5009, + "src": "7852:12:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddressUtils_$5009", + "typeString": "library AddressUtils" + } + }, + "nodeType": "UsingForDirective", + "src": "7846:31:8", + "typeName": { + "id": 5202, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7869:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "constant": true, + "id": 5206, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8044:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5204, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8044:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8086:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 5210, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8140:48:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5209, + "keyType": { + "id": 5207, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8149:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8140:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5208, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8160:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5214, + "name": "tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8243:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5213, + "keyType": { + "id": 5211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8252:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8243:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8263:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5218, + "name": "ownedTokensCount", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8352:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5217, + "keyType": { + "id": 5215, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8361:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8352:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8372:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5224, + "name": "operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8460:73:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 5223, + "keyType": { + "id": 5219, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8469:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8460:46:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 5222, + "keyType": { + "id": 5220, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8489:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8480:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 5221, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8500:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5226, + "name": "testint", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8542:19:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5225, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 5240, + "nodeType": "Block", + "src": "8774:61:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5232, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5228, + "src": "8797:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5231, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "8789:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8789:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5234, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "8810:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8810:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8789:31:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5230, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "8781:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8781:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5238, + "nodeType": "ExpressionStatement", + "src": "8781:40:8" + }, + { + "id": 5239, + "nodeType": "PlaceholderStatement", + "src": "8828:1:8" + } + ] + }, + "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", + "id": 5241, + "name": "onlyOwnerOf", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5228, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5241, + "src": "8756:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5227, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8756:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8755:18:8" + }, + "src": "8735:100:8", + "visibility": "internal" + }, + { + "body": { + "id": 5254, + "nodeType": "Block", + "src": "9041:69:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5247, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "9074:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9074:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5249, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5243, + "src": "9086:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5246, + "name": "isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5567, + "src": "9056:17:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 5250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9056:39:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5245, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9048:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9048:48:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5252, + "nodeType": "ExpressionStatement", + "src": "9048:48:8" + }, + { + "id": 5253, + "nodeType": "PlaceholderStatement", + "src": "9103:1:8" + } + ] + }, + "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", + "id": 5255, + "name": "canTransfer", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5244, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5243, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5255, + "src": "9023:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5242, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9022:18:8" + }, + "src": "9002:108:8", + "visibility": "internal" + }, + { + "body": { + "id": 5266, + "nodeType": "Block", + "src": "9145:176:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5259, + "name": "InterfaceId_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "9245:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5258, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9226:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9226:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5261, + "nodeType": "ExpressionStatement", + "src": "9226:38:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5263, + "name": "InterfaceId_ERC721Exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5197, + "src": "9290:24:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5262, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9271:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9271:44:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5265, + "nodeType": "ExpressionStatement", + "src": "9271:44:8" + } + ] + }, + "documentation": null, + "id": 5267, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5256, + "nodeType": "ParameterList", + "parameters": [], + "src": "9127:2:8" + }, + "returnParameters": { + "id": 5257, + "nodeType": "ParameterList", + "parameters": [], + "src": "9145:0:8" + }, + "scope": 5764, + "src": "9116:205:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5286, + "nodeType": "Block", + "src": "9585:80:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5275, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9600:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5277, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9618:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9610:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9610:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "9600:20:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5274, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9592:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9592:29:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5281, + "nodeType": "ExpressionStatement", + "src": "9592:29:8" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5282, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "9635:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5284, + "indexExpression": { + "argumentTypes": null, + "id": 5283, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9652:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9635:24:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5273, + "id": 5285, + "nodeType": "Return", + "src": "9628:31:8" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", + "id": 5287, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5269, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9539:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9539:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9538:16:8" + }, + "returnParameters": { + "id": 5273, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5272, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9576:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5271, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9576:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9575:9:8" + }, + "scope": 5764, + "src": "9520:145:8", + "stateMutability": "view", + "superFunction": 5113, + "visibility": "public" + }, + { + "body": { + "id": 5310, + "nodeType": "Block", + "src": "9950:103:8", + "statements": [ + { + "assignments": [ + 5295 + ], + "declarations": [ + { + "constant": false, + "id": 5295, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5310, + "src": "9957:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5294, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9957:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5299, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5296, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "9973:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5298, + "indexExpression": { + "argumentTypes": null, + "id": 5297, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5289, + "src": "9984:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9973:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9957:36:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5301, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10008:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10025:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10017:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10017:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10008:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5300, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10000:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5307, + "nodeType": "ExpressionStatement", + "src": "10000:28:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5308, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10042:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5293, + "id": 5309, + "nodeType": "Return", + "src": "10035:12:8" + } + ] + }, + "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", + "id": 5311, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5289, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9902:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9902:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9901:18:8" + }, + "returnParameters": { + "id": 5293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5292, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9941:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9941:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9940:9:8" + }, + "scope": 5764, + "src": "9885:168:8", + "stateMutability": "view", + "superFunction": 5120, + "visibility": "public" + }, + { + "body": { + "id": 5330, + "nodeType": "Block", + "src": "10299:82:8", + "statements": [ + { + "assignments": [ + 5319 + ], + "declarations": [ + { + "constant": false, + "id": 5319, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5330, + "src": "10306:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5318, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10306:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5323, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5320, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "10322:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5322, + "indexExpression": { + "argumentTypes": null, + "id": 5321, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5313, + "src": "10333:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10322:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10306:36:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5324, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5319, + "src": "10356:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10373:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10365:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10365:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10356:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5317, + "id": 5329, + "nodeType": "Return", + "src": "10349:26:8" + } + ] + }, + "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", + "id": 5331, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5313, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10254:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10254:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10253:18:8" + }, + "returnParameters": { + "id": 5317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5316, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10293:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5315, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10293:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10292:6:8" + }, + "scope": 5764, + "src": "10238:143:8", + "stateMutability": "view", + "superFunction": 5127, + "visibility": "public" + }, + { + "body": { + "id": 5375, + "nodeType": "Block", + "src": "10851:229:8", + "statements": [ + { + "assignments": [ + 5339 + ], + "declarations": [ + { + "constant": false, + "id": 5339, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5375, + "src": "10858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5343, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5341, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "10882:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5340, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "10874:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10874:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10858:33:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5345, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "10906:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 5346, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10913:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5344, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10898:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10898:21:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5349, + "nodeType": "ExpressionStatement", + "src": "10898:21:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5351, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10934:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10934:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5353, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10948:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10934:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5356, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10974:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5357, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10981:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10981:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 5355, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "10957:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10957:35:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10934:58:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5350, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10926:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10926:67:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5362, + "nodeType": "ExpressionStatement", + "src": "10926:67:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5363, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11002:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5365, + "indexExpression": { + "argumentTypes": null, + "id": 5364, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11017:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11002:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5366, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11029:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11002:30:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5368, + "nodeType": "ExpressionStatement", + "src": "11002:30:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5370, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "11053:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5371, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11060:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5372, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11065:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5369, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5098, + "src": "11044:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11044:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5374, + "nodeType": "EmitStatement", + "src": "11039:35:8" + } + ] + }, + "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", + "id": 5376, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5336, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5333, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10813:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10813:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5335, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10826:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5334, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10826:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10812:31:8" + }, + "returnParameters": { + "id": 5337, + "nodeType": "ParameterList", + "parameters": [], + "src": "10851:0:8" + }, + "scope": 5764, + "src": "10796:284:8", + "stateMutability": "nonpayable", + "superFunction": 5134, + "visibility": "public" + }, + { + "body": { + "id": 5387, + "nodeType": "Block", + "src": "11383:44:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5383, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11397:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5385, + "indexExpression": { + "argumentTypes": null, + "id": 5384, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5378, + "src": "11412:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11397:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5382, + "id": 5386, + "nodeType": "Return", + "src": "11390:31:8" + } + ] + }, + "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", + "id": 5388, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5378, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11335:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5377, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11335:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11334:18:8" + }, + "returnParameters": { + "id": 5382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5381, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11374:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11374:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11373:9:8" + }, + "scope": 5764, + "src": "11314:113:8", + "stateMutability": "view", + "superFunction": 5141, + "visibility": "public" + }, + { + "body": { + "id": 5418, + "nodeType": "Block", + "src": "11778:146:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5396, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11793:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5397, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11800:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11800:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "11793:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5395, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "11785:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11785:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "11785:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5402, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "11818:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5406, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5403, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11836:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11836:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11818:29:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5407, + "indexExpression": { + "argumentTypes": null, + "id": 5405, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11848:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11818:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11855:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11818:46:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5410, + "nodeType": "ExpressionStatement", + "src": "11818:46:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5412, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11891:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11891:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5414, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11903:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5415, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11908:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5411, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5106, + "src": "11876:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 5416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11876:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5417, + "nodeType": "EmitStatement", + "src": "11871:47:8" + } + ] + }, + "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", + "id": 5419, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5390, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11742:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11742:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5392, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11755:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11755:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11741:29:8" + }, + "returnParameters": { + "id": 5394, + "nodeType": "ParameterList", + "parameters": [], + "src": "11778:0:8" + }, + "scope": 5764, + "src": "11715:209:8", + "stateMutability": "nonpayable", + "superFunction": 5148, + "visibility": "public" + }, + { + "body": { + "id": 5434, + "nodeType": "Block", + "src": "12362:56:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5428, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "12376:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5430, + "indexExpression": { + "argumentTypes": null, + "id": 5429, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5421, + "src": "12394:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5432, + "indexExpression": { + "argumentTypes": null, + "id": 5431, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "12402:9:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:36:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5427, + "id": 5433, + "nodeType": "Return", + "src": "12369:43:8" + } + ] + }, + "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", + "id": 5435, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5421, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12273:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5420, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12273:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5423, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12294:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5422, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12294:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12266:50:8" + }, + "returnParameters": { + "id": 5427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5426, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12353:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5425, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12353:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12352:6:8" + }, + "scope": 5764, + "src": "12241:177:8", + "stateMutability": "view", + "superFunction": 5157, + "visibility": "public" + }, + { + "body": { + "id": 5484, + "nodeType": "Block", + "src": "12976:228:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5448, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "12991:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13008:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13000:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "12991:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5447, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "12983:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12983:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5454, + "nodeType": "ExpressionStatement", + "src": "12983:28:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5456, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13026:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13041:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13033:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13033:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13026:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5455, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "13018:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13018:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5462, + "nodeType": "ExpressionStatement", + "src": "13018:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5464, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13067:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5465, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13074:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5463, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "13053:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13053:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5467, + "nodeType": "ExpressionStatement", + "src": "13053:30:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5469, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13106:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5470, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13113:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5468, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "13090:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13090:32:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5472, + "nodeType": "ExpressionStatement", + "src": "13090:32:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5474, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13140:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5475, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13145:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5473, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "13129:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13129:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5477, + "nodeType": "ExpressionStatement", + "src": "13129:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5479, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13177:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5480, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13184:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5481, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13189:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5478, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "13168:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13168:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5483, + "nodeType": "EmitStatement", + "src": "13163:35:8" + } + ] + }, + "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5485, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5444, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "12963:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5445, + "modifierName": { + "argumentTypes": null, + "id": 5443, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "12951:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12951:21:8" + } + ], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5442, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5437, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12874:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5436, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12874:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5439, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12894:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12894:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5441, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12912:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5440, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12912:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12867:66:8" + }, + "returnParameters": { + "id": 5446, + "nodeType": "ParameterList", + "parameters": [], + "src": "12976:0:8" + }, + "scope": 5764, + "src": "12846:358:8", + "stateMutability": "nonpayable", + "superFunction": 5166, + "visibility": "public" + }, + { + "body": { + "id": 5504, + "nodeType": "Block", + "src": "13960:101:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5498, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5487, + "src": "14030:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5499, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5489, + "src": "14037:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5500, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "14042:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 5501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14052:2:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 5497, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5505, + 5535 + ], + "referencedDeclaration": 5535, + "src": "14013:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 5502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14013:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5503, + "nodeType": "ExpressionStatement", + "src": "14013:42:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5505, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5494, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "13947:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5495, + "modifierName": { + "argumentTypes": null, + "id": 5493, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "13935:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "13935:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5487, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5486, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5489, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13878:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13878:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5491, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13896:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13896:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13851:66:8" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [], + "src": "13960:0:8" + }, + "scope": 5764, + "src": "13826:235:8", + "stateMutability": "nonpayable", + "superFunction": 5175, + "visibility": "public" + }, + { + "body": { + "id": 5534, + "nodeType": "Block", + "src": "14908:162:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5520, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "14928:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5521, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "14935:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5522, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14940:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5519, + "name": "transferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5485 + ], + "referencedDeclaration": 5485, + "src": "14915:12:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14915:34:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5524, + "nodeType": "ExpressionStatement", + "src": "14915:34:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5527, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "15035:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5528, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "15042:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5529, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "15047:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5530, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5513, + "src": "15057:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5526, + "name": "checkAndCallSafeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5763, + "src": "15010:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 5531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15010:53:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5525, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "15002:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15002:62:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5533, + "nodeType": "ExpressionStatement", + "src": "15002:62:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", + "id": 5535, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5516, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14895:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5517, + "modifierName": { + "argumentTypes": null, + "id": 5515, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "14883:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "14883:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5514, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5507, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14781:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14781:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5509, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14801:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14801:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5511, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14819:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14819:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5513, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14842:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5512, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14842:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14774:91:8" + }, + "returnParameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [], + "src": "14908:0:8" + }, + "scope": 5764, + "src": "14749:321:8", + "stateMutability": "nonpayable", + "superFunction": 5186, + "visibility": "public" + }, + { + "body": { + "id": 5566, + "nodeType": "Block", + "src": "15551:330:8", + "statements": [ + { + "assignments": [ + 5545 + ], + "declarations": [ + { + "constant": false, + "id": 5545, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5566, + "src": "15558:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15558:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5549, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5547, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15582:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5546, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "15574:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15574:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15558:33:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5550, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15763:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5551, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15775:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15763:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5554, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15803:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5553, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5388 + ], + "referencedDeclaration": 5388, + "src": "15791:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15791:21:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5556, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15816:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15791:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:61:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5560, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15852:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5561, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15859:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5559, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "15835:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15835:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:105:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5564, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15754:121:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5543, + "id": 5565, + "nodeType": "Return", + "src": "15747:128:8" + } + ] + }, + "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", + "id": 5567, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5540, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5537, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15459:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5536, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15459:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5539, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15482:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5538, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15482:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15452:51:8" + }, + "returnParameters": { + "id": 5543, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5542, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15542:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5541, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15541:6:8" + }, + "scope": 5764, + "src": "15426:455:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5595, + "nodeType": "Block", + "src": "16193:118:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5575, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16208:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16223:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16215:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16215:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "16208:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5574, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "16200:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16200:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5581, + "nodeType": "ExpressionStatement", + "src": "16200:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5583, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16244:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5584, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16249:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5582, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "16233:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16233:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5586, + "nodeType": "ExpressionStatement", + "src": "16233:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16287:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16279:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16279:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5591, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16291:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5592, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16296:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5587, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16270:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16270:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5594, + "nodeType": "EmitStatement", + "src": "16265:40:8" + } + ] + }, + "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", + "id": 5596, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5569, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16153:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5568, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16153:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5571, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16166:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5570, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16166:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16152:31:8" + }, + "returnParameters": { + "id": 5573, + "nodeType": "ParameterList", + "parameters": [], + "src": "16193:0:8" + }, + "scope": 5764, + "src": "16138:173:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5621, + "nodeType": "Block", + "src": "16562:134:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5604, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16583:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5605, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16591:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5603, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "16569:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16569:31:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5607, + "nodeType": "ExpressionStatement", + "src": "16569:31:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5609, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16623:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5610, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16631:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5608, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "16607:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16607:33:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5612, + "nodeType": "ExpressionStatement", + "src": "16607:33:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5614, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16661:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16677:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16669:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16669:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5618, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16681:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5613, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16652:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16652:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5620, + "nodeType": "EmitStatement", + "src": "16647:43:8" + } + ] + }, + "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", + "id": 5622, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5598, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16519:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16519:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5600, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16535:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5599, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16535:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16518:34:8" + }, + "returnParameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [], + "src": "16562:0:8" + }, + "scope": 5764, + "src": "16504:192:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5654, + "nodeType": "Block", + "src": "17032:153:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5631, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17055:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5630, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "17047:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17047:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5633, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5624, + "src": "17068:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17047:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5629, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17039:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17039:36:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5636, + "nodeType": "ExpressionStatement", + "src": "17039:36:8" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5637, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17086:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5639, + "indexExpression": { + "argumentTypes": null, + "id": 5638, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17101:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17086:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17122:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17114:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17114:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17086:38:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5653, + "nodeType": "IfStatement", + "src": "17082:98:8", + "trueBody": { + "id": 5652, + "nodeType": "Block", + "src": "17126:54:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5644, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17135:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5646, + "indexExpression": { + "argumentTypes": null, + "id": 5645, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17150:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17135:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5648, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17170:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17162:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17162:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17135:37:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5651, + "nodeType": "ExpressionStatement", + "src": "17135:37:8" + } + ] + } + } + ] + }, + "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5655, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "clearApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5624, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "16989:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5623, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16989:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5626, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "17005:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5625, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17005:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16988:34:8" + }, + "returnParameters": { + "id": 5628, + "nodeType": "ParameterList", + "parameters": [], + "src": "17032:0:8" + }, + "scope": 5764, + "src": "16966:219:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5689, + "nodeType": "Block", + "src": "17515:148:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5663, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17530:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5665, + "indexExpression": { + "argumentTypes": null, + "id": 5664, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17541:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17530:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17562:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17554:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17554:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17530:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5662, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17522:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17522:43:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5671, + "nodeType": "ExpressionStatement", + "src": "17522:43:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5672, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17572:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5674, + "indexExpression": { + "argumentTypes": null, + "id": 5673, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17583:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17572:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5675, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17595:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17572:26:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5677, + "nodeType": "ExpressionStatement", + "src": "17572:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5678, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17605:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5680, + "indexExpression": { + "argumentTypes": null, + "id": 5679, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17622:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17605:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17655:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5681, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17629:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5683, + "indexExpression": { + "argumentTypes": null, + "id": 5682, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17646:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17629:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "17629:25:8", + "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": 5686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17629:28:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17605:52:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5688, + "nodeType": "ExpressionStatement", + "src": "17605:52:8" + } + ] + }, + "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", + "id": 5690, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addTokenTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5657, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17475:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17475:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5659, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17488:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17488:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17474:31:8" + }, + "returnParameters": { + "id": 5661, + "nodeType": "ParameterList", + "parameters": [], + "src": "17515:0:8" + }, + "scope": 5764, + "src": "17455:208:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5724, + "nodeType": "Block", + "src": "18016:151:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5699, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18039:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5698, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "18031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18031:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5701, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18052:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "18031:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5697, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "18023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18023:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5704, + "nodeType": "ExpressionStatement", + "src": "18023:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5705, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18065:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5707, + "indexExpression": { + "argumentTypes": null, + "id": 5706, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18082:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18065:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18119:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5708, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18091:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5710, + "indexExpression": { + "argumentTypes": null, + "id": 5709, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18108:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18091:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "18091:27:8", + "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": 5713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18091:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18065:56:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5715, + "nodeType": "ExpressionStatement", + "src": "18065:56:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5716, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "18128:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5718, + "indexExpression": { + "argumentTypes": null, + "id": 5717, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18139:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18128:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18159:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18151:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18151:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "18128:33:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5723, + "nodeType": "ExpressionStatement", + "src": "18128:33:8" + } + ] + }, + "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", + "id": 5725, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeTokenFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5692, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17974:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5691, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17974:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5694, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17989:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17989:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17973:33:8" + }, + "returnParameters": { + "id": 5696, + "nodeType": "ParameterList", + "parameters": [], + "src": "18016:0:8" + }, + "scope": 5764, + "src": "17949:218:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5762, + "nodeType": "Block", + "src": "18846:195:8", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "18857:17:8", + "subExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5738, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18858:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 5008, + "src": "18858:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18858:16:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5745, + "nodeType": "IfStatement", + "src": "18853:51:8", + "trueBody": { + "id": 5744, + "nodeType": "Block", + "src": "18876:28:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18892:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5737, + "id": 5743, + "nodeType": "Return", + "src": "18885:11:8" + } + ] + } + }, + { + "assignments": [ + 5747 + ], + "declarations": [ + { + "constant": false, + "id": 5747, + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 5762, + "src": "18910:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5746, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "18910:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5756, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5752, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5727, + "src": "18971:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5753, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5731, + "src": "18978:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5754, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5733, + "src": "18988:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5749, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18941:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5748, + "name": "ERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "18926:14:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", + "typeString": "type(contract ERC721Receiver)" + } + }, + "id": 5750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:19:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Receiver_$5080", + "typeString": "contract ERC721Receiver" + } + }, + "id": 5751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 5079, + "src": "18926:36:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 5755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:68:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18910:84:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5757, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5747, + "src": "19009:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5758, + "name": "ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5206, + "src": "19019:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "19009:25:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5760, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19008:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5737, + "id": 5761, + "nodeType": "Return", + "src": "19001:34:8" + } + ] + }, + "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", + "id": 5763, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "checkAndCallSafeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5727, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18724:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5726, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18724:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5729, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18744:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18744:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5731, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18762:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5730, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18762:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5733, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18785:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5732, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18785:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18717:91:8" + }, + "returnParameters": { + "id": 5737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5736, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18837:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5735, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18837:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18836:6:8" + }, + "scope": 5764, + "src": "18684:357:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "6942:12102:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5765, + "name": "ERC721BasicToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5764, + "src": "19081:16:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", + "typeString": "contract ERC721BasicToken" + } + }, + "id": 5766, + "nodeType": "InheritanceSpecifier", + "src": "19081:16:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187, + 5764 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5797, + "linearizedBaseContracts": [ + 5797, + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicTokenMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5780, + "nodeType": "Block", + "src": "19155:39:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5776, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5768, + "src": "19174:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5777, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5770, + "src": "19179:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5773, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19162:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 5596, + "src": "19162:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19162:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5779, + "nodeType": "ExpressionStatement", + "src": "19162:26:8" + } + ] + }, + "documentation": null, + "id": 5781, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19117:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19117:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19130:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19130:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19116:31:8" + }, + "returnParameters": { + "id": 5772, + "nodeType": "ParameterList", + "parameters": [], + "src": "19155:0:8" + }, + "scope": 5797, + "src": "19103:91:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5795, + "nodeType": "Block", + "src": "19239:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5790, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19266:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5789, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "19258:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19258:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5792, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19277:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5786, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19246:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 5622, + "src": "19246:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19246:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5794, + "nodeType": "ExpressionStatement", + "src": "19246:40:8" + } + ] + }, + "documentation": null, + "id": 5796, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5783, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5796, + "src": "19214:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5782, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19214:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19213:18:8" + }, + "returnParameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [], + "src": "19239:0:8" + }, + "scope": 5797, + "src": "19200:92:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "19048:247:8" + } + ], + "src": "0:19297:8" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", + "exportedSymbols": { + "AddressUtils": [ + 5009 + ], + "ERC165": [ + 5017 + ], + "ERC721Basic": [ + 5187 + ], + "ERC721BasicToken": [ + 5764 + ], + "ERC721BasicTokenMock": [ + 5797 + ], + "ERC721Receiver": [ + 5080 + ], + "SupportsInterfaceWithLookup": [ + 5065 + ] + }, + "id": 5798, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4991, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:8" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "../../dao/oz/SafeMath.sol", + "id": 4992, + "nodeType": "ImportDirective", + "scope": 5798, + "sourceUnit": 9858, + "src": "34:35:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "Utility library of inline functions on addresses\r", + "fullyImplemented": true, + "id": 5009, + "linearizedBaseContracts": [ + 5009 + ], + "name": "AddressUtils", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5007, + "nodeType": "Block", + "src": "2012:524:8", + "statements": [ + { + "assignments": [ + 5000 + ], + "declarations": [ + { + "constant": false, + "id": 5000, + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 5007, + "src": "2019:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2019:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5001, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "2019:12:8" + }, + { + "externalReferences": [ + { + "size": { + "declaration": 5000, + "isOffset": false, + "isSlot": false, + "src": "2482:4:8", + "valueSize": 1 + } + }, + { + "addr": { + "declaration": 4994, + "isOffset": false, + "isSlot": false, + "src": "2502:4:8", + "valueSize": 1 + } + } + ], + "id": 5002, + "nodeType": "InlineAssembly", + "operations": "{ size := extcodesize(addr) }", + "src": "2471:38:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5003, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5000, + "src": "2522:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5004, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2529:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2522:8:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4998, + "id": 5006, + "nodeType": "Return", + "src": "2515:15:8" + } + ] + }, + "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", + "id": 5008, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4994, + "name": "addr", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "1969:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1969:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1968:14:8" + }, + "returnParameters": { + "id": 4998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4997, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "2006:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4996, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2006:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2005:6:8" + }, + "scope": 5009, + "src": "1949:587:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "1590:951:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", + "fullyImplemented": false, + "id": 5017, + "linearizedBaseContracts": [ + 5017 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", + "id": 5016, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5012, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5011, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "2950:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5010, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2950:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2949:21:8" + }, + "returnParameters": { + "id": 5015, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5014, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "3009:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5013, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3009:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3008:6:8" + }, + "scope": 5017, + "src": "2923:92:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 5798, + "src": "2643:375:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5018, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "3196:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5019, + "nodeType": "InheritanceSpecifier", + "src": "3196:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", + "fullyImplemented": true, + "id": 5065, + "linearizedBaseContracts": [ + 5065, + 5017 + ], + "name": "SupportsInterfaceWithLookup", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5022, + "name": "InterfaceId_ERC165", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3208:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5020, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3208:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783031666663396137", + "id": 5021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3252:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 5026, + "name": "supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3443:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 5025, + "keyType": { + "id": 5023, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3451:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "3443:23:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 5024, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3461:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 5033, + "nodeType": "Block", + "src": "3638:51:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5030, + "name": "InterfaceId_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5022, + "src": "3664:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5029, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "3645:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3645:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5032, + "nodeType": "ExpressionStatement", + "src": "3645:38:8" + } + ] + }, + "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", + "id": 5034, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5027, + "nodeType": "ParameterList", + "parameters": [], + "src": "3620:2:8" + }, + "returnParameters": { + "id": 5028, + "nodeType": "ParameterList", + "parameters": [], + "src": "3638:0:8" + }, + "scope": 5065, + "src": "3609:80:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5045, + "nodeType": "Block", + "src": "3872:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5041, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "3886:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5043, + "indexExpression": { + "argumentTypes": null, + "id": 5042, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5036, + "src": "3906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3886:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5040, + "id": 5044, + "nodeType": "Return", + "src": "3879:40:8" + } + ] + }, + "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", + "id": 5046, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5037, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5036, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3804:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5035, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3804:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3803:21:8" + }, + "returnParameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5039, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3863:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5038, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3863:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3862:6:8" + }, + "scope": 5065, + "src": "3777:148:8", + "stateMutability": "view", + "superFunction": 5016, + "visibility": "external" + }, + { + "body": { + "id": 5063, + "nodeType": "Block", + "src": "4066:95:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5052, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4081:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30786666666666666666", + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4097:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "4081:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5051, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4073:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4073:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5056, + "nodeType": "ExpressionStatement", + "src": "4073:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5057, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "4115:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5059, + "indexExpression": { + "argumentTypes": null, + "id": 5058, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4135:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4115:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4151:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4115:40:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5062, + "nodeType": "ExpressionStatement", + "src": "4115:40:8" + } + ] + }, + "documentation": "@dev private method for registering an interface\r", + "id": 5064, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5048, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5064, + "src": "4028:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5047, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4028:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4027:21:8" + }, + "returnParameters": { + "id": 5050, + "nodeType": "ParameterList", + "parameters": [], + "src": "4066:0:8" + }, + "scope": 5065, + "src": "4000:161:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "3156:1008:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", + "fullyImplemented": false, + "id": 5080, + "linearizedBaseContracts": [ + 5080 + ], + "name": "ERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5068, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5080, + "src": "4607:53:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5066, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4607:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4650:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "internal" + }, + { + "body": null, + "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", + "id": 5079, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5070, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5364:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5069, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5364:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5072, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5384:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5384:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5074, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5407:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5073, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5407:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5357:73:8" + }, + "returnParameters": { + "id": 5078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5077, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5456:6:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5076, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "5456:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5455:8:8" + }, + "scope": 5080, + "src": "5332:132:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "4326:1141:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5081, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "5641:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5082, + "nodeType": "InheritanceSpecifier", + "src": "5641:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": false, + "id": 5187, + "linearizedBaseContracts": [ + 5187, + 5017 + ], + "name": "ERC721Basic", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5090, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5084, + "indexed": false, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5674:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5083, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5674:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5086, + "indexed": false, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5695:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5695:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5088, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5714:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5087, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5714:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5667:69:8" + }, + "src": "5653:84:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5098, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5092, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5762:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5091, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5762:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5094, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5784:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5784:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5096, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5809:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5809:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5755:76:8" + }, + "src": "5741:91:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5106, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 5105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5100, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5863:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5099, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5863:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5102, + "indexed": false, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5885:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5101, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5885:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5104, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5910:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5103, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5910:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5856:73:8" + }, + "src": "5836:94:8" + }, + { + "body": null, + "documentation": null, + "id": 5113, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5109, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5108, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5955:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5955:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5954:16:8" + }, + "returnParameters": { + "id": 5112, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5111, + "name": "_balance", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5992:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5110, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5992:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5991:18:8" + }, + "scope": 5187, + "src": "5936:74:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5120, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5115, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6031:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6030:18:8" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5118, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6070:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6070:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6069:16:8" + }, + "scope": 5187, + "src": "6014:72:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5127, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5122, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6106:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5121, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6106:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6105:18:8" + }, + "returnParameters": { + "id": 5126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5125, + "name": "_exists", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6145:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5124, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6145:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6144:14:8" + }, + "scope": 5187, + "src": "6090:69:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5134, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5129, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6182:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6182:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5131, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6195:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6195:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6181:31:8" + }, + "returnParameters": { + "id": 5133, + "nodeType": "ParameterList", + "parameters": [], + "src": "6219:0:8" + }, + "scope": 5187, + "src": "6165:55:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5141, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5136, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6245:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6245:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6244:18:8" + }, + "returnParameters": { + "id": 5140, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5139, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6289:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6289:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6288:19:8" + }, + "scope": 5187, + "src": "6224:84:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5148, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5143, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6341:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6341:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5145, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6360:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5144, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6360:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6340:35:8" + }, + "returnParameters": { + "id": 5147, + "nodeType": "ParameterList", + "parameters": [], + "src": "6382:0:8" + }, + "scope": 5187, + "src": "6314:69:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5157, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5153, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5150, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6413:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5149, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6413:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5152, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6429:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5151, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6429:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6412:35:8" + }, + "returnParameters": { + "id": 5156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5155, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6474:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5154, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6474:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6473:6:8" + }, + "scope": 5187, + "src": "6387:93:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5166, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5164, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5159, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6508:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6508:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5161, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6523:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6523:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5163, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6536:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5162, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6536:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6507:46:8" + }, + "returnParameters": { + "id": 5165, + "nodeType": "ParameterList", + "parameters": [], + "src": "6560:0:8" + }, + "scope": 5187, + "src": "6486:75:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5175, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5173, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5168, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6591:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5167, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6591:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5170, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6606:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5169, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6606:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5172, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6619:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5171, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6619:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6590:46:8" + }, + "returnParameters": { + "id": 5174, + "nodeType": "ParameterList", + "parameters": [], + "src": "6648:0:8" + }, + "scope": 5187, + "src": "6565:84:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5186, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5184, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5177, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6687:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5176, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6687:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5179, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6707:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5178, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6707:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5181, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6725:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5180, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6725:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5183, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6748:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5182, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6748:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6680:91:8" + }, + "returnParameters": { + "id": 5185, + "nodeType": "ParameterList", + "parameters": [], + "src": "6783:0:8" + }, + "scope": 5187, + "src": "6655:129:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "5617:1170:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5188, + "name": "SupportsInterfaceWithLookup", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5065, + "src": "6971:27:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", + "typeString": "contract SupportsInterfaceWithLookup" + } + }, + "id": 5189, + "nodeType": "InheritanceSpecifier", + "src": "6971:27:8" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5190, + "name": "ERC721Basic", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5187, + "src": "7000:11:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Basic_$5187", + "typeString": "contract ERC721Basic" + } + }, + "id": 5191, + "nodeType": "InheritanceSpecifier", + "src": "7000:11:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": true, + "id": 5764, + "linearizedBaseContracts": [ + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5194, + "name": "InterfaceId_ERC721", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7019:55:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5192, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7019:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783830616335386364", + "id": 5193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7064:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 5197, + "name": "InterfaceId_ERC721Exists", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7668:61:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5195, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7668:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783466353538653739", + "id": 5196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7719:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1331007097_by_1", + "typeString": "int_const 1331007097" + }, + "value": "0x4f558e79" + }, + "visibility": "private" + }, + { + "id": 5200, + "libraryName": { + "contractScope": null, + "id": 5198, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "7821:8:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "7815:27:8", + "typeName": { + "id": 5199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7834:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5203, + "libraryName": { + "contractScope": null, + "id": 5201, + "name": "AddressUtils", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5009, + "src": "7852:12:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddressUtils_$5009", + "typeString": "library AddressUtils" + } + }, + "nodeType": "UsingForDirective", + "src": "7846:31:8", + "typeName": { + "id": 5202, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7869:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "constant": true, + "id": 5206, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8044:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5204, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8044:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8086:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 5210, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8140:48:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5209, + "keyType": { + "id": 5207, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8149:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8140:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5208, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8160:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5214, + "name": "tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8243:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5213, + "keyType": { + "id": 5211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8252:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8243:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8263:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5218, + "name": "ownedTokensCount", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8352:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5217, + "keyType": { + "id": 5215, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8361:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8352:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8372:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5224, + "name": "operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8460:73:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 5223, + "keyType": { + "id": 5219, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8469:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8460:46:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 5222, + "keyType": { + "id": 5220, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8489:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8480:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 5221, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8500:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5226, + "name": "testint", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8542:19:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5225, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 5240, + "nodeType": "Block", + "src": "8774:61:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5232, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5228, + "src": "8797:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5231, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "8789:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8789:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5234, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "8810:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8810:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8789:31:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5230, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "8781:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8781:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5238, + "nodeType": "ExpressionStatement", + "src": "8781:40:8" + }, + { + "id": 5239, + "nodeType": "PlaceholderStatement", + "src": "8828:1:8" + } + ] + }, + "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", + "id": 5241, + "name": "onlyOwnerOf", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5228, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5241, + "src": "8756:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5227, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8756:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8755:18:8" + }, + "src": "8735:100:8", + "visibility": "internal" + }, + { + "body": { + "id": 5254, + "nodeType": "Block", + "src": "9041:69:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5247, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "9074:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9074:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5249, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5243, + "src": "9086:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5246, + "name": "isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5567, + "src": "9056:17:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 5250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9056:39:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5245, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9048:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9048:48:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5252, + "nodeType": "ExpressionStatement", + "src": "9048:48:8" + }, + { + "id": 5253, + "nodeType": "PlaceholderStatement", + "src": "9103:1:8" + } + ] + }, + "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", + "id": 5255, + "name": "canTransfer", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5244, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5243, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5255, + "src": "9023:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5242, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9022:18:8" + }, + "src": "9002:108:8", + "visibility": "internal" + }, + { + "body": { + "id": 5266, + "nodeType": "Block", + "src": "9145:176:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5259, + "name": "InterfaceId_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "9245:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5258, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9226:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9226:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5261, + "nodeType": "ExpressionStatement", + "src": "9226:38:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5263, + "name": "InterfaceId_ERC721Exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5197, + "src": "9290:24:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5262, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9271:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9271:44:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5265, + "nodeType": "ExpressionStatement", + "src": "9271:44:8" + } + ] + }, + "documentation": null, + "id": 5267, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5256, + "nodeType": "ParameterList", + "parameters": [], + "src": "9127:2:8" + }, + "returnParameters": { + "id": 5257, + "nodeType": "ParameterList", + "parameters": [], + "src": "9145:0:8" + }, + "scope": 5764, + "src": "9116:205:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5286, + "nodeType": "Block", + "src": "9585:80:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5275, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9600:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5277, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9618:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9610:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9610:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "9600:20:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5274, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9592:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9592:29:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5281, + "nodeType": "ExpressionStatement", + "src": "9592:29:8" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5282, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "9635:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5284, + "indexExpression": { + "argumentTypes": null, + "id": 5283, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9652:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9635:24:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5273, + "id": 5285, + "nodeType": "Return", + "src": "9628:31:8" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", + "id": 5287, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5269, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9539:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9539:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9538:16:8" + }, + "returnParameters": { + "id": 5273, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5272, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9576:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5271, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9576:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9575:9:8" + }, + "scope": 5764, + "src": "9520:145:8", + "stateMutability": "view", + "superFunction": 5113, + "visibility": "public" + }, + { + "body": { + "id": 5310, + "nodeType": "Block", + "src": "9950:103:8", + "statements": [ + { + "assignments": [ + 5295 + ], + "declarations": [ + { + "constant": false, + "id": 5295, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5310, + "src": "9957:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5294, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9957:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5299, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5296, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "9973:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5298, + "indexExpression": { + "argumentTypes": null, + "id": 5297, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5289, + "src": "9984:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9973:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9957:36:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5301, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10008:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10025:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10017:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10017:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10008:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5300, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10000:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5307, + "nodeType": "ExpressionStatement", + "src": "10000:28:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5308, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10042:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5293, + "id": 5309, + "nodeType": "Return", + "src": "10035:12:8" + } + ] + }, + "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", + "id": 5311, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5289, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9902:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9902:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9901:18:8" + }, + "returnParameters": { + "id": 5293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5292, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9941:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9941:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9940:9:8" + }, + "scope": 5764, + "src": "9885:168:8", + "stateMutability": "view", + "superFunction": 5120, + "visibility": "public" + }, + { + "body": { + "id": 5330, + "nodeType": "Block", + "src": "10299:82:8", + "statements": [ + { + "assignments": [ + 5319 + ], + "declarations": [ + { + "constant": false, + "id": 5319, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5330, + "src": "10306:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5318, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10306:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5323, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5320, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "10322:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5322, + "indexExpression": { + "argumentTypes": null, + "id": 5321, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5313, + "src": "10333:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10322:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10306:36:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5324, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5319, + "src": "10356:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10373:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10365:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10365:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10356:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5317, + "id": 5329, + "nodeType": "Return", + "src": "10349:26:8" + } + ] + }, + "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", + "id": 5331, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5313, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10254:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10254:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10253:18:8" + }, + "returnParameters": { + "id": 5317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5316, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10293:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5315, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10293:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10292:6:8" + }, + "scope": 5764, + "src": "10238:143:8", + "stateMutability": "view", + "superFunction": 5127, + "visibility": "public" + }, + { + "body": { + "id": 5375, + "nodeType": "Block", + "src": "10851:229:8", + "statements": [ + { + "assignments": [ + 5339 + ], + "declarations": [ + { + "constant": false, + "id": 5339, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5375, + "src": "10858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5343, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5341, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "10882:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5340, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "10874:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10874:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10858:33:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5345, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "10906:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 5346, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10913:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5344, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10898:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10898:21:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5349, + "nodeType": "ExpressionStatement", + "src": "10898:21:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5351, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10934:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10934:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5353, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10948:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10934:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5356, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10974:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5357, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10981:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10981:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 5355, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "10957:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10957:35:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10934:58:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5350, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10926:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10926:67:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5362, + "nodeType": "ExpressionStatement", + "src": "10926:67:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5363, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11002:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5365, + "indexExpression": { + "argumentTypes": null, + "id": 5364, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11017:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11002:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5366, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11029:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11002:30:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5368, + "nodeType": "ExpressionStatement", + "src": "11002:30:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5370, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "11053:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5371, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11060:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5372, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11065:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5369, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5098, + "src": "11044:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11044:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5374, + "nodeType": "EmitStatement", + "src": "11039:35:8" + } + ] + }, + "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", + "id": 5376, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5336, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5333, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10813:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10813:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5335, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10826:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5334, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10826:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10812:31:8" + }, + "returnParameters": { + "id": 5337, + "nodeType": "ParameterList", + "parameters": [], + "src": "10851:0:8" + }, + "scope": 5764, + "src": "10796:284:8", + "stateMutability": "nonpayable", + "superFunction": 5134, + "visibility": "public" + }, + { + "body": { + "id": 5387, + "nodeType": "Block", + "src": "11383:44:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5383, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11397:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5385, + "indexExpression": { + "argumentTypes": null, + "id": 5384, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5378, + "src": "11412:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11397:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5382, + "id": 5386, + "nodeType": "Return", + "src": "11390:31:8" + } + ] + }, + "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", + "id": 5388, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5378, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11335:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5377, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11335:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11334:18:8" + }, + "returnParameters": { + "id": 5382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5381, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11374:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11374:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11373:9:8" + }, + "scope": 5764, + "src": "11314:113:8", + "stateMutability": "view", + "superFunction": 5141, + "visibility": "public" + }, + { + "body": { + "id": 5418, + "nodeType": "Block", + "src": "11778:146:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5396, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11793:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5397, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11800:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11800:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "11793:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5395, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "11785:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11785:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "11785:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5402, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "11818:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5406, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5403, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11836:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11836:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11818:29:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5407, + "indexExpression": { + "argumentTypes": null, + "id": 5405, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11848:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11818:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11855:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11818:46:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5410, + "nodeType": "ExpressionStatement", + "src": "11818:46:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5412, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11891:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11891:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5414, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11903:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5415, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11908:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5411, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5106, + "src": "11876:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 5416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11876:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5417, + "nodeType": "EmitStatement", + "src": "11871:47:8" + } + ] + }, + "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", + "id": 5419, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5390, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11742:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11742:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5392, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11755:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11755:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11741:29:8" + }, + "returnParameters": { + "id": 5394, + "nodeType": "ParameterList", + "parameters": [], + "src": "11778:0:8" + }, + "scope": 5764, + "src": "11715:209:8", + "stateMutability": "nonpayable", + "superFunction": 5148, + "visibility": "public" + }, + { + "body": { + "id": 5434, + "nodeType": "Block", + "src": "12362:56:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5428, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "12376:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5430, + "indexExpression": { + "argumentTypes": null, + "id": 5429, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5421, + "src": "12394:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5432, + "indexExpression": { + "argumentTypes": null, + "id": 5431, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "12402:9:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:36:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5427, + "id": 5433, + "nodeType": "Return", + "src": "12369:43:8" + } + ] + }, + "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", + "id": 5435, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5421, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12273:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5420, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12273:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5423, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12294:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5422, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12294:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12266:50:8" + }, + "returnParameters": { + "id": 5427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5426, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12353:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5425, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12353:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12352:6:8" + }, + "scope": 5764, + "src": "12241:177:8", + "stateMutability": "view", + "superFunction": 5157, + "visibility": "public" + }, + { + "body": { + "id": 5484, + "nodeType": "Block", + "src": "12976:228:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5448, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "12991:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13008:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13000:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "12991:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5447, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "12983:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12983:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5454, + "nodeType": "ExpressionStatement", + "src": "12983:28:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5456, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13026:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13041:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13033:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13033:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13026:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5455, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "13018:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13018:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5462, + "nodeType": "ExpressionStatement", + "src": "13018:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5464, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13067:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5465, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13074:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5463, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "13053:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13053:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5467, + "nodeType": "ExpressionStatement", + "src": "13053:30:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5469, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13106:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5470, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13113:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5468, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "13090:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13090:32:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5472, + "nodeType": "ExpressionStatement", + "src": "13090:32:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5474, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13140:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5475, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13145:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5473, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "13129:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13129:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5477, + "nodeType": "ExpressionStatement", + "src": "13129:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5479, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13177:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5480, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13184:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5481, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13189:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5478, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "13168:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13168:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5483, + "nodeType": "EmitStatement", + "src": "13163:35:8" + } + ] + }, + "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5485, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5444, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "12963:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5445, + "modifierName": { + "argumentTypes": null, + "id": 5443, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "12951:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12951:21:8" + } + ], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5442, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5437, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12874:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5436, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12874:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5439, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12894:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12894:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5441, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12912:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5440, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12912:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12867:66:8" + }, + "returnParameters": { + "id": 5446, + "nodeType": "ParameterList", + "parameters": [], + "src": "12976:0:8" + }, + "scope": 5764, + "src": "12846:358:8", + "stateMutability": "nonpayable", + "superFunction": 5166, + "visibility": "public" + }, + { + "body": { + "id": 5504, + "nodeType": "Block", + "src": "13960:101:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5498, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5487, + "src": "14030:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5499, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5489, + "src": "14037:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5500, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "14042:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 5501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14052:2:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 5497, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5505, + 5535 + ], + "referencedDeclaration": 5535, + "src": "14013:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 5502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14013:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5503, + "nodeType": "ExpressionStatement", + "src": "14013:42:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5505, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5494, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "13947:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5495, + "modifierName": { + "argumentTypes": null, + "id": 5493, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "13935:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "13935:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5487, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5486, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5489, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13878:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13878:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5491, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13896:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13896:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13851:66:8" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [], + "src": "13960:0:8" + }, + "scope": 5764, + "src": "13826:235:8", + "stateMutability": "nonpayable", + "superFunction": 5175, + "visibility": "public" + }, + { + "body": { + "id": 5534, + "nodeType": "Block", + "src": "14908:162:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5520, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "14928:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5521, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "14935:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5522, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14940:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5519, + "name": "transferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5485 + ], + "referencedDeclaration": 5485, + "src": "14915:12:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14915:34:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5524, + "nodeType": "ExpressionStatement", + "src": "14915:34:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5527, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "15035:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5528, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "15042:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5529, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "15047:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5530, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5513, + "src": "15057:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5526, + "name": "checkAndCallSafeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5763, + "src": "15010:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 5531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15010:53:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5525, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "15002:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15002:62:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5533, + "nodeType": "ExpressionStatement", + "src": "15002:62:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", + "id": 5535, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5516, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14895:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5517, + "modifierName": { + "argumentTypes": null, + "id": 5515, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "14883:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "14883:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5514, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5507, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14781:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14781:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5509, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14801:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14801:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5511, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14819:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14819:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5513, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14842:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5512, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14842:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14774:91:8" + }, + "returnParameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [], + "src": "14908:0:8" + }, + "scope": 5764, + "src": "14749:321:8", + "stateMutability": "nonpayable", + "superFunction": 5186, + "visibility": "public" + }, + { + "body": { + "id": 5566, + "nodeType": "Block", + "src": "15551:330:8", + "statements": [ + { + "assignments": [ + 5545 + ], + "declarations": [ + { + "constant": false, + "id": 5545, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5566, + "src": "15558:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15558:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5549, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5547, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15582:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5546, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "15574:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15574:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15558:33:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5550, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15763:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5551, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15775:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15763:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5554, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15803:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5553, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5388 + ], + "referencedDeclaration": 5388, + "src": "15791:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15791:21:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5556, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15816:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15791:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:61:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5560, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15852:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5561, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15859:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5559, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "15835:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15835:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:105:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5564, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15754:121:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5543, + "id": 5565, + "nodeType": "Return", + "src": "15747:128:8" + } + ] + }, + "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", + "id": 5567, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5540, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5537, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15459:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5536, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15459:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5539, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15482:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5538, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15482:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15452:51:8" + }, + "returnParameters": { + "id": 5543, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5542, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15542:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5541, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15541:6:8" + }, + "scope": 5764, + "src": "15426:455:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5595, + "nodeType": "Block", + "src": "16193:118:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5575, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16208:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16223:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16215:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16215:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "16208:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5574, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "16200:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16200:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5581, + "nodeType": "ExpressionStatement", + "src": "16200:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5583, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16244:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5584, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16249:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5582, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "16233:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16233:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5586, + "nodeType": "ExpressionStatement", + "src": "16233:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16287:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16279:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16279:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5591, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16291:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5592, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16296:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5587, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16270:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16270:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5594, + "nodeType": "EmitStatement", + "src": "16265:40:8" + } + ] + }, + "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", + "id": 5596, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5569, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16153:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5568, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16153:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5571, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16166:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5570, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16166:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16152:31:8" + }, + "returnParameters": { + "id": 5573, + "nodeType": "ParameterList", + "parameters": [], + "src": "16193:0:8" + }, + "scope": 5764, + "src": "16138:173:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5621, + "nodeType": "Block", + "src": "16562:134:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5604, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16583:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5605, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16591:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5603, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "16569:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16569:31:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5607, + "nodeType": "ExpressionStatement", + "src": "16569:31:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5609, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16623:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5610, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16631:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5608, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "16607:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16607:33:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5612, + "nodeType": "ExpressionStatement", + "src": "16607:33:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5614, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16661:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16677:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16669:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16669:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5618, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16681:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5613, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16652:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16652:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5620, + "nodeType": "EmitStatement", + "src": "16647:43:8" + } + ] + }, + "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", + "id": 5622, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5598, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16519:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16519:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5600, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16535:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5599, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16535:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16518:34:8" + }, + "returnParameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [], + "src": "16562:0:8" + }, + "scope": 5764, + "src": "16504:192:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5654, + "nodeType": "Block", + "src": "17032:153:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5631, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17055:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5630, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "17047:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17047:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5633, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5624, + "src": "17068:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17047:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5629, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17039:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17039:36:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5636, + "nodeType": "ExpressionStatement", + "src": "17039:36:8" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5637, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17086:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5639, + "indexExpression": { + "argumentTypes": null, + "id": 5638, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17101:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17086:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17122:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17114:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17114:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17086:38:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5653, + "nodeType": "IfStatement", + "src": "17082:98:8", + "trueBody": { + "id": 5652, + "nodeType": "Block", + "src": "17126:54:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5644, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17135:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5646, + "indexExpression": { + "argumentTypes": null, + "id": 5645, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17150:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17135:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5648, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17170:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17162:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17162:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17135:37:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5651, + "nodeType": "ExpressionStatement", + "src": "17135:37:8" + } + ] + } + } + ] + }, + "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5655, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "clearApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5624, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "16989:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5623, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16989:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5626, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "17005:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5625, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17005:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16988:34:8" + }, + "returnParameters": { + "id": 5628, + "nodeType": "ParameterList", + "parameters": [], + "src": "17032:0:8" + }, + "scope": 5764, + "src": "16966:219:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5689, + "nodeType": "Block", + "src": "17515:148:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5663, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17530:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5665, + "indexExpression": { + "argumentTypes": null, + "id": 5664, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17541:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17530:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17562:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17554:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17554:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17530:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5662, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17522:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17522:43:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5671, + "nodeType": "ExpressionStatement", + "src": "17522:43:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5672, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17572:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5674, + "indexExpression": { + "argumentTypes": null, + "id": 5673, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17583:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17572:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5675, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17595:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17572:26:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5677, + "nodeType": "ExpressionStatement", + "src": "17572:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5678, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17605:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5680, + "indexExpression": { + "argumentTypes": null, + "id": 5679, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17622:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17605:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17655:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5681, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17629:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5683, + "indexExpression": { + "argumentTypes": null, + "id": 5682, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17646:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17629:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "17629:25:8", + "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": 5686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17629:28:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17605:52:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5688, + "nodeType": "ExpressionStatement", + "src": "17605:52:8" + } + ] + }, + "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", + "id": 5690, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addTokenTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5657, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17475:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17475:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5659, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17488:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17488:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17474:31:8" + }, + "returnParameters": { + "id": 5661, + "nodeType": "ParameterList", + "parameters": [], + "src": "17515:0:8" + }, + "scope": 5764, + "src": "17455:208:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5724, + "nodeType": "Block", + "src": "18016:151:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5699, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18039:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5698, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "18031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18031:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5701, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18052:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "18031:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5697, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "18023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18023:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5704, + "nodeType": "ExpressionStatement", + "src": "18023:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5705, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18065:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5707, + "indexExpression": { + "argumentTypes": null, + "id": 5706, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18082:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18065:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18119:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5708, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18091:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5710, + "indexExpression": { + "argumentTypes": null, + "id": 5709, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18108:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18091:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "18091:27:8", + "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": 5713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18091:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18065:56:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5715, + "nodeType": "ExpressionStatement", + "src": "18065:56:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5716, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "18128:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5718, + "indexExpression": { + "argumentTypes": null, + "id": 5717, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18139:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18128:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18159:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18151:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18151:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "18128:33:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5723, + "nodeType": "ExpressionStatement", + "src": "18128:33:8" + } + ] + }, + "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", + "id": 5725, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeTokenFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5692, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17974:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5691, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17974:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5694, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17989:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17989:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17973:33:8" + }, + "returnParameters": { + "id": 5696, + "nodeType": "ParameterList", + "parameters": [], + "src": "18016:0:8" + }, + "scope": 5764, + "src": "17949:218:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5762, + "nodeType": "Block", + "src": "18846:195:8", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "18857:17:8", + "subExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5738, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18858:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 5008, + "src": "18858:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18858:16:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5745, + "nodeType": "IfStatement", + "src": "18853:51:8", + "trueBody": { + "id": 5744, + "nodeType": "Block", + "src": "18876:28:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18892:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5737, + "id": 5743, + "nodeType": "Return", + "src": "18885:11:8" + } + ] + } + }, + { + "assignments": [ + 5747 + ], + "declarations": [ + { + "constant": false, + "id": 5747, + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 5762, + "src": "18910:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5746, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "18910:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5756, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5752, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5727, + "src": "18971:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5753, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5731, + "src": "18978:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5754, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5733, + "src": "18988:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5749, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18941:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5748, + "name": "ERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "18926:14:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", + "typeString": "type(contract ERC721Receiver)" + } + }, + "id": 5750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:19:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Receiver_$5080", + "typeString": "contract ERC721Receiver" + } + }, + "id": 5751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 5079, + "src": "18926:36:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 5755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:68:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18910:84:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5757, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5747, + "src": "19009:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5758, + "name": "ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5206, + "src": "19019:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "19009:25:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5760, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19008:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5737, + "id": 5761, + "nodeType": "Return", + "src": "19001:34:8" + } + ] + }, + "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", + "id": 5763, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "checkAndCallSafeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5727, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18724:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5726, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18724:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5729, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18744:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18744:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5731, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18762:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5730, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18762:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5733, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18785:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5732, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18785:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18717:91:8" + }, + "returnParameters": { + "id": 5737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5736, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18837:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5735, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18837:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18836:6:8" + }, + "scope": 5764, + "src": "18684:357:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "6942:12102:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5765, + "name": "ERC721BasicToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5764, + "src": "19081:16:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", + "typeString": "contract ERC721BasicToken" + } + }, + "id": 5766, + "nodeType": "InheritanceSpecifier", + "src": "19081:16:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187, + 5764 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5797, + "linearizedBaseContracts": [ + 5797, + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicTokenMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5780, + "nodeType": "Block", + "src": "19155:39:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5776, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5768, + "src": "19174:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5777, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5770, + "src": "19179:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5773, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19162:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 5596, + "src": "19162:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19162:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5779, + "nodeType": "ExpressionStatement", + "src": "19162:26:8" + } + ] + }, + "documentation": null, + "id": 5781, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19117:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19117:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19130:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19130:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19116:31:8" + }, + "returnParameters": { + "id": 5772, + "nodeType": "ParameterList", + "parameters": [], + "src": "19155:0:8" + }, + "scope": 5797, + "src": "19103:91:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5795, + "nodeType": "Block", + "src": "19239:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5790, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19266:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5789, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "19258:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19258:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5792, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19277:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5786, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19246:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 5622, + "src": "19246:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19246:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5794, + "nodeType": "ExpressionStatement", + "src": "19246:40:8" + } + ] + }, + "documentation": null, + "id": 5796, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5783, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5796, + "src": "19214:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5782, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19214:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19213:18:8" + }, + "returnParameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [], + "src": "19239:0:8" + }, + "scope": 5797, + "src": "19200:92:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "19048:247:8" + } + ], + "src": "0:19297:8" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:19.969Z", + "devdoc": { + "details": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", + "methods": { + "supportsInterface(bytes4)": { + "details": "Interface identification is specified in ERC-165. This function\r uses less than 30,000 gas.\r", + "params": { + "_interfaceId": "The interface identifier, as specified in ERC-165\r" + } + } + }, + "title": "ERC165\r" + }, + "userdoc": { + "methods": { + "supportsInterface(bytes4)": { + "notice": "Query if a contract implements an interface\r" + } + } + } +} \ No newline at end of file diff --git a/src/contracts/ERC20.json b/src/contracts/ERC20.json new file mode 100644 index 0000000..325821d --- /dev/null +++ b/src/contracts/ERC20.json @@ -0,0 +1,10555 @@ +{ + "contractName": "ERC20", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Implementation of the basic standard token.\\r https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\\r Originally based on code by FirstBlood:\\r https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol\\r * This implementation emits additional Approval events, allowing applications to reconstruct the allowance status for\\r all accounts just by listening to said events. Note that this isn't required by the specification, and other\\r compliant implementations may not do it.\\r\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Function to check the amount of tokens that an owner allowed to a spender.\\r\",\"params\":{\"owner\":\"address The address which owns the funds.\\r\",\"spender\":\"address The address which will spend the funds.\\r\"},\"return\":\"A uint256 specifying the amount of tokens still available for the spender.\\r\"},\"approve(address,uint256)\":{\"details\":\"Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\\r Beware that changing an allowance with this method brings the risk that someone may use both the old\\r and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\\r race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\\r https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\r\",\"params\":{\"spender\":\"The address which will spend the funds.\\r\",\"value\":\"The amount of tokens to be spent.\\r\"}},\"balanceOf(address)\":{\"details\":\"Gets the balance of the specified address.\\r\",\"params\":{\"owner\":\"The address to query the balance of.\\r\"},\"return\":\"An uint256 representing the amount owned by the passed address.\\r\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Decrease the amount of tokens that an owner allowed to a spender.\\r approve should be called when allowed_[_spender] == 0. To decrement\\r allowed value is better to use this function to avoid 2 calls (and wait until\\r the first transaction is mined)\\r From MonolithDAO Token.sol\\r Emits an Approval event.\\r\",\"params\":{\"spender\":\"The address which will spend the funds.\\r\",\"subtractedValue\":\"The amount of tokens to decrease the allowance by.\\r\"}},\"increaseAllowance(address,uint256)\":{\"details\":\"Increase the amount of tokens that an owner allowed to a spender.\\r approve should be called when allowed_[_spender] == 0. To increment\\r allowed value is better to use this function to avoid 2 calls (and wait until\\r the first transaction is mined)\\r From MonolithDAO Token.sol\\r Emits an Approval event.\\r\",\"params\":{\"addedValue\":\"The amount of tokens to increase the allowance by.\\r\",\"spender\":\"The address which will spend the funds.\\r\"}},\"totalSupply()\":{\"details\":\"Total number of tokens in existence\\r\"},\"transfer(address,uint256)\":{\"details\":\"Transfer token for a specified address\\r\",\"params\":{\"to\":\"The address to transfer to.\\r\",\"value\":\"The amount to be transferred.\\r\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfer tokens from one address to another.\\r Note that while this function emits an Approval event, this is not required as per the specification,\\r and other compliant implementations may not emit the event.\\r\",\"params\":{\"from\":\"address The address which you want to send tokens from\\r\",\"to\":\"address The address which you want to transfer to\\r\",\"value\":\"uint256 the amount of tokens to be transferred\\r\"}}},\"title\":\"Standard ERC20 token\\r \"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol\":{\"keccak256\":\"0x83d94afc84930834148f8e00b2b2b624be5e2a910aeb9f508b6e3252648b304a\",\"urls\":[\"bzzr://074edfefdd7f638d059397b8b72e70605bb8eba1e750d8d512d86a5d8abaf966\",\"dweb:/ipfs/QmTPEnc9wjRf7jZ1xzh68sAjusFY5XHCTLpy79yCtCuWrA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b506104e9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806370a082311161005b57806370a0823114610149578063a457c2d71461016f578063a9059cbb1461019b578063dd62ed3e146101c757610088565b8063095ea7b31461008d57806318160ddd146100cd57806323b872dd146100e7578063395093511461011d575b600080fd5b6100b9600480360360408110156100a357600080fd5b506001600160a01b0381351690602001356101f5565b604080519115158252519081900360200190f35b6100d561020b565b60408051918252519081900360200190f35b6100b9600480360360608110156100fd57600080fd5b506001600160a01b03813581169160208101359091169060400135610211565b6100b96004803603604081101561013357600080fd5b506001600160a01b038135169060200135610268565b6100d56004803603602081101561015f57600080fd5b50356001600160a01b03166102a4565b6100b96004803603604081101561018557600080fd5b506001600160a01b0381351690602001356102bf565b6100b9600480360360408110156101b157600080fd5b506001600160a01b0381351690602001356102fb565b6100d5600480360360408110156101dd57600080fd5b506001600160a01b0381358116916020013516610308565b6000610202338484610333565b50600192915050565b60025490565b600061021e8484846103bb565b6001600160a01b03841660009081526001602090815260408083203380855292529091205461025e918691610259908663ffffffff61048616565b610333565b5060019392505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610202918590610259908663ffffffff61049b16565b6001600160a01b031660009081526020819052604090205490565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610202918590610259908663ffffffff61048616565b60006102023384846103bb565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03821661034657600080fd5b6001600160a01b03831661035957600080fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0382166103ce57600080fd5b6001600160a01b0383166000908152602081905260409020546103f7908263ffffffff61048616565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461042c908263ffffffff61049b16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282111561049557600080fd5b50900390565b6000828201838110156104ad57600080fd5b939250505056fea265627a7a7230582015d5d1d47d35501fbb489bdd61b5ceb6c9b96bea5583608ac39939d36ab6302064736f6c63430005090032", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c806370a082311161005b57806370a0823114610149578063a457c2d71461016f578063a9059cbb1461019b578063dd62ed3e146101c757610088565b8063095ea7b31461008d57806318160ddd146100cd57806323b872dd146100e7578063395093511461011d575b600080fd5b6100b9600480360360408110156100a357600080fd5b506001600160a01b0381351690602001356101f5565b604080519115158252519081900360200190f35b6100d561020b565b60408051918252519081900360200190f35b6100b9600480360360608110156100fd57600080fd5b506001600160a01b03813581169160208101359091169060400135610211565b6100b96004803603604081101561013357600080fd5b506001600160a01b038135169060200135610268565b6100d56004803603602081101561015f57600080fd5b50356001600160a01b03166102a4565b6100b96004803603604081101561018557600080fd5b506001600160a01b0381351690602001356102bf565b6100b9600480360360408110156101b157600080fd5b506001600160a01b0381351690602001356102fb565b6100d5600480360360408110156101dd57600080fd5b506001600160a01b0381358116916020013516610308565b6000610202338484610333565b50600192915050565b60025490565b600061021e8484846103bb565b6001600160a01b03841660009081526001602090815260408083203380855292529091205461025e918691610259908663ffffffff61048616565b610333565b5060019392505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610202918590610259908663ffffffff61049b16565b6001600160a01b031660009081526020819052604090205490565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610202918590610259908663ffffffff61048616565b60006102023384846103bb565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03821661034657600080fd5b6001600160a01b03831661035957600080fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0382166103ce57600080fd5b6001600160a01b0383166000908152602081905260409020546103f7908263ffffffff61048616565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461042c908263ffffffff61049b16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282111561049557600080fd5b50900390565b6000828201838110156104ad57600080fd5b939250505056fea265627a7a7230582015d5d1d47d35501fbb489bdd61b5ceb6c9b96bea5583608ac39939d36ab6302064736f6c63430005090032", + "sourceMap": "657:7174:19:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;657:7174:19;;;;;;;", + "deployedSourceMap": "657:7174:19:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;657:7174:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2807:148;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2807:148:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;958:91;;;:::i;:::-;;;;;;;;;;;;;;;;3428:228;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3428:228:19;;;;;;;;;;;;;;;;;:::i;4171:203::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4171:203:19;;;;;;;;:::i;1269:106::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1269:106:19;-1:-1:-1;;;;;1269:106:19;;:::i;4894:213::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4894:213:19;;;;;;;;:::i;2020:140::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2020:140:19;;;;;;;;:::i;1714:131::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1714:131:19;;;;;;;;;;:::i;2807:148::-;2872:4;2889:36;2898:10;2910:7;2919:5;2889:8;:36::i;:::-;-1:-1:-1;2943:4:19;2807:148;;;;:::o;958:91::-;1029:12;;958:91;:::o;3428:228::-;3507:4;3524:26;3534:4;3540:2;3544:5;3524:9;:26::i;:::-;-1:-1:-1;;;;;3588:14:19;;;;;;:8;:14;;;;;;;;3576:10;3588:26;;;;;;;;;3561:65;;3570:4;;3588:37;;3619:5;3588:37;:30;:37;:::i;:::-;3561:8;:65::i;:::-;-1:-1:-1;3644:4:19;3428:228;;;;;:::o;4171:203::-;4277:10;4251:4;4298:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;4298:29:19;;;;;;;;;;4251:4;;4268:76;;4289:7;;4298:45;;4332:10;4298:45;:33;:45;:::i;1269:106::-;-1:-1:-1;;;;;1351:16:19;1324:7;1351:16;;;;;;;;;;;;1269:106::o;4894:213::-;5005:10;4979:4;5026:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;5026:29:19;;;;;;;;;;4979:4;;4996:81;;5017:7;;5026:50;;5060:15;5026:50;:33;:50;:::i;2020:140::-;2081:4;2098:32;2108:10;2120:2;2124:5;2098:9;:32::i;1714:131::-;-1:-1:-1;;;;;1813:15:19;;;1786:7;1813:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;1714:131::o;6993:254::-;-1:-1:-1;;;;;7086:21:19;;7078:30;;;;;;-1:-1:-1;;;;;7127:19:19;;7119:28;;;;;;-1:-1:-1;;;;;7160:15:19;;;;;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;:32;;;7208:31;;;;;;;;;;;;;;;;;6993:254;;;:::o;5334:262::-;-1:-1:-1;;;;;5422:16:19;;5414:25;;;;;;-1:-1:-1;;;;;5470:15:19;;:9;:15;;;;;;;;;;;:26;;5490:5;5470:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;5452:15:19;;;:9;:15;;;;;;;;;;;:44;;;;5523:13;;;;;;;:24;;5541:5;5523:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;5507:13:19;;;:9;:13;;;;;;;;;;;;:40;;;;5563:25;;;;;;;5507:13;;5563:25;;;;;;;;;;;;;5334:262;;;:::o;431:150:22:-;489:7;522:1;517;:6;;509:15;;;;;;-1:-1:-1;547:5:22;;;431:150::o;589:::-;647:7;679:5;;;703:6;;;;695:15;;;;;;730:1;589:150;-1:-1:-1;;;589:150:22:o", + "source": "pragma solidity ^0.5.2;\r\n\r\nimport \"./IERC20.sol\";\r\nimport \"./SafeMath.sol\";\r\n\r\n/**\r\n * @title Standard ERC20 token\r\n *\r\n * @dev Implementation of the basic standard token.\r\n * https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\r\n * Originally based on code by FirstBlood:\r\n * https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol\r\n *\r\n * This implementation emits additional Approval events, allowing applications to reconstruct the allowance status for\r\n * all accounts just by listening to said events. Note that this isn't required by the specification, and other\r\n * compliant implementations may not do it.\r\n */\r\ncontract ERC20 is IERC20 {\r\n using SafeMath for uint256;\r\n\r\n mapping (address => uint256) private _balances;\r\n\r\n mapping (address => mapping (address => uint256)) private _allowed;\r\n\r\n uint256 private _totalSupply;\r\n\r\n /**\r\n * @dev Total number of tokens in existence\r\n */\r\n function totalSupply() public view returns (uint256) {\r\n return _totalSupply;\r\n }\r\n\r\n /**\r\n * @dev Gets the balance of the specified address.\r\n * @param owner The address to query the balance of.\r\n * @return An uint256 representing the amount owned by the passed address.\r\n */\r\n function balanceOf(address owner) public view returns (uint256) {\r\n return _balances[owner];\r\n }\r\n\r\n /**\r\n * @dev Function to check the amount of tokens that an owner allowed to a spender.\r\n * @param owner address The address which owns the funds.\r\n * @param spender address The address which will spend the funds.\r\n * @return A uint256 specifying the amount of tokens still available for the spender.\r\n */\r\n function allowance(address owner, address spender) public view returns (uint256) {\r\n return _allowed[owner][spender];\r\n }\r\n\r\n /**\r\n * @dev Transfer token for a specified address\r\n * @param to The address to transfer to.\r\n * @param value The amount to be transferred.\r\n */\r\n function transfer(address to, uint256 value) public returns (bool) {\r\n _transfer(msg.sender, to, value);\r\n return true;\r\n }\r\n\r\n /**\r\n * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\r\n * Beware that changing an allowance with this method brings the risk that someone may use both the old\r\n * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\r\n * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\r\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\r\n * @param spender The address which will spend the funds.\r\n * @param value The amount of tokens to be spent.\r\n */\r\n function approve(address spender, uint256 value) public returns (bool) {\r\n _approve(msg.sender, spender, value);\r\n return true;\r\n }\r\n\r\n /**\r\n * @dev Transfer tokens from one address to another.\r\n * Note that while this function emits an Approval event, this is not required as per the specification,\r\n * and other compliant implementations may not emit the event.\r\n * @param from address The address which you want to send tokens from\r\n * @param to address The address which you want to transfer to\r\n * @param value uint256 the amount of tokens to be transferred\r\n */\r\n function transferFrom(address from, address to, uint256 value) public returns (bool) {\r\n _transfer(from, to, value);\r\n _approve(from, msg.sender, _allowed[from][msg.sender].sub(value));\r\n return true;\r\n }\r\n\r\n /**\r\n * @dev Increase the amount of tokens that an owner allowed to a spender.\r\n * approve should be called when allowed_[_spender] == 0. To increment\r\n * allowed value is better to use this function to avoid 2 calls (and wait until\r\n * the first transaction is mined)\r\n * From MonolithDAO Token.sol\r\n * Emits an Approval event.\r\n * @param spender The address which will spend the funds.\r\n * @param addedValue The amount of tokens to increase the allowance by.\r\n */\r\n function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {\r\n _approve(msg.sender, spender, _allowed[msg.sender][spender].add(addedValue));\r\n return true;\r\n }\r\n\r\n /**\r\n * @dev Decrease the amount of tokens that an owner allowed to a spender.\r\n * approve should be called when allowed_[_spender] == 0. To decrement\r\n * allowed value is better to use this function to avoid 2 calls (and wait until\r\n * the first transaction is mined)\r\n * From MonolithDAO Token.sol\r\n * Emits an Approval event.\r\n * @param spender The address which will spend the funds.\r\n * @param subtractedValue The amount of tokens to decrease the allowance by.\r\n */\r\n function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {\r\n _approve(msg.sender, spender, _allowed[msg.sender][spender].sub(subtractedValue));\r\n return true;\r\n }\r\n\r\n /**\r\n * @dev Transfer token for a specified addresses\r\n * @param from The address to transfer from.\r\n * @param to The address to transfer to.\r\n * @param value The amount to be transferred.\r\n */\r\n function _transfer(address from, address to, uint256 value) internal {\r\n require(to != address(0));\r\n\r\n _balances[from] = _balances[from].sub(value);\r\n _balances[to] = _balances[to].add(value);\r\n emit Transfer(from, to, value);\r\n }\r\n\r\n /**\r\n * @dev Internal function that mints an amount of the token and assigns it to\r\n * an account. This encapsulates the modification of balances such that the\r\n * proper events are emitted.\r\n * @param account The account that will receive the created tokens.\r\n * @param value The amount that will be created.\r\n */\r\n function _mint(address account, uint256 value) internal {\r\n require(account != address(0));\r\n\r\n _totalSupply = _totalSupply.add(value);\r\n _balances[account] = _balances[account].add(value);\r\n emit Transfer(address(0), account, value);\r\n }\r\n\r\n /**\r\n * @dev Internal function that burns an amount of the token of a given\r\n * account.\r\n * @param account The account whose tokens will be burnt.\r\n * @param value The amount that will be burnt.\r\n */\r\n function _burn(address account, uint256 value) internal {\r\n require(account != address(0));\r\n\r\n _totalSupply = _totalSupply.sub(value);\r\n _balances[account] = _balances[account].sub(value);\r\n emit Transfer(account, address(0), value);\r\n }\r\n\r\n /**\r\n * @dev Approve an address to spend another addresses' tokens.\r\n * @param owner The address that owns the tokens.\r\n * @param spender The address that will spend the tokens.\r\n * @param value The number of tokens that can be spent.\r\n */\r\n function _approve(address owner, address spender, uint256 value) internal {\r\n require(spender != address(0));\r\n require(owner != address(0));\r\n\r\n _allowed[owner][spender] = value;\r\n emit Approval(owner, spender, value);\r\n }\r\n\r\n /**\r\n * @dev Internal function that burns an amount of the token of a given\r\n * account, deducting from the sender's allowance for said account. Uses the\r\n * internal burn function.\r\n * Emits an Approval event (reflecting the reduced allowance).\r\n * @param account The account whose tokens will be burnt.\r\n * @param value The amount that will be burnt.\r\n */\r\n function _burnFrom(address account, uint256 value) internal {\r\n _burn(account, value);\r\n _approve(account, msg.sender, _allowed[account][msg.sender].sub(value));\r\n }\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\oz\\ERC20.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol", + "exportedSymbols": { + "ERC20": [ + 9650 + ] + }, + "id": 9651, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9269, + "literals": [ + "solidity", + "^", + "0.5", + ".2" + ], + "nodeType": "PragmaDirective", + "src": "0:23:19" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", + "file": "./IERC20.sol", + "id": 9270, + "nodeType": "ImportDirective", + "scope": 9651, + "sourceUnit": 9720, + "src": "27:22:19", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "./SafeMath.sol", + "id": 9271, + "nodeType": "ImportDirective", + "scope": 9651, + "sourceUnit": 9858, + "src": "51:24:19", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9272, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "675:6:19", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 9273, + "nodeType": "InheritanceSpecifier", + "src": "675:6:19" + } + ], + "contractDependencies": [ + 9719 + ], + "contractKind": "contract", + "documentation": "@title Standard ERC20 token\r\n\n * @dev Implementation of the basic standard token.\r\nhttps://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\r\nOriginally based on code by FirstBlood:\r\nhttps://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol\r\n\n * This implementation emits additional Approval events, allowing applications to reconstruct the allowance status for\r\nall accounts just by listening to said events. Note that this isn't required by the specification, and other\r\ncompliant implementations may not do it.\r", + "fullyImplemented": true, + "id": 9650, + "linearizedBaseContracts": [ + 9650, + 9719 + ], + "name": "ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 9276, + "libraryName": { + "contractScope": null, + "id": 9274, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "695:8:19", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "689:27:19", + "typeName": { + "id": 9275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "708:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 9280, + "name": "_balances", + "nodeType": "VariableDeclaration", + "scope": 9650, + "src": "724:46:19", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 9279, + "keyType": { + "id": 9277, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "733:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "724:28:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 9278, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "744:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 9286, + "name": "_allowed", + "nodeType": "VariableDeclaration", + "scope": 9650, + "src": "779:66:19", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 9285, + "keyType": { + "id": 9281, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "788:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "779:49:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 9284, + "keyType": { + "id": 9282, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "808:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "799:28:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 9283, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "819:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 9288, + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "scope": 9650, + "src": "854:28:19", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9287, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "854:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 9295, + "nodeType": "Block", + "src": "1011:38:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9293, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9288, + "src": "1029:12:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9292, + "id": 9294, + "nodeType": "Return", + "src": "1022:19:19" + } + ] + }, + "documentation": "@dev Total number of tokens in existence\r", + "id": 9296, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9289, + "nodeType": "ParameterList", + "parameters": [], + "src": "978:2:19" + }, + "returnParameters": { + "id": 9292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9291, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9296, + "src": "1002:7:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1002:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1001:9:19" + }, + "scope": 9650, + "src": "958:91:19", + "stateMutability": "view", + "superFunction": 9686, + "visibility": "public" + }, + { + "body": { + "id": 9307, + "nodeType": "Block", + "src": "1333:42:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9303, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9280, + "src": "1351:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9305, + "indexExpression": { + "argumentTypes": null, + "id": 9304, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9298, + "src": "1361:5:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1351:16:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9302, + "id": 9306, + "nodeType": "Return", + "src": "1344:23:19" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address.\r\n@param owner The address to query the balance of.\r\n@return An uint256 representing the amount owned by the passed address.\r", + "id": 9308, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9299, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9298, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 9308, + "src": "1288:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9297, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1288:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1287:15:19" + }, + "returnParameters": { + "id": 9302, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9301, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9308, + "src": "1324:7:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9300, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1324:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1323:9:19" + }, + "scope": 9650, + "src": "1269:106:19", + "stateMutability": "view", + "superFunction": 9693, + "visibility": "public" + }, + { + "body": { + "id": 9323, + "nodeType": "Block", + "src": "1795:50:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9317, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9286, + "src": "1813:8:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 9319, + "indexExpression": { + "argumentTypes": null, + "id": 9318, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9310, + "src": "1822:5:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1813:15:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9321, + "indexExpression": { + "argumentTypes": null, + "id": 9320, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9312, + "src": "1829:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1813:24:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9316, + "id": 9322, + "nodeType": "Return", + "src": "1806:31:19" + } + ] + }, + "documentation": "@dev Function to check the amount of tokens that an owner allowed to a spender.\r\n@param owner address The address which owns the funds.\r\n@param spender address The address which will spend the funds.\r\n@return A uint256 specifying the amount of tokens still available for the spender.\r", + "id": 9324, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9313, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9310, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 9324, + "src": "1733:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9309, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1733:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9312, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 9324, + "src": "1748:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9311, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1748:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1732:32:19" + }, + "returnParameters": { + "id": 9316, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9315, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9324, + "src": "1786:7:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9314, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1786:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1785:9:19" + }, + "scope": 9650, + "src": "1714:131:19", + "stateMutability": "view", + "superFunction": 9702, + "visibility": "public" + }, + { + "body": { + "id": 9342, + "nodeType": "Block", + "src": "2087:73:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9334, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "2108:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2108:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9336, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9326, + "src": "2120:2:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9337, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9328, + "src": "2124:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9333, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9497, + "src": "2098:9:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 9338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2098:32:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9339, + "nodeType": "ExpressionStatement", + "src": "2098:32:19" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 9340, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2148:4:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 9332, + "id": 9341, + "nodeType": "Return", + "src": "2141:11:19" + } + ] + }, + "documentation": "@dev Transfer token for a specified address\r\n@param to The address to transfer to.\r\n@param value The amount to be transferred.\r", + "id": 9343, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9329, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9326, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 9343, + "src": "2038:10:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9325, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2038:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9328, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9343, + "src": "2050:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9327, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2050:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2037:27:19" + }, + "returnParameters": { + "id": 9332, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9331, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9343, + "src": "2081:4:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9330, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2081:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2080:6:19" + }, + "scope": 9650, + "src": "2020:140:19", + "stateMutability": "nonpayable", + "superFunction": 9661, + "visibility": "public" + }, + { + "body": { + "id": 9361, + "nodeType": "Block", + "src": "2878:77:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9353, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "2898:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2898:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9355, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9345, + "src": "2910:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9356, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9347, + "src": "2919:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9352, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9621, + "src": "2889:8:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 9357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2889:36:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9358, + "nodeType": "ExpressionStatement", + "src": "2889:36:19" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 9359, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2943:4:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 9351, + "id": 9360, + "nodeType": "Return", + "src": "2936:11:19" + } + ] + }, + "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\r\nBeware that changing an allowance with this method brings the risk that someone may use both the old\r\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\r\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\r\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\r\n@param spender The address which will spend the funds.\r\n@param value The amount of tokens to be spent.\r", + "id": 9362, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9345, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 9362, + "src": "2824:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9344, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2824:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9347, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9362, + "src": "2841:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2841:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2823:32:19" + }, + "returnParameters": { + "id": 9351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9350, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9362, + "src": "2872:4:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9349, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2872:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2871:6:19" + }, + "scope": 9650, + "src": "2807:148:19", + "stateMutability": "nonpayable", + "superFunction": 9670, + "visibility": "public" + }, + { + "body": { + "id": 9396, + "nodeType": "Block", + "src": "3513:143:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9374, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9364, + "src": "3534:4:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9375, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9366, + "src": "3540:2:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9376, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9368, + "src": "3544:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9373, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9497, + "src": "3524:9:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 9377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3524:26:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9378, + "nodeType": "ExpressionStatement", + "src": "3524:26:19" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9380, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9364, + "src": "3570:4:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9381, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3576:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3576:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9390, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9368, + "src": "3619:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9383, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9286, + "src": "3588:8:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 9385, + "indexExpression": { + "argumentTypes": null, + "id": 9384, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9364, + "src": "3597:4:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3588:14:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9388, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9386, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3603:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3603:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3588:26:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "3588:30:19", + "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": 9391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3588:37:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9379, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9621, + "src": "3561:8:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 9392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3561:65:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9393, + "nodeType": "ExpressionStatement", + "src": "3561:65:19" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 9394, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3644:4:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 9372, + "id": 9395, + "nodeType": "Return", + "src": "3637:11:19" + } + ] + }, + "documentation": "@dev Transfer tokens from one address to another.\r\nNote that while this function emits an Approval event, this is not required as per the specification,\r\nand other compliant implementations may not emit the event.\r\n@param from address The address which you want to send tokens from\r\n@param to address The address which you want to transfer to\r\n@param value uint256 the amount of tokens to be transferred\r", + "id": 9397, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9369, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9364, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 9397, + "src": "3450:12:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9363, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3450:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9366, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 9397, + "src": "3464:10:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9365, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3464:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9368, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9397, + "src": "3476:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9367, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3476:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3449:41:19" + }, + "returnParameters": { + "id": 9372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9371, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9397, + "src": "3507:4:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9370, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3507:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3506:6:19" + }, + "scope": 9650, + "src": "3428:228:19", + "stateMutability": "nonpayable", + "superFunction": 9681, + "visibility": "public" + }, + { + "body": { + "id": 9423, + "nodeType": "Block", + "src": "4257:117:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9407, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "4277:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4277:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9409, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9399, + "src": "4289:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9417, + "name": "addedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9401, + "src": "4332:10:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9410, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9286, + "src": "4298:8:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 9413, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9411, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "4307:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4307:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4298:20:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9415, + "indexExpression": { + "argumentTypes": null, + "id": 9414, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9399, + "src": "4319:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4298:29:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "4298:33:19", + "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": 9418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4298:45:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9406, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9621, + "src": "4268:8:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 9419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4268:76:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9420, + "nodeType": "ExpressionStatement", + "src": "4268:76:19" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 9421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4362:4:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 9405, + "id": 9422, + "nodeType": "Return", + "src": "4355:11:19" + } + ] + }, + "documentation": "@dev Increase the amount of tokens that an owner allowed to a spender.\r\napprove should be called when allowed_[_spender] == 0. To increment\r\nallowed value is better to use this function to avoid 2 calls (and wait until\r\nthe first transaction is mined)\r\nFrom MonolithDAO Token.sol\r\nEmits an Approval event.\r\n@param spender The address which will spend the funds.\r\n@param addedValue The amount of tokens to increase the allowance by.\r", + "id": 9424, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "increaseAllowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9402, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9399, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 9424, + "src": "4198:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9398, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4198:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9401, + "name": "addedValue", + "nodeType": "VariableDeclaration", + "scope": 9424, + "src": "4215:18:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9400, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4215:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4197:37:19" + }, + "returnParameters": { + "id": 9405, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9404, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9424, + "src": "4251:4:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9403, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4251:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4250:6:19" + }, + "scope": 9650, + "src": "4171:203:19", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9450, + "nodeType": "Block", + "src": "4985:122:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9434, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "5005:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5005:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9436, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9426, + "src": "5017:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9444, + "name": "subtractedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9428, + "src": "5060:15:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9437, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9286, + "src": "5026:8:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 9440, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9438, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "5035:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5035:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5026:20:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9442, + "indexExpression": { + "argumentTypes": null, + "id": 9441, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9426, + "src": "5047:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5026:29:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "5026:33:19", + "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": 9445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5026:50:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9433, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9621, + "src": "4996:8:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 9446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4996:81:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9447, + "nodeType": "ExpressionStatement", + "src": "4996:81:19" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 9448, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5095:4:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 9432, + "id": 9449, + "nodeType": "Return", + "src": "5088:11:19" + } + ] + }, + "documentation": "@dev Decrease the amount of tokens that an owner allowed to a spender.\r\napprove should be called when allowed_[_spender] == 0. To decrement\r\nallowed value is better to use this function to avoid 2 calls (and wait until\r\nthe first transaction is mined)\r\nFrom MonolithDAO Token.sol\r\nEmits an Approval event.\r\n@param spender The address which will spend the funds.\r\n@param subtractedValue The amount of tokens to decrease the allowance by.\r", + "id": 9451, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decreaseAllowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9426, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 9451, + "src": "4921:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9425, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4921:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9428, + "name": "subtractedValue", + "nodeType": "VariableDeclaration", + "scope": 9451, + "src": "4938:23:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9427, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4938:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4920:42:19" + }, + "returnParameters": { + "id": 9432, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9431, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9451, + "src": "4979:4:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9430, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4979:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4978:6:19" + }, + "scope": 9650, + "src": "4894:213:19", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9496, + "nodeType": "Block", + "src": "5403:193:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 9465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9461, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9455, + "src": "5422:2:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 9463, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5436:1:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 9462, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5428:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 9464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5428:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "5422:16:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 9460, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "5414:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 9466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5414:25:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9467, + "nodeType": "ExpressionStatement", + "src": "5414:25:19" + }, + { + "expression": { + "argumentTypes": null, + "id": 9477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9468, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9280, + "src": "5452:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9470, + "indexExpression": { + "argumentTypes": null, + "id": 9469, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9453, + "src": "5462:4:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5452:15:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9475, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "5490:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9471, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9280, + "src": "5470:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9473, + "indexExpression": { + "argumentTypes": null, + "id": 9472, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9453, + "src": "5480:4:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5470:15:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "5470:19:19", + "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": 9476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5470:26:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5452:44:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9478, + "nodeType": "ExpressionStatement", + "src": "5452:44:19" + }, + { + "expression": { + "argumentTypes": null, + "id": 9488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9479, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9280, + "src": "5507:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9481, + "indexExpression": { + "argumentTypes": null, + "id": 9480, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9455, + "src": "5517:2:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5507:13:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9486, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "5541:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9482, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9280, + "src": "5523:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9484, + "indexExpression": { + "argumentTypes": null, + "id": 9483, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9455, + "src": "5533:2:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5523:13:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "5523:17:19", + "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": 9487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5523:24:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5507:40:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9489, + "nodeType": "ExpressionStatement", + "src": "5507:40:19" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9491, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9453, + "src": "5572:4:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9492, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9455, + "src": "5578:2:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9493, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "5582:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9490, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9710, + "src": "5563:8:19", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 9494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5563:25:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9495, + "nodeType": "EmitStatement", + "src": "5558:30:19" + } + ] + }, + "documentation": "@dev Transfer token for a specified addresses\r\n@param from The address to transfer from.\r\n@param to The address to transfer to.\r\n@param value The amount to be transferred.\r", + "id": 9497, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9453, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 9497, + "src": "5353:12:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9452, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5353:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9455, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 9497, + "src": "5367:10:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9454, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5367:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9457, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9497, + "src": "5379:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9456, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5379:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5352:41:19" + }, + "returnParameters": { + "id": 9459, + "nodeType": "ParameterList", + "parameters": [], + "src": "5403:0:19" + }, + "scope": 9650, + "src": "5334:262:19", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9538, + "nodeType": "Block", + "src": "6004:213:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 9509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9505, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9499, + "src": "6023:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 9507, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6042:1:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 9506, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6034:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 9508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6034:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "6023:21:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 9504, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "6015:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 9510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6015:30:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9511, + "nodeType": "ExpressionStatement", + "src": "6015:30:19" + }, + { + "expression": { + "argumentTypes": null, + "id": 9517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9512, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9288, + "src": "6058:12:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9515, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9501, + "src": "6090:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9513, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9288, + "src": "6073:12:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "6073:16:19", + "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": 9516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6073:23:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6058:38:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9518, + "nodeType": "ExpressionStatement", + "src": "6058:38:19" + }, + { + "expression": { + "argumentTypes": null, + "id": 9528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9519, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9280, + "src": "6107:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9521, + "indexExpression": { + "argumentTypes": null, + "id": 9520, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9499, + "src": "6117:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6107:18:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9526, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9501, + "src": "6151:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9522, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9280, + "src": "6128:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9524, + "indexExpression": { + "argumentTypes": null, + "id": 9523, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9499, + "src": "6138:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6128:18:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "6128:22:19", + "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": 9527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6128:29:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6107:50:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9529, + "nodeType": "ExpressionStatement", + "src": "6107:50:19" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 9532, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6190:1:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 9531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6182:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 9533, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6182:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9534, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9499, + "src": "6194:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9535, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9501, + "src": "6203:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9530, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9710, + "src": "6173:8:19", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 9536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6173:36:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9537, + "nodeType": "EmitStatement", + "src": "6168:41:19" + } + ] + }, + "documentation": "@dev Internal function that mints an amount of the token and assigns it to\r\nan account. This encapsulates the modification of balances such that the\r\nproper events are emitted.\r\n@param account The account that will receive the created tokens.\r\n@param value The amount that will be created.\r", + "id": 9539, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9502, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9499, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9539, + "src": "5963:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5963:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9501, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9539, + "src": "5980:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9500, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5980:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5962:32:19" + }, + "returnParameters": { + "id": 9503, + "nodeType": "ParameterList", + "parameters": [], + "src": "6004:0:19" + }, + "scope": 9650, + "src": "5948:269:19", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9580, + "nodeType": "Block", + "src": "6507:213:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 9551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9547, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9541, + "src": "6526:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 9549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6545:1:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 9548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6537:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 9550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6537:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "6526:21:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 9546, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "6518:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 9552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6518:30:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9553, + "nodeType": "ExpressionStatement", + "src": "6518:30:19" + }, + { + "expression": { + "argumentTypes": null, + "id": 9559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9554, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9288, + "src": "6561:12:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9557, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9543, + "src": "6593:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9555, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9288, + "src": "6576:12:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "6576:16:19", + "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": 9558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6576:23:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6561:38:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9560, + "nodeType": "ExpressionStatement", + "src": "6561:38:19" + }, + { + "expression": { + "argumentTypes": null, + "id": 9570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9561, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9280, + "src": "6610:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9563, + "indexExpression": { + "argumentTypes": null, + "id": 9562, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9541, + "src": "6620:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6610:18:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9568, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9543, + "src": "6654:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9564, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9280, + "src": "6631:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9566, + "indexExpression": { + "argumentTypes": null, + "id": 9565, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9541, + "src": "6641:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6631:18:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "6631:22:19", + "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": 9569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6631:29:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6610:50:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9571, + "nodeType": "ExpressionStatement", + "src": "6610:50:19" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9573, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9541, + "src": "6685:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 9575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6702:1:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 9574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6694:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 9576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6694:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9577, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9543, + "src": "6706:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9572, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9710, + "src": "6676:8:19", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 9578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6676:36:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9579, + "nodeType": "EmitStatement", + "src": "6671:41:19" + } + ] + }, + "documentation": "@dev Internal function that burns an amount of the token of a given\r\naccount.\r\n@param account The account whose tokens will be burnt.\r\n@param value The amount that will be burnt.\r", + "id": 9581, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9544, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9541, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9581, + "src": "6466:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9540, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6466:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9543, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9581, + "src": "6483:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9542, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6483:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6465:32:19" + }, + "returnParameters": { + "id": 9545, + "nodeType": "ParameterList", + "parameters": [], + "src": "6507:0:19" + }, + "scope": 9650, + "src": "6451:269:19", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9620, + "nodeType": "Block", + "src": "7067:180:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 9595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9591, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9585, + "src": "7086:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 9593, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7105:1:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 9592, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7097:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 9594, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7097:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7086:21:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 9590, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "7078:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 9596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7078:30:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9597, + "nodeType": "ExpressionStatement", + "src": "7078:30:19" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 9603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9599, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9583, + "src": "7127:5:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 9601, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7144:1:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 9600, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7136:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 9602, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7136:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7127:19:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 9598, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "7119:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 9604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7119:28:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9605, + "nodeType": "ExpressionStatement", + "src": "7119:28:19" + }, + { + "expression": { + "argumentTypes": null, + "id": 9612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9606, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9286, + "src": "7160:8:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 9609, + "indexExpression": { + "argumentTypes": null, + "id": 9607, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9583, + "src": "7169:5:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7160:15:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9610, + "indexExpression": { + "argumentTypes": null, + "id": 9608, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9585, + "src": "7176:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7160:24:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9611, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9587, + "src": "7187:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7160:32:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9613, + "nodeType": "ExpressionStatement", + "src": "7160:32:19" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9615, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9583, + "src": "7217:5:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9616, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9585, + "src": "7224:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9617, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9587, + "src": "7233:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9614, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9718, + "src": "7208:8:19", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 9618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7208:31:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9619, + "nodeType": "EmitStatement", + "src": "7203:36:19" + } + ] + }, + "documentation": "@dev Approve an address to spend another addresses' tokens.\r\n@param owner The address that owns the tokens.\r\n@param spender The address that will spend the tokens.\r\n@param value The number of tokens that can be spent.\r", + "id": 9621, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9588, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9583, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 9621, + "src": "7011:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9582, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7011:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9585, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 9621, + "src": "7026:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9584, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7026:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9587, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9621, + "src": "7043:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9586, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7043:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7010:47:19" + }, + "returnParameters": { + "id": 9589, + "nodeType": "ParameterList", + "parameters": [], + "src": "7067:0:19" + }, + "scope": 9650, + "src": "6993:254:19", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9648, + "nodeType": "Block", + "src": "7706:122:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9629, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9623, + "src": "7723:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9630, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9625, + "src": "7732:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9628, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9581, + "src": "7717:5:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 9631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7717:21:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9632, + "nodeType": "ExpressionStatement", + "src": "7717:21:19" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9634, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9623, + "src": "7758:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9635, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "7767:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7767:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9644, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9625, + "src": "7813:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9637, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9286, + "src": "7779:8:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 9639, + "indexExpression": { + "argumentTypes": null, + "id": 9638, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9623, + "src": "7788:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7779:17:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9642, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9640, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "7797:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7797:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7779:29:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "7779:33:19", + "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": 9645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7779:40:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9633, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9621, + "src": "7749:8:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 9646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7749:71:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9647, + "nodeType": "ExpressionStatement", + "src": "7749:71:19" + } + ] + }, + "documentation": "@dev Internal function that burns an amount of the token of a given\r\naccount, deducting from the sender's allowance for said account. Uses the\r\ninternal burn function.\r\nEmits an Approval event (reflecting the reduced allowance).\r\n@param account The account whose tokens will be burnt.\r\n@param value The amount that will be burnt.\r", + "id": 9649, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burnFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9623, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9649, + "src": "7665:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7665:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9625, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9649, + "src": "7682:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7682:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7664:32:19" + }, + "returnParameters": { + "id": 9627, + "nodeType": "ParameterList", + "parameters": [], + "src": "7706:0:19" + }, + "scope": 9650, + "src": "7646:182:19", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 9651, + "src": "657:7174:19" + } + ], + "src": "0:7833:19" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol", + "exportedSymbols": { + "ERC20": [ + 9650 + ] + }, + "id": 9651, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9269, + "literals": [ + "solidity", + "^", + "0.5", + ".2" + ], + "nodeType": "PragmaDirective", + "src": "0:23:19" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", + "file": "./IERC20.sol", + "id": 9270, + "nodeType": "ImportDirective", + "scope": 9651, + "sourceUnit": 9720, + "src": "27:22:19", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "./SafeMath.sol", + "id": 9271, + "nodeType": "ImportDirective", + "scope": 9651, + "sourceUnit": 9858, + "src": "51:24:19", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9272, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "675:6:19", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 9273, + "nodeType": "InheritanceSpecifier", + "src": "675:6:19" + } + ], + "contractDependencies": [ + 9719 + ], + "contractKind": "contract", + "documentation": "@title Standard ERC20 token\r\n\n * @dev Implementation of the basic standard token.\r\nhttps://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\r\nOriginally based on code by FirstBlood:\r\nhttps://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol\r\n\n * This implementation emits additional Approval events, allowing applications to reconstruct the allowance status for\r\nall accounts just by listening to said events. Note that this isn't required by the specification, and other\r\ncompliant implementations may not do it.\r", + "fullyImplemented": true, + "id": 9650, + "linearizedBaseContracts": [ + 9650, + 9719 + ], + "name": "ERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 9276, + "libraryName": { + "contractScope": null, + "id": 9274, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "695:8:19", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "689:27:19", + "typeName": { + "id": 9275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "708:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 9280, + "name": "_balances", + "nodeType": "VariableDeclaration", + "scope": 9650, + "src": "724:46:19", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 9279, + "keyType": { + "id": 9277, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "733:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "724:28:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 9278, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "744:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 9286, + "name": "_allowed", + "nodeType": "VariableDeclaration", + "scope": 9650, + "src": "779:66:19", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 9285, + "keyType": { + "id": 9281, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "788:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "779:49:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 9284, + "keyType": { + "id": 9282, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "808:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "799:28:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 9283, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "819:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 9288, + "name": "_totalSupply", + "nodeType": "VariableDeclaration", + "scope": 9650, + "src": "854:28:19", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9287, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "854:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 9295, + "nodeType": "Block", + "src": "1011:38:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9293, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9288, + "src": "1029:12:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9292, + "id": 9294, + "nodeType": "Return", + "src": "1022:19:19" + } + ] + }, + "documentation": "@dev Total number of tokens in existence\r", + "id": 9296, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9289, + "nodeType": "ParameterList", + "parameters": [], + "src": "978:2:19" + }, + "returnParameters": { + "id": 9292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9291, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9296, + "src": "1002:7:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1002:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1001:9:19" + }, + "scope": 9650, + "src": "958:91:19", + "stateMutability": "view", + "superFunction": 9686, + "visibility": "public" + }, + { + "body": { + "id": 9307, + "nodeType": "Block", + "src": "1333:42:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9303, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9280, + "src": "1351:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9305, + "indexExpression": { + "argumentTypes": null, + "id": 9304, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9298, + "src": "1361:5:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1351:16:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9302, + "id": 9306, + "nodeType": "Return", + "src": "1344:23:19" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address.\r\n@param owner The address to query the balance of.\r\n@return An uint256 representing the amount owned by the passed address.\r", + "id": 9308, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9299, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9298, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 9308, + "src": "1288:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9297, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1288:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1287:15:19" + }, + "returnParameters": { + "id": 9302, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9301, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9308, + "src": "1324:7:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9300, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1324:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1323:9:19" + }, + "scope": 9650, + "src": "1269:106:19", + "stateMutability": "view", + "superFunction": 9693, + "visibility": "public" + }, + { + "body": { + "id": 9323, + "nodeType": "Block", + "src": "1795:50:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9317, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9286, + "src": "1813:8:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 9319, + "indexExpression": { + "argumentTypes": null, + "id": 9318, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9310, + "src": "1822:5:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1813:15:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9321, + "indexExpression": { + "argumentTypes": null, + "id": 9320, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9312, + "src": "1829:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1813:24:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9316, + "id": 9322, + "nodeType": "Return", + "src": "1806:31:19" + } + ] + }, + "documentation": "@dev Function to check the amount of tokens that an owner allowed to a spender.\r\n@param owner address The address which owns the funds.\r\n@param spender address The address which will spend the funds.\r\n@return A uint256 specifying the amount of tokens still available for the spender.\r", + "id": 9324, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9313, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9310, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 9324, + "src": "1733:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9309, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1733:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9312, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 9324, + "src": "1748:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9311, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1748:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1732:32:19" + }, + "returnParameters": { + "id": 9316, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9315, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9324, + "src": "1786:7:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9314, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1786:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1785:9:19" + }, + "scope": 9650, + "src": "1714:131:19", + "stateMutability": "view", + "superFunction": 9702, + "visibility": "public" + }, + { + "body": { + "id": 9342, + "nodeType": "Block", + "src": "2087:73:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9334, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "2108:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2108:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9336, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9326, + "src": "2120:2:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9337, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9328, + "src": "2124:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9333, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9497, + "src": "2098:9:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 9338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2098:32:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9339, + "nodeType": "ExpressionStatement", + "src": "2098:32:19" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 9340, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2148:4:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 9332, + "id": 9341, + "nodeType": "Return", + "src": "2141:11:19" + } + ] + }, + "documentation": "@dev Transfer token for a specified address\r\n@param to The address to transfer to.\r\n@param value The amount to be transferred.\r", + "id": 9343, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9329, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9326, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 9343, + "src": "2038:10:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9325, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2038:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9328, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9343, + "src": "2050:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9327, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2050:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2037:27:19" + }, + "returnParameters": { + "id": 9332, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9331, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9343, + "src": "2081:4:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9330, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2081:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2080:6:19" + }, + "scope": 9650, + "src": "2020:140:19", + "stateMutability": "nonpayable", + "superFunction": 9661, + "visibility": "public" + }, + { + "body": { + "id": 9361, + "nodeType": "Block", + "src": "2878:77:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9353, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "2898:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2898:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9355, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9345, + "src": "2910:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9356, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9347, + "src": "2919:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9352, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9621, + "src": "2889:8:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 9357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2889:36:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9358, + "nodeType": "ExpressionStatement", + "src": "2889:36:19" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 9359, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2943:4:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 9351, + "id": 9360, + "nodeType": "Return", + "src": "2936:11:19" + } + ] + }, + "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\r\nBeware that changing an allowance with this method brings the risk that someone may use both the old\r\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\r\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\r\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\r\n@param spender The address which will spend the funds.\r\n@param value The amount of tokens to be spent.\r", + "id": 9362, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9345, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 9362, + "src": "2824:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9344, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2824:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9347, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9362, + "src": "2841:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9346, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2841:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2823:32:19" + }, + "returnParameters": { + "id": 9351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9350, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9362, + "src": "2872:4:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9349, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2872:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2871:6:19" + }, + "scope": 9650, + "src": "2807:148:19", + "stateMutability": "nonpayable", + "superFunction": 9670, + "visibility": "public" + }, + { + "body": { + "id": 9396, + "nodeType": "Block", + "src": "3513:143:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9374, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9364, + "src": "3534:4:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9375, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9366, + "src": "3540:2:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9376, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9368, + "src": "3544:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9373, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9497, + "src": "3524:9:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 9377, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3524:26:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9378, + "nodeType": "ExpressionStatement", + "src": "3524:26:19" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9380, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9364, + "src": "3570:4:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9381, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3576:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3576:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9390, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9368, + "src": "3619:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9383, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9286, + "src": "3588:8:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 9385, + "indexExpression": { + "argumentTypes": null, + "id": 9384, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9364, + "src": "3597:4:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3588:14:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9388, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9386, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3603:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3603:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3588:26:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "3588:30:19", + "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": 9391, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3588:37:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9379, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9621, + "src": "3561:8:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 9392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3561:65:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9393, + "nodeType": "ExpressionStatement", + "src": "3561:65:19" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 9394, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3644:4:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 9372, + "id": 9395, + "nodeType": "Return", + "src": "3637:11:19" + } + ] + }, + "documentation": "@dev Transfer tokens from one address to another.\r\nNote that while this function emits an Approval event, this is not required as per the specification,\r\nand other compliant implementations may not emit the event.\r\n@param from address The address which you want to send tokens from\r\n@param to address The address which you want to transfer to\r\n@param value uint256 the amount of tokens to be transferred\r", + "id": 9397, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9369, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9364, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 9397, + "src": "3450:12:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9363, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3450:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9366, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 9397, + "src": "3464:10:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9365, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3464:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9368, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9397, + "src": "3476:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9367, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3476:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3449:41:19" + }, + "returnParameters": { + "id": 9372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9371, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9397, + "src": "3507:4:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9370, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3507:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3506:6:19" + }, + "scope": 9650, + "src": "3428:228:19", + "stateMutability": "nonpayable", + "superFunction": 9681, + "visibility": "public" + }, + { + "body": { + "id": 9423, + "nodeType": "Block", + "src": "4257:117:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9407, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "4277:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4277:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9409, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9399, + "src": "4289:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9417, + "name": "addedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9401, + "src": "4332:10:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9410, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9286, + "src": "4298:8:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 9413, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9411, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "4307:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4307:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4298:20:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9415, + "indexExpression": { + "argumentTypes": null, + "id": 9414, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9399, + "src": "4319:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4298:29:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "4298:33:19", + "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": 9418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4298:45:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9406, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9621, + "src": "4268:8:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 9419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4268:76:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9420, + "nodeType": "ExpressionStatement", + "src": "4268:76:19" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 9421, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4362:4:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 9405, + "id": 9422, + "nodeType": "Return", + "src": "4355:11:19" + } + ] + }, + "documentation": "@dev Increase the amount of tokens that an owner allowed to a spender.\r\napprove should be called when allowed_[_spender] == 0. To increment\r\nallowed value is better to use this function to avoid 2 calls (and wait until\r\nthe first transaction is mined)\r\nFrom MonolithDAO Token.sol\r\nEmits an Approval event.\r\n@param spender The address which will spend the funds.\r\n@param addedValue The amount of tokens to increase the allowance by.\r", + "id": 9424, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "increaseAllowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9402, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9399, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 9424, + "src": "4198:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9398, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4198:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9401, + "name": "addedValue", + "nodeType": "VariableDeclaration", + "scope": 9424, + "src": "4215:18:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9400, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4215:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4197:37:19" + }, + "returnParameters": { + "id": 9405, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9404, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9424, + "src": "4251:4:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9403, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4251:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4250:6:19" + }, + "scope": 9650, + "src": "4171:203:19", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9450, + "nodeType": "Block", + "src": "4985:122:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9434, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "5005:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5005:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9436, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9426, + "src": "5017:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9444, + "name": "subtractedValue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9428, + "src": "5060:15:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9437, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9286, + "src": "5026:8:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 9440, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9438, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "5035:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5035:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5026:20:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9442, + "indexExpression": { + "argumentTypes": null, + "id": 9441, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9426, + "src": "5047:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5026:29:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "5026:33:19", + "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": 9445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5026:50:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9433, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9621, + "src": "4996:8:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 9446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4996:81:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9447, + "nodeType": "ExpressionStatement", + "src": "4996:81:19" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 9448, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5095:4:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 9432, + "id": 9449, + "nodeType": "Return", + "src": "5088:11:19" + } + ] + }, + "documentation": "@dev Decrease the amount of tokens that an owner allowed to a spender.\r\napprove should be called when allowed_[_spender] == 0. To decrement\r\nallowed value is better to use this function to avoid 2 calls (and wait until\r\nthe first transaction is mined)\r\nFrom MonolithDAO Token.sol\r\nEmits an Approval event.\r\n@param spender The address which will spend the funds.\r\n@param subtractedValue The amount of tokens to decrease the allowance by.\r", + "id": 9451, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decreaseAllowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9429, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9426, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 9451, + "src": "4921:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9425, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4921:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9428, + "name": "subtractedValue", + "nodeType": "VariableDeclaration", + "scope": 9451, + "src": "4938:23:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9427, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4938:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4920:42:19" + }, + "returnParameters": { + "id": 9432, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9431, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9451, + "src": "4979:4:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9430, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4979:4:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4978:6:19" + }, + "scope": 9650, + "src": "4894:213:19", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9496, + "nodeType": "Block", + "src": "5403:193:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 9465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9461, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9455, + "src": "5422:2:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 9463, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5436:1:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 9462, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5428:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 9464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5428:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "5422:16:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 9460, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "5414:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 9466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5414:25:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9467, + "nodeType": "ExpressionStatement", + "src": "5414:25:19" + }, + { + "expression": { + "argumentTypes": null, + "id": 9477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9468, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9280, + "src": "5452:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9470, + "indexExpression": { + "argumentTypes": null, + "id": 9469, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9453, + "src": "5462:4:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5452:15:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9475, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "5490:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9471, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9280, + "src": "5470:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9473, + "indexExpression": { + "argumentTypes": null, + "id": 9472, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9453, + "src": "5480:4:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5470:15:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "5470:19:19", + "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": 9476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5470:26:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5452:44:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9478, + "nodeType": "ExpressionStatement", + "src": "5452:44:19" + }, + { + "expression": { + "argumentTypes": null, + "id": 9488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9479, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9280, + "src": "5507:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9481, + "indexExpression": { + "argumentTypes": null, + "id": 9480, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9455, + "src": "5517:2:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5507:13:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9486, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "5541:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9482, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9280, + "src": "5523:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9484, + "indexExpression": { + "argumentTypes": null, + "id": 9483, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9455, + "src": "5533:2:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5523:13:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9485, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "5523:17:19", + "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": 9487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5523:24:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5507:40:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9489, + "nodeType": "ExpressionStatement", + "src": "5507:40:19" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9491, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9453, + "src": "5572:4:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9492, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9455, + "src": "5578:2:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9493, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9457, + "src": "5582:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9490, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9710, + "src": "5563:8:19", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 9494, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5563:25:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9495, + "nodeType": "EmitStatement", + "src": "5558:30:19" + } + ] + }, + "documentation": "@dev Transfer token for a specified addresses\r\n@param from The address to transfer from.\r\n@param to The address to transfer to.\r\n@param value The amount to be transferred.\r", + "id": 9497, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9453, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 9497, + "src": "5353:12:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9452, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5353:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9455, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 9497, + "src": "5367:10:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9454, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5367:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9457, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9497, + "src": "5379:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9456, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5379:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5352:41:19" + }, + "returnParameters": { + "id": 9459, + "nodeType": "ParameterList", + "parameters": [], + "src": "5403:0:19" + }, + "scope": 9650, + "src": "5334:262:19", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9538, + "nodeType": "Block", + "src": "6004:213:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 9509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9505, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9499, + "src": "6023:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 9507, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6042:1:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 9506, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6034:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 9508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6034:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "6023:21:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 9504, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "6015:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 9510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6015:30:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9511, + "nodeType": "ExpressionStatement", + "src": "6015:30:19" + }, + { + "expression": { + "argumentTypes": null, + "id": 9517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9512, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9288, + "src": "6058:12:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9515, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9501, + "src": "6090:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9513, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9288, + "src": "6073:12:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "6073:16:19", + "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": 9516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6073:23:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6058:38:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9518, + "nodeType": "ExpressionStatement", + "src": "6058:38:19" + }, + { + "expression": { + "argumentTypes": null, + "id": 9528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9519, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9280, + "src": "6107:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9521, + "indexExpression": { + "argumentTypes": null, + "id": 9520, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9499, + "src": "6117:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6107:18:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9526, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9501, + "src": "6151:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9522, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9280, + "src": "6128:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9524, + "indexExpression": { + "argumentTypes": null, + "id": 9523, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9499, + "src": "6138:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6128:18:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "6128:22:19", + "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": 9527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6128:29:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6107:50:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9529, + "nodeType": "ExpressionStatement", + "src": "6107:50:19" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 9532, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6190:1:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 9531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6182:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 9533, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6182:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9534, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9499, + "src": "6194:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9535, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9501, + "src": "6203:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9530, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9710, + "src": "6173:8:19", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 9536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6173:36:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9537, + "nodeType": "EmitStatement", + "src": "6168:41:19" + } + ] + }, + "documentation": "@dev Internal function that mints an amount of the token and assigns it to\r\nan account. This encapsulates the modification of balances such that the\r\nproper events are emitted.\r\n@param account The account that will receive the created tokens.\r\n@param value The amount that will be created.\r", + "id": 9539, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9502, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9499, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9539, + "src": "5963:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5963:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9501, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9539, + "src": "5980:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9500, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5980:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5962:32:19" + }, + "returnParameters": { + "id": 9503, + "nodeType": "ParameterList", + "parameters": [], + "src": "6004:0:19" + }, + "scope": 9650, + "src": "5948:269:19", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9580, + "nodeType": "Block", + "src": "6507:213:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 9551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9547, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9541, + "src": "6526:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 9549, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6545:1:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 9548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6537:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 9550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6537:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "6526:21:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 9546, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "6518:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 9552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6518:30:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9553, + "nodeType": "ExpressionStatement", + "src": "6518:30:19" + }, + { + "expression": { + "argumentTypes": null, + "id": 9559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9554, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9288, + "src": "6561:12:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9557, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9543, + "src": "6593:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9555, + "name": "_totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9288, + "src": "6576:12:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "6576:16:19", + "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": 9558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6576:23:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6561:38:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9560, + "nodeType": "ExpressionStatement", + "src": "6561:38:19" + }, + { + "expression": { + "argumentTypes": null, + "id": 9570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9561, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9280, + "src": "6610:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9563, + "indexExpression": { + "argumentTypes": null, + "id": 9562, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9541, + "src": "6620:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6610:18:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9568, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9543, + "src": "6654:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9564, + "name": "_balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9280, + "src": "6631:9:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9566, + "indexExpression": { + "argumentTypes": null, + "id": 9565, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9541, + "src": "6641:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6631:18:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "6631:22:19", + "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": 9569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6631:29:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6610:50:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9571, + "nodeType": "ExpressionStatement", + "src": "6610:50:19" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9573, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9541, + "src": "6685:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 9575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6702:1:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 9574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6694:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 9576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6694:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 9577, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9543, + "src": "6706:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9572, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9710, + "src": "6676:8:19", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 9578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6676:36:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9579, + "nodeType": "EmitStatement", + "src": "6671:41:19" + } + ] + }, + "documentation": "@dev Internal function that burns an amount of the token of a given\r\naccount.\r\n@param account The account whose tokens will be burnt.\r\n@param value The amount that will be burnt.\r", + "id": 9581, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9544, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9541, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9581, + "src": "6466:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9540, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6466:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9543, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9581, + "src": "6483:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9542, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6483:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6465:32:19" + }, + "returnParameters": { + "id": 9545, + "nodeType": "ParameterList", + "parameters": [], + "src": "6507:0:19" + }, + "scope": 9650, + "src": "6451:269:19", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9620, + "nodeType": "Block", + "src": "7067:180:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 9595, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9591, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9585, + "src": "7086:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 9593, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7105:1:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 9592, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7097:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 9594, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7097:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7086:21:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 9590, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "7078:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 9596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7078:30:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9597, + "nodeType": "ExpressionStatement", + "src": "7078:30:19" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 9603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9599, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9583, + "src": "7127:5:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 9601, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7144:1:19", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 9600, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7136:7:19", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 9602, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7136:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7127:19:19", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 9598, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "7119:7:19", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 9604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7119:28:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9605, + "nodeType": "ExpressionStatement", + "src": "7119:28:19" + }, + { + "expression": { + "argumentTypes": null, + "id": 9612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9606, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9286, + "src": "7160:8:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 9609, + "indexExpression": { + "argumentTypes": null, + "id": 9607, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9583, + "src": "7169:5:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7160:15:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9610, + "indexExpression": { + "argumentTypes": null, + "id": 9608, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9585, + "src": "7176:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7160:24:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9611, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9587, + "src": "7187:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7160:32:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9613, + "nodeType": "ExpressionStatement", + "src": "7160:32:19" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9615, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9583, + "src": "7217:5:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9616, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9585, + "src": "7224:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9617, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9587, + "src": "7233:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9614, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9718, + "src": "7208:8:19", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 9618, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7208:31:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9619, + "nodeType": "EmitStatement", + "src": "7203:36:19" + } + ] + }, + "documentation": "@dev Approve an address to spend another addresses' tokens.\r\n@param owner The address that owns the tokens.\r\n@param spender The address that will spend the tokens.\r\n@param value The number of tokens that can be spent.\r", + "id": 9621, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9588, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9583, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 9621, + "src": "7011:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9582, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7011:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9585, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 9621, + "src": "7026:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9584, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7026:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9587, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9621, + "src": "7043:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9586, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7043:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7010:47:19" + }, + "returnParameters": { + "id": 9589, + "nodeType": "ParameterList", + "parameters": [], + "src": "7067:0:19" + }, + "scope": 9650, + "src": "6993:254:19", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9648, + "nodeType": "Block", + "src": "7706:122:19", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9629, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9623, + "src": "7723:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9630, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9625, + "src": "7732:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9628, + "name": "_burn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9581, + "src": "7717:5:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 9631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7717:21:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9632, + "nodeType": "ExpressionStatement", + "src": "7717:21:19" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9634, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9623, + "src": "7758:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9635, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "7767:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7767:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9644, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9625, + "src": "7813:5:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9637, + "name": "_allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9286, + "src": "7779:8:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 9639, + "indexExpression": { + "argumentTypes": null, + "id": 9638, + "name": "account", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9623, + "src": "7788:7:19", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7779:17:19", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 9642, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9640, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "7797:3:19", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 9641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7797:10:19", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7779:29:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "7779:33:19", + "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": 9645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7779:40:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9633, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9621, + "src": "7749:8:19", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 9646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7749:71:19", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9647, + "nodeType": "ExpressionStatement", + "src": "7749:71:19" + } + ] + }, + "documentation": "@dev Internal function that burns an amount of the token of a given\r\naccount, deducting from the sender's allowance for said account. Uses the\r\ninternal burn function.\r\nEmits an Approval event (reflecting the reduced allowance).\r\n@param account The account whose tokens will be burnt.\r\n@param value The amount that will be burnt.\r", + "id": 9649, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burnFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9623, + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 9649, + "src": "7665:15:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9622, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7665:7:19", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9625, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9649, + "src": "7682:13:19", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9624, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7682:7:19", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7664:32:19" + }, + "returnParameters": { + "id": 9627, + "nodeType": "ParameterList", + "parameters": [], + "src": "7706:0:19" + }, + "scope": 9650, + "src": "7646:182:19", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 9651, + "src": "657:7174:19" + } + ], + "src": "0:7833:19" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:20.232Z", + "devdoc": { + "details": "Implementation of the basic standard token.\r https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\r Originally based on code by FirstBlood:\r https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol\r * This implementation emits additional Approval events, allowing applications to reconstruct the allowance status for\r all accounts just by listening to said events. Note that this isn't required by the specification, and other\r compliant implementations may not do it.\r", + "methods": { + "allowance(address,address)": { + "details": "Function to check the amount of tokens that an owner allowed to a spender.\r", + "params": { + "owner": "address The address which owns the funds.\r", + "spender": "address The address which will spend the funds.\r" + }, + "return": "A uint256 specifying the amount of tokens still available for the spender.\r" + }, + "approve(address,uint256)": { + "details": "Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\r Beware that changing an allowance with this method brings the risk that someone may use both the old\r and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\r race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\r https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\r", + "params": { + "spender": "The address which will spend the funds.\r", + "value": "The amount of tokens to be spent.\r" + } + }, + "balanceOf(address)": { + "details": "Gets the balance of the specified address.\r", + "params": { + "owner": "The address to query the balance of.\r" + }, + "return": "An uint256 representing the amount owned by the passed address.\r" + }, + "decreaseAllowance(address,uint256)": { + "details": "Decrease the amount of tokens that an owner allowed to a spender.\r approve should be called when allowed_[_spender] == 0. To decrement\r allowed value is better to use this function to avoid 2 calls (and wait until\r the first transaction is mined)\r From MonolithDAO Token.sol\r Emits an Approval event.\r", + "params": { + "spender": "The address which will spend the funds.\r", + "subtractedValue": "The amount of tokens to decrease the allowance by.\r" + } + }, + "increaseAllowance(address,uint256)": { + "details": "Increase the amount of tokens that an owner allowed to a spender.\r approve should be called when allowed_[_spender] == 0. To increment\r allowed value is better to use this function to avoid 2 calls (and wait until\r the first transaction is mined)\r From MonolithDAO Token.sol\r Emits an Approval event.\r", + "params": { + "addedValue": "The amount of tokens to increase the allowance by.\r", + "spender": "The address which will spend the funds.\r" + } + }, + "totalSupply()": { + "details": "Total number of tokens in existence\r" + }, + "transfer(address,uint256)": { + "details": "Transfer token for a specified address\r", + "params": { + "to": "The address to transfer to.\r", + "value": "The amount to be transferred.\r" + } + }, + "transferFrom(address,address,uint256)": { + "details": "Transfer tokens from one address to another.\r Note that while this function emits an Approval event, this is not required as per the specification,\r and other compliant implementations may not emit the event.\r", + "params": { + "from": "address The address which you want to send tokens from\r", + "to": "address The address which you want to transfer to\r", + "value": "uint256 the amount of tokens to be transferred\r" + } + } + }, + "title": "Standard ERC20 token\r " + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/contracts/ERC20Detailed.json b/src/contracts/ERC20Detailed.json new file mode 100644 index 0000000..60d2d28 --- /dev/null +++ b/src/contracts/ERC20Detailed.json @@ -0,0 +1,10699 @@ +{ + "contractName": "ERC20Detailed", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "who", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "name", + "type": "string" + }, + { + "name": "symbol", + "type": "string" + }, + { + "name": "decimals", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"who\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"symbol\",\"type\":\"string\"},{\"name\":\"decimals\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Optional functions from the ERC20 standard.\\r\",\"methods\":{\"constructor\":{\"details\":\"Sets the values for `name`, `symbol`, and `decimals`. All three of\\r these values are immutable: they can only be set once during\\r construction.\\r\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation.\\r For example, if `decimals` equals `2`, a balance of `505` tokens should\\r be displayed to a user as `5,05` (`505 / 10 ** 2`).\\r * Tokens usually opt for a value of 18, imitating the relationship between\\r Ether and Wei.\\r * NOTE: This information is only used for _display_ purposes: it in\\r no way affects any of the arithmetic of the contract, including\\r {IERC20-balanceOf} and {IERC20-transfer}.\\r\"},\"name()\":{\"details\":\"Returns the name of the token.\\r\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the\\r name.\\r\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol\":\"ERC20Detailed\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol\":{\"keccak256\":\"0x83d94afc84930834148f8e00b2b2b624be5e2a910aeb9f508b6e3252648b304a\",\"urls\":[\"bzzr://074edfefdd7f638d059397b8b72e70605bb8eba1e750d8d512d86a5d8abaf966\",\"dweb:/ipfs/QmTPEnc9wjRf7jZ1xzh68sAjusFY5XHCTLpy79yCtCuWrA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol\":{\"keccak256\":\"0xd97866cc5c8b2c90cd57a126748771aad20762b3c708c30a4412ce17a9b79333\",\"urls\":[\"bzzr://0b6010f15f59b69c79df02987919092e5c44bd47602737eb54f4545237b5e636\",\"dweb:/ipfs/QmbPTbnWnvkWF8PRLgpmoXBr7UpJVyULmVRagrskTpkjyJ\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity >=0.5.0 < 0.6.0;\r\n\r\nimport \"../oz/SafeMath.sol\";\r\nimport \"../oz/IERC20.sol\";\r\nimport \"../oz/ERC20.sol\";\r\n\r\n/**\r\n * @dev Optional functions from the ERC20 standard.\r\n */\r\ncontract ERC20Detailed is IERC20 {\r\n string private _name;\r\n string private _symbol;\r\n uint8 private _decimals;\r\n\r\n /**\r\n * @dev Sets the values for `name`, `symbol`, and `decimals`. All three of\r\n * these values are immutable: they can only be set once during\r\n * construction.\r\n */\r\n constructor (string memory name, string memory symbol, uint8 decimals) public {\r\n _name = name;\r\n _symbol = symbol;\r\n _decimals = decimals;\r\n }\r\n\r\n /**\r\n * @dev Returns the name of the token.\r\n */\r\n function name() public view returns (string memory) {\r\n return _name;\r\n }\r\n\r\n /**\r\n * @dev Returns the symbol of the token, usually a shorter version of the\r\n * name.\r\n */\r\n function symbol() public view returns (string memory) {\r\n return _symbol;\r\n }\r\n\r\n /**\r\n * @dev Returns the number of decimals used to get its user representation.\r\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\r\n * be displayed to a user as `5,05` (`505 / 10 ** 2`).\r\n *\r\n * Tokens usually opt for a value of 18, imitating the relationship between\r\n * Ether and Wei.\r\n *\r\n * NOTE: This information is only used for _display_ purposes: it in\r\n * no way affects any of the arithmetic of the contract, including\r\n * {IERC20-balanceOf} and {IERC20-transfer}.\r\n */\r\n function decimals() public view returns (uint8) {\r\n return _decimals;\r\n }\r\n}\r\n\r\ninterface IClaimsToken {\r\n\r\n\t/**\r\n\t * @dev This event emits when funds to be deposited are sent to the token contract\r\n\t * @param from contains the address of the sender of the received funds\r\n\t * @param fundsReceived contains the amount of funds received for distribution\r\n\t */\r\n\tevent FundsReceived(address indexed from, uint256 fundsReceived);\r\n\r\n\t/**\r\n\t * @dev This event emits when distributed funds are withdrawn by a token holder.\r\n\t * @param by contains the address of the receiver of funds\r\n\t * @param fundsWithdrawn contains the amount of funds that were withdrawn\r\n\t */\r\n\tevent FundsWithdrawn(address indexed by, uint256 fundsWithdrawn);\r\n\r\n\t/**\r\n\t * @dev Withdraws available funds for user.\r\n\t */\r\n\tfunction withdrawFunds() external payable;\r\n\r\n\t/**\r\n\t * @dev Returns the amount of funds a given address is able to withdraw currently.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t * @return A uint256 representing the available funds for a given account\r\n\t */\r\n\tfunction availableFunds(address _forAddress) external view returns (uint256);\r\n\r\n\t/**\r\n\t * @dev Get cumulative funds received by ClaimsToken.\r\n\t * @return A uint256 representing the total funds received by ClaimsToken\r\n\t */\r\n\tfunction totalReceivedFunds() external view returns (uint256);\r\n}\r\n\r\ncontract ClaimsToken is IClaimsToken, ERC20, ERC20Detailed {\r\n\r\n\tusing SafeMath for uint256;\r\n\r\n\t// cumulative funds received by this contract\r\n\tuint256 public receivedFunds;\r\n\t// cumulative funds received which were already processed for distribution - by user\r\n\tmapping (address => uint256) public processedFunds;\r\n\t// claimed but not yet withdrawn funds for a user\r\n\tmapping (address => uint256) public claimedFunds;\r\n\r\n\r\n\tconstructor(address _owner)\r\n\t\tpublic\r\n\t\tERC20Detailed(\"ClaimsToken\", \"CST\", 18)\r\n\t{\r\n\t\t_mint(_owner, 10000 * (10 ** uint256(18)));\r\n\r\n\t\treceivedFunds = 0;\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Transfer token to a specified address.\r\n\t * Claims funds for both parties, whereby the amount of tokens withdrawn\r\n\t * is inherited by the new token owner.\r\n\t * @param _to The address to transfer to\r\n\t * @param _value The amount to be transferred\r\n\t */\r\n\tfunction transfer(address _to, uint256 _value)\r\n\t\tpublic\r\n\t\treturns (bool)\r\n\t{\r\n\t\t_claimFunds(msg.sender);\r\n\t\t_claimFunds(_to);\r\n\r\n\t\treturn super.transfer(_to, _value);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @dev Transfer tokens from one address to another.\r\n\t * Claims funds for both parties, whereby the amount of tokens withdrawn\r\n\t * is inherited by the new token owner.\r\n\t * @param _from address The address which you want to send tokens from\r\n\t * @param _to address The address which you want to transfer to\r\n\t * @param _value uint256 the amount of tokens to be transferred\r\n\t */\r\n\tfunction transferFrom(address _from, address _to, uint256 _value)\r\n\t\tpublic\r\n\t\treturns (bool)\r\n\t{\r\n\t\t_claimFunds(_from);\r\n\t\t_claimFunds(_to);\r\n\r\n\t\treturn super.transferFrom(_from, _to, _value);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Get cumulative funds received by ClaimsToken.\r\n\t * @return A uint256 representing the total funds received by ClaimsToken\r\n\t */\r\n\tfunction totalReceivedFunds()\r\n\t\texternal\r\n\t\tview\r\n\t\treturns (uint256)\r\n\t{\r\n\t\treturn receivedFunds;\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Returns the amount of funds a given address is able to withdraw currently.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t * @return A uint256 representing the available funds for a given account\r\n\t */\r\n\tfunction availableFunds(address _forAddress)\r\n\t\tpublic\r\n\t\tview\r\n\t\treturns (uint256)\r\n\t{\r\n\t\treturn _calcUnprocessedFunds(_forAddress).add(claimedFunds[_forAddress]);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Increments cumulative received funds by new received funds.\r\n\t * Called when ClaimsToken receives funds.\r\n\t * @param _value Amount of tokens / Ether received\r\n\t */\r\n\tfunction _registerFunds(uint256 _value)\r\n\t\tinternal\r\n\t{\r\n\t\treceivedFunds = receivedFunds.add(_value);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Returns payout for a user which can be withdrawn or claimed.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t */\r\n\tfunction _calcUnprocessedFunds(address _forAddress)\r\n\t\tinternal\r\n\t\tview\r\n\t\treturns (uint256)\r\n\t{\r\n\t\tuint256 newReceivedFunds = receivedFunds.sub(processedFunds[_forAddress]);\r\n\t\treturn balanceOf(_forAddress).mul(newReceivedFunds).div(totalSupply());\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Claims funds for a user.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t */\r\n\tfunction _claimFunds(address _forAddress) internal {\r\n\t\tuint256 unprocessedFunds = _calcUnprocessedFunds(_forAddress);\r\n\r\n\t\tprocessedFunds[_forAddress] = receivedFunds;\r\n\t\tclaimedFunds[_forAddress] = claimedFunds[_forAddress].add(unprocessedFunds);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Sets claimed but not yet withdrawn funds to 0,\r\n\t * marks total received funds as processed and\r\n\t * returns the withdrawable amount for a user.\r\n\t * @return A uint256 representing the withdrawable funds\r\n\t */\r\n\tfunction _prepareWithdraw()\r\n\t\tinternal\r\n\t\treturns (uint256)\r\n\t{\r\n\t\tuint256 withdrawableFunds = availableFunds(msg.sender);\r\n\r\n\t\tprocessedFunds[msg.sender] = receivedFunds;\r\n\t\tclaimedFunds[msg.sender] = 0;\r\n\r\n\t\treturn withdrawableFunds;\r\n\t}\r\n}\r\n\r\ncontract ClaimsTokenERC20Extension is IClaimsToken, ClaimsToken {\r\n\r\n\t// token that ClaimsToken takes in custodianship\r\n\tIERC20 public fundsToken;\r\n\r\n\tmodifier onlyFundsToken () {\r\n\t\trequire(msg.sender == address(fundsToken), \"UNAUTHORIZED_SENDER\");\r\n\t\t_;\r\n\t}\r\n\r\n\tconstructor(address _owner, IERC20 _fundsToken)\r\n\t\tpublic\r\n\t\tClaimsToken(_owner)\r\n\t{\r\n\t\trequire(address(_fundsToken) != address(0));\r\n\r\n\t\tfundsToken = _fundsToken;\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Withdraws available funds for user.\r\n\t */\r\n\tfunction withdrawFunds()\r\n\t\texternal\r\n\t\tpayable\r\n\t{\r\n\t\trequire(msg.value == 0, \"\");\r\n\r\n\t\tuint256 withdrawableFunds = _prepareWithdraw();\r\n\r\n\t\trequire(fundsToken.transfer(msg.sender, withdrawableFunds), \"TRANSFER_FAILED\");\r\n\t}\r\n\r\n\t/**\r\n\t * @dev For ERC223.\r\n\t * Calls _registerFunds(), whereby total received funds (cumulative) gets updated.\r\n\t * @param _sender Sender of tokens\r\n\t * @param _value Amount of tokens\r\n\t */\r\n\tfunction tokenFallback(address _sender, uint256 _value, bytes memory)\r\n\t\tpublic\r\n\t\tonlyFundsToken()\r\n\t{\r\n\t\tif (_value > 0) {\r\n\t\t\t_registerFunds(_value);\r\n\t\t\temit FundsReceived(_sender, _value);\r\n\t\t}\r\n\t}\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\tokens\\ClaimsToken.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol", + "exportedSymbols": { + "ClaimsToken": [ + 10228 + ], + "ClaimsTokenERC20Extension": [ + 10327 + ], + "ERC20Detailed": [ + 9977 + ], + "IClaimsToken": [ + 10005 + ] + }, + "id": 10328, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9919, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:24" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "../oz/SafeMath.sol", + "id": 9920, + "nodeType": "ImportDirective", + "scope": 10328, + "sourceUnit": 9858, + "src": "36:28:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", + "file": "../oz/IERC20.sol", + "id": 9921, + "nodeType": "ImportDirective", + "scope": 10328, + "sourceUnit": 9720, + "src": "66:26:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol", + "file": "../oz/ERC20.sol", + "id": 9922, + "nodeType": "ImportDirective", + "scope": 10328, + "sourceUnit": 9651, + "src": "94:25:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9923, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "212:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 9924, + "nodeType": "InheritanceSpecifier", + "src": "212:6:24" + } + ], + "contractDependencies": [ + 9719 + ], + "contractKind": "contract", + "documentation": "@dev Optional functions from the ERC20 standard.\r", + "fullyImplemented": false, + "id": 9977, + "linearizedBaseContracts": [ + 9977, + 9719 + ], + "name": "ERC20Detailed", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 9926, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 9977, + "src": "226:20:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 9925, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "226:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 9928, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 9977, + "src": "253:22:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 9927, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "253:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 9930, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 9977, + "src": "282:23:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9929, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "282:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 9951, + "nodeType": "Block", + "src": "581:89:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9939, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9926, + "src": "592:5:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9940, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9932, + "src": "600:4:24", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "592:12:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 9942, + "nodeType": "ExpressionStatement", + "src": "592:12:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 9945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9943, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9928, + "src": "615:7:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9944, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9934, + "src": "625:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "615:16:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 9946, + "nodeType": "ExpressionStatement", + "src": "615:16:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 9949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9947, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9930, + "src": "642:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9948, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9936, + "src": "654:8:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "642:20:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 9950, + "nodeType": "ExpressionStatement", + "src": "642:20:24" + } + ] + }, + "documentation": "@dev Sets the values for `name`, `symbol`, and `decimals`. All three of\r\nthese values are immutable: they can only be set once during\r\nconstruction.\r", + "id": 9952, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9937, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9932, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 9952, + "src": "516:18:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9931, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "516:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9934, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 9952, + "src": "536:20:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9933, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "536:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9936, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 9952, + "src": "558:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9935, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "558:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "515:58:24" + }, + "returnParameters": { + "id": 9938, + "nodeType": "ParameterList", + "parameters": [], + "src": "581:0:24" + }, + "scope": 9977, + "src": "503:167:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9959, + "nodeType": "Block", + "src": "792:31:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9957, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9926, + "src": "810:5:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 9956, + "id": 9958, + "nodeType": "Return", + "src": "803:12:24" + } + ] + }, + "documentation": "@dev Returns the name of the token.\r", + "id": 9960, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9953, + "nodeType": "ParameterList", + "parameters": [], + "src": "753:2:24" + }, + "returnParameters": { + "id": 9956, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9955, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9960, + "src": "777:13:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9954, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "777:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "776:15:24" + }, + "scope": 9977, + "src": "740:83:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9967, + "nodeType": "Block", + "src": "996:33:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9965, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9928, + "src": "1014:7:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 9964, + "id": 9966, + "nodeType": "Return", + "src": "1007:14:24" + } + ] + }, + "documentation": "@dev Returns the symbol of the token, usually a shorter version of the\r\nname.\r", + "id": 9968, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9961, + "nodeType": "ParameterList", + "parameters": [], + "src": "957:2:24" + }, + "returnParameters": { + "id": 9964, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9963, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9968, + "src": "981:13:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9962, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "981:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "980:15:24" + }, + "scope": 9977, + "src": "942:87:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9975, + "nodeType": "Block", + "src": "1640:35:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9973, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9930, + "src": "1658:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 9972, + "id": 9974, + "nodeType": "Return", + "src": "1651:16:24" + } + ] + }, + "documentation": "@dev Returns the number of decimals used to get its user representation.\r\nFor example, if `decimals` equals `2`, a balance of `505` tokens should\r\nbe displayed to a user as `5,05` (`505 / 10 ** 2`).\r\n\n * Tokens usually opt for a value of 18, imitating the relationship between\r\nEther and Wei.\r\n\n * NOTE: This information is only used for _display_ purposes: it in\r\nno way affects any of the arithmetic of the contract, including\r\n{IERC20-balanceOf} and {IERC20-transfer}.\r", + "id": 9976, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9969, + "nodeType": "ParameterList", + "parameters": [], + "src": "1609:2:24" + }, + "returnParameters": { + "id": 9972, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9971, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9976, + "src": "1633:5:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9970, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1633:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1632:7:24" + }, + "scope": 9977, + "src": "1592:83:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 10328, + "src": "186:1492:24" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 10005, + "linearizedBaseContracts": [ + 10005 + ], + "name": "IClaimsToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": "@dev This event emits when funds to be deposited are sent to the token contract\r\n@param from contains the address of the sender of the received funds\r\n@param fundsReceived contains the amount of funds received for distribution\r", + "id": 9983, + "name": "FundsReceived", + "nodeType": "EventDefinition", + "parameters": { + "id": 9982, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9979, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 9983, + "src": "1983:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9978, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1983:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9981, + "indexed": false, + "name": "fundsReceived", + "nodeType": "VariableDeclaration", + "scope": 9983, + "src": "2005:21:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2005:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1982:45:24" + }, + "src": "1963:65:24" + }, + { + "anonymous": false, + "documentation": "@dev This event emits when distributed funds are withdrawn by a token holder.\r\n@param by contains the address of the receiver of funds\r\n@param fundsWithdrawn contains the amount of funds that were withdrawn\r", + "id": 9989, + "name": "FundsWithdrawn", + "nodeType": "EventDefinition", + "parameters": { + "id": 9988, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9985, + "indexed": true, + "name": "by", + "nodeType": "VariableDeclaration", + "scope": 9989, + "src": "2286:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9984, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2286:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9987, + "indexed": false, + "name": "fundsWithdrawn", + "nodeType": "VariableDeclaration", + "scope": 9989, + "src": "2306:22:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2306:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2285:44:24" + }, + "src": "2265:65:24" + }, + { + "body": null, + "documentation": "@dev Withdraws available funds for user.\r", + "id": 9992, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdrawFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9990, + "nodeType": "ParameterList", + "parameters": [], + "src": "2415:2:24" + }, + "returnParameters": { + "id": 9991, + "nodeType": "ParameterList", + "parameters": [], + "src": "2434:0:24" + }, + "scope": 10005, + "src": "2393:42:24", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", + "id": 9999, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "availableFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9994, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 9999, + "src": "2691:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2691:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2690:21:24" + }, + "returnParameters": { + "id": 9998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9997, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9999, + "src": "2735:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9996, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2735:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2734:9:24" + }, + "scope": 10005, + "src": "2667:77:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", + "id": 10004, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalReceivedFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10000, + "nodeType": "ParameterList", + "parameters": [], + "src": "2920:2:24" + }, + "returnParameters": { + "id": 10003, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10002, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10004, + "src": "2946:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2946:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2945:9:24" + }, + "scope": 10005, + "src": "2893:62:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 10328, + "src": "1682:1276:24" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10006, + "name": "IClaimsToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10005, + "src": "2986:12:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IClaimsToken_$10005", + "typeString": "contract IClaimsToken" + } + }, + "id": 10007, + "nodeType": "InheritanceSpecifier", + "src": "2986:12:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10008, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9650, + "src": "3000:5:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9650", + "typeString": "contract ERC20" + } + }, + "id": 10009, + "nodeType": "InheritanceSpecifier", + "src": "3000:5:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10010, + "name": "ERC20Detailed", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9977, + "src": "3007:13:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$9977", + "typeString": "contract ERC20Detailed" + } + }, + "id": 10011, + "nodeType": "InheritanceSpecifier", + "src": "3007:13:24" + } + ], + "contractDependencies": [ + 9650, + 9719, + 9977, + 10005 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 10228, + "linearizedBaseContracts": [ + 10228, + 9977, + 9650, + 9719, + 10005 + ], + "name": "ClaimsToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 10014, + "libraryName": { + "contractScope": null, + "id": 10012, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "3033:8:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "3027:27:24", + "typeName": { + "id": 10013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3046:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 10016, + "name": "receivedFunds", + "nodeType": "VariableDeclaration", + "scope": 10228, + "src": "3107:28:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10015, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3107:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 10020, + "name": "processedFunds", + "nodeType": "VariableDeclaration", + "scope": 10228, + "src": "3226:50:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 10019, + "keyType": { + "id": 10017, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3235:7:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3226:28:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 10018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3246:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 10024, + "name": "claimedFunds", + "nodeType": "VariableDeclaration", + "scope": 10228, + "src": "3332:48:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 10023, + "keyType": { + "id": 10021, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3341:7:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3332:28:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 10022, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3352:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 10050, + "nodeType": "Block", + "src": "3471:76:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10035, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10026, + "src": "3482:6:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10043, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130303030", + "id": 10036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3490:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "value": "10000" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10041, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 10037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3499:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "3138", + "id": 10039, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3513:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + } + ], + "id": 10038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3505:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 10040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3505:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3499:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10042, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3498:19:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3490:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10034, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9539, + "src": "3476:5:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 10044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3476:42:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10045, + "nodeType": "ExpressionStatement", + "src": "3476:42:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10046, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "3525:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 10047, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3541:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3525:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10049, + "nodeType": "ExpressionStatement", + "src": "3525:17:24" + } + ] + }, + "documentation": null, + "id": 10051, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "hexValue": "436c61696d73546f6b656e", + "id": 10029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3443:13:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25771c0ba9a97de4408886fe552885a1751acfa735dfd2ef9c66e7b9e8871e71", + "typeString": "literal_string \"ClaimsToken\"" + }, + "value": "ClaimsToken" + }, + { + "argumentTypes": null, + "hexValue": "435354", + "id": 10030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3458:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0626086d51c299e905c42b7a28a0add92109e49b12cb2bd2531769201453ab94", + "typeString": "literal_string \"CST\"" + }, + "value": "CST" + }, + { + "argumentTypes": null, + "hexValue": "3138", + "id": 10031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3465:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + } + ], + "id": 10032, + "modifierName": { + "argumentTypes": null, + "id": 10028, + "name": "ERC20Detailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9977, + "src": "3429:13:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$9977_$", + "typeString": "type(contract ERC20Detailed)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3429:39:24" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10026, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 10051, + "src": "3400:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10025, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3400:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3399:16:24" + }, + "returnParameters": { + "id": 10033, + "nodeType": "ParameterList", + "parameters": [], + "src": "3471:0:24" + }, + "scope": 10228, + "src": "3388:159:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 10075, + "nodeType": "Block", + "src": "3898:95:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10061, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3915:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3915:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 10060, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "3903:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3903:23:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10064, + "nodeType": "ExpressionStatement", + "src": "3903:23:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10066, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10053, + "src": "3943:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10065, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "3931:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3931:16:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10068, + "nodeType": "ExpressionStatement", + "src": "3931:16:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10071, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10053, + "src": "3976:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10072, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10055, + "src": "3981:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10069, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10490, + "src": "3961:5:24", + "typeDescriptions": { + "typeIdentifier": "t_super$_ClaimsToken_$10228", + "typeString": "contract super ClaimsToken" + } + }, + "id": 10070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9343, + "src": "3961:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" + } + }, + "id": 10073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3961:27:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 10059, + "id": 10074, + "nodeType": "Return", + "src": "3954:34:24" + } + ] + }, + "documentation": "@dev Transfer token to a specified address.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _to The address to transfer to\r\n@param _value The amount to be transferred\r", + "id": 10076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10056, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10053, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 10076, + "src": "3839:11:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10052, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3839:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10055, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10076, + "src": "3852:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10054, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3852:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3838:29:24" + }, + "returnParameters": { + "id": 10059, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10058, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10076, + "src": "3890:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10057, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3890:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3889:6:24" + }, + "scope": 10228, + "src": "3821:172:24", + "stateMutability": "nonpayable", + "superFunction": 9343, + "visibility": "public" + }, + { + "body": { + "id": 10102, + "nodeType": "Block", + "src": "4485:101:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10088, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10078, + "src": "4502:5:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10087, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "4490:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4490:18:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10090, + "nodeType": "ExpressionStatement", + "src": "4490:18:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10092, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10080, + "src": "4525:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10091, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "4513:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4513:16:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10094, + "nodeType": "ExpressionStatement", + "src": "4513:16:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10097, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10078, + "src": "4562:5:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10098, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10080, + "src": "4569:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10099, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10082, + "src": "4574:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10095, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10490, + "src": "4543:5:24", + "typeDescriptions": { + "typeIdentifier": "t_super$_ClaimsToken_$10228", + "typeString": "contract super ClaimsToken" + } + }, + "id": 10096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 9397, + "src": "4543:18:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) returns (bool)" + } + }, + "id": 10100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4543:38:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 10086, + "id": 10101, + "nodeType": "Return", + "src": "4536:45:24" + } + ] + }, + "documentation": "@dev Transfer tokens from one address to another.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _from address The address which you want to send tokens from\r\n@param _to address The address which you want to transfer to\r\n@param _value uint256 the amount of tokens to be transferred\r", + "id": 10103, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10083, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10078, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4411:13:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4411:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10080, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4426:11:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10079, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4426:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10082, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4439:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10081, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4439:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4410:44:24" + }, + "returnParameters": { + "id": 10086, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10085, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4477:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10084, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4477:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4476:6:24" + }, + "scope": 10228, + "src": "4389:197:24", + "stateMutability": "nonpayable", + "superFunction": 9397, + "visibility": "public" + }, + { + "body": { + "id": 10110, + "nodeType": "Block", + "src": "4808:30:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10108, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "4820:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10107, + "id": 10109, + "nodeType": "Return", + "src": "4813:20:24" + } + ] + }, + "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", + "id": 10111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalReceivedFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10104, + "nodeType": "ParameterList", + "parameters": [], + "src": "4762:2:24" + }, + "returnParameters": { + "id": 10107, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10106, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10111, + "src": "4797:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10105, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4797:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4796:9:24" + }, + "scope": 10228, + "src": "4735:103:24", + "stateMutability": "view", + "superFunction": 10004, + "visibility": "external" + }, + { + "body": { + "id": 10127, + "nodeType": "Block", + "src": "5156:82:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10122, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "5207:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10124, + "indexExpression": { + "argumentTypes": null, + "id": 10123, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10113, + "src": "5220:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5207:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10119, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10113, + "src": "5190:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10118, + "name": "_calcUnprocessedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10169, + "src": "5168:21:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5168:34:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "5168:38:24", + "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": 10125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5168:65:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10117, + "id": 10126, + "nodeType": "Return", + "src": "5161:72:24" + } + ] + }, + "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", + "id": 10128, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "availableFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10114, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10113, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 10128, + "src": "5094:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5094:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5093:21:24" + }, + "returnParameters": { + "id": 10117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10116, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10128, + "src": "5145:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10115, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5145:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5144:9:24" + }, + "scope": 10228, + "src": "5070:168:24", + "stateMutability": "view", + "superFunction": 9999, + "visibility": "public" + }, + { + "body": { + "id": 10140, + "nodeType": "Block", + "src": "5477:51:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10133, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "5482:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10136, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10130, + "src": "5516:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10134, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "5498:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "5498:17:24", + "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": 10137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5498:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5482:41:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10139, + "nodeType": "ExpressionStatement", + "src": "5482:41:24" + } + ] + }, + "documentation": "@dev Increments cumulative received funds by new received funds.\r\nCalled when ClaimsToken receives funds.\r\n@param _value Amount of tokens / Ether received\r", + "id": 10141, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10130, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10141, + "src": "5447:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10129, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5447:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5446:16:24" + }, + "returnParameters": { + "id": 10132, + "nodeType": "ParameterList", + "parameters": [], + "src": "5477:0:24" + }, + "scope": 10228, + "src": "5423:105:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10168, + "nodeType": "Block", + "src": "5765:158:24", + "statements": [ + { + "assignments": [ + 10149 + ], + "declarations": [ + { + "constant": false, + "id": 10149, + "name": "newReceivedFunds", + "nodeType": "VariableDeclaration", + "scope": 10168, + "src": "5770:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10148, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5770:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10156, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10152, + "name": "processedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10020, + "src": "5815:14:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10154, + "indexExpression": { + "argumentTypes": null, + "id": 10153, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10143, + "src": "5830:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5815:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10150, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "5797:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "5797:17:24", + "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": 10155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5797:46:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5770:73:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 10164, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9296, + "src": "5904:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 10165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5904:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10161, + "name": "newReceivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10149, + "src": "5882:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10158, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10143, + "src": "5865:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10157, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9308, + "src": "5855:9:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5855:22:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 9784, + "src": "5855:26:24", + "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": 10162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5855:44:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9808, + "src": "5855:48:24", + "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": 10166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5855:63:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10147, + "id": 10167, + "nodeType": "Return", + "src": "5848:70:24" + } + ] + }, + "documentation": "@dev Returns payout for a user which can be withdrawn or claimed.\r\n@param _forAddress Address of ClaimsToken holder\r", + "id": 10169, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_calcUnprocessedFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10143, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 10169, + "src": "5701:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5701:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5700:21:24" + }, + "returnParameters": { + "id": 10147, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10146, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10169, + "src": "5754:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5754:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5753:9:24" + }, + "scope": 10228, + "src": "5670:253:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10197, + "nodeType": "Block", + "src": "6080:201:24", + "statements": [ + { + "assignments": [ + 10175 + ], + "declarations": [ + { + "constant": false, + "id": 10175, + "name": "unprocessedFunds", + "nodeType": "VariableDeclaration", + "scope": 10197, + "src": "6085:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10174, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6085:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10179, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10177, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6134:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10176, + "name": "_calcUnprocessedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10169, + "src": "6112:21:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6112:34:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6085:61:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10180, + "name": "processedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10020, + "src": "6153:14:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10182, + "indexExpression": { + "argumentTypes": null, + "id": 10181, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6168:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6153:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10183, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "6183:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6153:43:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10185, + "nodeType": "ExpressionStatement", + "src": "6153:43:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10186, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "6201:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10188, + "indexExpression": { + "argumentTypes": null, + "id": 10187, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6214:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6201:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10193, + "name": "unprocessedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10175, + "src": "6259:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10189, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "6229:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10191, + "indexExpression": { + "argumentTypes": null, + "id": 10190, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6242:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6229:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "6229:29:24", + "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": 10194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6229:47:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6201:75:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10196, + "nodeType": "ExpressionStatement", + "src": "6201:75:24" + } + ] + }, + "documentation": "@dev Claims funds for a user.\r\n@param _forAddress Address of ClaimsToken holder\r", + "id": 10198, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_claimFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10172, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10171, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 10198, + "src": "6050:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10170, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6050:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6049:21:24" + }, + "returnParameters": { + "id": 10173, + "nodeType": "ParameterList", + "parameters": [], + "src": "6080:0:24" + }, + "scope": 10228, + "src": "6029:252:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10226, + "nodeType": "Block", + "src": "6575:177:24", + "statements": [ + { + "assignments": [ + 10204 + ], + "declarations": [ + { + "constant": false, + "id": 10204, + "name": "withdrawableFunds", + "nodeType": "VariableDeclaration", + "scope": 10226, + "src": "6580:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6580:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10209, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10206, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6623:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6623:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 10205, + "name": "availableFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10128, + "src": "6608:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6608:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6580:54:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10210, + "name": "processedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10020, + "src": "6641:14:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10213, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10211, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6656:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6656:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6641:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10214, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "6670:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6641:42:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10216, + "nodeType": "ExpressionStatement", + "src": "6641:42:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10217, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "6688:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10220, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10218, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6701:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6701:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6688:24:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 10221, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6715:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6688:28:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10223, + "nodeType": "ExpressionStatement", + "src": "6688:28:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10224, + "name": "withdrawableFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10204, + "src": "6730:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10202, + "id": 10225, + "nodeType": "Return", + "src": "6723:24:24" + } + ] + }, + "documentation": "@dev Sets claimed but not yet withdrawn funds to 0,\r\nmarks total received funds as processed and\r\nreturns the withdrawable amount for a user.\r\n@return A uint256 representing the withdrawable funds\r", + "id": 10227, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_prepareWithdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10199, + "nodeType": "ParameterList", + "parameters": [], + "src": "6537:2:24" + }, + "returnParameters": { + "id": 10202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10201, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10227, + "src": "6564:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10200, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6564:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6563:9:24" + }, + "scope": 10228, + "src": "6512:240:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 10328, + "src": "2962:3793:24" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10229, + "name": "IClaimsToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10005, + "src": "6797:12:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IClaimsToken_$10005", + "typeString": "contract IClaimsToken" + } + }, + "id": 10230, + "nodeType": "InheritanceSpecifier", + "src": "6797:12:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10231, + "name": "ClaimsToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10228, + "src": "6811:11:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ClaimsToken_$10228", + "typeString": "contract ClaimsToken" + } + }, + "id": 10232, + "nodeType": "InheritanceSpecifier", + "src": "6811:11:24" + } + ], + "contractDependencies": [ + 9650, + 9719, + 9977, + 10005, + 10228 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 10327, + "linearizedBaseContracts": [ + 10327, + 10228, + 9977, + 9650, + 9719, + 10005 + ], + "name": "ClaimsTokenERC20Extension", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 10234, + "name": "fundsToken", + "nodeType": "VariableDeclaration", + "scope": 10327, + "src": "6880:24:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 10233, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "6880:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 10247, + "nodeType": "Block", + "src": "6937:81:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 10242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10237, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6950:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6950:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10240, + "name": "fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10234, + "src": "6972:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + ], + "id": 10239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6964:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6964:19:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6950:33:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "554e415554484f52495a45445f53454e444552", + "id": 10243, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6985:21:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", + "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" + }, + "value": "UNAUTHORIZED_SENDER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", + "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" + } + ], + "id": 10236, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "6942:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 10244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6942:65:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10245, + "nodeType": "ExpressionStatement", + "src": "6942:65:24" + }, + { + "id": 10246, + "nodeType": "PlaceholderStatement", + "src": "7012:1:24" + } + ] + }, + "documentation": null, + "id": 10248, + "name": "onlyFundsToken", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 10235, + "nodeType": "ParameterList", + "parameters": [], + "src": "6934:2:24" + }, + "src": "6910:108:24", + "visibility": "internal" + }, + { + "body": { + "id": 10272, + "nodeType": "Block", + "src": "7106:84:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 10265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10260, + "name": "_fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10252, + "src": "7127:11:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + ], + "id": 10259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7119:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7119:20:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 10263, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7151:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 10262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7143:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10264, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7143:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7119:34:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10258, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "7111:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 10266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7111:43:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10267, + "nodeType": "ExpressionStatement", + "src": "7111:43:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10268, + "name": "fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10234, + "src": "7161:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10269, + "name": "_fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10252, + "src": "7174:11:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "src": "7161:24:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 10271, + "nodeType": "ExpressionStatement", + "src": "7161:24:24" + } + ] + }, + "documentation": null, + "id": 10273, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 10255, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10250, + "src": "7096:6:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 10256, + "modifierName": { + "argumentTypes": null, + "id": 10254, + "name": "ClaimsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10228, + "src": "7084:11:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ClaimsToken_$10228_$", + "typeString": "type(contract ClaimsToken)" + } + }, + "nodeType": "ModifierInvocation", + "src": "7084:19:24" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10250, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 10273, + "src": "7035:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10249, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7035:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10252, + "name": "_fundsToken", + "nodeType": "VariableDeclaration", + "scope": 10273, + "src": "7051:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 10251, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "7051:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7034:36:24" + }, + "returnParameters": { + "id": 10257, + "nodeType": "ParameterList", + "parameters": [], + "src": "7106:0:24" + }, + "scope": 10327, + "src": "7023:167:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 10299, + "nodeType": "Block", + "src": "7303:175:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10277, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "7316:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7316:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 10279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7329:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7316:14:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 10281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7332:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 10276, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7308:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 10282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7308:27:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10283, + "nodeType": "ExpressionStatement", + "src": "7308:27:24" + }, + { + "assignments": [ + 10285 + ], + "declarations": [ + { + "constant": false, + "id": 10285, + "name": "withdrawableFunds", + "nodeType": "VariableDeclaration", + "scope": 10299, + "src": "7342:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10284, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7342:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10288, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 10286, + "name": "_prepareWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10227, + "src": "7370:16:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () returns (uint256)" + } + }, + "id": 10287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7370:18:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7342:46:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10292, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "7423:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7423:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 10294, + "name": "withdrawableFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10285, + "src": "7435:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10290, + "name": "fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10234, + "src": "7403:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 10291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9661, + "src": "7403:19:24", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 10295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7403:50:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5452414e534645525f4641494c4544", + "id": 10296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7455:17:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", + "typeString": "literal_string \"TRANSFER_FAILED\"" + }, + "value": "TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", + "typeString": "literal_string \"TRANSFER_FAILED\"" + } + ], + "id": 10289, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7395:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 10297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7395:78:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10298, + "nodeType": "ExpressionStatement", + "src": "7395:78:24" + } + ] + }, + "documentation": "@dev Withdraws available funds for user.\r", + "id": 10300, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10274, + "nodeType": "ParameterList", + "parameters": [], + "src": "7275:2:24" + }, + "returnParameters": { + "id": 10275, + "nodeType": "ParameterList", + "parameters": [], + "src": "7303:0:24" + }, + "scope": 10327, + "src": "7253:225:24", + "stateMutability": "payable", + "superFunction": 9992, + "visibility": "external" + }, + { + "body": { + "id": 10325, + "nodeType": "Block", + "src": "7777:100:24", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10311, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7786:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 10312, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7795:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7786:10:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 10324, + "nodeType": "IfStatement", + "src": "7782:91:24", + "trueBody": { + "id": 10323, + "nodeType": "Block", + "src": "7798:75:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10315, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7819:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10314, + "name": "_registerFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10141, + "src": "7804:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 10316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7804:22:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10317, + "nodeType": "ExpressionStatement", + "src": "7804:22:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10319, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10302, + "src": "7851:7:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10320, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7860:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10318, + "name": "FundsReceived", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9983, + "src": "7837:13:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 10321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7837:30:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10322, + "nodeType": "EmitStatement", + "src": "7832:35:24" + } + ] + } + } + ] + }, + "documentation": "@dev For ERC223.\r\nCalls _registerFunds(), whereby total received funds (cumulative) gets updated.\r\n@param _sender Sender of tokens\r\n@param _value Amount of tokens\r", + "id": 10326, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [], + "id": 10309, + "modifierName": { + "argumentTypes": null, + "id": 10308, + "name": "onlyFundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10248, + "src": "7758:14:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7758:16:24" + } + ], + "name": "tokenFallback", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10302, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 10326, + "src": "7698:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10301, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7698:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10304, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10326, + "src": "7715:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10303, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7715:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10306, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10326, + "src": "7731:12:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 10305, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7731:5:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7697:47:24" + }, + "returnParameters": { + "id": 10310, + "nodeType": "ParameterList", + "parameters": [], + "src": "7777:0:24" + }, + "scope": 10327, + "src": "7675:202:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 10328, + "src": "6759:1121:24" + } + ], + "src": "0:7882:24" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol", + "exportedSymbols": { + "ClaimsToken": [ + 10228 + ], + "ClaimsTokenERC20Extension": [ + 10327 + ], + "ERC20Detailed": [ + 9977 + ], + "IClaimsToken": [ + 10005 + ] + }, + "id": 10328, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9919, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:24" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "../oz/SafeMath.sol", + "id": 9920, + "nodeType": "ImportDirective", + "scope": 10328, + "sourceUnit": 9858, + "src": "36:28:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", + "file": "../oz/IERC20.sol", + "id": 9921, + "nodeType": "ImportDirective", + "scope": 10328, + "sourceUnit": 9720, + "src": "66:26:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol", + "file": "../oz/ERC20.sol", + "id": 9922, + "nodeType": "ImportDirective", + "scope": 10328, + "sourceUnit": 9651, + "src": "94:25:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9923, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "212:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 9924, + "nodeType": "InheritanceSpecifier", + "src": "212:6:24" + } + ], + "contractDependencies": [ + 9719 + ], + "contractKind": "contract", + "documentation": "@dev Optional functions from the ERC20 standard.\r", + "fullyImplemented": false, + "id": 9977, + "linearizedBaseContracts": [ + 9977, + 9719 + ], + "name": "ERC20Detailed", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 9926, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 9977, + "src": "226:20:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 9925, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "226:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 9928, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 9977, + "src": "253:22:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 9927, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "253:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 9930, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 9977, + "src": "282:23:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9929, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "282:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 9951, + "nodeType": "Block", + "src": "581:89:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9939, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9926, + "src": "592:5:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9940, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9932, + "src": "600:4:24", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "592:12:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 9942, + "nodeType": "ExpressionStatement", + "src": "592:12:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 9945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9943, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9928, + "src": "615:7:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9944, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9934, + "src": "625:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "615:16:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 9946, + "nodeType": "ExpressionStatement", + "src": "615:16:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 9949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9947, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9930, + "src": "642:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9948, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9936, + "src": "654:8:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "642:20:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 9950, + "nodeType": "ExpressionStatement", + "src": "642:20:24" + } + ] + }, + "documentation": "@dev Sets the values for `name`, `symbol`, and `decimals`. All three of\r\nthese values are immutable: they can only be set once during\r\nconstruction.\r", + "id": 9952, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9937, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9932, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 9952, + "src": "516:18:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9931, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "516:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9934, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 9952, + "src": "536:20:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9933, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "536:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9936, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 9952, + "src": "558:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9935, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "558:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "515:58:24" + }, + "returnParameters": { + "id": 9938, + "nodeType": "ParameterList", + "parameters": [], + "src": "581:0:24" + }, + "scope": 9977, + "src": "503:167:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9959, + "nodeType": "Block", + "src": "792:31:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9957, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9926, + "src": "810:5:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 9956, + "id": 9958, + "nodeType": "Return", + "src": "803:12:24" + } + ] + }, + "documentation": "@dev Returns the name of the token.\r", + "id": 9960, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9953, + "nodeType": "ParameterList", + "parameters": [], + "src": "753:2:24" + }, + "returnParameters": { + "id": 9956, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9955, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9960, + "src": "777:13:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9954, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "777:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "776:15:24" + }, + "scope": 9977, + "src": "740:83:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9967, + "nodeType": "Block", + "src": "996:33:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9965, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9928, + "src": "1014:7:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 9964, + "id": 9966, + "nodeType": "Return", + "src": "1007:14:24" + } + ] + }, + "documentation": "@dev Returns the symbol of the token, usually a shorter version of the\r\nname.\r", + "id": 9968, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9961, + "nodeType": "ParameterList", + "parameters": [], + "src": "957:2:24" + }, + "returnParameters": { + "id": 9964, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9963, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9968, + "src": "981:13:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9962, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "981:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "980:15:24" + }, + "scope": 9977, + "src": "942:87:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9975, + "nodeType": "Block", + "src": "1640:35:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9973, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9930, + "src": "1658:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 9972, + "id": 9974, + "nodeType": "Return", + "src": "1651:16:24" + } + ] + }, + "documentation": "@dev Returns the number of decimals used to get its user representation.\r\nFor example, if `decimals` equals `2`, a balance of `505` tokens should\r\nbe displayed to a user as `5,05` (`505 / 10 ** 2`).\r\n\n * Tokens usually opt for a value of 18, imitating the relationship between\r\nEther and Wei.\r\n\n * NOTE: This information is only used for _display_ purposes: it in\r\nno way affects any of the arithmetic of the contract, including\r\n{IERC20-balanceOf} and {IERC20-transfer}.\r", + "id": 9976, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9969, + "nodeType": "ParameterList", + "parameters": [], + "src": "1609:2:24" + }, + "returnParameters": { + "id": 9972, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9971, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9976, + "src": "1633:5:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9970, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1633:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1632:7:24" + }, + "scope": 9977, + "src": "1592:83:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 10328, + "src": "186:1492:24" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 10005, + "linearizedBaseContracts": [ + 10005 + ], + "name": "IClaimsToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": "@dev This event emits when funds to be deposited are sent to the token contract\r\n@param from contains the address of the sender of the received funds\r\n@param fundsReceived contains the amount of funds received for distribution\r", + "id": 9983, + "name": "FundsReceived", + "nodeType": "EventDefinition", + "parameters": { + "id": 9982, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9979, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 9983, + "src": "1983:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9978, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1983:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9981, + "indexed": false, + "name": "fundsReceived", + "nodeType": "VariableDeclaration", + "scope": 9983, + "src": "2005:21:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2005:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1982:45:24" + }, + "src": "1963:65:24" + }, + { + "anonymous": false, + "documentation": "@dev This event emits when distributed funds are withdrawn by a token holder.\r\n@param by contains the address of the receiver of funds\r\n@param fundsWithdrawn contains the amount of funds that were withdrawn\r", + "id": 9989, + "name": "FundsWithdrawn", + "nodeType": "EventDefinition", + "parameters": { + "id": 9988, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9985, + "indexed": true, + "name": "by", + "nodeType": "VariableDeclaration", + "scope": 9989, + "src": "2286:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9984, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2286:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9987, + "indexed": false, + "name": "fundsWithdrawn", + "nodeType": "VariableDeclaration", + "scope": 9989, + "src": "2306:22:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2306:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2285:44:24" + }, + "src": "2265:65:24" + }, + { + "body": null, + "documentation": "@dev Withdraws available funds for user.\r", + "id": 9992, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdrawFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9990, + "nodeType": "ParameterList", + "parameters": [], + "src": "2415:2:24" + }, + "returnParameters": { + "id": 9991, + "nodeType": "ParameterList", + "parameters": [], + "src": "2434:0:24" + }, + "scope": 10005, + "src": "2393:42:24", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", + "id": 9999, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "availableFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9994, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 9999, + "src": "2691:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2691:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2690:21:24" + }, + "returnParameters": { + "id": 9998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9997, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9999, + "src": "2735:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9996, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2735:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2734:9:24" + }, + "scope": 10005, + "src": "2667:77:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", + "id": 10004, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalReceivedFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10000, + "nodeType": "ParameterList", + "parameters": [], + "src": "2920:2:24" + }, + "returnParameters": { + "id": 10003, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10002, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10004, + "src": "2946:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2946:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2945:9:24" + }, + "scope": 10005, + "src": "2893:62:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 10328, + "src": "1682:1276:24" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10006, + "name": "IClaimsToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10005, + "src": "2986:12:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IClaimsToken_$10005", + "typeString": "contract IClaimsToken" + } + }, + "id": 10007, + "nodeType": "InheritanceSpecifier", + "src": "2986:12:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10008, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9650, + "src": "3000:5:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9650", + "typeString": "contract ERC20" + } + }, + "id": 10009, + "nodeType": "InheritanceSpecifier", + "src": "3000:5:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10010, + "name": "ERC20Detailed", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9977, + "src": "3007:13:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$9977", + "typeString": "contract ERC20Detailed" + } + }, + "id": 10011, + "nodeType": "InheritanceSpecifier", + "src": "3007:13:24" + } + ], + "contractDependencies": [ + 9650, + 9719, + 9977, + 10005 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 10228, + "linearizedBaseContracts": [ + 10228, + 9977, + 9650, + 9719, + 10005 + ], + "name": "ClaimsToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 10014, + "libraryName": { + "contractScope": null, + "id": 10012, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "3033:8:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "3027:27:24", + "typeName": { + "id": 10013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3046:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 10016, + "name": "receivedFunds", + "nodeType": "VariableDeclaration", + "scope": 10228, + "src": "3107:28:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10015, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3107:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 10020, + "name": "processedFunds", + "nodeType": "VariableDeclaration", + "scope": 10228, + "src": "3226:50:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 10019, + "keyType": { + "id": 10017, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3235:7:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3226:28:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 10018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3246:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 10024, + "name": "claimedFunds", + "nodeType": "VariableDeclaration", + "scope": 10228, + "src": "3332:48:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 10023, + "keyType": { + "id": 10021, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3341:7:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3332:28:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 10022, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3352:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 10050, + "nodeType": "Block", + "src": "3471:76:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10035, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10026, + "src": "3482:6:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10043, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130303030", + "id": 10036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3490:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "value": "10000" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10041, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 10037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3499:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "3138", + "id": 10039, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3513:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + } + ], + "id": 10038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3505:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 10040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3505:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3499:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10042, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3498:19:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3490:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10034, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9539, + "src": "3476:5:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 10044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3476:42:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10045, + "nodeType": "ExpressionStatement", + "src": "3476:42:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10046, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "3525:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 10047, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3541:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3525:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10049, + "nodeType": "ExpressionStatement", + "src": "3525:17:24" + } + ] + }, + "documentation": null, + "id": 10051, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "hexValue": "436c61696d73546f6b656e", + "id": 10029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3443:13:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25771c0ba9a97de4408886fe552885a1751acfa735dfd2ef9c66e7b9e8871e71", + "typeString": "literal_string \"ClaimsToken\"" + }, + "value": "ClaimsToken" + }, + { + "argumentTypes": null, + "hexValue": "435354", + "id": 10030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3458:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0626086d51c299e905c42b7a28a0add92109e49b12cb2bd2531769201453ab94", + "typeString": "literal_string \"CST\"" + }, + "value": "CST" + }, + { + "argumentTypes": null, + "hexValue": "3138", + "id": 10031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3465:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + } + ], + "id": 10032, + "modifierName": { + "argumentTypes": null, + "id": 10028, + "name": "ERC20Detailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9977, + "src": "3429:13:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$9977_$", + "typeString": "type(contract ERC20Detailed)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3429:39:24" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10026, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 10051, + "src": "3400:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10025, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3400:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3399:16:24" + }, + "returnParameters": { + "id": 10033, + "nodeType": "ParameterList", + "parameters": [], + "src": "3471:0:24" + }, + "scope": 10228, + "src": "3388:159:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 10075, + "nodeType": "Block", + "src": "3898:95:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10061, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3915:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3915:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 10060, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "3903:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3903:23:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10064, + "nodeType": "ExpressionStatement", + "src": "3903:23:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10066, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10053, + "src": "3943:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10065, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "3931:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3931:16:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10068, + "nodeType": "ExpressionStatement", + "src": "3931:16:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10071, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10053, + "src": "3976:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10072, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10055, + "src": "3981:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10069, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10490, + "src": "3961:5:24", + "typeDescriptions": { + "typeIdentifier": "t_super$_ClaimsToken_$10228", + "typeString": "contract super ClaimsToken" + } + }, + "id": 10070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9343, + "src": "3961:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" + } + }, + "id": 10073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3961:27:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 10059, + "id": 10074, + "nodeType": "Return", + "src": "3954:34:24" + } + ] + }, + "documentation": "@dev Transfer token to a specified address.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _to The address to transfer to\r\n@param _value The amount to be transferred\r", + "id": 10076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10056, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10053, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 10076, + "src": "3839:11:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10052, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3839:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10055, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10076, + "src": "3852:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10054, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3852:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3838:29:24" + }, + "returnParameters": { + "id": 10059, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10058, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10076, + "src": "3890:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10057, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3890:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3889:6:24" + }, + "scope": 10228, + "src": "3821:172:24", + "stateMutability": "nonpayable", + "superFunction": 9343, + "visibility": "public" + }, + { + "body": { + "id": 10102, + "nodeType": "Block", + "src": "4485:101:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10088, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10078, + "src": "4502:5:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10087, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "4490:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4490:18:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10090, + "nodeType": "ExpressionStatement", + "src": "4490:18:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10092, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10080, + "src": "4525:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10091, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "4513:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4513:16:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10094, + "nodeType": "ExpressionStatement", + "src": "4513:16:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10097, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10078, + "src": "4562:5:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10098, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10080, + "src": "4569:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10099, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10082, + "src": "4574:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10095, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10490, + "src": "4543:5:24", + "typeDescriptions": { + "typeIdentifier": "t_super$_ClaimsToken_$10228", + "typeString": "contract super ClaimsToken" + } + }, + "id": 10096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 9397, + "src": "4543:18:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) returns (bool)" + } + }, + "id": 10100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4543:38:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 10086, + "id": 10101, + "nodeType": "Return", + "src": "4536:45:24" + } + ] + }, + "documentation": "@dev Transfer tokens from one address to another.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _from address The address which you want to send tokens from\r\n@param _to address The address which you want to transfer to\r\n@param _value uint256 the amount of tokens to be transferred\r", + "id": 10103, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10083, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10078, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4411:13:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4411:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10080, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4426:11:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10079, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4426:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10082, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4439:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10081, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4439:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4410:44:24" + }, + "returnParameters": { + "id": 10086, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10085, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4477:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10084, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4477:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4476:6:24" + }, + "scope": 10228, + "src": "4389:197:24", + "stateMutability": "nonpayable", + "superFunction": 9397, + "visibility": "public" + }, + { + "body": { + "id": 10110, + "nodeType": "Block", + "src": "4808:30:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10108, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "4820:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10107, + "id": 10109, + "nodeType": "Return", + "src": "4813:20:24" + } + ] + }, + "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", + "id": 10111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalReceivedFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10104, + "nodeType": "ParameterList", + "parameters": [], + "src": "4762:2:24" + }, + "returnParameters": { + "id": 10107, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10106, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10111, + "src": "4797:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10105, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4797:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4796:9:24" + }, + "scope": 10228, + "src": "4735:103:24", + "stateMutability": "view", + "superFunction": 10004, + "visibility": "external" + }, + { + "body": { + "id": 10127, + "nodeType": "Block", + "src": "5156:82:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10122, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "5207:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10124, + "indexExpression": { + "argumentTypes": null, + "id": 10123, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10113, + "src": "5220:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5207:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10119, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10113, + "src": "5190:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10118, + "name": "_calcUnprocessedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10169, + "src": "5168:21:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5168:34:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "5168:38:24", + "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": 10125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5168:65:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10117, + "id": 10126, + "nodeType": "Return", + "src": "5161:72:24" + } + ] + }, + "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", + "id": 10128, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "availableFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10114, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10113, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 10128, + "src": "5094:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5094:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5093:21:24" + }, + "returnParameters": { + "id": 10117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10116, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10128, + "src": "5145:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10115, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5145:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5144:9:24" + }, + "scope": 10228, + "src": "5070:168:24", + "stateMutability": "view", + "superFunction": 9999, + "visibility": "public" + }, + { + "body": { + "id": 10140, + "nodeType": "Block", + "src": "5477:51:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10133, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "5482:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10136, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10130, + "src": "5516:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10134, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "5498:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "5498:17:24", + "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": 10137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5498:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5482:41:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10139, + "nodeType": "ExpressionStatement", + "src": "5482:41:24" + } + ] + }, + "documentation": "@dev Increments cumulative received funds by new received funds.\r\nCalled when ClaimsToken receives funds.\r\n@param _value Amount of tokens / Ether received\r", + "id": 10141, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10130, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10141, + "src": "5447:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10129, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5447:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5446:16:24" + }, + "returnParameters": { + "id": 10132, + "nodeType": "ParameterList", + "parameters": [], + "src": "5477:0:24" + }, + "scope": 10228, + "src": "5423:105:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10168, + "nodeType": "Block", + "src": "5765:158:24", + "statements": [ + { + "assignments": [ + 10149 + ], + "declarations": [ + { + "constant": false, + "id": 10149, + "name": "newReceivedFunds", + "nodeType": "VariableDeclaration", + "scope": 10168, + "src": "5770:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10148, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5770:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10156, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10152, + "name": "processedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10020, + "src": "5815:14:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10154, + "indexExpression": { + "argumentTypes": null, + "id": 10153, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10143, + "src": "5830:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5815:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10150, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "5797:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "5797:17:24", + "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": 10155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5797:46:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5770:73:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 10164, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9296, + "src": "5904:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 10165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5904:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10161, + "name": "newReceivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10149, + "src": "5882:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10158, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10143, + "src": "5865:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10157, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9308, + "src": "5855:9:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5855:22:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 9784, + "src": "5855:26:24", + "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": 10162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5855:44:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9808, + "src": "5855:48:24", + "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": 10166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5855:63:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10147, + "id": 10167, + "nodeType": "Return", + "src": "5848:70:24" + } + ] + }, + "documentation": "@dev Returns payout for a user which can be withdrawn or claimed.\r\n@param _forAddress Address of ClaimsToken holder\r", + "id": 10169, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_calcUnprocessedFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10143, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 10169, + "src": "5701:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5701:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5700:21:24" + }, + "returnParameters": { + "id": 10147, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10146, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10169, + "src": "5754:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5754:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5753:9:24" + }, + "scope": 10228, + "src": "5670:253:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10197, + "nodeType": "Block", + "src": "6080:201:24", + "statements": [ + { + "assignments": [ + 10175 + ], + "declarations": [ + { + "constant": false, + "id": 10175, + "name": "unprocessedFunds", + "nodeType": "VariableDeclaration", + "scope": 10197, + "src": "6085:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10174, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6085:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10179, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10177, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6134:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10176, + "name": "_calcUnprocessedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10169, + "src": "6112:21:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6112:34:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6085:61:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10180, + "name": "processedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10020, + "src": "6153:14:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10182, + "indexExpression": { + "argumentTypes": null, + "id": 10181, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6168:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6153:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10183, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "6183:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6153:43:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10185, + "nodeType": "ExpressionStatement", + "src": "6153:43:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10186, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "6201:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10188, + "indexExpression": { + "argumentTypes": null, + "id": 10187, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6214:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6201:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10193, + "name": "unprocessedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10175, + "src": "6259:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10189, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "6229:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10191, + "indexExpression": { + "argumentTypes": null, + "id": 10190, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6242:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6229:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "6229:29:24", + "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": 10194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6229:47:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6201:75:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10196, + "nodeType": "ExpressionStatement", + "src": "6201:75:24" + } + ] + }, + "documentation": "@dev Claims funds for a user.\r\n@param _forAddress Address of ClaimsToken holder\r", + "id": 10198, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_claimFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10172, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10171, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 10198, + "src": "6050:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10170, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6050:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6049:21:24" + }, + "returnParameters": { + "id": 10173, + "nodeType": "ParameterList", + "parameters": [], + "src": "6080:0:24" + }, + "scope": 10228, + "src": "6029:252:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10226, + "nodeType": "Block", + "src": "6575:177:24", + "statements": [ + { + "assignments": [ + 10204 + ], + "declarations": [ + { + "constant": false, + "id": 10204, + "name": "withdrawableFunds", + "nodeType": "VariableDeclaration", + "scope": 10226, + "src": "6580:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6580:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10209, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10206, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6623:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6623:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 10205, + "name": "availableFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10128, + "src": "6608:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6608:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6580:54:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10210, + "name": "processedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10020, + "src": "6641:14:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10213, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10211, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6656:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6656:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6641:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10214, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "6670:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6641:42:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10216, + "nodeType": "ExpressionStatement", + "src": "6641:42:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10217, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "6688:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10220, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10218, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6701:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6701:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6688:24:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 10221, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6715:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6688:28:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10223, + "nodeType": "ExpressionStatement", + "src": "6688:28:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10224, + "name": "withdrawableFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10204, + "src": "6730:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10202, + "id": 10225, + "nodeType": "Return", + "src": "6723:24:24" + } + ] + }, + "documentation": "@dev Sets claimed but not yet withdrawn funds to 0,\r\nmarks total received funds as processed and\r\nreturns the withdrawable amount for a user.\r\n@return A uint256 representing the withdrawable funds\r", + "id": 10227, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_prepareWithdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10199, + "nodeType": "ParameterList", + "parameters": [], + "src": "6537:2:24" + }, + "returnParameters": { + "id": 10202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10201, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10227, + "src": "6564:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10200, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6564:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6563:9:24" + }, + "scope": 10228, + "src": "6512:240:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 10328, + "src": "2962:3793:24" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10229, + "name": "IClaimsToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10005, + "src": "6797:12:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IClaimsToken_$10005", + "typeString": "contract IClaimsToken" + } + }, + "id": 10230, + "nodeType": "InheritanceSpecifier", + "src": "6797:12:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10231, + "name": "ClaimsToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10228, + "src": "6811:11:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ClaimsToken_$10228", + "typeString": "contract ClaimsToken" + } + }, + "id": 10232, + "nodeType": "InheritanceSpecifier", + "src": "6811:11:24" + } + ], + "contractDependencies": [ + 9650, + 9719, + 9977, + 10005, + 10228 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 10327, + "linearizedBaseContracts": [ + 10327, + 10228, + 9977, + 9650, + 9719, + 10005 + ], + "name": "ClaimsTokenERC20Extension", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 10234, + "name": "fundsToken", + "nodeType": "VariableDeclaration", + "scope": 10327, + "src": "6880:24:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 10233, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "6880:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 10247, + "nodeType": "Block", + "src": "6937:81:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 10242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10237, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6950:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6950:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10240, + "name": "fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10234, + "src": "6972:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + ], + "id": 10239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6964:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6964:19:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6950:33:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "554e415554484f52495a45445f53454e444552", + "id": 10243, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6985:21:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", + "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" + }, + "value": "UNAUTHORIZED_SENDER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", + "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" + } + ], + "id": 10236, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "6942:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 10244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6942:65:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10245, + "nodeType": "ExpressionStatement", + "src": "6942:65:24" + }, + { + "id": 10246, + "nodeType": "PlaceholderStatement", + "src": "7012:1:24" + } + ] + }, + "documentation": null, + "id": 10248, + "name": "onlyFundsToken", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 10235, + "nodeType": "ParameterList", + "parameters": [], + "src": "6934:2:24" + }, + "src": "6910:108:24", + "visibility": "internal" + }, + { + "body": { + "id": 10272, + "nodeType": "Block", + "src": "7106:84:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 10265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10260, + "name": "_fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10252, + "src": "7127:11:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + ], + "id": 10259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7119:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7119:20:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 10263, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7151:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 10262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7143:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10264, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7143:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7119:34:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10258, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "7111:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 10266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7111:43:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10267, + "nodeType": "ExpressionStatement", + "src": "7111:43:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10268, + "name": "fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10234, + "src": "7161:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10269, + "name": "_fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10252, + "src": "7174:11:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "src": "7161:24:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 10271, + "nodeType": "ExpressionStatement", + "src": "7161:24:24" + } + ] + }, + "documentation": null, + "id": 10273, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 10255, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10250, + "src": "7096:6:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 10256, + "modifierName": { + "argumentTypes": null, + "id": 10254, + "name": "ClaimsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10228, + "src": "7084:11:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ClaimsToken_$10228_$", + "typeString": "type(contract ClaimsToken)" + } + }, + "nodeType": "ModifierInvocation", + "src": "7084:19:24" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10250, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 10273, + "src": "7035:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10249, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7035:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10252, + "name": "_fundsToken", + "nodeType": "VariableDeclaration", + "scope": 10273, + "src": "7051:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 10251, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "7051:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7034:36:24" + }, + "returnParameters": { + "id": 10257, + "nodeType": "ParameterList", + "parameters": [], + "src": "7106:0:24" + }, + "scope": 10327, + "src": "7023:167:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 10299, + "nodeType": "Block", + "src": "7303:175:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10277, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "7316:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7316:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 10279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7329:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7316:14:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 10281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7332:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 10276, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7308:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 10282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7308:27:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10283, + "nodeType": "ExpressionStatement", + "src": "7308:27:24" + }, + { + "assignments": [ + 10285 + ], + "declarations": [ + { + "constant": false, + "id": 10285, + "name": "withdrawableFunds", + "nodeType": "VariableDeclaration", + "scope": 10299, + "src": "7342:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10284, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7342:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10288, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 10286, + "name": "_prepareWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10227, + "src": "7370:16:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () returns (uint256)" + } + }, + "id": 10287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7370:18:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7342:46:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10292, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "7423:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7423:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 10294, + "name": "withdrawableFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10285, + "src": "7435:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10290, + "name": "fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10234, + "src": "7403:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 10291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9661, + "src": "7403:19:24", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 10295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7403:50:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5452414e534645525f4641494c4544", + "id": 10296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7455:17:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", + "typeString": "literal_string \"TRANSFER_FAILED\"" + }, + "value": "TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", + "typeString": "literal_string \"TRANSFER_FAILED\"" + } + ], + "id": 10289, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7395:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 10297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7395:78:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10298, + "nodeType": "ExpressionStatement", + "src": "7395:78:24" + } + ] + }, + "documentation": "@dev Withdraws available funds for user.\r", + "id": 10300, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10274, + "nodeType": "ParameterList", + "parameters": [], + "src": "7275:2:24" + }, + "returnParameters": { + "id": 10275, + "nodeType": "ParameterList", + "parameters": [], + "src": "7303:0:24" + }, + "scope": 10327, + "src": "7253:225:24", + "stateMutability": "payable", + "superFunction": 9992, + "visibility": "external" + }, + { + "body": { + "id": 10325, + "nodeType": "Block", + "src": "7777:100:24", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10311, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7786:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 10312, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7795:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7786:10:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 10324, + "nodeType": "IfStatement", + "src": "7782:91:24", + "trueBody": { + "id": 10323, + "nodeType": "Block", + "src": "7798:75:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10315, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7819:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10314, + "name": "_registerFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10141, + "src": "7804:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 10316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7804:22:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10317, + "nodeType": "ExpressionStatement", + "src": "7804:22:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10319, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10302, + "src": "7851:7:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10320, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7860:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10318, + "name": "FundsReceived", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9983, + "src": "7837:13:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 10321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7837:30:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10322, + "nodeType": "EmitStatement", + "src": "7832:35:24" + } + ] + } + } + ] + }, + "documentation": "@dev For ERC223.\r\nCalls _registerFunds(), whereby total received funds (cumulative) gets updated.\r\n@param _sender Sender of tokens\r\n@param _value Amount of tokens\r", + "id": 10326, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [], + "id": 10309, + "modifierName": { + "argumentTypes": null, + "id": 10308, + "name": "onlyFundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10248, + "src": "7758:14:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7758:16:24" + } + ], + "name": "tokenFallback", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10302, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 10326, + "src": "7698:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10301, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7698:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10304, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10326, + "src": "7715:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10303, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7715:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10306, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10326, + "src": "7731:12:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 10305, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7731:5:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7697:47:24" + }, + "returnParameters": { + "id": 10310, + "nodeType": "ParameterList", + "parameters": [], + "src": "7777:0:24" + }, + "scope": 10327, + "src": "7675:202:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 10328, + "src": "6759:1121:24" + } + ], + "src": "0:7882:24" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:20.291Z", + "devdoc": { + "details": "Optional functions from the ERC20 standard.\r", + "methods": { + "constructor": { + "details": "Sets the values for `name`, `symbol`, and `decimals`. All three of\r these values are immutable: they can only be set once during\r construction.\r" + }, + "decimals()": { + "details": "Returns the number of decimals used to get its user representation.\r For example, if `decimals` equals `2`, a balance of `505` tokens should\r be displayed to a user as `5,05` (`505 / 10 ** 2`).\r * Tokens usually opt for a value of 18, imitating the relationship between\r Ether and Wei.\r * NOTE: This information is only used for _display_ purposes: it in\r no way affects any of the arithmetic of the contract, including\r {IERC20-balanceOf} and {IERC20-transfer}.\r" + }, + "name()": { + "details": "Returns the name of the token.\r" + }, + "symbol()": { + "details": "Returns the symbol of the token, usually a shorter version of the\r name.\r" + } + } + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/contracts/ERC20Token.json b/src/contracts/ERC20Token.json new file mode 100644 index 0000000..9f7746b --- /dev/null +++ b/src/contracts/ERC20Token.json @@ -0,0 +1,4804 @@ +{ + "contractName": "ERC20Token", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_from", + "type": "address" + }, + { + "indexed": false, + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "name": "_spender", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "balance", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "remaining", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"remaining\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC20Token.sol\":\"ERC20Token\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC20Token.sol\":{\"keccak256\":\"0x3148ace3c8e413e3e8cb9181826bbb7382fe8fd691fbbe398b0f3291c5ac88f6\",\"urls\":[\"bzzr://f6dae48bd61cf187d97f6dd7b1f14c4216ccda99c9173d87ac59465f9d3a030b\",\"dweb:/ipfs/QmbDe5WTm8sWmUWRbKxtWUrSbyS1T5vgkiVscK94RJb6iS\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/Token.sol\":{\"keccak256\":\"0xdee24120ae0fa14b9200dfa97babfa107aaf668b52eeda93ad672260ede4b74c\",\"urls\":[\"bzzr://2144e06fcebb6227647c4362c7075680ea03074e80e51d37cad0b09092ff06a5\",\"dweb:/ipfs/QmYgcfKEH2DT6brtajHvPRdu6my6CRWH86TXmZCMZeGjfK\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50610400806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063095ea7b31461006757806318160ddd146100a757806323b872dd146100c157806370a08231146100f7578063a9059cbb1461011d578063dd62ed3e14610149575b600080fd5b6100936004803603604081101561007d57600080fd5b506001600160a01b038135169060200135610177565b604080519115158252519081900360200190f35b6100af6101e9565b60408051918252519081900360200190f35b610093600480360360608110156100d757600080fd5b506001600160a01b038135811691602081013590911690604001356101ef565b6100af6004803603602081101561010d57600080fd5b50356001600160a01b03166102e4565b6100936004803603604081101561013357600080fd5b506001600160a01b0381351690602001356102ff565b6100af6004803603604081101561015f57600080fd5b506001600160a01b03813581169160200135166103a0565b3360008181526002602090815260408083206001600160a01b0387168085529083528184208690558151948552918401919091528281018490525190917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925919081900360600190a15060015b92915050565b60005481565b6001600160a01b038316600090815260016020526040812054821180159061023a57506001600160a01b03841660009081526002602090815260408083203384529091529020548211155b80156102465750600082115b156102d9576001600160a01b038084166000818152600160209081526040808320805488019055938816808352848320805488900390556002825284832033845282529184902080548790039055835191825281019190915280820184905290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a15060016102dd565b5060005b9392505050565b6001600160a01b031660009081526001602052604090205490565b33600090815260016020526040812054821180159061031e5750600082115b1561039857336000818152600160209081526040808320805487900390556001600160a01b03871680845292819020805487019055805193845290830191909152818101849052517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a15060016101e3565b5060006101e3565b6001600160a01b0391821660009081526002602090815260408083209390941682529190915220549056fea265627a7a723058208681f53220fa323e78d439b4571dc752917e081f7e68b24ee6dec3910910b53464736f6c63430005090032", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c8063095ea7b31461006757806318160ddd146100a757806323b872dd146100c157806370a08231146100f7578063a9059cbb1461011d578063dd62ed3e14610149575b600080fd5b6100936004803603604081101561007d57600080fd5b506001600160a01b038135169060200135610177565b604080519115158252519081900360200190f35b6100af6101e9565b60408051918252519081900360200190f35b610093600480360360608110156100d757600080fd5b506001600160a01b038135811691602081013590911690604001356101ef565b6100af6004803603602081101561010d57600080fd5b50356001600160a01b03166102e4565b6100936004803603604081101561013357600080fd5b506001600160a01b0381351690602001356102ff565b6100af6004803603604081101561015f57600080fd5b506001600160a01b03813581169160200135166103a0565b3360008181526002602090815260408083206001600160a01b0387168085529083528184208690558151948552918401919091528281018490525190917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925919081900360600190a15060015b92915050565b60005481565b6001600160a01b038316600090815260016020526040812054821180159061023a57506001600160a01b03841660009081526002602090815260408083203384529091529020548211155b80156102465750600082115b156102d9576001600160a01b038084166000818152600160209081526040808320805488019055938816808352848320805488900390556002825284832033845282529184902080548790039055835191825281019190915280820184905290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a15060016102dd565b5060005b9392505050565b6001600160a01b031660009081526001602052604090205490565b33600090815260016020526040812054821180159061031e5750600082115b1561039857336000818152600160209081526040808320805487900390556001600160a01b03871680845292819020805487019055805193845290830191909152818101849052517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a15060016101e3565b5060006101e3565b6001600160a01b0391821660009081526002602090815260408083209390941682529190915220549056fea265627a7a723058208681f53220fa323e78d439b4571dc752917e081f7e68b24ee6dec3910910b53464736f6c63430005090032", + "sourceMap": "406:2008:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;406:2008:7;;;;;;;", + "deployedSourceMap": "406:2008:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;406:2008:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1937:214;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1937:214:7;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;629:26:11;;;:::i;:::-;;;;;;;;;;;;;;;;1133:673:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1133:673:7;;;;;;;;;;;;;;;;;:::i;1814:115::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1814:115:7;-1:-1:-1;;;;;1814:115:7;;:::i;444:681::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;444:681:7;;;;;;;;:::i;2159:142::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2159:142:7;;;;;;;;;;:::i;1937:214::-;2037:10;2004:12;2029:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;2029:29:7;;;;;;;;;;;:38;;;2083;;;;;;;;;;;;;;;;;;;2004:12;;2083:38;;;;;;;;;;-1:-1:-1;2139:4:7;1937:214;;;;;:::o;629:26:11:-;;;;:::o;1133:673:7:-;-1:-1:-1;;;;;1480:15:7;;1215:12;1480:15;;;:8;:15;;;;;;:25;-1:-1:-1;1480:25:7;;;:65;;-1:-1:-1;;;;;;1509:14:7;;;;;;:7;:14;;;;;;;;1524:10;1509:26;;;;;;;;:36;-1:-1:-1;1509:36:7;1480:65;:79;;;;;1558:1;1549:6;:10;1480:79;1476:323;;;-1:-1:-1;;;;;1576:13:7;;;;;;;:8;:13;;;;;;;;:23;;;;;;1614:15;;;;;;;;;:25;;;;;;;1654:7;:14;;;;;1669:10;1654:26;;;;;;;;:36;;;;;;;1710:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1760:4:7;1753:11;;1476:323;-1:-1:-1;1791:5:7;1476:323;1133:673;;;;;:::o;1814:115::-;-1:-1:-1;;;;;1905:16:7;1870:15;1905:16;;;:8;:16;;;;;;;1814:115::o;444:681::-;884:10;507:12;875:20;;;:8;:20;;;;;;:30;-1:-1:-1;875:30:7;;;:44;;;918:1;909:6;:10;875:44;871:247;;;945:10;936:20;;;;:8;:20;;;;;;;;:30;;;;;;;-1:-1:-1;;;;;981:13:7;;;;;;;;;:23;;;;;;1024:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1079:4:7;1072:11;;871:247;-1:-1:-1;1110:5:7;1103:12;;2159:142;-1:-1:-1;;;;;2268:15:7;;;2233:17;2268:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;2159:142::o", + "source": "/*\r\nYou should inherit from StandardToken or, for a token like you would want to\r\ndeploy in something like Mist, see HumanStandardToken.sol.\r\n(This implements ONLY the standard functions and NOTHING else.\r\nIf you deploy this, you won't have anything useful.)\r\n\r\nImplements ERC 20 Token standard: https://github.com/ethereum/EIPs/issues/20\r\n.*/\r\npragma solidity >=0.5.0 < 0.6.0;\r\n\r\nimport \"./Token.sol\";\r\n\r\ncontract ERC20Token is Token {\r\n\r\n function transfer(address _to, uint256 _value) public returns (bool success) {\r\n //Default assumes totalSupply can't be over max (2^256 - 1).\r\n //If your token leaves out totalSupply and can issue more tokens as time goes on, you need to check if it doesn't wrap.\r\n //Replace the if with this one instead.\r\n //if (balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]) {\r\n if (balances[msg.sender] >= _value && _value > 0) {\r\n balances[msg.sender] -= _value;\r\n balances[_to] += _value;\r\n emit Transfer(msg.sender, _to, _value);\r\n return true;\r\n } else { return false; }\r\n }\r\n\r\n function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {\r\n //same as above. Replace this line with the following if you want to protect against wrapping uints.\r\n //if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value > balances[_to]) {\r\n if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0) {\r\n balances[_to] += _value;\r\n balances[_from] -= _value;\r\n allowed[_from][msg.sender] -= _value;\r\n emit Transfer(_from, _to, _value);\r\n return true;\r\n } else { return false; }\r\n }\r\n\r\n function balanceOf(address _owner) view public returns (uint256 balance) {\r\n return balances[_owner];\r\n }\r\n\r\n function approve(address _spender, uint256 _value) public returns (bool success) {\r\n allowed[msg.sender][_spender] = _value;\r\n emit Approval(msg.sender, _spender, _value);\r\n return true;\r\n }\r\n\r\n function allowance(address _owner, address _spender) view public returns (uint256 remaining) {\r\n return allowed[_owner][_spender];\r\n }\r\n\r\n mapping (address => uint256) balances;\r\n mapping (address => mapping (address => uint256)) allowed;\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\inherited\\ERC20Token.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC20Token.sol", + "exportedSymbols": { + "ERC20Token": [ + 4989 + ] + }, + "id": 4990, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4808, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "345:32:7" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/Token.sol", + "file": "./Token.sol", + "id": 4809, + "nodeType": "ImportDirective", + "scope": 4990, + "sourceUnit": 6138, + "src": "381:21:7", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 4810, + "name": "Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6137, + "src": "429:5:7", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Token_$6137", + "typeString": "contract Token" + } + }, + "id": 4811, + "nodeType": "InheritanceSpecifier", + "src": "429:5:7" + } + ], + "contractDependencies": [ + 6137 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 4989, + "linearizedBaseContracts": [ + 4989, + 6137 + ], + "name": "ERC20Token", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4857, + "nodeType": "Block", + "src": "521:604:7", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4820, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "875:8:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4823, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4821, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "884:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "884:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "875:20:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4824, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "899:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "875:30:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4826, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "909:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4827, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "918:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "909:10:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "875:44:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 4855, + "nodeType": "Block", + "src": "1101:17:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 4853, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1110:5:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 4819, + "id": 4854, + "nodeType": "Return", + "src": "1103:12:7" + } + ] + }, + "id": 4856, + "nodeType": "IfStatement", + "src": "871:247:7", + "trueBody": { + "id": 4852, + "nodeType": "Block", + "src": "921:174:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4830, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "936:8:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4833, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4831, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "945:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "945:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "936:20:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 4834, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "960:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "936:30:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4836, + "nodeType": "ExpressionStatement", + "src": "936:30:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 4841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4837, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "981:8:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4839, + "indexExpression": { + "argumentTypes": null, + "id": 4838, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4813, + "src": "990:3:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "981:13:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "id": 4840, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "998:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "981:23:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4842, + "nodeType": "ExpressionStatement", + "src": "981:23:7" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4844, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "1033:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1033:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 4846, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4813, + "src": "1045:3:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4847, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "1050:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4843, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6128, + "src": "1024:8:7", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 4848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1024:33:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4849, + "nodeType": "EmitStatement", + "src": "1019:38:7" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 4850, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1079:4:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 4819, + "id": 4851, + "nodeType": "Return", + "src": "1072:11:7" + } + ] + } + } + ] + }, + "documentation": null, + "id": 4858, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4813, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 4858, + "src": "462:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4812, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "462:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4815, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 4858, + "src": "475:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "475:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "461:29:7" + }, + "returnParameters": { + "id": 4819, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4818, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 4858, + "src": "507:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4817, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "507:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "506:14:7" + }, + "scope": 4989, + "src": "444:681:7", + "stateMutability": "nonpayable", + "superFunction": 6091, + "visibility": "public" + }, + { + "body": { + "id": 4921, + "nodeType": "Block", + "src": "1229:577:7", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4869, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "1480:8:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4871, + "indexExpression": { + "argumentTypes": null, + "id": 4870, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "1489:5:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1480:15:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4872, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4864, + "src": "1499:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1480:25:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4874, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4988, + "src": "1509:7:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 4876, + "indexExpression": { + "argumentTypes": null, + "id": 4875, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "1517:5:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1509:14:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4879, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4877, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "1524:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1524:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1509:26:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4880, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4864, + "src": "1539:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1509:36:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1480:65:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4883, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4864, + "src": "1549:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1558:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1549:10:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1480:79:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 4919, + "nodeType": "Block", + "src": "1782:17:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 4917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1791:5:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 4868, + "id": 4918, + "nodeType": "Return", + "src": "1784:12:7" + } + ] + }, + "id": 4920, + "nodeType": "IfStatement", + "src": "1476:323:7", + "trueBody": { + "id": 4916, + "nodeType": "Block", + "src": "1561:215:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4887, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "1576:8:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4889, + "indexExpression": { + "argumentTypes": null, + "id": 4888, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4862, + "src": "1585:3:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1576:13:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "id": 4890, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4864, + "src": "1593:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1576:23:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4892, + "nodeType": "ExpressionStatement", + "src": "1576:23:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 4897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4893, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "1614:8:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4895, + "indexExpression": { + "argumentTypes": null, + "id": 4894, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "1623:5:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1614:15:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 4896, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4864, + "src": "1633:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1614:25:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4898, + "nodeType": "ExpressionStatement", + "src": "1614:25:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 4906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4899, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4988, + "src": "1654:7:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 4903, + "indexExpression": { + "argumentTypes": null, + "id": 4900, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "1662:5:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1654:14:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4904, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4901, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "1669:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1669:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1654:26:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 4905, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4864, + "src": "1684:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1654:36:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4907, + "nodeType": "ExpressionStatement", + "src": "1654:36:7" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4909, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "1719:5:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4910, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4862, + "src": "1726:3:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4911, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4864, + "src": "1731:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4908, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6128, + "src": "1710:8:7", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 4912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1710:28:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4913, + "nodeType": "EmitStatement", + "src": "1705:33:7" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 4914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1760:4:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 4868, + "id": 4915, + "nodeType": "Return", + "src": "1753:11:7" + } + ] + } + } + ] + }, + "documentation": null, + "id": 4922, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4865, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4860, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 4922, + "src": "1155:13:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4859, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1155:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4862, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 4922, + "src": "1170:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4861, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1170:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4864, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 4922, + "src": "1183:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4863, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1183:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1154:44:7" + }, + "returnParameters": { + "id": 4868, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4867, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 4922, + "src": "1215:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4866, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1215:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1214:14:7" + }, + "scope": 4989, + "src": "1133:673:7", + "stateMutability": "nonpayable", + "superFunction": 6102, + "visibility": "public" + }, + { + "body": { + "id": 4933, + "nodeType": "Block", + "src": "1887:42:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4929, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "1905:8:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4931, + "indexExpression": { + "argumentTypes": null, + "id": 4930, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4924, + "src": "1914:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1905:16:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4928, + "id": 4932, + "nodeType": "Return", + "src": "1898:23:7" + } + ] + }, + "documentation": null, + "id": 4934, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4925, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4924, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 4934, + "src": "1833:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4923, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1833:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1832:16:7" + }, + "returnParameters": { + "id": 4928, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4927, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 4934, + "src": "1870:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4926, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1870:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1869:17:7" + }, + "scope": 4989, + "src": "1814:115:7", + "stateMutability": "view", + "superFunction": 6082, + "visibility": "public" + }, + { + "body": { + "id": 4961, + "nodeType": "Block", + "src": "2018:133:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4943, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4988, + "src": "2029:7:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 4947, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4944, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "2037:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2037:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2029:19:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4948, + "indexExpression": { + "argumentTypes": null, + "id": 4946, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4936, + "src": "2049:8:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2029:29:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4949, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4938, + "src": "2061:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2029:38:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4951, + "nodeType": "ExpressionStatement", + "src": "2029:38:7" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4953, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "2092:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2092:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 4955, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4936, + "src": "2104:8:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4956, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4938, + "src": "2114:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4952, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6136, + "src": "2083:8:7", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 4957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2083:38:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4958, + "nodeType": "EmitStatement", + "src": "2078:43:7" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 4959, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2139:4:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 4942, + "id": 4960, + "nodeType": "Return", + "src": "2132:11:7" + } + ] + }, + "documentation": null, + "id": 4962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4936, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 4962, + "src": "1954:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4935, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1954:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4938, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 4962, + "src": "1972:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4937, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1972:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1953:34:7" + }, + "returnParameters": { + "id": 4942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4941, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 4962, + "src": "2004:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4940, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2004:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2003:14:7" + }, + "scope": 4989, + "src": "1937:214:7", + "stateMutability": "nonpayable", + "superFunction": 6111, + "visibility": "public" + }, + { + "body": { + "id": 4977, + "nodeType": "Block", + "src": "2252:49:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4971, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4988, + "src": "2268:7:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 4973, + "indexExpression": { + "argumentTypes": null, + "id": 4972, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "2276:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2268:15:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4975, + "indexExpression": { + "argumentTypes": null, + "id": 4974, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "2284:8:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2268:25:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4970, + "id": 4976, + "nodeType": "Return", + "src": "2261:32:7" + } + ] + }, + "documentation": null, + "id": 4978, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4964, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 4978, + "src": "2178:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4963, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2178:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4966, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 4978, + "src": "2194:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4965, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2194:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2177:34:7" + }, + "returnParameters": { + "id": 4970, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4969, + "name": "remaining", + "nodeType": "VariableDeclaration", + "scope": 4978, + "src": "2233:17:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2233:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2232:19:7" + }, + "scope": 4989, + "src": "2159:142:7", + "stateMutability": "view", + "superFunction": 6120, + "visibility": "public" + }, + { + "constant": false, + "id": 4982, + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 4989, + "src": "2309:37:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 4981, + "keyType": { + "id": 4979, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2318:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2309:28:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 4980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2329:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4988, + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 4989, + "src": "2353:57:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 4987, + "keyType": { + "id": 4983, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2362:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2353:49:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 4986, + "keyType": { + "id": 4984, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2382:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2373:28:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 4985, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2393:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "scope": 4990, + "src": "406:2008:7" + } + ], + "src": "345:2071:7" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC20Token.sol", + "exportedSymbols": { + "ERC20Token": [ + 4989 + ] + }, + "id": 4990, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4808, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "345:32:7" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/Token.sol", + "file": "./Token.sol", + "id": 4809, + "nodeType": "ImportDirective", + "scope": 4990, + "sourceUnit": 6138, + "src": "381:21:7", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 4810, + "name": "Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6137, + "src": "429:5:7", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Token_$6137", + "typeString": "contract Token" + } + }, + "id": 4811, + "nodeType": "InheritanceSpecifier", + "src": "429:5:7" + } + ], + "contractDependencies": [ + 6137 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 4989, + "linearizedBaseContracts": [ + 4989, + 6137 + ], + "name": "ERC20Token", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 4857, + "nodeType": "Block", + "src": "521:604:7", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4825, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4820, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "875:8:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4823, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4821, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "884:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "884:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "875:20:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4824, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "899:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "875:30:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4826, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "909:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4827, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "918:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "909:10:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "875:44:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 4855, + "nodeType": "Block", + "src": "1101:17:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 4853, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1110:5:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 4819, + "id": 4854, + "nodeType": "Return", + "src": "1103:12:7" + } + ] + }, + "id": 4856, + "nodeType": "IfStatement", + "src": "871:247:7", + "trueBody": { + "id": 4852, + "nodeType": "Block", + "src": "921:174:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4830, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "936:8:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4833, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4831, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "945:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "945:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "936:20:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 4834, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "960:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "936:30:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4836, + "nodeType": "ExpressionStatement", + "src": "936:30:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 4841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4837, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "981:8:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4839, + "indexExpression": { + "argumentTypes": null, + "id": 4838, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4813, + "src": "990:3:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "981:13:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "id": 4840, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "998:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "981:23:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4842, + "nodeType": "ExpressionStatement", + "src": "981:23:7" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4844, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "1033:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1033:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 4846, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4813, + "src": "1045:3:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4847, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4815, + "src": "1050:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4843, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6128, + "src": "1024:8:7", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 4848, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1024:33:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4849, + "nodeType": "EmitStatement", + "src": "1019:38:7" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 4850, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1079:4:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 4819, + "id": 4851, + "nodeType": "Return", + "src": "1072:11:7" + } + ] + } + } + ] + }, + "documentation": null, + "id": 4858, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4813, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 4858, + "src": "462:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4812, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "462:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4815, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 4858, + "src": "475:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "475:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "461:29:7" + }, + "returnParameters": { + "id": 4819, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4818, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 4858, + "src": "507:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4817, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "507:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "506:14:7" + }, + "scope": 4989, + "src": "444:681:7", + "stateMutability": "nonpayable", + "superFunction": 6091, + "visibility": "public" + }, + { + "body": { + "id": 4921, + "nodeType": "Block", + "src": "1229:577:7", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 4882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4869, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "1480:8:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4871, + "indexExpression": { + "argumentTypes": null, + "id": 4870, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "1489:5:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1480:15:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4872, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4864, + "src": "1499:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1480:25:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4874, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4988, + "src": "1509:7:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 4876, + "indexExpression": { + "argumentTypes": null, + "id": 4875, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "1517:5:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1509:14:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4879, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4877, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "1524:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1524:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1509:26:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4880, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4864, + "src": "1539:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1509:36:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1480:65:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4883, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4864, + "src": "1549:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1558:1:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1549:10:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1480:79:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 4919, + "nodeType": "Block", + "src": "1782:17:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 4917, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1791:5:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 4868, + "id": 4918, + "nodeType": "Return", + "src": "1784:12:7" + } + ] + }, + "id": 4920, + "nodeType": "IfStatement", + "src": "1476:323:7", + "trueBody": { + "id": 4916, + "nodeType": "Block", + "src": "1561:215:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4887, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "1576:8:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4889, + "indexExpression": { + "argumentTypes": null, + "id": 4888, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4862, + "src": "1585:3:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1576:13:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "id": 4890, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4864, + "src": "1593:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1576:23:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4892, + "nodeType": "ExpressionStatement", + "src": "1576:23:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 4897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4893, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "1614:8:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4895, + "indexExpression": { + "argumentTypes": null, + "id": 4894, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "1623:5:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1614:15:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 4896, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4864, + "src": "1633:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1614:25:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4898, + "nodeType": "ExpressionStatement", + "src": "1614:25:7" + }, + { + "expression": { + "argumentTypes": null, + "id": 4906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4899, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4988, + "src": "1654:7:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 4903, + "indexExpression": { + "argumentTypes": null, + "id": 4900, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "1662:5:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1654:14:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4904, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4901, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "1669:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1669:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1654:26:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 4905, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4864, + "src": "1684:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1654:36:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4907, + "nodeType": "ExpressionStatement", + "src": "1654:36:7" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4909, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4860, + "src": "1719:5:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4910, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4862, + "src": "1726:3:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4911, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4864, + "src": "1731:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4908, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6128, + "src": "1710:8:7", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 4912, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1710:28:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4913, + "nodeType": "EmitStatement", + "src": "1705:33:7" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 4914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1760:4:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 4868, + "id": 4915, + "nodeType": "Return", + "src": "1753:11:7" + } + ] + } + } + ] + }, + "documentation": null, + "id": 4922, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4865, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4860, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 4922, + "src": "1155:13:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4859, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1155:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4862, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 4922, + "src": "1170:11:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4861, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1170:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4864, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 4922, + "src": "1183:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4863, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1183:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1154:44:7" + }, + "returnParameters": { + "id": 4868, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4867, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 4922, + "src": "1215:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4866, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1215:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1214:14:7" + }, + "scope": 4989, + "src": "1133:673:7", + "stateMutability": "nonpayable", + "superFunction": 6102, + "visibility": "public" + }, + { + "body": { + "id": 4933, + "nodeType": "Block", + "src": "1887:42:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4929, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "1905:8:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4931, + "indexExpression": { + "argumentTypes": null, + "id": 4930, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4924, + "src": "1914:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1905:16:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4928, + "id": 4932, + "nodeType": "Return", + "src": "1898:23:7" + } + ] + }, + "documentation": null, + "id": 4934, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4925, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4924, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 4934, + "src": "1833:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4923, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1833:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1832:16:7" + }, + "returnParameters": { + "id": 4928, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4927, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 4934, + "src": "1870:15:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4926, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1870:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1869:17:7" + }, + "scope": 4989, + "src": "1814:115:7", + "stateMutability": "view", + "superFunction": 6082, + "visibility": "public" + }, + { + "body": { + "id": 4961, + "nodeType": "Block", + "src": "2018:133:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4943, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4988, + "src": "2029:7:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 4947, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4944, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "2037:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2037:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2029:19:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4948, + "indexExpression": { + "argumentTypes": null, + "id": 4946, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4936, + "src": "2049:8:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2029:29:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4949, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4938, + "src": "2061:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2029:38:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4951, + "nodeType": "ExpressionStatement", + "src": "2029:38:7" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4953, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "2092:3:7", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 4954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2092:10:7", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 4955, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4936, + "src": "2104:8:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4956, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4938, + "src": "2114:6:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4952, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6136, + "src": "2083:8:7", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 4957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2083:38:7", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4958, + "nodeType": "EmitStatement", + "src": "2078:43:7" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 4959, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2139:4:7", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 4942, + "id": 4960, + "nodeType": "Return", + "src": "2132:11:7" + } + ] + }, + "documentation": null, + "id": 4962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4939, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4936, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 4962, + "src": "1954:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4935, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1954:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4938, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 4962, + "src": "1972:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4937, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1972:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1953:34:7" + }, + "returnParameters": { + "id": 4942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4941, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 4962, + "src": "2004:12:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4940, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2004:4:7", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2003:14:7" + }, + "scope": 4989, + "src": "1937:214:7", + "stateMutability": "nonpayable", + "superFunction": 6111, + "visibility": "public" + }, + { + "body": { + "id": 4977, + "nodeType": "Block", + "src": "2252:49:7", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4971, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4988, + "src": "2268:7:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 4973, + "indexExpression": { + "argumentTypes": null, + "id": 4972, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4964, + "src": "2276:6:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2268:15:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 4975, + "indexExpression": { + "argumentTypes": null, + "id": 4974, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4966, + "src": "2284:8:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2268:25:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 4970, + "id": 4976, + "nodeType": "Return", + "src": "2261:32:7" + } + ] + }, + "documentation": null, + "id": 4978, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4967, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4964, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 4978, + "src": "2178:14:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4963, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2178:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4966, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 4978, + "src": "2194:16:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4965, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2194:7:7", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2177:34:7" + }, + "returnParameters": { + "id": 4970, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4969, + "name": "remaining", + "nodeType": "VariableDeclaration", + "scope": 4978, + "src": "2233:17:7", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4968, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2233:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2232:19:7" + }, + "scope": 4989, + "src": "2159:142:7", + "stateMutability": "view", + "superFunction": 6120, + "visibility": "public" + }, + { + "constant": false, + "id": 4982, + "name": "balances", + "nodeType": "VariableDeclaration", + "scope": 4989, + "src": "2309:37:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 4981, + "keyType": { + "id": 4979, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2318:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2309:28:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 4980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2329:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4988, + "name": "allowed", + "nodeType": "VariableDeclaration", + "scope": 4989, + "src": "2353:57:7", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "typeName": { + "id": 4987, + "keyType": { + "id": 4983, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2362:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2353:49:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + }, + "valueType": { + "id": 4986, + "keyType": { + "id": 4984, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2382:7:7", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2373:28:7", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 4985, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2393:7:7", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "scope": 4990, + "src": "406:2008:7" + } + ], + "src": "345:2071:7" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:19.934Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/contracts/ERC721Basic.json b/src/contracts/ERC721Basic.json new file mode 100644 index 0000000..40d8cfe --- /dev/null +++ b/src/contracts/ERC721Basic.json @@ -0,0 +1,21486 @@ +{ + "contractName": "ERC721Basic", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_from", + "type": "address" + }, + { + "indexed": false, + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "name": "_approved", + "type": "address" + }, + { + "indexed": false, + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "name": "_operator", + "type": "address" + }, + { + "indexed": false, + "name": "_approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "_balance", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "exists", + "outputs": [ + { + "name": "_exists", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "name": "_operator", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_operator", + "type": "address" + }, + { + "name": "_approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_tokenId", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"_interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"_operator\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"exists\",\"outputs\":[{\"name\":\"_exists\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"_balance\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\\r\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Interface identification is specified in ERC-165. This function\\r uses less than 30,000 gas.\\r\",\"params\":{\"_interfaceId\":\"The interface identifier, as specified in ERC-165\\r\"}}},\"title\":\"ERC721 Non-Fungible Token Standard basic interface\\r\"},\"userdoc\":{\"methods\":{\"supportsInterface(bytes4)\":{\"notice\":\"Query if a contract implements an interface\\r\"}}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":\"ERC721Basic\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":{\"keccak256\":\"0x4dd046a190602871aa9743a94149789c1e14b14f609c68d0f34d72e19bd690ce\",\"urls\":[\"bzzr://ea591dfb88f3591fe4344b7e665024c5aa3e8fb758a0409db79b1885a996b825\",\"dweb:/ipfs/QmXrwJ2TTXMWHBQxuLCqrj96gfh5HCHK57JsCEcXJ84t6z\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity >=0.5.0 < 0.6.0;\r\nimport '../../dao/oz/SafeMath.sol';\r\n\r\n/**\r\n * @title SafeMath\r\n * @dev Math operations with safety checks that throw on error\r\n */\r\n//library SafeMath {\r\n//\r\n// /**\r\n// * @dev Multiplies two numbers, throws on overflow.\r\n// */\r\n// function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// // Gas optimization: this is cheaper than asserting 'a' not being zero, but the\r\n// // benefit is lost if 'b' is also tested.\r\n// // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\r\n// if (a == 0) {\r\n// return 0;\r\n// }\r\n//\r\n// c = a * b;\r\n// assert(c / a == b);\r\n// return c;\r\n// }\r\n//\r\n// /**\r\n// * @dev Integer division of two numbers, truncating the quotient.\r\n// */\r\n// function div(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// // assert(b > 0); // Solidity automatically throws when dividing by 0\r\n// // uint256 c = a / b;\r\n// // assert(a == b * c + a % b); // There is no case in which this doesn't hold\r\n// return a / b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).\r\n// */\r\n// function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// assert(b <= a);\r\n// return a - b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Adds two numbers, throws on overflow.\r\n// */\r\n// function add(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// c = a + b;\r\n// assert(c >= a);\r\n// return c;\r\n// }\r\n//}\r\n\r\n/**\r\n * Utility library of inline functions on addresses\r\n */\r\nlibrary AddressUtils {\r\n\r\n /**\r\n * Returns whether the target address is a contract\r\n * @dev This function will return false if invoked during the constructor of a contract,\r\n * as the code is not actually created until after the constructor finishes.\r\n * @param addr address to check\r\n * @return whether the target address is a contract\r\n */\r\n function isContract(address addr) internal view returns (bool) {\r\n uint256 size;\r\n // XXX Currently there is no better way to check if there is a contract in an address\r\n // than to check the size of the code at that address.\r\n // See https://ethereum.stackexchange.com/a/14016/36603\r\n // for more details about how this works.\r\n // TODO Check this again before the Serenity release, because all addresses will be\r\n // contracts then.\r\n // solium-disable-next-line security/no-inline-assembly\r\n assembly { size := extcodesize(addr) }\r\n return size > 0;\r\n }\r\n\r\n}\r\n\r\n/**\r\n * @title ERC165\r\n * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r\n */\r\ninterface ERC165 {\r\n\r\n /**\r\n * @notice Query if a contract implements an interface\r\n * @param _interfaceId The interface identifier, as specified in ERC-165\r\n * @dev Interface identification is specified in ERC-165. This function\r\n * uses less than 30,000 gas.\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool);\r\n}\r\n\r\n\r\n/**\r\n * @title SupportsInterfaceWithLookup\r\n * @author Matt Condon (@shrugs)\r\n * @dev Implements ERC165 using a lookup table.\r\n */\r\ncontract SupportsInterfaceWithLookup is ERC165 {\r\n bytes4 public constant InterfaceId_ERC165 = 0x01ffc9a7;\r\n /**\r\n * 0x01ffc9a7 ===\r\n * bytes4(keccak256('supportsInterface(bytes4)'))\r\n */\r\n\r\n /**\r\n * @dev a mapping of interface id to whether or not it's supported\r\n */\r\n mapping(bytes4 => bool) internal supportedInterfaces;\r\n\r\n /**\r\n * @dev A contract implementing SupportsInterfaceWithLookup\r\n * implement ERC165 itself\r\n */\r\n constructor()\r\n public\r\n {\r\n _registerInterface(InterfaceId_ERC165);\r\n }\r\n\r\n /**\r\n * @dev implement supportsInterface(bytes4) using a lookup table\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool)\r\n {\r\n return supportedInterfaces[_interfaceId];\r\n }\r\n\r\n /**\r\n * @dev private method for registering an interface\r\n */\r\n function _registerInterface(bytes4 _interfaceId)\r\n internal\r\n {\r\n require(_interfaceId != 0xffffffff);\r\n supportedInterfaces[_interfaceId] = true;\r\n }\r\n}\r\n\r\n/**\r\n * @title ERC721 token receiver interface\r\n * @dev Interface for any contract that wants to support safeTransfers\r\n * from ERC721 asset contracts.\r\n */\r\ncontract ERC721Receiver {\r\n /**\r\n * @dev Magic value to be returned upon successful reception of an NFT\r\n * Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`,\r\n * which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n */\r\n bytes4 internal constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n /**\r\n * @notice Handle the receipt of an NFT\r\n * @dev The ERC721 smart contract calls this function on the recipient\r\n * after a `safetransfer`. This function MAY throw to revert and reject the\r\n * transfer. This function MUST use 50,000 gas or less. Return of other\r\n * than the magic value MUST result in the transaction being reverted.\r\n * Note: the contract address is always the message sender.\r\n * @param _from The sending address\r\n * @param _tokenId The NFT identifier which is being transfered\r\n * @param _data Additional data with no specified format\r\n * @return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n */\r\n function onERC721Received(\r\n address _from,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n returns(bytes4);\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic interface\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721Basic is ERC165 {\r\n event Transfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n );\r\n event Approval(\r\n address _owner,\r\n address _approved,\r\n uint256 _tokenId\r\n );\r\n event ApprovalForAll(\r\n address _owner,\r\n address _operator,\r\n bool _approved\r\n );\r\n\r\n function balanceOf(address _owner) public view returns (uint256 _balance);\r\n function ownerOf(uint256 _tokenId) public view returns (address _owner);\r\n function exists(uint256 _tokenId) public view returns (bool _exists);\r\n\r\n function approve(address _to, uint256 _tokenId) public;\r\n function getApproved(uint256 _tokenId)\r\n public view returns (address _operator);\r\n\r\n function setApprovalForAll(address _operator, bool _approved) public;\r\n function isApprovedForAll(address _owner, address _operator)\r\n public view returns (bool);\r\n\r\n function transferFrom(address _from, address _to, uint256 _tokenId) public;\r\n function safeTransferFrom(address _from, address _to, uint256 _tokenId)\r\n public;\r\n\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public;\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic implementation\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721BasicToken is SupportsInterfaceWithLookup, ERC721Basic {\r\n\r\n bytes4 private constant InterfaceId_ERC721 = 0x80ac58cd;\r\n /*\r\n * 0x80ac58cd ===\r\n * bytes4(keccak256('balanceOf(address)')) ^\r\n * bytes4(keccak256('ownerOf(uint256)')) ^\r\n * bytes4(keccak256('approve(address,uint256)')) ^\r\n * bytes4(keccak256('getApproved(uint256)')) ^\r\n * bytes4(keccak256('setApprovalForAll(address,bool)')) ^\r\n * bytes4(keccak256('isApprovedForAll(address,address)')) ^\r\n * bytes4(keccak256('transferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)'))\r\n */\r\n\r\n bytes4 private constant InterfaceId_ERC721Exists = 0x4f558e79;\r\n /*\r\n * 0x4f558e79 ===\r\n * bytes4(keccak256('exists(uint256)'))\r\n */\r\n\r\n using SafeMath for uint256;\r\n using AddressUtils for address;\r\n\r\n // Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n // which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n bytes4 private constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n // Mapping from token ID to owner\r\n mapping (uint256 => address) internal tokenOwner;\r\n\r\n // Mapping from token ID to approved address\r\n mapping (uint256 => address) internal tokenApprovals;\r\n\r\n // Mapping from owner to number of owned token\r\n mapping (address => uint256) internal ownedTokensCount;\r\n\r\n // Mapping from owner to operator approvals\r\n mapping (address => mapping (address => bool)) internal operatorApprovals;\r\n\r\n\r\n uint public testint;\r\n /**\r\n * @dev Guarantees msg.sender is owner of the given token\r\n * @param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r\n */\r\n modifier onlyOwnerOf(uint256 _tokenId) {\r\n require(ownerOf(_tokenId) == msg.sender);\r\n _;\r\n }\r\n\r\n /**\r\n * @dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n * @param _tokenId uint256 ID of the token to validate\r\n */\r\n modifier canTransfer(uint256 _tokenId) {\r\n require(isApprovedOrOwner(msg.sender, _tokenId));\r\n _;\r\n }\r\n\r\n constructor()\r\n public\r\n {\r\n // register the supported interfaces to conform to ERC721 via ERC165\r\n _registerInterface(InterfaceId_ERC721);\r\n _registerInterface(InterfaceId_ERC721Exists);\r\n }\r\n\r\n /**\r\n * @dev Gets the balance of the specified address\r\n * @param _owner address to query the balance of\r\n * @return uint256 representing the amount owned by the passed address\r\n */\r\n function balanceOf(address _owner) public view returns (uint256) {\r\n require(_owner != address(0));\r\n return ownedTokensCount[_owner];\r\n }\r\n\r\n /**\r\n * @dev Gets the owner of the specified token ID\r\n * @param _tokenId uint256 ID of the token to query the owner of\r\n * @return owner address currently marked as the owner of the given token ID\r\n */\r\n function ownerOf(uint256 _tokenId) public view returns (address) {\r\n address owner = tokenOwner[_tokenId];\r\n require(owner != address(0));\r\n return owner;\r\n }\r\n\r\n /**\r\n * @dev Returns whether the specified token exists\r\n * @param _tokenId uint256 ID of the token to query the existence of\r\n * @return whether the token exists\r\n */\r\n function exists(uint256 _tokenId) public view returns (bool) {\r\n address owner = tokenOwner[_tokenId];\r\n return owner != address(0);\r\n }\r\n\r\n /**\r\n * @dev Approves another address to transfer the given token ID\r\n * The zero address indicates there is no approved address.\r\n * There can only be one approved address per token at a given time.\r\n * Can only be called by the token owner or an approved operator.\r\n * @param _to address to be approved for the given token ID\r\n * @param _tokenId uint256 ID of the token to be approved\r\n */\r\n function approve(address _to, uint256 _tokenId) public {\r\n address owner = ownerOf(_tokenId);\r\n require(_to != owner);\r\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender));\r\n\r\n tokenApprovals[_tokenId] = _to;\r\n emit Approval(owner, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Gets the approved address for a token ID, or zero if no address set\r\n * @param _tokenId uint256 ID of the token to query the approval of\r\n * @return address currently approved for the given token ID\r\n */\r\n function getApproved(uint256 _tokenId) public view returns (address) {\r\n return tokenApprovals[_tokenId];\r\n }\r\n\r\n /**\r\n * @dev Sets or unsets the approval of a given operator\r\n * An operator is allowed to transfer all tokens of the sender on their behalf\r\n * @param _to operator address to set the approval\r\n * @param _approved representing the status of the approval to be set\r\n */\r\n function setApprovalForAll(address _to, bool _approved) public {\r\n require(_to != msg.sender);\r\n operatorApprovals[msg.sender][_to] = _approved;\r\n emit ApprovalForAll(msg.sender, _to, _approved);\r\n }\r\n\r\n /**\r\n * @dev Tells whether an operator is approved by a given owner\r\n * @param _owner owner address which you want to query the approval of\r\n * @param _operator operator address which you want to query the approval of\r\n * @return bool whether the given operator is approved by the given owner\r\n */\r\n function isApprovedForAll(\r\n address _owner,\r\n address _operator\r\n )\r\n public\r\n view\r\n returns (bool)\r\n {\r\n return operatorApprovals[_owner][_operator];\r\n }\r\n\r\n /**\r\n * @dev Transfers the ownership of a given token ID to another address\r\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function transferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n require(_from != address(0));\r\n require(_to != address(0));\r\n\r\n clearApproval(_from, _tokenId);\r\n removeTokenFrom(_from, _tokenId);\r\n addTokenTo(_to, _tokenId);\r\n\r\n emit Transfer(_from, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n *\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n // solium-disable-next-line arg-overflow\r\n safeTransferFrom(_from, _to, _tokenId, \"\");\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes data to send along with a safe transfer check\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n transferFrom(_from, _to, _tokenId);\r\n // solium-disable-next-line arg-overflow\r\n require(checkAndCallSafeTransfer(_from, _to, _tokenId, _data));\r\n }\r\n\r\n /**\r\n * @dev Returns whether the given spender can transfer a given token ID\r\n * @param _spender address of the spender to query\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @return bool whether the msg.sender is approved for the given token ID,\r\n * is an operator of the owner, or is the owner of the token\r\n */\r\n function isApprovedOrOwner(\r\n address _spender,\r\n uint256 _tokenId\r\n )\r\n internal\r\n view\r\n returns (bool)\r\n {\r\n address owner = ownerOf(_tokenId);\r\n // Disable solium check because of\r\n // https://github.com/duaraghav8/Solium/issues/175\r\n // solium-disable-next-line operator-whitespace\r\n return (\r\n _spender == owner ||\r\n getApproved(_tokenId) == _spender ||\r\n isApprovedForAll(owner, _spender)\r\n );\r\n }\r\n\r\n /**\r\n * @dev Internal function to mint a new token\r\n * Reverts if the given token ID already exists\r\n * @param _to The address that will own the minted token\r\n * @param _tokenId uint256 ID of the token to be minted by the msg.sender\r\n */\r\n function _mint(address _to, uint256 _tokenId) internal {\r\n require(_to != address(0));\r\n addTokenTo(_to, _tokenId);\r\n emit Transfer(address(0), _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to burn a specific token\r\n * Reverts if the token does not exist\r\n * @param _tokenId uint256 ID of the token being burned by the msg.sender\r\n */\r\n function _burn(address _owner, uint256 _tokenId) internal {\r\n clearApproval(_owner, _tokenId);\r\n removeTokenFrom(_owner, _tokenId);\r\n emit Transfer(_owner, address(0), _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to clear current approval of a given token ID\r\n * Reverts if the given address is not indeed the owner of the token\r\n * @param _owner owner of the token\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function clearApproval(address _owner, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _owner);\r\n if (tokenApprovals[_tokenId] != address(0)) {\r\n tokenApprovals[_tokenId] = address(0);\r\n }\r\n }\r\n\r\n /**\r\n * @dev Internal function to add a token ID to the list of a given address\r\n * @param _to address representing the new owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r\n */\r\n function addTokenTo(address _to, uint256 _tokenId) internal {\r\n require(tokenOwner[_tokenId] == address(0));\r\n tokenOwner[_tokenId] = _to;\r\n ownedTokensCount[_to] = ownedTokensCount[_to].add(1);\r\n }\r\n\r\n /**\r\n * @dev Internal function to remove a token ID from the list of a given address\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r\n */\r\n function removeTokenFrom(address _from, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _from);\r\n ownedTokensCount[_from] = ownedTokensCount[_from].sub(1);\r\n tokenOwner[_tokenId] = address(0);\r\n }\r\n\r\n /**\r\n * @dev Internal function to invoke `onERC721Received` on a target address\r\n * The call is not executed if the target address is not a contract\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _to target address that will receive the tokens\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes optional data to send along with the call\r\n * @return whether the call correctly returned the expected magic value\r\n */\r\n function checkAndCallSafeTransfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n internal\r\n returns (bool)\r\n {\r\n if (!_to.isContract()) {\r\n return true;\r\n }\r\n bytes4 retval = ERC721Receiver(_to).onERC721Received(\r\n _from, _tokenId, _data);\r\n return (retval == ERC721_RECEIVED);\r\n }\r\n}\r\n\r\ncontract ERC721BasicTokenMock is ERC721BasicToken {\r\n function mint(address _to, uint256 _tokenId) public {\r\n super._mint(_to, _tokenId);\r\n }\r\n\r\n function burn(uint256 _tokenId) public {\r\n super._burn(ownerOf(_tokenId), _tokenId);\r\n }\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\inherited\\ERC721Basic.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", + "exportedSymbols": { + "AddressUtils": [ + 5009 + ], + "ERC165": [ + 5017 + ], + "ERC721Basic": [ + 5187 + ], + "ERC721BasicToken": [ + 5764 + ], + "ERC721BasicTokenMock": [ + 5797 + ], + "ERC721Receiver": [ + 5080 + ], + "SupportsInterfaceWithLookup": [ + 5065 + ] + }, + "id": 5798, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4991, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:8" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "../../dao/oz/SafeMath.sol", + "id": 4992, + "nodeType": "ImportDirective", + "scope": 5798, + "sourceUnit": 9858, + "src": "34:35:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "Utility library of inline functions on addresses\r", + "fullyImplemented": true, + "id": 5009, + "linearizedBaseContracts": [ + 5009 + ], + "name": "AddressUtils", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5007, + "nodeType": "Block", + "src": "2012:524:8", + "statements": [ + { + "assignments": [ + 5000 + ], + "declarations": [ + { + "constant": false, + "id": 5000, + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 5007, + "src": "2019:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2019:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5001, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "2019:12:8" + }, + { + "externalReferences": [ + { + "size": { + "declaration": 5000, + "isOffset": false, + "isSlot": false, + "src": "2482:4:8", + "valueSize": 1 + } + }, + { + "addr": { + "declaration": 4994, + "isOffset": false, + "isSlot": false, + "src": "2502:4:8", + "valueSize": 1 + } + } + ], + "id": 5002, + "nodeType": "InlineAssembly", + "operations": "{ size := extcodesize(addr) }", + "src": "2471:38:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5003, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5000, + "src": "2522:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5004, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2529:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2522:8:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4998, + "id": 5006, + "nodeType": "Return", + "src": "2515:15:8" + } + ] + }, + "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", + "id": 5008, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4994, + "name": "addr", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "1969:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1969:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1968:14:8" + }, + "returnParameters": { + "id": 4998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4997, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "2006:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4996, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2006:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2005:6:8" + }, + "scope": 5009, + "src": "1949:587:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "1590:951:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", + "fullyImplemented": false, + "id": 5017, + "linearizedBaseContracts": [ + 5017 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", + "id": 5016, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5012, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5011, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "2950:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5010, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2950:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2949:21:8" + }, + "returnParameters": { + "id": 5015, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5014, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "3009:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5013, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3009:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3008:6:8" + }, + "scope": 5017, + "src": "2923:92:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 5798, + "src": "2643:375:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5018, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "3196:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5019, + "nodeType": "InheritanceSpecifier", + "src": "3196:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", + "fullyImplemented": true, + "id": 5065, + "linearizedBaseContracts": [ + 5065, + 5017 + ], + "name": "SupportsInterfaceWithLookup", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5022, + "name": "InterfaceId_ERC165", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3208:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5020, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3208:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783031666663396137", + "id": 5021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3252:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 5026, + "name": "supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3443:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 5025, + "keyType": { + "id": 5023, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3451:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "3443:23:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 5024, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3461:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 5033, + "nodeType": "Block", + "src": "3638:51:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5030, + "name": "InterfaceId_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5022, + "src": "3664:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5029, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "3645:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3645:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5032, + "nodeType": "ExpressionStatement", + "src": "3645:38:8" + } + ] + }, + "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", + "id": 5034, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5027, + "nodeType": "ParameterList", + "parameters": [], + "src": "3620:2:8" + }, + "returnParameters": { + "id": 5028, + "nodeType": "ParameterList", + "parameters": [], + "src": "3638:0:8" + }, + "scope": 5065, + "src": "3609:80:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5045, + "nodeType": "Block", + "src": "3872:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5041, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "3886:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5043, + "indexExpression": { + "argumentTypes": null, + "id": 5042, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5036, + "src": "3906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3886:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5040, + "id": 5044, + "nodeType": "Return", + "src": "3879:40:8" + } + ] + }, + "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", + "id": 5046, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5037, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5036, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3804:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5035, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3804:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3803:21:8" + }, + "returnParameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5039, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3863:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5038, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3863:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3862:6:8" + }, + "scope": 5065, + "src": "3777:148:8", + "stateMutability": "view", + "superFunction": 5016, + "visibility": "external" + }, + { + "body": { + "id": 5063, + "nodeType": "Block", + "src": "4066:95:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5052, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4081:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30786666666666666666", + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4097:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "4081:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5051, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4073:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4073:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5056, + "nodeType": "ExpressionStatement", + "src": "4073:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5057, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "4115:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5059, + "indexExpression": { + "argumentTypes": null, + "id": 5058, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4135:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4115:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4151:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4115:40:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5062, + "nodeType": "ExpressionStatement", + "src": "4115:40:8" + } + ] + }, + "documentation": "@dev private method for registering an interface\r", + "id": 5064, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5048, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5064, + "src": "4028:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5047, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4028:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4027:21:8" + }, + "returnParameters": { + "id": 5050, + "nodeType": "ParameterList", + "parameters": [], + "src": "4066:0:8" + }, + "scope": 5065, + "src": "4000:161:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "3156:1008:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", + "fullyImplemented": false, + "id": 5080, + "linearizedBaseContracts": [ + 5080 + ], + "name": "ERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5068, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5080, + "src": "4607:53:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5066, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4607:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4650:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "internal" + }, + { + "body": null, + "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", + "id": 5079, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5070, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5364:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5069, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5364:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5072, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5384:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5384:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5074, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5407:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5073, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5407:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5357:73:8" + }, + "returnParameters": { + "id": 5078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5077, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5456:6:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5076, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "5456:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5455:8:8" + }, + "scope": 5080, + "src": "5332:132:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "4326:1141:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5081, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "5641:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5082, + "nodeType": "InheritanceSpecifier", + "src": "5641:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": false, + "id": 5187, + "linearizedBaseContracts": [ + 5187, + 5017 + ], + "name": "ERC721Basic", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5090, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5084, + "indexed": false, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5674:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5083, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5674:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5086, + "indexed": false, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5695:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5695:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5088, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5714:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5087, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5714:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5667:69:8" + }, + "src": "5653:84:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5098, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5092, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5762:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5091, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5762:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5094, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5784:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5784:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5096, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5809:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5809:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5755:76:8" + }, + "src": "5741:91:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5106, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 5105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5100, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5863:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5099, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5863:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5102, + "indexed": false, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5885:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5101, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5885:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5104, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5910:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5103, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5910:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5856:73:8" + }, + "src": "5836:94:8" + }, + { + "body": null, + "documentation": null, + "id": 5113, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5109, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5108, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5955:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5955:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5954:16:8" + }, + "returnParameters": { + "id": 5112, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5111, + "name": "_balance", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5992:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5110, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5992:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5991:18:8" + }, + "scope": 5187, + "src": "5936:74:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5120, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5115, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6031:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6030:18:8" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5118, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6070:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6070:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6069:16:8" + }, + "scope": 5187, + "src": "6014:72:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5127, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5122, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6106:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5121, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6106:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6105:18:8" + }, + "returnParameters": { + "id": 5126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5125, + "name": "_exists", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6145:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5124, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6145:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6144:14:8" + }, + "scope": 5187, + "src": "6090:69:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5134, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5129, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6182:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6182:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5131, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6195:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6195:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6181:31:8" + }, + "returnParameters": { + "id": 5133, + "nodeType": "ParameterList", + "parameters": [], + "src": "6219:0:8" + }, + "scope": 5187, + "src": "6165:55:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5141, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5136, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6245:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6245:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6244:18:8" + }, + "returnParameters": { + "id": 5140, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5139, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6289:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6289:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6288:19:8" + }, + "scope": 5187, + "src": "6224:84:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5148, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5143, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6341:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6341:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5145, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6360:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5144, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6360:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6340:35:8" + }, + "returnParameters": { + "id": 5147, + "nodeType": "ParameterList", + "parameters": [], + "src": "6382:0:8" + }, + "scope": 5187, + "src": "6314:69:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5157, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5153, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5150, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6413:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5149, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6413:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5152, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6429:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5151, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6429:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6412:35:8" + }, + "returnParameters": { + "id": 5156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5155, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6474:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5154, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6474:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6473:6:8" + }, + "scope": 5187, + "src": "6387:93:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5166, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5164, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5159, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6508:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6508:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5161, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6523:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6523:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5163, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6536:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5162, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6536:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6507:46:8" + }, + "returnParameters": { + "id": 5165, + "nodeType": "ParameterList", + "parameters": [], + "src": "6560:0:8" + }, + "scope": 5187, + "src": "6486:75:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5175, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5173, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5168, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6591:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5167, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6591:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5170, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6606:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5169, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6606:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5172, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6619:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5171, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6619:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6590:46:8" + }, + "returnParameters": { + "id": 5174, + "nodeType": "ParameterList", + "parameters": [], + "src": "6648:0:8" + }, + "scope": 5187, + "src": "6565:84:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5186, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5184, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5177, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6687:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5176, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6687:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5179, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6707:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5178, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6707:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5181, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6725:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5180, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6725:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5183, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6748:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5182, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6748:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6680:91:8" + }, + "returnParameters": { + "id": 5185, + "nodeType": "ParameterList", + "parameters": [], + "src": "6783:0:8" + }, + "scope": 5187, + "src": "6655:129:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "5617:1170:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5188, + "name": "SupportsInterfaceWithLookup", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5065, + "src": "6971:27:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", + "typeString": "contract SupportsInterfaceWithLookup" + } + }, + "id": 5189, + "nodeType": "InheritanceSpecifier", + "src": "6971:27:8" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5190, + "name": "ERC721Basic", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5187, + "src": "7000:11:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Basic_$5187", + "typeString": "contract ERC721Basic" + } + }, + "id": 5191, + "nodeType": "InheritanceSpecifier", + "src": "7000:11:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": true, + "id": 5764, + "linearizedBaseContracts": [ + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5194, + "name": "InterfaceId_ERC721", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7019:55:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5192, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7019:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783830616335386364", + "id": 5193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7064:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 5197, + "name": "InterfaceId_ERC721Exists", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7668:61:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5195, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7668:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783466353538653739", + "id": 5196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7719:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1331007097_by_1", + "typeString": "int_const 1331007097" + }, + "value": "0x4f558e79" + }, + "visibility": "private" + }, + { + "id": 5200, + "libraryName": { + "contractScope": null, + "id": 5198, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "7821:8:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "7815:27:8", + "typeName": { + "id": 5199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7834:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5203, + "libraryName": { + "contractScope": null, + "id": 5201, + "name": "AddressUtils", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5009, + "src": "7852:12:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddressUtils_$5009", + "typeString": "library AddressUtils" + } + }, + "nodeType": "UsingForDirective", + "src": "7846:31:8", + "typeName": { + "id": 5202, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7869:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "constant": true, + "id": 5206, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8044:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5204, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8044:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8086:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 5210, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8140:48:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5209, + "keyType": { + "id": 5207, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8149:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8140:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5208, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8160:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5214, + "name": "tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8243:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5213, + "keyType": { + "id": 5211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8252:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8243:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8263:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5218, + "name": "ownedTokensCount", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8352:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5217, + "keyType": { + "id": 5215, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8361:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8352:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8372:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5224, + "name": "operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8460:73:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 5223, + "keyType": { + "id": 5219, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8469:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8460:46:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 5222, + "keyType": { + "id": 5220, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8489:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8480:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 5221, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8500:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5226, + "name": "testint", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8542:19:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5225, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 5240, + "nodeType": "Block", + "src": "8774:61:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5232, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5228, + "src": "8797:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5231, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "8789:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8789:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5234, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "8810:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8810:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8789:31:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5230, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "8781:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8781:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5238, + "nodeType": "ExpressionStatement", + "src": "8781:40:8" + }, + { + "id": 5239, + "nodeType": "PlaceholderStatement", + "src": "8828:1:8" + } + ] + }, + "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", + "id": 5241, + "name": "onlyOwnerOf", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5228, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5241, + "src": "8756:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5227, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8756:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8755:18:8" + }, + "src": "8735:100:8", + "visibility": "internal" + }, + { + "body": { + "id": 5254, + "nodeType": "Block", + "src": "9041:69:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5247, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "9074:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9074:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5249, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5243, + "src": "9086:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5246, + "name": "isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5567, + "src": "9056:17:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 5250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9056:39:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5245, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9048:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9048:48:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5252, + "nodeType": "ExpressionStatement", + "src": "9048:48:8" + }, + { + "id": 5253, + "nodeType": "PlaceholderStatement", + "src": "9103:1:8" + } + ] + }, + "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", + "id": 5255, + "name": "canTransfer", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5244, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5243, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5255, + "src": "9023:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5242, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9022:18:8" + }, + "src": "9002:108:8", + "visibility": "internal" + }, + { + "body": { + "id": 5266, + "nodeType": "Block", + "src": "9145:176:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5259, + "name": "InterfaceId_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "9245:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5258, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9226:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9226:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5261, + "nodeType": "ExpressionStatement", + "src": "9226:38:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5263, + "name": "InterfaceId_ERC721Exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5197, + "src": "9290:24:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5262, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9271:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9271:44:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5265, + "nodeType": "ExpressionStatement", + "src": "9271:44:8" + } + ] + }, + "documentation": null, + "id": 5267, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5256, + "nodeType": "ParameterList", + "parameters": [], + "src": "9127:2:8" + }, + "returnParameters": { + "id": 5257, + "nodeType": "ParameterList", + "parameters": [], + "src": "9145:0:8" + }, + "scope": 5764, + "src": "9116:205:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5286, + "nodeType": "Block", + "src": "9585:80:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5275, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9600:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5277, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9618:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9610:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9610:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "9600:20:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5274, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9592:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9592:29:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5281, + "nodeType": "ExpressionStatement", + "src": "9592:29:8" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5282, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "9635:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5284, + "indexExpression": { + "argumentTypes": null, + "id": 5283, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9652:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9635:24:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5273, + "id": 5285, + "nodeType": "Return", + "src": "9628:31:8" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", + "id": 5287, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5269, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9539:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9539:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9538:16:8" + }, + "returnParameters": { + "id": 5273, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5272, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9576:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5271, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9576:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9575:9:8" + }, + "scope": 5764, + "src": "9520:145:8", + "stateMutability": "view", + "superFunction": 5113, + "visibility": "public" + }, + { + "body": { + "id": 5310, + "nodeType": "Block", + "src": "9950:103:8", + "statements": [ + { + "assignments": [ + 5295 + ], + "declarations": [ + { + "constant": false, + "id": 5295, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5310, + "src": "9957:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5294, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9957:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5299, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5296, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "9973:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5298, + "indexExpression": { + "argumentTypes": null, + "id": 5297, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5289, + "src": "9984:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9973:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9957:36:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5301, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10008:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10025:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10017:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10017:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10008:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5300, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10000:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5307, + "nodeType": "ExpressionStatement", + "src": "10000:28:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5308, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10042:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5293, + "id": 5309, + "nodeType": "Return", + "src": "10035:12:8" + } + ] + }, + "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", + "id": 5311, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5289, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9902:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9902:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9901:18:8" + }, + "returnParameters": { + "id": 5293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5292, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9941:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9941:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9940:9:8" + }, + "scope": 5764, + "src": "9885:168:8", + "stateMutability": "view", + "superFunction": 5120, + "visibility": "public" + }, + { + "body": { + "id": 5330, + "nodeType": "Block", + "src": "10299:82:8", + "statements": [ + { + "assignments": [ + 5319 + ], + "declarations": [ + { + "constant": false, + "id": 5319, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5330, + "src": "10306:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5318, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10306:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5323, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5320, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "10322:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5322, + "indexExpression": { + "argumentTypes": null, + "id": 5321, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5313, + "src": "10333:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10322:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10306:36:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5324, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5319, + "src": "10356:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10373:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10365:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10365:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10356:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5317, + "id": 5329, + "nodeType": "Return", + "src": "10349:26:8" + } + ] + }, + "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", + "id": 5331, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5313, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10254:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10254:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10253:18:8" + }, + "returnParameters": { + "id": 5317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5316, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10293:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5315, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10293:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10292:6:8" + }, + "scope": 5764, + "src": "10238:143:8", + "stateMutability": "view", + "superFunction": 5127, + "visibility": "public" + }, + { + "body": { + "id": 5375, + "nodeType": "Block", + "src": "10851:229:8", + "statements": [ + { + "assignments": [ + 5339 + ], + "declarations": [ + { + "constant": false, + "id": 5339, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5375, + "src": "10858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5343, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5341, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "10882:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5340, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "10874:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10874:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10858:33:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5345, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "10906:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 5346, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10913:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5344, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10898:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10898:21:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5349, + "nodeType": "ExpressionStatement", + "src": "10898:21:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5351, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10934:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10934:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5353, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10948:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10934:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5356, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10974:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5357, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10981:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10981:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 5355, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "10957:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10957:35:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10934:58:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5350, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10926:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10926:67:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5362, + "nodeType": "ExpressionStatement", + "src": "10926:67:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5363, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11002:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5365, + "indexExpression": { + "argumentTypes": null, + "id": 5364, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11017:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11002:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5366, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11029:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11002:30:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5368, + "nodeType": "ExpressionStatement", + "src": "11002:30:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5370, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "11053:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5371, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11060:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5372, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11065:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5369, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5098, + "src": "11044:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11044:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5374, + "nodeType": "EmitStatement", + "src": "11039:35:8" + } + ] + }, + "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", + "id": 5376, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5336, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5333, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10813:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10813:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5335, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10826:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5334, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10826:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10812:31:8" + }, + "returnParameters": { + "id": 5337, + "nodeType": "ParameterList", + "parameters": [], + "src": "10851:0:8" + }, + "scope": 5764, + "src": "10796:284:8", + "stateMutability": "nonpayable", + "superFunction": 5134, + "visibility": "public" + }, + { + "body": { + "id": 5387, + "nodeType": "Block", + "src": "11383:44:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5383, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11397:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5385, + "indexExpression": { + "argumentTypes": null, + "id": 5384, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5378, + "src": "11412:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11397:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5382, + "id": 5386, + "nodeType": "Return", + "src": "11390:31:8" + } + ] + }, + "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", + "id": 5388, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5378, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11335:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5377, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11335:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11334:18:8" + }, + "returnParameters": { + "id": 5382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5381, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11374:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11374:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11373:9:8" + }, + "scope": 5764, + "src": "11314:113:8", + "stateMutability": "view", + "superFunction": 5141, + "visibility": "public" + }, + { + "body": { + "id": 5418, + "nodeType": "Block", + "src": "11778:146:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5396, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11793:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5397, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11800:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11800:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "11793:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5395, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "11785:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11785:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "11785:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5402, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "11818:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5406, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5403, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11836:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11836:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11818:29:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5407, + "indexExpression": { + "argumentTypes": null, + "id": 5405, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11848:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11818:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11855:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11818:46:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5410, + "nodeType": "ExpressionStatement", + "src": "11818:46:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5412, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11891:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11891:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5414, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11903:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5415, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11908:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5411, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5106, + "src": "11876:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 5416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11876:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5417, + "nodeType": "EmitStatement", + "src": "11871:47:8" + } + ] + }, + "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", + "id": 5419, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5390, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11742:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11742:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5392, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11755:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11755:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11741:29:8" + }, + "returnParameters": { + "id": 5394, + "nodeType": "ParameterList", + "parameters": [], + "src": "11778:0:8" + }, + "scope": 5764, + "src": "11715:209:8", + "stateMutability": "nonpayable", + "superFunction": 5148, + "visibility": "public" + }, + { + "body": { + "id": 5434, + "nodeType": "Block", + "src": "12362:56:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5428, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "12376:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5430, + "indexExpression": { + "argumentTypes": null, + "id": 5429, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5421, + "src": "12394:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5432, + "indexExpression": { + "argumentTypes": null, + "id": 5431, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "12402:9:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:36:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5427, + "id": 5433, + "nodeType": "Return", + "src": "12369:43:8" + } + ] + }, + "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", + "id": 5435, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5421, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12273:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5420, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12273:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5423, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12294:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5422, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12294:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12266:50:8" + }, + "returnParameters": { + "id": 5427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5426, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12353:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5425, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12353:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12352:6:8" + }, + "scope": 5764, + "src": "12241:177:8", + "stateMutability": "view", + "superFunction": 5157, + "visibility": "public" + }, + { + "body": { + "id": 5484, + "nodeType": "Block", + "src": "12976:228:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5448, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "12991:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13008:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13000:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "12991:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5447, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "12983:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12983:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5454, + "nodeType": "ExpressionStatement", + "src": "12983:28:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5456, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13026:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13041:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13033:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13033:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13026:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5455, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "13018:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13018:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5462, + "nodeType": "ExpressionStatement", + "src": "13018:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5464, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13067:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5465, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13074:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5463, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "13053:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13053:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5467, + "nodeType": "ExpressionStatement", + "src": "13053:30:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5469, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13106:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5470, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13113:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5468, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "13090:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13090:32:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5472, + "nodeType": "ExpressionStatement", + "src": "13090:32:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5474, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13140:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5475, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13145:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5473, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "13129:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13129:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5477, + "nodeType": "ExpressionStatement", + "src": "13129:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5479, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13177:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5480, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13184:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5481, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13189:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5478, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "13168:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13168:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5483, + "nodeType": "EmitStatement", + "src": "13163:35:8" + } + ] + }, + "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5485, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5444, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "12963:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5445, + "modifierName": { + "argumentTypes": null, + "id": 5443, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "12951:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12951:21:8" + } + ], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5442, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5437, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12874:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5436, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12874:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5439, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12894:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12894:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5441, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12912:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5440, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12912:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12867:66:8" + }, + "returnParameters": { + "id": 5446, + "nodeType": "ParameterList", + "parameters": [], + "src": "12976:0:8" + }, + "scope": 5764, + "src": "12846:358:8", + "stateMutability": "nonpayable", + "superFunction": 5166, + "visibility": "public" + }, + { + "body": { + "id": 5504, + "nodeType": "Block", + "src": "13960:101:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5498, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5487, + "src": "14030:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5499, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5489, + "src": "14037:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5500, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "14042:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 5501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14052:2:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 5497, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5505, + 5535 + ], + "referencedDeclaration": 5535, + "src": "14013:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 5502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14013:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5503, + "nodeType": "ExpressionStatement", + "src": "14013:42:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5505, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5494, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "13947:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5495, + "modifierName": { + "argumentTypes": null, + "id": 5493, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "13935:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "13935:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5487, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5486, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5489, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13878:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13878:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5491, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13896:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13896:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13851:66:8" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [], + "src": "13960:0:8" + }, + "scope": 5764, + "src": "13826:235:8", + "stateMutability": "nonpayable", + "superFunction": 5175, + "visibility": "public" + }, + { + "body": { + "id": 5534, + "nodeType": "Block", + "src": "14908:162:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5520, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "14928:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5521, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "14935:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5522, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14940:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5519, + "name": "transferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5485 + ], + "referencedDeclaration": 5485, + "src": "14915:12:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14915:34:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5524, + "nodeType": "ExpressionStatement", + "src": "14915:34:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5527, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "15035:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5528, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "15042:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5529, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "15047:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5530, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5513, + "src": "15057:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5526, + "name": "checkAndCallSafeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5763, + "src": "15010:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 5531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15010:53:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5525, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "15002:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15002:62:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5533, + "nodeType": "ExpressionStatement", + "src": "15002:62:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", + "id": 5535, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5516, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14895:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5517, + "modifierName": { + "argumentTypes": null, + "id": 5515, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "14883:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "14883:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5514, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5507, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14781:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14781:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5509, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14801:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14801:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5511, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14819:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14819:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5513, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14842:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5512, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14842:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14774:91:8" + }, + "returnParameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [], + "src": "14908:0:8" + }, + "scope": 5764, + "src": "14749:321:8", + "stateMutability": "nonpayable", + "superFunction": 5186, + "visibility": "public" + }, + { + "body": { + "id": 5566, + "nodeType": "Block", + "src": "15551:330:8", + "statements": [ + { + "assignments": [ + 5545 + ], + "declarations": [ + { + "constant": false, + "id": 5545, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5566, + "src": "15558:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15558:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5549, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5547, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15582:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5546, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "15574:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15574:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15558:33:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5550, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15763:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5551, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15775:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15763:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5554, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15803:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5553, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5388 + ], + "referencedDeclaration": 5388, + "src": "15791:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15791:21:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5556, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15816:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15791:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:61:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5560, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15852:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5561, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15859:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5559, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "15835:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15835:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:105:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5564, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15754:121:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5543, + "id": 5565, + "nodeType": "Return", + "src": "15747:128:8" + } + ] + }, + "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", + "id": 5567, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5540, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5537, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15459:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5536, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15459:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5539, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15482:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5538, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15482:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15452:51:8" + }, + "returnParameters": { + "id": 5543, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5542, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15542:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5541, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15541:6:8" + }, + "scope": 5764, + "src": "15426:455:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5595, + "nodeType": "Block", + "src": "16193:118:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5575, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16208:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16223:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16215:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16215:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "16208:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5574, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "16200:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16200:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5581, + "nodeType": "ExpressionStatement", + "src": "16200:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5583, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16244:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5584, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16249:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5582, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "16233:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16233:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5586, + "nodeType": "ExpressionStatement", + "src": "16233:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16287:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16279:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16279:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5591, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16291:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5592, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16296:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5587, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16270:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16270:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5594, + "nodeType": "EmitStatement", + "src": "16265:40:8" + } + ] + }, + "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", + "id": 5596, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5569, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16153:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5568, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16153:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5571, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16166:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5570, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16166:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16152:31:8" + }, + "returnParameters": { + "id": 5573, + "nodeType": "ParameterList", + "parameters": [], + "src": "16193:0:8" + }, + "scope": 5764, + "src": "16138:173:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5621, + "nodeType": "Block", + "src": "16562:134:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5604, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16583:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5605, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16591:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5603, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "16569:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16569:31:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5607, + "nodeType": "ExpressionStatement", + "src": "16569:31:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5609, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16623:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5610, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16631:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5608, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "16607:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16607:33:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5612, + "nodeType": "ExpressionStatement", + "src": "16607:33:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5614, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16661:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16677:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16669:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16669:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5618, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16681:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5613, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16652:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16652:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5620, + "nodeType": "EmitStatement", + "src": "16647:43:8" + } + ] + }, + "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", + "id": 5622, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5598, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16519:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16519:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5600, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16535:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5599, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16535:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16518:34:8" + }, + "returnParameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [], + "src": "16562:0:8" + }, + "scope": 5764, + "src": "16504:192:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5654, + "nodeType": "Block", + "src": "17032:153:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5631, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17055:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5630, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "17047:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17047:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5633, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5624, + "src": "17068:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17047:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5629, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17039:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17039:36:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5636, + "nodeType": "ExpressionStatement", + "src": "17039:36:8" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5637, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17086:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5639, + "indexExpression": { + "argumentTypes": null, + "id": 5638, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17101:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17086:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17122:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17114:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17114:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17086:38:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5653, + "nodeType": "IfStatement", + "src": "17082:98:8", + "trueBody": { + "id": 5652, + "nodeType": "Block", + "src": "17126:54:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5644, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17135:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5646, + "indexExpression": { + "argumentTypes": null, + "id": 5645, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17150:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17135:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5648, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17170:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17162:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17162:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17135:37:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5651, + "nodeType": "ExpressionStatement", + "src": "17135:37:8" + } + ] + } + } + ] + }, + "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5655, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "clearApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5624, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "16989:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5623, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16989:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5626, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "17005:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5625, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17005:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16988:34:8" + }, + "returnParameters": { + "id": 5628, + "nodeType": "ParameterList", + "parameters": [], + "src": "17032:0:8" + }, + "scope": 5764, + "src": "16966:219:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5689, + "nodeType": "Block", + "src": "17515:148:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5663, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17530:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5665, + "indexExpression": { + "argumentTypes": null, + "id": 5664, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17541:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17530:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17562:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17554:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17554:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17530:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5662, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17522:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17522:43:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5671, + "nodeType": "ExpressionStatement", + "src": "17522:43:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5672, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17572:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5674, + "indexExpression": { + "argumentTypes": null, + "id": 5673, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17583:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17572:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5675, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17595:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17572:26:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5677, + "nodeType": "ExpressionStatement", + "src": "17572:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5678, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17605:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5680, + "indexExpression": { + "argumentTypes": null, + "id": 5679, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17622:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17605:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17655:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5681, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17629:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5683, + "indexExpression": { + "argumentTypes": null, + "id": 5682, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17646:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17629:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "17629:25:8", + "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": 5686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17629:28:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17605:52:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5688, + "nodeType": "ExpressionStatement", + "src": "17605:52:8" + } + ] + }, + "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", + "id": 5690, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addTokenTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5657, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17475:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17475:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5659, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17488:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17488:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17474:31:8" + }, + "returnParameters": { + "id": 5661, + "nodeType": "ParameterList", + "parameters": [], + "src": "17515:0:8" + }, + "scope": 5764, + "src": "17455:208:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5724, + "nodeType": "Block", + "src": "18016:151:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5699, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18039:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5698, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "18031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18031:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5701, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18052:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "18031:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5697, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "18023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18023:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5704, + "nodeType": "ExpressionStatement", + "src": "18023:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5705, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18065:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5707, + "indexExpression": { + "argumentTypes": null, + "id": 5706, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18082:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18065:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18119:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5708, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18091:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5710, + "indexExpression": { + "argumentTypes": null, + "id": 5709, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18108:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18091:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "18091:27:8", + "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": 5713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18091:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18065:56:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5715, + "nodeType": "ExpressionStatement", + "src": "18065:56:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5716, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "18128:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5718, + "indexExpression": { + "argumentTypes": null, + "id": 5717, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18139:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18128:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18159:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18151:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18151:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "18128:33:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5723, + "nodeType": "ExpressionStatement", + "src": "18128:33:8" + } + ] + }, + "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", + "id": 5725, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeTokenFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5692, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17974:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5691, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17974:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5694, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17989:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17989:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17973:33:8" + }, + "returnParameters": { + "id": 5696, + "nodeType": "ParameterList", + "parameters": [], + "src": "18016:0:8" + }, + "scope": 5764, + "src": "17949:218:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5762, + "nodeType": "Block", + "src": "18846:195:8", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "18857:17:8", + "subExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5738, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18858:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 5008, + "src": "18858:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18858:16:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5745, + "nodeType": "IfStatement", + "src": "18853:51:8", + "trueBody": { + "id": 5744, + "nodeType": "Block", + "src": "18876:28:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18892:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5737, + "id": 5743, + "nodeType": "Return", + "src": "18885:11:8" + } + ] + } + }, + { + "assignments": [ + 5747 + ], + "declarations": [ + { + "constant": false, + "id": 5747, + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 5762, + "src": "18910:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5746, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "18910:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5756, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5752, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5727, + "src": "18971:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5753, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5731, + "src": "18978:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5754, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5733, + "src": "18988:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5749, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18941:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5748, + "name": "ERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "18926:14:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", + "typeString": "type(contract ERC721Receiver)" + } + }, + "id": 5750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:19:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Receiver_$5080", + "typeString": "contract ERC721Receiver" + } + }, + "id": 5751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 5079, + "src": "18926:36:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 5755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:68:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18910:84:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5757, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5747, + "src": "19009:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5758, + "name": "ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5206, + "src": "19019:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "19009:25:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5760, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19008:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5737, + "id": 5761, + "nodeType": "Return", + "src": "19001:34:8" + } + ] + }, + "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", + "id": 5763, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "checkAndCallSafeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5727, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18724:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5726, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18724:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5729, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18744:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18744:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5731, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18762:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5730, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18762:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5733, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18785:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5732, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18785:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18717:91:8" + }, + "returnParameters": { + "id": 5737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5736, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18837:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5735, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18837:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18836:6:8" + }, + "scope": 5764, + "src": "18684:357:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "6942:12102:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5765, + "name": "ERC721BasicToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5764, + "src": "19081:16:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", + "typeString": "contract ERC721BasicToken" + } + }, + "id": 5766, + "nodeType": "InheritanceSpecifier", + "src": "19081:16:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187, + 5764 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5797, + "linearizedBaseContracts": [ + 5797, + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicTokenMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5780, + "nodeType": "Block", + "src": "19155:39:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5776, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5768, + "src": "19174:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5777, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5770, + "src": "19179:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5773, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19162:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 5596, + "src": "19162:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19162:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5779, + "nodeType": "ExpressionStatement", + "src": "19162:26:8" + } + ] + }, + "documentation": null, + "id": 5781, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19117:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19117:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19130:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19130:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19116:31:8" + }, + "returnParameters": { + "id": 5772, + "nodeType": "ParameterList", + "parameters": [], + "src": "19155:0:8" + }, + "scope": 5797, + "src": "19103:91:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5795, + "nodeType": "Block", + "src": "19239:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5790, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19266:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5789, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "19258:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19258:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5792, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19277:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5786, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19246:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 5622, + "src": "19246:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19246:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5794, + "nodeType": "ExpressionStatement", + "src": "19246:40:8" + } + ] + }, + "documentation": null, + "id": 5796, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5783, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5796, + "src": "19214:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5782, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19214:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19213:18:8" + }, + "returnParameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [], + "src": "19239:0:8" + }, + "scope": 5797, + "src": "19200:92:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "19048:247:8" + } + ], + "src": "0:19297:8" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", + "exportedSymbols": { + "AddressUtils": [ + 5009 + ], + "ERC165": [ + 5017 + ], + "ERC721Basic": [ + 5187 + ], + "ERC721BasicToken": [ + 5764 + ], + "ERC721BasicTokenMock": [ + 5797 + ], + "ERC721Receiver": [ + 5080 + ], + "SupportsInterfaceWithLookup": [ + 5065 + ] + }, + "id": 5798, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4991, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:8" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "../../dao/oz/SafeMath.sol", + "id": 4992, + "nodeType": "ImportDirective", + "scope": 5798, + "sourceUnit": 9858, + "src": "34:35:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "Utility library of inline functions on addresses\r", + "fullyImplemented": true, + "id": 5009, + "linearizedBaseContracts": [ + 5009 + ], + "name": "AddressUtils", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5007, + "nodeType": "Block", + "src": "2012:524:8", + "statements": [ + { + "assignments": [ + 5000 + ], + "declarations": [ + { + "constant": false, + "id": 5000, + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 5007, + "src": "2019:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2019:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5001, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "2019:12:8" + }, + { + "externalReferences": [ + { + "size": { + "declaration": 5000, + "isOffset": false, + "isSlot": false, + "src": "2482:4:8", + "valueSize": 1 + } + }, + { + "addr": { + "declaration": 4994, + "isOffset": false, + "isSlot": false, + "src": "2502:4:8", + "valueSize": 1 + } + } + ], + "id": 5002, + "nodeType": "InlineAssembly", + "operations": "{ size := extcodesize(addr) }", + "src": "2471:38:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5003, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5000, + "src": "2522:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5004, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2529:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2522:8:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4998, + "id": 5006, + "nodeType": "Return", + "src": "2515:15:8" + } + ] + }, + "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", + "id": 5008, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4994, + "name": "addr", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "1969:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1969:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1968:14:8" + }, + "returnParameters": { + "id": 4998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4997, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "2006:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4996, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2006:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2005:6:8" + }, + "scope": 5009, + "src": "1949:587:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "1590:951:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", + "fullyImplemented": false, + "id": 5017, + "linearizedBaseContracts": [ + 5017 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", + "id": 5016, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5012, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5011, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "2950:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5010, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2950:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2949:21:8" + }, + "returnParameters": { + "id": 5015, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5014, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "3009:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5013, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3009:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3008:6:8" + }, + "scope": 5017, + "src": "2923:92:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 5798, + "src": "2643:375:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5018, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "3196:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5019, + "nodeType": "InheritanceSpecifier", + "src": "3196:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", + "fullyImplemented": true, + "id": 5065, + "linearizedBaseContracts": [ + 5065, + 5017 + ], + "name": "SupportsInterfaceWithLookup", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5022, + "name": "InterfaceId_ERC165", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3208:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5020, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3208:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783031666663396137", + "id": 5021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3252:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 5026, + "name": "supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3443:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 5025, + "keyType": { + "id": 5023, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3451:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "3443:23:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 5024, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3461:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 5033, + "nodeType": "Block", + "src": "3638:51:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5030, + "name": "InterfaceId_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5022, + "src": "3664:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5029, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "3645:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3645:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5032, + "nodeType": "ExpressionStatement", + "src": "3645:38:8" + } + ] + }, + "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", + "id": 5034, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5027, + "nodeType": "ParameterList", + "parameters": [], + "src": "3620:2:8" + }, + "returnParameters": { + "id": 5028, + "nodeType": "ParameterList", + "parameters": [], + "src": "3638:0:8" + }, + "scope": 5065, + "src": "3609:80:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5045, + "nodeType": "Block", + "src": "3872:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5041, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "3886:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5043, + "indexExpression": { + "argumentTypes": null, + "id": 5042, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5036, + "src": "3906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3886:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5040, + "id": 5044, + "nodeType": "Return", + "src": "3879:40:8" + } + ] + }, + "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", + "id": 5046, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5037, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5036, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3804:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5035, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3804:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3803:21:8" + }, + "returnParameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5039, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3863:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5038, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3863:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3862:6:8" + }, + "scope": 5065, + "src": "3777:148:8", + "stateMutability": "view", + "superFunction": 5016, + "visibility": "external" + }, + { + "body": { + "id": 5063, + "nodeType": "Block", + "src": "4066:95:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5052, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4081:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30786666666666666666", + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4097:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "4081:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5051, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4073:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4073:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5056, + "nodeType": "ExpressionStatement", + "src": "4073:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5057, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "4115:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5059, + "indexExpression": { + "argumentTypes": null, + "id": 5058, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4135:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4115:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4151:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4115:40:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5062, + "nodeType": "ExpressionStatement", + "src": "4115:40:8" + } + ] + }, + "documentation": "@dev private method for registering an interface\r", + "id": 5064, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5048, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5064, + "src": "4028:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5047, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4028:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4027:21:8" + }, + "returnParameters": { + "id": 5050, + "nodeType": "ParameterList", + "parameters": [], + "src": "4066:0:8" + }, + "scope": 5065, + "src": "4000:161:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "3156:1008:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", + "fullyImplemented": false, + "id": 5080, + "linearizedBaseContracts": [ + 5080 + ], + "name": "ERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5068, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5080, + "src": "4607:53:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5066, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4607:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4650:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "internal" + }, + { + "body": null, + "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", + "id": 5079, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5070, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5364:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5069, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5364:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5072, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5384:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5384:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5074, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5407:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5073, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5407:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5357:73:8" + }, + "returnParameters": { + "id": 5078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5077, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5456:6:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5076, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "5456:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5455:8:8" + }, + "scope": 5080, + "src": "5332:132:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "4326:1141:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5081, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "5641:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5082, + "nodeType": "InheritanceSpecifier", + "src": "5641:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": false, + "id": 5187, + "linearizedBaseContracts": [ + 5187, + 5017 + ], + "name": "ERC721Basic", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5090, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5084, + "indexed": false, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5674:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5083, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5674:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5086, + "indexed": false, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5695:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5695:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5088, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5714:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5087, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5714:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5667:69:8" + }, + "src": "5653:84:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5098, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5092, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5762:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5091, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5762:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5094, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5784:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5784:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5096, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5809:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5809:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5755:76:8" + }, + "src": "5741:91:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5106, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 5105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5100, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5863:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5099, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5863:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5102, + "indexed": false, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5885:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5101, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5885:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5104, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5910:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5103, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5910:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5856:73:8" + }, + "src": "5836:94:8" + }, + { + "body": null, + "documentation": null, + "id": 5113, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5109, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5108, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5955:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5955:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5954:16:8" + }, + "returnParameters": { + "id": 5112, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5111, + "name": "_balance", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5992:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5110, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5992:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5991:18:8" + }, + "scope": 5187, + "src": "5936:74:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5120, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5115, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6031:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6030:18:8" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5118, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6070:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6070:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6069:16:8" + }, + "scope": 5187, + "src": "6014:72:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5127, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5122, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6106:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5121, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6106:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6105:18:8" + }, + "returnParameters": { + "id": 5126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5125, + "name": "_exists", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6145:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5124, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6145:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6144:14:8" + }, + "scope": 5187, + "src": "6090:69:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5134, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5129, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6182:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6182:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5131, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6195:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6195:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6181:31:8" + }, + "returnParameters": { + "id": 5133, + "nodeType": "ParameterList", + "parameters": [], + "src": "6219:0:8" + }, + "scope": 5187, + "src": "6165:55:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5141, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5136, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6245:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6245:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6244:18:8" + }, + "returnParameters": { + "id": 5140, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5139, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6289:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6289:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6288:19:8" + }, + "scope": 5187, + "src": "6224:84:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5148, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5143, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6341:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6341:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5145, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6360:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5144, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6360:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6340:35:8" + }, + "returnParameters": { + "id": 5147, + "nodeType": "ParameterList", + "parameters": [], + "src": "6382:0:8" + }, + "scope": 5187, + "src": "6314:69:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5157, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5153, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5150, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6413:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5149, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6413:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5152, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6429:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5151, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6429:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6412:35:8" + }, + "returnParameters": { + "id": 5156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5155, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6474:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5154, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6474:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6473:6:8" + }, + "scope": 5187, + "src": "6387:93:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5166, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5164, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5159, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6508:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6508:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5161, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6523:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6523:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5163, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6536:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5162, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6536:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6507:46:8" + }, + "returnParameters": { + "id": 5165, + "nodeType": "ParameterList", + "parameters": [], + "src": "6560:0:8" + }, + "scope": 5187, + "src": "6486:75:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5175, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5173, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5168, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6591:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5167, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6591:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5170, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6606:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5169, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6606:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5172, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6619:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5171, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6619:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6590:46:8" + }, + "returnParameters": { + "id": 5174, + "nodeType": "ParameterList", + "parameters": [], + "src": "6648:0:8" + }, + "scope": 5187, + "src": "6565:84:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5186, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5184, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5177, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6687:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5176, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6687:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5179, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6707:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5178, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6707:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5181, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6725:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5180, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6725:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5183, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6748:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5182, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6748:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6680:91:8" + }, + "returnParameters": { + "id": 5185, + "nodeType": "ParameterList", + "parameters": [], + "src": "6783:0:8" + }, + "scope": 5187, + "src": "6655:129:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "5617:1170:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5188, + "name": "SupportsInterfaceWithLookup", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5065, + "src": "6971:27:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", + "typeString": "contract SupportsInterfaceWithLookup" + } + }, + "id": 5189, + "nodeType": "InheritanceSpecifier", + "src": "6971:27:8" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5190, + "name": "ERC721Basic", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5187, + "src": "7000:11:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Basic_$5187", + "typeString": "contract ERC721Basic" + } + }, + "id": 5191, + "nodeType": "InheritanceSpecifier", + "src": "7000:11:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": true, + "id": 5764, + "linearizedBaseContracts": [ + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5194, + "name": "InterfaceId_ERC721", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7019:55:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5192, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7019:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783830616335386364", + "id": 5193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7064:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 5197, + "name": "InterfaceId_ERC721Exists", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7668:61:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5195, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7668:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783466353538653739", + "id": 5196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7719:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1331007097_by_1", + "typeString": "int_const 1331007097" + }, + "value": "0x4f558e79" + }, + "visibility": "private" + }, + { + "id": 5200, + "libraryName": { + "contractScope": null, + "id": 5198, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "7821:8:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "7815:27:8", + "typeName": { + "id": 5199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7834:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5203, + "libraryName": { + "contractScope": null, + "id": 5201, + "name": "AddressUtils", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5009, + "src": "7852:12:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddressUtils_$5009", + "typeString": "library AddressUtils" + } + }, + "nodeType": "UsingForDirective", + "src": "7846:31:8", + "typeName": { + "id": 5202, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7869:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "constant": true, + "id": 5206, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8044:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5204, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8044:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8086:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 5210, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8140:48:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5209, + "keyType": { + "id": 5207, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8149:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8140:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5208, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8160:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5214, + "name": "tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8243:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5213, + "keyType": { + "id": 5211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8252:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8243:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8263:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5218, + "name": "ownedTokensCount", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8352:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5217, + "keyType": { + "id": 5215, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8361:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8352:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8372:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5224, + "name": "operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8460:73:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 5223, + "keyType": { + "id": 5219, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8469:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8460:46:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 5222, + "keyType": { + "id": 5220, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8489:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8480:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 5221, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8500:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5226, + "name": "testint", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8542:19:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5225, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 5240, + "nodeType": "Block", + "src": "8774:61:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5232, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5228, + "src": "8797:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5231, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "8789:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8789:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5234, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "8810:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8810:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8789:31:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5230, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "8781:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8781:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5238, + "nodeType": "ExpressionStatement", + "src": "8781:40:8" + }, + { + "id": 5239, + "nodeType": "PlaceholderStatement", + "src": "8828:1:8" + } + ] + }, + "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", + "id": 5241, + "name": "onlyOwnerOf", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5228, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5241, + "src": "8756:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5227, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8756:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8755:18:8" + }, + "src": "8735:100:8", + "visibility": "internal" + }, + { + "body": { + "id": 5254, + "nodeType": "Block", + "src": "9041:69:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5247, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "9074:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9074:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5249, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5243, + "src": "9086:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5246, + "name": "isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5567, + "src": "9056:17:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 5250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9056:39:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5245, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9048:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9048:48:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5252, + "nodeType": "ExpressionStatement", + "src": "9048:48:8" + }, + { + "id": 5253, + "nodeType": "PlaceholderStatement", + "src": "9103:1:8" + } + ] + }, + "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", + "id": 5255, + "name": "canTransfer", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5244, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5243, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5255, + "src": "9023:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5242, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9022:18:8" + }, + "src": "9002:108:8", + "visibility": "internal" + }, + { + "body": { + "id": 5266, + "nodeType": "Block", + "src": "9145:176:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5259, + "name": "InterfaceId_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "9245:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5258, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9226:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9226:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5261, + "nodeType": "ExpressionStatement", + "src": "9226:38:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5263, + "name": "InterfaceId_ERC721Exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5197, + "src": "9290:24:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5262, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9271:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9271:44:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5265, + "nodeType": "ExpressionStatement", + "src": "9271:44:8" + } + ] + }, + "documentation": null, + "id": 5267, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5256, + "nodeType": "ParameterList", + "parameters": [], + "src": "9127:2:8" + }, + "returnParameters": { + "id": 5257, + "nodeType": "ParameterList", + "parameters": [], + "src": "9145:0:8" + }, + "scope": 5764, + "src": "9116:205:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5286, + "nodeType": "Block", + "src": "9585:80:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5275, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9600:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5277, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9618:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9610:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9610:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "9600:20:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5274, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9592:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9592:29:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5281, + "nodeType": "ExpressionStatement", + "src": "9592:29:8" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5282, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "9635:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5284, + "indexExpression": { + "argumentTypes": null, + "id": 5283, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9652:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9635:24:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5273, + "id": 5285, + "nodeType": "Return", + "src": "9628:31:8" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", + "id": 5287, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5269, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9539:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9539:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9538:16:8" + }, + "returnParameters": { + "id": 5273, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5272, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9576:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5271, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9576:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9575:9:8" + }, + "scope": 5764, + "src": "9520:145:8", + "stateMutability": "view", + "superFunction": 5113, + "visibility": "public" + }, + { + "body": { + "id": 5310, + "nodeType": "Block", + "src": "9950:103:8", + "statements": [ + { + "assignments": [ + 5295 + ], + "declarations": [ + { + "constant": false, + "id": 5295, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5310, + "src": "9957:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5294, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9957:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5299, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5296, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "9973:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5298, + "indexExpression": { + "argumentTypes": null, + "id": 5297, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5289, + "src": "9984:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9973:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9957:36:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5301, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10008:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10025:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10017:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10017:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10008:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5300, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10000:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5307, + "nodeType": "ExpressionStatement", + "src": "10000:28:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5308, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10042:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5293, + "id": 5309, + "nodeType": "Return", + "src": "10035:12:8" + } + ] + }, + "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", + "id": 5311, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5289, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9902:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9902:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9901:18:8" + }, + "returnParameters": { + "id": 5293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5292, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9941:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9941:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9940:9:8" + }, + "scope": 5764, + "src": "9885:168:8", + "stateMutability": "view", + "superFunction": 5120, + "visibility": "public" + }, + { + "body": { + "id": 5330, + "nodeType": "Block", + "src": "10299:82:8", + "statements": [ + { + "assignments": [ + 5319 + ], + "declarations": [ + { + "constant": false, + "id": 5319, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5330, + "src": "10306:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5318, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10306:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5323, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5320, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "10322:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5322, + "indexExpression": { + "argumentTypes": null, + "id": 5321, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5313, + "src": "10333:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10322:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10306:36:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5324, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5319, + "src": "10356:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10373:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10365:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10365:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10356:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5317, + "id": 5329, + "nodeType": "Return", + "src": "10349:26:8" + } + ] + }, + "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", + "id": 5331, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5313, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10254:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10254:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10253:18:8" + }, + "returnParameters": { + "id": 5317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5316, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10293:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5315, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10293:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10292:6:8" + }, + "scope": 5764, + "src": "10238:143:8", + "stateMutability": "view", + "superFunction": 5127, + "visibility": "public" + }, + { + "body": { + "id": 5375, + "nodeType": "Block", + "src": "10851:229:8", + "statements": [ + { + "assignments": [ + 5339 + ], + "declarations": [ + { + "constant": false, + "id": 5339, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5375, + "src": "10858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5343, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5341, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "10882:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5340, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "10874:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10874:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10858:33:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5345, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "10906:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 5346, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10913:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5344, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10898:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10898:21:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5349, + "nodeType": "ExpressionStatement", + "src": "10898:21:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5351, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10934:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10934:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5353, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10948:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10934:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5356, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10974:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5357, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10981:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10981:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 5355, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "10957:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10957:35:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10934:58:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5350, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10926:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10926:67:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5362, + "nodeType": "ExpressionStatement", + "src": "10926:67:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5363, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11002:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5365, + "indexExpression": { + "argumentTypes": null, + "id": 5364, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11017:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11002:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5366, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11029:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11002:30:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5368, + "nodeType": "ExpressionStatement", + "src": "11002:30:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5370, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "11053:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5371, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11060:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5372, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11065:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5369, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5098, + "src": "11044:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11044:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5374, + "nodeType": "EmitStatement", + "src": "11039:35:8" + } + ] + }, + "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", + "id": 5376, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5336, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5333, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10813:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10813:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5335, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10826:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5334, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10826:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10812:31:8" + }, + "returnParameters": { + "id": 5337, + "nodeType": "ParameterList", + "parameters": [], + "src": "10851:0:8" + }, + "scope": 5764, + "src": "10796:284:8", + "stateMutability": "nonpayable", + "superFunction": 5134, + "visibility": "public" + }, + { + "body": { + "id": 5387, + "nodeType": "Block", + "src": "11383:44:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5383, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11397:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5385, + "indexExpression": { + "argumentTypes": null, + "id": 5384, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5378, + "src": "11412:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11397:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5382, + "id": 5386, + "nodeType": "Return", + "src": "11390:31:8" + } + ] + }, + "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", + "id": 5388, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5378, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11335:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5377, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11335:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11334:18:8" + }, + "returnParameters": { + "id": 5382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5381, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11374:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11374:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11373:9:8" + }, + "scope": 5764, + "src": "11314:113:8", + "stateMutability": "view", + "superFunction": 5141, + "visibility": "public" + }, + { + "body": { + "id": 5418, + "nodeType": "Block", + "src": "11778:146:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5396, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11793:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5397, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11800:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11800:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "11793:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5395, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "11785:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11785:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "11785:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5402, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "11818:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5406, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5403, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11836:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11836:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11818:29:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5407, + "indexExpression": { + "argumentTypes": null, + "id": 5405, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11848:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11818:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11855:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11818:46:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5410, + "nodeType": "ExpressionStatement", + "src": "11818:46:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5412, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11891:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11891:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5414, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11903:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5415, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11908:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5411, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5106, + "src": "11876:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 5416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11876:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5417, + "nodeType": "EmitStatement", + "src": "11871:47:8" + } + ] + }, + "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", + "id": 5419, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5390, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11742:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11742:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5392, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11755:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11755:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11741:29:8" + }, + "returnParameters": { + "id": 5394, + "nodeType": "ParameterList", + "parameters": [], + "src": "11778:0:8" + }, + "scope": 5764, + "src": "11715:209:8", + "stateMutability": "nonpayable", + "superFunction": 5148, + "visibility": "public" + }, + { + "body": { + "id": 5434, + "nodeType": "Block", + "src": "12362:56:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5428, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "12376:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5430, + "indexExpression": { + "argumentTypes": null, + "id": 5429, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5421, + "src": "12394:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5432, + "indexExpression": { + "argumentTypes": null, + "id": 5431, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "12402:9:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:36:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5427, + "id": 5433, + "nodeType": "Return", + "src": "12369:43:8" + } + ] + }, + "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", + "id": 5435, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5421, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12273:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5420, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12273:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5423, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12294:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5422, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12294:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12266:50:8" + }, + "returnParameters": { + "id": 5427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5426, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12353:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5425, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12353:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12352:6:8" + }, + "scope": 5764, + "src": "12241:177:8", + "stateMutability": "view", + "superFunction": 5157, + "visibility": "public" + }, + { + "body": { + "id": 5484, + "nodeType": "Block", + "src": "12976:228:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5448, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "12991:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13008:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13000:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "12991:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5447, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "12983:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12983:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5454, + "nodeType": "ExpressionStatement", + "src": "12983:28:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5456, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13026:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13041:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13033:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13033:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13026:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5455, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "13018:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13018:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5462, + "nodeType": "ExpressionStatement", + "src": "13018:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5464, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13067:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5465, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13074:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5463, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "13053:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13053:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5467, + "nodeType": "ExpressionStatement", + "src": "13053:30:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5469, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13106:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5470, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13113:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5468, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "13090:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13090:32:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5472, + "nodeType": "ExpressionStatement", + "src": "13090:32:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5474, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13140:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5475, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13145:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5473, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "13129:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13129:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5477, + "nodeType": "ExpressionStatement", + "src": "13129:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5479, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13177:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5480, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13184:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5481, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13189:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5478, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "13168:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13168:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5483, + "nodeType": "EmitStatement", + "src": "13163:35:8" + } + ] + }, + "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5485, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5444, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "12963:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5445, + "modifierName": { + "argumentTypes": null, + "id": 5443, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "12951:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12951:21:8" + } + ], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5442, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5437, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12874:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5436, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12874:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5439, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12894:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12894:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5441, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12912:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5440, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12912:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12867:66:8" + }, + "returnParameters": { + "id": 5446, + "nodeType": "ParameterList", + "parameters": [], + "src": "12976:0:8" + }, + "scope": 5764, + "src": "12846:358:8", + "stateMutability": "nonpayable", + "superFunction": 5166, + "visibility": "public" + }, + { + "body": { + "id": 5504, + "nodeType": "Block", + "src": "13960:101:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5498, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5487, + "src": "14030:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5499, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5489, + "src": "14037:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5500, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "14042:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 5501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14052:2:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 5497, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5505, + 5535 + ], + "referencedDeclaration": 5535, + "src": "14013:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 5502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14013:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5503, + "nodeType": "ExpressionStatement", + "src": "14013:42:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5505, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5494, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "13947:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5495, + "modifierName": { + "argumentTypes": null, + "id": 5493, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "13935:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "13935:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5487, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5486, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5489, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13878:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13878:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5491, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13896:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13896:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13851:66:8" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [], + "src": "13960:0:8" + }, + "scope": 5764, + "src": "13826:235:8", + "stateMutability": "nonpayable", + "superFunction": 5175, + "visibility": "public" + }, + { + "body": { + "id": 5534, + "nodeType": "Block", + "src": "14908:162:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5520, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "14928:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5521, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "14935:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5522, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14940:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5519, + "name": "transferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5485 + ], + "referencedDeclaration": 5485, + "src": "14915:12:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14915:34:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5524, + "nodeType": "ExpressionStatement", + "src": "14915:34:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5527, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "15035:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5528, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "15042:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5529, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "15047:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5530, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5513, + "src": "15057:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5526, + "name": "checkAndCallSafeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5763, + "src": "15010:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 5531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15010:53:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5525, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "15002:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15002:62:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5533, + "nodeType": "ExpressionStatement", + "src": "15002:62:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", + "id": 5535, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5516, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14895:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5517, + "modifierName": { + "argumentTypes": null, + "id": 5515, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "14883:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "14883:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5514, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5507, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14781:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14781:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5509, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14801:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14801:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5511, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14819:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14819:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5513, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14842:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5512, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14842:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14774:91:8" + }, + "returnParameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [], + "src": "14908:0:8" + }, + "scope": 5764, + "src": "14749:321:8", + "stateMutability": "nonpayable", + "superFunction": 5186, + "visibility": "public" + }, + { + "body": { + "id": 5566, + "nodeType": "Block", + "src": "15551:330:8", + "statements": [ + { + "assignments": [ + 5545 + ], + "declarations": [ + { + "constant": false, + "id": 5545, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5566, + "src": "15558:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15558:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5549, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5547, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15582:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5546, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "15574:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15574:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15558:33:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5550, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15763:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5551, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15775:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15763:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5554, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15803:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5553, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5388 + ], + "referencedDeclaration": 5388, + "src": "15791:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15791:21:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5556, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15816:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15791:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:61:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5560, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15852:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5561, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15859:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5559, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "15835:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15835:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:105:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5564, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15754:121:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5543, + "id": 5565, + "nodeType": "Return", + "src": "15747:128:8" + } + ] + }, + "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", + "id": 5567, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5540, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5537, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15459:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5536, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15459:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5539, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15482:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5538, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15482:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15452:51:8" + }, + "returnParameters": { + "id": 5543, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5542, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15542:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5541, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15541:6:8" + }, + "scope": 5764, + "src": "15426:455:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5595, + "nodeType": "Block", + "src": "16193:118:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5575, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16208:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16223:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16215:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16215:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "16208:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5574, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "16200:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16200:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5581, + "nodeType": "ExpressionStatement", + "src": "16200:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5583, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16244:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5584, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16249:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5582, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "16233:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16233:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5586, + "nodeType": "ExpressionStatement", + "src": "16233:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16287:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16279:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16279:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5591, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16291:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5592, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16296:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5587, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16270:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16270:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5594, + "nodeType": "EmitStatement", + "src": "16265:40:8" + } + ] + }, + "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", + "id": 5596, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5569, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16153:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5568, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16153:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5571, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16166:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5570, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16166:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16152:31:8" + }, + "returnParameters": { + "id": 5573, + "nodeType": "ParameterList", + "parameters": [], + "src": "16193:0:8" + }, + "scope": 5764, + "src": "16138:173:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5621, + "nodeType": "Block", + "src": "16562:134:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5604, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16583:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5605, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16591:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5603, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "16569:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16569:31:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5607, + "nodeType": "ExpressionStatement", + "src": "16569:31:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5609, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16623:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5610, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16631:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5608, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "16607:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16607:33:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5612, + "nodeType": "ExpressionStatement", + "src": "16607:33:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5614, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16661:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16677:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16669:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16669:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5618, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16681:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5613, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16652:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16652:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5620, + "nodeType": "EmitStatement", + "src": "16647:43:8" + } + ] + }, + "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", + "id": 5622, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5598, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16519:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16519:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5600, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16535:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5599, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16535:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16518:34:8" + }, + "returnParameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [], + "src": "16562:0:8" + }, + "scope": 5764, + "src": "16504:192:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5654, + "nodeType": "Block", + "src": "17032:153:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5631, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17055:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5630, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "17047:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17047:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5633, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5624, + "src": "17068:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17047:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5629, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17039:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17039:36:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5636, + "nodeType": "ExpressionStatement", + "src": "17039:36:8" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5637, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17086:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5639, + "indexExpression": { + "argumentTypes": null, + "id": 5638, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17101:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17086:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17122:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17114:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17114:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17086:38:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5653, + "nodeType": "IfStatement", + "src": "17082:98:8", + "trueBody": { + "id": 5652, + "nodeType": "Block", + "src": "17126:54:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5644, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17135:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5646, + "indexExpression": { + "argumentTypes": null, + "id": 5645, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17150:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17135:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5648, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17170:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17162:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17162:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17135:37:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5651, + "nodeType": "ExpressionStatement", + "src": "17135:37:8" + } + ] + } + } + ] + }, + "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5655, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "clearApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5624, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "16989:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5623, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16989:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5626, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "17005:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5625, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17005:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16988:34:8" + }, + "returnParameters": { + "id": 5628, + "nodeType": "ParameterList", + "parameters": [], + "src": "17032:0:8" + }, + "scope": 5764, + "src": "16966:219:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5689, + "nodeType": "Block", + "src": "17515:148:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5663, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17530:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5665, + "indexExpression": { + "argumentTypes": null, + "id": 5664, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17541:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17530:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17562:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17554:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17554:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17530:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5662, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17522:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17522:43:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5671, + "nodeType": "ExpressionStatement", + "src": "17522:43:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5672, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17572:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5674, + "indexExpression": { + "argumentTypes": null, + "id": 5673, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17583:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17572:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5675, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17595:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17572:26:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5677, + "nodeType": "ExpressionStatement", + "src": "17572:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5678, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17605:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5680, + "indexExpression": { + "argumentTypes": null, + "id": 5679, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17622:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17605:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17655:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5681, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17629:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5683, + "indexExpression": { + "argumentTypes": null, + "id": 5682, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17646:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17629:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "17629:25:8", + "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": 5686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17629:28:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17605:52:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5688, + "nodeType": "ExpressionStatement", + "src": "17605:52:8" + } + ] + }, + "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", + "id": 5690, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addTokenTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5657, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17475:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17475:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5659, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17488:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17488:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17474:31:8" + }, + "returnParameters": { + "id": 5661, + "nodeType": "ParameterList", + "parameters": [], + "src": "17515:0:8" + }, + "scope": 5764, + "src": "17455:208:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5724, + "nodeType": "Block", + "src": "18016:151:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5699, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18039:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5698, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "18031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18031:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5701, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18052:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "18031:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5697, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "18023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18023:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5704, + "nodeType": "ExpressionStatement", + "src": "18023:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5705, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18065:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5707, + "indexExpression": { + "argumentTypes": null, + "id": 5706, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18082:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18065:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18119:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5708, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18091:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5710, + "indexExpression": { + "argumentTypes": null, + "id": 5709, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18108:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18091:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "18091:27:8", + "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": 5713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18091:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18065:56:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5715, + "nodeType": "ExpressionStatement", + "src": "18065:56:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5716, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "18128:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5718, + "indexExpression": { + "argumentTypes": null, + "id": 5717, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18139:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18128:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18159:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18151:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18151:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "18128:33:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5723, + "nodeType": "ExpressionStatement", + "src": "18128:33:8" + } + ] + }, + "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", + "id": 5725, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeTokenFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5692, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17974:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5691, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17974:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5694, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17989:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17989:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17973:33:8" + }, + "returnParameters": { + "id": 5696, + "nodeType": "ParameterList", + "parameters": [], + "src": "18016:0:8" + }, + "scope": 5764, + "src": "17949:218:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5762, + "nodeType": "Block", + "src": "18846:195:8", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "18857:17:8", + "subExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5738, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18858:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 5008, + "src": "18858:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18858:16:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5745, + "nodeType": "IfStatement", + "src": "18853:51:8", + "trueBody": { + "id": 5744, + "nodeType": "Block", + "src": "18876:28:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18892:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5737, + "id": 5743, + "nodeType": "Return", + "src": "18885:11:8" + } + ] + } + }, + { + "assignments": [ + 5747 + ], + "declarations": [ + { + "constant": false, + "id": 5747, + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 5762, + "src": "18910:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5746, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "18910:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5756, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5752, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5727, + "src": "18971:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5753, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5731, + "src": "18978:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5754, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5733, + "src": "18988:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5749, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18941:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5748, + "name": "ERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "18926:14:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", + "typeString": "type(contract ERC721Receiver)" + } + }, + "id": 5750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:19:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Receiver_$5080", + "typeString": "contract ERC721Receiver" + } + }, + "id": 5751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 5079, + "src": "18926:36:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 5755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:68:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18910:84:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5757, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5747, + "src": "19009:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5758, + "name": "ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5206, + "src": "19019:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "19009:25:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5760, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19008:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5737, + "id": 5761, + "nodeType": "Return", + "src": "19001:34:8" + } + ] + }, + "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", + "id": 5763, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "checkAndCallSafeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5727, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18724:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5726, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18724:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5729, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18744:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18744:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5731, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18762:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5730, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18762:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5733, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18785:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5732, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18785:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18717:91:8" + }, + "returnParameters": { + "id": 5737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5736, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18837:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5735, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18837:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18836:6:8" + }, + "scope": 5764, + "src": "18684:357:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "6942:12102:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5765, + "name": "ERC721BasicToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5764, + "src": "19081:16:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", + "typeString": "contract ERC721BasicToken" + } + }, + "id": 5766, + "nodeType": "InheritanceSpecifier", + "src": "19081:16:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187, + 5764 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5797, + "linearizedBaseContracts": [ + 5797, + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicTokenMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5780, + "nodeType": "Block", + "src": "19155:39:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5776, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5768, + "src": "19174:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5777, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5770, + "src": "19179:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5773, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19162:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 5596, + "src": "19162:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19162:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5779, + "nodeType": "ExpressionStatement", + "src": "19162:26:8" + } + ] + }, + "documentation": null, + "id": 5781, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19117:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19117:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19130:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19130:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19116:31:8" + }, + "returnParameters": { + "id": 5772, + "nodeType": "ParameterList", + "parameters": [], + "src": "19155:0:8" + }, + "scope": 5797, + "src": "19103:91:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5795, + "nodeType": "Block", + "src": "19239:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5790, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19266:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5789, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "19258:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19258:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5792, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19277:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5786, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19246:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 5622, + "src": "19246:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19246:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5794, + "nodeType": "ExpressionStatement", + "src": "19246:40:8" + } + ] + }, + "documentation": null, + "id": 5796, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5783, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5796, + "src": "19214:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5782, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19214:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19213:18:8" + }, + "returnParameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [], + "src": "19239:0:8" + }, + "scope": 5797, + "src": "19200:92:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "19048:247:8" + } + ], + "src": "0:19297:8" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:19.988Z", + "devdoc": { + "details": "see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "methods": { + "supportsInterface(bytes4)": { + "details": "Interface identification is specified in ERC-165. This function\r uses less than 30,000 gas.\r", + "params": { + "_interfaceId": "The interface identifier, as specified in ERC-165\r" + } + } + }, + "title": "ERC721 Non-Fungible Token Standard basic interface\r" + }, + "userdoc": { + "methods": { + "supportsInterface(bytes4)": { + "notice": "Query if a contract implements an interface\r" + } + } + } +} \ No newline at end of file diff --git a/src/contracts/ERC721BasicToken.json b/src/contracts/ERC721BasicToken.json new file mode 100644 index 0000000..79520a2 --- /dev/null +++ b/src/contracts/ERC721BasicToken.json @@ -0,0 +1,21588 @@ +{ + "contractName": "ERC721BasicToken", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "InterfaceId_ERC165", + "outputs": [ + { + "name": "", + "type": "bytes4" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "testint", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_from", + "type": "address" + }, + { + "indexed": false, + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "name": "_approved", + "type": "address" + }, + { + "indexed": false, + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "name": "_operator", + "type": "address" + }, + { + "indexed": false, + "name": "_approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "exists", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_tokenId", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"_interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"InterfaceId_ERC165\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"exists\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"testint\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\\r\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Approves another address to transfer the given token ID\\r The zero address indicates there is no approved address.\\r There can only be one approved address per token at a given time.\\r Can only be called by the token owner or an approved operator.\\r\",\"params\":{\"_to\":\"address to be approved for the given token ID\\r\",\"_tokenId\":\"uint256 ID of the token to be approved\\r\"}},\"balanceOf(address)\":{\"details\":\"Gets the balance of the specified address\\r\",\"params\":{\"_owner\":\"address to query the balance of\\r\"},\"return\":\"uint256 representing the amount owned by the passed address\\r\"},\"exists(uint256)\":{\"details\":\"Returns whether the specified token exists\\r\",\"params\":{\"_tokenId\":\"uint256 ID of the token to query the existence of\\r\"},\"return\":\"whether the token exists\\r\"},\"getApproved(uint256)\":{\"details\":\"Gets the approved address for a token ID, or zero if no address set\\r\",\"params\":{\"_tokenId\":\"uint256 ID of the token to query the approval of\\r\"},\"return\":\"address currently approved for the given token ID\\r\"},\"isApprovedForAll(address,address)\":{\"details\":\"Tells whether an operator is approved by a given owner\\r\",\"params\":{\"_operator\":\"operator address which you want to query the approval of\\r\",\"_owner\":\"owner address which you want to query the approval of\\r\"},\"return\":\"bool whether the given operator is approved by the given owner\\r\"},\"ownerOf(uint256)\":{\"details\":\"Gets the owner of the specified token ID\\r\",\"params\":{\"_tokenId\":\"uint256 ID of the token to query the owner of\\r\"},\"return\":\"owner address currently marked as the owner of the given token ID\\r\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers the ownership of a given token ID to another address\\r If the target address is a contract, it must implement `onERC721Received`,\\r which is called upon a safe transfer, and return the magic value\\r `bytes4(keccak256(\\\"onERC721Received(address,uint256,bytes)\\\"))`; otherwise,\\r the transfer is reverted.\\r * Requires the msg sender to be the owner, approved, or operator\\r\",\"params\":{\"_from\":\"current owner of the token\\r\",\"_to\":\"address to receive the ownership of the given token ID\\r\",\"_tokenId\":\"uint256 ID of the token to be transferred\\r\"}},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers the ownership of a given token ID to another address\\r If the target address is a contract, it must implement `onERC721Received`,\\r which is called upon a safe transfer, and return the magic value\\r `bytes4(keccak256(\\\"onERC721Received(address,uint256,bytes)\\\"))`; otherwise,\\r the transfer is reverted.\\r Requires the msg sender to be the owner, approved, or operator\\r\",\"params\":{\"_data\":\"bytes data to send along with a safe transfer check\\r\",\"_from\":\"current owner of the token\\r\",\"_to\":\"address to receive the ownership of the given token ID\\r\",\"_tokenId\":\"uint256 ID of the token to be transferred\\r\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"Sets or unsets the approval of a given operator\\r An operator is allowed to transfer all tokens of the sender on their behalf\\r\",\"params\":{\"_approved\":\"representing the status of the approval to be set\\r\",\"_to\":\"operator address to set the approval\\r\"}},\"supportsInterface(bytes4)\":{\"details\":\"implement supportsInterface(bytes4) using a lookup table\\r\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers the ownership of a given token ID to another address\\r Usage of this method is discouraged, use `safeTransferFrom` whenever possible\\r Requires the msg sender to be the owner, approved, or operator\\r\",\"params\":{\"_from\":\"current owner of the token\\r\",\"_to\":\"address to receive the ownership of the given token ID\\r\",\"_tokenId\":\"uint256 ID of the token to be transferred\\r\"}}},\"title\":\"ERC721 Non-Fungible Token Standard basic implementation\\r\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":\"ERC721BasicToken\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":{\"keccak256\":\"0x4dd046a190602871aa9743a94149789c1e14b14f609c68d0f34d72e19bd690ce\",\"urls\":[\"bzzr://ea591dfb88f3591fe4344b7e665024c5aa3e8fb758a0409db79b1885a996b825\",\"dweb:/ipfs/QmXrwJ2TTXMWHBQxuLCqrj96gfh5HCHK57JsCEcXJ84t6z\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b506100437f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b036100ac16565b6100757f80ac58cd000000000000000000000000000000000000000000000000000000006001600160e01b036100ac16565b6100a77f4f558e79000000000000000000000000000000000000000000000000000000006001600160e01b036100ac16565b610118565b7fffffffff0000000000000000000000000000000000000000000000000000000080821614156100db57600080fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152602081905260409020805460ff19166001179055565b610a5c806101276000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80634f558e791161008c578063a22cb46511610066578063a22cb46514610279578063b88d4fde146102a7578063e701c4641461036d578063e985e9c514610375576100cf565b80634f558e79146102075780636352211e1461022457806370a0823114610241576100cf565b806301ffc9a7146100d4578063081812fc1461010f578063095ea7b31461014857806319fa8f501461017657806323b872dd1461019b57806342842e0e146101d1575b600080fd5b6100fb600480360360208110156100ea57600080fd5b50356001600160e01b0319166103a3565b604080519115158252519081900360200190f35b61012c6004803603602081101561012557600080fd5b50356103c2565b604080516001600160a01b039092168252519081900360200190f35b6101746004803603604081101561015e57600080fd5b506001600160a01b0381351690602001356103dd565b005b61017e6104a3565b604080516001600160e01b03199092168252519081900360200190f35b610174600480360360608110156101b157600080fd5b506001600160a01b038135811691602081013590911690604001356104ae565b610174600480360360608110156101e757600080fd5b506001600160a01b03813581169160208101359091169060400135610556565b6100fb6004803603602081101561021d57600080fd5b503561058b565b61012c6004803603602081101561023a57600080fd5b50356105a8565b6102676004803603602081101561025757600080fd5b50356001600160a01b03166105d0565b60408051918252519081900360200190f35b6101746004803603604081101561028f57600080fd5b506001600160a01b0381351690602001351515610601565b610174600480360360808110156102bd57600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156102f857600080fd5b82018360208201111561030a57600080fd5b8035906020019184600183028401116401000000008311171561032c57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061068c945050505050565b6102676106c7565b6100fb6004803603604081101561038b57600080fd5b506001600160a01b03813581169160200135166106cd565b6001600160e01b03191660009081526020819052604090205460ff1690565b6000908152600260205260409020546001600160a01b031690565b60006103e8826105a8565b9050806001600160a01b0316836001600160a01b0316141561040957600080fd5b336001600160a01b0382161480610425575061042581336106cd565b61042e57600080fd5b60008281526002602090815260409182902080546001600160a01b038088166001600160a01b03199092168217909255835191851682529181019190915280820184905290517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259181900360600190a1505050565b6301ffc9a760e01b81565b806104b933826106fb565b6104c257600080fd5b6001600160a01b0384166104d557600080fd5b6001600160a01b0383166104e857600080fd5b6104f2848361075a565b6104fc84836107be565b6105068383610847565b604080516001600160a01b0380871682528516602082015280820184905290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a150505050565b8061056133826106fb565b61056a57600080fd5b6105858484846040518060200160405280600081525061068c565b50505050565b6000908152600160205260409020546001600160a01b0316151590565b6000818152600160205260408120546001600160a01b0316806105ca57600080fd5b92915050565b60006001600160a01b0382166105e557600080fd5b506001600160a01b031660009081526003602052604090205490565b6001600160a01b03821633141561061757600080fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805486151560ff19909116811790915581519485529184019290925282820152517f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319181900360600190a15050565b8161069733826106fb565b6106a057600080fd5b6106ab8585856104ae565b6106b7858585856108ca565b6106c057600080fd5b5050505050565b60055481565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b600080610707836105a8565b9050806001600160a01b0316846001600160a01b031614806107425750836001600160a01b0316610737846103c2565b6001600160a01b0316145b80610752575061075281856106cd565b949350505050565b816001600160a01b031661076d826105a8565b6001600160a01b03161461078057600080fd5b6000818152600260205260409020546001600160a01b0316156107ba57600081815260026020526040902080546001600160a01b03191690555b5050565b816001600160a01b03166107d1826105a8565b6001600160a01b0316146107e457600080fd5b6001600160a01b03821660009081526003602052604090205461080e90600163ffffffff6109f316565b6001600160a01b0390921660009081526003602090815260408083209490945591815260019091522080546001600160a01b0319169055565b6000818152600160205260409020546001600160a01b03161561086957600080fd5b600081815260016020818152604080842080546001600160a01b0319166001600160a01b03881690811790915584526003909152909120546108aa91610a08565b6001600160a01b0390921660009081526003602052604090209190915550565b60006108de846001600160a01b0316610a21565b6108ea57506001610752565b60405163785cf2dd60e11b81526001600160a01b0386811660048301908152602483018690526060604484019081528551606485015285516000949389169363f0b9e5ba938b938a938a936084019060208501908083838d5b8381101561095b578181015183820152602001610943565b50505050905090810190601f1680156109885780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1580156109a957600080fd5b505af11580156109bd573d6000803e3d6000fd5b505050506040513d60208110156109d357600080fd5b50516001600160e01b03191663785cf2dd60e11b14915050949350505050565b600082821115610a0257600080fd5b50900390565b600082820183811015610a1a57600080fd5b9392505050565b3b15159056fea265627a7a723058202cd746fd806b5453e2bdc74b43d9c5e7bfd2405fac94a43ac3a07995a59d5c4464736f6c63430005090032", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c80634f558e791161008c578063a22cb46511610066578063a22cb46514610279578063b88d4fde146102a7578063e701c4641461036d578063e985e9c514610375576100cf565b80634f558e79146102075780636352211e1461022457806370a0823114610241576100cf565b806301ffc9a7146100d4578063081812fc1461010f578063095ea7b31461014857806319fa8f501461017657806323b872dd1461019b57806342842e0e146101d1575b600080fd5b6100fb600480360360208110156100ea57600080fd5b50356001600160e01b0319166103a3565b604080519115158252519081900360200190f35b61012c6004803603602081101561012557600080fd5b50356103c2565b604080516001600160a01b039092168252519081900360200190f35b6101746004803603604081101561015e57600080fd5b506001600160a01b0381351690602001356103dd565b005b61017e6104a3565b604080516001600160e01b03199092168252519081900360200190f35b610174600480360360608110156101b157600080fd5b506001600160a01b038135811691602081013590911690604001356104ae565b610174600480360360608110156101e757600080fd5b506001600160a01b03813581169160208101359091169060400135610556565b6100fb6004803603602081101561021d57600080fd5b503561058b565b61012c6004803603602081101561023a57600080fd5b50356105a8565b6102676004803603602081101561025757600080fd5b50356001600160a01b03166105d0565b60408051918252519081900360200190f35b6101746004803603604081101561028f57600080fd5b506001600160a01b0381351690602001351515610601565b610174600480360360808110156102bd57600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156102f857600080fd5b82018360208201111561030a57600080fd5b8035906020019184600183028401116401000000008311171561032c57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061068c945050505050565b6102676106c7565b6100fb6004803603604081101561038b57600080fd5b506001600160a01b03813581169160200135166106cd565b6001600160e01b03191660009081526020819052604090205460ff1690565b6000908152600260205260409020546001600160a01b031690565b60006103e8826105a8565b9050806001600160a01b0316836001600160a01b0316141561040957600080fd5b336001600160a01b0382161480610425575061042581336106cd565b61042e57600080fd5b60008281526002602090815260409182902080546001600160a01b038088166001600160a01b03199092168217909255835191851682529181019190915280820184905290517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259181900360600190a1505050565b6301ffc9a760e01b81565b806104b933826106fb565b6104c257600080fd5b6001600160a01b0384166104d557600080fd5b6001600160a01b0383166104e857600080fd5b6104f2848361075a565b6104fc84836107be565b6105068383610847565b604080516001600160a01b0380871682528516602082015280820184905290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a150505050565b8061056133826106fb565b61056a57600080fd5b6105858484846040518060200160405280600081525061068c565b50505050565b6000908152600160205260409020546001600160a01b0316151590565b6000818152600160205260408120546001600160a01b0316806105ca57600080fd5b92915050565b60006001600160a01b0382166105e557600080fd5b506001600160a01b031660009081526003602052604090205490565b6001600160a01b03821633141561061757600080fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805486151560ff19909116811790915581519485529184019290925282820152517f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319181900360600190a15050565b8161069733826106fb565b6106a057600080fd5b6106ab8585856104ae565b6106b7858585856108ca565b6106c057600080fd5b5050505050565b60055481565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b600080610707836105a8565b9050806001600160a01b0316846001600160a01b031614806107425750836001600160a01b0316610737846103c2565b6001600160a01b0316145b80610752575061075281856106cd565b949350505050565b816001600160a01b031661076d826105a8565b6001600160a01b03161461078057600080fd5b6000818152600260205260409020546001600160a01b0316156107ba57600081815260026020526040902080546001600160a01b03191690555b5050565b816001600160a01b03166107d1826105a8565b6001600160a01b0316146107e457600080fd5b6001600160a01b03821660009081526003602052604090205461080e90600163ffffffff6109f316565b6001600160a01b0390921660009081526003602090815260408083209490945591815260019091522080546001600160a01b0319169055565b6000818152600160205260409020546001600160a01b03161561086957600080fd5b600081815260016020818152604080842080546001600160a01b0319166001600160a01b03881690811790915584526003909152909120546108aa91610a08565b6001600160a01b0390921660009081526003602052604090209190915550565b60006108de846001600160a01b0316610a21565b6108ea57506001610752565b60405163785cf2dd60e11b81526001600160a01b0386811660048301908152602483018690526060604484019081528551606485015285516000949389169363f0b9e5ba938b938a938a936084019060208501908083838d5b8381101561095b578181015183820152602001610943565b50505050905090810190601f1680156109885780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1580156109a957600080fd5b505af11580156109bd573d6000803e3d6000fd5b505050506040513d60208110156109d357600080fd5b50516001600160e01b03191663785cf2dd60e11b14915050949350505050565b600082821115610a0257600080fd5b50900390565b600082820183811015610a1a57600080fd5b9392505050565b3b15159056fea265627a7a723058202cd746fd806b5453e2bdc74b43d9c5e7bfd2405fac94a43ac3a07995a59d5c4464736f6c63430005090032", + "sourceMap": "6942:12102:8:-;;;9116:205;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3645:38:8;3664:18;-1:-1:-1;;;;;3645:18:8;:38;:::i;:::-;9226;9245:18;-1:-1:-1;;;;;9226:18:8;:38;:::i;:::-;9271:44;9290:24;-1:-1:-1;;;;;9271:18:8;:44;:::i;:::-;6942:12102;;4000:161;4081:26;;;;;;4073:35;;;;;;4115:33;;:19;:33;;;;;;;;;;:40;;-1:-1:-1;;4115:40:8;4151:4;4115:40;;;4000:161::o;6942:12102::-;;;;;;;", + "deployedSourceMap": "6942:12102:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6942:12102:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3777:148;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3777:148:8;-1:-1:-1;;;;;;3777:148:8;;:::i;:::-;;;;;;;;;;;;;;;;;;11314:113;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11314:113:8;;:::i;:::-;;;;-1:-1:-1;;;;;11314:113:8;;;;;;;;;;;;;;10796:284;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10796:284:8;;;;;;;;:::i;:::-;;3208:54;;;:::i;:::-;;;;-1:-1:-1;;;;;;3208:54:8;;;;;;;;;;;;;;12846:358;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12846:358:8;;;;;;;;;;;;;;;;;:::i;13826:235::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13826:235:8;;;;;;;;;;;;;;;;;:::i;10238:143::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10238:143:8;;:::i;9885:168::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9885:168:8;;:::i;9520:145::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9520:145:8;-1:-1:-1;;;;;9520:145:8;;:::i;:::-;;;;;;;;;;;;;;;;11715:209;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11715:209:8;;;;;;;;;;:::i;14749:321::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;14749:321:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;14749:321:8;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;14749:321:8;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;14749:321:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;14749:321:8;;-1:-1:-1;14749:321:8;;-1:-1:-1;;;;;14749:321:8:i;8542:19::-;;;:::i;12241:177::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12241:177:8;;;;;;;;;;:::i;3777:148::-;-1:-1:-1;;;;;;3886:33:8;3863:4;3886:33;;;;;;;;;;;;;;3777:148::o;11314:113::-;11374:7;11397:24;;;:14;:24;;;;;;-1:-1:-1;;;;;11397:24:8;;11314:113::o;10796:284::-;10858:13;10874:17;10882:8;10874:7;:17::i;:::-;10858:33;;10913:5;-1:-1:-1;;;;;10906:12:8;:3;-1:-1:-1;;;;;10906:12:8;;;10898:21;;;;;;10934:10;-1:-1:-1;;;;;10934:19:8;;;;:58;;;10957:35;10974:5;10981:10;10957:16;:35::i;:::-;10926:67;;;;;;11002:24;;;;:14;:24;;;;;;;;;:30;;-1:-1:-1;;;;;11002:30:8;;;-1:-1:-1;;;;;;11002:30:8;;;;;;;;11044;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10796:284;;;:::o;3208:54::-;-1:-1:-1;;;3208:54:8;:::o;12846:358::-;12963:8;9056:39;9074:10;9086:8;9056:17;:39::i;:::-;9048:48;;;;;;-1:-1:-1;;;;;12991:19:8;;12983:28;;;;;;-1:-1:-1;;;;;13026:17:8;;13018:26;;;;;;13053:30;13067:5;13074:8;13053:13;:30::i;:::-;13090:32;13106:5;13113:8;13090:15;:32::i;:::-;13129:25;13140:3;13145:8;13129:10;:25::i;:::-;13168:30;;;-1:-1:-1;;;;;13168:30:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;12846:358;;;;:::o;13826:235::-;13947:8;9056:39;9074:10;9086:8;9056:17;:39::i;:::-;9048:48;;;;;;14013:42;14030:5;14037:3;14042:8;14013:42;;;;;;;;;;;;:16;:42::i;:::-;13826:235;;;;:::o;10238:143::-;10293:4;10322:20;;;:10;:20;;;;;;-1:-1:-1;;;;;10322:20:8;10356:19;;;10238:143::o;9885:168::-;9941:7;9973:20;;;:10;:20;;;;;;-1:-1:-1;;;;;9973:20:8;10008:19;10000:28;;;;;;10042:5;9885:168;-1:-1:-1;;9885:168:8:o;9520:145::-;9576:7;-1:-1:-1;;;;;9600:20:8;;9592:29;;;;;;-1:-1:-1;;;;;;9635:24:8;;;;;:16;:24;;;;;;;9520:145::o;11715:209::-;-1:-1:-1;;;;;11793:17:8;;11800:10;11793:17;;11785:26;;;;;;11836:10;11818:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;11818:34:8;;;;;;;;;;;;:46;;;;;-1:-1:-1;;11818:46:8;;;;;;;;11876:42;;;;;;;;;;;;;;;;;;;;;;;;;;11715:209;;:::o;14749:321::-;14895:8;9056:39;9074:10;9086:8;9056:17;:39::i;:::-;9048:48;;;;;;14915:34;14928:5;14935:3;14940:8;14915:12;:34::i;:::-;15010:53;15035:5;15042:3;15047:8;15057:5;15010:24;:53::i;:::-;15002:62;;;;;;14749:321;;;;;:::o;8542:19::-;;;;:::o;12241:177::-;-1:-1:-1;;;;;12376:25:8;;;12353:4;12376:25;;;:17;:25;;;;;;;;:36;;;;;;;;;;;;;;;12241:177::o;15426:455::-;15542:4;15558:13;15574:17;15582:8;15574:7;:17::i;:::-;15558:33;;15775:5;-1:-1:-1;;;;;15763:17:8;:8;-1:-1:-1;;;;;15763:17:8;;:61;;;;15816:8;-1:-1:-1;;;;;15791:33:8;:21;15803:8;15791:11;:21::i;:::-;-1:-1:-1;;;;;15791:33:8;;15763:61;:105;;;;15835:33;15852:5;15859:8;15835:16;:33::i;:::-;15747:128;15426:455;-1:-1:-1;;;;15426:455:8:o;16966:219::-;17068:6;-1:-1:-1;;;;;17047:27:8;:17;17055:8;17047:7;:17::i;:::-;-1:-1:-1;;;;;17047:27:8;;17039:36;;;;;;17122:1;17086:24;;;:14;:24;;;;;;-1:-1:-1;;;;;17086:24:8;:38;17082:98;;17170:1;17135:24;;;:14;:24;;;;;:37;;-1:-1:-1;;;;;;17135:37:8;;;17082:98;16966:219;;:::o;17949:218::-;18052:5;-1:-1:-1;;;;;18031:26:8;:17;18039:8;18031:7;:17::i;:::-;-1:-1:-1;;;;;18031:26:8;;18023:35;;;;;;-1:-1:-1;;;;;18091:23:8;;;;;;:16;:23;;;;;;:30;;18119:1;18091:30;:27;:30;:::i;:::-;-1:-1:-1;;;;;18065:23:8;;;;;;;:16;:23;;;;;;;;:56;;;;18128:20;;;:10;:20;;;;:33;;-1:-1:-1;;;;;;18128:33:8;;;17949:218::o;17455:208::-;17562:1;17530:20;;;:10;:20;;;;;;-1:-1:-1;;;;;17530:20:8;:34;17522:43;;;;;;17572:20;;;;:10;:20;;;;;;;;:26;;-1:-1:-1;;;;;;17572:26:8;-1:-1:-1;;;;;17572:26:8;;;;;;;;17629:21;;:16;:21;;;;;;;:28;;:25;:28::i;:::-;-1:-1:-1;;;;;17605:21:8;;;;;;;:16;:21;;;;;:52;;;;-1:-1:-1;17455:208:8:o;18684:357::-;18837:4;18858:16;:3;-1:-1:-1;;;;;18858:14:8;;:16::i;:::-;18853:51;;-1:-1:-1;18892:4:8;18885:11;;18853:51;18926:68;;-1:-1:-1;;;18926:68:8;;-1:-1:-1;;;;;18926:68:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18910:13;;18926:36;;;;;;18971:5;;18978:8;;18988:5;;18926:68;;;;;;;;;;18910:13;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;18926:68:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18926:68:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18926:68:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18926:68:8;-1:-1:-1;;;;;;19009:25:8;-1:-1:-1;;;19009:25:8;;-1:-1:-1;;18684:357:8;;;;;;:::o;431:150:22:-;489:7;522:1;517;:6;;509:15;;;;;;-1:-1:-1;547:5:22;;;431:150::o;589:::-;647:7;679:5;;;703:6;;;;695:15;;;;;;730:1;589:150;-1:-1:-1;;;589:150:22:o;1949:587:8:-;2490:17;2522:8;;;1949:587::o", + "source": "pragma solidity >=0.5.0 < 0.6.0;\r\nimport '../../dao/oz/SafeMath.sol';\r\n\r\n/**\r\n * @title SafeMath\r\n * @dev Math operations with safety checks that throw on error\r\n */\r\n//library SafeMath {\r\n//\r\n// /**\r\n// * @dev Multiplies two numbers, throws on overflow.\r\n// */\r\n// function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// // Gas optimization: this is cheaper than asserting 'a' not being zero, but the\r\n// // benefit is lost if 'b' is also tested.\r\n// // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\r\n// if (a == 0) {\r\n// return 0;\r\n// }\r\n//\r\n// c = a * b;\r\n// assert(c / a == b);\r\n// return c;\r\n// }\r\n//\r\n// /**\r\n// * @dev Integer division of two numbers, truncating the quotient.\r\n// */\r\n// function div(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// // assert(b > 0); // Solidity automatically throws when dividing by 0\r\n// // uint256 c = a / b;\r\n// // assert(a == b * c + a % b); // There is no case in which this doesn't hold\r\n// return a / b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).\r\n// */\r\n// function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// assert(b <= a);\r\n// return a - b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Adds two numbers, throws on overflow.\r\n// */\r\n// function add(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// c = a + b;\r\n// assert(c >= a);\r\n// return c;\r\n// }\r\n//}\r\n\r\n/**\r\n * Utility library of inline functions on addresses\r\n */\r\nlibrary AddressUtils {\r\n\r\n /**\r\n * Returns whether the target address is a contract\r\n * @dev This function will return false if invoked during the constructor of a contract,\r\n * as the code is not actually created until after the constructor finishes.\r\n * @param addr address to check\r\n * @return whether the target address is a contract\r\n */\r\n function isContract(address addr) internal view returns (bool) {\r\n uint256 size;\r\n // XXX Currently there is no better way to check if there is a contract in an address\r\n // than to check the size of the code at that address.\r\n // See https://ethereum.stackexchange.com/a/14016/36603\r\n // for more details about how this works.\r\n // TODO Check this again before the Serenity release, because all addresses will be\r\n // contracts then.\r\n // solium-disable-next-line security/no-inline-assembly\r\n assembly { size := extcodesize(addr) }\r\n return size > 0;\r\n }\r\n\r\n}\r\n\r\n/**\r\n * @title ERC165\r\n * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r\n */\r\ninterface ERC165 {\r\n\r\n /**\r\n * @notice Query if a contract implements an interface\r\n * @param _interfaceId The interface identifier, as specified in ERC-165\r\n * @dev Interface identification is specified in ERC-165. This function\r\n * uses less than 30,000 gas.\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool);\r\n}\r\n\r\n\r\n/**\r\n * @title SupportsInterfaceWithLookup\r\n * @author Matt Condon (@shrugs)\r\n * @dev Implements ERC165 using a lookup table.\r\n */\r\ncontract SupportsInterfaceWithLookup is ERC165 {\r\n bytes4 public constant InterfaceId_ERC165 = 0x01ffc9a7;\r\n /**\r\n * 0x01ffc9a7 ===\r\n * bytes4(keccak256('supportsInterface(bytes4)'))\r\n */\r\n\r\n /**\r\n * @dev a mapping of interface id to whether or not it's supported\r\n */\r\n mapping(bytes4 => bool) internal supportedInterfaces;\r\n\r\n /**\r\n * @dev A contract implementing SupportsInterfaceWithLookup\r\n * implement ERC165 itself\r\n */\r\n constructor()\r\n public\r\n {\r\n _registerInterface(InterfaceId_ERC165);\r\n }\r\n\r\n /**\r\n * @dev implement supportsInterface(bytes4) using a lookup table\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool)\r\n {\r\n return supportedInterfaces[_interfaceId];\r\n }\r\n\r\n /**\r\n * @dev private method for registering an interface\r\n */\r\n function _registerInterface(bytes4 _interfaceId)\r\n internal\r\n {\r\n require(_interfaceId != 0xffffffff);\r\n supportedInterfaces[_interfaceId] = true;\r\n }\r\n}\r\n\r\n/**\r\n * @title ERC721 token receiver interface\r\n * @dev Interface for any contract that wants to support safeTransfers\r\n * from ERC721 asset contracts.\r\n */\r\ncontract ERC721Receiver {\r\n /**\r\n * @dev Magic value to be returned upon successful reception of an NFT\r\n * Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`,\r\n * which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n */\r\n bytes4 internal constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n /**\r\n * @notice Handle the receipt of an NFT\r\n * @dev The ERC721 smart contract calls this function on the recipient\r\n * after a `safetransfer`. This function MAY throw to revert and reject the\r\n * transfer. This function MUST use 50,000 gas or less. Return of other\r\n * than the magic value MUST result in the transaction being reverted.\r\n * Note: the contract address is always the message sender.\r\n * @param _from The sending address\r\n * @param _tokenId The NFT identifier which is being transfered\r\n * @param _data Additional data with no specified format\r\n * @return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n */\r\n function onERC721Received(\r\n address _from,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n returns(bytes4);\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic interface\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721Basic is ERC165 {\r\n event Transfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n );\r\n event Approval(\r\n address _owner,\r\n address _approved,\r\n uint256 _tokenId\r\n );\r\n event ApprovalForAll(\r\n address _owner,\r\n address _operator,\r\n bool _approved\r\n );\r\n\r\n function balanceOf(address _owner) public view returns (uint256 _balance);\r\n function ownerOf(uint256 _tokenId) public view returns (address _owner);\r\n function exists(uint256 _tokenId) public view returns (bool _exists);\r\n\r\n function approve(address _to, uint256 _tokenId) public;\r\n function getApproved(uint256 _tokenId)\r\n public view returns (address _operator);\r\n\r\n function setApprovalForAll(address _operator, bool _approved) public;\r\n function isApprovedForAll(address _owner, address _operator)\r\n public view returns (bool);\r\n\r\n function transferFrom(address _from, address _to, uint256 _tokenId) public;\r\n function safeTransferFrom(address _from, address _to, uint256 _tokenId)\r\n public;\r\n\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public;\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic implementation\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721BasicToken is SupportsInterfaceWithLookup, ERC721Basic {\r\n\r\n bytes4 private constant InterfaceId_ERC721 = 0x80ac58cd;\r\n /*\r\n * 0x80ac58cd ===\r\n * bytes4(keccak256('balanceOf(address)')) ^\r\n * bytes4(keccak256('ownerOf(uint256)')) ^\r\n * bytes4(keccak256('approve(address,uint256)')) ^\r\n * bytes4(keccak256('getApproved(uint256)')) ^\r\n * bytes4(keccak256('setApprovalForAll(address,bool)')) ^\r\n * bytes4(keccak256('isApprovedForAll(address,address)')) ^\r\n * bytes4(keccak256('transferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)'))\r\n */\r\n\r\n bytes4 private constant InterfaceId_ERC721Exists = 0x4f558e79;\r\n /*\r\n * 0x4f558e79 ===\r\n * bytes4(keccak256('exists(uint256)'))\r\n */\r\n\r\n using SafeMath for uint256;\r\n using AddressUtils for address;\r\n\r\n // Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n // which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n bytes4 private constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n // Mapping from token ID to owner\r\n mapping (uint256 => address) internal tokenOwner;\r\n\r\n // Mapping from token ID to approved address\r\n mapping (uint256 => address) internal tokenApprovals;\r\n\r\n // Mapping from owner to number of owned token\r\n mapping (address => uint256) internal ownedTokensCount;\r\n\r\n // Mapping from owner to operator approvals\r\n mapping (address => mapping (address => bool)) internal operatorApprovals;\r\n\r\n\r\n uint public testint;\r\n /**\r\n * @dev Guarantees msg.sender is owner of the given token\r\n * @param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r\n */\r\n modifier onlyOwnerOf(uint256 _tokenId) {\r\n require(ownerOf(_tokenId) == msg.sender);\r\n _;\r\n }\r\n\r\n /**\r\n * @dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n * @param _tokenId uint256 ID of the token to validate\r\n */\r\n modifier canTransfer(uint256 _tokenId) {\r\n require(isApprovedOrOwner(msg.sender, _tokenId));\r\n _;\r\n }\r\n\r\n constructor()\r\n public\r\n {\r\n // register the supported interfaces to conform to ERC721 via ERC165\r\n _registerInterface(InterfaceId_ERC721);\r\n _registerInterface(InterfaceId_ERC721Exists);\r\n }\r\n\r\n /**\r\n * @dev Gets the balance of the specified address\r\n * @param _owner address to query the balance of\r\n * @return uint256 representing the amount owned by the passed address\r\n */\r\n function balanceOf(address _owner) public view returns (uint256) {\r\n require(_owner != address(0));\r\n return ownedTokensCount[_owner];\r\n }\r\n\r\n /**\r\n * @dev Gets the owner of the specified token ID\r\n * @param _tokenId uint256 ID of the token to query the owner of\r\n * @return owner address currently marked as the owner of the given token ID\r\n */\r\n function ownerOf(uint256 _tokenId) public view returns (address) {\r\n address owner = tokenOwner[_tokenId];\r\n require(owner != address(0));\r\n return owner;\r\n }\r\n\r\n /**\r\n * @dev Returns whether the specified token exists\r\n * @param _tokenId uint256 ID of the token to query the existence of\r\n * @return whether the token exists\r\n */\r\n function exists(uint256 _tokenId) public view returns (bool) {\r\n address owner = tokenOwner[_tokenId];\r\n return owner != address(0);\r\n }\r\n\r\n /**\r\n * @dev Approves another address to transfer the given token ID\r\n * The zero address indicates there is no approved address.\r\n * There can only be one approved address per token at a given time.\r\n * Can only be called by the token owner or an approved operator.\r\n * @param _to address to be approved for the given token ID\r\n * @param _tokenId uint256 ID of the token to be approved\r\n */\r\n function approve(address _to, uint256 _tokenId) public {\r\n address owner = ownerOf(_tokenId);\r\n require(_to != owner);\r\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender));\r\n\r\n tokenApprovals[_tokenId] = _to;\r\n emit Approval(owner, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Gets the approved address for a token ID, or zero if no address set\r\n * @param _tokenId uint256 ID of the token to query the approval of\r\n * @return address currently approved for the given token ID\r\n */\r\n function getApproved(uint256 _tokenId) public view returns (address) {\r\n return tokenApprovals[_tokenId];\r\n }\r\n\r\n /**\r\n * @dev Sets or unsets the approval of a given operator\r\n * An operator is allowed to transfer all tokens of the sender on their behalf\r\n * @param _to operator address to set the approval\r\n * @param _approved representing the status of the approval to be set\r\n */\r\n function setApprovalForAll(address _to, bool _approved) public {\r\n require(_to != msg.sender);\r\n operatorApprovals[msg.sender][_to] = _approved;\r\n emit ApprovalForAll(msg.sender, _to, _approved);\r\n }\r\n\r\n /**\r\n * @dev Tells whether an operator is approved by a given owner\r\n * @param _owner owner address which you want to query the approval of\r\n * @param _operator operator address which you want to query the approval of\r\n * @return bool whether the given operator is approved by the given owner\r\n */\r\n function isApprovedForAll(\r\n address _owner,\r\n address _operator\r\n )\r\n public\r\n view\r\n returns (bool)\r\n {\r\n return operatorApprovals[_owner][_operator];\r\n }\r\n\r\n /**\r\n * @dev Transfers the ownership of a given token ID to another address\r\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function transferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n require(_from != address(0));\r\n require(_to != address(0));\r\n\r\n clearApproval(_from, _tokenId);\r\n removeTokenFrom(_from, _tokenId);\r\n addTokenTo(_to, _tokenId);\r\n\r\n emit Transfer(_from, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n *\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n // solium-disable-next-line arg-overflow\r\n safeTransferFrom(_from, _to, _tokenId, \"\");\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes data to send along with a safe transfer check\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n transferFrom(_from, _to, _tokenId);\r\n // solium-disable-next-line arg-overflow\r\n require(checkAndCallSafeTransfer(_from, _to, _tokenId, _data));\r\n }\r\n\r\n /**\r\n * @dev Returns whether the given spender can transfer a given token ID\r\n * @param _spender address of the spender to query\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @return bool whether the msg.sender is approved for the given token ID,\r\n * is an operator of the owner, or is the owner of the token\r\n */\r\n function isApprovedOrOwner(\r\n address _spender,\r\n uint256 _tokenId\r\n )\r\n internal\r\n view\r\n returns (bool)\r\n {\r\n address owner = ownerOf(_tokenId);\r\n // Disable solium check because of\r\n // https://github.com/duaraghav8/Solium/issues/175\r\n // solium-disable-next-line operator-whitespace\r\n return (\r\n _spender == owner ||\r\n getApproved(_tokenId) == _spender ||\r\n isApprovedForAll(owner, _spender)\r\n );\r\n }\r\n\r\n /**\r\n * @dev Internal function to mint a new token\r\n * Reverts if the given token ID already exists\r\n * @param _to The address that will own the minted token\r\n * @param _tokenId uint256 ID of the token to be minted by the msg.sender\r\n */\r\n function _mint(address _to, uint256 _tokenId) internal {\r\n require(_to != address(0));\r\n addTokenTo(_to, _tokenId);\r\n emit Transfer(address(0), _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to burn a specific token\r\n * Reverts if the token does not exist\r\n * @param _tokenId uint256 ID of the token being burned by the msg.sender\r\n */\r\n function _burn(address _owner, uint256 _tokenId) internal {\r\n clearApproval(_owner, _tokenId);\r\n removeTokenFrom(_owner, _tokenId);\r\n emit Transfer(_owner, address(0), _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to clear current approval of a given token ID\r\n * Reverts if the given address is not indeed the owner of the token\r\n * @param _owner owner of the token\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function clearApproval(address _owner, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _owner);\r\n if (tokenApprovals[_tokenId] != address(0)) {\r\n tokenApprovals[_tokenId] = address(0);\r\n }\r\n }\r\n\r\n /**\r\n * @dev Internal function to add a token ID to the list of a given address\r\n * @param _to address representing the new owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r\n */\r\n function addTokenTo(address _to, uint256 _tokenId) internal {\r\n require(tokenOwner[_tokenId] == address(0));\r\n tokenOwner[_tokenId] = _to;\r\n ownedTokensCount[_to] = ownedTokensCount[_to].add(1);\r\n }\r\n\r\n /**\r\n * @dev Internal function to remove a token ID from the list of a given address\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r\n */\r\n function removeTokenFrom(address _from, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _from);\r\n ownedTokensCount[_from] = ownedTokensCount[_from].sub(1);\r\n tokenOwner[_tokenId] = address(0);\r\n }\r\n\r\n /**\r\n * @dev Internal function to invoke `onERC721Received` on a target address\r\n * The call is not executed if the target address is not a contract\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _to target address that will receive the tokens\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes optional data to send along with the call\r\n * @return whether the call correctly returned the expected magic value\r\n */\r\n function checkAndCallSafeTransfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n internal\r\n returns (bool)\r\n {\r\n if (!_to.isContract()) {\r\n return true;\r\n }\r\n bytes4 retval = ERC721Receiver(_to).onERC721Received(\r\n _from, _tokenId, _data);\r\n return (retval == ERC721_RECEIVED);\r\n }\r\n}\r\n\r\ncontract ERC721BasicTokenMock is ERC721BasicToken {\r\n function mint(address _to, uint256 _tokenId) public {\r\n super._mint(_to, _tokenId);\r\n }\r\n\r\n function burn(uint256 _tokenId) public {\r\n super._burn(ownerOf(_tokenId), _tokenId);\r\n }\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\inherited\\ERC721Basic.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", + "exportedSymbols": { + "AddressUtils": [ + 5009 + ], + "ERC165": [ + 5017 + ], + "ERC721Basic": [ + 5187 + ], + "ERC721BasicToken": [ + 5764 + ], + "ERC721BasicTokenMock": [ + 5797 + ], + "ERC721Receiver": [ + 5080 + ], + "SupportsInterfaceWithLookup": [ + 5065 + ] + }, + "id": 5798, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4991, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:8" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "../../dao/oz/SafeMath.sol", + "id": 4992, + "nodeType": "ImportDirective", + "scope": 5798, + "sourceUnit": 9858, + "src": "34:35:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "Utility library of inline functions on addresses\r", + "fullyImplemented": true, + "id": 5009, + "linearizedBaseContracts": [ + 5009 + ], + "name": "AddressUtils", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5007, + "nodeType": "Block", + "src": "2012:524:8", + "statements": [ + { + "assignments": [ + 5000 + ], + "declarations": [ + { + "constant": false, + "id": 5000, + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 5007, + "src": "2019:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2019:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5001, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "2019:12:8" + }, + { + "externalReferences": [ + { + "size": { + "declaration": 5000, + "isOffset": false, + "isSlot": false, + "src": "2482:4:8", + "valueSize": 1 + } + }, + { + "addr": { + "declaration": 4994, + "isOffset": false, + "isSlot": false, + "src": "2502:4:8", + "valueSize": 1 + } + } + ], + "id": 5002, + "nodeType": "InlineAssembly", + "operations": "{ size := extcodesize(addr) }", + "src": "2471:38:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5003, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5000, + "src": "2522:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5004, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2529:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2522:8:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4998, + "id": 5006, + "nodeType": "Return", + "src": "2515:15:8" + } + ] + }, + "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", + "id": 5008, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4994, + "name": "addr", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "1969:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1969:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1968:14:8" + }, + "returnParameters": { + "id": 4998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4997, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "2006:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4996, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2006:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2005:6:8" + }, + "scope": 5009, + "src": "1949:587:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "1590:951:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", + "fullyImplemented": false, + "id": 5017, + "linearizedBaseContracts": [ + 5017 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", + "id": 5016, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5012, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5011, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "2950:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5010, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2950:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2949:21:8" + }, + "returnParameters": { + "id": 5015, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5014, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "3009:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5013, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3009:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3008:6:8" + }, + "scope": 5017, + "src": "2923:92:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 5798, + "src": "2643:375:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5018, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "3196:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5019, + "nodeType": "InheritanceSpecifier", + "src": "3196:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", + "fullyImplemented": true, + "id": 5065, + "linearizedBaseContracts": [ + 5065, + 5017 + ], + "name": "SupportsInterfaceWithLookup", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5022, + "name": "InterfaceId_ERC165", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3208:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5020, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3208:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783031666663396137", + "id": 5021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3252:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 5026, + "name": "supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3443:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 5025, + "keyType": { + "id": 5023, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3451:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "3443:23:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 5024, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3461:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 5033, + "nodeType": "Block", + "src": "3638:51:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5030, + "name": "InterfaceId_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5022, + "src": "3664:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5029, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "3645:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3645:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5032, + "nodeType": "ExpressionStatement", + "src": "3645:38:8" + } + ] + }, + "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", + "id": 5034, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5027, + "nodeType": "ParameterList", + "parameters": [], + "src": "3620:2:8" + }, + "returnParameters": { + "id": 5028, + "nodeType": "ParameterList", + "parameters": [], + "src": "3638:0:8" + }, + "scope": 5065, + "src": "3609:80:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5045, + "nodeType": "Block", + "src": "3872:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5041, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "3886:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5043, + "indexExpression": { + "argumentTypes": null, + "id": 5042, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5036, + "src": "3906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3886:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5040, + "id": 5044, + "nodeType": "Return", + "src": "3879:40:8" + } + ] + }, + "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", + "id": 5046, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5037, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5036, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3804:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5035, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3804:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3803:21:8" + }, + "returnParameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5039, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3863:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5038, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3863:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3862:6:8" + }, + "scope": 5065, + "src": "3777:148:8", + "stateMutability": "view", + "superFunction": 5016, + "visibility": "external" + }, + { + "body": { + "id": 5063, + "nodeType": "Block", + "src": "4066:95:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5052, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4081:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30786666666666666666", + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4097:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "4081:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5051, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4073:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4073:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5056, + "nodeType": "ExpressionStatement", + "src": "4073:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5057, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "4115:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5059, + "indexExpression": { + "argumentTypes": null, + "id": 5058, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4135:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4115:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4151:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4115:40:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5062, + "nodeType": "ExpressionStatement", + "src": "4115:40:8" + } + ] + }, + "documentation": "@dev private method for registering an interface\r", + "id": 5064, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5048, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5064, + "src": "4028:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5047, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4028:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4027:21:8" + }, + "returnParameters": { + "id": 5050, + "nodeType": "ParameterList", + "parameters": [], + "src": "4066:0:8" + }, + "scope": 5065, + "src": "4000:161:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "3156:1008:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", + "fullyImplemented": false, + "id": 5080, + "linearizedBaseContracts": [ + 5080 + ], + "name": "ERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5068, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5080, + "src": "4607:53:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5066, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4607:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4650:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "internal" + }, + { + "body": null, + "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", + "id": 5079, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5070, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5364:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5069, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5364:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5072, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5384:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5384:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5074, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5407:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5073, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5407:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5357:73:8" + }, + "returnParameters": { + "id": 5078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5077, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5456:6:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5076, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "5456:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5455:8:8" + }, + "scope": 5080, + "src": "5332:132:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "4326:1141:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5081, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "5641:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5082, + "nodeType": "InheritanceSpecifier", + "src": "5641:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": false, + "id": 5187, + "linearizedBaseContracts": [ + 5187, + 5017 + ], + "name": "ERC721Basic", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5090, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5084, + "indexed": false, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5674:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5083, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5674:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5086, + "indexed": false, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5695:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5695:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5088, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5714:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5087, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5714:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5667:69:8" + }, + "src": "5653:84:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5098, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5092, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5762:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5091, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5762:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5094, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5784:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5784:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5096, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5809:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5809:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5755:76:8" + }, + "src": "5741:91:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5106, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 5105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5100, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5863:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5099, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5863:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5102, + "indexed": false, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5885:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5101, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5885:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5104, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5910:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5103, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5910:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5856:73:8" + }, + "src": "5836:94:8" + }, + { + "body": null, + "documentation": null, + "id": 5113, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5109, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5108, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5955:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5955:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5954:16:8" + }, + "returnParameters": { + "id": 5112, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5111, + "name": "_balance", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5992:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5110, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5992:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5991:18:8" + }, + "scope": 5187, + "src": "5936:74:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5120, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5115, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6031:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6030:18:8" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5118, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6070:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6070:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6069:16:8" + }, + "scope": 5187, + "src": "6014:72:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5127, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5122, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6106:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5121, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6106:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6105:18:8" + }, + "returnParameters": { + "id": 5126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5125, + "name": "_exists", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6145:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5124, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6145:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6144:14:8" + }, + "scope": 5187, + "src": "6090:69:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5134, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5129, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6182:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6182:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5131, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6195:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6195:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6181:31:8" + }, + "returnParameters": { + "id": 5133, + "nodeType": "ParameterList", + "parameters": [], + "src": "6219:0:8" + }, + "scope": 5187, + "src": "6165:55:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5141, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5136, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6245:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6245:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6244:18:8" + }, + "returnParameters": { + "id": 5140, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5139, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6289:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6289:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6288:19:8" + }, + "scope": 5187, + "src": "6224:84:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5148, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5143, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6341:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6341:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5145, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6360:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5144, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6360:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6340:35:8" + }, + "returnParameters": { + "id": 5147, + "nodeType": "ParameterList", + "parameters": [], + "src": "6382:0:8" + }, + "scope": 5187, + "src": "6314:69:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5157, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5153, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5150, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6413:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5149, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6413:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5152, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6429:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5151, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6429:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6412:35:8" + }, + "returnParameters": { + "id": 5156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5155, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6474:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5154, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6474:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6473:6:8" + }, + "scope": 5187, + "src": "6387:93:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5166, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5164, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5159, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6508:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6508:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5161, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6523:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6523:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5163, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6536:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5162, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6536:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6507:46:8" + }, + "returnParameters": { + "id": 5165, + "nodeType": "ParameterList", + "parameters": [], + "src": "6560:0:8" + }, + "scope": 5187, + "src": "6486:75:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5175, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5173, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5168, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6591:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5167, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6591:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5170, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6606:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5169, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6606:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5172, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6619:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5171, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6619:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6590:46:8" + }, + "returnParameters": { + "id": 5174, + "nodeType": "ParameterList", + "parameters": [], + "src": "6648:0:8" + }, + "scope": 5187, + "src": "6565:84:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5186, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5184, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5177, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6687:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5176, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6687:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5179, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6707:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5178, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6707:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5181, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6725:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5180, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6725:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5183, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6748:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5182, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6748:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6680:91:8" + }, + "returnParameters": { + "id": 5185, + "nodeType": "ParameterList", + "parameters": [], + "src": "6783:0:8" + }, + "scope": 5187, + "src": "6655:129:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "5617:1170:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5188, + "name": "SupportsInterfaceWithLookup", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5065, + "src": "6971:27:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", + "typeString": "contract SupportsInterfaceWithLookup" + } + }, + "id": 5189, + "nodeType": "InheritanceSpecifier", + "src": "6971:27:8" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5190, + "name": "ERC721Basic", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5187, + "src": "7000:11:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Basic_$5187", + "typeString": "contract ERC721Basic" + } + }, + "id": 5191, + "nodeType": "InheritanceSpecifier", + "src": "7000:11:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": true, + "id": 5764, + "linearizedBaseContracts": [ + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5194, + "name": "InterfaceId_ERC721", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7019:55:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5192, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7019:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783830616335386364", + "id": 5193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7064:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 5197, + "name": "InterfaceId_ERC721Exists", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7668:61:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5195, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7668:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783466353538653739", + "id": 5196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7719:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1331007097_by_1", + "typeString": "int_const 1331007097" + }, + "value": "0x4f558e79" + }, + "visibility": "private" + }, + { + "id": 5200, + "libraryName": { + "contractScope": null, + "id": 5198, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "7821:8:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "7815:27:8", + "typeName": { + "id": 5199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7834:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5203, + "libraryName": { + "contractScope": null, + "id": 5201, + "name": "AddressUtils", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5009, + "src": "7852:12:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddressUtils_$5009", + "typeString": "library AddressUtils" + } + }, + "nodeType": "UsingForDirective", + "src": "7846:31:8", + "typeName": { + "id": 5202, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7869:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "constant": true, + "id": 5206, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8044:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5204, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8044:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8086:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 5210, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8140:48:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5209, + "keyType": { + "id": 5207, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8149:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8140:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5208, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8160:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5214, + "name": "tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8243:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5213, + "keyType": { + "id": 5211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8252:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8243:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8263:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5218, + "name": "ownedTokensCount", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8352:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5217, + "keyType": { + "id": 5215, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8361:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8352:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8372:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5224, + "name": "operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8460:73:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 5223, + "keyType": { + "id": 5219, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8469:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8460:46:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 5222, + "keyType": { + "id": 5220, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8489:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8480:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 5221, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8500:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5226, + "name": "testint", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8542:19:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5225, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 5240, + "nodeType": "Block", + "src": "8774:61:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5232, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5228, + "src": "8797:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5231, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "8789:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8789:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5234, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "8810:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8810:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8789:31:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5230, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "8781:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8781:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5238, + "nodeType": "ExpressionStatement", + "src": "8781:40:8" + }, + { + "id": 5239, + "nodeType": "PlaceholderStatement", + "src": "8828:1:8" + } + ] + }, + "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", + "id": 5241, + "name": "onlyOwnerOf", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5228, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5241, + "src": "8756:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5227, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8756:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8755:18:8" + }, + "src": "8735:100:8", + "visibility": "internal" + }, + { + "body": { + "id": 5254, + "nodeType": "Block", + "src": "9041:69:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5247, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "9074:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9074:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5249, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5243, + "src": "9086:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5246, + "name": "isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5567, + "src": "9056:17:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 5250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9056:39:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5245, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9048:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9048:48:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5252, + "nodeType": "ExpressionStatement", + "src": "9048:48:8" + }, + { + "id": 5253, + "nodeType": "PlaceholderStatement", + "src": "9103:1:8" + } + ] + }, + "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", + "id": 5255, + "name": "canTransfer", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5244, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5243, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5255, + "src": "9023:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5242, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9022:18:8" + }, + "src": "9002:108:8", + "visibility": "internal" + }, + { + "body": { + "id": 5266, + "nodeType": "Block", + "src": "9145:176:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5259, + "name": "InterfaceId_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "9245:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5258, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9226:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9226:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5261, + "nodeType": "ExpressionStatement", + "src": "9226:38:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5263, + "name": "InterfaceId_ERC721Exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5197, + "src": "9290:24:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5262, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9271:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9271:44:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5265, + "nodeType": "ExpressionStatement", + "src": "9271:44:8" + } + ] + }, + "documentation": null, + "id": 5267, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5256, + "nodeType": "ParameterList", + "parameters": [], + "src": "9127:2:8" + }, + "returnParameters": { + "id": 5257, + "nodeType": "ParameterList", + "parameters": [], + "src": "9145:0:8" + }, + "scope": 5764, + "src": "9116:205:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5286, + "nodeType": "Block", + "src": "9585:80:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5275, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9600:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5277, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9618:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9610:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9610:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "9600:20:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5274, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9592:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9592:29:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5281, + "nodeType": "ExpressionStatement", + "src": "9592:29:8" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5282, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "9635:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5284, + "indexExpression": { + "argumentTypes": null, + "id": 5283, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9652:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9635:24:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5273, + "id": 5285, + "nodeType": "Return", + "src": "9628:31:8" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", + "id": 5287, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5269, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9539:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9539:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9538:16:8" + }, + "returnParameters": { + "id": 5273, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5272, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9576:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5271, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9576:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9575:9:8" + }, + "scope": 5764, + "src": "9520:145:8", + "stateMutability": "view", + "superFunction": 5113, + "visibility": "public" + }, + { + "body": { + "id": 5310, + "nodeType": "Block", + "src": "9950:103:8", + "statements": [ + { + "assignments": [ + 5295 + ], + "declarations": [ + { + "constant": false, + "id": 5295, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5310, + "src": "9957:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5294, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9957:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5299, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5296, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "9973:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5298, + "indexExpression": { + "argumentTypes": null, + "id": 5297, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5289, + "src": "9984:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9973:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9957:36:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5301, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10008:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10025:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10017:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10017:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10008:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5300, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10000:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5307, + "nodeType": "ExpressionStatement", + "src": "10000:28:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5308, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10042:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5293, + "id": 5309, + "nodeType": "Return", + "src": "10035:12:8" + } + ] + }, + "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", + "id": 5311, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5289, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9902:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9902:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9901:18:8" + }, + "returnParameters": { + "id": 5293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5292, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9941:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9941:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9940:9:8" + }, + "scope": 5764, + "src": "9885:168:8", + "stateMutability": "view", + "superFunction": 5120, + "visibility": "public" + }, + { + "body": { + "id": 5330, + "nodeType": "Block", + "src": "10299:82:8", + "statements": [ + { + "assignments": [ + 5319 + ], + "declarations": [ + { + "constant": false, + "id": 5319, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5330, + "src": "10306:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5318, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10306:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5323, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5320, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "10322:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5322, + "indexExpression": { + "argumentTypes": null, + "id": 5321, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5313, + "src": "10333:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10322:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10306:36:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5324, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5319, + "src": "10356:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10373:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10365:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10365:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10356:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5317, + "id": 5329, + "nodeType": "Return", + "src": "10349:26:8" + } + ] + }, + "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", + "id": 5331, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5313, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10254:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10254:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10253:18:8" + }, + "returnParameters": { + "id": 5317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5316, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10293:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5315, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10293:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10292:6:8" + }, + "scope": 5764, + "src": "10238:143:8", + "stateMutability": "view", + "superFunction": 5127, + "visibility": "public" + }, + { + "body": { + "id": 5375, + "nodeType": "Block", + "src": "10851:229:8", + "statements": [ + { + "assignments": [ + 5339 + ], + "declarations": [ + { + "constant": false, + "id": 5339, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5375, + "src": "10858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5343, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5341, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "10882:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5340, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "10874:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10874:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10858:33:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5345, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "10906:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 5346, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10913:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5344, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10898:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10898:21:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5349, + "nodeType": "ExpressionStatement", + "src": "10898:21:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5351, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10934:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10934:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5353, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10948:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10934:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5356, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10974:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5357, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10981:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10981:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 5355, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "10957:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10957:35:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10934:58:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5350, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10926:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10926:67:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5362, + "nodeType": "ExpressionStatement", + "src": "10926:67:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5363, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11002:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5365, + "indexExpression": { + "argumentTypes": null, + "id": 5364, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11017:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11002:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5366, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11029:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11002:30:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5368, + "nodeType": "ExpressionStatement", + "src": "11002:30:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5370, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "11053:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5371, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11060:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5372, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11065:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5369, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5098, + "src": "11044:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11044:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5374, + "nodeType": "EmitStatement", + "src": "11039:35:8" + } + ] + }, + "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", + "id": 5376, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5336, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5333, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10813:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10813:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5335, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10826:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5334, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10826:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10812:31:8" + }, + "returnParameters": { + "id": 5337, + "nodeType": "ParameterList", + "parameters": [], + "src": "10851:0:8" + }, + "scope": 5764, + "src": "10796:284:8", + "stateMutability": "nonpayable", + "superFunction": 5134, + "visibility": "public" + }, + { + "body": { + "id": 5387, + "nodeType": "Block", + "src": "11383:44:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5383, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11397:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5385, + "indexExpression": { + "argumentTypes": null, + "id": 5384, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5378, + "src": "11412:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11397:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5382, + "id": 5386, + "nodeType": "Return", + "src": "11390:31:8" + } + ] + }, + "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", + "id": 5388, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5378, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11335:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5377, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11335:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11334:18:8" + }, + "returnParameters": { + "id": 5382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5381, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11374:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11374:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11373:9:8" + }, + "scope": 5764, + "src": "11314:113:8", + "stateMutability": "view", + "superFunction": 5141, + "visibility": "public" + }, + { + "body": { + "id": 5418, + "nodeType": "Block", + "src": "11778:146:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5396, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11793:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5397, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11800:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11800:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "11793:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5395, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "11785:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11785:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "11785:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5402, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "11818:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5406, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5403, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11836:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11836:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11818:29:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5407, + "indexExpression": { + "argumentTypes": null, + "id": 5405, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11848:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11818:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11855:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11818:46:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5410, + "nodeType": "ExpressionStatement", + "src": "11818:46:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5412, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11891:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11891:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5414, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11903:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5415, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11908:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5411, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5106, + "src": "11876:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 5416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11876:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5417, + "nodeType": "EmitStatement", + "src": "11871:47:8" + } + ] + }, + "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", + "id": 5419, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5390, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11742:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11742:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5392, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11755:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11755:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11741:29:8" + }, + "returnParameters": { + "id": 5394, + "nodeType": "ParameterList", + "parameters": [], + "src": "11778:0:8" + }, + "scope": 5764, + "src": "11715:209:8", + "stateMutability": "nonpayable", + "superFunction": 5148, + "visibility": "public" + }, + { + "body": { + "id": 5434, + "nodeType": "Block", + "src": "12362:56:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5428, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "12376:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5430, + "indexExpression": { + "argumentTypes": null, + "id": 5429, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5421, + "src": "12394:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5432, + "indexExpression": { + "argumentTypes": null, + "id": 5431, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "12402:9:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:36:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5427, + "id": 5433, + "nodeType": "Return", + "src": "12369:43:8" + } + ] + }, + "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", + "id": 5435, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5421, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12273:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5420, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12273:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5423, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12294:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5422, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12294:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12266:50:8" + }, + "returnParameters": { + "id": 5427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5426, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12353:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5425, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12353:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12352:6:8" + }, + "scope": 5764, + "src": "12241:177:8", + "stateMutability": "view", + "superFunction": 5157, + "visibility": "public" + }, + { + "body": { + "id": 5484, + "nodeType": "Block", + "src": "12976:228:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5448, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "12991:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13008:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13000:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "12991:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5447, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "12983:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12983:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5454, + "nodeType": "ExpressionStatement", + "src": "12983:28:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5456, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13026:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13041:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13033:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13033:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13026:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5455, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "13018:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13018:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5462, + "nodeType": "ExpressionStatement", + "src": "13018:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5464, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13067:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5465, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13074:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5463, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "13053:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13053:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5467, + "nodeType": "ExpressionStatement", + "src": "13053:30:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5469, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13106:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5470, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13113:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5468, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "13090:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13090:32:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5472, + "nodeType": "ExpressionStatement", + "src": "13090:32:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5474, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13140:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5475, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13145:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5473, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "13129:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13129:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5477, + "nodeType": "ExpressionStatement", + "src": "13129:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5479, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13177:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5480, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13184:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5481, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13189:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5478, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "13168:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13168:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5483, + "nodeType": "EmitStatement", + "src": "13163:35:8" + } + ] + }, + "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5485, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5444, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "12963:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5445, + "modifierName": { + "argumentTypes": null, + "id": 5443, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "12951:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12951:21:8" + } + ], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5442, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5437, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12874:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5436, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12874:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5439, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12894:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12894:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5441, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12912:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5440, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12912:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12867:66:8" + }, + "returnParameters": { + "id": 5446, + "nodeType": "ParameterList", + "parameters": [], + "src": "12976:0:8" + }, + "scope": 5764, + "src": "12846:358:8", + "stateMutability": "nonpayable", + "superFunction": 5166, + "visibility": "public" + }, + { + "body": { + "id": 5504, + "nodeType": "Block", + "src": "13960:101:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5498, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5487, + "src": "14030:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5499, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5489, + "src": "14037:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5500, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "14042:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 5501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14052:2:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 5497, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5505, + 5535 + ], + "referencedDeclaration": 5535, + "src": "14013:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 5502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14013:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5503, + "nodeType": "ExpressionStatement", + "src": "14013:42:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5505, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5494, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "13947:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5495, + "modifierName": { + "argumentTypes": null, + "id": 5493, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "13935:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "13935:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5487, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5486, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5489, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13878:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13878:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5491, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13896:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13896:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13851:66:8" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [], + "src": "13960:0:8" + }, + "scope": 5764, + "src": "13826:235:8", + "stateMutability": "nonpayable", + "superFunction": 5175, + "visibility": "public" + }, + { + "body": { + "id": 5534, + "nodeType": "Block", + "src": "14908:162:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5520, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "14928:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5521, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "14935:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5522, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14940:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5519, + "name": "transferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5485 + ], + "referencedDeclaration": 5485, + "src": "14915:12:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14915:34:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5524, + "nodeType": "ExpressionStatement", + "src": "14915:34:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5527, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "15035:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5528, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "15042:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5529, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "15047:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5530, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5513, + "src": "15057:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5526, + "name": "checkAndCallSafeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5763, + "src": "15010:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 5531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15010:53:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5525, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "15002:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15002:62:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5533, + "nodeType": "ExpressionStatement", + "src": "15002:62:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", + "id": 5535, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5516, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14895:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5517, + "modifierName": { + "argumentTypes": null, + "id": 5515, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "14883:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "14883:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5514, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5507, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14781:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14781:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5509, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14801:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14801:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5511, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14819:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14819:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5513, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14842:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5512, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14842:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14774:91:8" + }, + "returnParameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [], + "src": "14908:0:8" + }, + "scope": 5764, + "src": "14749:321:8", + "stateMutability": "nonpayable", + "superFunction": 5186, + "visibility": "public" + }, + { + "body": { + "id": 5566, + "nodeType": "Block", + "src": "15551:330:8", + "statements": [ + { + "assignments": [ + 5545 + ], + "declarations": [ + { + "constant": false, + "id": 5545, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5566, + "src": "15558:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15558:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5549, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5547, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15582:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5546, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "15574:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15574:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15558:33:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5550, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15763:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5551, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15775:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15763:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5554, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15803:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5553, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5388 + ], + "referencedDeclaration": 5388, + "src": "15791:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15791:21:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5556, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15816:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15791:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:61:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5560, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15852:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5561, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15859:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5559, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "15835:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15835:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:105:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5564, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15754:121:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5543, + "id": 5565, + "nodeType": "Return", + "src": "15747:128:8" + } + ] + }, + "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", + "id": 5567, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5540, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5537, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15459:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5536, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15459:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5539, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15482:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5538, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15482:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15452:51:8" + }, + "returnParameters": { + "id": 5543, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5542, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15542:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5541, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15541:6:8" + }, + "scope": 5764, + "src": "15426:455:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5595, + "nodeType": "Block", + "src": "16193:118:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5575, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16208:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16223:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16215:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16215:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "16208:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5574, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "16200:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16200:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5581, + "nodeType": "ExpressionStatement", + "src": "16200:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5583, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16244:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5584, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16249:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5582, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "16233:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16233:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5586, + "nodeType": "ExpressionStatement", + "src": "16233:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16287:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16279:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16279:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5591, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16291:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5592, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16296:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5587, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16270:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16270:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5594, + "nodeType": "EmitStatement", + "src": "16265:40:8" + } + ] + }, + "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", + "id": 5596, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5569, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16153:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5568, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16153:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5571, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16166:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5570, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16166:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16152:31:8" + }, + "returnParameters": { + "id": 5573, + "nodeType": "ParameterList", + "parameters": [], + "src": "16193:0:8" + }, + "scope": 5764, + "src": "16138:173:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5621, + "nodeType": "Block", + "src": "16562:134:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5604, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16583:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5605, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16591:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5603, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "16569:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16569:31:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5607, + "nodeType": "ExpressionStatement", + "src": "16569:31:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5609, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16623:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5610, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16631:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5608, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "16607:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16607:33:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5612, + "nodeType": "ExpressionStatement", + "src": "16607:33:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5614, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16661:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16677:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16669:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16669:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5618, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16681:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5613, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16652:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16652:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5620, + "nodeType": "EmitStatement", + "src": "16647:43:8" + } + ] + }, + "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", + "id": 5622, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5598, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16519:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16519:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5600, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16535:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5599, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16535:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16518:34:8" + }, + "returnParameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [], + "src": "16562:0:8" + }, + "scope": 5764, + "src": "16504:192:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5654, + "nodeType": "Block", + "src": "17032:153:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5631, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17055:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5630, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "17047:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17047:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5633, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5624, + "src": "17068:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17047:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5629, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17039:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17039:36:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5636, + "nodeType": "ExpressionStatement", + "src": "17039:36:8" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5637, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17086:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5639, + "indexExpression": { + "argumentTypes": null, + "id": 5638, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17101:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17086:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17122:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17114:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17114:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17086:38:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5653, + "nodeType": "IfStatement", + "src": "17082:98:8", + "trueBody": { + "id": 5652, + "nodeType": "Block", + "src": "17126:54:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5644, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17135:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5646, + "indexExpression": { + "argumentTypes": null, + "id": 5645, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17150:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17135:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5648, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17170:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17162:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17162:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17135:37:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5651, + "nodeType": "ExpressionStatement", + "src": "17135:37:8" + } + ] + } + } + ] + }, + "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5655, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "clearApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5624, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "16989:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5623, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16989:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5626, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "17005:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5625, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17005:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16988:34:8" + }, + "returnParameters": { + "id": 5628, + "nodeType": "ParameterList", + "parameters": [], + "src": "17032:0:8" + }, + "scope": 5764, + "src": "16966:219:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5689, + "nodeType": "Block", + "src": "17515:148:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5663, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17530:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5665, + "indexExpression": { + "argumentTypes": null, + "id": 5664, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17541:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17530:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17562:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17554:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17554:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17530:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5662, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17522:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17522:43:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5671, + "nodeType": "ExpressionStatement", + "src": "17522:43:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5672, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17572:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5674, + "indexExpression": { + "argumentTypes": null, + "id": 5673, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17583:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17572:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5675, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17595:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17572:26:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5677, + "nodeType": "ExpressionStatement", + "src": "17572:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5678, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17605:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5680, + "indexExpression": { + "argumentTypes": null, + "id": 5679, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17622:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17605:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17655:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5681, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17629:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5683, + "indexExpression": { + "argumentTypes": null, + "id": 5682, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17646:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17629:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "17629:25:8", + "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": 5686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17629:28:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17605:52:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5688, + "nodeType": "ExpressionStatement", + "src": "17605:52:8" + } + ] + }, + "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", + "id": 5690, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addTokenTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5657, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17475:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17475:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5659, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17488:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17488:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17474:31:8" + }, + "returnParameters": { + "id": 5661, + "nodeType": "ParameterList", + "parameters": [], + "src": "17515:0:8" + }, + "scope": 5764, + "src": "17455:208:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5724, + "nodeType": "Block", + "src": "18016:151:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5699, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18039:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5698, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "18031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18031:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5701, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18052:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "18031:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5697, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "18023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18023:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5704, + "nodeType": "ExpressionStatement", + "src": "18023:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5705, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18065:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5707, + "indexExpression": { + "argumentTypes": null, + "id": 5706, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18082:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18065:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18119:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5708, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18091:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5710, + "indexExpression": { + "argumentTypes": null, + "id": 5709, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18108:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18091:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "18091:27:8", + "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": 5713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18091:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18065:56:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5715, + "nodeType": "ExpressionStatement", + "src": "18065:56:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5716, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "18128:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5718, + "indexExpression": { + "argumentTypes": null, + "id": 5717, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18139:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18128:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18159:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18151:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18151:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "18128:33:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5723, + "nodeType": "ExpressionStatement", + "src": "18128:33:8" + } + ] + }, + "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", + "id": 5725, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeTokenFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5692, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17974:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5691, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17974:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5694, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17989:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17989:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17973:33:8" + }, + "returnParameters": { + "id": 5696, + "nodeType": "ParameterList", + "parameters": [], + "src": "18016:0:8" + }, + "scope": 5764, + "src": "17949:218:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5762, + "nodeType": "Block", + "src": "18846:195:8", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "18857:17:8", + "subExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5738, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18858:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 5008, + "src": "18858:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18858:16:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5745, + "nodeType": "IfStatement", + "src": "18853:51:8", + "trueBody": { + "id": 5744, + "nodeType": "Block", + "src": "18876:28:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18892:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5737, + "id": 5743, + "nodeType": "Return", + "src": "18885:11:8" + } + ] + } + }, + { + "assignments": [ + 5747 + ], + "declarations": [ + { + "constant": false, + "id": 5747, + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 5762, + "src": "18910:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5746, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "18910:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5756, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5752, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5727, + "src": "18971:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5753, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5731, + "src": "18978:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5754, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5733, + "src": "18988:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5749, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18941:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5748, + "name": "ERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "18926:14:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", + "typeString": "type(contract ERC721Receiver)" + } + }, + "id": 5750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:19:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Receiver_$5080", + "typeString": "contract ERC721Receiver" + } + }, + "id": 5751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 5079, + "src": "18926:36:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 5755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:68:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18910:84:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5757, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5747, + "src": "19009:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5758, + "name": "ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5206, + "src": "19019:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "19009:25:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5760, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19008:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5737, + "id": 5761, + "nodeType": "Return", + "src": "19001:34:8" + } + ] + }, + "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", + "id": 5763, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "checkAndCallSafeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5727, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18724:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5726, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18724:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5729, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18744:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18744:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5731, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18762:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5730, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18762:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5733, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18785:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5732, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18785:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18717:91:8" + }, + "returnParameters": { + "id": 5737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5736, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18837:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5735, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18837:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18836:6:8" + }, + "scope": 5764, + "src": "18684:357:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "6942:12102:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5765, + "name": "ERC721BasicToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5764, + "src": "19081:16:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", + "typeString": "contract ERC721BasicToken" + } + }, + "id": 5766, + "nodeType": "InheritanceSpecifier", + "src": "19081:16:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187, + 5764 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5797, + "linearizedBaseContracts": [ + 5797, + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicTokenMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5780, + "nodeType": "Block", + "src": "19155:39:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5776, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5768, + "src": "19174:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5777, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5770, + "src": "19179:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5773, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19162:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 5596, + "src": "19162:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19162:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5779, + "nodeType": "ExpressionStatement", + "src": "19162:26:8" + } + ] + }, + "documentation": null, + "id": 5781, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19117:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19117:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19130:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19130:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19116:31:8" + }, + "returnParameters": { + "id": 5772, + "nodeType": "ParameterList", + "parameters": [], + "src": "19155:0:8" + }, + "scope": 5797, + "src": "19103:91:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5795, + "nodeType": "Block", + "src": "19239:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5790, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19266:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5789, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "19258:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19258:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5792, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19277:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5786, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19246:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 5622, + "src": "19246:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19246:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5794, + "nodeType": "ExpressionStatement", + "src": "19246:40:8" + } + ] + }, + "documentation": null, + "id": 5796, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5783, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5796, + "src": "19214:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5782, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19214:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19213:18:8" + }, + "returnParameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [], + "src": "19239:0:8" + }, + "scope": 5797, + "src": "19200:92:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "19048:247:8" + } + ], + "src": "0:19297:8" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", + "exportedSymbols": { + "AddressUtils": [ + 5009 + ], + "ERC165": [ + 5017 + ], + "ERC721Basic": [ + 5187 + ], + "ERC721BasicToken": [ + 5764 + ], + "ERC721BasicTokenMock": [ + 5797 + ], + "ERC721Receiver": [ + 5080 + ], + "SupportsInterfaceWithLookup": [ + 5065 + ] + }, + "id": 5798, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4991, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:8" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "../../dao/oz/SafeMath.sol", + "id": 4992, + "nodeType": "ImportDirective", + "scope": 5798, + "sourceUnit": 9858, + "src": "34:35:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "Utility library of inline functions on addresses\r", + "fullyImplemented": true, + "id": 5009, + "linearizedBaseContracts": [ + 5009 + ], + "name": "AddressUtils", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5007, + "nodeType": "Block", + "src": "2012:524:8", + "statements": [ + { + "assignments": [ + 5000 + ], + "declarations": [ + { + "constant": false, + "id": 5000, + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 5007, + "src": "2019:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2019:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5001, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "2019:12:8" + }, + { + "externalReferences": [ + { + "size": { + "declaration": 5000, + "isOffset": false, + "isSlot": false, + "src": "2482:4:8", + "valueSize": 1 + } + }, + { + "addr": { + "declaration": 4994, + "isOffset": false, + "isSlot": false, + "src": "2502:4:8", + "valueSize": 1 + } + } + ], + "id": 5002, + "nodeType": "InlineAssembly", + "operations": "{ size := extcodesize(addr) }", + "src": "2471:38:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5003, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5000, + "src": "2522:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5004, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2529:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2522:8:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4998, + "id": 5006, + "nodeType": "Return", + "src": "2515:15:8" + } + ] + }, + "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", + "id": 5008, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4994, + "name": "addr", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "1969:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1969:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1968:14:8" + }, + "returnParameters": { + "id": 4998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4997, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "2006:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4996, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2006:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2005:6:8" + }, + "scope": 5009, + "src": "1949:587:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "1590:951:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", + "fullyImplemented": false, + "id": 5017, + "linearizedBaseContracts": [ + 5017 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", + "id": 5016, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5012, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5011, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "2950:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5010, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2950:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2949:21:8" + }, + "returnParameters": { + "id": 5015, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5014, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "3009:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5013, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3009:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3008:6:8" + }, + "scope": 5017, + "src": "2923:92:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 5798, + "src": "2643:375:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5018, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "3196:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5019, + "nodeType": "InheritanceSpecifier", + "src": "3196:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", + "fullyImplemented": true, + "id": 5065, + "linearizedBaseContracts": [ + 5065, + 5017 + ], + "name": "SupportsInterfaceWithLookup", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5022, + "name": "InterfaceId_ERC165", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3208:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5020, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3208:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783031666663396137", + "id": 5021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3252:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 5026, + "name": "supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3443:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 5025, + "keyType": { + "id": 5023, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3451:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "3443:23:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 5024, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3461:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 5033, + "nodeType": "Block", + "src": "3638:51:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5030, + "name": "InterfaceId_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5022, + "src": "3664:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5029, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "3645:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3645:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5032, + "nodeType": "ExpressionStatement", + "src": "3645:38:8" + } + ] + }, + "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", + "id": 5034, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5027, + "nodeType": "ParameterList", + "parameters": [], + "src": "3620:2:8" + }, + "returnParameters": { + "id": 5028, + "nodeType": "ParameterList", + "parameters": [], + "src": "3638:0:8" + }, + "scope": 5065, + "src": "3609:80:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5045, + "nodeType": "Block", + "src": "3872:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5041, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "3886:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5043, + "indexExpression": { + "argumentTypes": null, + "id": 5042, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5036, + "src": "3906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3886:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5040, + "id": 5044, + "nodeType": "Return", + "src": "3879:40:8" + } + ] + }, + "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", + "id": 5046, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5037, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5036, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3804:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5035, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3804:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3803:21:8" + }, + "returnParameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5039, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3863:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5038, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3863:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3862:6:8" + }, + "scope": 5065, + "src": "3777:148:8", + "stateMutability": "view", + "superFunction": 5016, + "visibility": "external" + }, + { + "body": { + "id": 5063, + "nodeType": "Block", + "src": "4066:95:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5052, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4081:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30786666666666666666", + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4097:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "4081:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5051, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4073:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4073:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5056, + "nodeType": "ExpressionStatement", + "src": "4073:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5057, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "4115:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5059, + "indexExpression": { + "argumentTypes": null, + "id": 5058, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4135:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4115:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4151:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4115:40:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5062, + "nodeType": "ExpressionStatement", + "src": "4115:40:8" + } + ] + }, + "documentation": "@dev private method for registering an interface\r", + "id": 5064, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5048, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5064, + "src": "4028:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5047, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4028:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4027:21:8" + }, + "returnParameters": { + "id": 5050, + "nodeType": "ParameterList", + "parameters": [], + "src": "4066:0:8" + }, + "scope": 5065, + "src": "4000:161:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "3156:1008:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", + "fullyImplemented": false, + "id": 5080, + "linearizedBaseContracts": [ + 5080 + ], + "name": "ERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5068, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5080, + "src": "4607:53:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5066, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4607:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4650:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "internal" + }, + { + "body": null, + "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", + "id": 5079, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5070, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5364:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5069, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5364:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5072, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5384:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5384:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5074, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5407:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5073, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5407:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5357:73:8" + }, + "returnParameters": { + "id": 5078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5077, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5456:6:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5076, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "5456:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5455:8:8" + }, + "scope": 5080, + "src": "5332:132:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "4326:1141:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5081, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "5641:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5082, + "nodeType": "InheritanceSpecifier", + "src": "5641:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": false, + "id": 5187, + "linearizedBaseContracts": [ + 5187, + 5017 + ], + "name": "ERC721Basic", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5090, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5084, + "indexed": false, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5674:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5083, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5674:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5086, + "indexed": false, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5695:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5695:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5088, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5714:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5087, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5714:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5667:69:8" + }, + "src": "5653:84:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5098, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5092, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5762:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5091, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5762:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5094, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5784:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5784:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5096, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5809:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5809:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5755:76:8" + }, + "src": "5741:91:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5106, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 5105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5100, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5863:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5099, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5863:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5102, + "indexed": false, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5885:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5101, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5885:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5104, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5910:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5103, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5910:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5856:73:8" + }, + "src": "5836:94:8" + }, + { + "body": null, + "documentation": null, + "id": 5113, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5109, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5108, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5955:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5955:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5954:16:8" + }, + "returnParameters": { + "id": 5112, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5111, + "name": "_balance", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5992:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5110, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5992:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5991:18:8" + }, + "scope": 5187, + "src": "5936:74:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5120, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5115, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6031:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6030:18:8" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5118, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6070:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6070:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6069:16:8" + }, + "scope": 5187, + "src": "6014:72:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5127, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5122, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6106:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5121, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6106:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6105:18:8" + }, + "returnParameters": { + "id": 5126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5125, + "name": "_exists", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6145:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5124, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6145:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6144:14:8" + }, + "scope": 5187, + "src": "6090:69:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5134, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5129, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6182:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6182:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5131, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6195:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6195:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6181:31:8" + }, + "returnParameters": { + "id": 5133, + "nodeType": "ParameterList", + "parameters": [], + "src": "6219:0:8" + }, + "scope": 5187, + "src": "6165:55:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5141, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5136, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6245:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6245:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6244:18:8" + }, + "returnParameters": { + "id": 5140, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5139, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6289:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6289:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6288:19:8" + }, + "scope": 5187, + "src": "6224:84:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5148, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5143, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6341:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6341:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5145, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6360:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5144, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6360:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6340:35:8" + }, + "returnParameters": { + "id": 5147, + "nodeType": "ParameterList", + "parameters": [], + "src": "6382:0:8" + }, + "scope": 5187, + "src": "6314:69:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5157, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5153, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5150, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6413:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5149, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6413:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5152, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6429:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5151, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6429:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6412:35:8" + }, + "returnParameters": { + "id": 5156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5155, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6474:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5154, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6474:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6473:6:8" + }, + "scope": 5187, + "src": "6387:93:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5166, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5164, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5159, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6508:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6508:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5161, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6523:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6523:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5163, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6536:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5162, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6536:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6507:46:8" + }, + "returnParameters": { + "id": 5165, + "nodeType": "ParameterList", + "parameters": [], + "src": "6560:0:8" + }, + "scope": 5187, + "src": "6486:75:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5175, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5173, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5168, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6591:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5167, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6591:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5170, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6606:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5169, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6606:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5172, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6619:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5171, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6619:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6590:46:8" + }, + "returnParameters": { + "id": 5174, + "nodeType": "ParameterList", + "parameters": [], + "src": "6648:0:8" + }, + "scope": 5187, + "src": "6565:84:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5186, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5184, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5177, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6687:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5176, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6687:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5179, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6707:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5178, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6707:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5181, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6725:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5180, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6725:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5183, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6748:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5182, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6748:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6680:91:8" + }, + "returnParameters": { + "id": 5185, + "nodeType": "ParameterList", + "parameters": [], + "src": "6783:0:8" + }, + "scope": 5187, + "src": "6655:129:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "5617:1170:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5188, + "name": "SupportsInterfaceWithLookup", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5065, + "src": "6971:27:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", + "typeString": "contract SupportsInterfaceWithLookup" + } + }, + "id": 5189, + "nodeType": "InheritanceSpecifier", + "src": "6971:27:8" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5190, + "name": "ERC721Basic", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5187, + "src": "7000:11:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Basic_$5187", + "typeString": "contract ERC721Basic" + } + }, + "id": 5191, + "nodeType": "InheritanceSpecifier", + "src": "7000:11:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": true, + "id": 5764, + "linearizedBaseContracts": [ + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5194, + "name": "InterfaceId_ERC721", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7019:55:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5192, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7019:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783830616335386364", + "id": 5193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7064:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 5197, + "name": "InterfaceId_ERC721Exists", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7668:61:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5195, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7668:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783466353538653739", + "id": 5196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7719:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1331007097_by_1", + "typeString": "int_const 1331007097" + }, + "value": "0x4f558e79" + }, + "visibility": "private" + }, + { + "id": 5200, + "libraryName": { + "contractScope": null, + "id": 5198, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "7821:8:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "7815:27:8", + "typeName": { + "id": 5199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7834:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5203, + "libraryName": { + "contractScope": null, + "id": 5201, + "name": "AddressUtils", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5009, + "src": "7852:12:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddressUtils_$5009", + "typeString": "library AddressUtils" + } + }, + "nodeType": "UsingForDirective", + "src": "7846:31:8", + "typeName": { + "id": 5202, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7869:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "constant": true, + "id": 5206, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8044:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5204, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8044:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8086:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 5210, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8140:48:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5209, + "keyType": { + "id": 5207, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8149:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8140:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5208, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8160:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5214, + "name": "tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8243:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5213, + "keyType": { + "id": 5211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8252:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8243:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8263:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5218, + "name": "ownedTokensCount", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8352:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5217, + "keyType": { + "id": 5215, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8361:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8352:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8372:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5224, + "name": "operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8460:73:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 5223, + "keyType": { + "id": 5219, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8469:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8460:46:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 5222, + "keyType": { + "id": 5220, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8489:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8480:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 5221, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8500:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5226, + "name": "testint", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8542:19:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5225, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 5240, + "nodeType": "Block", + "src": "8774:61:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5232, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5228, + "src": "8797:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5231, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "8789:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8789:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5234, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "8810:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8810:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8789:31:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5230, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "8781:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8781:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5238, + "nodeType": "ExpressionStatement", + "src": "8781:40:8" + }, + { + "id": 5239, + "nodeType": "PlaceholderStatement", + "src": "8828:1:8" + } + ] + }, + "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", + "id": 5241, + "name": "onlyOwnerOf", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5228, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5241, + "src": "8756:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5227, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8756:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8755:18:8" + }, + "src": "8735:100:8", + "visibility": "internal" + }, + { + "body": { + "id": 5254, + "nodeType": "Block", + "src": "9041:69:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5247, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "9074:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9074:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5249, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5243, + "src": "9086:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5246, + "name": "isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5567, + "src": "9056:17:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 5250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9056:39:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5245, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9048:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9048:48:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5252, + "nodeType": "ExpressionStatement", + "src": "9048:48:8" + }, + { + "id": 5253, + "nodeType": "PlaceholderStatement", + "src": "9103:1:8" + } + ] + }, + "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", + "id": 5255, + "name": "canTransfer", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5244, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5243, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5255, + "src": "9023:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5242, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9022:18:8" + }, + "src": "9002:108:8", + "visibility": "internal" + }, + { + "body": { + "id": 5266, + "nodeType": "Block", + "src": "9145:176:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5259, + "name": "InterfaceId_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "9245:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5258, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9226:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9226:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5261, + "nodeType": "ExpressionStatement", + "src": "9226:38:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5263, + "name": "InterfaceId_ERC721Exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5197, + "src": "9290:24:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5262, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9271:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9271:44:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5265, + "nodeType": "ExpressionStatement", + "src": "9271:44:8" + } + ] + }, + "documentation": null, + "id": 5267, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5256, + "nodeType": "ParameterList", + "parameters": [], + "src": "9127:2:8" + }, + "returnParameters": { + "id": 5257, + "nodeType": "ParameterList", + "parameters": [], + "src": "9145:0:8" + }, + "scope": 5764, + "src": "9116:205:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5286, + "nodeType": "Block", + "src": "9585:80:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5275, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9600:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5277, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9618:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9610:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9610:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "9600:20:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5274, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9592:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9592:29:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5281, + "nodeType": "ExpressionStatement", + "src": "9592:29:8" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5282, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "9635:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5284, + "indexExpression": { + "argumentTypes": null, + "id": 5283, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9652:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9635:24:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5273, + "id": 5285, + "nodeType": "Return", + "src": "9628:31:8" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", + "id": 5287, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5269, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9539:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9539:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9538:16:8" + }, + "returnParameters": { + "id": 5273, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5272, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9576:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5271, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9576:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9575:9:8" + }, + "scope": 5764, + "src": "9520:145:8", + "stateMutability": "view", + "superFunction": 5113, + "visibility": "public" + }, + { + "body": { + "id": 5310, + "nodeType": "Block", + "src": "9950:103:8", + "statements": [ + { + "assignments": [ + 5295 + ], + "declarations": [ + { + "constant": false, + "id": 5295, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5310, + "src": "9957:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5294, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9957:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5299, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5296, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "9973:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5298, + "indexExpression": { + "argumentTypes": null, + "id": 5297, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5289, + "src": "9984:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9973:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9957:36:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5301, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10008:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10025:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10017:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10017:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10008:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5300, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10000:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5307, + "nodeType": "ExpressionStatement", + "src": "10000:28:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5308, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10042:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5293, + "id": 5309, + "nodeType": "Return", + "src": "10035:12:8" + } + ] + }, + "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", + "id": 5311, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5289, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9902:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9902:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9901:18:8" + }, + "returnParameters": { + "id": 5293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5292, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9941:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9941:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9940:9:8" + }, + "scope": 5764, + "src": "9885:168:8", + "stateMutability": "view", + "superFunction": 5120, + "visibility": "public" + }, + { + "body": { + "id": 5330, + "nodeType": "Block", + "src": "10299:82:8", + "statements": [ + { + "assignments": [ + 5319 + ], + "declarations": [ + { + "constant": false, + "id": 5319, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5330, + "src": "10306:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5318, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10306:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5323, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5320, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "10322:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5322, + "indexExpression": { + "argumentTypes": null, + "id": 5321, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5313, + "src": "10333:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10322:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10306:36:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5324, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5319, + "src": "10356:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10373:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10365:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10365:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10356:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5317, + "id": 5329, + "nodeType": "Return", + "src": "10349:26:8" + } + ] + }, + "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", + "id": 5331, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5313, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10254:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10254:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10253:18:8" + }, + "returnParameters": { + "id": 5317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5316, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10293:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5315, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10293:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10292:6:8" + }, + "scope": 5764, + "src": "10238:143:8", + "stateMutability": "view", + "superFunction": 5127, + "visibility": "public" + }, + { + "body": { + "id": 5375, + "nodeType": "Block", + "src": "10851:229:8", + "statements": [ + { + "assignments": [ + 5339 + ], + "declarations": [ + { + "constant": false, + "id": 5339, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5375, + "src": "10858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5343, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5341, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "10882:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5340, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "10874:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10874:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10858:33:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5345, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "10906:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 5346, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10913:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5344, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10898:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10898:21:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5349, + "nodeType": "ExpressionStatement", + "src": "10898:21:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5351, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10934:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10934:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5353, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10948:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10934:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5356, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10974:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5357, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10981:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10981:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 5355, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "10957:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10957:35:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10934:58:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5350, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10926:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10926:67:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5362, + "nodeType": "ExpressionStatement", + "src": "10926:67:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5363, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11002:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5365, + "indexExpression": { + "argumentTypes": null, + "id": 5364, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11017:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11002:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5366, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11029:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11002:30:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5368, + "nodeType": "ExpressionStatement", + "src": "11002:30:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5370, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "11053:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5371, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11060:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5372, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11065:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5369, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5098, + "src": "11044:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11044:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5374, + "nodeType": "EmitStatement", + "src": "11039:35:8" + } + ] + }, + "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", + "id": 5376, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5336, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5333, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10813:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10813:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5335, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10826:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5334, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10826:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10812:31:8" + }, + "returnParameters": { + "id": 5337, + "nodeType": "ParameterList", + "parameters": [], + "src": "10851:0:8" + }, + "scope": 5764, + "src": "10796:284:8", + "stateMutability": "nonpayable", + "superFunction": 5134, + "visibility": "public" + }, + { + "body": { + "id": 5387, + "nodeType": "Block", + "src": "11383:44:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5383, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11397:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5385, + "indexExpression": { + "argumentTypes": null, + "id": 5384, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5378, + "src": "11412:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11397:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5382, + "id": 5386, + "nodeType": "Return", + "src": "11390:31:8" + } + ] + }, + "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", + "id": 5388, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5378, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11335:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5377, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11335:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11334:18:8" + }, + "returnParameters": { + "id": 5382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5381, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11374:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11374:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11373:9:8" + }, + "scope": 5764, + "src": "11314:113:8", + "stateMutability": "view", + "superFunction": 5141, + "visibility": "public" + }, + { + "body": { + "id": 5418, + "nodeType": "Block", + "src": "11778:146:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5396, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11793:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5397, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11800:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11800:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "11793:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5395, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "11785:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11785:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "11785:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5402, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "11818:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5406, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5403, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11836:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11836:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11818:29:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5407, + "indexExpression": { + "argumentTypes": null, + "id": 5405, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11848:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11818:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11855:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11818:46:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5410, + "nodeType": "ExpressionStatement", + "src": "11818:46:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5412, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11891:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11891:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5414, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11903:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5415, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11908:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5411, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5106, + "src": "11876:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 5416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11876:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5417, + "nodeType": "EmitStatement", + "src": "11871:47:8" + } + ] + }, + "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", + "id": 5419, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5390, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11742:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11742:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5392, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11755:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11755:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11741:29:8" + }, + "returnParameters": { + "id": 5394, + "nodeType": "ParameterList", + "parameters": [], + "src": "11778:0:8" + }, + "scope": 5764, + "src": "11715:209:8", + "stateMutability": "nonpayable", + "superFunction": 5148, + "visibility": "public" + }, + { + "body": { + "id": 5434, + "nodeType": "Block", + "src": "12362:56:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5428, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "12376:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5430, + "indexExpression": { + "argumentTypes": null, + "id": 5429, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5421, + "src": "12394:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5432, + "indexExpression": { + "argumentTypes": null, + "id": 5431, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "12402:9:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:36:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5427, + "id": 5433, + "nodeType": "Return", + "src": "12369:43:8" + } + ] + }, + "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", + "id": 5435, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5421, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12273:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5420, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12273:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5423, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12294:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5422, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12294:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12266:50:8" + }, + "returnParameters": { + "id": 5427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5426, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12353:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5425, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12353:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12352:6:8" + }, + "scope": 5764, + "src": "12241:177:8", + "stateMutability": "view", + "superFunction": 5157, + "visibility": "public" + }, + { + "body": { + "id": 5484, + "nodeType": "Block", + "src": "12976:228:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5448, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "12991:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13008:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13000:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "12991:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5447, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "12983:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12983:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5454, + "nodeType": "ExpressionStatement", + "src": "12983:28:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5456, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13026:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13041:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13033:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13033:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13026:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5455, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "13018:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13018:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5462, + "nodeType": "ExpressionStatement", + "src": "13018:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5464, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13067:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5465, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13074:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5463, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "13053:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13053:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5467, + "nodeType": "ExpressionStatement", + "src": "13053:30:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5469, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13106:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5470, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13113:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5468, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "13090:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13090:32:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5472, + "nodeType": "ExpressionStatement", + "src": "13090:32:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5474, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13140:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5475, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13145:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5473, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "13129:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13129:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5477, + "nodeType": "ExpressionStatement", + "src": "13129:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5479, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13177:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5480, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13184:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5481, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13189:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5478, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "13168:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13168:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5483, + "nodeType": "EmitStatement", + "src": "13163:35:8" + } + ] + }, + "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5485, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5444, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "12963:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5445, + "modifierName": { + "argumentTypes": null, + "id": 5443, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "12951:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12951:21:8" + } + ], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5442, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5437, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12874:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5436, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12874:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5439, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12894:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12894:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5441, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12912:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5440, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12912:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12867:66:8" + }, + "returnParameters": { + "id": 5446, + "nodeType": "ParameterList", + "parameters": [], + "src": "12976:0:8" + }, + "scope": 5764, + "src": "12846:358:8", + "stateMutability": "nonpayable", + "superFunction": 5166, + "visibility": "public" + }, + { + "body": { + "id": 5504, + "nodeType": "Block", + "src": "13960:101:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5498, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5487, + "src": "14030:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5499, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5489, + "src": "14037:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5500, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "14042:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 5501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14052:2:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 5497, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5505, + 5535 + ], + "referencedDeclaration": 5535, + "src": "14013:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 5502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14013:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5503, + "nodeType": "ExpressionStatement", + "src": "14013:42:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5505, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5494, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "13947:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5495, + "modifierName": { + "argumentTypes": null, + "id": 5493, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "13935:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "13935:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5487, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5486, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5489, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13878:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13878:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5491, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13896:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13896:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13851:66:8" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [], + "src": "13960:0:8" + }, + "scope": 5764, + "src": "13826:235:8", + "stateMutability": "nonpayable", + "superFunction": 5175, + "visibility": "public" + }, + { + "body": { + "id": 5534, + "nodeType": "Block", + "src": "14908:162:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5520, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "14928:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5521, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "14935:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5522, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14940:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5519, + "name": "transferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5485 + ], + "referencedDeclaration": 5485, + "src": "14915:12:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14915:34:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5524, + "nodeType": "ExpressionStatement", + "src": "14915:34:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5527, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "15035:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5528, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "15042:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5529, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "15047:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5530, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5513, + "src": "15057:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5526, + "name": "checkAndCallSafeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5763, + "src": "15010:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 5531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15010:53:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5525, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "15002:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15002:62:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5533, + "nodeType": "ExpressionStatement", + "src": "15002:62:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", + "id": 5535, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5516, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14895:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5517, + "modifierName": { + "argumentTypes": null, + "id": 5515, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "14883:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "14883:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5514, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5507, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14781:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14781:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5509, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14801:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14801:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5511, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14819:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14819:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5513, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14842:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5512, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14842:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14774:91:8" + }, + "returnParameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [], + "src": "14908:0:8" + }, + "scope": 5764, + "src": "14749:321:8", + "stateMutability": "nonpayable", + "superFunction": 5186, + "visibility": "public" + }, + { + "body": { + "id": 5566, + "nodeType": "Block", + "src": "15551:330:8", + "statements": [ + { + "assignments": [ + 5545 + ], + "declarations": [ + { + "constant": false, + "id": 5545, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5566, + "src": "15558:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15558:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5549, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5547, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15582:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5546, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "15574:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15574:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15558:33:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5550, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15763:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5551, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15775:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15763:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5554, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15803:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5553, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5388 + ], + "referencedDeclaration": 5388, + "src": "15791:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15791:21:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5556, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15816:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15791:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:61:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5560, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15852:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5561, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15859:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5559, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "15835:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15835:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:105:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5564, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15754:121:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5543, + "id": 5565, + "nodeType": "Return", + "src": "15747:128:8" + } + ] + }, + "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", + "id": 5567, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5540, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5537, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15459:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5536, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15459:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5539, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15482:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5538, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15482:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15452:51:8" + }, + "returnParameters": { + "id": 5543, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5542, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15542:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5541, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15541:6:8" + }, + "scope": 5764, + "src": "15426:455:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5595, + "nodeType": "Block", + "src": "16193:118:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5575, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16208:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16223:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16215:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16215:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "16208:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5574, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "16200:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16200:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5581, + "nodeType": "ExpressionStatement", + "src": "16200:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5583, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16244:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5584, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16249:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5582, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "16233:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16233:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5586, + "nodeType": "ExpressionStatement", + "src": "16233:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16287:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16279:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16279:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5591, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16291:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5592, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16296:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5587, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16270:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16270:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5594, + "nodeType": "EmitStatement", + "src": "16265:40:8" + } + ] + }, + "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", + "id": 5596, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5569, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16153:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5568, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16153:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5571, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16166:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5570, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16166:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16152:31:8" + }, + "returnParameters": { + "id": 5573, + "nodeType": "ParameterList", + "parameters": [], + "src": "16193:0:8" + }, + "scope": 5764, + "src": "16138:173:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5621, + "nodeType": "Block", + "src": "16562:134:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5604, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16583:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5605, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16591:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5603, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "16569:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16569:31:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5607, + "nodeType": "ExpressionStatement", + "src": "16569:31:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5609, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16623:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5610, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16631:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5608, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "16607:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16607:33:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5612, + "nodeType": "ExpressionStatement", + "src": "16607:33:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5614, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16661:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16677:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16669:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16669:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5618, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16681:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5613, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16652:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16652:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5620, + "nodeType": "EmitStatement", + "src": "16647:43:8" + } + ] + }, + "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", + "id": 5622, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5598, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16519:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16519:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5600, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16535:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5599, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16535:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16518:34:8" + }, + "returnParameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [], + "src": "16562:0:8" + }, + "scope": 5764, + "src": "16504:192:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5654, + "nodeType": "Block", + "src": "17032:153:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5631, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17055:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5630, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "17047:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17047:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5633, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5624, + "src": "17068:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17047:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5629, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17039:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17039:36:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5636, + "nodeType": "ExpressionStatement", + "src": "17039:36:8" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5637, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17086:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5639, + "indexExpression": { + "argumentTypes": null, + "id": 5638, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17101:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17086:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17122:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17114:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17114:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17086:38:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5653, + "nodeType": "IfStatement", + "src": "17082:98:8", + "trueBody": { + "id": 5652, + "nodeType": "Block", + "src": "17126:54:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5644, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17135:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5646, + "indexExpression": { + "argumentTypes": null, + "id": 5645, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17150:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17135:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5648, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17170:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17162:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17162:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17135:37:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5651, + "nodeType": "ExpressionStatement", + "src": "17135:37:8" + } + ] + } + } + ] + }, + "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5655, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "clearApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5624, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "16989:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5623, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16989:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5626, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "17005:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5625, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17005:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16988:34:8" + }, + "returnParameters": { + "id": 5628, + "nodeType": "ParameterList", + "parameters": [], + "src": "17032:0:8" + }, + "scope": 5764, + "src": "16966:219:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5689, + "nodeType": "Block", + "src": "17515:148:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5663, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17530:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5665, + "indexExpression": { + "argumentTypes": null, + "id": 5664, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17541:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17530:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17562:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17554:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17554:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17530:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5662, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17522:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17522:43:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5671, + "nodeType": "ExpressionStatement", + "src": "17522:43:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5672, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17572:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5674, + "indexExpression": { + "argumentTypes": null, + "id": 5673, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17583:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17572:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5675, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17595:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17572:26:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5677, + "nodeType": "ExpressionStatement", + "src": "17572:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5678, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17605:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5680, + "indexExpression": { + "argumentTypes": null, + "id": 5679, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17622:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17605:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17655:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5681, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17629:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5683, + "indexExpression": { + "argumentTypes": null, + "id": 5682, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17646:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17629:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "17629:25:8", + "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": 5686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17629:28:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17605:52:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5688, + "nodeType": "ExpressionStatement", + "src": "17605:52:8" + } + ] + }, + "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", + "id": 5690, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addTokenTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5657, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17475:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17475:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5659, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17488:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17488:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17474:31:8" + }, + "returnParameters": { + "id": 5661, + "nodeType": "ParameterList", + "parameters": [], + "src": "17515:0:8" + }, + "scope": 5764, + "src": "17455:208:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5724, + "nodeType": "Block", + "src": "18016:151:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5699, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18039:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5698, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "18031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18031:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5701, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18052:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "18031:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5697, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "18023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18023:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5704, + "nodeType": "ExpressionStatement", + "src": "18023:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5705, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18065:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5707, + "indexExpression": { + "argumentTypes": null, + "id": 5706, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18082:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18065:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18119:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5708, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18091:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5710, + "indexExpression": { + "argumentTypes": null, + "id": 5709, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18108:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18091:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "18091:27:8", + "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": 5713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18091:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18065:56:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5715, + "nodeType": "ExpressionStatement", + "src": "18065:56:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5716, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "18128:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5718, + "indexExpression": { + "argumentTypes": null, + "id": 5717, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18139:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18128:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18159:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18151:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18151:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "18128:33:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5723, + "nodeType": "ExpressionStatement", + "src": "18128:33:8" + } + ] + }, + "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", + "id": 5725, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeTokenFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5692, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17974:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5691, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17974:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5694, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17989:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17989:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17973:33:8" + }, + "returnParameters": { + "id": 5696, + "nodeType": "ParameterList", + "parameters": [], + "src": "18016:0:8" + }, + "scope": 5764, + "src": "17949:218:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5762, + "nodeType": "Block", + "src": "18846:195:8", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "18857:17:8", + "subExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5738, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18858:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 5008, + "src": "18858:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18858:16:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5745, + "nodeType": "IfStatement", + "src": "18853:51:8", + "trueBody": { + "id": 5744, + "nodeType": "Block", + "src": "18876:28:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18892:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5737, + "id": 5743, + "nodeType": "Return", + "src": "18885:11:8" + } + ] + } + }, + { + "assignments": [ + 5747 + ], + "declarations": [ + { + "constant": false, + "id": 5747, + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 5762, + "src": "18910:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5746, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "18910:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5756, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5752, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5727, + "src": "18971:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5753, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5731, + "src": "18978:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5754, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5733, + "src": "18988:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5749, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18941:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5748, + "name": "ERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "18926:14:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", + "typeString": "type(contract ERC721Receiver)" + } + }, + "id": 5750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:19:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Receiver_$5080", + "typeString": "contract ERC721Receiver" + } + }, + "id": 5751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 5079, + "src": "18926:36:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 5755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:68:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18910:84:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5757, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5747, + "src": "19009:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5758, + "name": "ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5206, + "src": "19019:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "19009:25:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5760, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19008:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5737, + "id": 5761, + "nodeType": "Return", + "src": "19001:34:8" + } + ] + }, + "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", + "id": 5763, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "checkAndCallSafeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5727, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18724:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5726, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18724:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5729, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18744:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18744:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5731, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18762:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5730, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18762:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5733, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18785:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5732, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18785:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18717:91:8" + }, + "returnParameters": { + "id": 5737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5736, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18837:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5735, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18837:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18836:6:8" + }, + "scope": 5764, + "src": "18684:357:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "6942:12102:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5765, + "name": "ERC721BasicToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5764, + "src": "19081:16:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", + "typeString": "contract ERC721BasicToken" + } + }, + "id": 5766, + "nodeType": "InheritanceSpecifier", + "src": "19081:16:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187, + 5764 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5797, + "linearizedBaseContracts": [ + 5797, + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicTokenMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5780, + "nodeType": "Block", + "src": "19155:39:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5776, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5768, + "src": "19174:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5777, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5770, + "src": "19179:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5773, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19162:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 5596, + "src": "19162:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19162:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5779, + "nodeType": "ExpressionStatement", + "src": "19162:26:8" + } + ] + }, + "documentation": null, + "id": 5781, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19117:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19117:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19130:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19130:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19116:31:8" + }, + "returnParameters": { + "id": 5772, + "nodeType": "ParameterList", + "parameters": [], + "src": "19155:0:8" + }, + "scope": 5797, + "src": "19103:91:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5795, + "nodeType": "Block", + "src": "19239:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5790, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19266:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5789, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "19258:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19258:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5792, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19277:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5786, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19246:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 5622, + "src": "19246:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19246:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5794, + "nodeType": "ExpressionStatement", + "src": "19246:40:8" + } + ] + }, + "documentation": null, + "id": 5796, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5783, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5796, + "src": "19214:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5782, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19214:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19213:18:8" + }, + "returnParameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [], + "src": "19239:0:8" + }, + "scope": 5797, + "src": "19200:92:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "19048:247:8" + } + ], + "src": "0:19297:8" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:20.006Z", + "devdoc": { + "details": "see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "methods": { + "approve(address,uint256)": { + "details": "Approves another address to transfer the given token ID\r The zero address indicates there is no approved address.\r There can only be one approved address per token at a given time.\r Can only be called by the token owner or an approved operator.\r", + "params": { + "_to": "address to be approved for the given token ID\r", + "_tokenId": "uint256 ID of the token to be approved\r" + } + }, + "balanceOf(address)": { + "details": "Gets the balance of the specified address\r", + "params": { + "_owner": "address to query the balance of\r" + }, + "return": "uint256 representing the amount owned by the passed address\r" + }, + "exists(uint256)": { + "details": "Returns whether the specified token exists\r", + "params": { + "_tokenId": "uint256 ID of the token to query the existence of\r" + }, + "return": "whether the token exists\r" + }, + "getApproved(uint256)": { + "details": "Gets the approved address for a token ID, or zero if no address set\r", + "params": { + "_tokenId": "uint256 ID of the token to query the approval of\r" + }, + "return": "address currently approved for the given token ID\r" + }, + "isApprovedForAll(address,address)": { + "details": "Tells whether an operator is approved by a given owner\r", + "params": { + "_operator": "operator address which you want to query the approval of\r", + "_owner": "owner address which you want to query the approval of\r" + }, + "return": "bool whether the given operator is approved by the given owner\r" + }, + "ownerOf(uint256)": { + "details": "Gets the owner of the specified token ID\r", + "params": { + "_tokenId": "uint256 ID of the token to query the owner of\r" + }, + "return": "owner address currently marked as the owner of the given token ID\r" + }, + "safeTransferFrom(address,address,uint256)": { + "details": "Safely transfers the ownership of a given token ID to another address\r If the target address is a contract, it must implement `onERC721Received`,\r which is called upon a safe transfer, and return the magic value\r `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r the transfer is reverted.\r * Requires the msg sender to be the owner, approved, or operator\r", + "params": { + "_from": "current owner of the token\r", + "_to": "address to receive the ownership of the given token ID\r", + "_tokenId": "uint256 ID of the token to be transferred\r" + } + }, + "safeTransferFrom(address,address,uint256,bytes)": { + "details": "Safely transfers the ownership of a given token ID to another address\r If the target address is a contract, it must implement `onERC721Received`,\r which is called upon a safe transfer, and return the magic value\r `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r the transfer is reverted.\r Requires the msg sender to be the owner, approved, or operator\r", + "params": { + "_data": "bytes data to send along with a safe transfer check\r", + "_from": "current owner of the token\r", + "_to": "address to receive the ownership of the given token ID\r", + "_tokenId": "uint256 ID of the token to be transferred\r" + } + }, + "setApprovalForAll(address,bool)": { + "details": "Sets or unsets the approval of a given operator\r An operator is allowed to transfer all tokens of the sender on their behalf\r", + "params": { + "_approved": "representing the status of the approval to be set\r", + "_to": "operator address to set the approval\r" + } + }, + "supportsInterface(bytes4)": { + "details": "implement supportsInterface(bytes4) using a lookup table\r" + }, + "transferFrom(address,address,uint256)": { + "details": "Transfers the ownership of a given token ID to another address\r Usage of this method is discouraged, use `safeTransferFrom` whenever possible\r Requires the msg sender to be the owner, approved, or operator\r", + "params": { + "_from": "current owner of the token\r", + "_to": "address to receive the ownership of the given token ID\r", + "_tokenId": "uint256 ID of the token to be transferred\r" + } + } + }, + "title": "ERC721 Non-Fungible Token Standard basic implementation\r" + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/contracts/ERC721BasicTokenMock.json b/src/contracts/ERC721BasicTokenMock.json new file mode 100644 index 0000000..2096189 --- /dev/null +++ b/src/contracts/ERC721BasicTokenMock.json @@ -0,0 +1,21612 @@ +{ + "contractName": "ERC721BasicTokenMock", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "InterfaceId_ERC165", + "outputs": [ + { + "name": "", + "type": "bytes4" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "exists", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_tokenId", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "testint", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_from", + "type": "address" + }, + { + "indexed": false, + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "name": "_approved", + "type": "address" + }, + { + "indexed": false, + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "name": "_operator", + "type": "address" + }, + { + "indexed": false, + "name": "_approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "mint", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "burn", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"_interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"InterfaceId_ERC165\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"exists\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"testint\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"approve(address,uint256)\":{\"details\":\"Approves another address to transfer the given token ID\\r The zero address indicates there is no approved address.\\r There can only be one approved address per token at a given time.\\r Can only be called by the token owner or an approved operator.\\r\",\"params\":{\"_to\":\"address to be approved for the given token ID\\r\",\"_tokenId\":\"uint256 ID of the token to be approved\\r\"}},\"balanceOf(address)\":{\"details\":\"Gets the balance of the specified address\\r\",\"params\":{\"_owner\":\"address to query the balance of\\r\"},\"return\":\"uint256 representing the amount owned by the passed address\\r\"},\"exists(uint256)\":{\"details\":\"Returns whether the specified token exists\\r\",\"params\":{\"_tokenId\":\"uint256 ID of the token to query the existence of\\r\"},\"return\":\"whether the token exists\\r\"},\"getApproved(uint256)\":{\"details\":\"Gets the approved address for a token ID, or zero if no address set\\r\",\"params\":{\"_tokenId\":\"uint256 ID of the token to query the approval of\\r\"},\"return\":\"address currently approved for the given token ID\\r\"},\"isApprovedForAll(address,address)\":{\"details\":\"Tells whether an operator is approved by a given owner\\r\",\"params\":{\"_operator\":\"operator address which you want to query the approval of\\r\",\"_owner\":\"owner address which you want to query the approval of\\r\"},\"return\":\"bool whether the given operator is approved by the given owner\\r\"},\"ownerOf(uint256)\":{\"details\":\"Gets the owner of the specified token ID\\r\",\"params\":{\"_tokenId\":\"uint256 ID of the token to query the owner of\\r\"},\"return\":\"owner address currently marked as the owner of the given token ID\\r\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers the ownership of a given token ID to another address\\r If the target address is a contract, it must implement `onERC721Received`,\\r which is called upon a safe transfer, and return the magic value\\r `bytes4(keccak256(\\\"onERC721Received(address,uint256,bytes)\\\"))`; otherwise,\\r the transfer is reverted.\\r * Requires the msg sender to be the owner, approved, or operator\\r\",\"params\":{\"_from\":\"current owner of the token\\r\",\"_to\":\"address to receive the ownership of the given token ID\\r\",\"_tokenId\":\"uint256 ID of the token to be transferred\\r\"}},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers the ownership of a given token ID to another address\\r If the target address is a contract, it must implement `onERC721Received`,\\r which is called upon a safe transfer, and return the magic value\\r `bytes4(keccak256(\\\"onERC721Received(address,uint256,bytes)\\\"))`; otherwise,\\r the transfer is reverted.\\r Requires the msg sender to be the owner, approved, or operator\\r\",\"params\":{\"_data\":\"bytes data to send along with a safe transfer check\\r\",\"_from\":\"current owner of the token\\r\",\"_to\":\"address to receive the ownership of the given token ID\\r\",\"_tokenId\":\"uint256 ID of the token to be transferred\\r\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"Sets or unsets the approval of a given operator\\r An operator is allowed to transfer all tokens of the sender on their behalf\\r\",\"params\":{\"_approved\":\"representing the status of the approval to be set\\r\",\"_to\":\"operator address to set the approval\\r\"}},\"supportsInterface(bytes4)\":{\"details\":\"implement supportsInterface(bytes4) using a lookup table\\r\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers the ownership of a given token ID to another address\\r Usage of this method is discouraged, use `safeTransferFrom` whenever possible\\r Requires the msg sender to be the owner, approved, or operator\\r\",\"params\":{\"_from\":\"current owner of the token\\r\",\"_to\":\"address to receive the ownership of the given token ID\\r\",\"_tokenId\":\"uint256 ID of the token to be transferred\\r\"}}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":\"ERC721BasicTokenMock\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":{\"keccak256\":\"0x4dd046a190602871aa9743a94149789c1e14b14f609c68d0f34d72e19bd690ce\",\"urls\":[\"bzzr://ea591dfb88f3591fe4344b7e665024c5aa3e8fb758a0409db79b1885a996b825\",\"dweb:/ipfs/QmXrwJ2TTXMWHBQxuLCqrj96gfh5HCHK57JsCEcXJ84t6z\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", + "bytecode": "0x60806040526100367f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b0361009f16565b6100687f80ac58cd000000000000000000000000000000000000000000000000000000006001600160e01b0361009f16565b61009a7f4f558e79000000000000000000000000000000000000000000000000000000006001600160e01b0361009f16565b61010b565b7fffffffff0000000000000000000000000000000000000000000000000000000080821614156100ce57600080fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152602081905260409020805460ff19166001179055565b610bb78061011a6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806342966c6811610097578063a22cb46511610066578063a22cb465146102e8578063b88d4fde14610316578063e701c464146103dc578063e985e9c5146103e4576100f5565b806342966c68146102595780634f558e79146102765780636352211e1461029357806370a08231146102b0576100f5565b806319fa8f50116100d357806319fa8f501461019c57806323b872dd146101c157806340c10f19146101f757806342842e0e14610223576100f5565b806301ffc9a7146100fa578063081812fc14610135578063095ea7b31461016e575b600080fd5b6101216004803603602081101561011057600080fd5b50356001600160e01b031916610412565b604080519115158252519081900360200190f35b6101526004803603602081101561014b57600080fd5b5035610431565b604080516001600160a01b039092168252519081900360200190f35b61019a6004803603604081101561018457600080fd5b506001600160a01b03813516906020013561044c565b005b6101a4610512565b604080516001600160e01b03199092168252519081900360200190f35b61019a600480360360608110156101d757600080fd5b506001600160a01b0381358116916020810135909116906040013561051d565b61019a6004803603604081101561020d57600080fd5b506001600160a01b0381351690602001356105c5565b61019a6004803603606081101561023957600080fd5b506001600160a01b038135811691602081013590911690604001356105d3565b61019a6004803603602081101561026f57600080fd5b5035610608565b6101216004803603602081101561028c57600080fd5b503561061d565b610152600480360360208110156102a957600080fd5b503561063a565b6102d6600480360360208110156102c657600080fd5b50356001600160a01b0316610662565b60408051918252519081900360200190f35b61019a600480360360408110156102fe57600080fd5b506001600160a01b0381351690602001351515610693565b61019a6004803603608081101561032c57600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561036757600080fd5b82018360208201111561037957600080fd5b8035906020019184600183028401116401000000008311171561039b57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061071e945050505050565b6102d6610759565b610121600480360360408110156103fa57600080fd5b506001600160a01b038135811691602001351661075f565b6001600160e01b03191660009081526020819052604090205460ff1690565b6000908152600260205260409020546001600160a01b031690565b60006104578261063a565b9050806001600160a01b0316836001600160a01b0316141561047857600080fd5b336001600160a01b03821614806104945750610494813361075f565b61049d57600080fd5b60008281526002602090815260409182902080546001600160a01b038088166001600160a01b03199092168217909255835191851682529181019190915280820184905290517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259181900360600190a1505050565b6301ffc9a760e01b81565b80610528338261078d565b61053157600080fd5b6001600160a01b03841661054457600080fd5b6001600160a01b03831661055757600080fd5b61056184836107ec565b61056b848361084e565b61057583836108d7565b604080516001600160a01b0380871682528516602082015280820184905290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a150505050565b6105cf828261095a565b5050565b806105de338261078d565b6105e757600080fd5b6106028484846040518060200160405280600081525061071e565b50505050565b61061a6106148261063a565b826109c4565b50565b6000908152600160205260409020546001600160a01b0316151590565b6000818152600160205260408120546001600160a01b03168061065c57600080fd5b92915050565b60006001600160a01b03821661067757600080fd5b506001600160a01b031660009081526003602052604090205490565b6001600160a01b0382163314156106a957600080fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805486151560ff19909116811790915581519485529184019290925282820152517f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319181900360600190a15050565b81610729338261078d565b61073257600080fd5b61073d85858561051d565b61074985858585610a25565b61075257600080fd5b5050505050565b60055481565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000806107998361063a565b9050806001600160a01b0316846001600160a01b031614806107d45750836001600160a01b03166107c984610431565b6001600160a01b0316145b806107e457506107e4818561075f565b949350505050565b816001600160a01b03166107ff8261063a565b6001600160a01b03161461081257600080fd5b6000818152600260205260409020546001600160a01b0316156105cf57600090815260026020526040902080546001600160a01b031916905550565b816001600160a01b03166108618261063a565b6001600160a01b03161461087457600080fd5b6001600160a01b03821660009081526003602052604090205461089e90600163ffffffff610b4e16565b6001600160a01b0390921660009081526003602090815260408083209490945591815260019091522080546001600160a01b0319169055565b6000818152600160205260409020546001600160a01b0316156108f957600080fd5b600081815260016020818152604080842080546001600160a01b0319166001600160a01b038816908117909155845260039091529091205461093a91610b63565b6001600160a01b0390921660009081526003602052604090209190915550565b6001600160a01b03821661096d57600080fd5b61097782826108d7565b60408051600081526001600160a01b038416602082015280820183905290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a15050565b6109ce82826107ec565b6109d8828261084e565b604080516001600160a01b03841681526000602082015280820183905290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a15050565b6000610a39846001600160a01b0316610b7c565b610a45575060016107e4565b60405163785cf2dd60e11b81526001600160a01b0386811660048301908152602483018690526060604484019081528551606485015285516000949389169363f0b9e5ba938b938a938a936084019060208501908083838d5b83811015610ab6578181015183820152602001610a9e565b50505050905090810190601f168015610ae35780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b158015610b0457600080fd5b505af1158015610b18573d6000803e3d6000fd5b505050506040513d6020811015610b2e57600080fd5b50516001600160e01b03191663785cf2dd60e11b14915050949350505050565b600082821115610b5d57600080fd5b50900390565b600082820183811015610b7557600080fd5b9392505050565b3b15159056fea265627a7a72305820f2d7895c160c1b744d766fce345dc3b0176d1fd852d183f00566d42e896bb00864736f6c63430005090032", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c806342966c6811610097578063a22cb46511610066578063a22cb465146102e8578063b88d4fde14610316578063e701c464146103dc578063e985e9c5146103e4576100f5565b806342966c68146102595780634f558e79146102765780636352211e1461029357806370a08231146102b0576100f5565b806319fa8f50116100d357806319fa8f501461019c57806323b872dd146101c157806340c10f19146101f757806342842e0e14610223576100f5565b806301ffc9a7146100fa578063081812fc14610135578063095ea7b31461016e575b600080fd5b6101216004803603602081101561011057600080fd5b50356001600160e01b031916610412565b604080519115158252519081900360200190f35b6101526004803603602081101561014b57600080fd5b5035610431565b604080516001600160a01b039092168252519081900360200190f35b61019a6004803603604081101561018457600080fd5b506001600160a01b03813516906020013561044c565b005b6101a4610512565b604080516001600160e01b03199092168252519081900360200190f35b61019a600480360360608110156101d757600080fd5b506001600160a01b0381358116916020810135909116906040013561051d565b61019a6004803603604081101561020d57600080fd5b506001600160a01b0381351690602001356105c5565b61019a6004803603606081101561023957600080fd5b506001600160a01b038135811691602081013590911690604001356105d3565b61019a6004803603602081101561026f57600080fd5b5035610608565b6101216004803603602081101561028c57600080fd5b503561061d565b610152600480360360208110156102a957600080fd5b503561063a565b6102d6600480360360208110156102c657600080fd5b50356001600160a01b0316610662565b60408051918252519081900360200190f35b61019a600480360360408110156102fe57600080fd5b506001600160a01b0381351690602001351515610693565b61019a6004803603608081101561032c57600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561036757600080fd5b82018360208201111561037957600080fd5b8035906020019184600183028401116401000000008311171561039b57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061071e945050505050565b6102d6610759565b610121600480360360408110156103fa57600080fd5b506001600160a01b038135811691602001351661075f565b6001600160e01b03191660009081526020819052604090205460ff1690565b6000908152600260205260409020546001600160a01b031690565b60006104578261063a565b9050806001600160a01b0316836001600160a01b0316141561047857600080fd5b336001600160a01b03821614806104945750610494813361075f565b61049d57600080fd5b60008281526002602090815260409182902080546001600160a01b038088166001600160a01b03199092168217909255835191851682529181019190915280820184905290517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259181900360600190a1505050565b6301ffc9a760e01b81565b80610528338261078d565b61053157600080fd5b6001600160a01b03841661054457600080fd5b6001600160a01b03831661055757600080fd5b61056184836107ec565b61056b848361084e565b61057583836108d7565b604080516001600160a01b0380871682528516602082015280820184905290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a150505050565b6105cf828261095a565b5050565b806105de338261078d565b6105e757600080fd5b6106028484846040518060200160405280600081525061071e565b50505050565b61061a6106148261063a565b826109c4565b50565b6000908152600160205260409020546001600160a01b0316151590565b6000818152600160205260408120546001600160a01b03168061065c57600080fd5b92915050565b60006001600160a01b03821661067757600080fd5b506001600160a01b031660009081526003602052604090205490565b6001600160a01b0382163314156106a957600080fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805486151560ff19909116811790915581519485529184019290925282820152517f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319181900360600190a15050565b81610729338261078d565b61073257600080fd5b61073d85858561051d565b61074985858585610a25565b61075257600080fd5b5050505050565b60055481565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000806107998361063a565b9050806001600160a01b0316846001600160a01b031614806107d45750836001600160a01b03166107c984610431565b6001600160a01b0316145b806107e457506107e4818561075f565b949350505050565b816001600160a01b03166107ff8261063a565b6001600160a01b03161461081257600080fd5b6000818152600260205260409020546001600160a01b0316156105cf57600090815260026020526040902080546001600160a01b031916905550565b816001600160a01b03166108618261063a565b6001600160a01b03161461087457600080fd5b6001600160a01b03821660009081526003602052604090205461089e90600163ffffffff610b4e16565b6001600160a01b0390921660009081526003602090815260408083209490945591815260019091522080546001600160a01b0319169055565b6000818152600160205260409020546001600160a01b0316156108f957600080fd5b600081815260016020818152604080842080546001600160a01b0319166001600160a01b038816908117909155845260039091529091205461093a91610b63565b6001600160a01b0390921660009081526003602052604090209190915550565b6001600160a01b03821661096d57600080fd5b61097782826108d7565b60408051600081526001600160a01b038416602082015280820183905290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a15050565b6109ce82826107ec565b6109d8828261084e565b604080516001600160a01b03841681526000602082015280820183905290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a15050565b6000610a39846001600160a01b0316610b7c565b610a45575060016107e4565b60405163785cf2dd60e11b81526001600160a01b0386811660048301908152602483018690526060604484019081528551606485015285516000949389169363f0b9e5ba938b938a938a936084019060208501908083838d5b83811015610ab6578181015183820152602001610a9e565b50505050905090810190601f168015610ae35780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b158015610b0457600080fd5b505af1158015610b18573d6000803e3d6000fd5b505050506040513d6020811015610b2e57600080fd5b50516001600160e01b03191663785cf2dd60e11b14915050949350505050565b600082821115610b5d57600080fd5b50900390565b600082820183811015610b7557600080fd5b9392505050565b3b15159056fea265627a7a72305820f2d7895c160c1b744d766fce345dc3b0176d1fd852d183f00566d42e896bb00864736f6c63430005090032", + "sourceMap": "19048:247:8:-;;;3645:38;3664:18;-1:-1:-1;;;;;3645:18:8;:38;:::i;:::-;9226;9245:18;-1:-1:-1;;;;;9226:18:8;:38;:::i;:::-;9271:44;9290:24;-1:-1:-1;;;;;9271:18:8;:44;:::i;:::-;19048:247;;4000:161;4081:26;;;;;;4073:35;;;;;;4115:33;;:19;:33;;;;;;;;;;:40;;-1:-1:-1;;4115:40:8;4151:4;4115:40;;;4000:161::o;19048:247::-;;;;;;;", + "deployedSourceMap": "19048:247:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19048:247:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3777:148;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3777:148:8;-1:-1:-1;;;;;;3777:148:8;;:::i;:::-;;;;;;;;;;;;;;;;;;11314:113;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11314:113:8;;:::i;:::-;;;;-1:-1:-1;;;;;11314:113:8;;;;;;;;;;;;;;10796:284;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10796:284:8;;;;;;;;:::i;:::-;;3208:54;;;:::i;:::-;;;;-1:-1:-1;;;;;;3208:54:8;;;;;;;;;;;;;;12846:358;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12846:358:8;;;;;;;;;;;;;;;;;:::i;19103:91::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;19103:91:8;;;;;;;;:::i;13826:235::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13826:235:8;;;;;;;;;;;;;;;;;:::i;19200:92::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19200:92:8;;:::i;10238:143::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10238:143:8;;:::i;9885:168::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9885:168:8;;:::i;9520:145::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9520:145:8;-1:-1:-1;;;;;9520:145:8;;:::i;:::-;;;;;;;;;;;;;;;;11715:209;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11715:209:8;;;;;;;;;;:::i;14749:321::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;14749:321:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;14749:321:8;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;14749:321:8;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;14749:321:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;14749:321:8;;-1:-1:-1;14749:321:8;;-1:-1:-1;;;;;14749:321:8:i;8542:19::-;;;:::i;12241:177::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12241:177:8;;;;;;;;;;:::i;3777:148::-;-1:-1:-1;;;;;;3886:33:8;3863:4;3886:33;;;;;;;;;;;;;;3777:148::o;11314:113::-;11374:7;11397:24;;;:14;:24;;;;;;-1:-1:-1;;;;;11397:24:8;;11314:113::o;10796:284::-;10858:13;10874:17;10882:8;10874:7;:17::i;:::-;10858:33;;10913:5;-1:-1:-1;;;;;10906:12:8;:3;-1:-1:-1;;;;;10906:12:8;;;10898:21;;;;;;10934:10;-1:-1:-1;;;;;10934:19:8;;;;:58;;;10957:35;10974:5;10981:10;10957:16;:35::i;:::-;10926:67;;;;;;11002:24;;;;:14;:24;;;;;;;;;:30;;-1:-1:-1;;;;;11002:30:8;;;-1:-1:-1;;;;;;11002:30:8;;;;;;;;11044;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10796:284;;;:::o;3208:54::-;-1:-1:-1;;;3208:54:8;:::o;12846:358::-;12963:8;9056:39;9074:10;9086:8;9056:17;:39::i;:::-;9048:48;;;;;;-1:-1:-1;;;;;12991:19:8;;12983:28;;;;;;-1:-1:-1;;;;;13026:17:8;;13018:26;;;;;;13053:30;13067:5;13074:8;13053:13;:30::i;:::-;13090:32;13106:5;13113:8;13090:15;:32::i;:::-;13129:25;13140:3;13145:8;13129:10;:25::i;:::-;13168:30;;;-1:-1:-1;;;;;13168:30:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;12846:358;;;;:::o;19103:91::-;19162:26;19174:3;19179:8;19162:11;:26::i;:::-;19103:91;;:::o;13826:235::-;13947:8;9056:39;9074:10;9086:8;9056:17;:39::i;:::-;9048:48;;;;;;14013:42;14030:5;14037:3;14042:8;14013:42;;;;;;;;;;;;:16;:42::i;:::-;13826:235;;;;:::o;19200:92::-;19246:40;19258:17;19266:8;19258:7;:17::i;:::-;19277:8;19246:11;:40::i;:::-;19200:92;:::o;10238:143::-;10293:4;10322:20;;;:10;:20;;;;;;-1:-1:-1;;;;;10322:20:8;10356:19;;;10238:143::o;9885:168::-;9941:7;9973:20;;;:10;:20;;;;;;-1:-1:-1;;;;;9973:20:8;10008:19;10000:28;;;;;;10042:5;9885:168;-1:-1:-1;;9885:168:8:o;9520:145::-;9576:7;-1:-1:-1;;;;;9600:20:8;;9592:29;;;;;;-1:-1:-1;;;;;;9635:24:8;;;;;:16;:24;;;;;;;9520:145::o;11715:209::-;-1:-1:-1;;;;;11793:17:8;;11800:10;11793:17;;11785:26;;;;;;11836:10;11818:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;11818:34:8;;;;;;;;;;;;:46;;;;;-1:-1:-1;;11818:46:8;;;;;;;;11876:42;;;;;;;;;;;;;;;;;;;;;;;;;;11715:209;;:::o;14749:321::-;14895:8;9056:39;9074:10;9086:8;9056:17;:39::i;:::-;9048:48;;;;;;14915:34;14928:5;14935:3;14940:8;14915:12;:34::i;:::-;15010:53;15035:5;15042:3;15047:8;15057:5;15010:24;:53::i;:::-;15002:62;;;;;;14749:321;;;;;:::o;8542:19::-;;;;:::o;12241:177::-;-1:-1:-1;;;;;12376:25:8;;;12353:4;12376:25;;;:17;:25;;;;;;;;:36;;;;;;;;;;;;;;;12241:177::o;15426:455::-;15542:4;15558:13;15574:17;15582:8;15574:7;:17::i;:::-;15558:33;;15775:5;-1:-1:-1;;;;;15763:17:8;:8;-1:-1:-1;;;;;15763:17:8;;:61;;;;15816:8;-1:-1:-1;;;;;15791:33:8;:21;15803:8;15791:11;:21::i;:::-;-1:-1:-1;;;;;15791:33:8;;15763:61;:105;;;;15835:33;15852:5;15859:8;15835:16;:33::i;:::-;15747:128;15426:455;-1:-1:-1;;;;15426:455:8:o;16966:219::-;17068:6;-1:-1:-1;;;;;17047:27:8;:17;17055:8;17047:7;:17::i;:::-;-1:-1:-1;;;;;17047:27:8;;17039:36;;;;;;17122:1;17086:24;;;:14;:24;;;;;;-1:-1:-1;;;;;17086:24:8;:38;17082:98;;17170:1;17135:24;;;:14;:24;;;;;:37;;-1:-1:-1;;;;;;17135:37:8;;;-1:-1:-1;16966:219:8:o;17949:218::-;18052:5;-1:-1:-1;;;;;18031:26:8;:17;18039:8;18031:7;:17::i;:::-;-1:-1:-1;;;;;18031:26:8;;18023:35;;;;;;-1:-1:-1;;;;;18091:23:8;;;;;;:16;:23;;;;;;:30;;18119:1;18091:30;:27;:30;:::i;:::-;-1:-1:-1;;;;;18065:23:8;;;;;;;:16;:23;;;;;;;;:56;;;;18128:20;;;:10;:20;;;;:33;;-1:-1:-1;;;;;;18128:33:8;;;17949:218::o;17455:208::-;17562:1;17530:20;;;:10;:20;;;;;;-1:-1:-1;;;;;17530:20:8;:34;17522:43;;;;;;17572:20;;;;:10;:20;;;;;;;;:26;;-1:-1:-1;;;;;;17572:26:8;-1:-1:-1;;;;;17572:26:8;;;;;;;;17629:21;;:16;:21;;;;;;;:28;;:25;:28::i;:::-;-1:-1:-1;;;;;17605:21:8;;;;;;;:16;:21;;;;;:52;;;;-1:-1:-1;17455:208:8:o;16138:173::-;-1:-1:-1;;;;;16208:17:8;;16200:26;;;;;;16233:25;16244:3;16249:8;16233:10;:25::i;:::-;16270:35;;;16287:1;16270:35;;-1:-1:-1;;;;;16270:35:8;;;;;;;;;;;;;;;;;;;;;;;16138:173;;:::o;16504:192::-;16569:31;16583:6;16591:8;16569:13;:31::i;:::-;16607:33;16623:6;16631:8;16607:15;:33::i;:::-;16652:38;;;-1:-1:-1;;;;;16652:38:8;;;;16677:1;16652:38;;;;;;;;;;;;;;;;;;;;;16504:192;;:::o;18684:357::-;18837:4;18858:16;:3;-1:-1:-1;;;;;18858:14:8;;:16::i;:::-;18853:51;;-1:-1:-1;18892:4:8;18885:11;;18853:51;18926:68;;-1:-1:-1;;;18926:68:8;;-1:-1:-1;;;;;18926:68:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18910:13;;18926:36;;;;;;18971:5;;18978:8;;18988:5;;18926:68;;;;;;;;;;18910:13;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;18926:68:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18926:68:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18926:68:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18926:68:8;-1:-1:-1;;;;;;19009:25:8;-1:-1:-1;;;19009:25:8;;-1:-1:-1;;18684:357:8;;;;;;:::o;431:150:22:-;489:7;522:1;517;:6;;509:15;;;;;;-1:-1:-1;547:5:22;;;431:150::o;589:::-;647:7;679:5;;;703:6;;;;695:15;;;;;;730:1;589:150;-1:-1:-1;;;589:150:22:o;1949:587:8:-;2490:17;2522:8;;;1949:587::o", + "source": "pragma solidity >=0.5.0 < 0.6.0;\r\nimport '../../dao/oz/SafeMath.sol';\r\n\r\n/**\r\n * @title SafeMath\r\n * @dev Math operations with safety checks that throw on error\r\n */\r\n//library SafeMath {\r\n//\r\n// /**\r\n// * @dev Multiplies two numbers, throws on overflow.\r\n// */\r\n// function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// // Gas optimization: this is cheaper than asserting 'a' not being zero, but the\r\n// // benefit is lost if 'b' is also tested.\r\n// // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\r\n// if (a == 0) {\r\n// return 0;\r\n// }\r\n//\r\n// c = a * b;\r\n// assert(c / a == b);\r\n// return c;\r\n// }\r\n//\r\n// /**\r\n// * @dev Integer division of two numbers, truncating the quotient.\r\n// */\r\n// function div(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// // assert(b > 0); // Solidity automatically throws when dividing by 0\r\n// // uint256 c = a / b;\r\n// // assert(a == b * c + a % b); // There is no case in which this doesn't hold\r\n// return a / b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).\r\n// */\r\n// function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// assert(b <= a);\r\n// return a - b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Adds two numbers, throws on overflow.\r\n// */\r\n// function add(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// c = a + b;\r\n// assert(c >= a);\r\n// return c;\r\n// }\r\n//}\r\n\r\n/**\r\n * Utility library of inline functions on addresses\r\n */\r\nlibrary AddressUtils {\r\n\r\n /**\r\n * Returns whether the target address is a contract\r\n * @dev This function will return false if invoked during the constructor of a contract,\r\n * as the code is not actually created until after the constructor finishes.\r\n * @param addr address to check\r\n * @return whether the target address is a contract\r\n */\r\n function isContract(address addr) internal view returns (bool) {\r\n uint256 size;\r\n // XXX Currently there is no better way to check if there is a contract in an address\r\n // than to check the size of the code at that address.\r\n // See https://ethereum.stackexchange.com/a/14016/36603\r\n // for more details about how this works.\r\n // TODO Check this again before the Serenity release, because all addresses will be\r\n // contracts then.\r\n // solium-disable-next-line security/no-inline-assembly\r\n assembly { size := extcodesize(addr) }\r\n return size > 0;\r\n }\r\n\r\n}\r\n\r\n/**\r\n * @title ERC165\r\n * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r\n */\r\ninterface ERC165 {\r\n\r\n /**\r\n * @notice Query if a contract implements an interface\r\n * @param _interfaceId The interface identifier, as specified in ERC-165\r\n * @dev Interface identification is specified in ERC-165. This function\r\n * uses less than 30,000 gas.\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool);\r\n}\r\n\r\n\r\n/**\r\n * @title SupportsInterfaceWithLookup\r\n * @author Matt Condon (@shrugs)\r\n * @dev Implements ERC165 using a lookup table.\r\n */\r\ncontract SupportsInterfaceWithLookup is ERC165 {\r\n bytes4 public constant InterfaceId_ERC165 = 0x01ffc9a7;\r\n /**\r\n * 0x01ffc9a7 ===\r\n * bytes4(keccak256('supportsInterface(bytes4)'))\r\n */\r\n\r\n /**\r\n * @dev a mapping of interface id to whether or not it's supported\r\n */\r\n mapping(bytes4 => bool) internal supportedInterfaces;\r\n\r\n /**\r\n * @dev A contract implementing SupportsInterfaceWithLookup\r\n * implement ERC165 itself\r\n */\r\n constructor()\r\n public\r\n {\r\n _registerInterface(InterfaceId_ERC165);\r\n }\r\n\r\n /**\r\n * @dev implement supportsInterface(bytes4) using a lookup table\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool)\r\n {\r\n return supportedInterfaces[_interfaceId];\r\n }\r\n\r\n /**\r\n * @dev private method for registering an interface\r\n */\r\n function _registerInterface(bytes4 _interfaceId)\r\n internal\r\n {\r\n require(_interfaceId != 0xffffffff);\r\n supportedInterfaces[_interfaceId] = true;\r\n }\r\n}\r\n\r\n/**\r\n * @title ERC721 token receiver interface\r\n * @dev Interface for any contract that wants to support safeTransfers\r\n * from ERC721 asset contracts.\r\n */\r\ncontract ERC721Receiver {\r\n /**\r\n * @dev Magic value to be returned upon successful reception of an NFT\r\n * Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`,\r\n * which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n */\r\n bytes4 internal constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n /**\r\n * @notice Handle the receipt of an NFT\r\n * @dev The ERC721 smart contract calls this function on the recipient\r\n * after a `safetransfer`. This function MAY throw to revert and reject the\r\n * transfer. This function MUST use 50,000 gas or less. Return of other\r\n * than the magic value MUST result in the transaction being reverted.\r\n * Note: the contract address is always the message sender.\r\n * @param _from The sending address\r\n * @param _tokenId The NFT identifier which is being transfered\r\n * @param _data Additional data with no specified format\r\n * @return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n */\r\n function onERC721Received(\r\n address _from,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n returns(bytes4);\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic interface\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721Basic is ERC165 {\r\n event Transfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n );\r\n event Approval(\r\n address _owner,\r\n address _approved,\r\n uint256 _tokenId\r\n );\r\n event ApprovalForAll(\r\n address _owner,\r\n address _operator,\r\n bool _approved\r\n );\r\n\r\n function balanceOf(address _owner) public view returns (uint256 _balance);\r\n function ownerOf(uint256 _tokenId) public view returns (address _owner);\r\n function exists(uint256 _tokenId) public view returns (bool _exists);\r\n\r\n function approve(address _to, uint256 _tokenId) public;\r\n function getApproved(uint256 _tokenId)\r\n public view returns (address _operator);\r\n\r\n function setApprovalForAll(address _operator, bool _approved) public;\r\n function isApprovedForAll(address _owner, address _operator)\r\n public view returns (bool);\r\n\r\n function transferFrom(address _from, address _to, uint256 _tokenId) public;\r\n function safeTransferFrom(address _from, address _to, uint256 _tokenId)\r\n public;\r\n\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public;\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic implementation\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721BasicToken is SupportsInterfaceWithLookup, ERC721Basic {\r\n\r\n bytes4 private constant InterfaceId_ERC721 = 0x80ac58cd;\r\n /*\r\n * 0x80ac58cd ===\r\n * bytes4(keccak256('balanceOf(address)')) ^\r\n * bytes4(keccak256('ownerOf(uint256)')) ^\r\n * bytes4(keccak256('approve(address,uint256)')) ^\r\n * bytes4(keccak256('getApproved(uint256)')) ^\r\n * bytes4(keccak256('setApprovalForAll(address,bool)')) ^\r\n * bytes4(keccak256('isApprovedForAll(address,address)')) ^\r\n * bytes4(keccak256('transferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)'))\r\n */\r\n\r\n bytes4 private constant InterfaceId_ERC721Exists = 0x4f558e79;\r\n /*\r\n * 0x4f558e79 ===\r\n * bytes4(keccak256('exists(uint256)'))\r\n */\r\n\r\n using SafeMath for uint256;\r\n using AddressUtils for address;\r\n\r\n // Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n // which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n bytes4 private constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n // Mapping from token ID to owner\r\n mapping (uint256 => address) internal tokenOwner;\r\n\r\n // Mapping from token ID to approved address\r\n mapping (uint256 => address) internal tokenApprovals;\r\n\r\n // Mapping from owner to number of owned token\r\n mapping (address => uint256) internal ownedTokensCount;\r\n\r\n // Mapping from owner to operator approvals\r\n mapping (address => mapping (address => bool)) internal operatorApprovals;\r\n\r\n\r\n uint public testint;\r\n /**\r\n * @dev Guarantees msg.sender is owner of the given token\r\n * @param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r\n */\r\n modifier onlyOwnerOf(uint256 _tokenId) {\r\n require(ownerOf(_tokenId) == msg.sender);\r\n _;\r\n }\r\n\r\n /**\r\n * @dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n * @param _tokenId uint256 ID of the token to validate\r\n */\r\n modifier canTransfer(uint256 _tokenId) {\r\n require(isApprovedOrOwner(msg.sender, _tokenId));\r\n _;\r\n }\r\n\r\n constructor()\r\n public\r\n {\r\n // register the supported interfaces to conform to ERC721 via ERC165\r\n _registerInterface(InterfaceId_ERC721);\r\n _registerInterface(InterfaceId_ERC721Exists);\r\n }\r\n\r\n /**\r\n * @dev Gets the balance of the specified address\r\n * @param _owner address to query the balance of\r\n * @return uint256 representing the amount owned by the passed address\r\n */\r\n function balanceOf(address _owner) public view returns (uint256) {\r\n require(_owner != address(0));\r\n return ownedTokensCount[_owner];\r\n }\r\n\r\n /**\r\n * @dev Gets the owner of the specified token ID\r\n * @param _tokenId uint256 ID of the token to query the owner of\r\n * @return owner address currently marked as the owner of the given token ID\r\n */\r\n function ownerOf(uint256 _tokenId) public view returns (address) {\r\n address owner = tokenOwner[_tokenId];\r\n require(owner != address(0));\r\n return owner;\r\n }\r\n\r\n /**\r\n * @dev Returns whether the specified token exists\r\n * @param _tokenId uint256 ID of the token to query the existence of\r\n * @return whether the token exists\r\n */\r\n function exists(uint256 _tokenId) public view returns (bool) {\r\n address owner = tokenOwner[_tokenId];\r\n return owner != address(0);\r\n }\r\n\r\n /**\r\n * @dev Approves another address to transfer the given token ID\r\n * The zero address indicates there is no approved address.\r\n * There can only be one approved address per token at a given time.\r\n * Can only be called by the token owner or an approved operator.\r\n * @param _to address to be approved for the given token ID\r\n * @param _tokenId uint256 ID of the token to be approved\r\n */\r\n function approve(address _to, uint256 _tokenId) public {\r\n address owner = ownerOf(_tokenId);\r\n require(_to != owner);\r\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender));\r\n\r\n tokenApprovals[_tokenId] = _to;\r\n emit Approval(owner, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Gets the approved address for a token ID, or zero if no address set\r\n * @param _tokenId uint256 ID of the token to query the approval of\r\n * @return address currently approved for the given token ID\r\n */\r\n function getApproved(uint256 _tokenId) public view returns (address) {\r\n return tokenApprovals[_tokenId];\r\n }\r\n\r\n /**\r\n * @dev Sets or unsets the approval of a given operator\r\n * An operator is allowed to transfer all tokens of the sender on their behalf\r\n * @param _to operator address to set the approval\r\n * @param _approved representing the status of the approval to be set\r\n */\r\n function setApprovalForAll(address _to, bool _approved) public {\r\n require(_to != msg.sender);\r\n operatorApprovals[msg.sender][_to] = _approved;\r\n emit ApprovalForAll(msg.sender, _to, _approved);\r\n }\r\n\r\n /**\r\n * @dev Tells whether an operator is approved by a given owner\r\n * @param _owner owner address which you want to query the approval of\r\n * @param _operator operator address which you want to query the approval of\r\n * @return bool whether the given operator is approved by the given owner\r\n */\r\n function isApprovedForAll(\r\n address _owner,\r\n address _operator\r\n )\r\n public\r\n view\r\n returns (bool)\r\n {\r\n return operatorApprovals[_owner][_operator];\r\n }\r\n\r\n /**\r\n * @dev Transfers the ownership of a given token ID to another address\r\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function transferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n require(_from != address(0));\r\n require(_to != address(0));\r\n\r\n clearApproval(_from, _tokenId);\r\n removeTokenFrom(_from, _tokenId);\r\n addTokenTo(_to, _tokenId);\r\n\r\n emit Transfer(_from, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n *\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n // solium-disable-next-line arg-overflow\r\n safeTransferFrom(_from, _to, _tokenId, \"\");\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes data to send along with a safe transfer check\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n transferFrom(_from, _to, _tokenId);\r\n // solium-disable-next-line arg-overflow\r\n require(checkAndCallSafeTransfer(_from, _to, _tokenId, _data));\r\n }\r\n\r\n /**\r\n * @dev Returns whether the given spender can transfer a given token ID\r\n * @param _spender address of the spender to query\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @return bool whether the msg.sender is approved for the given token ID,\r\n * is an operator of the owner, or is the owner of the token\r\n */\r\n function isApprovedOrOwner(\r\n address _spender,\r\n uint256 _tokenId\r\n )\r\n internal\r\n view\r\n returns (bool)\r\n {\r\n address owner = ownerOf(_tokenId);\r\n // Disable solium check because of\r\n // https://github.com/duaraghav8/Solium/issues/175\r\n // solium-disable-next-line operator-whitespace\r\n return (\r\n _spender == owner ||\r\n getApproved(_tokenId) == _spender ||\r\n isApprovedForAll(owner, _spender)\r\n );\r\n }\r\n\r\n /**\r\n * @dev Internal function to mint a new token\r\n * Reverts if the given token ID already exists\r\n * @param _to The address that will own the minted token\r\n * @param _tokenId uint256 ID of the token to be minted by the msg.sender\r\n */\r\n function _mint(address _to, uint256 _tokenId) internal {\r\n require(_to != address(0));\r\n addTokenTo(_to, _tokenId);\r\n emit Transfer(address(0), _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to burn a specific token\r\n * Reverts if the token does not exist\r\n * @param _tokenId uint256 ID of the token being burned by the msg.sender\r\n */\r\n function _burn(address _owner, uint256 _tokenId) internal {\r\n clearApproval(_owner, _tokenId);\r\n removeTokenFrom(_owner, _tokenId);\r\n emit Transfer(_owner, address(0), _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to clear current approval of a given token ID\r\n * Reverts if the given address is not indeed the owner of the token\r\n * @param _owner owner of the token\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function clearApproval(address _owner, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _owner);\r\n if (tokenApprovals[_tokenId] != address(0)) {\r\n tokenApprovals[_tokenId] = address(0);\r\n }\r\n }\r\n\r\n /**\r\n * @dev Internal function to add a token ID to the list of a given address\r\n * @param _to address representing the new owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r\n */\r\n function addTokenTo(address _to, uint256 _tokenId) internal {\r\n require(tokenOwner[_tokenId] == address(0));\r\n tokenOwner[_tokenId] = _to;\r\n ownedTokensCount[_to] = ownedTokensCount[_to].add(1);\r\n }\r\n\r\n /**\r\n * @dev Internal function to remove a token ID from the list of a given address\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r\n */\r\n function removeTokenFrom(address _from, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _from);\r\n ownedTokensCount[_from] = ownedTokensCount[_from].sub(1);\r\n tokenOwner[_tokenId] = address(0);\r\n }\r\n\r\n /**\r\n * @dev Internal function to invoke `onERC721Received` on a target address\r\n * The call is not executed if the target address is not a contract\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _to target address that will receive the tokens\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes optional data to send along with the call\r\n * @return whether the call correctly returned the expected magic value\r\n */\r\n function checkAndCallSafeTransfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n internal\r\n returns (bool)\r\n {\r\n if (!_to.isContract()) {\r\n return true;\r\n }\r\n bytes4 retval = ERC721Receiver(_to).onERC721Received(\r\n _from, _tokenId, _data);\r\n return (retval == ERC721_RECEIVED);\r\n }\r\n}\r\n\r\ncontract ERC721BasicTokenMock is ERC721BasicToken {\r\n function mint(address _to, uint256 _tokenId) public {\r\n super._mint(_to, _tokenId);\r\n }\r\n\r\n function burn(uint256 _tokenId) public {\r\n super._burn(ownerOf(_tokenId), _tokenId);\r\n }\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\inherited\\ERC721Basic.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", + "exportedSymbols": { + "AddressUtils": [ + 5009 + ], + "ERC165": [ + 5017 + ], + "ERC721Basic": [ + 5187 + ], + "ERC721BasicToken": [ + 5764 + ], + "ERC721BasicTokenMock": [ + 5797 + ], + "ERC721Receiver": [ + 5080 + ], + "SupportsInterfaceWithLookup": [ + 5065 + ] + }, + "id": 5798, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4991, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:8" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "../../dao/oz/SafeMath.sol", + "id": 4992, + "nodeType": "ImportDirective", + "scope": 5798, + "sourceUnit": 9858, + "src": "34:35:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "Utility library of inline functions on addresses\r", + "fullyImplemented": true, + "id": 5009, + "linearizedBaseContracts": [ + 5009 + ], + "name": "AddressUtils", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5007, + "nodeType": "Block", + "src": "2012:524:8", + "statements": [ + { + "assignments": [ + 5000 + ], + "declarations": [ + { + "constant": false, + "id": 5000, + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 5007, + "src": "2019:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2019:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5001, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "2019:12:8" + }, + { + "externalReferences": [ + { + "size": { + "declaration": 5000, + "isOffset": false, + "isSlot": false, + "src": "2482:4:8", + "valueSize": 1 + } + }, + { + "addr": { + "declaration": 4994, + "isOffset": false, + "isSlot": false, + "src": "2502:4:8", + "valueSize": 1 + } + } + ], + "id": 5002, + "nodeType": "InlineAssembly", + "operations": "{ size := extcodesize(addr) }", + "src": "2471:38:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5003, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5000, + "src": "2522:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5004, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2529:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2522:8:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4998, + "id": 5006, + "nodeType": "Return", + "src": "2515:15:8" + } + ] + }, + "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", + "id": 5008, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4994, + "name": "addr", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "1969:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1969:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1968:14:8" + }, + "returnParameters": { + "id": 4998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4997, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "2006:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4996, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2006:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2005:6:8" + }, + "scope": 5009, + "src": "1949:587:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "1590:951:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", + "fullyImplemented": false, + "id": 5017, + "linearizedBaseContracts": [ + 5017 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", + "id": 5016, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5012, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5011, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "2950:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5010, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2950:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2949:21:8" + }, + "returnParameters": { + "id": 5015, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5014, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "3009:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5013, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3009:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3008:6:8" + }, + "scope": 5017, + "src": "2923:92:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 5798, + "src": "2643:375:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5018, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "3196:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5019, + "nodeType": "InheritanceSpecifier", + "src": "3196:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", + "fullyImplemented": true, + "id": 5065, + "linearizedBaseContracts": [ + 5065, + 5017 + ], + "name": "SupportsInterfaceWithLookup", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5022, + "name": "InterfaceId_ERC165", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3208:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5020, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3208:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783031666663396137", + "id": 5021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3252:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 5026, + "name": "supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3443:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 5025, + "keyType": { + "id": 5023, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3451:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "3443:23:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 5024, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3461:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 5033, + "nodeType": "Block", + "src": "3638:51:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5030, + "name": "InterfaceId_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5022, + "src": "3664:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5029, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "3645:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3645:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5032, + "nodeType": "ExpressionStatement", + "src": "3645:38:8" + } + ] + }, + "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", + "id": 5034, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5027, + "nodeType": "ParameterList", + "parameters": [], + "src": "3620:2:8" + }, + "returnParameters": { + "id": 5028, + "nodeType": "ParameterList", + "parameters": [], + "src": "3638:0:8" + }, + "scope": 5065, + "src": "3609:80:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5045, + "nodeType": "Block", + "src": "3872:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5041, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "3886:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5043, + "indexExpression": { + "argumentTypes": null, + "id": 5042, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5036, + "src": "3906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3886:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5040, + "id": 5044, + "nodeType": "Return", + "src": "3879:40:8" + } + ] + }, + "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", + "id": 5046, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5037, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5036, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3804:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5035, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3804:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3803:21:8" + }, + "returnParameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5039, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3863:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5038, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3863:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3862:6:8" + }, + "scope": 5065, + "src": "3777:148:8", + "stateMutability": "view", + "superFunction": 5016, + "visibility": "external" + }, + { + "body": { + "id": 5063, + "nodeType": "Block", + "src": "4066:95:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5052, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4081:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30786666666666666666", + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4097:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "4081:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5051, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4073:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4073:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5056, + "nodeType": "ExpressionStatement", + "src": "4073:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5057, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "4115:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5059, + "indexExpression": { + "argumentTypes": null, + "id": 5058, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4135:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4115:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4151:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4115:40:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5062, + "nodeType": "ExpressionStatement", + "src": "4115:40:8" + } + ] + }, + "documentation": "@dev private method for registering an interface\r", + "id": 5064, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5048, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5064, + "src": "4028:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5047, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4028:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4027:21:8" + }, + "returnParameters": { + "id": 5050, + "nodeType": "ParameterList", + "parameters": [], + "src": "4066:0:8" + }, + "scope": 5065, + "src": "4000:161:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "3156:1008:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", + "fullyImplemented": false, + "id": 5080, + "linearizedBaseContracts": [ + 5080 + ], + "name": "ERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5068, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5080, + "src": "4607:53:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5066, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4607:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4650:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "internal" + }, + { + "body": null, + "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", + "id": 5079, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5070, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5364:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5069, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5364:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5072, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5384:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5384:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5074, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5407:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5073, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5407:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5357:73:8" + }, + "returnParameters": { + "id": 5078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5077, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5456:6:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5076, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "5456:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5455:8:8" + }, + "scope": 5080, + "src": "5332:132:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "4326:1141:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5081, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "5641:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5082, + "nodeType": "InheritanceSpecifier", + "src": "5641:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": false, + "id": 5187, + "linearizedBaseContracts": [ + 5187, + 5017 + ], + "name": "ERC721Basic", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5090, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5084, + "indexed": false, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5674:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5083, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5674:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5086, + "indexed": false, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5695:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5695:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5088, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5714:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5087, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5714:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5667:69:8" + }, + "src": "5653:84:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5098, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5092, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5762:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5091, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5762:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5094, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5784:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5784:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5096, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5809:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5809:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5755:76:8" + }, + "src": "5741:91:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5106, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 5105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5100, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5863:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5099, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5863:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5102, + "indexed": false, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5885:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5101, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5885:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5104, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5910:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5103, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5910:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5856:73:8" + }, + "src": "5836:94:8" + }, + { + "body": null, + "documentation": null, + "id": 5113, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5109, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5108, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5955:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5955:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5954:16:8" + }, + "returnParameters": { + "id": 5112, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5111, + "name": "_balance", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5992:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5110, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5992:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5991:18:8" + }, + "scope": 5187, + "src": "5936:74:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5120, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5115, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6031:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6030:18:8" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5118, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6070:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6070:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6069:16:8" + }, + "scope": 5187, + "src": "6014:72:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5127, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5122, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6106:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5121, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6106:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6105:18:8" + }, + "returnParameters": { + "id": 5126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5125, + "name": "_exists", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6145:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5124, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6145:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6144:14:8" + }, + "scope": 5187, + "src": "6090:69:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5134, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5129, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6182:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6182:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5131, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6195:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6195:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6181:31:8" + }, + "returnParameters": { + "id": 5133, + "nodeType": "ParameterList", + "parameters": [], + "src": "6219:0:8" + }, + "scope": 5187, + "src": "6165:55:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5141, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5136, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6245:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6245:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6244:18:8" + }, + "returnParameters": { + "id": 5140, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5139, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6289:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6289:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6288:19:8" + }, + "scope": 5187, + "src": "6224:84:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5148, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5143, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6341:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6341:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5145, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6360:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5144, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6360:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6340:35:8" + }, + "returnParameters": { + "id": 5147, + "nodeType": "ParameterList", + "parameters": [], + "src": "6382:0:8" + }, + "scope": 5187, + "src": "6314:69:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5157, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5153, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5150, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6413:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5149, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6413:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5152, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6429:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5151, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6429:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6412:35:8" + }, + "returnParameters": { + "id": 5156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5155, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6474:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5154, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6474:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6473:6:8" + }, + "scope": 5187, + "src": "6387:93:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5166, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5164, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5159, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6508:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6508:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5161, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6523:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6523:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5163, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6536:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5162, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6536:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6507:46:8" + }, + "returnParameters": { + "id": 5165, + "nodeType": "ParameterList", + "parameters": [], + "src": "6560:0:8" + }, + "scope": 5187, + "src": "6486:75:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5175, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5173, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5168, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6591:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5167, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6591:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5170, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6606:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5169, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6606:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5172, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6619:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5171, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6619:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6590:46:8" + }, + "returnParameters": { + "id": 5174, + "nodeType": "ParameterList", + "parameters": [], + "src": "6648:0:8" + }, + "scope": 5187, + "src": "6565:84:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5186, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5184, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5177, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6687:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5176, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6687:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5179, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6707:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5178, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6707:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5181, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6725:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5180, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6725:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5183, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6748:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5182, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6748:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6680:91:8" + }, + "returnParameters": { + "id": 5185, + "nodeType": "ParameterList", + "parameters": [], + "src": "6783:0:8" + }, + "scope": 5187, + "src": "6655:129:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "5617:1170:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5188, + "name": "SupportsInterfaceWithLookup", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5065, + "src": "6971:27:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", + "typeString": "contract SupportsInterfaceWithLookup" + } + }, + "id": 5189, + "nodeType": "InheritanceSpecifier", + "src": "6971:27:8" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5190, + "name": "ERC721Basic", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5187, + "src": "7000:11:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Basic_$5187", + "typeString": "contract ERC721Basic" + } + }, + "id": 5191, + "nodeType": "InheritanceSpecifier", + "src": "7000:11:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": true, + "id": 5764, + "linearizedBaseContracts": [ + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5194, + "name": "InterfaceId_ERC721", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7019:55:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5192, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7019:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783830616335386364", + "id": 5193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7064:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 5197, + "name": "InterfaceId_ERC721Exists", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7668:61:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5195, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7668:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783466353538653739", + "id": 5196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7719:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1331007097_by_1", + "typeString": "int_const 1331007097" + }, + "value": "0x4f558e79" + }, + "visibility": "private" + }, + { + "id": 5200, + "libraryName": { + "contractScope": null, + "id": 5198, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "7821:8:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "7815:27:8", + "typeName": { + "id": 5199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7834:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5203, + "libraryName": { + "contractScope": null, + "id": 5201, + "name": "AddressUtils", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5009, + "src": "7852:12:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddressUtils_$5009", + "typeString": "library AddressUtils" + } + }, + "nodeType": "UsingForDirective", + "src": "7846:31:8", + "typeName": { + "id": 5202, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7869:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "constant": true, + "id": 5206, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8044:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5204, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8044:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8086:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 5210, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8140:48:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5209, + "keyType": { + "id": 5207, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8149:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8140:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5208, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8160:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5214, + "name": "tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8243:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5213, + "keyType": { + "id": 5211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8252:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8243:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8263:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5218, + "name": "ownedTokensCount", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8352:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5217, + "keyType": { + "id": 5215, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8361:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8352:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8372:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5224, + "name": "operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8460:73:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 5223, + "keyType": { + "id": 5219, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8469:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8460:46:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 5222, + "keyType": { + "id": 5220, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8489:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8480:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 5221, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8500:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5226, + "name": "testint", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8542:19:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5225, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 5240, + "nodeType": "Block", + "src": "8774:61:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5232, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5228, + "src": "8797:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5231, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "8789:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8789:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5234, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "8810:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8810:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8789:31:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5230, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "8781:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8781:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5238, + "nodeType": "ExpressionStatement", + "src": "8781:40:8" + }, + { + "id": 5239, + "nodeType": "PlaceholderStatement", + "src": "8828:1:8" + } + ] + }, + "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", + "id": 5241, + "name": "onlyOwnerOf", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5228, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5241, + "src": "8756:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5227, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8756:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8755:18:8" + }, + "src": "8735:100:8", + "visibility": "internal" + }, + { + "body": { + "id": 5254, + "nodeType": "Block", + "src": "9041:69:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5247, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "9074:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9074:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5249, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5243, + "src": "9086:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5246, + "name": "isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5567, + "src": "9056:17:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 5250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9056:39:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5245, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9048:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9048:48:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5252, + "nodeType": "ExpressionStatement", + "src": "9048:48:8" + }, + { + "id": 5253, + "nodeType": "PlaceholderStatement", + "src": "9103:1:8" + } + ] + }, + "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", + "id": 5255, + "name": "canTransfer", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5244, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5243, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5255, + "src": "9023:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5242, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9022:18:8" + }, + "src": "9002:108:8", + "visibility": "internal" + }, + { + "body": { + "id": 5266, + "nodeType": "Block", + "src": "9145:176:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5259, + "name": "InterfaceId_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "9245:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5258, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9226:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9226:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5261, + "nodeType": "ExpressionStatement", + "src": "9226:38:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5263, + "name": "InterfaceId_ERC721Exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5197, + "src": "9290:24:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5262, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9271:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9271:44:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5265, + "nodeType": "ExpressionStatement", + "src": "9271:44:8" + } + ] + }, + "documentation": null, + "id": 5267, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5256, + "nodeType": "ParameterList", + "parameters": [], + "src": "9127:2:8" + }, + "returnParameters": { + "id": 5257, + "nodeType": "ParameterList", + "parameters": [], + "src": "9145:0:8" + }, + "scope": 5764, + "src": "9116:205:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5286, + "nodeType": "Block", + "src": "9585:80:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5275, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9600:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5277, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9618:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9610:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9610:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "9600:20:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5274, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9592:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9592:29:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5281, + "nodeType": "ExpressionStatement", + "src": "9592:29:8" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5282, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "9635:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5284, + "indexExpression": { + "argumentTypes": null, + "id": 5283, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9652:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9635:24:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5273, + "id": 5285, + "nodeType": "Return", + "src": "9628:31:8" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", + "id": 5287, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5269, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9539:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9539:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9538:16:8" + }, + "returnParameters": { + "id": 5273, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5272, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9576:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5271, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9576:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9575:9:8" + }, + "scope": 5764, + "src": "9520:145:8", + "stateMutability": "view", + "superFunction": 5113, + "visibility": "public" + }, + { + "body": { + "id": 5310, + "nodeType": "Block", + "src": "9950:103:8", + "statements": [ + { + "assignments": [ + 5295 + ], + "declarations": [ + { + "constant": false, + "id": 5295, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5310, + "src": "9957:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5294, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9957:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5299, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5296, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "9973:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5298, + "indexExpression": { + "argumentTypes": null, + "id": 5297, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5289, + "src": "9984:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9973:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9957:36:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5301, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10008:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10025:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10017:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10017:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10008:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5300, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10000:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5307, + "nodeType": "ExpressionStatement", + "src": "10000:28:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5308, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10042:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5293, + "id": 5309, + "nodeType": "Return", + "src": "10035:12:8" + } + ] + }, + "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", + "id": 5311, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5289, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9902:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9902:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9901:18:8" + }, + "returnParameters": { + "id": 5293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5292, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9941:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9941:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9940:9:8" + }, + "scope": 5764, + "src": "9885:168:8", + "stateMutability": "view", + "superFunction": 5120, + "visibility": "public" + }, + { + "body": { + "id": 5330, + "nodeType": "Block", + "src": "10299:82:8", + "statements": [ + { + "assignments": [ + 5319 + ], + "declarations": [ + { + "constant": false, + "id": 5319, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5330, + "src": "10306:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5318, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10306:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5323, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5320, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "10322:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5322, + "indexExpression": { + "argumentTypes": null, + "id": 5321, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5313, + "src": "10333:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10322:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10306:36:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5324, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5319, + "src": "10356:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10373:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10365:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10365:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10356:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5317, + "id": 5329, + "nodeType": "Return", + "src": "10349:26:8" + } + ] + }, + "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", + "id": 5331, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5313, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10254:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10254:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10253:18:8" + }, + "returnParameters": { + "id": 5317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5316, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10293:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5315, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10293:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10292:6:8" + }, + "scope": 5764, + "src": "10238:143:8", + "stateMutability": "view", + "superFunction": 5127, + "visibility": "public" + }, + { + "body": { + "id": 5375, + "nodeType": "Block", + "src": "10851:229:8", + "statements": [ + { + "assignments": [ + 5339 + ], + "declarations": [ + { + "constant": false, + "id": 5339, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5375, + "src": "10858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5343, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5341, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "10882:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5340, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "10874:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10874:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10858:33:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5345, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "10906:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 5346, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10913:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5344, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10898:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10898:21:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5349, + "nodeType": "ExpressionStatement", + "src": "10898:21:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5351, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10934:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10934:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5353, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10948:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10934:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5356, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10974:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5357, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10981:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10981:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 5355, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "10957:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10957:35:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10934:58:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5350, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10926:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10926:67:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5362, + "nodeType": "ExpressionStatement", + "src": "10926:67:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5363, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11002:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5365, + "indexExpression": { + "argumentTypes": null, + "id": 5364, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11017:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11002:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5366, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11029:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11002:30:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5368, + "nodeType": "ExpressionStatement", + "src": "11002:30:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5370, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "11053:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5371, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11060:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5372, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11065:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5369, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5098, + "src": "11044:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11044:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5374, + "nodeType": "EmitStatement", + "src": "11039:35:8" + } + ] + }, + "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", + "id": 5376, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5336, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5333, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10813:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10813:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5335, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10826:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5334, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10826:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10812:31:8" + }, + "returnParameters": { + "id": 5337, + "nodeType": "ParameterList", + "parameters": [], + "src": "10851:0:8" + }, + "scope": 5764, + "src": "10796:284:8", + "stateMutability": "nonpayable", + "superFunction": 5134, + "visibility": "public" + }, + { + "body": { + "id": 5387, + "nodeType": "Block", + "src": "11383:44:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5383, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11397:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5385, + "indexExpression": { + "argumentTypes": null, + "id": 5384, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5378, + "src": "11412:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11397:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5382, + "id": 5386, + "nodeType": "Return", + "src": "11390:31:8" + } + ] + }, + "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", + "id": 5388, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5378, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11335:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5377, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11335:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11334:18:8" + }, + "returnParameters": { + "id": 5382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5381, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11374:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11374:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11373:9:8" + }, + "scope": 5764, + "src": "11314:113:8", + "stateMutability": "view", + "superFunction": 5141, + "visibility": "public" + }, + { + "body": { + "id": 5418, + "nodeType": "Block", + "src": "11778:146:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5396, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11793:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5397, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11800:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11800:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "11793:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5395, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "11785:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11785:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "11785:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5402, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "11818:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5406, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5403, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11836:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11836:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11818:29:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5407, + "indexExpression": { + "argumentTypes": null, + "id": 5405, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11848:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11818:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11855:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11818:46:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5410, + "nodeType": "ExpressionStatement", + "src": "11818:46:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5412, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11891:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11891:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5414, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11903:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5415, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11908:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5411, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5106, + "src": "11876:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 5416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11876:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5417, + "nodeType": "EmitStatement", + "src": "11871:47:8" + } + ] + }, + "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", + "id": 5419, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5390, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11742:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11742:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5392, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11755:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11755:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11741:29:8" + }, + "returnParameters": { + "id": 5394, + "nodeType": "ParameterList", + "parameters": [], + "src": "11778:0:8" + }, + "scope": 5764, + "src": "11715:209:8", + "stateMutability": "nonpayable", + "superFunction": 5148, + "visibility": "public" + }, + { + "body": { + "id": 5434, + "nodeType": "Block", + "src": "12362:56:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5428, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "12376:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5430, + "indexExpression": { + "argumentTypes": null, + "id": 5429, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5421, + "src": "12394:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5432, + "indexExpression": { + "argumentTypes": null, + "id": 5431, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "12402:9:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:36:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5427, + "id": 5433, + "nodeType": "Return", + "src": "12369:43:8" + } + ] + }, + "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", + "id": 5435, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5421, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12273:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5420, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12273:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5423, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12294:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5422, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12294:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12266:50:8" + }, + "returnParameters": { + "id": 5427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5426, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12353:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5425, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12353:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12352:6:8" + }, + "scope": 5764, + "src": "12241:177:8", + "stateMutability": "view", + "superFunction": 5157, + "visibility": "public" + }, + { + "body": { + "id": 5484, + "nodeType": "Block", + "src": "12976:228:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5448, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "12991:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13008:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13000:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "12991:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5447, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "12983:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12983:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5454, + "nodeType": "ExpressionStatement", + "src": "12983:28:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5456, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13026:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13041:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13033:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13033:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13026:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5455, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "13018:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13018:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5462, + "nodeType": "ExpressionStatement", + "src": "13018:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5464, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13067:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5465, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13074:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5463, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "13053:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13053:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5467, + "nodeType": "ExpressionStatement", + "src": "13053:30:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5469, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13106:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5470, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13113:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5468, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "13090:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13090:32:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5472, + "nodeType": "ExpressionStatement", + "src": "13090:32:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5474, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13140:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5475, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13145:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5473, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "13129:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13129:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5477, + "nodeType": "ExpressionStatement", + "src": "13129:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5479, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13177:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5480, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13184:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5481, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13189:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5478, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "13168:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13168:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5483, + "nodeType": "EmitStatement", + "src": "13163:35:8" + } + ] + }, + "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5485, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5444, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "12963:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5445, + "modifierName": { + "argumentTypes": null, + "id": 5443, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "12951:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12951:21:8" + } + ], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5442, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5437, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12874:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5436, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12874:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5439, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12894:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12894:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5441, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12912:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5440, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12912:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12867:66:8" + }, + "returnParameters": { + "id": 5446, + "nodeType": "ParameterList", + "parameters": [], + "src": "12976:0:8" + }, + "scope": 5764, + "src": "12846:358:8", + "stateMutability": "nonpayable", + "superFunction": 5166, + "visibility": "public" + }, + { + "body": { + "id": 5504, + "nodeType": "Block", + "src": "13960:101:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5498, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5487, + "src": "14030:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5499, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5489, + "src": "14037:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5500, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "14042:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 5501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14052:2:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 5497, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5505, + 5535 + ], + "referencedDeclaration": 5535, + "src": "14013:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 5502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14013:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5503, + "nodeType": "ExpressionStatement", + "src": "14013:42:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5505, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5494, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "13947:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5495, + "modifierName": { + "argumentTypes": null, + "id": 5493, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "13935:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "13935:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5487, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5486, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5489, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13878:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13878:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5491, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13896:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13896:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13851:66:8" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [], + "src": "13960:0:8" + }, + "scope": 5764, + "src": "13826:235:8", + "stateMutability": "nonpayable", + "superFunction": 5175, + "visibility": "public" + }, + { + "body": { + "id": 5534, + "nodeType": "Block", + "src": "14908:162:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5520, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "14928:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5521, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "14935:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5522, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14940:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5519, + "name": "transferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5485 + ], + "referencedDeclaration": 5485, + "src": "14915:12:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14915:34:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5524, + "nodeType": "ExpressionStatement", + "src": "14915:34:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5527, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "15035:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5528, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "15042:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5529, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "15047:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5530, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5513, + "src": "15057:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5526, + "name": "checkAndCallSafeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5763, + "src": "15010:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 5531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15010:53:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5525, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "15002:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15002:62:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5533, + "nodeType": "ExpressionStatement", + "src": "15002:62:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", + "id": 5535, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5516, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14895:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5517, + "modifierName": { + "argumentTypes": null, + "id": 5515, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "14883:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "14883:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5514, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5507, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14781:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14781:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5509, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14801:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14801:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5511, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14819:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14819:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5513, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14842:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5512, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14842:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14774:91:8" + }, + "returnParameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [], + "src": "14908:0:8" + }, + "scope": 5764, + "src": "14749:321:8", + "stateMutability": "nonpayable", + "superFunction": 5186, + "visibility": "public" + }, + { + "body": { + "id": 5566, + "nodeType": "Block", + "src": "15551:330:8", + "statements": [ + { + "assignments": [ + 5545 + ], + "declarations": [ + { + "constant": false, + "id": 5545, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5566, + "src": "15558:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15558:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5549, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5547, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15582:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5546, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "15574:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15574:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15558:33:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5550, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15763:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5551, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15775:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15763:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5554, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15803:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5553, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5388 + ], + "referencedDeclaration": 5388, + "src": "15791:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15791:21:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5556, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15816:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15791:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:61:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5560, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15852:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5561, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15859:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5559, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "15835:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15835:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:105:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5564, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15754:121:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5543, + "id": 5565, + "nodeType": "Return", + "src": "15747:128:8" + } + ] + }, + "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", + "id": 5567, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5540, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5537, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15459:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5536, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15459:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5539, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15482:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5538, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15482:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15452:51:8" + }, + "returnParameters": { + "id": 5543, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5542, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15542:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5541, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15541:6:8" + }, + "scope": 5764, + "src": "15426:455:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5595, + "nodeType": "Block", + "src": "16193:118:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5575, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16208:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16223:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16215:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16215:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "16208:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5574, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "16200:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16200:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5581, + "nodeType": "ExpressionStatement", + "src": "16200:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5583, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16244:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5584, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16249:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5582, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "16233:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16233:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5586, + "nodeType": "ExpressionStatement", + "src": "16233:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16287:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16279:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16279:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5591, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16291:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5592, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16296:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5587, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16270:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16270:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5594, + "nodeType": "EmitStatement", + "src": "16265:40:8" + } + ] + }, + "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", + "id": 5596, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5569, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16153:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5568, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16153:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5571, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16166:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5570, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16166:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16152:31:8" + }, + "returnParameters": { + "id": 5573, + "nodeType": "ParameterList", + "parameters": [], + "src": "16193:0:8" + }, + "scope": 5764, + "src": "16138:173:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5621, + "nodeType": "Block", + "src": "16562:134:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5604, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16583:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5605, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16591:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5603, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "16569:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16569:31:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5607, + "nodeType": "ExpressionStatement", + "src": "16569:31:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5609, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16623:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5610, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16631:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5608, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "16607:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16607:33:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5612, + "nodeType": "ExpressionStatement", + "src": "16607:33:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5614, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16661:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16677:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16669:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16669:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5618, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16681:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5613, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16652:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16652:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5620, + "nodeType": "EmitStatement", + "src": "16647:43:8" + } + ] + }, + "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", + "id": 5622, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5598, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16519:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16519:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5600, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16535:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5599, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16535:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16518:34:8" + }, + "returnParameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [], + "src": "16562:0:8" + }, + "scope": 5764, + "src": "16504:192:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5654, + "nodeType": "Block", + "src": "17032:153:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5631, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17055:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5630, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "17047:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17047:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5633, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5624, + "src": "17068:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17047:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5629, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17039:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17039:36:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5636, + "nodeType": "ExpressionStatement", + "src": "17039:36:8" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5637, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17086:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5639, + "indexExpression": { + "argumentTypes": null, + "id": 5638, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17101:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17086:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17122:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17114:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17114:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17086:38:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5653, + "nodeType": "IfStatement", + "src": "17082:98:8", + "trueBody": { + "id": 5652, + "nodeType": "Block", + "src": "17126:54:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5644, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17135:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5646, + "indexExpression": { + "argumentTypes": null, + "id": 5645, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17150:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17135:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5648, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17170:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17162:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17162:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17135:37:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5651, + "nodeType": "ExpressionStatement", + "src": "17135:37:8" + } + ] + } + } + ] + }, + "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5655, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "clearApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5624, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "16989:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5623, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16989:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5626, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "17005:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5625, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17005:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16988:34:8" + }, + "returnParameters": { + "id": 5628, + "nodeType": "ParameterList", + "parameters": [], + "src": "17032:0:8" + }, + "scope": 5764, + "src": "16966:219:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5689, + "nodeType": "Block", + "src": "17515:148:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5663, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17530:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5665, + "indexExpression": { + "argumentTypes": null, + "id": 5664, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17541:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17530:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17562:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17554:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17554:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17530:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5662, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17522:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17522:43:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5671, + "nodeType": "ExpressionStatement", + "src": "17522:43:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5672, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17572:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5674, + "indexExpression": { + "argumentTypes": null, + "id": 5673, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17583:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17572:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5675, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17595:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17572:26:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5677, + "nodeType": "ExpressionStatement", + "src": "17572:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5678, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17605:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5680, + "indexExpression": { + "argumentTypes": null, + "id": 5679, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17622:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17605:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17655:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5681, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17629:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5683, + "indexExpression": { + "argumentTypes": null, + "id": 5682, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17646:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17629:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "17629:25:8", + "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": 5686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17629:28:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17605:52:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5688, + "nodeType": "ExpressionStatement", + "src": "17605:52:8" + } + ] + }, + "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", + "id": 5690, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addTokenTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5657, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17475:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17475:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5659, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17488:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17488:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17474:31:8" + }, + "returnParameters": { + "id": 5661, + "nodeType": "ParameterList", + "parameters": [], + "src": "17515:0:8" + }, + "scope": 5764, + "src": "17455:208:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5724, + "nodeType": "Block", + "src": "18016:151:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5699, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18039:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5698, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "18031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18031:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5701, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18052:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "18031:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5697, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "18023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18023:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5704, + "nodeType": "ExpressionStatement", + "src": "18023:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5705, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18065:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5707, + "indexExpression": { + "argumentTypes": null, + "id": 5706, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18082:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18065:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18119:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5708, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18091:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5710, + "indexExpression": { + "argumentTypes": null, + "id": 5709, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18108:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18091:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "18091:27:8", + "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": 5713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18091:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18065:56:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5715, + "nodeType": "ExpressionStatement", + "src": "18065:56:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5716, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "18128:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5718, + "indexExpression": { + "argumentTypes": null, + "id": 5717, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18139:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18128:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18159:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18151:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18151:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "18128:33:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5723, + "nodeType": "ExpressionStatement", + "src": "18128:33:8" + } + ] + }, + "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", + "id": 5725, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeTokenFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5692, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17974:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5691, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17974:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5694, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17989:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17989:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17973:33:8" + }, + "returnParameters": { + "id": 5696, + "nodeType": "ParameterList", + "parameters": [], + "src": "18016:0:8" + }, + "scope": 5764, + "src": "17949:218:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5762, + "nodeType": "Block", + "src": "18846:195:8", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "18857:17:8", + "subExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5738, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18858:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 5008, + "src": "18858:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18858:16:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5745, + "nodeType": "IfStatement", + "src": "18853:51:8", + "trueBody": { + "id": 5744, + "nodeType": "Block", + "src": "18876:28:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18892:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5737, + "id": 5743, + "nodeType": "Return", + "src": "18885:11:8" + } + ] + } + }, + { + "assignments": [ + 5747 + ], + "declarations": [ + { + "constant": false, + "id": 5747, + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 5762, + "src": "18910:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5746, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "18910:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5756, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5752, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5727, + "src": "18971:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5753, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5731, + "src": "18978:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5754, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5733, + "src": "18988:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5749, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18941:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5748, + "name": "ERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "18926:14:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", + "typeString": "type(contract ERC721Receiver)" + } + }, + "id": 5750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:19:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Receiver_$5080", + "typeString": "contract ERC721Receiver" + } + }, + "id": 5751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 5079, + "src": "18926:36:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 5755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:68:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18910:84:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5757, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5747, + "src": "19009:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5758, + "name": "ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5206, + "src": "19019:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "19009:25:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5760, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19008:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5737, + "id": 5761, + "nodeType": "Return", + "src": "19001:34:8" + } + ] + }, + "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", + "id": 5763, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "checkAndCallSafeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5727, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18724:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5726, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18724:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5729, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18744:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18744:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5731, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18762:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5730, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18762:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5733, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18785:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5732, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18785:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18717:91:8" + }, + "returnParameters": { + "id": 5737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5736, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18837:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5735, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18837:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18836:6:8" + }, + "scope": 5764, + "src": "18684:357:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "6942:12102:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5765, + "name": "ERC721BasicToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5764, + "src": "19081:16:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", + "typeString": "contract ERC721BasicToken" + } + }, + "id": 5766, + "nodeType": "InheritanceSpecifier", + "src": "19081:16:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187, + 5764 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5797, + "linearizedBaseContracts": [ + 5797, + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicTokenMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5780, + "nodeType": "Block", + "src": "19155:39:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5776, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5768, + "src": "19174:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5777, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5770, + "src": "19179:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5773, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19162:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 5596, + "src": "19162:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19162:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5779, + "nodeType": "ExpressionStatement", + "src": "19162:26:8" + } + ] + }, + "documentation": null, + "id": 5781, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19117:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19117:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19130:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19130:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19116:31:8" + }, + "returnParameters": { + "id": 5772, + "nodeType": "ParameterList", + "parameters": [], + "src": "19155:0:8" + }, + "scope": 5797, + "src": "19103:91:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5795, + "nodeType": "Block", + "src": "19239:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5790, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19266:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5789, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "19258:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19258:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5792, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19277:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5786, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19246:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 5622, + "src": "19246:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19246:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5794, + "nodeType": "ExpressionStatement", + "src": "19246:40:8" + } + ] + }, + "documentation": null, + "id": 5796, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5783, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5796, + "src": "19214:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5782, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19214:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19213:18:8" + }, + "returnParameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [], + "src": "19239:0:8" + }, + "scope": 5797, + "src": "19200:92:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "19048:247:8" + } + ], + "src": "0:19297:8" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", + "exportedSymbols": { + "AddressUtils": [ + 5009 + ], + "ERC165": [ + 5017 + ], + "ERC721Basic": [ + 5187 + ], + "ERC721BasicToken": [ + 5764 + ], + "ERC721BasicTokenMock": [ + 5797 + ], + "ERC721Receiver": [ + 5080 + ], + "SupportsInterfaceWithLookup": [ + 5065 + ] + }, + "id": 5798, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4991, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:8" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "../../dao/oz/SafeMath.sol", + "id": 4992, + "nodeType": "ImportDirective", + "scope": 5798, + "sourceUnit": 9858, + "src": "34:35:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "Utility library of inline functions on addresses\r", + "fullyImplemented": true, + "id": 5009, + "linearizedBaseContracts": [ + 5009 + ], + "name": "AddressUtils", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5007, + "nodeType": "Block", + "src": "2012:524:8", + "statements": [ + { + "assignments": [ + 5000 + ], + "declarations": [ + { + "constant": false, + "id": 5000, + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 5007, + "src": "2019:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2019:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5001, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "2019:12:8" + }, + { + "externalReferences": [ + { + "size": { + "declaration": 5000, + "isOffset": false, + "isSlot": false, + "src": "2482:4:8", + "valueSize": 1 + } + }, + { + "addr": { + "declaration": 4994, + "isOffset": false, + "isSlot": false, + "src": "2502:4:8", + "valueSize": 1 + } + } + ], + "id": 5002, + "nodeType": "InlineAssembly", + "operations": "{ size := extcodesize(addr) }", + "src": "2471:38:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5003, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5000, + "src": "2522:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5004, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2529:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2522:8:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4998, + "id": 5006, + "nodeType": "Return", + "src": "2515:15:8" + } + ] + }, + "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", + "id": 5008, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4994, + "name": "addr", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "1969:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1969:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1968:14:8" + }, + "returnParameters": { + "id": 4998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4997, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "2006:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4996, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2006:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2005:6:8" + }, + "scope": 5009, + "src": "1949:587:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "1590:951:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", + "fullyImplemented": false, + "id": 5017, + "linearizedBaseContracts": [ + 5017 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", + "id": 5016, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5012, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5011, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "2950:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5010, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2950:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2949:21:8" + }, + "returnParameters": { + "id": 5015, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5014, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "3009:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5013, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3009:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3008:6:8" + }, + "scope": 5017, + "src": "2923:92:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 5798, + "src": "2643:375:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5018, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "3196:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5019, + "nodeType": "InheritanceSpecifier", + "src": "3196:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", + "fullyImplemented": true, + "id": 5065, + "linearizedBaseContracts": [ + 5065, + 5017 + ], + "name": "SupportsInterfaceWithLookup", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5022, + "name": "InterfaceId_ERC165", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3208:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5020, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3208:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783031666663396137", + "id": 5021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3252:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 5026, + "name": "supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3443:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 5025, + "keyType": { + "id": 5023, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3451:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "3443:23:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 5024, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3461:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 5033, + "nodeType": "Block", + "src": "3638:51:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5030, + "name": "InterfaceId_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5022, + "src": "3664:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5029, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "3645:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3645:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5032, + "nodeType": "ExpressionStatement", + "src": "3645:38:8" + } + ] + }, + "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", + "id": 5034, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5027, + "nodeType": "ParameterList", + "parameters": [], + "src": "3620:2:8" + }, + "returnParameters": { + "id": 5028, + "nodeType": "ParameterList", + "parameters": [], + "src": "3638:0:8" + }, + "scope": 5065, + "src": "3609:80:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5045, + "nodeType": "Block", + "src": "3872:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5041, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "3886:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5043, + "indexExpression": { + "argumentTypes": null, + "id": 5042, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5036, + "src": "3906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3886:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5040, + "id": 5044, + "nodeType": "Return", + "src": "3879:40:8" + } + ] + }, + "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", + "id": 5046, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5037, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5036, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3804:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5035, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3804:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3803:21:8" + }, + "returnParameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5039, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3863:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5038, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3863:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3862:6:8" + }, + "scope": 5065, + "src": "3777:148:8", + "stateMutability": "view", + "superFunction": 5016, + "visibility": "external" + }, + { + "body": { + "id": 5063, + "nodeType": "Block", + "src": "4066:95:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5052, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4081:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30786666666666666666", + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4097:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "4081:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5051, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4073:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4073:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5056, + "nodeType": "ExpressionStatement", + "src": "4073:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5057, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "4115:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5059, + "indexExpression": { + "argumentTypes": null, + "id": 5058, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4135:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4115:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4151:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4115:40:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5062, + "nodeType": "ExpressionStatement", + "src": "4115:40:8" + } + ] + }, + "documentation": "@dev private method for registering an interface\r", + "id": 5064, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5048, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5064, + "src": "4028:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5047, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4028:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4027:21:8" + }, + "returnParameters": { + "id": 5050, + "nodeType": "ParameterList", + "parameters": [], + "src": "4066:0:8" + }, + "scope": 5065, + "src": "4000:161:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "3156:1008:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", + "fullyImplemented": false, + "id": 5080, + "linearizedBaseContracts": [ + 5080 + ], + "name": "ERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5068, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5080, + "src": "4607:53:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5066, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4607:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4650:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "internal" + }, + { + "body": null, + "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", + "id": 5079, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5070, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5364:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5069, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5364:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5072, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5384:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5384:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5074, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5407:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5073, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5407:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5357:73:8" + }, + "returnParameters": { + "id": 5078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5077, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5456:6:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5076, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "5456:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5455:8:8" + }, + "scope": 5080, + "src": "5332:132:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "4326:1141:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5081, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "5641:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5082, + "nodeType": "InheritanceSpecifier", + "src": "5641:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": false, + "id": 5187, + "linearizedBaseContracts": [ + 5187, + 5017 + ], + "name": "ERC721Basic", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5090, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5084, + "indexed": false, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5674:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5083, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5674:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5086, + "indexed": false, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5695:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5695:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5088, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5714:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5087, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5714:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5667:69:8" + }, + "src": "5653:84:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5098, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5092, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5762:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5091, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5762:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5094, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5784:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5784:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5096, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5809:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5809:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5755:76:8" + }, + "src": "5741:91:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5106, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 5105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5100, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5863:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5099, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5863:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5102, + "indexed": false, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5885:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5101, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5885:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5104, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5910:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5103, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5910:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5856:73:8" + }, + "src": "5836:94:8" + }, + { + "body": null, + "documentation": null, + "id": 5113, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5109, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5108, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5955:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5955:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5954:16:8" + }, + "returnParameters": { + "id": 5112, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5111, + "name": "_balance", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5992:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5110, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5992:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5991:18:8" + }, + "scope": 5187, + "src": "5936:74:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5120, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5115, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6031:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6030:18:8" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5118, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6070:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6070:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6069:16:8" + }, + "scope": 5187, + "src": "6014:72:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5127, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5122, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6106:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5121, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6106:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6105:18:8" + }, + "returnParameters": { + "id": 5126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5125, + "name": "_exists", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6145:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5124, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6145:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6144:14:8" + }, + "scope": 5187, + "src": "6090:69:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5134, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5129, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6182:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6182:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5131, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6195:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6195:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6181:31:8" + }, + "returnParameters": { + "id": 5133, + "nodeType": "ParameterList", + "parameters": [], + "src": "6219:0:8" + }, + "scope": 5187, + "src": "6165:55:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5141, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5136, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6245:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6245:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6244:18:8" + }, + "returnParameters": { + "id": 5140, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5139, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6289:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6289:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6288:19:8" + }, + "scope": 5187, + "src": "6224:84:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5148, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5143, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6341:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6341:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5145, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6360:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5144, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6360:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6340:35:8" + }, + "returnParameters": { + "id": 5147, + "nodeType": "ParameterList", + "parameters": [], + "src": "6382:0:8" + }, + "scope": 5187, + "src": "6314:69:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5157, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5153, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5150, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6413:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5149, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6413:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5152, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6429:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5151, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6429:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6412:35:8" + }, + "returnParameters": { + "id": 5156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5155, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6474:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5154, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6474:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6473:6:8" + }, + "scope": 5187, + "src": "6387:93:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5166, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5164, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5159, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6508:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6508:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5161, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6523:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6523:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5163, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6536:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5162, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6536:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6507:46:8" + }, + "returnParameters": { + "id": 5165, + "nodeType": "ParameterList", + "parameters": [], + "src": "6560:0:8" + }, + "scope": 5187, + "src": "6486:75:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5175, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5173, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5168, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6591:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5167, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6591:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5170, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6606:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5169, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6606:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5172, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6619:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5171, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6619:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6590:46:8" + }, + "returnParameters": { + "id": 5174, + "nodeType": "ParameterList", + "parameters": [], + "src": "6648:0:8" + }, + "scope": 5187, + "src": "6565:84:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5186, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5184, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5177, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6687:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5176, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6687:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5179, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6707:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5178, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6707:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5181, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6725:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5180, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6725:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5183, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6748:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5182, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6748:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6680:91:8" + }, + "returnParameters": { + "id": 5185, + "nodeType": "ParameterList", + "parameters": [], + "src": "6783:0:8" + }, + "scope": 5187, + "src": "6655:129:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "5617:1170:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5188, + "name": "SupportsInterfaceWithLookup", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5065, + "src": "6971:27:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", + "typeString": "contract SupportsInterfaceWithLookup" + } + }, + "id": 5189, + "nodeType": "InheritanceSpecifier", + "src": "6971:27:8" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5190, + "name": "ERC721Basic", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5187, + "src": "7000:11:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Basic_$5187", + "typeString": "contract ERC721Basic" + } + }, + "id": 5191, + "nodeType": "InheritanceSpecifier", + "src": "7000:11:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": true, + "id": 5764, + "linearizedBaseContracts": [ + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5194, + "name": "InterfaceId_ERC721", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7019:55:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5192, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7019:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783830616335386364", + "id": 5193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7064:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 5197, + "name": "InterfaceId_ERC721Exists", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7668:61:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5195, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7668:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783466353538653739", + "id": 5196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7719:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1331007097_by_1", + "typeString": "int_const 1331007097" + }, + "value": "0x4f558e79" + }, + "visibility": "private" + }, + { + "id": 5200, + "libraryName": { + "contractScope": null, + "id": 5198, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "7821:8:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "7815:27:8", + "typeName": { + "id": 5199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7834:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5203, + "libraryName": { + "contractScope": null, + "id": 5201, + "name": "AddressUtils", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5009, + "src": "7852:12:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddressUtils_$5009", + "typeString": "library AddressUtils" + } + }, + "nodeType": "UsingForDirective", + "src": "7846:31:8", + "typeName": { + "id": 5202, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7869:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "constant": true, + "id": 5206, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8044:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5204, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8044:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8086:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 5210, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8140:48:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5209, + "keyType": { + "id": 5207, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8149:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8140:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5208, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8160:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5214, + "name": "tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8243:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5213, + "keyType": { + "id": 5211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8252:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8243:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8263:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5218, + "name": "ownedTokensCount", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8352:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5217, + "keyType": { + "id": 5215, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8361:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8352:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8372:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5224, + "name": "operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8460:73:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 5223, + "keyType": { + "id": 5219, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8469:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8460:46:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 5222, + "keyType": { + "id": 5220, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8489:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8480:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 5221, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8500:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5226, + "name": "testint", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8542:19:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5225, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 5240, + "nodeType": "Block", + "src": "8774:61:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5232, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5228, + "src": "8797:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5231, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "8789:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8789:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5234, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "8810:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8810:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8789:31:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5230, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "8781:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8781:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5238, + "nodeType": "ExpressionStatement", + "src": "8781:40:8" + }, + { + "id": 5239, + "nodeType": "PlaceholderStatement", + "src": "8828:1:8" + } + ] + }, + "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", + "id": 5241, + "name": "onlyOwnerOf", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5228, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5241, + "src": "8756:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5227, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8756:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8755:18:8" + }, + "src": "8735:100:8", + "visibility": "internal" + }, + { + "body": { + "id": 5254, + "nodeType": "Block", + "src": "9041:69:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5247, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "9074:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9074:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5249, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5243, + "src": "9086:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5246, + "name": "isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5567, + "src": "9056:17:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 5250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9056:39:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5245, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9048:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9048:48:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5252, + "nodeType": "ExpressionStatement", + "src": "9048:48:8" + }, + { + "id": 5253, + "nodeType": "PlaceholderStatement", + "src": "9103:1:8" + } + ] + }, + "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", + "id": 5255, + "name": "canTransfer", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5244, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5243, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5255, + "src": "9023:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5242, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9022:18:8" + }, + "src": "9002:108:8", + "visibility": "internal" + }, + { + "body": { + "id": 5266, + "nodeType": "Block", + "src": "9145:176:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5259, + "name": "InterfaceId_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "9245:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5258, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9226:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9226:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5261, + "nodeType": "ExpressionStatement", + "src": "9226:38:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5263, + "name": "InterfaceId_ERC721Exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5197, + "src": "9290:24:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5262, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9271:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9271:44:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5265, + "nodeType": "ExpressionStatement", + "src": "9271:44:8" + } + ] + }, + "documentation": null, + "id": 5267, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5256, + "nodeType": "ParameterList", + "parameters": [], + "src": "9127:2:8" + }, + "returnParameters": { + "id": 5257, + "nodeType": "ParameterList", + "parameters": [], + "src": "9145:0:8" + }, + "scope": 5764, + "src": "9116:205:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5286, + "nodeType": "Block", + "src": "9585:80:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5275, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9600:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5277, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9618:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9610:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9610:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "9600:20:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5274, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9592:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9592:29:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5281, + "nodeType": "ExpressionStatement", + "src": "9592:29:8" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5282, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "9635:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5284, + "indexExpression": { + "argumentTypes": null, + "id": 5283, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9652:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9635:24:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5273, + "id": 5285, + "nodeType": "Return", + "src": "9628:31:8" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", + "id": 5287, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5269, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9539:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9539:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9538:16:8" + }, + "returnParameters": { + "id": 5273, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5272, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9576:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5271, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9576:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9575:9:8" + }, + "scope": 5764, + "src": "9520:145:8", + "stateMutability": "view", + "superFunction": 5113, + "visibility": "public" + }, + { + "body": { + "id": 5310, + "nodeType": "Block", + "src": "9950:103:8", + "statements": [ + { + "assignments": [ + 5295 + ], + "declarations": [ + { + "constant": false, + "id": 5295, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5310, + "src": "9957:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5294, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9957:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5299, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5296, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "9973:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5298, + "indexExpression": { + "argumentTypes": null, + "id": 5297, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5289, + "src": "9984:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9973:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9957:36:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5301, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10008:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10025:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10017:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10017:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10008:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5300, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10000:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5307, + "nodeType": "ExpressionStatement", + "src": "10000:28:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5308, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10042:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5293, + "id": 5309, + "nodeType": "Return", + "src": "10035:12:8" + } + ] + }, + "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", + "id": 5311, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5289, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9902:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9902:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9901:18:8" + }, + "returnParameters": { + "id": 5293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5292, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9941:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9941:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9940:9:8" + }, + "scope": 5764, + "src": "9885:168:8", + "stateMutability": "view", + "superFunction": 5120, + "visibility": "public" + }, + { + "body": { + "id": 5330, + "nodeType": "Block", + "src": "10299:82:8", + "statements": [ + { + "assignments": [ + 5319 + ], + "declarations": [ + { + "constant": false, + "id": 5319, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5330, + "src": "10306:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5318, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10306:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5323, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5320, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "10322:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5322, + "indexExpression": { + "argumentTypes": null, + "id": 5321, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5313, + "src": "10333:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10322:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10306:36:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5324, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5319, + "src": "10356:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10373:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10365:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10365:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10356:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5317, + "id": 5329, + "nodeType": "Return", + "src": "10349:26:8" + } + ] + }, + "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", + "id": 5331, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5313, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10254:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10254:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10253:18:8" + }, + "returnParameters": { + "id": 5317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5316, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10293:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5315, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10293:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10292:6:8" + }, + "scope": 5764, + "src": "10238:143:8", + "stateMutability": "view", + "superFunction": 5127, + "visibility": "public" + }, + { + "body": { + "id": 5375, + "nodeType": "Block", + "src": "10851:229:8", + "statements": [ + { + "assignments": [ + 5339 + ], + "declarations": [ + { + "constant": false, + "id": 5339, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5375, + "src": "10858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5343, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5341, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "10882:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5340, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "10874:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10874:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10858:33:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5345, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "10906:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 5346, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10913:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5344, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10898:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10898:21:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5349, + "nodeType": "ExpressionStatement", + "src": "10898:21:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5351, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10934:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10934:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5353, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10948:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10934:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5356, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10974:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5357, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10981:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10981:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 5355, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "10957:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10957:35:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10934:58:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5350, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10926:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10926:67:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5362, + "nodeType": "ExpressionStatement", + "src": "10926:67:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5363, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11002:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5365, + "indexExpression": { + "argumentTypes": null, + "id": 5364, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11017:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11002:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5366, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11029:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11002:30:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5368, + "nodeType": "ExpressionStatement", + "src": "11002:30:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5370, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "11053:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5371, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11060:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5372, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11065:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5369, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5098, + "src": "11044:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11044:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5374, + "nodeType": "EmitStatement", + "src": "11039:35:8" + } + ] + }, + "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", + "id": 5376, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5336, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5333, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10813:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10813:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5335, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10826:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5334, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10826:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10812:31:8" + }, + "returnParameters": { + "id": 5337, + "nodeType": "ParameterList", + "parameters": [], + "src": "10851:0:8" + }, + "scope": 5764, + "src": "10796:284:8", + "stateMutability": "nonpayable", + "superFunction": 5134, + "visibility": "public" + }, + { + "body": { + "id": 5387, + "nodeType": "Block", + "src": "11383:44:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5383, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11397:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5385, + "indexExpression": { + "argumentTypes": null, + "id": 5384, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5378, + "src": "11412:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11397:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5382, + "id": 5386, + "nodeType": "Return", + "src": "11390:31:8" + } + ] + }, + "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", + "id": 5388, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5378, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11335:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5377, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11335:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11334:18:8" + }, + "returnParameters": { + "id": 5382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5381, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11374:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11374:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11373:9:8" + }, + "scope": 5764, + "src": "11314:113:8", + "stateMutability": "view", + "superFunction": 5141, + "visibility": "public" + }, + { + "body": { + "id": 5418, + "nodeType": "Block", + "src": "11778:146:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5396, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11793:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5397, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11800:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11800:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "11793:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5395, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "11785:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11785:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "11785:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5402, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "11818:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5406, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5403, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11836:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11836:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11818:29:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5407, + "indexExpression": { + "argumentTypes": null, + "id": 5405, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11848:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11818:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11855:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11818:46:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5410, + "nodeType": "ExpressionStatement", + "src": "11818:46:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5412, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11891:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11891:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5414, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11903:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5415, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11908:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5411, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5106, + "src": "11876:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 5416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11876:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5417, + "nodeType": "EmitStatement", + "src": "11871:47:8" + } + ] + }, + "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", + "id": 5419, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5390, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11742:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11742:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5392, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11755:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11755:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11741:29:8" + }, + "returnParameters": { + "id": 5394, + "nodeType": "ParameterList", + "parameters": [], + "src": "11778:0:8" + }, + "scope": 5764, + "src": "11715:209:8", + "stateMutability": "nonpayable", + "superFunction": 5148, + "visibility": "public" + }, + { + "body": { + "id": 5434, + "nodeType": "Block", + "src": "12362:56:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5428, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "12376:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5430, + "indexExpression": { + "argumentTypes": null, + "id": 5429, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5421, + "src": "12394:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5432, + "indexExpression": { + "argumentTypes": null, + "id": 5431, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "12402:9:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:36:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5427, + "id": 5433, + "nodeType": "Return", + "src": "12369:43:8" + } + ] + }, + "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", + "id": 5435, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5421, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12273:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5420, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12273:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5423, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12294:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5422, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12294:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12266:50:8" + }, + "returnParameters": { + "id": 5427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5426, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12353:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5425, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12353:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12352:6:8" + }, + "scope": 5764, + "src": "12241:177:8", + "stateMutability": "view", + "superFunction": 5157, + "visibility": "public" + }, + { + "body": { + "id": 5484, + "nodeType": "Block", + "src": "12976:228:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5448, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "12991:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13008:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13000:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "12991:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5447, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "12983:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12983:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5454, + "nodeType": "ExpressionStatement", + "src": "12983:28:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5456, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13026:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13041:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13033:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13033:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13026:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5455, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "13018:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13018:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5462, + "nodeType": "ExpressionStatement", + "src": "13018:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5464, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13067:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5465, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13074:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5463, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "13053:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13053:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5467, + "nodeType": "ExpressionStatement", + "src": "13053:30:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5469, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13106:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5470, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13113:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5468, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "13090:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13090:32:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5472, + "nodeType": "ExpressionStatement", + "src": "13090:32:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5474, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13140:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5475, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13145:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5473, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "13129:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13129:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5477, + "nodeType": "ExpressionStatement", + "src": "13129:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5479, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13177:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5480, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13184:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5481, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13189:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5478, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "13168:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13168:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5483, + "nodeType": "EmitStatement", + "src": "13163:35:8" + } + ] + }, + "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5485, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5444, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "12963:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5445, + "modifierName": { + "argumentTypes": null, + "id": 5443, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "12951:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12951:21:8" + } + ], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5442, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5437, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12874:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5436, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12874:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5439, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12894:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12894:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5441, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12912:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5440, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12912:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12867:66:8" + }, + "returnParameters": { + "id": 5446, + "nodeType": "ParameterList", + "parameters": [], + "src": "12976:0:8" + }, + "scope": 5764, + "src": "12846:358:8", + "stateMutability": "nonpayable", + "superFunction": 5166, + "visibility": "public" + }, + { + "body": { + "id": 5504, + "nodeType": "Block", + "src": "13960:101:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5498, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5487, + "src": "14030:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5499, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5489, + "src": "14037:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5500, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "14042:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 5501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14052:2:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 5497, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5505, + 5535 + ], + "referencedDeclaration": 5535, + "src": "14013:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 5502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14013:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5503, + "nodeType": "ExpressionStatement", + "src": "14013:42:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5505, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5494, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "13947:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5495, + "modifierName": { + "argumentTypes": null, + "id": 5493, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "13935:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "13935:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5487, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5486, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5489, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13878:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13878:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5491, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13896:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13896:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13851:66:8" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [], + "src": "13960:0:8" + }, + "scope": 5764, + "src": "13826:235:8", + "stateMutability": "nonpayable", + "superFunction": 5175, + "visibility": "public" + }, + { + "body": { + "id": 5534, + "nodeType": "Block", + "src": "14908:162:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5520, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "14928:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5521, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "14935:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5522, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14940:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5519, + "name": "transferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5485 + ], + "referencedDeclaration": 5485, + "src": "14915:12:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14915:34:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5524, + "nodeType": "ExpressionStatement", + "src": "14915:34:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5527, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "15035:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5528, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "15042:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5529, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "15047:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5530, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5513, + "src": "15057:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5526, + "name": "checkAndCallSafeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5763, + "src": "15010:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 5531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15010:53:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5525, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "15002:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15002:62:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5533, + "nodeType": "ExpressionStatement", + "src": "15002:62:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", + "id": 5535, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5516, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14895:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5517, + "modifierName": { + "argumentTypes": null, + "id": 5515, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "14883:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "14883:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5514, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5507, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14781:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14781:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5509, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14801:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14801:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5511, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14819:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14819:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5513, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14842:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5512, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14842:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14774:91:8" + }, + "returnParameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [], + "src": "14908:0:8" + }, + "scope": 5764, + "src": "14749:321:8", + "stateMutability": "nonpayable", + "superFunction": 5186, + "visibility": "public" + }, + { + "body": { + "id": 5566, + "nodeType": "Block", + "src": "15551:330:8", + "statements": [ + { + "assignments": [ + 5545 + ], + "declarations": [ + { + "constant": false, + "id": 5545, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5566, + "src": "15558:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15558:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5549, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5547, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15582:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5546, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "15574:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15574:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15558:33:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5550, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15763:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5551, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15775:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15763:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5554, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15803:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5553, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5388 + ], + "referencedDeclaration": 5388, + "src": "15791:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15791:21:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5556, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15816:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15791:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:61:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5560, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15852:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5561, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15859:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5559, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "15835:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15835:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:105:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5564, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15754:121:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5543, + "id": 5565, + "nodeType": "Return", + "src": "15747:128:8" + } + ] + }, + "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", + "id": 5567, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5540, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5537, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15459:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5536, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15459:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5539, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15482:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5538, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15482:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15452:51:8" + }, + "returnParameters": { + "id": 5543, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5542, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15542:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5541, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15541:6:8" + }, + "scope": 5764, + "src": "15426:455:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5595, + "nodeType": "Block", + "src": "16193:118:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5575, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16208:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16223:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16215:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16215:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "16208:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5574, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "16200:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16200:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5581, + "nodeType": "ExpressionStatement", + "src": "16200:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5583, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16244:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5584, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16249:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5582, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "16233:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16233:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5586, + "nodeType": "ExpressionStatement", + "src": "16233:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16287:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16279:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16279:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5591, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16291:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5592, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16296:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5587, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16270:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16270:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5594, + "nodeType": "EmitStatement", + "src": "16265:40:8" + } + ] + }, + "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", + "id": 5596, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5569, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16153:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5568, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16153:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5571, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16166:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5570, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16166:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16152:31:8" + }, + "returnParameters": { + "id": 5573, + "nodeType": "ParameterList", + "parameters": [], + "src": "16193:0:8" + }, + "scope": 5764, + "src": "16138:173:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5621, + "nodeType": "Block", + "src": "16562:134:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5604, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16583:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5605, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16591:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5603, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "16569:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16569:31:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5607, + "nodeType": "ExpressionStatement", + "src": "16569:31:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5609, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16623:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5610, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16631:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5608, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "16607:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16607:33:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5612, + "nodeType": "ExpressionStatement", + "src": "16607:33:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5614, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16661:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16677:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16669:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16669:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5618, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16681:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5613, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16652:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16652:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5620, + "nodeType": "EmitStatement", + "src": "16647:43:8" + } + ] + }, + "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", + "id": 5622, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5598, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16519:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16519:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5600, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16535:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5599, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16535:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16518:34:8" + }, + "returnParameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [], + "src": "16562:0:8" + }, + "scope": 5764, + "src": "16504:192:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5654, + "nodeType": "Block", + "src": "17032:153:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5631, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17055:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5630, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "17047:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17047:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5633, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5624, + "src": "17068:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17047:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5629, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17039:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17039:36:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5636, + "nodeType": "ExpressionStatement", + "src": "17039:36:8" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5637, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17086:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5639, + "indexExpression": { + "argumentTypes": null, + "id": 5638, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17101:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17086:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17122:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17114:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17114:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17086:38:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5653, + "nodeType": "IfStatement", + "src": "17082:98:8", + "trueBody": { + "id": 5652, + "nodeType": "Block", + "src": "17126:54:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5644, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17135:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5646, + "indexExpression": { + "argumentTypes": null, + "id": 5645, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17150:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17135:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5648, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17170:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17162:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17162:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17135:37:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5651, + "nodeType": "ExpressionStatement", + "src": "17135:37:8" + } + ] + } + } + ] + }, + "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5655, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "clearApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5624, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "16989:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5623, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16989:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5626, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "17005:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5625, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17005:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16988:34:8" + }, + "returnParameters": { + "id": 5628, + "nodeType": "ParameterList", + "parameters": [], + "src": "17032:0:8" + }, + "scope": 5764, + "src": "16966:219:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5689, + "nodeType": "Block", + "src": "17515:148:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5663, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17530:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5665, + "indexExpression": { + "argumentTypes": null, + "id": 5664, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17541:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17530:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17562:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17554:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17554:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17530:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5662, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17522:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17522:43:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5671, + "nodeType": "ExpressionStatement", + "src": "17522:43:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5672, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17572:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5674, + "indexExpression": { + "argumentTypes": null, + "id": 5673, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17583:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17572:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5675, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17595:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17572:26:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5677, + "nodeType": "ExpressionStatement", + "src": "17572:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5678, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17605:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5680, + "indexExpression": { + "argumentTypes": null, + "id": 5679, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17622:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17605:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17655:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5681, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17629:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5683, + "indexExpression": { + "argumentTypes": null, + "id": 5682, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17646:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17629:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "17629:25:8", + "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": 5686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17629:28:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17605:52:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5688, + "nodeType": "ExpressionStatement", + "src": "17605:52:8" + } + ] + }, + "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", + "id": 5690, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addTokenTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5657, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17475:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17475:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5659, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17488:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17488:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17474:31:8" + }, + "returnParameters": { + "id": 5661, + "nodeType": "ParameterList", + "parameters": [], + "src": "17515:0:8" + }, + "scope": 5764, + "src": "17455:208:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5724, + "nodeType": "Block", + "src": "18016:151:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5699, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18039:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5698, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "18031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18031:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5701, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18052:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "18031:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5697, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "18023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18023:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5704, + "nodeType": "ExpressionStatement", + "src": "18023:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5705, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18065:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5707, + "indexExpression": { + "argumentTypes": null, + "id": 5706, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18082:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18065:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18119:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5708, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18091:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5710, + "indexExpression": { + "argumentTypes": null, + "id": 5709, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18108:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18091:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "18091:27:8", + "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": 5713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18091:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18065:56:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5715, + "nodeType": "ExpressionStatement", + "src": "18065:56:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5716, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "18128:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5718, + "indexExpression": { + "argumentTypes": null, + "id": 5717, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18139:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18128:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18159:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18151:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18151:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "18128:33:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5723, + "nodeType": "ExpressionStatement", + "src": "18128:33:8" + } + ] + }, + "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", + "id": 5725, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeTokenFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5692, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17974:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5691, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17974:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5694, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17989:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17989:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17973:33:8" + }, + "returnParameters": { + "id": 5696, + "nodeType": "ParameterList", + "parameters": [], + "src": "18016:0:8" + }, + "scope": 5764, + "src": "17949:218:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5762, + "nodeType": "Block", + "src": "18846:195:8", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "18857:17:8", + "subExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5738, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18858:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 5008, + "src": "18858:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18858:16:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5745, + "nodeType": "IfStatement", + "src": "18853:51:8", + "trueBody": { + "id": 5744, + "nodeType": "Block", + "src": "18876:28:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18892:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5737, + "id": 5743, + "nodeType": "Return", + "src": "18885:11:8" + } + ] + } + }, + { + "assignments": [ + 5747 + ], + "declarations": [ + { + "constant": false, + "id": 5747, + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 5762, + "src": "18910:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5746, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "18910:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5756, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5752, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5727, + "src": "18971:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5753, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5731, + "src": "18978:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5754, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5733, + "src": "18988:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5749, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18941:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5748, + "name": "ERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "18926:14:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", + "typeString": "type(contract ERC721Receiver)" + } + }, + "id": 5750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:19:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Receiver_$5080", + "typeString": "contract ERC721Receiver" + } + }, + "id": 5751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 5079, + "src": "18926:36:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 5755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:68:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18910:84:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5757, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5747, + "src": "19009:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5758, + "name": "ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5206, + "src": "19019:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "19009:25:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5760, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19008:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5737, + "id": 5761, + "nodeType": "Return", + "src": "19001:34:8" + } + ] + }, + "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", + "id": 5763, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "checkAndCallSafeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5727, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18724:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5726, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18724:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5729, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18744:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18744:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5731, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18762:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5730, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18762:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5733, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18785:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5732, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18785:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18717:91:8" + }, + "returnParameters": { + "id": 5737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5736, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18837:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5735, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18837:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18836:6:8" + }, + "scope": 5764, + "src": "18684:357:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "6942:12102:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5765, + "name": "ERC721BasicToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5764, + "src": "19081:16:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", + "typeString": "contract ERC721BasicToken" + } + }, + "id": 5766, + "nodeType": "InheritanceSpecifier", + "src": "19081:16:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187, + 5764 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5797, + "linearizedBaseContracts": [ + 5797, + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicTokenMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5780, + "nodeType": "Block", + "src": "19155:39:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5776, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5768, + "src": "19174:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5777, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5770, + "src": "19179:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5773, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19162:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 5596, + "src": "19162:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19162:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5779, + "nodeType": "ExpressionStatement", + "src": "19162:26:8" + } + ] + }, + "documentation": null, + "id": 5781, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19117:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19117:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19130:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19130:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19116:31:8" + }, + "returnParameters": { + "id": 5772, + "nodeType": "ParameterList", + "parameters": [], + "src": "19155:0:8" + }, + "scope": 5797, + "src": "19103:91:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5795, + "nodeType": "Block", + "src": "19239:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5790, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19266:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5789, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "19258:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19258:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5792, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19277:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5786, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19246:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 5622, + "src": "19246:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19246:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5794, + "nodeType": "ExpressionStatement", + "src": "19246:40:8" + } + ] + }, + "documentation": null, + "id": 5796, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5783, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5796, + "src": "19214:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5782, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19214:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19213:18:8" + }, + "returnParameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [], + "src": "19239:0:8" + }, + "scope": 5797, + "src": "19200:92:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "19048:247:8" + } + ], + "src": "0:19297:8" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:20.030Z", + "devdoc": { + "methods": { + "approve(address,uint256)": { + "details": "Approves another address to transfer the given token ID\r The zero address indicates there is no approved address.\r There can only be one approved address per token at a given time.\r Can only be called by the token owner or an approved operator.\r", + "params": { + "_to": "address to be approved for the given token ID\r", + "_tokenId": "uint256 ID of the token to be approved\r" + } + }, + "balanceOf(address)": { + "details": "Gets the balance of the specified address\r", + "params": { + "_owner": "address to query the balance of\r" + }, + "return": "uint256 representing the amount owned by the passed address\r" + }, + "exists(uint256)": { + "details": "Returns whether the specified token exists\r", + "params": { + "_tokenId": "uint256 ID of the token to query the existence of\r" + }, + "return": "whether the token exists\r" + }, + "getApproved(uint256)": { + "details": "Gets the approved address for a token ID, or zero if no address set\r", + "params": { + "_tokenId": "uint256 ID of the token to query the approval of\r" + }, + "return": "address currently approved for the given token ID\r" + }, + "isApprovedForAll(address,address)": { + "details": "Tells whether an operator is approved by a given owner\r", + "params": { + "_operator": "operator address which you want to query the approval of\r", + "_owner": "owner address which you want to query the approval of\r" + }, + "return": "bool whether the given operator is approved by the given owner\r" + }, + "ownerOf(uint256)": { + "details": "Gets the owner of the specified token ID\r", + "params": { + "_tokenId": "uint256 ID of the token to query the owner of\r" + }, + "return": "owner address currently marked as the owner of the given token ID\r" + }, + "safeTransferFrom(address,address,uint256)": { + "details": "Safely transfers the ownership of a given token ID to another address\r If the target address is a contract, it must implement `onERC721Received`,\r which is called upon a safe transfer, and return the magic value\r `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r the transfer is reverted.\r * Requires the msg sender to be the owner, approved, or operator\r", + "params": { + "_from": "current owner of the token\r", + "_to": "address to receive the ownership of the given token ID\r", + "_tokenId": "uint256 ID of the token to be transferred\r" + } + }, + "safeTransferFrom(address,address,uint256,bytes)": { + "details": "Safely transfers the ownership of a given token ID to another address\r If the target address is a contract, it must implement `onERC721Received`,\r which is called upon a safe transfer, and return the magic value\r `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r the transfer is reverted.\r Requires the msg sender to be the owner, approved, or operator\r", + "params": { + "_data": "bytes data to send along with a safe transfer check\r", + "_from": "current owner of the token\r", + "_to": "address to receive the ownership of the given token ID\r", + "_tokenId": "uint256 ID of the token to be transferred\r" + } + }, + "setApprovalForAll(address,bool)": { + "details": "Sets or unsets the approval of a given operator\r An operator is allowed to transfer all tokens of the sender on their behalf\r", + "params": { + "_approved": "representing the status of the approval to be set\r", + "_to": "operator address to set the approval\r" + } + }, + "supportsInterface(bytes4)": { + "details": "implement supportsInterface(bytes4) using a lookup table\r" + }, + "transferFrom(address,address,uint256)": { + "details": "Transfers the ownership of a given token ID to another address\r Usage of this method is discouraged, use `safeTransferFrom` whenever possible\r Requires the msg sender to be the owner, approved, or operator\r", + "params": { + "_from": "current owner of the token\r", + "_to": "address to receive the ownership of the given token ID\r", + "_tokenId": "uint256 ID of the token to be transferred\r" + } + } + } + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/contracts/ERC721Receiver.json b/src/contracts/ERC721Receiver.json new file mode 100644 index 0000000..9cf742e --- /dev/null +++ b/src/contracts/ERC721Receiver.json @@ -0,0 +1,21226 @@ +{ + "contractName": "ERC721Receiver", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_tokenId", + "type": "uint256" + }, + { + "name": "_data", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "name": "", + "type": "bytes4" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers\\r from ERC721 asset contracts.\\r\",\"methods\":{\"onERC721Received(address,uint256,bytes)\":{\"details\":\"The ERC721 smart contract calls this function on the recipient\\r after a `safetransfer`. This function MAY throw to revert and reject the\\r transfer. This function MUST use 50,000 gas or less. Return of other\\r than the magic value MUST result in the transaction being reverted.\\r Note: the contract address is always the message sender.\\r\",\"params\":{\"_data\":\"Additional data with no specified format\\r\",\"_from\":\"The sending address\\r\",\"_tokenId\":\"The NFT identifier which is being transfered\\r\"},\"return\":\"`bytes4(keccak256(\\\"onERC721Received(address,uint256,bytes)\\\"))`\\r\"}},\"title\":\"ERC721 token receiver interface\\r\"},\"userdoc\":{\"methods\":{\"onERC721Received(address,uint256,bytes)\":{\"notice\":\"Handle the receipt of an NFT\\r\"}}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":\"ERC721Receiver\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":{\"keccak256\":\"0x4dd046a190602871aa9743a94149789c1e14b14f609c68d0f34d72e19bd690ce\",\"urls\":[\"bzzr://ea591dfb88f3591fe4344b7e665024c5aa3e8fb758a0409db79b1885a996b825\",\"dweb:/ipfs/QmXrwJ2TTXMWHBQxuLCqrj96gfh5HCHK57JsCEcXJ84t6z\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity >=0.5.0 < 0.6.0;\r\nimport '../../dao/oz/SafeMath.sol';\r\n\r\n/**\r\n * @title SafeMath\r\n * @dev Math operations with safety checks that throw on error\r\n */\r\n//library SafeMath {\r\n//\r\n// /**\r\n// * @dev Multiplies two numbers, throws on overflow.\r\n// */\r\n// function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// // Gas optimization: this is cheaper than asserting 'a' not being zero, but the\r\n// // benefit is lost if 'b' is also tested.\r\n// // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\r\n// if (a == 0) {\r\n// return 0;\r\n// }\r\n//\r\n// c = a * b;\r\n// assert(c / a == b);\r\n// return c;\r\n// }\r\n//\r\n// /**\r\n// * @dev Integer division of two numbers, truncating the quotient.\r\n// */\r\n// function div(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// // assert(b > 0); // Solidity automatically throws when dividing by 0\r\n// // uint256 c = a / b;\r\n// // assert(a == b * c + a % b); // There is no case in which this doesn't hold\r\n// return a / b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).\r\n// */\r\n// function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// assert(b <= a);\r\n// return a - b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Adds two numbers, throws on overflow.\r\n// */\r\n// function add(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// c = a + b;\r\n// assert(c >= a);\r\n// return c;\r\n// }\r\n//}\r\n\r\n/**\r\n * Utility library of inline functions on addresses\r\n */\r\nlibrary AddressUtils {\r\n\r\n /**\r\n * Returns whether the target address is a contract\r\n * @dev This function will return false if invoked during the constructor of a contract,\r\n * as the code is not actually created until after the constructor finishes.\r\n * @param addr address to check\r\n * @return whether the target address is a contract\r\n */\r\n function isContract(address addr) internal view returns (bool) {\r\n uint256 size;\r\n // XXX Currently there is no better way to check if there is a contract in an address\r\n // than to check the size of the code at that address.\r\n // See https://ethereum.stackexchange.com/a/14016/36603\r\n // for more details about how this works.\r\n // TODO Check this again before the Serenity release, because all addresses will be\r\n // contracts then.\r\n // solium-disable-next-line security/no-inline-assembly\r\n assembly { size := extcodesize(addr) }\r\n return size > 0;\r\n }\r\n\r\n}\r\n\r\n/**\r\n * @title ERC165\r\n * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r\n */\r\ninterface ERC165 {\r\n\r\n /**\r\n * @notice Query if a contract implements an interface\r\n * @param _interfaceId The interface identifier, as specified in ERC-165\r\n * @dev Interface identification is specified in ERC-165. This function\r\n * uses less than 30,000 gas.\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool);\r\n}\r\n\r\n\r\n/**\r\n * @title SupportsInterfaceWithLookup\r\n * @author Matt Condon (@shrugs)\r\n * @dev Implements ERC165 using a lookup table.\r\n */\r\ncontract SupportsInterfaceWithLookup is ERC165 {\r\n bytes4 public constant InterfaceId_ERC165 = 0x01ffc9a7;\r\n /**\r\n * 0x01ffc9a7 ===\r\n * bytes4(keccak256('supportsInterface(bytes4)'))\r\n */\r\n\r\n /**\r\n * @dev a mapping of interface id to whether or not it's supported\r\n */\r\n mapping(bytes4 => bool) internal supportedInterfaces;\r\n\r\n /**\r\n * @dev A contract implementing SupportsInterfaceWithLookup\r\n * implement ERC165 itself\r\n */\r\n constructor()\r\n public\r\n {\r\n _registerInterface(InterfaceId_ERC165);\r\n }\r\n\r\n /**\r\n * @dev implement supportsInterface(bytes4) using a lookup table\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool)\r\n {\r\n return supportedInterfaces[_interfaceId];\r\n }\r\n\r\n /**\r\n * @dev private method for registering an interface\r\n */\r\n function _registerInterface(bytes4 _interfaceId)\r\n internal\r\n {\r\n require(_interfaceId != 0xffffffff);\r\n supportedInterfaces[_interfaceId] = true;\r\n }\r\n}\r\n\r\n/**\r\n * @title ERC721 token receiver interface\r\n * @dev Interface for any contract that wants to support safeTransfers\r\n * from ERC721 asset contracts.\r\n */\r\ncontract ERC721Receiver {\r\n /**\r\n * @dev Magic value to be returned upon successful reception of an NFT\r\n * Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`,\r\n * which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n */\r\n bytes4 internal constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n /**\r\n * @notice Handle the receipt of an NFT\r\n * @dev The ERC721 smart contract calls this function on the recipient\r\n * after a `safetransfer`. This function MAY throw to revert and reject the\r\n * transfer. This function MUST use 50,000 gas or less. Return of other\r\n * than the magic value MUST result in the transaction being reverted.\r\n * Note: the contract address is always the message sender.\r\n * @param _from The sending address\r\n * @param _tokenId The NFT identifier which is being transfered\r\n * @param _data Additional data with no specified format\r\n * @return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n */\r\n function onERC721Received(\r\n address _from,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n returns(bytes4);\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic interface\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721Basic is ERC165 {\r\n event Transfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n );\r\n event Approval(\r\n address _owner,\r\n address _approved,\r\n uint256 _tokenId\r\n );\r\n event ApprovalForAll(\r\n address _owner,\r\n address _operator,\r\n bool _approved\r\n );\r\n\r\n function balanceOf(address _owner) public view returns (uint256 _balance);\r\n function ownerOf(uint256 _tokenId) public view returns (address _owner);\r\n function exists(uint256 _tokenId) public view returns (bool _exists);\r\n\r\n function approve(address _to, uint256 _tokenId) public;\r\n function getApproved(uint256 _tokenId)\r\n public view returns (address _operator);\r\n\r\n function setApprovalForAll(address _operator, bool _approved) public;\r\n function isApprovedForAll(address _owner, address _operator)\r\n public view returns (bool);\r\n\r\n function transferFrom(address _from, address _to, uint256 _tokenId) public;\r\n function safeTransferFrom(address _from, address _to, uint256 _tokenId)\r\n public;\r\n\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public;\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic implementation\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721BasicToken is SupportsInterfaceWithLookup, ERC721Basic {\r\n\r\n bytes4 private constant InterfaceId_ERC721 = 0x80ac58cd;\r\n /*\r\n * 0x80ac58cd ===\r\n * bytes4(keccak256('balanceOf(address)')) ^\r\n * bytes4(keccak256('ownerOf(uint256)')) ^\r\n * bytes4(keccak256('approve(address,uint256)')) ^\r\n * bytes4(keccak256('getApproved(uint256)')) ^\r\n * bytes4(keccak256('setApprovalForAll(address,bool)')) ^\r\n * bytes4(keccak256('isApprovedForAll(address,address)')) ^\r\n * bytes4(keccak256('transferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)'))\r\n */\r\n\r\n bytes4 private constant InterfaceId_ERC721Exists = 0x4f558e79;\r\n /*\r\n * 0x4f558e79 ===\r\n * bytes4(keccak256('exists(uint256)'))\r\n */\r\n\r\n using SafeMath for uint256;\r\n using AddressUtils for address;\r\n\r\n // Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n // which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n bytes4 private constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n // Mapping from token ID to owner\r\n mapping (uint256 => address) internal tokenOwner;\r\n\r\n // Mapping from token ID to approved address\r\n mapping (uint256 => address) internal tokenApprovals;\r\n\r\n // Mapping from owner to number of owned token\r\n mapping (address => uint256) internal ownedTokensCount;\r\n\r\n // Mapping from owner to operator approvals\r\n mapping (address => mapping (address => bool)) internal operatorApprovals;\r\n\r\n\r\n uint public testint;\r\n /**\r\n * @dev Guarantees msg.sender is owner of the given token\r\n * @param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r\n */\r\n modifier onlyOwnerOf(uint256 _tokenId) {\r\n require(ownerOf(_tokenId) == msg.sender);\r\n _;\r\n }\r\n\r\n /**\r\n * @dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n * @param _tokenId uint256 ID of the token to validate\r\n */\r\n modifier canTransfer(uint256 _tokenId) {\r\n require(isApprovedOrOwner(msg.sender, _tokenId));\r\n _;\r\n }\r\n\r\n constructor()\r\n public\r\n {\r\n // register the supported interfaces to conform to ERC721 via ERC165\r\n _registerInterface(InterfaceId_ERC721);\r\n _registerInterface(InterfaceId_ERC721Exists);\r\n }\r\n\r\n /**\r\n * @dev Gets the balance of the specified address\r\n * @param _owner address to query the balance of\r\n * @return uint256 representing the amount owned by the passed address\r\n */\r\n function balanceOf(address _owner) public view returns (uint256) {\r\n require(_owner != address(0));\r\n return ownedTokensCount[_owner];\r\n }\r\n\r\n /**\r\n * @dev Gets the owner of the specified token ID\r\n * @param _tokenId uint256 ID of the token to query the owner of\r\n * @return owner address currently marked as the owner of the given token ID\r\n */\r\n function ownerOf(uint256 _tokenId) public view returns (address) {\r\n address owner = tokenOwner[_tokenId];\r\n require(owner != address(0));\r\n return owner;\r\n }\r\n\r\n /**\r\n * @dev Returns whether the specified token exists\r\n * @param _tokenId uint256 ID of the token to query the existence of\r\n * @return whether the token exists\r\n */\r\n function exists(uint256 _tokenId) public view returns (bool) {\r\n address owner = tokenOwner[_tokenId];\r\n return owner != address(0);\r\n }\r\n\r\n /**\r\n * @dev Approves another address to transfer the given token ID\r\n * The zero address indicates there is no approved address.\r\n * There can only be one approved address per token at a given time.\r\n * Can only be called by the token owner or an approved operator.\r\n * @param _to address to be approved for the given token ID\r\n * @param _tokenId uint256 ID of the token to be approved\r\n */\r\n function approve(address _to, uint256 _tokenId) public {\r\n address owner = ownerOf(_tokenId);\r\n require(_to != owner);\r\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender));\r\n\r\n tokenApprovals[_tokenId] = _to;\r\n emit Approval(owner, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Gets the approved address for a token ID, or zero if no address set\r\n * @param _tokenId uint256 ID of the token to query the approval of\r\n * @return address currently approved for the given token ID\r\n */\r\n function getApproved(uint256 _tokenId) public view returns (address) {\r\n return tokenApprovals[_tokenId];\r\n }\r\n\r\n /**\r\n * @dev Sets or unsets the approval of a given operator\r\n * An operator is allowed to transfer all tokens of the sender on their behalf\r\n * @param _to operator address to set the approval\r\n * @param _approved representing the status of the approval to be set\r\n */\r\n function setApprovalForAll(address _to, bool _approved) public {\r\n require(_to != msg.sender);\r\n operatorApprovals[msg.sender][_to] = _approved;\r\n emit ApprovalForAll(msg.sender, _to, _approved);\r\n }\r\n\r\n /**\r\n * @dev Tells whether an operator is approved by a given owner\r\n * @param _owner owner address which you want to query the approval of\r\n * @param _operator operator address which you want to query the approval of\r\n * @return bool whether the given operator is approved by the given owner\r\n */\r\n function isApprovedForAll(\r\n address _owner,\r\n address _operator\r\n )\r\n public\r\n view\r\n returns (bool)\r\n {\r\n return operatorApprovals[_owner][_operator];\r\n }\r\n\r\n /**\r\n * @dev Transfers the ownership of a given token ID to another address\r\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function transferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n require(_from != address(0));\r\n require(_to != address(0));\r\n\r\n clearApproval(_from, _tokenId);\r\n removeTokenFrom(_from, _tokenId);\r\n addTokenTo(_to, _tokenId);\r\n\r\n emit Transfer(_from, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n *\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n // solium-disable-next-line arg-overflow\r\n safeTransferFrom(_from, _to, _tokenId, \"\");\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes data to send along with a safe transfer check\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n transferFrom(_from, _to, _tokenId);\r\n // solium-disable-next-line arg-overflow\r\n require(checkAndCallSafeTransfer(_from, _to, _tokenId, _data));\r\n }\r\n\r\n /**\r\n * @dev Returns whether the given spender can transfer a given token ID\r\n * @param _spender address of the spender to query\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @return bool whether the msg.sender is approved for the given token ID,\r\n * is an operator of the owner, or is the owner of the token\r\n */\r\n function isApprovedOrOwner(\r\n address _spender,\r\n uint256 _tokenId\r\n )\r\n internal\r\n view\r\n returns (bool)\r\n {\r\n address owner = ownerOf(_tokenId);\r\n // Disable solium check because of\r\n // https://github.com/duaraghav8/Solium/issues/175\r\n // solium-disable-next-line operator-whitespace\r\n return (\r\n _spender == owner ||\r\n getApproved(_tokenId) == _spender ||\r\n isApprovedForAll(owner, _spender)\r\n );\r\n }\r\n\r\n /**\r\n * @dev Internal function to mint a new token\r\n * Reverts if the given token ID already exists\r\n * @param _to The address that will own the minted token\r\n * @param _tokenId uint256 ID of the token to be minted by the msg.sender\r\n */\r\n function _mint(address _to, uint256 _tokenId) internal {\r\n require(_to != address(0));\r\n addTokenTo(_to, _tokenId);\r\n emit Transfer(address(0), _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to burn a specific token\r\n * Reverts if the token does not exist\r\n * @param _tokenId uint256 ID of the token being burned by the msg.sender\r\n */\r\n function _burn(address _owner, uint256 _tokenId) internal {\r\n clearApproval(_owner, _tokenId);\r\n removeTokenFrom(_owner, _tokenId);\r\n emit Transfer(_owner, address(0), _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to clear current approval of a given token ID\r\n * Reverts if the given address is not indeed the owner of the token\r\n * @param _owner owner of the token\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function clearApproval(address _owner, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _owner);\r\n if (tokenApprovals[_tokenId] != address(0)) {\r\n tokenApprovals[_tokenId] = address(0);\r\n }\r\n }\r\n\r\n /**\r\n * @dev Internal function to add a token ID to the list of a given address\r\n * @param _to address representing the new owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r\n */\r\n function addTokenTo(address _to, uint256 _tokenId) internal {\r\n require(tokenOwner[_tokenId] == address(0));\r\n tokenOwner[_tokenId] = _to;\r\n ownedTokensCount[_to] = ownedTokensCount[_to].add(1);\r\n }\r\n\r\n /**\r\n * @dev Internal function to remove a token ID from the list of a given address\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r\n */\r\n function removeTokenFrom(address _from, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _from);\r\n ownedTokensCount[_from] = ownedTokensCount[_from].sub(1);\r\n tokenOwner[_tokenId] = address(0);\r\n }\r\n\r\n /**\r\n * @dev Internal function to invoke `onERC721Received` on a target address\r\n * The call is not executed if the target address is not a contract\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _to target address that will receive the tokens\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes optional data to send along with the call\r\n * @return whether the call correctly returned the expected magic value\r\n */\r\n function checkAndCallSafeTransfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n internal\r\n returns (bool)\r\n {\r\n if (!_to.isContract()) {\r\n return true;\r\n }\r\n bytes4 retval = ERC721Receiver(_to).onERC721Received(\r\n _from, _tokenId, _data);\r\n return (retval == ERC721_RECEIVED);\r\n }\r\n}\r\n\r\ncontract ERC721BasicTokenMock is ERC721BasicToken {\r\n function mint(address _to, uint256 _tokenId) public {\r\n super._mint(_to, _tokenId);\r\n }\r\n\r\n function burn(uint256 _tokenId) public {\r\n super._burn(ownerOf(_tokenId), _tokenId);\r\n }\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\inherited\\ERC721Basic.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", + "exportedSymbols": { + "AddressUtils": [ + 5009 + ], + "ERC165": [ + 5017 + ], + "ERC721Basic": [ + 5187 + ], + "ERC721BasicToken": [ + 5764 + ], + "ERC721BasicTokenMock": [ + 5797 + ], + "ERC721Receiver": [ + 5080 + ], + "SupportsInterfaceWithLookup": [ + 5065 + ] + }, + "id": 5798, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4991, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:8" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "../../dao/oz/SafeMath.sol", + "id": 4992, + "nodeType": "ImportDirective", + "scope": 5798, + "sourceUnit": 9858, + "src": "34:35:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "Utility library of inline functions on addresses\r", + "fullyImplemented": true, + "id": 5009, + "linearizedBaseContracts": [ + 5009 + ], + "name": "AddressUtils", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5007, + "nodeType": "Block", + "src": "2012:524:8", + "statements": [ + { + "assignments": [ + 5000 + ], + "declarations": [ + { + "constant": false, + "id": 5000, + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 5007, + "src": "2019:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2019:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5001, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "2019:12:8" + }, + { + "externalReferences": [ + { + "size": { + "declaration": 5000, + "isOffset": false, + "isSlot": false, + "src": "2482:4:8", + "valueSize": 1 + } + }, + { + "addr": { + "declaration": 4994, + "isOffset": false, + "isSlot": false, + "src": "2502:4:8", + "valueSize": 1 + } + } + ], + "id": 5002, + "nodeType": "InlineAssembly", + "operations": "{ size := extcodesize(addr) }", + "src": "2471:38:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5003, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5000, + "src": "2522:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5004, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2529:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2522:8:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4998, + "id": 5006, + "nodeType": "Return", + "src": "2515:15:8" + } + ] + }, + "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", + "id": 5008, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4994, + "name": "addr", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "1969:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1969:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1968:14:8" + }, + "returnParameters": { + "id": 4998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4997, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "2006:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4996, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2006:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2005:6:8" + }, + "scope": 5009, + "src": "1949:587:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "1590:951:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", + "fullyImplemented": false, + "id": 5017, + "linearizedBaseContracts": [ + 5017 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", + "id": 5016, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5012, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5011, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "2950:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5010, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2950:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2949:21:8" + }, + "returnParameters": { + "id": 5015, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5014, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "3009:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5013, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3009:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3008:6:8" + }, + "scope": 5017, + "src": "2923:92:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 5798, + "src": "2643:375:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5018, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "3196:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5019, + "nodeType": "InheritanceSpecifier", + "src": "3196:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", + "fullyImplemented": true, + "id": 5065, + "linearizedBaseContracts": [ + 5065, + 5017 + ], + "name": "SupportsInterfaceWithLookup", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5022, + "name": "InterfaceId_ERC165", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3208:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5020, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3208:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783031666663396137", + "id": 5021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3252:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 5026, + "name": "supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3443:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 5025, + "keyType": { + "id": 5023, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3451:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "3443:23:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 5024, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3461:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 5033, + "nodeType": "Block", + "src": "3638:51:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5030, + "name": "InterfaceId_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5022, + "src": "3664:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5029, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "3645:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3645:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5032, + "nodeType": "ExpressionStatement", + "src": "3645:38:8" + } + ] + }, + "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", + "id": 5034, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5027, + "nodeType": "ParameterList", + "parameters": [], + "src": "3620:2:8" + }, + "returnParameters": { + "id": 5028, + "nodeType": "ParameterList", + "parameters": [], + "src": "3638:0:8" + }, + "scope": 5065, + "src": "3609:80:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5045, + "nodeType": "Block", + "src": "3872:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5041, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "3886:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5043, + "indexExpression": { + "argumentTypes": null, + "id": 5042, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5036, + "src": "3906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3886:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5040, + "id": 5044, + "nodeType": "Return", + "src": "3879:40:8" + } + ] + }, + "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", + "id": 5046, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5037, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5036, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3804:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5035, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3804:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3803:21:8" + }, + "returnParameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5039, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3863:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5038, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3863:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3862:6:8" + }, + "scope": 5065, + "src": "3777:148:8", + "stateMutability": "view", + "superFunction": 5016, + "visibility": "external" + }, + { + "body": { + "id": 5063, + "nodeType": "Block", + "src": "4066:95:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5052, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4081:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30786666666666666666", + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4097:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "4081:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5051, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4073:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4073:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5056, + "nodeType": "ExpressionStatement", + "src": "4073:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5057, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "4115:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5059, + "indexExpression": { + "argumentTypes": null, + "id": 5058, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4135:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4115:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4151:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4115:40:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5062, + "nodeType": "ExpressionStatement", + "src": "4115:40:8" + } + ] + }, + "documentation": "@dev private method for registering an interface\r", + "id": 5064, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5048, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5064, + "src": "4028:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5047, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4028:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4027:21:8" + }, + "returnParameters": { + "id": 5050, + "nodeType": "ParameterList", + "parameters": [], + "src": "4066:0:8" + }, + "scope": 5065, + "src": "4000:161:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "3156:1008:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", + "fullyImplemented": false, + "id": 5080, + "linearizedBaseContracts": [ + 5080 + ], + "name": "ERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5068, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5080, + "src": "4607:53:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5066, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4607:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4650:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "internal" + }, + { + "body": null, + "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", + "id": 5079, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5070, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5364:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5069, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5364:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5072, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5384:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5384:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5074, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5407:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5073, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5407:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5357:73:8" + }, + "returnParameters": { + "id": 5078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5077, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5456:6:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5076, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "5456:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5455:8:8" + }, + "scope": 5080, + "src": "5332:132:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "4326:1141:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5081, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "5641:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5082, + "nodeType": "InheritanceSpecifier", + "src": "5641:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": false, + "id": 5187, + "linearizedBaseContracts": [ + 5187, + 5017 + ], + "name": "ERC721Basic", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5090, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5084, + "indexed": false, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5674:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5083, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5674:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5086, + "indexed": false, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5695:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5695:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5088, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5714:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5087, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5714:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5667:69:8" + }, + "src": "5653:84:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5098, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5092, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5762:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5091, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5762:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5094, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5784:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5784:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5096, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5809:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5809:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5755:76:8" + }, + "src": "5741:91:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5106, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 5105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5100, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5863:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5099, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5863:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5102, + "indexed": false, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5885:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5101, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5885:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5104, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5910:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5103, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5910:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5856:73:8" + }, + "src": "5836:94:8" + }, + { + "body": null, + "documentation": null, + "id": 5113, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5109, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5108, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5955:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5955:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5954:16:8" + }, + "returnParameters": { + "id": 5112, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5111, + "name": "_balance", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5992:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5110, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5992:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5991:18:8" + }, + "scope": 5187, + "src": "5936:74:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5120, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5115, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6031:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6030:18:8" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5118, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6070:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6070:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6069:16:8" + }, + "scope": 5187, + "src": "6014:72:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5127, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5122, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6106:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5121, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6106:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6105:18:8" + }, + "returnParameters": { + "id": 5126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5125, + "name": "_exists", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6145:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5124, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6145:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6144:14:8" + }, + "scope": 5187, + "src": "6090:69:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5134, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5129, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6182:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6182:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5131, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6195:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6195:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6181:31:8" + }, + "returnParameters": { + "id": 5133, + "nodeType": "ParameterList", + "parameters": [], + "src": "6219:0:8" + }, + "scope": 5187, + "src": "6165:55:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5141, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5136, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6245:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6245:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6244:18:8" + }, + "returnParameters": { + "id": 5140, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5139, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6289:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6289:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6288:19:8" + }, + "scope": 5187, + "src": "6224:84:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5148, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5143, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6341:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6341:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5145, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6360:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5144, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6360:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6340:35:8" + }, + "returnParameters": { + "id": 5147, + "nodeType": "ParameterList", + "parameters": [], + "src": "6382:0:8" + }, + "scope": 5187, + "src": "6314:69:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5157, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5153, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5150, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6413:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5149, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6413:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5152, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6429:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5151, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6429:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6412:35:8" + }, + "returnParameters": { + "id": 5156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5155, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6474:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5154, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6474:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6473:6:8" + }, + "scope": 5187, + "src": "6387:93:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5166, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5164, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5159, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6508:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6508:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5161, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6523:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6523:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5163, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6536:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5162, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6536:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6507:46:8" + }, + "returnParameters": { + "id": 5165, + "nodeType": "ParameterList", + "parameters": [], + "src": "6560:0:8" + }, + "scope": 5187, + "src": "6486:75:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5175, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5173, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5168, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6591:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5167, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6591:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5170, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6606:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5169, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6606:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5172, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6619:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5171, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6619:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6590:46:8" + }, + "returnParameters": { + "id": 5174, + "nodeType": "ParameterList", + "parameters": [], + "src": "6648:0:8" + }, + "scope": 5187, + "src": "6565:84:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5186, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5184, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5177, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6687:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5176, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6687:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5179, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6707:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5178, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6707:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5181, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6725:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5180, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6725:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5183, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6748:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5182, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6748:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6680:91:8" + }, + "returnParameters": { + "id": 5185, + "nodeType": "ParameterList", + "parameters": [], + "src": "6783:0:8" + }, + "scope": 5187, + "src": "6655:129:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "5617:1170:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5188, + "name": "SupportsInterfaceWithLookup", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5065, + "src": "6971:27:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", + "typeString": "contract SupportsInterfaceWithLookup" + } + }, + "id": 5189, + "nodeType": "InheritanceSpecifier", + "src": "6971:27:8" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5190, + "name": "ERC721Basic", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5187, + "src": "7000:11:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Basic_$5187", + "typeString": "contract ERC721Basic" + } + }, + "id": 5191, + "nodeType": "InheritanceSpecifier", + "src": "7000:11:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": true, + "id": 5764, + "linearizedBaseContracts": [ + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5194, + "name": "InterfaceId_ERC721", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7019:55:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5192, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7019:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783830616335386364", + "id": 5193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7064:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 5197, + "name": "InterfaceId_ERC721Exists", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7668:61:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5195, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7668:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783466353538653739", + "id": 5196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7719:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1331007097_by_1", + "typeString": "int_const 1331007097" + }, + "value": "0x4f558e79" + }, + "visibility": "private" + }, + { + "id": 5200, + "libraryName": { + "contractScope": null, + "id": 5198, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "7821:8:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "7815:27:8", + "typeName": { + "id": 5199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7834:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5203, + "libraryName": { + "contractScope": null, + "id": 5201, + "name": "AddressUtils", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5009, + "src": "7852:12:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddressUtils_$5009", + "typeString": "library AddressUtils" + } + }, + "nodeType": "UsingForDirective", + "src": "7846:31:8", + "typeName": { + "id": 5202, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7869:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "constant": true, + "id": 5206, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8044:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5204, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8044:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8086:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 5210, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8140:48:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5209, + "keyType": { + "id": 5207, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8149:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8140:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5208, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8160:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5214, + "name": "tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8243:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5213, + "keyType": { + "id": 5211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8252:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8243:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8263:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5218, + "name": "ownedTokensCount", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8352:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5217, + "keyType": { + "id": 5215, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8361:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8352:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8372:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5224, + "name": "operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8460:73:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 5223, + "keyType": { + "id": 5219, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8469:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8460:46:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 5222, + "keyType": { + "id": 5220, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8489:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8480:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 5221, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8500:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5226, + "name": "testint", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8542:19:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5225, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 5240, + "nodeType": "Block", + "src": "8774:61:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5232, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5228, + "src": "8797:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5231, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "8789:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8789:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5234, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "8810:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8810:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8789:31:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5230, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "8781:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8781:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5238, + "nodeType": "ExpressionStatement", + "src": "8781:40:8" + }, + { + "id": 5239, + "nodeType": "PlaceholderStatement", + "src": "8828:1:8" + } + ] + }, + "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", + "id": 5241, + "name": "onlyOwnerOf", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5228, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5241, + "src": "8756:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5227, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8756:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8755:18:8" + }, + "src": "8735:100:8", + "visibility": "internal" + }, + { + "body": { + "id": 5254, + "nodeType": "Block", + "src": "9041:69:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5247, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "9074:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9074:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5249, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5243, + "src": "9086:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5246, + "name": "isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5567, + "src": "9056:17:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 5250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9056:39:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5245, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9048:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9048:48:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5252, + "nodeType": "ExpressionStatement", + "src": "9048:48:8" + }, + { + "id": 5253, + "nodeType": "PlaceholderStatement", + "src": "9103:1:8" + } + ] + }, + "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", + "id": 5255, + "name": "canTransfer", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5244, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5243, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5255, + "src": "9023:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5242, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9022:18:8" + }, + "src": "9002:108:8", + "visibility": "internal" + }, + { + "body": { + "id": 5266, + "nodeType": "Block", + "src": "9145:176:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5259, + "name": "InterfaceId_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "9245:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5258, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9226:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9226:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5261, + "nodeType": "ExpressionStatement", + "src": "9226:38:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5263, + "name": "InterfaceId_ERC721Exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5197, + "src": "9290:24:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5262, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9271:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9271:44:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5265, + "nodeType": "ExpressionStatement", + "src": "9271:44:8" + } + ] + }, + "documentation": null, + "id": 5267, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5256, + "nodeType": "ParameterList", + "parameters": [], + "src": "9127:2:8" + }, + "returnParameters": { + "id": 5257, + "nodeType": "ParameterList", + "parameters": [], + "src": "9145:0:8" + }, + "scope": 5764, + "src": "9116:205:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5286, + "nodeType": "Block", + "src": "9585:80:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5275, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9600:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5277, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9618:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9610:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9610:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "9600:20:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5274, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9592:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9592:29:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5281, + "nodeType": "ExpressionStatement", + "src": "9592:29:8" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5282, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "9635:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5284, + "indexExpression": { + "argumentTypes": null, + "id": 5283, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9652:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9635:24:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5273, + "id": 5285, + "nodeType": "Return", + "src": "9628:31:8" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", + "id": 5287, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5269, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9539:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9539:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9538:16:8" + }, + "returnParameters": { + "id": 5273, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5272, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9576:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5271, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9576:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9575:9:8" + }, + "scope": 5764, + "src": "9520:145:8", + "stateMutability": "view", + "superFunction": 5113, + "visibility": "public" + }, + { + "body": { + "id": 5310, + "nodeType": "Block", + "src": "9950:103:8", + "statements": [ + { + "assignments": [ + 5295 + ], + "declarations": [ + { + "constant": false, + "id": 5295, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5310, + "src": "9957:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5294, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9957:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5299, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5296, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "9973:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5298, + "indexExpression": { + "argumentTypes": null, + "id": 5297, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5289, + "src": "9984:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9973:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9957:36:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5301, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10008:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10025:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10017:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10017:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10008:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5300, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10000:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5307, + "nodeType": "ExpressionStatement", + "src": "10000:28:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5308, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10042:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5293, + "id": 5309, + "nodeType": "Return", + "src": "10035:12:8" + } + ] + }, + "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", + "id": 5311, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5289, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9902:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9902:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9901:18:8" + }, + "returnParameters": { + "id": 5293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5292, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9941:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9941:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9940:9:8" + }, + "scope": 5764, + "src": "9885:168:8", + "stateMutability": "view", + "superFunction": 5120, + "visibility": "public" + }, + { + "body": { + "id": 5330, + "nodeType": "Block", + "src": "10299:82:8", + "statements": [ + { + "assignments": [ + 5319 + ], + "declarations": [ + { + "constant": false, + "id": 5319, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5330, + "src": "10306:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5318, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10306:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5323, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5320, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "10322:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5322, + "indexExpression": { + "argumentTypes": null, + "id": 5321, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5313, + "src": "10333:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10322:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10306:36:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5324, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5319, + "src": "10356:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10373:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10365:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10365:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10356:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5317, + "id": 5329, + "nodeType": "Return", + "src": "10349:26:8" + } + ] + }, + "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", + "id": 5331, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5313, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10254:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10254:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10253:18:8" + }, + "returnParameters": { + "id": 5317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5316, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10293:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5315, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10293:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10292:6:8" + }, + "scope": 5764, + "src": "10238:143:8", + "stateMutability": "view", + "superFunction": 5127, + "visibility": "public" + }, + { + "body": { + "id": 5375, + "nodeType": "Block", + "src": "10851:229:8", + "statements": [ + { + "assignments": [ + 5339 + ], + "declarations": [ + { + "constant": false, + "id": 5339, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5375, + "src": "10858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5343, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5341, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "10882:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5340, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "10874:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10874:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10858:33:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5345, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "10906:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 5346, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10913:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5344, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10898:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10898:21:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5349, + "nodeType": "ExpressionStatement", + "src": "10898:21:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5351, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10934:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10934:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5353, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10948:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10934:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5356, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10974:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5357, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10981:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10981:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 5355, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "10957:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10957:35:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10934:58:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5350, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10926:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10926:67:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5362, + "nodeType": "ExpressionStatement", + "src": "10926:67:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5363, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11002:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5365, + "indexExpression": { + "argumentTypes": null, + "id": 5364, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11017:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11002:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5366, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11029:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11002:30:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5368, + "nodeType": "ExpressionStatement", + "src": "11002:30:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5370, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "11053:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5371, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11060:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5372, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11065:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5369, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5098, + "src": "11044:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11044:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5374, + "nodeType": "EmitStatement", + "src": "11039:35:8" + } + ] + }, + "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", + "id": 5376, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5336, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5333, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10813:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10813:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5335, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10826:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5334, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10826:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10812:31:8" + }, + "returnParameters": { + "id": 5337, + "nodeType": "ParameterList", + "parameters": [], + "src": "10851:0:8" + }, + "scope": 5764, + "src": "10796:284:8", + "stateMutability": "nonpayable", + "superFunction": 5134, + "visibility": "public" + }, + { + "body": { + "id": 5387, + "nodeType": "Block", + "src": "11383:44:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5383, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11397:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5385, + "indexExpression": { + "argumentTypes": null, + "id": 5384, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5378, + "src": "11412:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11397:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5382, + "id": 5386, + "nodeType": "Return", + "src": "11390:31:8" + } + ] + }, + "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", + "id": 5388, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5378, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11335:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5377, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11335:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11334:18:8" + }, + "returnParameters": { + "id": 5382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5381, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11374:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11374:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11373:9:8" + }, + "scope": 5764, + "src": "11314:113:8", + "stateMutability": "view", + "superFunction": 5141, + "visibility": "public" + }, + { + "body": { + "id": 5418, + "nodeType": "Block", + "src": "11778:146:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5396, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11793:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5397, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11800:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11800:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "11793:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5395, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "11785:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11785:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "11785:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5402, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "11818:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5406, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5403, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11836:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11836:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11818:29:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5407, + "indexExpression": { + "argumentTypes": null, + "id": 5405, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11848:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11818:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11855:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11818:46:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5410, + "nodeType": "ExpressionStatement", + "src": "11818:46:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5412, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11891:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11891:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5414, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11903:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5415, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11908:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5411, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5106, + "src": "11876:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 5416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11876:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5417, + "nodeType": "EmitStatement", + "src": "11871:47:8" + } + ] + }, + "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", + "id": 5419, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5390, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11742:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11742:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5392, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11755:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11755:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11741:29:8" + }, + "returnParameters": { + "id": 5394, + "nodeType": "ParameterList", + "parameters": [], + "src": "11778:0:8" + }, + "scope": 5764, + "src": "11715:209:8", + "stateMutability": "nonpayable", + "superFunction": 5148, + "visibility": "public" + }, + { + "body": { + "id": 5434, + "nodeType": "Block", + "src": "12362:56:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5428, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "12376:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5430, + "indexExpression": { + "argumentTypes": null, + "id": 5429, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5421, + "src": "12394:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5432, + "indexExpression": { + "argumentTypes": null, + "id": 5431, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "12402:9:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:36:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5427, + "id": 5433, + "nodeType": "Return", + "src": "12369:43:8" + } + ] + }, + "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", + "id": 5435, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5421, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12273:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5420, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12273:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5423, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12294:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5422, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12294:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12266:50:8" + }, + "returnParameters": { + "id": 5427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5426, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12353:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5425, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12353:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12352:6:8" + }, + "scope": 5764, + "src": "12241:177:8", + "stateMutability": "view", + "superFunction": 5157, + "visibility": "public" + }, + { + "body": { + "id": 5484, + "nodeType": "Block", + "src": "12976:228:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5448, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "12991:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13008:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13000:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "12991:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5447, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "12983:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12983:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5454, + "nodeType": "ExpressionStatement", + "src": "12983:28:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5456, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13026:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13041:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13033:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13033:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13026:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5455, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "13018:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13018:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5462, + "nodeType": "ExpressionStatement", + "src": "13018:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5464, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13067:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5465, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13074:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5463, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "13053:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13053:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5467, + "nodeType": "ExpressionStatement", + "src": "13053:30:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5469, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13106:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5470, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13113:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5468, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "13090:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13090:32:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5472, + "nodeType": "ExpressionStatement", + "src": "13090:32:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5474, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13140:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5475, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13145:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5473, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "13129:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13129:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5477, + "nodeType": "ExpressionStatement", + "src": "13129:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5479, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13177:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5480, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13184:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5481, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13189:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5478, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "13168:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13168:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5483, + "nodeType": "EmitStatement", + "src": "13163:35:8" + } + ] + }, + "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5485, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5444, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "12963:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5445, + "modifierName": { + "argumentTypes": null, + "id": 5443, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "12951:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12951:21:8" + } + ], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5442, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5437, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12874:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5436, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12874:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5439, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12894:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12894:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5441, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12912:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5440, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12912:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12867:66:8" + }, + "returnParameters": { + "id": 5446, + "nodeType": "ParameterList", + "parameters": [], + "src": "12976:0:8" + }, + "scope": 5764, + "src": "12846:358:8", + "stateMutability": "nonpayable", + "superFunction": 5166, + "visibility": "public" + }, + { + "body": { + "id": 5504, + "nodeType": "Block", + "src": "13960:101:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5498, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5487, + "src": "14030:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5499, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5489, + "src": "14037:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5500, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "14042:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 5501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14052:2:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 5497, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5505, + 5535 + ], + "referencedDeclaration": 5535, + "src": "14013:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 5502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14013:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5503, + "nodeType": "ExpressionStatement", + "src": "14013:42:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5505, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5494, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "13947:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5495, + "modifierName": { + "argumentTypes": null, + "id": 5493, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "13935:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "13935:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5487, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5486, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5489, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13878:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13878:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5491, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13896:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13896:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13851:66:8" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [], + "src": "13960:0:8" + }, + "scope": 5764, + "src": "13826:235:8", + "stateMutability": "nonpayable", + "superFunction": 5175, + "visibility": "public" + }, + { + "body": { + "id": 5534, + "nodeType": "Block", + "src": "14908:162:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5520, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "14928:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5521, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "14935:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5522, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14940:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5519, + "name": "transferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5485 + ], + "referencedDeclaration": 5485, + "src": "14915:12:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14915:34:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5524, + "nodeType": "ExpressionStatement", + "src": "14915:34:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5527, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "15035:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5528, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "15042:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5529, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "15047:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5530, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5513, + "src": "15057:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5526, + "name": "checkAndCallSafeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5763, + "src": "15010:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 5531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15010:53:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5525, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "15002:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15002:62:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5533, + "nodeType": "ExpressionStatement", + "src": "15002:62:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", + "id": 5535, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5516, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14895:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5517, + "modifierName": { + "argumentTypes": null, + "id": 5515, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "14883:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "14883:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5514, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5507, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14781:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14781:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5509, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14801:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14801:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5511, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14819:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14819:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5513, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14842:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5512, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14842:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14774:91:8" + }, + "returnParameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [], + "src": "14908:0:8" + }, + "scope": 5764, + "src": "14749:321:8", + "stateMutability": "nonpayable", + "superFunction": 5186, + "visibility": "public" + }, + { + "body": { + "id": 5566, + "nodeType": "Block", + "src": "15551:330:8", + "statements": [ + { + "assignments": [ + 5545 + ], + "declarations": [ + { + "constant": false, + "id": 5545, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5566, + "src": "15558:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15558:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5549, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5547, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15582:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5546, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "15574:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15574:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15558:33:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5550, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15763:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5551, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15775:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15763:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5554, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15803:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5553, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5388 + ], + "referencedDeclaration": 5388, + "src": "15791:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15791:21:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5556, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15816:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15791:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:61:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5560, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15852:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5561, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15859:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5559, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "15835:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15835:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:105:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5564, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15754:121:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5543, + "id": 5565, + "nodeType": "Return", + "src": "15747:128:8" + } + ] + }, + "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", + "id": 5567, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5540, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5537, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15459:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5536, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15459:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5539, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15482:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5538, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15482:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15452:51:8" + }, + "returnParameters": { + "id": 5543, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5542, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15542:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5541, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15541:6:8" + }, + "scope": 5764, + "src": "15426:455:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5595, + "nodeType": "Block", + "src": "16193:118:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5575, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16208:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16223:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16215:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16215:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "16208:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5574, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "16200:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16200:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5581, + "nodeType": "ExpressionStatement", + "src": "16200:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5583, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16244:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5584, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16249:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5582, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "16233:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16233:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5586, + "nodeType": "ExpressionStatement", + "src": "16233:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16287:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16279:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16279:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5591, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16291:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5592, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16296:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5587, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16270:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16270:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5594, + "nodeType": "EmitStatement", + "src": "16265:40:8" + } + ] + }, + "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", + "id": 5596, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5569, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16153:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5568, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16153:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5571, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16166:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5570, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16166:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16152:31:8" + }, + "returnParameters": { + "id": 5573, + "nodeType": "ParameterList", + "parameters": [], + "src": "16193:0:8" + }, + "scope": 5764, + "src": "16138:173:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5621, + "nodeType": "Block", + "src": "16562:134:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5604, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16583:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5605, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16591:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5603, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "16569:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16569:31:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5607, + "nodeType": "ExpressionStatement", + "src": "16569:31:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5609, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16623:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5610, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16631:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5608, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "16607:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16607:33:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5612, + "nodeType": "ExpressionStatement", + "src": "16607:33:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5614, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16661:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16677:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16669:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16669:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5618, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16681:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5613, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16652:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16652:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5620, + "nodeType": "EmitStatement", + "src": "16647:43:8" + } + ] + }, + "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", + "id": 5622, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5598, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16519:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16519:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5600, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16535:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5599, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16535:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16518:34:8" + }, + "returnParameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [], + "src": "16562:0:8" + }, + "scope": 5764, + "src": "16504:192:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5654, + "nodeType": "Block", + "src": "17032:153:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5631, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17055:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5630, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "17047:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17047:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5633, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5624, + "src": "17068:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17047:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5629, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17039:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17039:36:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5636, + "nodeType": "ExpressionStatement", + "src": "17039:36:8" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5637, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17086:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5639, + "indexExpression": { + "argumentTypes": null, + "id": 5638, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17101:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17086:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17122:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17114:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17114:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17086:38:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5653, + "nodeType": "IfStatement", + "src": "17082:98:8", + "trueBody": { + "id": 5652, + "nodeType": "Block", + "src": "17126:54:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5644, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17135:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5646, + "indexExpression": { + "argumentTypes": null, + "id": 5645, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17150:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17135:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5648, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17170:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17162:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17162:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17135:37:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5651, + "nodeType": "ExpressionStatement", + "src": "17135:37:8" + } + ] + } + } + ] + }, + "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5655, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "clearApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5624, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "16989:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5623, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16989:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5626, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "17005:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5625, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17005:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16988:34:8" + }, + "returnParameters": { + "id": 5628, + "nodeType": "ParameterList", + "parameters": [], + "src": "17032:0:8" + }, + "scope": 5764, + "src": "16966:219:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5689, + "nodeType": "Block", + "src": "17515:148:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5663, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17530:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5665, + "indexExpression": { + "argumentTypes": null, + "id": 5664, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17541:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17530:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17562:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17554:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17554:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17530:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5662, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17522:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17522:43:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5671, + "nodeType": "ExpressionStatement", + "src": "17522:43:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5672, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17572:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5674, + "indexExpression": { + "argumentTypes": null, + "id": 5673, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17583:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17572:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5675, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17595:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17572:26:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5677, + "nodeType": "ExpressionStatement", + "src": "17572:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5678, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17605:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5680, + "indexExpression": { + "argumentTypes": null, + "id": 5679, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17622:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17605:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17655:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5681, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17629:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5683, + "indexExpression": { + "argumentTypes": null, + "id": 5682, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17646:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17629:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "17629:25:8", + "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": 5686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17629:28:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17605:52:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5688, + "nodeType": "ExpressionStatement", + "src": "17605:52:8" + } + ] + }, + "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", + "id": 5690, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addTokenTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5657, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17475:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17475:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5659, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17488:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17488:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17474:31:8" + }, + "returnParameters": { + "id": 5661, + "nodeType": "ParameterList", + "parameters": [], + "src": "17515:0:8" + }, + "scope": 5764, + "src": "17455:208:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5724, + "nodeType": "Block", + "src": "18016:151:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5699, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18039:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5698, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "18031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18031:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5701, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18052:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "18031:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5697, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "18023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18023:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5704, + "nodeType": "ExpressionStatement", + "src": "18023:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5705, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18065:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5707, + "indexExpression": { + "argumentTypes": null, + "id": 5706, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18082:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18065:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18119:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5708, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18091:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5710, + "indexExpression": { + "argumentTypes": null, + "id": 5709, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18108:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18091:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "18091:27:8", + "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": 5713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18091:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18065:56:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5715, + "nodeType": "ExpressionStatement", + "src": "18065:56:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5716, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "18128:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5718, + "indexExpression": { + "argumentTypes": null, + "id": 5717, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18139:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18128:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18159:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18151:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18151:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "18128:33:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5723, + "nodeType": "ExpressionStatement", + "src": "18128:33:8" + } + ] + }, + "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", + "id": 5725, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeTokenFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5692, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17974:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5691, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17974:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5694, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17989:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17989:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17973:33:8" + }, + "returnParameters": { + "id": 5696, + "nodeType": "ParameterList", + "parameters": [], + "src": "18016:0:8" + }, + "scope": 5764, + "src": "17949:218:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5762, + "nodeType": "Block", + "src": "18846:195:8", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "18857:17:8", + "subExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5738, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18858:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 5008, + "src": "18858:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18858:16:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5745, + "nodeType": "IfStatement", + "src": "18853:51:8", + "trueBody": { + "id": 5744, + "nodeType": "Block", + "src": "18876:28:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18892:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5737, + "id": 5743, + "nodeType": "Return", + "src": "18885:11:8" + } + ] + } + }, + { + "assignments": [ + 5747 + ], + "declarations": [ + { + "constant": false, + "id": 5747, + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 5762, + "src": "18910:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5746, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "18910:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5756, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5752, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5727, + "src": "18971:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5753, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5731, + "src": "18978:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5754, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5733, + "src": "18988:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5749, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18941:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5748, + "name": "ERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "18926:14:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", + "typeString": "type(contract ERC721Receiver)" + } + }, + "id": 5750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:19:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Receiver_$5080", + "typeString": "contract ERC721Receiver" + } + }, + "id": 5751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 5079, + "src": "18926:36:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 5755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:68:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18910:84:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5757, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5747, + "src": "19009:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5758, + "name": "ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5206, + "src": "19019:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "19009:25:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5760, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19008:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5737, + "id": 5761, + "nodeType": "Return", + "src": "19001:34:8" + } + ] + }, + "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", + "id": 5763, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "checkAndCallSafeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5727, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18724:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5726, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18724:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5729, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18744:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18744:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5731, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18762:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5730, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18762:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5733, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18785:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5732, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18785:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18717:91:8" + }, + "returnParameters": { + "id": 5737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5736, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18837:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5735, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18837:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18836:6:8" + }, + "scope": 5764, + "src": "18684:357:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "6942:12102:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5765, + "name": "ERC721BasicToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5764, + "src": "19081:16:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", + "typeString": "contract ERC721BasicToken" + } + }, + "id": 5766, + "nodeType": "InheritanceSpecifier", + "src": "19081:16:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187, + 5764 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5797, + "linearizedBaseContracts": [ + 5797, + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicTokenMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5780, + "nodeType": "Block", + "src": "19155:39:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5776, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5768, + "src": "19174:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5777, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5770, + "src": "19179:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5773, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19162:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 5596, + "src": "19162:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19162:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5779, + "nodeType": "ExpressionStatement", + "src": "19162:26:8" + } + ] + }, + "documentation": null, + "id": 5781, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19117:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19117:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19130:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19130:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19116:31:8" + }, + "returnParameters": { + "id": 5772, + "nodeType": "ParameterList", + "parameters": [], + "src": "19155:0:8" + }, + "scope": 5797, + "src": "19103:91:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5795, + "nodeType": "Block", + "src": "19239:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5790, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19266:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5789, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "19258:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19258:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5792, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19277:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5786, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19246:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 5622, + "src": "19246:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19246:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5794, + "nodeType": "ExpressionStatement", + "src": "19246:40:8" + } + ] + }, + "documentation": null, + "id": 5796, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5783, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5796, + "src": "19214:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5782, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19214:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19213:18:8" + }, + "returnParameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [], + "src": "19239:0:8" + }, + "scope": 5797, + "src": "19200:92:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "19048:247:8" + } + ], + "src": "0:19297:8" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", + "exportedSymbols": { + "AddressUtils": [ + 5009 + ], + "ERC165": [ + 5017 + ], + "ERC721Basic": [ + 5187 + ], + "ERC721BasicToken": [ + 5764 + ], + "ERC721BasicTokenMock": [ + 5797 + ], + "ERC721Receiver": [ + 5080 + ], + "SupportsInterfaceWithLookup": [ + 5065 + ] + }, + "id": 5798, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4991, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:8" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "../../dao/oz/SafeMath.sol", + "id": 4992, + "nodeType": "ImportDirective", + "scope": 5798, + "sourceUnit": 9858, + "src": "34:35:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "Utility library of inline functions on addresses\r", + "fullyImplemented": true, + "id": 5009, + "linearizedBaseContracts": [ + 5009 + ], + "name": "AddressUtils", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5007, + "nodeType": "Block", + "src": "2012:524:8", + "statements": [ + { + "assignments": [ + 5000 + ], + "declarations": [ + { + "constant": false, + "id": 5000, + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 5007, + "src": "2019:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2019:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5001, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "2019:12:8" + }, + { + "externalReferences": [ + { + "size": { + "declaration": 5000, + "isOffset": false, + "isSlot": false, + "src": "2482:4:8", + "valueSize": 1 + } + }, + { + "addr": { + "declaration": 4994, + "isOffset": false, + "isSlot": false, + "src": "2502:4:8", + "valueSize": 1 + } + } + ], + "id": 5002, + "nodeType": "InlineAssembly", + "operations": "{ size := extcodesize(addr) }", + "src": "2471:38:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5003, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5000, + "src": "2522:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5004, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2529:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2522:8:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4998, + "id": 5006, + "nodeType": "Return", + "src": "2515:15:8" + } + ] + }, + "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", + "id": 5008, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4994, + "name": "addr", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "1969:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1969:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1968:14:8" + }, + "returnParameters": { + "id": 4998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4997, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "2006:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4996, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2006:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2005:6:8" + }, + "scope": 5009, + "src": "1949:587:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "1590:951:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", + "fullyImplemented": false, + "id": 5017, + "linearizedBaseContracts": [ + 5017 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", + "id": 5016, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5012, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5011, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "2950:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5010, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2950:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2949:21:8" + }, + "returnParameters": { + "id": 5015, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5014, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "3009:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5013, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3009:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3008:6:8" + }, + "scope": 5017, + "src": "2923:92:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 5798, + "src": "2643:375:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5018, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "3196:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5019, + "nodeType": "InheritanceSpecifier", + "src": "3196:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", + "fullyImplemented": true, + "id": 5065, + "linearizedBaseContracts": [ + 5065, + 5017 + ], + "name": "SupportsInterfaceWithLookup", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5022, + "name": "InterfaceId_ERC165", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3208:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5020, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3208:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783031666663396137", + "id": 5021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3252:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 5026, + "name": "supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3443:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 5025, + "keyType": { + "id": 5023, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3451:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "3443:23:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 5024, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3461:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 5033, + "nodeType": "Block", + "src": "3638:51:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5030, + "name": "InterfaceId_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5022, + "src": "3664:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5029, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "3645:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3645:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5032, + "nodeType": "ExpressionStatement", + "src": "3645:38:8" + } + ] + }, + "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", + "id": 5034, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5027, + "nodeType": "ParameterList", + "parameters": [], + "src": "3620:2:8" + }, + "returnParameters": { + "id": 5028, + "nodeType": "ParameterList", + "parameters": [], + "src": "3638:0:8" + }, + "scope": 5065, + "src": "3609:80:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5045, + "nodeType": "Block", + "src": "3872:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5041, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "3886:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5043, + "indexExpression": { + "argumentTypes": null, + "id": 5042, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5036, + "src": "3906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3886:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5040, + "id": 5044, + "nodeType": "Return", + "src": "3879:40:8" + } + ] + }, + "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", + "id": 5046, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5037, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5036, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3804:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5035, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3804:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3803:21:8" + }, + "returnParameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5039, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3863:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5038, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3863:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3862:6:8" + }, + "scope": 5065, + "src": "3777:148:8", + "stateMutability": "view", + "superFunction": 5016, + "visibility": "external" + }, + { + "body": { + "id": 5063, + "nodeType": "Block", + "src": "4066:95:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5052, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4081:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30786666666666666666", + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4097:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "4081:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5051, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4073:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4073:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5056, + "nodeType": "ExpressionStatement", + "src": "4073:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5057, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "4115:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5059, + "indexExpression": { + "argumentTypes": null, + "id": 5058, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4135:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4115:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4151:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4115:40:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5062, + "nodeType": "ExpressionStatement", + "src": "4115:40:8" + } + ] + }, + "documentation": "@dev private method for registering an interface\r", + "id": 5064, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5048, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5064, + "src": "4028:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5047, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4028:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4027:21:8" + }, + "returnParameters": { + "id": 5050, + "nodeType": "ParameterList", + "parameters": [], + "src": "4066:0:8" + }, + "scope": 5065, + "src": "4000:161:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "3156:1008:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", + "fullyImplemented": false, + "id": 5080, + "linearizedBaseContracts": [ + 5080 + ], + "name": "ERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5068, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5080, + "src": "4607:53:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5066, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4607:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4650:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "internal" + }, + { + "body": null, + "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", + "id": 5079, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5070, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5364:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5069, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5364:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5072, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5384:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5384:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5074, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5407:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5073, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5407:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5357:73:8" + }, + "returnParameters": { + "id": 5078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5077, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5456:6:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5076, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "5456:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5455:8:8" + }, + "scope": 5080, + "src": "5332:132:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "4326:1141:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5081, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "5641:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5082, + "nodeType": "InheritanceSpecifier", + "src": "5641:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": false, + "id": 5187, + "linearizedBaseContracts": [ + 5187, + 5017 + ], + "name": "ERC721Basic", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5090, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5084, + "indexed": false, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5674:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5083, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5674:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5086, + "indexed": false, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5695:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5695:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5088, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5714:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5087, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5714:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5667:69:8" + }, + "src": "5653:84:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5098, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5092, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5762:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5091, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5762:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5094, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5784:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5784:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5096, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5809:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5809:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5755:76:8" + }, + "src": "5741:91:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5106, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 5105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5100, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5863:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5099, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5863:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5102, + "indexed": false, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5885:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5101, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5885:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5104, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5910:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5103, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5910:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5856:73:8" + }, + "src": "5836:94:8" + }, + { + "body": null, + "documentation": null, + "id": 5113, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5109, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5108, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5955:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5955:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5954:16:8" + }, + "returnParameters": { + "id": 5112, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5111, + "name": "_balance", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5992:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5110, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5992:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5991:18:8" + }, + "scope": 5187, + "src": "5936:74:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5120, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5115, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6031:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6030:18:8" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5118, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6070:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6070:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6069:16:8" + }, + "scope": 5187, + "src": "6014:72:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5127, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5122, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6106:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5121, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6106:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6105:18:8" + }, + "returnParameters": { + "id": 5126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5125, + "name": "_exists", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6145:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5124, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6145:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6144:14:8" + }, + "scope": 5187, + "src": "6090:69:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5134, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5129, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6182:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6182:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5131, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6195:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6195:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6181:31:8" + }, + "returnParameters": { + "id": 5133, + "nodeType": "ParameterList", + "parameters": [], + "src": "6219:0:8" + }, + "scope": 5187, + "src": "6165:55:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5141, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5136, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6245:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6245:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6244:18:8" + }, + "returnParameters": { + "id": 5140, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5139, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6289:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6289:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6288:19:8" + }, + "scope": 5187, + "src": "6224:84:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5148, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5143, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6341:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6341:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5145, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6360:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5144, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6360:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6340:35:8" + }, + "returnParameters": { + "id": 5147, + "nodeType": "ParameterList", + "parameters": [], + "src": "6382:0:8" + }, + "scope": 5187, + "src": "6314:69:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5157, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5153, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5150, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6413:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5149, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6413:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5152, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6429:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5151, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6429:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6412:35:8" + }, + "returnParameters": { + "id": 5156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5155, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6474:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5154, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6474:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6473:6:8" + }, + "scope": 5187, + "src": "6387:93:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5166, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5164, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5159, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6508:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6508:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5161, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6523:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6523:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5163, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6536:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5162, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6536:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6507:46:8" + }, + "returnParameters": { + "id": 5165, + "nodeType": "ParameterList", + "parameters": [], + "src": "6560:0:8" + }, + "scope": 5187, + "src": "6486:75:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5175, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5173, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5168, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6591:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5167, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6591:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5170, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6606:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5169, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6606:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5172, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6619:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5171, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6619:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6590:46:8" + }, + "returnParameters": { + "id": 5174, + "nodeType": "ParameterList", + "parameters": [], + "src": "6648:0:8" + }, + "scope": 5187, + "src": "6565:84:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5186, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5184, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5177, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6687:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5176, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6687:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5179, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6707:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5178, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6707:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5181, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6725:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5180, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6725:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5183, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6748:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5182, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6748:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6680:91:8" + }, + "returnParameters": { + "id": 5185, + "nodeType": "ParameterList", + "parameters": [], + "src": "6783:0:8" + }, + "scope": 5187, + "src": "6655:129:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "5617:1170:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5188, + "name": "SupportsInterfaceWithLookup", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5065, + "src": "6971:27:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", + "typeString": "contract SupportsInterfaceWithLookup" + } + }, + "id": 5189, + "nodeType": "InheritanceSpecifier", + "src": "6971:27:8" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5190, + "name": "ERC721Basic", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5187, + "src": "7000:11:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Basic_$5187", + "typeString": "contract ERC721Basic" + } + }, + "id": 5191, + "nodeType": "InheritanceSpecifier", + "src": "7000:11:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": true, + "id": 5764, + "linearizedBaseContracts": [ + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5194, + "name": "InterfaceId_ERC721", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7019:55:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5192, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7019:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783830616335386364", + "id": 5193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7064:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 5197, + "name": "InterfaceId_ERC721Exists", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7668:61:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5195, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7668:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783466353538653739", + "id": 5196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7719:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1331007097_by_1", + "typeString": "int_const 1331007097" + }, + "value": "0x4f558e79" + }, + "visibility": "private" + }, + { + "id": 5200, + "libraryName": { + "contractScope": null, + "id": 5198, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "7821:8:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "7815:27:8", + "typeName": { + "id": 5199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7834:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5203, + "libraryName": { + "contractScope": null, + "id": 5201, + "name": "AddressUtils", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5009, + "src": "7852:12:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddressUtils_$5009", + "typeString": "library AddressUtils" + } + }, + "nodeType": "UsingForDirective", + "src": "7846:31:8", + "typeName": { + "id": 5202, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7869:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "constant": true, + "id": 5206, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8044:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5204, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8044:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8086:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 5210, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8140:48:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5209, + "keyType": { + "id": 5207, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8149:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8140:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5208, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8160:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5214, + "name": "tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8243:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5213, + "keyType": { + "id": 5211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8252:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8243:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8263:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5218, + "name": "ownedTokensCount", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8352:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5217, + "keyType": { + "id": 5215, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8361:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8352:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8372:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5224, + "name": "operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8460:73:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 5223, + "keyType": { + "id": 5219, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8469:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8460:46:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 5222, + "keyType": { + "id": 5220, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8489:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8480:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 5221, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8500:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5226, + "name": "testint", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8542:19:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5225, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 5240, + "nodeType": "Block", + "src": "8774:61:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5232, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5228, + "src": "8797:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5231, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "8789:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8789:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5234, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "8810:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8810:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8789:31:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5230, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "8781:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8781:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5238, + "nodeType": "ExpressionStatement", + "src": "8781:40:8" + }, + { + "id": 5239, + "nodeType": "PlaceholderStatement", + "src": "8828:1:8" + } + ] + }, + "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", + "id": 5241, + "name": "onlyOwnerOf", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5228, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5241, + "src": "8756:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5227, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8756:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8755:18:8" + }, + "src": "8735:100:8", + "visibility": "internal" + }, + { + "body": { + "id": 5254, + "nodeType": "Block", + "src": "9041:69:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5247, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "9074:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9074:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5249, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5243, + "src": "9086:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5246, + "name": "isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5567, + "src": "9056:17:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 5250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9056:39:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5245, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9048:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9048:48:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5252, + "nodeType": "ExpressionStatement", + "src": "9048:48:8" + }, + { + "id": 5253, + "nodeType": "PlaceholderStatement", + "src": "9103:1:8" + } + ] + }, + "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", + "id": 5255, + "name": "canTransfer", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5244, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5243, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5255, + "src": "9023:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5242, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9022:18:8" + }, + "src": "9002:108:8", + "visibility": "internal" + }, + { + "body": { + "id": 5266, + "nodeType": "Block", + "src": "9145:176:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5259, + "name": "InterfaceId_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "9245:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5258, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9226:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9226:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5261, + "nodeType": "ExpressionStatement", + "src": "9226:38:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5263, + "name": "InterfaceId_ERC721Exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5197, + "src": "9290:24:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5262, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9271:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9271:44:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5265, + "nodeType": "ExpressionStatement", + "src": "9271:44:8" + } + ] + }, + "documentation": null, + "id": 5267, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5256, + "nodeType": "ParameterList", + "parameters": [], + "src": "9127:2:8" + }, + "returnParameters": { + "id": 5257, + "nodeType": "ParameterList", + "parameters": [], + "src": "9145:0:8" + }, + "scope": 5764, + "src": "9116:205:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5286, + "nodeType": "Block", + "src": "9585:80:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5275, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9600:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5277, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9618:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9610:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9610:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "9600:20:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5274, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9592:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9592:29:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5281, + "nodeType": "ExpressionStatement", + "src": "9592:29:8" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5282, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "9635:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5284, + "indexExpression": { + "argumentTypes": null, + "id": 5283, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9652:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9635:24:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5273, + "id": 5285, + "nodeType": "Return", + "src": "9628:31:8" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", + "id": 5287, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5269, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9539:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9539:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9538:16:8" + }, + "returnParameters": { + "id": 5273, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5272, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9576:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5271, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9576:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9575:9:8" + }, + "scope": 5764, + "src": "9520:145:8", + "stateMutability": "view", + "superFunction": 5113, + "visibility": "public" + }, + { + "body": { + "id": 5310, + "nodeType": "Block", + "src": "9950:103:8", + "statements": [ + { + "assignments": [ + 5295 + ], + "declarations": [ + { + "constant": false, + "id": 5295, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5310, + "src": "9957:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5294, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9957:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5299, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5296, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "9973:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5298, + "indexExpression": { + "argumentTypes": null, + "id": 5297, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5289, + "src": "9984:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9973:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9957:36:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5301, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10008:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10025:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10017:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10017:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10008:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5300, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10000:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5307, + "nodeType": "ExpressionStatement", + "src": "10000:28:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5308, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10042:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5293, + "id": 5309, + "nodeType": "Return", + "src": "10035:12:8" + } + ] + }, + "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", + "id": 5311, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5289, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9902:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9902:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9901:18:8" + }, + "returnParameters": { + "id": 5293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5292, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9941:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9941:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9940:9:8" + }, + "scope": 5764, + "src": "9885:168:8", + "stateMutability": "view", + "superFunction": 5120, + "visibility": "public" + }, + { + "body": { + "id": 5330, + "nodeType": "Block", + "src": "10299:82:8", + "statements": [ + { + "assignments": [ + 5319 + ], + "declarations": [ + { + "constant": false, + "id": 5319, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5330, + "src": "10306:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5318, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10306:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5323, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5320, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "10322:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5322, + "indexExpression": { + "argumentTypes": null, + "id": 5321, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5313, + "src": "10333:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10322:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10306:36:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5324, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5319, + "src": "10356:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10373:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10365:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10365:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10356:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5317, + "id": 5329, + "nodeType": "Return", + "src": "10349:26:8" + } + ] + }, + "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", + "id": 5331, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5313, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10254:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10254:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10253:18:8" + }, + "returnParameters": { + "id": 5317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5316, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10293:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5315, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10293:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10292:6:8" + }, + "scope": 5764, + "src": "10238:143:8", + "stateMutability": "view", + "superFunction": 5127, + "visibility": "public" + }, + { + "body": { + "id": 5375, + "nodeType": "Block", + "src": "10851:229:8", + "statements": [ + { + "assignments": [ + 5339 + ], + "declarations": [ + { + "constant": false, + "id": 5339, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5375, + "src": "10858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5343, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5341, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "10882:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5340, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "10874:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10874:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10858:33:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5345, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "10906:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 5346, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10913:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5344, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10898:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10898:21:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5349, + "nodeType": "ExpressionStatement", + "src": "10898:21:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5351, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10934:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10934:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5353, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10948:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10934:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5356, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10974:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5357, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10981:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10981:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 5355, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "10957:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10957:35:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10934:58:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5350, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10926:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10926:67:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5362, + "nodeType": "ExpressionStatement", + "src": "10926:67:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5363, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11002:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5365, + "indexExpression": { + "argumentTypes": null, + "id": 5364, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11017:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11002:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5366, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11029:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11002:30:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5368, + "nodeType": "ExpressionStatement", + "src": "11002:30:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5370, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "11053:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5371, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11060:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5372, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11065:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5369, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5098, + "src": "11044:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11044:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5374, + "nodeType": "EmitStatement", + "src": "11039:35:8" + } + ] + }, + "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", + "id": 5376, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5336, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5333, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10813:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10813:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5335, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10826:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5334, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10826:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10812:31:8" + }, + "returnParameters": { + "id": 5337, + "nodeType": "ParameterList", + "parameters": [], + "src": "10851:0:8" + }, + "scope": 5764, + "src": "10796:284:8", + "stateMutability": "nonpayable", + "superFunction": 5134, + "visibility": "public" + }, + { + "body": { + "id": 5387, + "nodeType": "Block", + "src": "11383:44:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5383, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11397:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5385, + "indexExpression": { + "argumentTypes": null, + "id": 5384, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5378, + "src": "11412:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11397:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5382, + "id": 5386, + "nodeType": "Return", + "src": "11390:31:8" + } + ] + }, + "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", + "id": 5388, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5378, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11335:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5377, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11335:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11334:18:8" + }, + "returnParameters": { + "id": 5382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5381, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11374:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11374:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11373:9:8" + }, + "scope": 5764, + "src": "11314:113:8", + "stateMutability": "view", + "superFunction": 5141, + "visibility": "public" + }, + { + "body": { + "id": 5418, + "nodeType": "Block", + "src": "11778:146:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5396, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11793:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5397, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11800:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11800:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "11793:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5395, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "11785:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11785:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "11785:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5402, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "11818:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5406, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5403, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11836:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11836:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11818:29:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5407, + "indexExpression": { + "argumentTypes": null, + "id": 5405, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11848:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11818:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11855:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11818:46:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5410, + "nodeType": "ExpressionStatement", + "src": "11818:46:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5412, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11891:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11891:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5414, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11903:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5415, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11908:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5411, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5106, + "src": "11876:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 5416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11876:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5417, + "nodeType": "EmitStatement", + "src": "11871:47:8" + } + ] + }, + "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", + "id": 5419, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5390, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11742:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11742:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5392, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11755:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11755:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11741:29:8" + }, + "returnParameters": { + "id": 5394, + "nodeType": "ParameterList", + "parameters": [], + "src": "11778:0:8" + }, + "scope": 5764, + "src": "11715:209:8", + "stateMutability": "nonpayable", + "superFunction": 5148, + "visibility": "public" + }, + { + "body": { + "id": 5434, + "nodeType": "Block", + "src": "12362:56:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5428, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "12376:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5430, + "indexExpression": { + "argumentTypes": null, + "id": 5429, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5421, + "src": "12394:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5432, + "indexExpression": { + "argumentTypes": null, + "id": 5431, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "12402:9:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:36:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5427, + "id": 5433, + "nodeType": "Return", + "src": "12369:43:8" + } + ] + }, + "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", + "id": 5435, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5421, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12273:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5420, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12273:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5423, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12294:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5422, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12294:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12266:50:8" + }, + "returnParameters": { + "id": 5427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5426, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12353:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5425, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12353:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12352:6:8" + }, + "scope": 5764, + "src": "12241:177:8", + "stateMutability": "view", + "superFunction": 5157, + "visibility": "public" + }, + { + "body": { + "id": 5484, + "nodeType": "Block", + "src": "12976:228:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5448, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "12991:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13008:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13000:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "12991:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5447, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "12983:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12983:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5454, + "nodeType": "ExpressionStatement", + "src": "12983:28:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5456, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13026:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13041:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13033:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13033:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13026:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5455, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "13018:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13018:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5462, + "nodeType": "ExpressionStatement", + "src": "13018:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5464, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13067:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5465, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13074:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5463, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "13053:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13053:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5467, + "nodeType": "ExpressionStatement", + "src": "13053:30:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5469, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13106:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5470, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13113:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5468, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "13090:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13090:32:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5472, + "nodeType": "ExpressionStatement", + "src": "13090:32:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5474, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13140:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5475, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13145:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5473, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "13129:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13129:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5477, + "nodeType": "ExpressionStatement", + "src": "13129:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5479, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13177:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5480, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13184:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5481, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13189:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5478, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "13168:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13168:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5483, + "nodeType": "EmitStatement", + "src": "13163:35:8" + } + ] + }, + "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5485, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5444, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "12963:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5445, + "modifierName": { + "argumentTypes": null, + "id": 5443, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "12951:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12951:21:8" + } + ], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5442, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5437, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12874:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5436, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12874:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5439, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12894:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12894:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5441, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12912:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5440, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12912:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12867:66:8" + }, + "returnParameters": { + "id": 5446, + "nodeType": "ParameterList", + "parameters": [], + "src": "12976:0:8" + }, + "scope": 5764, + "src": "12846:358:8", + "stateMutability": "nonpayable", + "superFunction": 5166, + "visibility": "public" + }, + { + "body": { + "id": 5504, + "nodeType": "Block", + "src": "13960:101:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5498, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5487, + "src": "14030:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5499, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5489, + "src": "14037:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5500, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "14042:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 5501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14052:2:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 5497, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5505, + 5535 + ], + "referencedDeclaration": 5535, + "src": "14013:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 5502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14013:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5503, + "nodeType": "ExpressionStatement", + "src": "14013:42:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5505, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5494, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "13947:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5495, + "modifierName": { + "argumentTypes": null, + "id": 5493, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "13935:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "13935:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5487, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5486, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5489, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13878:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13878:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5491, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13896:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13896:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13851:66:8" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [], + "src": "13960:0:8" + }, + "scope": 5764, + "src": "13826:235:8", + "stateMutability": "nonpayable", + "superFunction": 5175, + "visibility": "public" + }, + { + "body": { + "id": 5534, + "nodeType": "Block", + "src": "14908:162:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5520, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "14928:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5521, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "14935:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5522, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14940:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5519, + "name": "transferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5485 + ], + "referencedDeclaration": 5485, + "src": "14915:12:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14915:34:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5524, + "nodeType": "ExpressionStatement", + "src": "14915:34:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5527, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "15035:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5528, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "15042:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5529, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "15047:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5530, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5513, + "src": "15057:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5526, + "name": "checkAndCallSafeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5763, + "src": "15010:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 5531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15010:53:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5525, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "15002:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15002:62:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5533, + "nodeType": "ExpressionStatement", + "src": "15002:62:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", + "id": 5535, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5516, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14895:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5517, + "modifierName": { + "argumentTypes": null, + "id": 5515, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "14883:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "14883:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5514, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5507, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14781:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14781:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5509, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14801:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14801:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5511, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14819:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14819:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5513, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14842:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5512, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14842:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14774:91:8" + }, + "returnParameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [], + "src": "14908:0:8" + }, + "scope": 5764, + "src": "14749:321:8", + "stateMutability": "nonpayable", + "superFunction": 5186, + "visibility": "public" + }, + { + "body": { + "id": 5566, + "nodeType": "Block", + "src": "15551:330:8", + "statements": [ + { + "assignments": [ + 5545 + ], + "declarations": [ + { + "constant": false, + "id": 5545, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5566, + "src": "15558:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15558:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5549, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5547, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15582:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5546, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "15574:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15574:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15558:33:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5550, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15763:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5551, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15775:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15763:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5554, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15803:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5553, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5388 + ], + "referencedDeclaration": 5388, + "src": "15791:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15791:21:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5556, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15816:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15791:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:61:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5560, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15852:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5561, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15859:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5559, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "15835:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15835:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:105:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5564, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15754:121:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5543, + "id": 5565, + "nodeType": "Return", + "src": "15747:128:8" + } + ] + }, + "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", + "id": 5567, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5540, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5537, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15459:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5536, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15459:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5539, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15482:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5538, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15482:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15452:51:8" + }, + "returnParameters": { + "id": 5543, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5542, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15542:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5541, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15541:6:8" + }, + "scope": 5764, + "src": "15426:455:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5595, + "nodeType": "Block", + "src": "16193:118:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5575, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16208:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16223:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16215:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16215:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "16208:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5574, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "16200:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16200:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5581, + "nodeType": "ExpressionStatement", + "src": "16200:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5583, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16244:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5584, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16249:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5582, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "16233:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16233:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5586, + "nodeType": "ExpressionStatement", + "src": "16233:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16287:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16279:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16279:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5591, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16291:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5592, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16296:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5587, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16270:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16270:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5594, + "nodeType": "EmitStatement", + "src": "16265:40:8" + } + ] + }, + "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", + "id": 5596, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5569, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16153:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5568, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16153:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5571, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16166:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5570, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16166:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16152:31:8" + }, + "returnParameters": { + "id": 5573, + "nodeType": "ParameterList", + "parameters": [], + "src": "16193:0:8" + }, + "scope": 5764, + "src": "16138:173:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5621, + "nodeType": "Block", + "src": "16562:134:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5604, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16583:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5605, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16591:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5603, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "16569:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16569:31:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5607, + "nodeType": "ExpressionStatement", + "src": "16569:31:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5609, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16623:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5610, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16631:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5608, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "16607:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16607:33:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5612, + "nodeType": "ExpressionStatement", + "src": "16607:33:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5614, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16661:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16677:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16669:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16669:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5618, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16681:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5613, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16652:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16652:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5620, + "nodeType": "EmitStatement", + "src": "16647:43:8" + } + ] + }, + "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", + "id": 5622, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5598, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16519:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16519:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5600, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16535:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5599, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16535:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16518:34:8" + }, + "returnParameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [], + "src": "16562:0:8" + }, + "scope": 5764, + "src": "16504:192:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5654, + "nodeType": "Block", + "src": "17032:153:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5631, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17055:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5630, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "17047:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17047:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5633, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5624, + "src": "17068:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17047:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5629, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17039:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17039:36:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5636, + "nodeType": "ExpressionStatement", + "src": "17039:36:8" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5637, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17086:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5639, + "indexExpression": { + "argumentTypes": null, + "id": 5638, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17101:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17086:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17122:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17114:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17114:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17086:38:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5653, + "nodeType": "IfStatement", + "src": "17082:98:8", + "trueBody": { + "id": 5652, + "nodeType": "Block", + "src": "17126:54:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5644, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17135:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5646, + "indexExpression": { + "argumentTypes": null, + "id": 5645, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17150:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17135:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5648, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17170:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17162:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17162:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17135:37:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5651, + "nodeType": "ExpressionStatement", + "src": "17135:37:8" + } + ] + } + } + ] + }, + "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5655, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "clearApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5624, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "16989:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5623, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16989:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5626, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "17005:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5625, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17005:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16988:34:8" + }, + "returnParameters": { + "id": 5628, + "nodeType": "ParameterList", + "parameters": [], + "src": "17032:0:8" + }, + "scope": 5764, + "src": "16966:219:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5689, + "nodeType": "Block", + "src": "17515:148:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5663, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17530:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5665, + "indexExpression": { + "argumentTypes": null, + "id": 5664, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17541:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17530:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17562:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17554:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17554:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17530:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5662, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17522:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17522:43:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5671, + "nodeType": "ExpressionStatement", + "src": "17522:43:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5672, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17572:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5674, + "indexExpression": { + "argumentTypes": null, + "id": 5673, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17583:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17572:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5675, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17595:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17572:26:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5677, + "nodeType": "ExpressionStatement", + "src": "17572:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5678, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17605:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5680, + "indexExpression": { + "argumentTypes": null, + "id": 5679, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17622:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17605:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17655:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5681, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17629:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5683, + "indexExpression": { + "argumentTypes": null, + "id": 5682, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17646:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17629:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "17629:25:8", + "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": 5686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17629:28:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17605:52:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5688, + "nodeType": "ExpressionStatement", + "src": "17605:52:8" + } + ] + }, + "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", + "id": 5690, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addTokenTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5657, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17475:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17475:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5659, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17488:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17488:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17474:31:8" + }, + "returnParameters": { + "id": 5661, + "nodeType": "ParameterList", + "parameters": [], + "src": "17515:0:8" + }, + "scope": 5764, + "src": "17455:208:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5724, + "nodeType": "Block", + "src": "18016:151:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5699, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18039:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5698, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "18031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18031:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5701, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18052:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "18031:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5697, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "18023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18023:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5704, + "nodeType": "ExpressionStatement", + "src": "18023:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5705, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18065:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5707, + "indexExpression": { + "argumentTypes": null, + "id": 5706, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18082:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18065:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18119:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5708, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18091:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5710, + "indexExpression": { + "argumentTypes": null, + "id": 5709, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18108:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18091:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "18091:27:8", + "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": 5713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18091:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18065:56:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5715, + "nodeType": "ExpressionStatement", + "src": "18065:56:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5716, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "18128:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5718, + "indexExpression": { + "argumentTypes": null, + "id": 5717, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18139:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18128:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18159:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18151:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18151:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "18128:33:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5723, + "nodeType": "ExpressionStatement", + "src": "18128:33:8" + } + ] + }, + "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", + "id": 5725, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeTokenFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5692, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17974:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5691, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17974:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5694, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17989:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17989:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17973:33:8" + }, + "returnParameters": { + "id": 5696, + "nodeType": "ParameterList", + "parameters": [], + "src": "18016:0:8" + }, + "scope": 5764, + "src": "17949:218:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5762, + "nodeType": "Block", + "src": "18846:195:8", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "18857:17:8", + "subExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5738, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18858:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 5008, + "src": "18858:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18858:16:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5745, + "nodeType": "IfStatement", + "src": "18853:51:8", + "trueBody": { + "id": 5744, + "nodeType": "Block", + "src": "18876:28:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18892:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5737, + "id": 5743, + "nodeType": "Return", + "src": "18885:11:8" + } + ] + } + }, + { + "assignments": [ + 5747 + ], + "declarations": [ + { + "constant": false, + "id": 5747, + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 5762, + "src": "18910:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5746, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "18910:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5756, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5752, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5727, + "src": "18971:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5753, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5731, + "src": "18978:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5754, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5733, + "src": "18988:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5749, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18941:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5748, + "name": "ERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "18926:14:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", + "typeString": "type(contract ERC721Receiver)" + } + }, + "id": 5750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:19:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Receiver_$5080", + "typeString": "contract ERC721Receiver" + } + }, + "id": 5751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 5079, + "src": "18926:36:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 5755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:68:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18910:84:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5757, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5747, + "src": "19009:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5758, + "name": "ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5206, + "src": "19019:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "19009:25:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5760, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19008:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5737, + "id": 5761, + "nodeType": "Return", + "src": "19001:34:8" + } + ] + }, + "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", + "id": 5763, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "checkAndCallSafeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5727, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18724:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5726, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18724:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5729, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18744:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18744:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5731, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18762:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5730, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18762:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5733, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18785:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5732, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18785:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18717:91:8" + }, + "returnParameters": { + "id": 5737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5736, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18837:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5735, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18837:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18836:6:8" + }, + "scope": 5764, + "src": "18684:357:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "6942:12102:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5765, + "name": "ERC721BasicToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5764, + "src": "19081:16:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", + "typeString": "contract ERC721BasicToken" + } + }, + "id": 5766, + "nodeType": "InheritanceSpecifier", + "src": "19081:16:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187, + 5764 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5797, + "linearizedBaseContracts": [ + 5797, + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicTokenMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5780, + "nodeType": "Block", + "src": "19155:39:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5776, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5768, + "src": "19174:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5777, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5770, + "src": "19179:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5773, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19162:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 5596, + "src": "19162:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19162:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5779, + "nodeType": "ExpressionStatement", + "src": "19162:26:8" + } + ] + }, + "documentation": null, + "id": 5781, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19117:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19117:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19130:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19130:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19116:31:8" + }, + "returnParameters": { + "id": 5772, + "nodeType": "ParameterList", + "parameters": [], + "src": "19155:0:8" + }, + "scope": 5797, + "src": "19103:91:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5795, + "nodeType": "Block", + "src": "19239:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5790, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19266:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5789, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "19258:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19258:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5792, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19277:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5786, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19246:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 5622, + "src": "19246:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19246:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5794, + "nodeType": "ExpressionStatement", + "src": "19246:40:8" + } + ] + }, + "documentation": null, + "id": 5796, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5783, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5796, + "src": "19214:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5782, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19214:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19213:18:8" + }, + "returnParameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [], + "src": "19239:0:8" + }, + "scope": 5797, + "src": "19200:92:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "19048:247:8" + } + ], + "src": "0:19297:8" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:20.062Z", + "devdoc": { + "details": "Interface for any contract that wants to support safeTransfers\r from ERC721 asset contracts.\r", + "methods": { + "onERC721Received(address,uint256,bytes)": { + "details": "The ERC721 smart contract calls this function on the recipient\r after a `safetransfer`. This function MAY throw to revert and reject the\r transfer. This function MUST use 50,000 gas or less. Return of other\r than the magic value MUST result in the transaction being reverted.\r Note: the contract address is always the message sender.\r", + "params": { + "_data": "Additional data with no specified format\r", + "_from": "The sending address\r", + "_tokenId": "The NFT identifier which is being transfered\r" + }, + "return": "`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r" + } + }, + "title": "ERC721 token receiver interface\r" + }, + "userdoc": { + "methods": { + "onERC721Received(address,uint256,bytes)": { + "notice": "Handle the receipt of an NFT\r" + } + } + } +} \ No newline at end of file diff --git a/src/contracts/GitFundedGrant.json b/src/contracts/GitFundedGrant.json new file mode 100644 index 0000000..4ef89ec --- /dev/null +++ b/src/contracts/GitFundedGrant.json @@ -0,0 +1,19761 @@ +{ + "contractName": "GitFundedGrant", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "active", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "issues", + "outputs": [ + { + "name": "title", + "type": "string" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "allocated", + "type": "uint256" + }, + { + "name": "bountyId", + "type": "uint256" + }, + { + "name": "recipient", + "type": "address" + }, + { + "name": "status", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "contractStartTime", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "title", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalCurrentMembers", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "minorVersion", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "repoId", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "users", + "outputs": [ + { + "name": "exists", + "type": "bool" + }, + { + "name": "delegateKey", + "type": "address" + }, + { + "name": "balance", + "type": "uint256" + }, + { + "name": "shares", + "type": "uint256" + }, + { + "name": "role", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "expenses", + "outputs": [ + { + "name": "title", + "type": "string" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "allocated", + "type": "uint256" + }, + { + "name": "recipient", + "type": "address" + }, + { + "name": "status", + "type": "uint8" + }, + { + "name": "proposalIndex", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "availableFund", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "admin", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "i_repoId", + "type": "string" + }, + { + "name": "i_title", + "type": "string" + }, + { + "name": "i_budget", + "type": "uint256" + }, + { + "name": "i_admin", + "type": "address" + }, + { + "name": "i_bountyAddress", + "type": "address" + }, + { + "name": "i_tokenAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "constant": false, + "inputs": [ + { + "name": "daoAddress", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "destroy", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "fetchProject", + "outputs": [ + { + "name": "", + "type": "string" + }, + { + "name": "", + "type": "string" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_title", + "type": "string" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "applicant", + "type": "address" + }, + { + "name": "sharesRequested", + "type": "uint256" + }, + { + "name": "lootRequested", + "type": "uint256" + }, + { + "name": "tributeOffered", + "type": "uint256" + }, + { + "name": "tributeToken", + "type": "address" + }, + { + "name": "paymentRequested", + "type": "uint256" + }, + { + "name": "paymentToken", + "type": "address" + }, + { + "name": "details", + "type": "string" + } + ], + "name": "addExpense", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "expenseIndex", + "type": "uint256" + } + ], + "name": "acceptExpense", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "expenseIndex", + "type": "uint256" + } + ], + "name": "sponsorExpense", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "expenseIndex", + "type": "uint256" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "acceptPartialExpense", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [], + "name": "fundProject", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transferFund", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getExpensesCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getIssuesCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_title", + "type": "string" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "addIssue", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "issueIndex", + "type": "uint256" + }, + { + "name": "signature", + "type": "bytes" + }, + { + "name": "_issuers", + "type": "address[]" + }, + { + "name": "_approvers", + "type": "address[]" + }, + { + "name": "_data", + "type": "string" + }, + { + "name": "_deadline", + "type": "uint256" + }, + { + "name": "_token", + "type": "address" + }, + { + "name": "_tokenVersion", + "type": "uint256" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "acceptIssueWithNoFund", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "issueIndex", + "type": "uint256" + }, + { + "name": "signature", + "type": "bytes" + }, + { + "name": "_issuers", + "type": "address[]" + }, + { + "name": "_approvers", + "type": "address[]" + }, + { + "name": "_data", + "type": "string" + }, + { + "name": "_deadline", + "type": "uint256" + }, + { + "name": "_token", + "type": "address" + }, + { + "name": "_tokenVersion", + "type": "uint256" + }, + { + "name": "_depositAmount", + "type": "uint256" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "acceptIssue", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "recipient", + "type": "address" + } + ], + "name": "swipe", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "issueIndex", + "type": "uint256" + }, + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "fundIssue", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"issueIndex\",\"type\":\"uint256\"},{\"name\":\"signature\",\"type\":\"bytes\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_tokenVersion\",\"type\":\"uint256\"},{\"name\":\"_depositAmount\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"acceptIssue\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"active\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"issues\",\"outputs\":[{\"name\":\"title\",\"type\":\"string\"},{\"name\":\"amount\",\"type\":\"uint256\"},{\"name\":\"allocated\",\"type\":\"uint256\"},{\"name\":\"bountyId\",\"type\":\"uint256\"},{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"status\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"contractStartTime\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"expenseIndex\",\"type\":\"uint256\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"acceptPartialExpense\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getExpensesCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"expenseIndex\",\"type\":\"uint256\"}],\"name\":\"acceptExpense\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_title\",\"type\":\"string\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"addIssue\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"expenseIndex\",\"type\":\"uint256\"}],\"name\":\"sponsorExpense\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"title\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getIssuesCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalCurrentMembers\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"issueIndex\",\"type\":\"uint256\"},{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"fundIssue\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minorVersion\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"destroy\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"fetchProject\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"repoId\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"users\",\"outputs\":[{\"name\":\"exists\",\"type\":\"bool\"},{\"name\":\"delegateKey\",\"type\":\"address\"},{\"name\":\"balance\",\"type\":\"uint256\"},{\"name\":\"shares\",\"type\":\"uint256\"},{\"name\":\"role\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"issueIndex\",\"type\":\"uint256\"},{\"name\":\"signature\",\"type\":\"bytes\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_tokenVersion\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"acceptIssueWithNoFund\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"expenses\",\"outputs\":[{\"name\":\"title\",\"type\":\"string\"},{\"name\":\"amount\",\"type\":\"uint256\"},{\"name\":\"allocated\",\"type\":\"uint256\"},{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"status\",\"type\":\"uint8\"},{\"name\":\"proposalIndex\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"daoAddress\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"swipe\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"availableFund\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"fundProject\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_title\",\"type\":\"string\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"applicant\",\"type\":\"address\"},{\"name\":\"sharesRequested\",\"type\":\"uint256\"},{\"name\":\"lootRequested\",\"type\":\"uint256\"},{\"name\":\"tributeOffered\",\"type\":\"uint256\"},{\"name\":\"tributeToken\",\"type\":\"address\"},{\"name\":\"paymentRequested\",\"type\":\"uint256\"},{\"name\":\"paymentToken\",\"type\":\"address\"},{\"name\":\"details\",\"type\":\"string\"}],\"name\":\"addExpense\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFund\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"i_repoId\",\"type\":\"string\"},{\"name\":\"i_title\",\"type\":\"string\"},{\"name\":\"i_budget\",\"type\":\"uint256\"},{\"name\":\"i_admin\",\"type\":\"address\"},{\"name\":\"i_bountyAddress\",\"type\":\"address\"},{\"name\":\"i_tokenAddress\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/GitFundedGrant.sol\":\"GitFundedGrant\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/GitFundedGrant.sol\":{\"keccak256\":\"0x8e4e4e93ef49625069d01d78121332f364556da1659eb2d8fb66315620da1e80\",\"urls\":[\"bzzr://b7351fd42bacdcb7066bc03507f0f3d41c71357d27f7bc21ffea0fa6aeaf7962\",\"dweb:/ipfs/QmPfSjuKcowi3F6YMr9a8qrsCLvcyFx5NacP6yBoJtwFKo\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/iBountiesMetaTxRelayer.sol\":{\"keccak256\":\"0x2c7a62683ee97ced4a5d82a5d24524d49e4e0ff8a8c7a4586e6450e590e6f917\",\"urls\":[\"bzzr://b01b873559523fad3de083f16b2d265f41de56a4b2d8d13955ec5c6e79a0d53f\",\"dweb:/ipfs/QmUkBDYA6czW2yFAypaw6EwreqN3795GYaG8PsYh2w5SC3\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Governance.sol\":{\"keccak256\":\"0x6008b164e82e38bbae1f88843ec8963a73a722963b941dd9bde72d4a0e849d80\",\"urls\":[\"bzzr://310d76b367fcb8cd744884b5e57e2a08ee9995ab845909d50f11f14c5f530273\",\"dweb:/ipfs/QmRVebN3g2R9R7HENS45ctw5Cn4wGLr65f8nGjtYkPW2jb\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol\":{\"keccak256\":\"0xa8ace5b5ac3322c9019470d2a1ad1342ef5d984da3d4818554e703b65ceda667\",\"urls\":[\"bzzr://b38168eab9d05f21a7576958f33878d9d31877a12f1f14bda390f3f4fbdaa2a4\",\"dweb:/ipfs/QmWa9cX9gzUkyM9yVwfhd6FsSeh1jpV62sBzdGJm6jRPRX\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/iGovernance.sol\":{\"keccak256\":\"0x2e3ecc4629568c30886c401376a98f196c7d8dafbf1dbce95296e0ca553cb85f\",\"urls\":[\"bzzr://a69865ec2501d5c618498843782e9c014b0903e4a6dc79511303fc5c53372534\",\"dweb:/ipfs/QmWX6FLo2pNaQQXfyVebLSc2VAi4yJNqiVLNSMUcouVyZa\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol\":{\"keccak256\":\"0x8d08add2e57d2885eb9cda96d2ce54056015247de9adfea8e13c78bb2d9233f2\",\"urls\":[\"bzzr://24804e36486f935a9e98bf507193d1b160db755edba6c9d124a894aef3741ada\",\"dweb:/ipfs/QmauQVeYbGgqJDNxKAceFj1hFD1gfCfAXNBA8vCh3aGYKA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", + "bytecode": "0x6080604052600160008181558180556003805460ff19169092179091556004553480156200002c57600080fd5b5060405162002a1f38038062002a1f833981810160405260c08110156200005257600080fd5b8101908080516401000000008111156200006b57600080fd5b820160208101848111156200007f57600080fd5b81516401000000008111828201871017156200009a57600080fd5b50509291906020018051640100000000811115620000b757600080fd5b82016020810184811115620000cb57600080fd5b8151640100000000811182820187101715620000e657600080fd5b5050602080830151604084015160608501516080909501518851949750919550939290916200011b91600c91890190620001a4565b5084516200013190600d906020880190620001a4565b5050600e92909255600b80546001600160a01b039283166001600160a01b0319918216179091556000600f556010805460068054958516959093169490941790915561010060ff19909316600117838104909216909202610100600160a81b031990911617905550504260025562000249565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001e757805160ff191683800117855562000217565b8280016001018555821562000217579182015b8281111562000217578251825591602001919060010190620001fa565b506200022592915062000229565b5090565b6200024691905b8082111562000225576000815560010162000230565b90565b6127c680620002596000396000f3fe6080604052600436106101b75760003560e01c80637436f3dc116100ec578063c4d66de81161008a578063d63dc66111610064578063d63dc66114610d21578063dff3ad6914610d29578063e2dc35e014610ea0578063f851a44014610ecc576101b7565b8063c4d66de814610ca6578063cce7db5814610cd9578063d0cb3cd114610d0c576101b7565b806391fc17b4116100c657806391fc17b414610911578063a87430ba14610926578063a9a74bd6146109a6578063af4afe0a14610c02576101b7565b80637436f3dc1461081a57806383197ef01461082f5780638c3006c714610844576101b7565b806322dffcbb1161015957806350b594471161013357806350b594471461071e57806354fd4d501461073357806360d41290146107485780636415921d1461075d576101b7565b806322dffcbb146105b757806325a287ce1461066a5780634a79d50c14610694576101b7565b80630c3d5157116101955780630c3d5157146105215780630d0f3f5d146105485780630daded9514610578578063125ede9d1461058d576101b7565b8063013e9128146101bc57806302fb0c5e1461041357806304e15de51461043c575b600080fd5b61041160048036036101408110156101d357600080fd5b81359190810190604081016020820135600160201b8111156101f457600080fd5b82018360208201111561020657600080fd5b803590602001918460018302840111600160201b8311171561022757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561027957600080fd5b82018360208201111561028b57600080fd5b803590602001918460208302840111600160201b831117156102ac57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156102fb57600080fd5b82018360208201111561030d57600080fd5b803590602001918460208302840111600160201b8311171561032e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561037d57600080fd5b82018360208201111561038f57600080fd5b803590602001918460018302840111600160201b831117156103b057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505082359350506001600160a01b03602083013516916040810135915060608101359060800135610efd565b005b34801561041f57600080fd5b50610428611300565b604080519115158252519081900360200190f35b34801561044857600080fd5b506104666004803603602081101561045f57600080fd5b5035611309565b6040518080602001878152602001868152602001858152602001846001600160a01b03166001600160a01b031681526020018360048111156104a457fe5b60ff168152602001828103825288818151815260200191508051906020019080838360005b838110156104e15781810151838201526020016104c9565b50505050905090810190601f16801561050e5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b34801561052d57600080fd5b506105366113e7565b60408051918252519081900360200190f35b34801561055457600080fd5b506104116004803603604081101561056b57600080fd5b50803590602001356113ed565b34801561058457600080fd5b50610536611596565b34801561059957600080fd5b50610411600480360360208110156105b057600080fd5b503561159d565b3480156105c357600080fd5b50610411600480360360408110156105da57600080fd5b810190602081018135600160201b8111156105f457600080fd5b82018360208201111561060657600080fd5b803590602001918460018302840111600160201b8311171561062757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550509135925061178c915050565b34801561067657600080fd5b506104116004803603602081101561068d57600080fd5b50356118a0565b3480156106a057600080fd5b506106a9611940565b6040805160208082528351818301528351919283929083019185019080838360005b838110156106e35781810151838201526020016106cb565b50505050905090810190601f1680156107105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561072a57600080fd5b506105366119ce565b34801561073f57600080fd5b506105366119d4565b34801561075457600080fd5b506105366119da565b34801561076957600080fd5b506104116004803603608081101561078057600080fd5b81359190810190604081016020820135600160201b8111156107a157600080fd5b8201836020820111156107b357600080fd5b803590602001918460018302840111600160201b831117156107d457600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050823593505050602001356119e0565b34801561082657600080fd5b50610536611b69565b34801561083b57600080fd5b50610411611b6f565b34801561085057600080fd5b50610859611bcd565b60408051908101849052606081018390526001600160a01b038216608082015260a08082528651908201528551819060208083019160c08401918a019080838360005b838110156108b457818101518382015260200161089c565b50505050905090810190601f1680156108e15780820380516001836020036101000a031916815260200191505b508381038252875181528751602091820191890190808383600083156104e15781810151838201526020016104c9565b34801561091d57600080fd5b506106a9611d21565b34801561093257600080fd5b506109596004803603602081101561094957600080fd5b50356001600160a01b0316611d7c565b6040805186151581526001600160a01b0386166020820152908101849052606081018390526080810182600281111561098e57fe5b60ff1681526020019550505050505060405180910390f35b3480156109b257600080fd5b5061041160048036036101208110156109ca57600080fd5b81359190810190604081016020820135600160201b8111156109eb57600080fd5b8201836020820111156109fd57600080fd5b803590602001918460018302840111600160201b83111715610a1e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115610a7057600080fd5b820183602082011115610a8257600080fd5b803590602001918460208302840111600160201b83111715610aa357600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610af257600080fd5b820183602082011115610b0457600080fd5b803590602001918460208302840111600160201b83111715610b2557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610b7457600080fd5b820183602082011115610b8657600080fd5b803590602001918460018302840111600160201b83111715610ba757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505082359350506001600160a01b03602083013516916040810135915060600135611db7565b348015610c0e57600080fd5b50610c2c60048036036020811015610c2557600080fd5b5035612164565b6040518080602001878152602001868152602001856001600160a01b03166001600160a01b03168152602001846003811115610c6457fe5b60ff16815260200183815260200182810382528881815181526020019150805190602001908083836000838110156104e15781810151838201526020016104c9565b348015610cb257600080fd5b5061041160048036036020811015610cc957600080fd5b50356001600160a01b0316612243565b348015610ce557600080fd5b5061041160048036036020811015610cfc57600080fd5b50356001600160a01b03166122b5565b348015610d1857600080fd5b5061053661233f565b610411612345565b348015610d3557600080fd5b506104116004803603610140811015610d4d57600080fd5b810190602081018135600160201b811115610d6757600080fd5b820183602082011115610d7957600080fd5b803590602001918460018302840111600160201b83111715610d9a57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092958435956001600160a01b03602087013581169660408101359650606081013595506080810135945060a081013582169360c08201359360e08301359093169290916101208101906101000135600160201b811115610e2c57600080fd5b820183602082011115610e3e57600080fd5b803590602001918460018302840111600160201b83111715610e5f57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061235d945050505050565b61041160048036036040811015610eb657600080fd5b506001600160a01b03813516906020013561258d565b348015610ed857600080fd5b50610ee1612629565b604080516001600160a01b039092168252519081900360200190f35b600b546001600160a01b03163314610f4d576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600060098b81548110610f5c57fe5b60009182526020822060016005909202010154915060098c81548110610f7e57fe5b906000526020600020906005020160040160149054906101000a900460ff166004811115610fa857fe5b14610ffa576040805162461bcd60e51b815260206004820152601960248201527f50726f6a656374206973206e6f7420696e206261636b6c6f6700000000000000604482015290519081900360640190fd5b80600f541015611047576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b600160098c8154811061105657fe5b906000526020600020906005020160040160146101000a81548160ff0219169083600481111561108257fe5b0217905550600f80548290039055600980548291908d9081106110a157fe5b906000526020600020906005020160020181905550600660009054906101000a90046001600160a01b03166001600160a01b031663b1e6bcbb828c8c8c8c8c8c8c8c8c6040518b63ffffffff1660e01b815260040180806020018060200180602001806020018a8152602001896001600160a01b03166001600160a01b0316815260200188815260200187815260200186815260200185810385528e818151815260200191508051906020019080838360005b8381101561116c578181015183820152602001611154565b50505050905090810190601f1680156111995780820380516001836020036101000a031916815260200191505b5085810384528d818151815260200191508051906020019060200280838360005b838110156111d25781810151838201526020016111ba565b5050505090500185810383528c818151815260200191508051906020019060200280838360005b838110156112115781810151838201526020016111f9565b5050505090500185810382528b818151815260200191508051906020019080838360005b8381101561124d578181015183820152602001611235565b50505050905090810190601f16801561127a5780820380516001836020036101000a031916815260200191505b509d50505050505050505050505050506020604051808303818588803b1580156112a357600080fd5b505af11580156112b7573d6000803e3d6000fd5b50505050506040513d60208110156112ce57600080fd5b5051600980548d9081106112de57fe5b9060005260206000209060050201600301819055505050505050505050505050565b60035460ff1681565b6009818154811061131657fe5b60009182526020918290206005919091020180546040805160026001841615610100026000190190931692909204601f8101859004850283018501909152808252919350918391908301828280156113af5780601f10611384576101008083540402835291602001916113af565b820191906000526020600020905b81548152906001019060200180831161139257829003601f168201915b50505050600183015460028401546003850154600490950154939491939092506001600160a01b03811690600160a01b900460ff1686565b60025481565b600b546001600160a01b0316331461143d576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b60006008838154811061144c57fe5b906000526020600020906005020160030160149054906101000a900460ff16600381111561147657fe5b1461148057600080fd5b80600f5410156114cd576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b6001600883815481106114dc57fe5b906000526020600020906005020160030160146101000a81548160ff0219169083600381111561150857fe5b0217905550600f80548290039055600880548291908490811061152757fe5b9060005260206000209060050201600201819055506008828154811061154957fe5b600091825260208220600360059092020101546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015611591573d6000803e3d6000fd5b505050565b6008545b90565b600b546001600160a01b031633146115ed576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b6000600882815481106115fc57fe5b906000526020600020906005020160040154905060006008838154811061161f57fe5b6000918252602082206001600590920201015491506008848154811061164157fe5b906000526020600020906005020160030160149054906101000a900460ff16600381111561166b57fe5b1461167557600080fd5b80600f5410156116c2576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b6002600884815481106116d157fe5b906000526020600020906005020160030160146101000a81548160ff021916908360038111156116fd57fe5b0217905550600f80548290039055600880548291908590811061171c57fe5b9060005260206000209060050201600201819055506008838154811061173e57fe5b600091825260208220600360059092020101546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015611786573d6000803e3d6000fd5b50505050565b611794612666565b6040518060c001604052808481526020018381526020016000815260200160008152602001336001600160a01b03168152602001600060048111156117d557fe5b90526009805460018101808355600092909252825180519394509192849260059092027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af019161182a918391602001906126af565b506020820151600182015560408201516002820155606082015160038201556080820151600480830180546001600160a01b0319166001600160a01b039093169290921780835560a0850151929160ff60a01b1990911690600160a01b90849081111561189357fe5b0217905550505050505050565b6007546040805163025d1b6560e61b81526004810184905290516001600160a01b0390921691639746d940916024808201926020929091908290030181600087803b1580156118ee57600080fd5b505af1158015611902573d6000803e3d6000fd5b505050506040513d602081101561191857600080fd5b5051600880548390811061192857fe5b90600052602060002090600502016004018190555050565b600d805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156119c65780601f1061199b576101008083540402835291602001916119c6565b820191906000526020600020905b8154815290600101906020018083116119a957829003601f168201915b505050505081565b60095490565b60005481565b60045481565b6000600985815481106119ef57fe5b60009182526020909120600360059092020101549050600160098681548110611a1457fe5b906000526020600020906005020160040160149054906101000a900460ff166004811115611a3e57fe5b14611a4857600080fd5b8260098681548110611a5657fe5b906000526020600020906005020160020160008282540192505081905550600660009054906101000a90046001600160a01b03166001600160a01b031663432326a984868487876040518663ffffffff1660e01b81526004018080602001858152602001848152602001838152602001828103825286818151815260200191508051906020019080838360005b83811015611afb578181015183820152602001611ae3565b50505050905090810190601f168015611b285780820380516001836020036101000a031916815260200191505b50955050505050506000604051808303818588803b158015611b4957600080fd5b505af1158015611b5d573d6000803e3d6000fd5b50505050505050505050565b60015481565b600b546001600160a01b03163314611bbf576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600b546001600160a01b0316ff5b600e54600f54600b54600c8054604080516020601f600260001960018716156101000201909516949094049384018190048102820181019092528281526060968796600096879687969095600d956001600160a01b0390931692918791830182828015611c7b5780601f10611c5057610100808354040283529160200191611c7b565b820191906000526020600020905b815481529060010190602001808311611c5e57829003601f168201915b5050875460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959a5089945092508401905082828015611d095780601f10611cde57610100808354040283529160200191611d09565b820191906000526020600020905b815481529060010190602001808311611cec57829003601f168201915b50989e939d50959b5093995091975095505050505050565b600c805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156119c65780601f1061199b576101008083540402835291602001916119c6565b600a60205260009081526040902080546001820154600283015460039093015460ff808416946101009094046001600160a01b031693911685565b600b546001600160a01b03163314611e07576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600060098a81548110611e1657fe5b60009182526020822060016005909202010154915060098b81548110611e3857fe5b906000526020600020906005020160040160149054906101000a900460ff166004811115611e6257fe5b14611e6c57600080fd5b80600f541015611eb9576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b600160098b81548110611ec857fe5b906000526020600020906005020160040160146101000a81548160ff02191690836004811115611ef457fe5b0217905550600f80548290039055600980548291908c908110611f1357fe5b906000526020600020906005020160020181905550600660009054906101000a90046001600160a01b03166001600160a01b031663df4015fc8a8a8a8a8a8a8a8a6040518963ffffffff1660e01b81526004018080602001806020018060200180602001898152602001886001600160a01b03166001600160a01b0316815260200187815260200186815260200185810385528d818151815260200191508051906020019080838360005b83811015611fd6578181015183820152602001611fbe565b50505050905090810190601f1680156120035780820380516001836020036101000a031916815260200191505b5085810384528c5181528c51602091820191808f01910280838360005b83811015612038578181015183820152602001612020565b5050505090500185810383528b818151815260200191508051906020019060200280838360005b8381101561207757818101518382015260200161205f565b5050505090500185810382528a818151815260200191508051906020019080838360005b838110156120b357818101518382015260200161209b565b50505050905090810190601f1680156120e05780820380516001836020036101000a031916815260200191505b509c50505050505050505050505050602060405180830381600087803b15801561210957600080fd5b505af115801561211d573d6000803e3d6000fd5b505050506040513d602081101561213357600080fd5b5051600980548c90811061214357fe5b90600052602060002090600502016003018190555050505050505050505050565b6008818154811061217157fe5b60009182526020918290206005919091020180546040805160026001841615610100026000190190931692909204601f81018590048502830185019091528082529193509183919083018282801561220a5780601f106121df5761010080835404028352916020019161220a565b820191906000526020600020905b8154815290600101906020018083116121ed57829003601f168201915b50505050600183015460028401546003850154600490950154939491939092506001600160a01b03821691600160a01b900460ff169086565b600b546001600160a01b03163314612293576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b600b546001600160a01b03163314612305576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b6040516001600160a01b03821690303180156108fc02916000818181858888f1935050505015801561233b573d6000803e3d6000fd5b5050565b600f5481565b600f54612358903463ffffffff61263816565b600f55565b61236561272d565b6040805160c0810182528c8152602081018c90526000918101829052336060820152906080820190815260006020918201819052600880546001810180835591909252835180519495509093859360059093027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301926123e99284929101906126af565b5060208201516001820155604082015160028201556060820151600380830180546001600160a01b0319166001600160a01b03909316929092178083556080850151929160ff60a01b1990911690600160a01b90849081111561244857fe5b021790555060a0919091015160049182015560075460405163590f940b60e01b81526001600160a01b038d8116938201938452602482018d9052604482018c9052606482018b9052898116608483015260a4820189905287811660c483015261010060e483019081528751610104840152875191909316945063590f940b938e938e938e938e938e938e938e938e9392916101240190602085019080838360005b838110156125015781810151838201526020016124e9565b50505050905090810190601f16801561252e5780820380516001836020036101000a031916815260200191505b509950505050505050505050602060405180830381600087803b15801561255457600080fd5b505af1158015612568573d6000803e3d6000fd5b505050506040513d602081101561257e57600080fd5b50505050505050505050505050565b600b546001600160a01b031633146125dd576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600f546125f0908263ffffffff61265116565b600f556040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611591573d6000803e3d6000fd5b600b546001600160a01b031681565b60008282018381101561264a57600080fd5b9392505050565b60008282111561266057600080fd5b50900390565b6040518060c001604052806060815260200160008152602001600081526020016000815260200160006001600160a01b03168152602001600060048111156126aa57fe5b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106126f057805160ff191683800117855561271d565b8280016001018555821561271d579182015b8281111561271d578251825591602001919060010190612702565b50612729929150612777565b5090565b6040518060c0016040528060608152602001600081526020016000815260200160006001600160a01b031681526020016000600381111561276a57fe5b8152602001600081525090565b61159a91905b80821115612729576000815560010161277d56fea265627a7a723058200e546ac39b5535e507ab2dfeb382697613f80eb1cf6f25c1eeea6059d0901a6964736f6c63430005090032", + "deployedBytecode": "0x6080604052600436106101b75760003560e01c80637436f3dc116100ec578063c4d66de81161008a578063d63dc66111610064578063d63dc66114610d21578063dff3ad6914610d29578063e2dc35e014610ea0578063f851a44014610ecc576101b7565b8063c4d66de814610ca6578063cce7db5814610cd9578063d0cb3cd114610d0c576101b7565b806391fc17b4116100c657806391fc17b414610911578063a87430ba14610926578063a9a74bd6146109a6578063af4afe0a14610c02576101b7565b80637436f3dc1461081a57806383197ef01461082f5780638c3006c714610844576101b7565b806322dffcbb1161015957806350b594471161013357806350b594471461071e57806354fd4d501461073357806360d41290146107485780636415921d1461075d576101b7565b806322dffcbb146105b757806325a287ce1461066a5780634a79d50c14610694576101b7565b80630c3d5157116101955780630c3d5157146105215780630d0f3f5d146105485780630daded9514610578578063125ede9d1461058d576101b7565b8063013e9128146101bc57806302fb0c5e1461041357806304e15de51461043c575b600080fd5b61041160048036036101408110156101d357600080fd5b81359190810190604081016020820135600160201b8111156101f457600080fd5b82018360208201111561020657600080fd5b803590602001918460018302840111600160201b8311171561022757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561027957600080fd5b82018360208201111561028b57600080fd5b803590602001918460208302840111600160201b831117156102ac57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156102fb57600080fd5b82018360208201111561030d57600080fd5b803590602001918460208302840111600160201b8311171561032e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561037d57600080fd5b82018360208201111561038f57600080fd5b803590602001918460018302840111600160201b831117156103b057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505082359350506001600160a01b03602083013516916040810135915060608101359060800135610efd565b005b34801561041f57600080fd5b50610428611300565b604080519115158252519081900360200190f35b34801561044857600080fd5b506104666004803603602081101561045f57600080fd5b5035611309565b6040518080602001878152602001868152602001858152602001846001600160a01b03166001600160a01b031681526020018360048111156104a457fe5b60ff168152602001828103825288818151815260200191508051906020019080838360005b838110156104e15781810151838201526020016104c9565b50505050905090810190601f16801561050e5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b34801561052d57600080fd5b506105366113e7565b60408051918252519081900360200190f35b34801561055457600080fd5b506104116004803603604081101561056b57600080fd5b50803590602001356113ed565b34801561058457600080fd5b50610536611596565b34801561059957600080fd5b50610411600480360360208110156105b057600080fd5b503561159d565b3480156105c357600080fd5b50610411600480360360408110156105da57600080fd5b810190602081018135600160201b8111156105f457600080fd5b82018360208201111561060657600080fd5b803590602001918460018302840111600160201b8311171561062757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550509135925061178c915050565b34801561067657600080fd5b506104116004803603602081101561068d57600080fd5b50356118a0565b3480156106a057600080fd5b506106a9611940565b6040805160208082528351818301528351919283929083019185019080838360005b838110156106e35781810151838201526020016106cb565b50505050905090810190601f1680156107105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561072a57600080fd5b506105366119ce565b34801561073f57600080fd5b506105366119d4565b34801561075457600080fd5b506105366119da565b34801561076957600080fd5b506104116004803603608081101561078057600080fd5b81359190810190604081016020820135600160201b8111156107a157600080fd5b8201836020820111156107b357600080fd5b803590602001918460018302840111600160201b831117156107d457600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050823593505050602001356119e0565b34801561082657600080fd5b50610536611b69565b34801561083b57600080fd5b50610411611b6f565b34801561085057600080fd5b50610859611bcd565b60408051908101849052606081018390526001600160a01b038216608082015260a08082528651908201528551819060208083019160c08401918a019080838360005b838110156108b457818101518382015260200161089c565b50505050905090810190601f1680156108e15780820380516001836020036101000a031916815260200191505b508381038252875181528751602091820191890190808383600083156104e15781810151838201526020016104c9565b34801561091d57600080fd5b506106a9611d21565b34801561093257600080fd5b506109596004803603602081101561094957600080fd5b50356001600160a01b0316611d7c565b6040805186151581526001600160a01b0386166020820152908101849052606081018390526080810182600281111561098e57fe5b60ff1681526020019550505050505060405180910390f35b3480156109b257600080fd5b5061041160048036036101208110156109ca57600080fd5b81359190810190604081016020820135600160201b8111156109eb57600080fd5b8201836020820111156109fd57600080fd5b803590602001918460018302840111600160201b83111715610a1e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115610a7057600080fd5b820183602082011115610a8257600080fd5b803590602001918460208302840111600160201b83111715610aa357600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610af257600080fd5b820183602082011115610b0457600080fd5b803590602001918460208302840111600160201b83111715610b2557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610b7457600080fd5b820183602082011115610b8657600080fd5b803590602001918460018302840111600160201b83111715610ba757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505082359350506001600160a01b03602083013516916040810135915060600135611db7565b348015610c0e57600080fd5b50610c2c60048036036020811015610c2557600080fd5b5035612164565b6040518080602001878152602001868152602001856001600160a01b03166001600160a01b03168152602001846003811115610c6457fe5b60ff16815260200183815260200182810382528881815181526020019150805190602001908083836000838110156104e15781810151838201526020016104c9565b348015610cb257600080fd5b5061041160048036036020811015610cc957600080fd5b50356001600160a01b0316612243565b348015610ce557600080fd5b5061041160048036036020811015610cfc57600080fd5b50356001600160a01b03166122b5565b348015610d1857600080fd5b5061053661233f565b610411612345565b348015610d3557600080fd5b506104116004803603610140811015610d4d57600080fd5b810190602081018135600160201b811115610d6757600080fd5b820183602082011115610d7957600080fd5b803590602001918460018302840111600160201b83111715610d9a57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092958435956001600160a01b03602087013581169660408101359650606081013595506080810135945060a081013582169360c08201359360e08301359093169290916101208101906101000135600160201b811115610e2c57600080fd5b820183602082011115610e3e57600080fd5b803590602001918460018302840111600160201b83111715610e5f57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061235d945050505050565b61041160048036036040811015610eb657600080fd5b506001600160a01b03813516906020013561258d565b348015610ed857600080fd5b50610ee1612629565b604080516001600160a01b039092168252519081900360200190f35b600b546001600160a01b03163314610f4d576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600060098b81548110610f5c57fe5b60009182526020822060016005909202010154915060098c81548110610f7e57fe5b906000526020600020906005020160040160149054906101000a900460ff166004811115610fa857fe5b14610ffa576040805162461bcd60e51b815260206004820152601960248201527f50726f6a656374206973206e6f7420696e206261636b6c6f6700000000000000604482015290519081900360640190fd5b80600f541015611047576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b600160098c8154811061105657fe5b906000526020600020906005020160040160146101000a81548160ff0219169083600481111561108257fe5b0217905550600f80548290039055600980548291908d9081106110a157fe5b906000526020600020906005020160020181905550600660009054906101000a90046001600160a01b03166001600160a01b031663b1e6bcbb828c8c8c8c8c8c8c8c8c6040518b63ffffffff1660e01b815260040180806020018060200180602001806020018a8152602001896001600160a01b03166001600160a01b0316815260200188815260200187815260200186815260200185810385528e818151815260200191508051906020019080838360005b8381101561116c578181015183820152602001611154565b50505050905090810190601f1680156111995780820380516001836020036101000a031916815260200191505b5085810384528d818151815260200191508051906020019060200280838360005b838110156111d25781810151838201526020016111ba565b5050505090500185810383528c818151815260200191508051906020019060200280838360005b838110156112115781810151838201526020016111f9565b5050505090500185810382528b818151815260200191508051906020019080838360005b8381101561124d578181015183820152602001611235565b50505050905090810190601f16801561127a5780820380516001836020036101000a031916815260200191505b509d50505050505050505050505050506020604051808303818588803b1580156112a357600080fd5b505af11580156112b7573d6000803e3d6000fd5b50505050506040513d60208110156112ce57600080fd5b5051600980548d9081106112de57fe5b9060005260206000209060050201600301819055505050505050505050505050565b60035460ff1681565b6009818154811061131657fe5b60009182526020918290206005919091020180546040805160026001841615610100026000190190931692909204601f8101859004850283018501909152808252919350918391908301828280156113af5780601f10611384576101008083540402835291602001916113af565b820191906000526020600020905b81548152906001019060200180831161139257829003601f168201915b50505050600183015460028401546003850154600490950154939491939092506001600160a01b03811690600160a01b900460ff1686565b60025481565b600b546001600160a01b0316331461143d576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b60006008838154811061144c57fe5b906000526020600020906005020160030160149054906101000a900460ff16600381111561147657fe5b1461148057600080fd5b80600f5410156114cd576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b6001600883815481106114dc57fe5b906000526020600020906005020160030160146101000a81548160ff0219169083600381111561150857fe5b0217905550600f80548290039055600880548291908490811061152757fe5b9060005260206000209060050201600201819055506008828154811061154957fe5b600091825260208220600360059092020101546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015611591573d6000803e3d6000fd5b505050565b6008545b90565b600b546001600160a01b031633146115ed576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b6000600882815481106115fc57fe5b906000526020600020906005020160040154905060006008838154811061161f57fe5b6000918252602082206001600590920201015491506008848154811061164157fe5b906000526020600020906005020160030160149054906101000a900460ff16600381111561166b57fe5b1461167557600080fd5b80600f5410156116c2576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b6002600884815481106116d157fe5b906000526020600020906005020160030160146101000a81548160ff021916908360038111156116fd57fe5b0217905550600f80548290039055600880548291908590811061171c57fe5b9060005260206000209060050201600201819055506008838154811061173e57fe5b600091825260208220600360059092020101546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015611786573d6000803e3d6000fd5b50505050565b611794612666565b6040518060c001604052808481526020018381526020016000815260200160008152602001336001600160a01b03168152602001600060048111156117d557fe5b90526009805460018101808355600092909252825180519394509192849260059092027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af019161182a918391602001906126af565b506020820151600182015560408201516002820155606082015160038201556080820151600480830180546001600160a01b0319166001600160a01b039093169290921780835560a0850151929160ff60a01b1990911690600160a01b90849081111561189357fe5b0217905550505050505050565b6007546040805163025d1b6560e61b81526004810184905290516001600160a01b0390921691639746d940916024808201926020929091908290030181600087803b1580156118ee57600080fd5b505af1158015611902573d6000803e3d6000fd5b505050506040513d602081101561191857600080fd5b5051600880548390811061192857fe5b90600052602060002090600502016004018190555050565b600d805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156119c65780601f1061199b576101008083540402835291602001916119c6565b820191906000526020600020905b8154815290600101906020018083116119a957829003601f168201915b505050505081565b60095490565b60005481565b60045481565b6000600985815481106119ef57fe5b60009182526020909120600360059092020101549050600160098681548110611a1457fe5b906000526020600020906005020160040160149054906101000a900460ff166004811115611a3e57fe5b14611a4857600080fd5b8260098681548110611a5657fe5b906000526020600020906005020160020160008282540192505081905550600660009054906101000a90046001600160a01b03166001600160a01b031663432326a984868487876040518663ffffffff1660e01b81526004018080602001858152602001848152602001838152602001828103825286818151815260200191508051906020019080838360005b83811015611afb578181015183820152602001611ae3565b50505050905090810190601f168015611b285780820380516001836020036101000a031916815260200191505b50955050505050506000604051808303818588803b158015611b4957600080fd5b505af1158015611b5d573d6000803e3d6000fd5b50505050505050505050565b60015481565b600b546001600160a01b03163314611bbf576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600b546001600160a01b0316ff5b600e54600f54600b54600c8054604080516020601f600260001960018716156101000201909516949094049384018190048102820181019092528281526060968796600096879687969095600d956001600160a01b0390931692918791830182828015611c7b5780601f10611c5057610100808354040283529160200191611c7b565b820191906000526020600020905b815481529060010190602001808311611c5e57829003601f168201915b5050875460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959a5089945092508401905082828015611d095780601f10611cde57610100808354040283529160200191611d09565b820191906000526020600020905b815481529060010190602001808311611cec57829003601f168201915b50989e939d50959b5093995091975095505050505050565b600c805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156119c65780601f1061199b576101008083540402835291602001916119c6565b600a60205260009081526040902080546001820154600283015460039093015460ff808416946101009094046001600160a01b031693911685565b600b546001600160a01b03163314611e07576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600060098a81548110611e1657fe5b60009182526020822060016005909202010154915060098b81548110611e3857fe5b906000526020600020906005020160040160149054906101000a900460ff166004811115611e6257fe5b14611e6c57600080fd5b80600f541015611eb9576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b600160098b81548110611ec857fe5b906000526020600020906005020160040160146101000a81548160ff02191690836004811115611ef457fe5b0217905550600f80548290039055600980548291908c908110611f1357fe5b906000526020600020906005020160020181905550600660009054906101000a90046001600160a01b03166001600160a01b031663df4015fc8a8a8a8a8a8a8a8a6040518963ffffffff1660e01b81526004018080602001806020018060200180602001898152602001886001600160a01b03166001600160a01b0316815260200187815260200186815260200185810385528d818151815260200191508051906020019080838360005b83811015611fd6578181015183820152602001611fbe565b50505050905090810190601f1680156120035780820380516001836020036101000a031916815260200191505b5085810384528c5181528c51602091820191808f01910280838360005b83811015612038578181015183820152602001612020565b5050505090500185810383528b818151815260200191508051906020019060200280838360005b8381101561207757818101518382015260200161205f565b5050505090500185810382528a818151815260200191508051906020019080838360005b838110156120b357818101518382015260200161209b565b50505050905090810190601f1680156120e05780820380516001836020036101000a031916815260200191505b509c50505050505050505050505050602060405180830381600087803b15801561210957600080fd5b505af115801561211d573d6000803e3d6000fd5b505050506040513d602081101561213357600080fd5b5051600980548c90811061214357fe5b90600052602060002090600502016003018190555050505050505050505050565b6008818154811061217157fe5b60009182526020918290206005919091020180546040805160026001841615610100026000190190931692909204601f81018590048502830185019091528082529193509183919083018282801561220a5780601f106121df5761010080835404028352916020019161220a565b820191906000526020600020905b8154815290600101906020018083116121ed57829003601f168201915b50505050600183015460028401546003850154600490950154939491939092506001600160a01b03821691600160a01b900460ff169086565b600b546001600160a01b03163314612293576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b600b546001600160a01b03163314612305576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b6040516001600160a01b03821690303180156108fc02916000818181858888f1935050505015801561233b573d6000803e3d6000fd5b5050565b600f5481565b600f54612358903463ffffffff61263816565b600f55565b61236561272d565b6040805160c0810182528c8152602081018c90526000918101829052336060820152906080820190815260006020918201819052600880546001810180835591909252835180519495509093859360059093027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301926123e99284929101906126af565b5060208201516001820155604082015160028201556060820151600380830180546001600160a01b0319166001600160a01b03909316929092178083556080850151929160ff60a01b1990911690600160a01b90849081111561244857fe5b021790555060a0919091015160049182015560075460405163590f940b60e01b81526001600160a01b038d8116938201938452602482018d9052604482018c9052606482018b9052898116608483015260a4820189905287811660c483015261010060e483019081528751610104840152875191909316945063590f940b938e938e938e938e938e938e938e938e9392916101240190602085019080838360005b838110156125015781810151838201526020016124e9565b50505050905090810190601f16801561252e5780820380516001836020036101000a031916815260200191505b509950505050505050505050602060405180830381600087803b15801561255457600080fd5b505af1158015612568573d6000803e3d6000fd5b505050506040513d602081101561257e57600080fd5b50505050505050505050505050565b600b546001600160a01b031633146125dd576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600f546125f0908263ffffffff61265116565b600f556040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611591573d6000803e3d6000fd5b600b546001600160a01b031681565b60008282018381101561264a57600080fd5b9392505050565b60008282111561266057600080fd5b50900390565b6040518060c001604052806060815260200160008152602001600081526020016000815260200160006001600160a01b03168152602001600060048111156126aa57fe5b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106126f057805160ff191683800117855561271d565b8280016001018555821561271d579182015b8281111561271d578251825591602001919060010190612702565b50612729929150612777565b5090565b6040518060c0016040528060608152602001600081526020016000815260200160006001600160a01b031681526020016000600381111561276a57fe5b8152602001600081525090565b61159a91905b80821115612729576000815560010161277d56fea265627a7a723058200e546ac39b5535e507ab2dfeb382697613f80eb1cf6f25c1eeea6059d0901a6964736f6c63430005090032", + "sourceMap": "183:8070:0:-;;;240:1;218:23;;;;248:28;;;321:25;;;-1:-1:-1;;321:25:0;;;;;;;353:35;;471:488;5:2:-1;;;;30:1;27;20:12;5:2;471:488:0;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;471:488:0;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;261:11;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;0:372;;471:488:0;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;261:11;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;-1:-1;;471:488:0;;;;;;;;;;;;;;;;;;641:17;;471:488;;-1:-1:-1;471:488:0;;-1:-1:-1;471:488:0;;;;641:17;;:6;;:17;;;;:::i;:::-;-1:-1:-1;665:15:0;;;;:5;;:15;;;;;:::i;:::-;-1:-1:-1;;687:6:0;:17;;;;711:5;:15;;-1:-1:-1;;;;;;711:15:0;;;-1:-1:-1;;;;;711:15:0;;;;;;;-1:-1:-1;733:13:0;:17;757:4;:11;;843:2;:42;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;757:11:0;;;-1:-1:-1;757:11:0;892:27;;;711:15;907:12;;;;;;;892:27;;;;;;-1:-1:-1;;948:3:0;928:17;:23;183:8070;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;183:8070:0;;;-1:-1:-1;183:8070:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "183:8070:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6925:825;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;6925:825:0;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;6925:825:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6925:825:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6925:825:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6925:825:0;;;;;;;;-1:-1:-1;6925:825:0;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;6925:825:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6925:825:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6925:825:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6925:825:0;;;;;;;;-1:-1:-1;6925:825:0;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;6925:825:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6925:825:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6925:825:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6925:825:0;;;;;;;;-1:-1:-1;6925:825:0;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;6925:825:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6925:825:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6925:825:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6925:825:0;;-1:-1:-1;;6925:825:0;;;-1:-1:-1;;;6925:825:0;;;;-1:-1:-1;;;;;6925:825:0;;;;;;;;;;;;;;;;:::i;:::-;;321:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;321:25:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;2457:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2457:21:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2457:21:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2457:21:0;;;;;;;-1:-1:-1;2457:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2457:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;283:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;283:29:0;;;:::i;:::-;;;;;;;;;;;;;;;;4711:433;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4711:433:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4711:433:0;;;;;;;:::i;5444:90::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5444:90:0;;;:::i;3748:734::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3748:734:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3748:734:0;;:::i;5757:195::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5757:195:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5757:195:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;5757:195:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5757:195:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;5757:195:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;5757:195:0;;-1:-1:-1;;5757:195:0;;;-1:-1:-1;5757:195:0;;-1:-1:-1;;5757:195:0:i;4486:137::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4486:137:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4486:137:0;;:::i;2587:19::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2587:19:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2587:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5540:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5540:86:0;;;:::i;218:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;218:23:0;;;:::i;353:35::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;353:35:0;;;:::i;7880:370::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7880:370:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;7880:370:0;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;7880:370:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7880:370:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;7880:370:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;7880:370:0;;-1:-1:-1;;7880:370:0;;;-1:-1:-1;;;7880:370:0;;;;:::i;248:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;248:28:0;;;:::i;2968:74::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2968:74:0;;;:::i;3048:163::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3048:163:0;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3048:163:0;;;;;;-1:-1:-1;3048:163:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3048:163:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3048:163:0;;;;;;;;;;;;;;;;;;;;;;23:1:-1;27:10;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;2562:20:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2562:20:0;;;:::i;2485:37::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2485:37:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2485:37:0;-1:-1:-1;;;;;2485:37:0;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;2485:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6005:837;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6005:837:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;6005:837:0;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;6005:837:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6005:837:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6005:837:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6005:837:0;;;;;;;;-1:-1:-1;6005:837:0;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;6005:837:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6005:837:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6005:837:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6005:837:0;;;;;;;;-1:-1:-1;6005:837:0;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;6005:837:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6005:837:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6005:837:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6005:837:0;;;;;;;;-1:-1:-1;6005:837:0;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;6005:837:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6005:837:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6005:837:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6005:837:0;;-1:-1:-1;;6005:837:0;;;-1:-1:-1;;;6005:837:0;;;;-1:-1:-1;;;;;6005:837:0;;;;;;;;;;;:::i;2427:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2427:25:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2427:25:0;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2427:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;1016:102:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1016:102:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1016:102:0;-1:-1:-1;;;;;1016:102:0;;:::i;7756:117::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7756:117:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7756:117:0;-1:-1:-1;;;;;7756:117:0;;:::i;2641:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2641:25:0;;;:::i;5152:101::-;;;:::i;3217:525::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3217:525:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;3217:525:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;3217:525:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3217:525:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3217:525:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;3217:525:0;;;;;-1:-1:-1;;;;;3217:525:0;;;;;;;;;;;;-1:-1:-1;3217:525:0;;;;;-1:-1:-1;3217:525:0;;;;;-1:-1:-1;;3217:525:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;3217:525:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3217:525:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3217:525:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;3217:525:0;;-1:-1:-1;3217:525:0;;-1:-1:-1;;;;;3217:525:0:i;5259:177::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5259:177:0;;-1:-1:-1;;;;;5259:177:0;;;;;;:::i;2529:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2529:28:0;;;:::i;:::-;;;;-1:-1:-1;;;;;2529:28:0;;;;;;;;;;;;;;6925:825;2827:5;;-1:-1:-1;;;;;2827:5:0;2813:10;:19;2805:46;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;;;;7237:11;7251:6;7258:10;7251:18;;;;;;;;;;;;;;;:25;:18;;;;;:25;;;-1:-1:-1;7291:6:0;7298:10;7291:18;;;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;:48;;;;;;;;;7283:86;;;;;-1:-1:-1;;;7283:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7401:6;7384:13;;:23;;7376:55;;;;;-1:-1:-1;;;7376:55:0;;;;;;;;;;;;-1:-1:-1;;;7376:55:0;;;;;;;;;;;;;;;7470:16;7442:6;7449:10;7442:18;;;;;;;;;;;;;;;;;;:25;;;:44;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7493:13:0;:23;;;;;;;7523:6;:18;;7510:6;;7523;7530:10;;7523:18;;;;;;;;;;;;;;;;:28;;:38;;;;7598:2;;;;;;;;;-1:-1:-1;;;;;7598:2:0;-1:-1:-1;;;;;7598:25:0;;7630:6;7638:9;7649:8;7666:10;7678:5;7685:9;7696:6;7704:13;7719:14;7735:6;7598:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7598:144:0;-1:-1:-1;;;;;7598:144:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7598:144:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7598:144:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7598:144:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7598:144:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7598:144:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7598:144:0;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7598:144:0;7570:6;:18;;7577:10;;7570:18;;;;;;;;;;;;;;;;:27;;:172;;;;2860:1;6925:825;;;;;;;;;;:::o;321:25::-;;;;;;:::o;2457:21::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2457:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2457:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;2457:21:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2457:21:0;;;-1:-1:-1;;;2457:21:0;;;;;:::o;283:29::-;;;;:::o;4711:433::-;2827:5;;-1:-1:-1;;;;;2827:5:0;2813:10;:19;2805:46;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;;;;4840:21;4807:8;4816:12;4807:22;;;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;:54;;;;;;;;;4799:63;;;;;;4894:6;4877:13;;:23;;4869:55;;;;;-1:-1:-1;;;4869:55:0;;;;;;;;;;;;-1:-1:-1;;;4869:55:0;;;;;;;;;;;;;;;4967:32;4935:8;4944:12;4935:22;;;;;;;;;;;;;;;;;;:29;;;:64;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5006:13:0;:23;;;;;;;5036:8;:22;;5023:6;;5036:8;5045:12;;5036:22;;;;;;;;;;;;;;;;:32;;:42;;;;5085:8;5094:12;5085:22;;;;;;;;;;;;;;;;;;;;;:32;;;:49;;-1:-1:-1;;;;;5085:32:0;;;;:49;;;;;;;;:22;:49;;:32;:49;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5085:49:0;4711:433;;:::o;5444:90::-;5513:8;:15;5444:90;;:::o;3748:734::-;2827:5;;-1:-1:-1;;;;;2827:5:0;2813:10;:19;2805:46;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;;;;3816:10;3829:8;3838:12;3829:22;;;;;;;;;;;;;;;;;;:36;;;3816:49;;4099:11;4113:8;4122:12;4113:22;;;;;;;;;;;;;;;:29;:22;;;;;:29;;;-1:-1:-1;4157:8:0;4166:12;4157:22;;;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;:54;;;;;;;;;4149:63;;;;;;4244:6;4227:13;;:23;;4219:55;;;;;-1:-1:-1;;;4219:55:0;;;;;;;;;;;;-1:-1:-1;;;4219:55:0;;;;;;;;;;;;;;;4317:22;4285:8;4294:12;4285:22;;;;;;;;;;;;;;;;;;:29;;;:54;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4346:13:0;:23;;;;;;;4376:8;:22;;4363:6;;4376:8;4385:12;;4376:22;;;;;;;;;;;;;;;;:32;;:42;;;;4425:8;4434:12;4425:22;;;;;;;;;;;;;;;;;;;;;:32;;;:49;;-1:-1:-1;;;;;4425:32:0;;;;:49;;;;;;;;:22;:49;;:32;:49;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4425:49:0;2860:1;;3748:734;:::o;5757:195::-;5831:18;;:::i;:::-;5852:61;;;;;;;;;;;;;;;;;-1:-1:-1;5852:61:0;;;;;;;;;;;;5881:10;5852:61;;;;;-1:-1:-1;5852:61:0;;;5924:6;27:10:-1;;39:1;23:18;;45:23;;;-1:-1;5924:18:0;;;;;;;;5831:82;;-1:-1:-1;23:18;;5831:82:0;;5924:18;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5924:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5924:18:0;-1:-1:-1;;;;;5924:18:0;;;;;;;;;;-1:-1:-1;5924:18:0;;;;;-1:-1:-1;;;;5924:18:0;;;;-1:-1:-1;;;;5924:18:0;;;;;;;;;;;;;;;;;5757:195;;;:::o;4486:137::-;4584:3;;:33;;;-1:-1:-1;;;4584:33:0;;;;;;;;;;-1:-1:-1;;;;;4584:3:0;;;;:19;;:33;;;;;;;;;;;;;;;-1:-1:-1;4584:3:0;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;4584:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4584:33:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4584:33:0;4544:8;:22;;4553:12;;4544:22;;;;;;;;;;;;;;;;:36;;:73;;;;4486:137;:::o;2587:19::-;;;;;;;;;;;;;;;-1:-1:-1;;2587:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5540:86::-;5607:6;:13;5540:86;:::o;218:23::-;;;;:::o;353:35::-;;;;:::o;7880:370::-;8007:14;8022:6;8029:10;8022:18;;;;;;;;;;;;;;;;:27;:18;;;;;:27;;;-1:-1:-1;8097:16:0;8068:6;8075:10;8068:18;;;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;:45;;;;;;;;;8060:54;;;;;;8156:7;8123:6;8130:10;8123:18;;;;;;;;;;;;;;;;:28;:18;;;;;:28;;;;:40;;;;;;;;8172:2;;:69;;-1:-1:-1;;;8172:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8172:2:0;;;;:17;;8196:7;;8205:10;;8216:9;;8196:7;;8234:6;;8172:69;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8172:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8172:69:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8172:69:0;;;;;7880:370;;;;;:::o;248:28::-;;;;:::o;2968:74::-;2827:5;;-1:-1:-1;;;;;2827:5:0;2813:10;:19;2805:46;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;;;;3028:5;;-1:-1:-1;;;;;3028:5:0;3015:19;3048:163;3176:6;;3184:13;;3199:5;;3161:6;3153:52;;;;;;;3199:5;;3153:52;;;;-1:-1:-1;;3153:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;3093:13;;;;-1:-1:-1;;;;;;3161:6:0;;3169:5;;-1:-1:-1;;;;;3199:5:0;;;;3153:52;3161:6;;3153:52;;;3161:6;3153:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3153:52:0;;;;;;;;;;;;;-1:-1:-1;;3153:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3153:52:0;;-1:-1:-1;3153:52:0;-1:-1:-1;3153:52:0;;;-1:-1:-1;3153:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3153:52:0;;;;-1:-1:-1;3153:52:0;;-1:-1:-1;3153:52:0;;-1:-1:-1;3153:52:0;;-1:-1:-1;3048:163:0;-1:-1:-1;;;;;;3048:163:0:o;2562:20::-;;;;;;;;;;;;;;;-1:-1:-1;;2562:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2485:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2485:37:0;;;;;:::o;6005:837::-;2827:5;;-1:-1:-1;;;;;2827:5:0;2813:10;:19;2805:46;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;;;;6361:11;6375:6;6382:10;6375:18;;;;;;;;;;;;;;;:25;:18;;;;;:25;;;-1:-1:-1;6419:6:0;6426:10;6419:18;;;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;:48;;;;;;;;;6411:57;;;;;;6504:6;6487:13;;:23;;6479:55;;;;;-1:-1:-1;;;6479:55:0;;;;;;;;;;;;-1:-1:-1;;;6479:55:0;;;;;;;;;;;;;;;6577:16;6549:6;6556:10;6549:18;;;;;;;;;;;;;;;;;;:25;;;:44;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6604:13:0;:23;;;;;;;6638:6;:18;;6621:6;;6638;6645:10;;6638:18;;;;;;;;;;;;;;;;:28;;:38;;;;6719:2;;;;;;;;;-1:-1:-1;;;;;6719:2:0;-1:-1:-1;;;;;6719:18:0;;6738:9;6749:8;6772:10;6784:5;6791:9;6802:6;6810:13;6825:6;6719:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6719:113:0;-1:-1:-1;;;;;6719:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6719:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6719:113:0;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6719:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6719:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6719:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6719:113:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6719:113:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6719:113:0;6689:6;:18;;6696:10;;6689:18;;;;;;;;;;;;;;;;:27;;:143;;;;2860:1;6005:837;;;;;;;;;:::o;2427:25::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2427:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2427:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;2427:25:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2427:25:0;;;-1:-1:-1;;;2427:25:0;;;;;;:::o;1016:102::-;2827:5;;-1:-1:-1;;;;;2827:5:0;2813:10;:19;2805:46;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;;;;1082:3;:28;;-1:-1:-1;;;;;;1082:28:0;-1:-1:-1;;;;;1082:28:0;;;;;;;;;;1016:102::o;7756:117::-;2827:5;;-1:-1:-1;;;;;2827:5:0;2813:10;:19;2805:46;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;;;;7826:41;;-1:-1:-1;;;;;7826:18:0;;;7853:4;7845:21;7826:41;;;;;;;;;7845:21;7826:18;:41;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7826:41:0;7756:117;:::o;2641:25::-;;;;:::o;5152:101::-;5215:13;;:28;;5233:9;5215:28;:17;:28;:::i;:::-;5199:13;:44;5152:101::o;3217:525::-;3484:22;;:::i;:::-;3509:64;;;;;;;;;;;;;;;;;-1:-1:-1;3509:64:0;;;;;;3537:10;3509:64;;;;;;;;;;;3571:1;3509:64;;;;;;;3580:8;27:10:-1;;39:1;23:18;;45:23;;;3580:22:0;;;;;;;;3484:89;;-1:-1:-1;23:18;;3484:89:0;;3580:22;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;3580:22:0;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3580:22:0;-1:-1:-1;;;;;3580:22:0;;;;;;;;;;;;;;;;-1:-1:-1;;;;3580:22:0;;;;-1:-1:-1;;;;3580:22:0;;;;;;;;;;;;;-1:-1:-1;3580:22:0;;;;;;;;;;;3609:3;;:125;;-1:-1:-1;;;3609:125:0;;-1:-1:-1;;;;;3609:125:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:3;:125;;;;;;;;;;;;;;:3;;;;;-1:-1:-1;;;3609:125:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3609:125:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3609:125:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3609:125:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;;;;;;;;3217:525:0:o;5259:177::-;2827:5;;-1:-1:-1;;;;;2827:5:0;2813:10;:19;2805:46;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;;;;5370:13;;:24;;5388:5;5370:24;:17;:24;:::i;:::-;5354:13;:40;5401:25;;-1:-1:-1;;;;;5401:18:0;;;:25;;;;;;;;;;;;:18;:25;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;2529:28:0;;;-1:-1:-1;;;;;2529:28:0;;:::o;589:150:22:-;647:7;679:5;;;703:6;;;;695:15;;;;;;730:1;589:150;-1:-1:-1;;;589:150:22:o;431:::-;489:7;522:1;517;:6;;509:15;;;;;;-1:-1:-1;547:5:22;;;431:150::o;183:8070:0:-;;;;;;;;;;;;;-1:-1:-1;183:8070:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;183:8070:0;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;183:8070:0;;;-1:-1:-1;183:8070:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;183:8070:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;", + "source": "pragma solidity >=0.5.0 < 0.6.0;\r\nimport \"./dao/oz/SafeMath.sol\";\r\nimport './bounties/iBountiesMetaTxRelayer.sol';\r\nimport './dao/iGovernance.sol';\r\nimport './dao/Governance.sol';\r\n\r\ncontract GitFundedGrant {\r\n\r\n\r\n uint public version = 1;\r\n uint public minorVersion = 1;\r\n uint public contractStartTime;\r\n\r\n bool public active = true;\r\n uint public totalCurrentMembers = 0;\r\n iGovernance ig;\r\n iBountiesMetaTxRelayer ib;\r\n Governance dao;\r\n\r\n\r\n constructor(string memory i_repoId, string memory i_title, uint i_budget, address payable i_admin, address i_bountyAddress, address i_tokenAddress)\r\n public\r\n {\r\n\r\n repoId = i_repoId;\r\n title = i_title;\r\n budget = i_budget;\r\n admin = i_admin;\r\n availableFund = 0;\r\n live = true;\r\n\r\n //bountiesContract = BountiesMetaTxRelayer(i_bountyAddress);\r\n ib=iBountiesMetaTxRelayer(i_bountyAddress);\r\n tokenAddress = tokenAddress;\r\n\r\n contractStartTime = now;\r\n\r\n }\r\n\r\n // Initiate all the contracts used by GitFunded\r\n function initialize(address daoAddress) onlyAdmin public {\r\n\r\n dao = Governance(daoAddress);\r\n\r\n }\r\n\r\n using SafeMath for uint256;\r\n\r\n\r\n enum ExpenseStatus {\r\n PENDING,\r\n PARTIALLY_ACCEPTED,\r\n ACCEPTED,\r\n REJECTED\r\n }\r\n\r\n enum IssueStatus {\r\n BACKLOG,\r\n TODO,\r\n DOING,\r\n DONE,\r\n REJECTED\r\n }\r\n\r\n /*\r\n * Admin: Project initiator. New admins can be added by the existing ones\r\n * Member: Any funder and initial contributors will be the project members\r\n * Contributor: Direct project contributors or can be added by other project members\r\n */\r\n enum Role {\r\n ADMIN,\r\n MEMBER,\r\n CONTRIBUTOR\r\n\r\n }\r\n\r\n // Stores details of different types of users: Admin/ Member/ Contributor\r\n struct User {\r\n bool exists;\r\n address delegateKey;\r\n uint balance;\r\n uint256 shares;\r\n Role role;\r\n }\r\n\r\n\r\n // New expense structure\r\n // TODO: The expense amount should be maintained in dollar\r\n struct Expense {\r\n string title;\r\n uint amount; // In Ether\r\n uint allocated; // In Ether\r\n address payable recipient;\r\n ExpenseStatus status;\r\n uint proposalIndex;\r\n }\r\n\r\n // New issue structure\r\n // TODO: The issue amount should be maintained in dollar\r\n struct Issue {\r\n string title;\r\n uint amount; // In Ether\r\n uint allocated; // In Ether\r\n uint bountyId;\r\n address payable recipient;\r\n IssueStatus status;\r\n }\r\n\r\n\r\n Expense[] public expenses;\r\n Issue[] public issues;\r\n\r\n mapping(address => User) public users;\r\n\r\n address payable public admin;\r\n string public repoId;\r\n string public title;\r\n uint budget; // In dollars\r\n uint public availableFund; // In Ether\r\n bool live;\r\n //BountiesMetaTxRelayer public bountiesContract;\r\n address tokenAddress;\r\n\r\n modifier onlyAdmin {\r\n require(msg.sender == admin, \"Not Authorised\");\r\n _;\r\n }\r\n\r\n modifier onlyWhenActive() {\r\n require(active, \"Project is not active\");\r\n _;\r\n }\r\n\r\n\r\n function destroy() public onlyAdmin {\r\n selfdestruct(admin);\r\n }\r\n\r\n function fetchProject() view public returns (string memory, string memory, uint, uint, address) {\r\n\r\n return (repoId, title, budget, availableFund, admin);\r\n }\r\n\r\n function addExpense(string memory _title, uint _amount, address applicant, uint sharesRequested, uint lootRequested, uint tributeOffered,\r\n address tributeToken, uint paymentRequested, address paymentToken, string memory details) public {\r\n\r\n Expense memory expense = Expense(_title, _amount, 0, msg.sender, ExpenseStatus.PENDING,0);\r\n expenses.push(expense);\r\n dao.submitProposal(applicant,sharesRequested,lootRequested,tributeOffered,tributeToken,paymentRequested,paymentToken,details);\r\n\r\n }\r\n\r\n function acceptExpense(uint expenseIndex) onlyAdmin public {\r\n\r\n uint index = expenses[expenseIndex].proposalIndex;\r\n\r\n // TODO: The proposal needs to be pass (commented to pass the test)\r\n// Governance.Proposal memory proposal = dao.proposals(dao.proposalQueue(index));\r\n// require (proposal.flags[2]==true,\"Proposal not passed\");\r\n\r\n uint amount = expenses[expenseIndex].amount;\r\n require(expenses[expenseIndex].status == ExpenseStatus.PENDING);\r\n require(availableFund >= amount, \"Funds not available\");\r\n\r\n\r\n expenses[expenseIndex].status = ExpenseStatus.ACCEPTED;\r\n availableFund -= amount;\r\n expenses[expenseIndex].allocated = amount;\r\n expenses[expenseIndex].recipient.transfer(amount);\r\n\r\n }\r\n function sponsorExpense (uint expenseIndex) public {\r\n expenses[expenseIndex].proposalIndex = dao.sponsorProposal(expenseIndex);\r\n }\r\n\r\n\r\n // TODO: Merge this logic with the acceptExpense by overloading the function\r\n function acceptPartialExpense(uint expenseIndex, uint amount) onlyAdmin public {\r\n\r\n require(expenses[expenseIndex].status == ExpenseStatus.PENDING);\r\n require(availableFund >= amount, \"Funds not available\");\r\n\r\n\r\n expenses[expenseIndex].status = ExpenseStatus.PARTIALLY_ACCEPTED;\r\n availableFund -= amount;\r\n expenses[expenseIndex].allocated = amount;\r\n expenses[expenseIndex].recipient.transfer(amount);\r\n\r\n\r\n }\r\n\r\n\r\n function fundProject() payable public {\r\n\r\n availableFund = availableFund.add(msg.value);\r\n\r\n\r\n }\r\n\r\n function transferFund(address payable recipient, uint value) onlyAdmin payable public {\r\n\r\n availableFund = availableFund.sub(value);\r\n recipient.transfer(value);\r\n\r\n\r\n }\r\n\r\n\r\n function getExpensesCount() public view returns (uint) {\r\n return expenses.length;\r\n }\r\n\r\n function getIssuesCount() public view returns (uint) {\r\n return issues.length;\r\n }\r\n\r\n\r\n // Bounties related methods are called for Issues\r\n\r\n\r\n //TODO: Modify the Issue struct to store more bounty details\r\n function addIssue(string memory _title, uint _amount) public {\r\n\r\n Issue memory issue = Issue(_title, _amount, 0, 0, msg.sender, IssueStatus.BACKLOG);\r\n issues.push(issue);\r\n\r\n }\r\n // A bounty will be created without funding\r\n function acceptIssueWithNoFund(uint issueIndex,\r\n bytes memory signature,\r\n address payable[] memory _issuers,\r\n address[] memory _approvers,\r\n string memory _data,\r\n uint _deadline,\r\n address _token,\r\n uint _tokenVersion,\r\n uint _nonce) onlyAdmin public {\r\n\r\n uint amount = issues[issueIndex].amount;\r\n require(issues[issueIndex].status == IssueStatus.BACKLOG);\r\n require(availableFund >= amount, \"Funds not available\");\r\n\r\n\r\n issues[issueIndex].status = IssueStatus.TODO;\r\n availableFund -= amount;\r\n issues[issueIndex].allocated = amount;\r\n\r\n issues[issueIndex].bountyId = ib.metaIssueBounty(signature, _issuers,\r\n _approvers, _data, _deadline, _token, _tokenVersion, _nonce);\r\n\r\n }\r\n\r\n\r\n // A bounty will be created by funding it with the existing grant amount\r\n function acceptIssue(uint issueIndex,\r\n bytes memory signature,\r\n address payable[] memory _issuers,\r\n address[] memory _approvers,\r\n string memory _data,\r\n uint _deadline,\r\n address _token,\r\n uint _tokenVersion,\r\n uint _depositAmount,\r\n uint _nonce) onlyAdmin public payable {\r\n\r\n uint amount = issues[issueIndex].amount;\r\n require(issues[issueIndex].status == IssueStatus.BACKLOG, \"Project is not in backlog\");\r\n require(availableFund >= amount, \"Funds not available\");\r\n\r\n\r\n issues[issueIndex].status = IssueStatus.TODO;\r\n availableFund -= amount;\r\n issues[issueIndex].allocated = amount;\r\n\r\n issues[issueIndex].bountyId=ib.metaIssueAndContribute.value(amount)(signature, _issuers,\r\n _approvers, _data, _deadline, _token, _tokenVersion, _depositAmount, _nonce);\r\n\r\n }\r\n\r\n function swipe(address payable recipient) external onlyAdmin {\r\n\r\n recipient.transfer(address(this).balance);\r\n }\r\n\r\n\r\n function fundIssue(\r\n uint issueIndex,\r\n bytes memory _signature,\r\n uint _amount,\r\n uint _nonce) public {\r\n\r\n uint _bountyId=issues[issueIndex].bountyId;\r\n\r\n require(issues[issueIndex].status == IssueStatus.TODO);\r\n issues[issueIndex].allocated += _amount;\r\n ib.metaContribute.value(_amount)(_signature,_bountyId,_amount,_nonce);\r\n\r\n }\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\GitFundedGrant.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/GitFundedGrant.sol", + "exportedSymbols": { + "GitFundedGrant": [ + 742 + ] + }, + "id": 743, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:0" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "./dao/oz/SafeMath.sol", + "id": 2, + "nodeType": "ImportDirective", + "scope": 743, + "sourceUnit": 9858, + "src": "34:31:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/iBountiesMetaTxRelayer.sol", + "file": "./bounties/iBountiesMetaTxRelayer.sol", + "id": 3, + "nodeType": "ImportDirective", + "scope": 743, + "sourceUnit": 4807, + "src": "67:47:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/iGovernance.sol", + "file": "./dao/iGovernance.sol", + "id": 4, + "nodeType": "ImportDirective", + "scope": 743, + "sourceUnit": 9268, + "src": "116:31:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Governance.sol", + "file": "./dao/Governance.sol", + "id": 5, + "nodeType": "ImportDirective", + "scope": 743, + "sourceUnit": 7481, + "src": "149:30:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 742, + "linearizedBaseContracts": [ + 742 + ], + "name": "GitFundedGrant", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 8, + "name": "version", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "218:23:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "218:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "240:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 11, + "name": "minorVersion", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "248:28:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "248:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 10, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "275:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 13, + "name": "contractStartTime", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "283:29:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "283:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 16, + "name": "active", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "321:25:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 14, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "321:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "342:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 19, + "name": "totalCurrentMembers", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "353:35:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "353:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "387:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 21, + "name": "ig", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "395:14:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_iGovernance_$9267", + "typeString": "contract iGovernance" + }, + "typeName": { + "contractScope": null, + "id": 20, + "name": "iGovernance", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9267, + "src": "395:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_iGovernance_$9267", + "typeString": "contract iGovernance" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 23, + "name": "ib", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "416:25:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", + "typeString": "contract iBountiesMetaTxRelayer" + }, + "typeName": { + "contractScope": null, + "id": 22, + "name": "iBountiesMetaTxRelayer", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4806, + "src": "416:22:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", + "typeString": "contract iBountiesMetaTxRelayer" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 25, + "name": "dao", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "448:14:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + }, + "typeName": { + "contractScope": null, + "id": 24, + "name": "Governance", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7480, + "src": "448:10:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 78, + "nodeType": "Block", + "src": "632:327:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 40, + "name": "repoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 162, + "src": "641:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 41, + "name": "i_repoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27, + "src": "650:8:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "641:17:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 43, + "nodeType": "ExpressionStatement", + "src": "641:17:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 46, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 44, + "name": "title", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 164, + "src": "665:5:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 45, + "name": "i_title", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29, + "src": "673:7:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "665:15:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 47, + "nodeType": "ExpressionStatement", + "src": "665:15:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 50, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 48, + "name": "budget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 166, + "src": "687:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 49, + "name": "i_budget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31, + "src": "696:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "687:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 51, + "nodeType": "ExpressionStatement", + "src": "687:17:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 52, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "711:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 53, + "name": "i_admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33, + "src": "719:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "711:15:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 55, + "nodeType": "ExpressionStatement", + "src": "711:15:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 58, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 56, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "733:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 57, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "749:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "733:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 59, + "nodeType": "ExpressionStatement", + "src": "733:17:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 62, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 60, + "name": "live", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 170, + "src": "757:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 61, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "764:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "757:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 63, + "nodeType": "ExpressionStatement", + "src": "757:11:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 68, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 64, + "name": "ib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23, + "src": "843:2:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", + "typeString": "contract iBountiesMetaTxRelayer" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 66, + "name": "i_bountyAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "869:15:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 65, + "name": "iBountiesMetaTxRelayer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4806, + "src": "846:22:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_iBountiesMetaTxRelayer_$4806_$", + "typeString": "type(contract iBountiesMetaTxRelayer)" + } + }, + "id": 67, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "846:39:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", + "typeString": "contract iBountiesMetaTxRelayer" + } + }, + "src": "843:42:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", + "typeString": "contract iBountiesMetaTxRelayer" + } + }, + "id": 69, + "nodeType": "ExpressionStatement", + "src": "843:42:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 70, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 172, + "src": "892:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 71, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 172, + "src": "907:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "892:27:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 73, + "nodeType": "ExpressionStatement", + "src": "892:27:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 76, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 74, + "name": "contractStartTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13, + "src": "928:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 75, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10413, + "src": "948:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "928:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 77, + "nodeType": "ExpressionStatement", + "src": "928:23:0" + } + ] + }, + "documentation": null, + "id": 79, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 38, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27, + "name": "i_repoId", + "nodeType": "VariableDeclaration", + "scope": 79, + "src": "483:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 26, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "483:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 29, + "name": "i_title", + "nodeType": "VariableDeclaration", + "scope": 79, + "src": "507:21:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 28, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "507:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 31, + "name": "i_budget", + "nodeType": "VariableDeclaration", + "scope": 79, + "src": "530:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "530:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 33, + "name": "i_admin", + "nodeType": "VariableDeclaration", + "scope": 79, + "src": "545:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 32, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "545:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 35, + "name": "i_bountyAddress", + "nodeType": "VariableDeclaration", + "scope": 79, + "src": "570:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 34, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "570:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 37, + "name": "i_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 79, + "src": "595:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 36, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "595:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "482:136:0" + }, + "returnParameters": { + "id": 39, + "nodeType": "ParameterList", + "parameters": [], + "src": "632:0:0" + }, + "scope": 742, + "src": "471:488:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 92, + "nodeType": "Block", + "src": "1073:45:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 90, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 86, + "name": "dao", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "1082:3:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 88, + "name": "daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 81, + "src": "1099:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 87, + "name": "Governance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7480, + "src": "1088:10:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Governance_$7480_$", + "typeString": "type(contract Governance)" + } + }, + "id": 89, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1088:22:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + }, + "src": "1082:28:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + }, + "id": 91, + "nodeType": "ExpressionStatement", + "src": "1082:28:0" + } + ] + }, + "documentation": null, + "id": 93, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 84, + "modifierName": { + "argumentTypes": null, + "id": 83, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 184, + "src": "1056:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1056:9:0" + } + ], + "name": "initialize", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 82, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 81, + "name": "daoAddress", + "nodeType": "VariableDeclaration", + "scope": 93, + "src": "1036:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 80, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1036:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1035:20:0" + }, + "returnParameters": { + "id": 85, + "nodeType": "ParameterList", + "parameters": [], + "src": "1073:0:0" + }, + "scope": 742, + "src": "1016:102:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "id": 96, + "libraryName": { + "contractScope": null, + "id": 94, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "1130:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1124:27:0", + "typeName": { + "id": 95, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1143:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "canonicalName": "GitFundedGrant.ExpenseStatus", + "id": 101, + "members": [ + { + "id": 97, + "name": "PENDING", + "nodeType": "EnumValue", + "src": "1185:7:0" + }, + { + "id": 98, + "name": "PARTIALLY_ACCEPTED", + "nodeType": "EnumValue", + "src": "1199:18:0" + }, + { + "id": 99, + "name": "ACCEPTED", + "nodeType": "EnumValue", + "src": "1224:8:0" + }, + { + "id": 100, + "name": "REJECTED", + "nodeType": "EnumValue", + "src": "1239:8:0" + } + ], + "name": "ExpenseStatus", + "nodeType": "EnumDefinition", + "src": "1159:93:0" + }, + { + "canonicalName": "GitFundedGrant.IssueStatus", + "id": 107, + "members": [ + { + "id": 102, + "name": "BACKLOG", + "nodeType": "EnumValue", + "src": "1282:7:0" + }, + { + "id": 103, + "name": "TODO", + "nodeType": "EnumValue", + "src": "1296:4:0" + }, + { + "id": 104, + "name": "DOING", + "nodeType": "EnumValue", + "src": "1307:5:0" + }, + { + "id": 105, + "name": "DONE", + "nodeType": "EnumValue", + "src": "1319:4:0" + }, + { + "id": 106, + "name": "REJECTED", + "nodeType": "EnumValue", + "src": "1330:8:0" + } + ], + "name": "IssueStatus", + "nodeType": "EnumDefinition", + "src": "1258:85:0" + }, + { + "canonicalName": "GitFundedGrant.Role", + "id": 111, + "members": [ + { + "id": 108, + "name": "ADMIN", + "nodeType": "EnumValue", + "src": "1618:5:0" + }, + { + "id": 109, + "name": "MEMBER", + "nodeType": "EnumValue", + "src": "1630:6:0" + }, + { + "id": 110, + "name": "CONTRIBUTOR", + "nodeType": "EnumValue", + "src": "1643:11:0" + } + ], + "name": "Role", + "nodeType": "EnumDefinition", + "src": "1601:60:0" + }, + { + "canonicalName": "GitFundedGrant.User", + "id": 122, + "members": [ + { + "constant": false, + "id": 113, + "name": "exists", + "nodeType": "VariableDeclaration", + "scope": 122, + "src": "1763:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 112, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1763:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 115, + "name": "delegateKey", + "nodeType": "VariableDeclaration", + "scope": 122, + "src": "1781:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1781:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 117, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 122, + "src": "1807:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 116, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1807:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 119, + "name": "shares", + "nodeType": "VariableDeclaration", + "scope": 122, + "src": "1826:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 118, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1826:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 121, + "name": "role", + "nodeType": "VariableDeclaration", + "scope": 122, + "src": "1847:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Role_$111", + "typeString": "enum GitFundedGrant.Role" + }, + "typeName": { + "contractScope": null, + "id": 120, + "name": "Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 111, + "src": "1847:4:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Role_$111", + "typeString": "enum GitFundedGrant.Role" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "User", + "nodeType": "StructDefinition", + "scope": 742, + "src": "1744:118:0", + "visibility": "public" + }, + { + "canonicalName": "GitFundedGrant.Expense", + "id": 135, + "members": [ + { + "constant": false, + "id": 124, + "name": "title", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "1983:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 123, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1983:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 126, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "2002:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 125, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2002:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 128, + "name": "allocated", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "2032:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 127, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2032:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 130, + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "2065:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2065:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 132, + "name": "status", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "2097:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + }, + "typeName": { + "contractScope": null, + "id": 131, + "name": "ExpenseStatus", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 101, + "src": "2097:13:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 134, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "2124:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 133, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2124:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Expense", + "nodeType": "StructDefinition", + "scope": 742, + "src": "1961:187:0", + "visibility": "public" + }, + { + "canonicalName": "GitFundedGrant.Issue", + "id": 148, + "members": [ + { + "constant": false, + "id": 137, + "name": "title", + "nodeType": "VariableDeclaration", + "scope": 148, + "src": "2261:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 136, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2261:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 139, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 148, + "src": "2280:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 138, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2280:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 141, + "name": "allocated", + "nodeType": "VariableDeclaration", + "scope": 148, + "src": "2310:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 140, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2310:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 143, + "name": "bountyId", + "nodeType": "VariableDeclaration", + "scope": 148, + "src": "2343:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 142, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2343:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 145, + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 148, + "src": "2363:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 144, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2363:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 147, + "name": "status", + "nodeType": "VariableDeclaration", + "scope": 148, + "src": "2395:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + }, + "typeName": { + "contractScope": null, + "id": 146, + "name": "IssueStatus", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 107, + "src": "2395:11:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Issue", + "nodeType": "StructDefinition", + "scope": 742, + "src": "2241:178:0", + "visibility": "public" + }, + { + "constant": false, + "id": 151, + "name": "expenses", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "2427:25:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 149, + "name": "Expense", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 135, + "src": "2427:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage_ptr", + "typeString": "struct GitFundedGrant.Expense" + } + }, + "id": 150, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2427:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage_ptr", + "typeString": "struct GitFundedGrant.Expense[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 154, + "name": "issues", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "2457:21:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 152, + "name": "Issue", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 148, + "src": "2457:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage_ptr", + "typeString": "struct GitFundedGrant.Issue" + } + }, + "id": 153, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2457:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage_ptr", + "typeString": "struct GitFundedGrant.Issue[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 158, + "name": "users", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "2485:37:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_User_$122_storage_$", + "typeString": "mapping(address => struct GitFundedGrant.User)" + }, + "typeName": { + "id": 157, + "keyType": { + "id": 155, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2493:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2485:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_User_$122_storage_$", + "typeString": "mapping(address => struct GitFundedGrant.User)" + }, + "valueType": { + "contractScope": null, + "id": 156, + "name": "User", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 122, + "src": "2504:4:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_User_$122_storage_ptr", + "typeString": "struct GitFundedGrant.User" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 160, + "name": "admin", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "2529:28:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 159, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2529:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 162, + "name": "repoId", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "2562:20:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 161, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2562:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 164, + "name": "title", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "2587:19:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 163, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2587:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 166, + "name": "budget", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "2611:11:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 165, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2611:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 168, + "name": "availableFund", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "2641:25:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 167, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2641:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 170, + "name": "live", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "2683:9:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 169, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2683:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 172, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "2749:20:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 171, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2749:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 183, + "nodeType": "Block", + "src": "2796:71:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "id": 178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 175, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "2813:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2813:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 177, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "2827:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2813:19:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e6f7420417574686f7269736564", + "id": 179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2834:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_176ed4ceac838408d8da5199a6fb82c380ff1fc682f88be96c591ec96e5f2042", + "typeString": "literal_string \"Not Authorised\"" + }, + "value": "Not Authorised" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_176ed4ceac838408d8da5199a6fb82c380ff1fc682f88be96c591ec96e5f2042", + "typeString": "literal_string \"Not Authorised\"" + } + ], + "id": 174, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "2805:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2805:46:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 181, + "nodeType": "ExpressionStatement", + "src": "2805:46:0" + }, + { + "id": 182, + "nodeType": "PlaceholderStatement", + "src": "2860:1:0" + } + ] + }, + "documentation": null, + "id": 184, + "name": "onlyAdmin", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 173, + "nodeType": "ParameterList", + "parameters": [], + "src": "2796:0:0" + }, + "src": "2776:91:0", + "visibility": "internal" + }, + { + "body": { + "id": 192, + "nodeType": "Block", + "src": "2899:61:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 187, + "name": "active", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16, + "src": "2914:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "50726f6a656374206973206e6f7420616374697665", + "id": 188, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2922:23:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b9940373385e930b80d39946ce71106932213e2e05030240272fd8cb58e2b65e", + "typeString": "literal_string \"Project is not active\"" + }, + "value": "Project is not active" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b9940373385e930b80d39946ce71106932213e2e05030240272fd8cb58e2b65e", + "typeString": "literal_string \"Project is not active\"" + } + ], + "id": 186, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "2906:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2906:40:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 190, + "nodeType": "ExpressionStatement", + "src": "2906:40:0" + }, + { + "id": 191, + "nodeType": "PlaceholderStatement", + "src": "2953:1:0" + } + ] + }, + "documentation": null, + "id": 193, + "name": "onlyWhenActive", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 185, + "nodeType": "ParameterList", + "parameters": [], + "src": "2896:2:0" + }, + "src": "2873:87:0", + "visibility": "internal" + }, + { + "body": { + "id": 202, + "nodeType": "Block", + "src": "3004:38:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 199, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "3028:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 198, + "name": "selfdestruct", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10419, + "src": "3015:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$", + "typeString": "function (address payable)" + } + }, + "id": 200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3015:19:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 201, + "nodeType": "ExpressionStatement", + "src": "3015:19:0" + } + ] + }, + "documentation": null, + "id": 203, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 196, + "modifierName": { + "argumentTypes": null, + "id": 195, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 184, + "src": "2994:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2994:9:0" + } + ], + "name": "destroy", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 194, + "nodeType": "ParameterList", + "parameters": [], + "src": "2984:2:0" + }, + "returnParameters": { + "id": 197, + "nodeType": "ParameterList", + "parameters": [], + "src": "3004:0:0" + }, + "scope": 742, + "src": "2968:74:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 223, + "nodeType": "Block", + "src": "3144:67:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 216, + "name": "repoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 162, + "src": "3161:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "argumentTypes": null, + "id": 217, + "name": "title", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 164, + "src": "3169:5:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "argumentTypes": null, + "id": 218, + "name": "budget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 166, + "src": "3176:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 219, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "3184:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 220, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "3199:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 221, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3160:45:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_string_storage_$_t_string_storage_$_t_uint256_$_t_uint256_$_t_address_payable_$", + "typeString": "tuple(string storage ref,string storage ref,uint256,uint256,address payable)" + } + }, + "functionReturnParameters": 215, + "id": 222, + "nodeType": "Return", + "src": "3153:52:0" + } + ] + }, + "documentation": null, + "id": 224, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "fetchProject", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 204, + "nodeType": "ParameterList", + "parameters": [], + "src": "3069:2:0" + }, + "returnParameters": { + "id": 215, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 206, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 224, + "src": "3093:13:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 205, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3093:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 208, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 224, + "src": "3108:13:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 207, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3108:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 210, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 224, + "src": "3123:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 209, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3123:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 212, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 224, + "src": "3129:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 211, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3129:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 214, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 224, + "src": "3135:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3135:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3092:51:0" + }, + "scope": 742, + "src": "3048:163:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 279, + "nodeType": "Block", + "src": "3475:267:0", + "statements": [ + { + "assignments": [ + 248 + ], + "declarations": [ + { + "constant": false, + "id": 248, + "name": "expense", + "nodeType": "VariableDeclaration", + "scope": 279, + "src": "3484:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_memory_ptr", + "typeString": "struct GitFundedGrant.Expense" + }, + "typeName": { + "contractScope": null, + "id": 247, + "name": "Expense", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 135, + "src": "3484:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage_ptr", + "typeString": "struct GitFundedGrant.Expense" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 259, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 250, + "name": "_title", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 226, + "src": "3517:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 251, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 228, + "src": "3525:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3534:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 253, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3537:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3537:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 255, + "name": "ExpenseStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "3549:13:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ExpenseStatus_$101_$", + "typeString": "type(enum GitFundedGrant.ExpenseStatus)" + } + }, + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "PENDING", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3549:21:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3571:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 249, + "name": "Expense", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 135, + "src": "3509:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Expense_$135_storage_ptr_$", + "typeString": "type(struct GitFundedGrant.Expense storage pointer)" + } + }, + "id": 258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3509:64:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_memory", + "typeString": "struct GitFundedGrant.Expense memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3484:89:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 263, + "name": "expense", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 248, + "src": "3594:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_memory_ptr", + "typeString": "struct GitFundedGrant.Expense memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Expense_$135_memory_ptr", + "typeString": "struct GitFundedGrant.Expense memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 260, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "3580:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 262, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3580:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Expense_$135_storage_$returns$_t_uint256_$", + "typeString": "function (struct GitFundedGrant.Expense storage ref) returns (uint256)" + } + }, + "id": 264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3580:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 265, + "nodeType": "ExpressionStatement", + "src": "3580:22:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 269, + "name": "applicant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 230, + "src": "3628:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 270, + "name": "sharesRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "3638:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 271, + "name": "lootRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 234, + "src": "3654:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 272, + "name": "tributeOffered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 236, + "src": "3668:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 273, + "name": "tributeToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 238, + "src": "3683:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 274, + "name": "paymentRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 240, + "src": "3696:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 275, + "name": "paymentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 242, + "src": "3713:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 276, + "name": "details", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 244, + "src": "3726:7:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 266, + "name": "dao", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "3609:3:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + }, + "id": 268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "submitProposal", + "nodeType": "MemberAccess", + "referencedDeclaration": 6726, + "src": "3609:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (address,uint256,uint256,uint256,address,uint256,address,string memory) external returns (uint256)" + } + }, + "id": 277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3609:125:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 278, + "nodeType": "ExpressionStatement", + "src": "3609:125:0" + } + ] + }, + "documentation": null, + "id": 280, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addExpense", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 245, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 226, + "name": "_title", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "3237:20:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 225, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3237:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 228, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "3259:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 227, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3259:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 230, + "name": "applicant", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "3273:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 229, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3273:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 232, + "name": "sharesRequested", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "3292:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 231, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3292:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 234, + "name": "lootRequested", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "3314:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 233, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3314:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 236, + "name": "tributeOffered", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "3334:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 235, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3334:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 238, + "name": "tributeToken", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "3378:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 237, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3378:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 240, + "name": "paymentRequested", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "3400:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 239, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3400:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 242, + "name": "paymentToken", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "3423:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 241, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3423:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 244, + "name": "details", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "3445:21:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 243, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3445:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3236:231:0" + }, + "returnParameters": { + "id": 246, + "nodeType": "ParameterList", + "parameters": [], + "src": "3475:0:0" + }, + "scope": 742, + "src": "3217:525:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 345, + "nodeType": "Block", + "src": "3807:675:0", + "statements": [ + { + "assignments": [ + 288 + ], + "declarations": [ + { + "constant": false, + "id": 288, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 345, + "src": "3816:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 287, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3816:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 293, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 289, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "3829:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 291, + "indexExpression": { + "argumentTypes": null, + "id": 290, + "name": "expenseIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "3838:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3829:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage", + "typeString": "struct GitFundedGrant.Expense storage ref" + } + }, + "id": 292, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "proposalIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 134, + "src": "3829:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3816:49:0" + }, + { + "assignments": [ + 295 + ], + "declarations": [ + { + "constant": false, + "id": 295, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 345, + "src": "4099:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 294, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4099:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 300, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 296, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "4113:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 298, + "indexExpression": { + "argumentTypes": null, + "id": 297, + "name": "expenseIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "4122:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4113:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage", + "typeString": "struct GitFundedGrant.Expense storage ref" + } + }, + "id": 299, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 126, + "src": "4113:29:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4099:43:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + }, + "id": 308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 302, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "4157:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 304, + "indexExpression": { + "argumentTypes": null, + "id": 303, + "name": "expenseIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "4166:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4157:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage", + "typeString": "struct GitFundedGrant.Expense storage ref" + } + }, + "id": 305, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 132, + "src": "4157:29:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 306, + "name": "ExpenseStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "4190:13:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ExpenseStatus_$101_$", + "typeString": "type(enum GitFundedGrant.ExpenseStatus)" + } + }, + "id": 307, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "PENDING", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4190:21:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + } + }, + "src": "4157:54:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 301, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4149:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4149:63:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 310, + "nodeType": "ExpressionStatement", + "src": "4149:63:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 312, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "4227:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 313, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 295, + "src": "4244:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4227:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "46756e6473206e6f7420617661696c61626c65", + "id": 315, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4252:21:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", + "typeString": "literal_string \"Funds not available\"" + }, + "value": "Funds not available" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", + "typeString": "literal_string \"Funds not available\"" + } + ], + "id": 311, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "4219:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4219:55:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 317, + "nodeType": "ExpressionStatement", + "src": "4219:55:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 318, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "4285:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 320, + "indexExpression": { + "argumentTypes": null, + "id": 319, + "name": "expenseIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "4294:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4285:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage", + "typeString": "struct GitFundedGrant.Expense storage ref" + } + }, + "id": 321, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 132, + "src": "4285:29:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 322, + "name": "ExpenseStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "4317:13:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ExpenseStatus_$101_$", + "typeString": "type(enum GitFundedGrant.ExpenseStatus)" + } + }, + "id": 323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ACCEPTED", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4317:22:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + } + }, + "src": "4285:54:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + } + }, + "id": 325, + "nodeType": "ExpressionStatement", + "src": "4285:54:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 326, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "4346:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 327, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 295, + "src": "4363:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4346:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 329, + "nodeType": "ExpressionStatement", + "src": "4346:23:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 330, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "4376:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 332, + "indexExpression": { + "argumentTypes": null, + "id": 331, + "name": "expenseIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "4385:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4376:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage", + "typeString": "struct GitFundedGrant.Expense storage ref" + } + }, + "id": 333, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "allocated", + "nodeType": "MemberAccess", + "referencedDeclaration": 128, + "src": "4376:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 334, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 295, + "src": "4412:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4376:42:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 336, + "nodeType": "ExpressionStatement", + "src": "4376:42:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 342, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 295, + "src": "4467:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 337, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "4425:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 339, + "indexExpression": { + "argumentTypes": null, + "id": 338, + "name": "expenseIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "4434:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4425:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage", + "typeString": "struct GitFundedGrant.Expense storage ref" + } + }, + "id": 340, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "recipient", + "nodeType": "MemberAccess", + "referencedDeclaration": 130, + "src": "4425:32:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4425:41:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4425:49:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 344, + "nodeType": "ExpressionStatement", + "src": "4425:49:0" + } + ] + }, + "documentation": null, + "id": 346, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 285, + "modifierName": { + "argumentTypes": null, + "id": 284, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 184, + "src": "3790:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3790:9:0" + } + ], + "name": "acceptExpense", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 283, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 282, + "name": "expenseIndex", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "3771:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 281, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3771:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3770:19:0" + }, + "returnParameters": { + "id": 286, + "nodeType": "ParameterList", + "parameters": [], + "src": "3807:0:0" + }, + "scope": 742, + "src": "3748:734:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 361, + "nodeType": "Block", + "src": "4537:86:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 351, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "4544:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 353, + "indexExpression": { + "argumentTypes": null, + "id": 352, + "name": "expenseIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 348, + "src": "4553:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4544:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage", + "typeString": "struct GitFundedGrant.Expense storage ref" + } + }, + "id": 354, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "proposalIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 134, + "src": "4544:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 357, + "name": "expenseIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 348, + "src": "4604:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 355, + "name": "dao", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "4584:3:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + }, + "id": 356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sponsorProposal", + "nodeType": "MemberAccess", + "referencedDeclaration": 6932, + "src": "4584:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) external returns (uint256)" + } + }, + "id": 358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4584:33:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4544:73:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 360, + "nodeType": "ExpressionStatement", + "src": "4544:73:0" + } + ] + }, + "documentation": null, + "id": 362, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sponsorExpense", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 349, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 348, + "name": "expenseIndex", + "nodeType": "VariableDeclaration", + "scope": 362, + "src": "4511:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 347, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4511:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4510:19:0" + }, + "returnParameters": { + "id": 350, + "nodeType": "ParameterList", + "parameters": [], + "src": "4537:0:0" + }, + "scope": 742, + "src": "4486:137:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 415, + "nodeType": "Block", + "src": "4790:354:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + }, + "id": 378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 372, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "4807:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 374, + "indexExpression": { + "argumentTypes": null, + "id": 373, + "name": "expenseIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 364, + "src": "4816:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4807:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage", + "typeString": "struct GitFundedGrant.Expense storage ref" + } + }, + "id": 375, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 132, + "src": "4807:29:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 376, + "name": "ExpenseStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "4840:13:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ExpenseStatus_$101_$", + "typeString": "type(enum GitFundedGrant.ExpenseStatus)" + } + }, + "id": 377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "PENDING", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4840:21:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + } + }, + "src": "4807:54:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 371, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4799:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4799:63:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 380, + "nodeType": "ExpressionStatement", + "src": "4799:63:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 382, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "4877:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 383, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 366, + "src": "4894:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4877:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "46756e6473206e6f7420617661696c61626c65", + "id": 385, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4902:21:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", + "typeString": "literal_string \"Funds not available\"" + }, + "value": "Funds not available" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", + "typeString": "literal_string \"Funds not available\"" + } + ], + "id": 381, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "4869:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4869:55:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 387, + "nodeType": "ExpressionStatement", + "src": "4869:55:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 388, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "4935:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 390, + "indexExpression": { + "argumentTypes": null, + "id": 389, + "name": "expenseIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 364, + "src": "4944:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4935:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage", + "typeString": "struct GitFundedGrant.Expense storage ref" + } + }, + "id": 391, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 132, + "src": "4935:29:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 392, + "name": "ExpenseStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "4967:13:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ExpenseStatus_$101_$", + "typeString": "type(enum GitFundedGrant.ExpenseStatus)" + } + }, + "id": 393, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "PARTIALLY_ACCEPTED", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4967:32:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + } + }, + "src": "4935:64:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + } + }, + "id": 395, + "nodeType": "ExpressionStatement", + "src": "4935:64:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 396, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "5006:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 397, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 366, + "src": "5023:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5006:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 399, + "nodeType": "ExpressionStatement", + "src": "5006:23:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 400, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "5036:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 402, + "indexExpression": { + "argumentTypes": null, + "id": 401, + "name": "expenseIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 364, + "src": "5045:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5036:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage", + "typeString": "struct GitFundedGrant.Expense storage ref" + } + }, + "id": 403, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "allocated", + "nodeType": "MemberAccess", + "referencedDeclaration": 128, + "src": "5036:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 404, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 366, + "src": "5072:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5036:42:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 406, + "nodeType": "ExpressionStatement", + "src": "5036:42:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 412, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 366, + "src": "5127:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 407, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "5085:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 409, + "indexExpression": { + "argumentTypes": null, + "id": 408, + "name": "expenseIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 364, + "src": "5094:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5085:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage", + "typeString": "struct GitFundedGrant.Expense storage ref" + } + }, + "id": 410, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "recipient", + "nodeType": "MemberAccess", + "referencedDeclaration": 130, + "src": "5085:32:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5085:41:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5085:49:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 414, + "nodeType": "ExpressionStatement", + "src": "5085:49:0" + } + ] + }, + "documentation": null, + "id": 416, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 369, + "modifierName": { + "argumentTypes": null, + "id": 368, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 184, + "src": "4773:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4773:9:0" + } + ], + "name": "acceptPartialExpense", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 367, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 364, + "name": "expenseIndex", + "nodeType": "VariableDeclaration", + "scope": 416, + "src": "4741:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 363, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4741:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 366, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 416, + "src": "4760:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 365, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4760:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4740:32:0" + }, + "returnParameters": { + "id": 370, + "nodeType": "ParameterList", + "parameters": [], + "src": "4790:0:0" + }, + "scope": 742, + "src": "4711:433:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 427, + "nodeType": "Block", + "src": "5190:63:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 419, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "5199:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 422, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "5233:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5233:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 420, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "5215:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "5215:17:0", + "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": 424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5215:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5199:44:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 426, + "nodeType": "ExpressionStatement", + "src": "5199:44:0" + } + ] + }, + "documentation": null, + "id": 428, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "fundProject", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 417, + "nodeType": "ParameterList", + "parameters": [], + "src": "5172:2:0" + }, + "returnParameters": { + "id": 418, + "nodeType": "ParameterList", + "parameters": [], + "src": "5190:0:0" + }, + "scope": 742, + "src": "5152:101:0", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 450, + "nodeType": "Block", + "src": "5345:91:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 437, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "5354:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 440, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 432, + "src": "5388:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 438, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "5370:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "5370:17:0", + "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": 441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5370:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5354:40:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 443, + "nodeType": "ExpressionStatement", + "src": "5354:40:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 447, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 432, + "src": "5420:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 444, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 430, + "src": "5401:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5401:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5401:25:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 449, + "nodeType": "ExpressionStatement", + "src": "5401:25:0" + } + ] + }, + "documentation": null, + "id": 451, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 435, + "modifierName": { + "argumentTypes": null, + "id": 434, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 184, + "src": "5320:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5320:9:0" + } + ], + "name": "transferFund", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 433, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 430, + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 451, + "src": "5281:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 429, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5281:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 432, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 451, + "src": "5308:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 431, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5308:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5280:39:0" + }, + "returnParameters": { + "id": 436, + "nodeType": "ParameterList", + "parameters": [], + "src": "5345:0:0" + }, + "scope": 742, + "src": "5259:177:0", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 459, + "nodeType": "Block", + "src": "5499:35:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 456, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "5513:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 457, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5513:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 455, + "id": 458, + "nodeType": "Return", + "src": "5506:22:0" + } + ] + }, + "documentation": null, + "id": 460, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getExpensesCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 452, + "nodeType": "ParameterList", + "parameters": [], + "src": "5469:2:0" + }, + "returnParameters": { + "id": 455, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 454, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 460, + "src": "5493:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 453, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5493:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5492:6:0" + }, + "scope": 742, + "src": "5444:90:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 468, + "nodeType": "Block", + "src": "5593:33:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 465, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "5607:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 466, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5607:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 464, + "id": 467, + "nodeType": "Return", + "src": "5600:20:0" + } + ] + }, + "documentation": null, + "id": 469, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getIssuesCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 461, + "nodeType": "ParameterList", + "parameters": [], + "src": "5563:2:0" + }, + "returnParameters": { + "id": 464, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 463, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 469, + "src": "5587:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 462, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5587:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5586:6:0" + }, + "scope": 742, + "src": "5540:86:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 495, + "nodeType": "Block", + "src": "5818:134:0", + "statements": [ + { + "assignments": [ + 477 + ], + "declarations": [ + { + "constant": false, + "id": 477, + "name": "issue", + "nodeType": "VariableDeclaration", + "scope": 495, + "src": "5831:18:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_memory_ptr", + "typeString": "struct GitFundedGrant.Issue" + }, + "typeName": { + "contractScope": null, + "id": 476, + "name": "Issue", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 148, + "src": "5831:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage_ptr", + "typeString": "struct GitFundedGrant.Issue" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 488, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 479, + "name": "_title", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 471, + "src": "5858:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 480, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 473, + "src": "5866:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 481, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5875:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 482, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5878:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 483, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "5881:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5881:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 485, + "name": "IssueStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 107, + "src": "5893:11:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_IssueStatus_$107_$", + "typeString": "type(enum GitFundedGrant.IssueStatus)" + } + }, + "id": 486, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "BACKLOG", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5893:19:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + ], + "id": 478, + "name": "Issue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 148, + "src": "5852:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Issue_$148_storage_ptr_$", + "typeString": "type(struct GitFundedGrant.Issue storage pointer)" + } + }, + "id": 487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5852:61:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_memory", + "typeString": "struct GitFundedGrant.Issue memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5831:82:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 492, + "name": "issue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 477, + "src": "5936:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_memory_ptr", + "typeString": "struct GitFundedGrant.Issue memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Issue_$148_memory_ptr", + "typeString": "struct GitFundedGrant.Issue memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 489, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "5924:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5924:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Issue_$148_storage_$returns$_t_uint256_$", + "typeString": "function (struct GitFundedGrant.Issue storage ref) returns (uint256)" + } + }, + "id": 493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5924:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 494, + "nodeType": "ExpressionStatement", + "src": "5924:18:0" + } + ] + }, + "documentation": null, + "id": 496, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addIssue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 474, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 471, + "name": "_title", + "nodeType": "VariableDeclaration", + "scope": 496, + "src": "5775:20:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 470, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5775:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 473, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 496, + "src": "5797:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 472, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5797:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5774:36:0" + }, + "returnParameters": { + "id": 475, + "nodeType": "ParameterList", + "parameters": [], + "src": "5818:0:0" + }, + "scope": 742, + "src": "5757:195:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 581, + "nodeType": "Block", + "src": "6348:494:0", + "statements": [ + { + "assignments": [ + 522 + ], + "declarations": [ + { + "constant": false, + "id": 522, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 581, + "src": "6361:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 521, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6361:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 527, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 523, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "6375:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 525, + "indexExpression": { + "argumentTypes": null, + "id": 524, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "6382:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6375:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 526, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 139, + "src": "6375:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6361:39:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + }, + "id": 535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 529, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "6419:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 531, + "indexExpression": { + "argumentTypes": null, + "id": 530, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "6426:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6419:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 532, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 147, + "src": "6419:25:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 533, + "name": "IssueStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 107, + "src": "6448:11:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_IssueStatus_$107_$", + "typeString": "type(enum GitFundedGrant.IssueStatus)" + } + }, + "id": 534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "BACKLOG", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6448:19:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "src": "6419:48:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 528, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "6411:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6411:57:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 537, + "nodeType": "ExpressionStatement", + "src": "6411:57:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 539, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "6487:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 540, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 522, + "src": "6504:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6487:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "46756e6473206e6f7420617661696c61626c65", + "id": 542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6512:21:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", + "typeString": "literal_string \"Funds not available\"" + }, + "value": "Funds not available" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", + "typeString": "literal_string \"Funds not available\"" + } + ], + "id": 538, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "6479:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6479:55:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 544, + "nodeType": "ExpressionStatement", + "src": "6479:55:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 545, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "6549:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 547, + "indexExpression": { + "argumentTypes": null, + "id": 546, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "6556:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6549:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 548, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 147, + "src": "6549:25:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 549, + "name": "IssueStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 107, + "src": "6577:11:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_IssueStatus_$107_$", + "typeString": "type(enum GitFundedGrant.IssueStatus)" + } + }, + "id": 550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "TODO", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6577:16:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "src": "6549:44:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "id": 552, + "nodeType": "ExpressionStatement", + "src": "6549:44:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 553, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "6604:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 554, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 522, + "src": "6621:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6604:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 556, + "nodeType": "ExpressionStatement", + "src": "6604:23:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 557, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "6638:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 559, + "indexExpression": { + "argumentTypes": null, + "id": 558, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "6645:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6638:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 560, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "allocated", + "nodeType": "MemberAccess", + "referencedDeclaration": 141, + "src": "6638:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 561, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 522, + "src": "6670:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6638:38:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 563, + "nodeType": "ExpressionStatement", + "src": "6638:38:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 564, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "6689:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 566, + "indexExpression": { + "argumentTypes": null, + "id": 565, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "6696:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6689:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 567, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "bountyId", + "nodeType": "MemberAccess", + "referencedDeclaration": 143, + "src": "6689:27:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 570, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 500, + "src": "6738:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 571, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 503, + "src": "6749:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 572, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 506, + "src": "6772:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 573, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 508, + "src": "6784:5:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 574, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 510, + "src": "6791:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 575, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 512, + "src": "6802:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 576, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 514, + "src": "6810:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 577, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "6825:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 568, + "name": "ib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23, + "src": "6719:2:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", + "typeString": "contract iBountiesMetaTxRelayer" + } + }, + "id": 569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "metaIssueBounty", + "nodeType": "MemberAccess", + "referencedDeclaration": 4537, + "src": "6719:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bytes memory,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256) external returns (uint256)" + } + }, + "id": 578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6719:113:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6689:143:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 580, + "nodeType": "ExpressionStatement", + "src": "6689:143:0" + } + ] + }, + "documentation": null, + "id": 582, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 519, + "modifierName": { + "argumentTypes": null, + "id": 518, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 184, + "src": "6331:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6331:9:0" + } + ], + "name": "acceptIssueWithNoFund", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 517, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 498, + "name": "issueIndex", + "nodeType": "VariableDeclaration", + "scope": 582, + "src": "6036:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 497, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6036:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 500, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 582, + "src": "6066:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 499, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6066:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 503, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 582, + "src": "6103:33:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 501, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6103:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 502, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6103:17:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 506, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 582, + "src": "6151:27:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 504, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6151:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 505, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6151:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 508, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 582, + "src": "6193:19:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 507, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6193:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 510, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 582, + "src": "6227:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 509, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6227:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 512, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 582, + "src": "6256:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 511, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6256:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 514, + "name": "_tokenVersion", + "nodeType": "VariableDeclaration", + "scope": 582, + "src": "6285:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 513, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6285:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 516, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 582, + "src": "6318:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 515, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6318:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6035:295:0" + }, + "returnParameters": { + "id": 520, + "nodeType": "ParameterList", + "parameters": [], + "src": "6348:0:0" + }, + "scope": 742, + "src": "6005:837:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 674, + "nodeType": "Block", + "src": "7228:522:0", + "statements": [ + { + "assignments": [ + 610 + ], + "declarations": [ + { + "constant": false, + "id": 610, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 674, + "src": "7237:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 609, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7237:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 615, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 611, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "7251:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 613, + "indexExpression": { + "argumentTypes": null, + "id": 612, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 584, + "src": "7258:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7251:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 614, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 139, + "src": "7251:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7237:39:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + }, + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 617, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "7291:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 619, + "indexExpression": { + "argumentTypes": null, + "id": 618, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 584, + "src": "7298:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7291:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 620, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 147, + "src": "7291:25:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 621, + "name": "IssueStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 107, + "src": "7320:11:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_IssueStatus_$107_$", + "typeString": "type(enum GitFundedGrant.IssueStatus)" + } + }, + "id": 622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "BACKLOG", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7320:19:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "src": "7291:48:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "50726f6a656374206973206e6f7420696e206261636b6c6f67", + "id": 624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7341:27:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e017887d840fc949a9b314cdaa0d1854d946edb479801781961ce41ea66163a1", + "typeString": "literal_string \"Project is not in backlog\"" + }, + "value": "Project is not in backlog" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e017887d840fc949a9b314cdaa0d1854d946edb479801781961ce41ea66163a1", + "typeString": "literal_string \"Project is not in backlog\"" + } + ], + "id": 616, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7283:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7283:86:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 626, + "nodeType": "ExpressionStatement", + "src": "7283:86:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 628, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "7384:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 629, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 610, + "src": "7401:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7384:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "46756e6473206e6f7420617661696c61626c65", + "id": 631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7409:21:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", + "typeString": "literal_string \"Funds not available\"" + }, + "value": "Funds not available" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", + "typeString": "literal_string \"Funds not available\"" + } + ], + "id": 627, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7376:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7376:55:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 633, + "nodeType": "ExpressionStatement", + "src": "7376:55:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 634, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "7442:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 636, + "indexExpression": { + "argumentTypes": null, + "id": 635, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 584, + "src": "7449:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7442:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 637, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 147, + "src": "7442:25:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 638, + "name": "IssueStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 107, + "src": "7470:11:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_IssueStatus_$107_$", + "typeString": "type(enum GitFundedGrant.IssueStatus)" + } + }, + "id": 639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "TODO", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7470:16:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "src": "7442:44:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "id": 641, + "nodeType": "ExpressionStatement", + "src": "7442:44:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 642, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "7493:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 643, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 610, + "src": "7510:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7493:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 645, + "nodeType": "ExpressionStatement", + "src": "7493:23:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 646, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "7523:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 648, + "indexExpression": { + "argumentTypes": null, + "id": 647, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 584, + "src": "7530:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7523:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 649, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "allocated", + "nodeType": "MemberAccess", + "referencedDeclaration": 141, + "src": "7523:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 650, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 610, + "src": "7555:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7523:38:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 652, + "nodeType": "ExpressionStatement", + "src": "7523:38:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 653, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "7570:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 655, + "indexExpression": { + "argumentTypes": null, + "id": 654, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 584, + "src": "7577:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7570:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 656, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "bountyId", + "nodeType": "MemberAccess", + "referencedDeclaration": 143, + "src": "7570:27:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 662, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "7638:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 663, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 589, + "src": "7649:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 664, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "7666:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 665, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 594, + "src": "7678:5:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 666, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 596, + "src": "7685:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 667, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 598, + "src": "7696:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 668, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 600, + "src": "7704:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 669, + "name": "_depositAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "7719:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 670, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 604, + "src": "7735:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "arguments": [ + { + "argumentTypes": null, + "id": 660, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 610, + "src": "7630:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 657, + "name": "ib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23, + "src": "7598:2:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", + "typeString": "contract iBountiesMetaTxRelayer" + } + }, + "id": 658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "metaIssueAndContribute", + "nodeType": "MemberAccess", + "referencedDeclaration": 4562, + "src": "7598:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_bytes_memory_ptr_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bytes memory,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256,uint256) payable external returns (uint256)" + } + }, + "id": 659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7598:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_bytes_memory_ptr_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$value_$", + "typeString": "function (uint256) returns (function (bytes memory,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256,uint256) payable external returns (uint256))" + } + }, + "id": 661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7598:39:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_bytes_memory_ptr_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$value", + "typeString": "function (bytes memory,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256,uint256) payable external returns (uint256)" + } + }, + "id": 671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7598:144:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7570:172:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 673, + "nodeType": "ExpressionStatement", + "src": "7570:172:0" + } + ] + }, + "documentation": null, + "id": 675, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 607, + "modifierName": { + "argumentTypes": null, + "id": 606, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 184, + "src": "7203:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7203:9:0" + } + ], + "name": "acceptIssue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 584, + "name": "issueIndex", + "nodeType": "VariableDeclaration", + "scope": 675, + "src": "6946:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 583, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6946:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 586, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 675, + "src": "6968:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 585, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6968:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 589, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 675, + "src": "6997:33:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 587, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6997:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 588, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6997:17:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 592, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 675, + "src": "7037:27:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 590, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7037:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 591, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7037:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 594, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 675, + "src": "7071:19:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 593, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7071:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 596, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 675, + "src": "7097:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 595, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7097:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 598, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 675, + "src": "7118:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7118:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 600, + "name": "_tokenVersion", + "nodeType": "VariableDeclaration", + "scope": 675, + "src": "7139:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 599, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7139:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 602, + "name": "_depositAmount", + "nodeType": "VariableDeclaration", + "scope": 675, + "src": "7164:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 601, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7164:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 604, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 675, + "src": "7190:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 603, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7190:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6945:257:0" + }, + "returnParameters": { + "id": 608, + "nodeType": "ParameterList", + "parameters": [], + "src": "7228:0:0" + }, + "scope": 742, + "src": "6925:825:0", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 691, + "nodeType": "Block", + "src": "7817:56:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 686, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10439, + "src": "7853:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GitFundedGrant_$742", + "typeString": "contract GitFundedGrant" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_GitFundedGrant_$742", + "typeString": "contract GitFundedGrant" + } + ], + "id": 685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7845:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7845:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7845:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 682, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 677, + "src": "7826:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7826:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7826:41:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 690, + "nodeType": "ExpressionStatement", + "src": "7826:41:0" + } + ] + }, + "documentation": null, + "id": 692, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 680, + "modifierName": { + "argumentTypes": null, + "id": 679, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 184, + "src": "7807:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7807:9:0" + } + ], + "name": "swipe", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 677, + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 692, + "src": "7771:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7771:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7770:27:0" + }, + "returnParameters": { + "id": 681, + "nodeType": "ParameterList", + "parameters": [], + "src": "7817:0:0" + }, + "scope": 742, + "src": "7756:117:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 740, + "nodeType": "Block", + "src": "7996:254:0", + "statements": [ + { + "assignments": [ + 704 + ], + "declarations": [ + { + "constant": false, + "id": 704, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 740, + "src": "8007:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 703, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8007:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 709, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 705, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "8022:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 707, + "indexExpression": { + "argumentTypes": null, + "id": 706, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 694, + "src": "8029:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8022:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 708, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "bountyId", + "nodeType": "MemberAccess", + "referencedDeclaration": 143, + "src": "8022:27:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8007:42:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + }, + "id": 717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 711, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "8068:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 713, + "indexExpression": { + "argumentTypes": null, + "id": 712, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 694, + "src": "8075:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8068:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 714, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 147, + "src": "8068:25:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 715, + "name": "IssueStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 107, + "src": "8097:11:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_IssueStatus_$107_$", + "typeString": "type(enum GitFundedGrant.IssueStatus)" + } + }, + "id": 716, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "TODO", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8097:16:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "src": "8068:45:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 710, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "8060:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8060:54:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 719, + "nodeType": "ExpressionStatement", + "src": "8060:54:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 720, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "8123:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 722, + "indexExpression": { + "argumentTypes": null, + "id": 721, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 694, + "src": "8130:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8123:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 723, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "allocated", + "nodeType": "MemberAccess", + "referencedDeclaration": 141, + "src": "8123:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "id": 724, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 698, + "src": "8156:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8123:40:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 726, + "nodeType": "ExpressionStatement", + "src": "8123:40:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 734, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 696, + "src": "8205:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 735, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 704, + "src": "8216:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 736, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 698, + "src": "8226:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 737, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 700, + "src": "8234:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "arguments": [ + { + "argumentTypes": null, + "id": 732, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 698, + "src": "8196:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 727, + "name": "ib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23, + "src": "8172:2:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", + "typeString": "contract iBountiesMetaTxRelayer" + } + }, + "id": 730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "metaContribute", + "nodeType": "MemberAccess", + "referencedDeclaration": 4573, + "src": "8172:17:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (bytes memory,uint256,uint256,uint256) payable external" + } + }, + "id": 731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8172:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$value_$", + "typeString": "function (uint256) returns (function (bytes memory,uint256,uint256,uint256) payable external)" + } + }, + "id": 733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8172:32:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$value", + "typeString": "function (bytes memory,uint256,uint256,uint256) payable external" + } + }, + "id": 738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8172:69:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 739, + "nodeType": "ExpressionStatement", + "src": "8172:69:0" + } + ] + }, + "documentation": null, + "id": 741, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "fundIssue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 701, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 694, + "name": "issueIndex", + "nodeType": "VariableDeclaration", + "scope": 741, + "src": "7905:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 693, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7905:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 696, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 741, + "src": "7927:23:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 695, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7927:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 698, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 741, + "src": "7957:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 697, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7957:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 700, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 741, + "src": "7976:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 699, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7976:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7898:90:0" + }, + "returnParameters": { + "id": 702, + "nodeType": "ParameterList", + "parameters": [], + "src": "7996:0:0" + }, + "scope": 742, + "src": "7880:370:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 743, + "src": "183:8070:0" + } + ], + "src": "0:8255:0" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/GitFundedGrant.sol", + "exportedSymbols": { + "GitFundedGrant": [ + 742 + ] + }, + "id": 743, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:0" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "./dao/oz/SafeMath.sol", + "id": 2, + "nodeType": "ImportDirective", + "scope": 743, + "sourceUnit": 9858, + "src": "34:31:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/iBountiesMetaTxRelayer.sol", + "file": "./bounties/iBountiesMetaTxRelayer.sol", + "id": 3, + "nodeType": "ImportDirective", + "scope": 743, + "sourceUnit": 4807, + "src": "67:47:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/iGovernance.sol", + "file": "./dao/iGovernance.sol", + "id": 4, + "nodeType": "ImportDirective", + "scope": 743, + "sourceUnit": 9268, + "src": "116:31:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Governance.sol", + "file": "./dao/Governance.sol", + "id": 5, + "nodeType": "ImportDirective", + "scope": 743, + "sourceUnit": 7481, + "src": "149:30:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 742, + "linearizedBaseContracts": [ + 742 + ], + "name": "GitFundedGrant", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 8, + "name": "version", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "218:23:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "218:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 7, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "240:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 11, + "name": "minorVersion", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "248:28:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "248:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "31", + "id": 10, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "275:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 13, + "name": "contractStartTime", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "283:29:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "283:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 16, + "name": "active", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "321:25:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 14, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "321:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 15, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "342:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 19, + "name": "totalCurrentMembers", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "353:35:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "353:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "387:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 21, + "name": "ig", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "395:14:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_iGovernance_$9267", + "typeString": "contract iGovernance" + }, + "typeName": { + "contractScope": null, + "id": 20, + "name": "iGovernance", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9267, + "src": "395:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_iGovernance_$9267", + "typeString": "contract iGovernance" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 23, + "name": "ib", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "416:25:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", + "typeString": "contract iBountiesMetaTxRelayer" + }, + "typeName": { + "contractScope": null, + "id": 22, + "name": "iBountiesMetaTxRelayer", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4806, + "src": "416:22:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", + "typeString": "contract iBountiesMetaTxRelayer" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 25, + "name": "dao", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "448:14:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + }, + "typeName": { + "contractScope": null, + "id": 24, + "name": "Governance", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7480, + "src": "448:10:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 78, + "nodeType": "Block", + "src": "632:327:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 40, + "name": "repoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 162, + "src": "641:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 41, + "name": "i_repoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 27, + "src": "650:8:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "641:17:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 43, + "nodeType": "ExpressionStatement", + "src": "641:17:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 46, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 44, + "name": "title", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 164, + "src": "665:5:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 45, + "name": "i_title", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 29, + "src": "673:7:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "665:15:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 47, + "nodeType": "ExpressionStatement", + "src": "665:15:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 50, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 48, + "name": "budget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 166, + "src": "687:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 49, + "name": "i_budget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31, + "src": "696:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "687:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 51, + "nodeType": "ExpressionStatement", + "src": "687:17:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 52, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "711:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 53, + "name": "i_admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 33, + "src": "719:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "711:15:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 55, + "nodeType": "ExpressionStatement", + "src": "711:15:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 58, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 56, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "733:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 57, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "749:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "733:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 59, + "nodeType": "ExpressionStatement", + "src": "733:17:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 62, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 60, + "name": "live", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 170, + "src": "757:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 61, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "764:4:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "757:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 63, + "nodeType": "ExpressionStatement", + "src": "757:11:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 68, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 64, + "name": "ib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23, + "src": "843:2:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", + "typeString": "contract iBountiesMetaTxRelayer" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 66, + "name": "i_bountyAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 35, + "src": "869:15:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 65, + "name": "iBountiesMetaTxRelayer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4806, + "src": "846:22:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_iBountiesMetaTxRelayer_$4806_$", + "typeString": "type(contract iBountiesMetaTxRelayer)" + } + }, + "id": 67, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "846:39:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", + "typeString": "contract iBountiesMetaTxRelayer" + } + }, + "src": "843:42:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", + "typeString": "contract iBountiesMetaTxRelayer" + } + }, + "id": 69, + "nodeType": "ExpressionStatement", + "src": "843:42:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 72, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 70, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 172, + "src": "892:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 71, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 172, + "src": "907:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "892:27:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 73, + "nodeType": "ExpressionStatement", + "src": "892:27:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 76, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 74, + "name": "contractStartTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 13, + "src": "928:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 75, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10413, + "src": "948:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "928:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 77, + "nodeType": "ExpressionStatement", + "src": "928:23:0" + } + ] + }, + "documentation": null, + "id": 79, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 38, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 27, + "name": "i_repoId", + "nodeType": "VariableDeclaration", + "scope": 79, + "src": "483:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 26, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "483:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 29, + "name": "i_title", + "nodeType": "VariableDeclaration", + "scope": 79, + "src": "507:21:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 28, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "507:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 31, + "name": "i_budget", + "nodeType": "VariableDeclaration", + "scope": 79, + "src": "530:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 30, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "530:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 33, + "name": "i_admin", + "nodeType": "VariableDeclaration", + "scope": 79, + "src": "545:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 32, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "545:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 35, + "name": "i_bountyAddress", + "nodeType": "VariableDeclaration", + "scope": 79, + "src": "570:23:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 34, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "570:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 37, + "name": "i_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 79, + "src": "595:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 36, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "595:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "482:136:0" + }, + "returnParameters": { + "id": 39, + "nodeType": "ParameterList", + "parameters": [], + "src": "632:0:0" + }, + "scope": 742, + "src": "471:488:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 92, + "nodeType": "Block", + "src": "1073:45:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 90, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 86, + "name": "dao", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "1082:3:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 88, + "name": "daoAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 81, + "src": "1099:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 87, + "name": "Governance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7480, + "src": "1088:10:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Governance_$7480_$", + "typeString": "type(contract Governance)" + } + }, + "id": 89, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1088:22:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + }, + "src": "1082:28:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + }, + "id": 91, + "nodeType": "ExpressionStatement", + "src": "1082:28:0" + } + ] + }, + "documentation": null, + "id": 93, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 84, + "modifierName": { + "argumentTypes": null, + "id": 83, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 184, + "src": "1056:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "1056:9:0" + } + ], + "name": "initialize", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 82, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 81, + "name": "daoAddress", + "nodeType": "VariableDeclaration", + "scope": 93, + "src": "1036:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 80, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1036:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1035:20:0" + }, + "returnParameters": { + "id": 85, + "nodeType": "ParameterList", + "parameters": [], + "src": "1073:0:0" + }, + "scope": 742, + "src": "1016:102:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "id": 96, + "libraryName": { + "contractScope": null, + "id": 94, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "1130:8:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "1124:27:0", + "typeName": { + "id": 95, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1143:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "canonicalName": "GitFundedGrant.ExpenseStatus", + "id": 101, + "members": [ + { + "id": 97, + "name": "PENDING", + "nodeType": "EnumValue", + "src": "1185:7:0" + }, + { + "id": 98, + "name": "PARTIALLY_ACCEPTED", + "nodeType": "EnumValue", + "src": "1199:18:0" + }, + { + "id": 99, + "name": "ACCEPTED", + "nodeType": "EnumValue", + "src": "1224:8:0" + }, + { + "id": 100, + "name": "REJECTED", + "nodeType": "EnumValue", + "src": "1239:8:0" + } + ], + "name": "ExpenseStatus", + "nodeType": "EnumDefinition", + "src": "1159:93:0" + }, + { + "canonicalName": "GitFundedGrant.IssueStatus", + "id": 107, + "members": [ + { + "id": 102, + "name": "BACKLOG", + "nodeType": "EnumValue", + "src": "1282:7:0" + }, + { + "id": 103, + "name": "TODO", + "nodeType": "EnumValue", + "src": "1296:4:0" + }, + { + "id": 104, + "name": "DOING", + "nodeType": "EnumValue", + "src": "1307:5:0" + }, + { + "id": 105, + "name": "DONE", + "nodeType": "EnumValue", + "src": "1319:4:0" + }, + { + "id": 106, + "name": "REJECTED", + "nodeType": "EnumValue", + "src": "1330:8:0" + } + ], + "name": "IssueStatus", + "nodeType": "EnumDefinition", + "src": "1258:85:0" + }, + { + "canonicalName": "GitFundedGrant.Role", + "id": 111, + "members": [ + { + "id": 108, + "name": "ADMIN", + "nodeType": "EnumValue", + "src": "1618:5:0" + }, + { + "id": 109, + "name": "MEMBER", + "nodeType": "EnumValue", + "src": "1630:6:0" + }, + { + "id": 110, + "name": "CONTRIBUTOR", + "nodeType": "EnumValue", + "src": "1643:11:0" + } + ], + "name": "Role", + "nodeType": "EnumDefinition", + "src": "1601:60:0" + }, + { + "canonicalName": "GitFundedGrant.User", + "id": 122, + "members": [ + { + "constant": false, + "id": 113, + "name": "exists", + "nodeType": "VariableDeclaration", + "scope": 122, + "src": "1763:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 112, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1763:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 115, + "name": "delegateKey", + "nodeType": "VariableDeclaration", + "scope": 122, + "src": "1781:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 114, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1781:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 117, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 122, + "src": "1807:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 116, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1807:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 119, + "name": "shares", + "nodeType": "VariableDeclaration", + "scope": 122, + "src": "1826:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 118, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1826:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 121, + "name": "role", + "nodeType": "VariableDeclaration", + "scope": 122, + "src": "1847:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Role_$111", + "typeString": "enum GitFundedGrant.Role" + }, + "typeName": { + "contractScope": null, + "id": 120, + "name": "Role", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 111, + "src": "1847:4:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Role_$111", + "typeString": "enum GitFundedGrant.Role" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "User", + "nodeType": "StructDefinition", + "scope": 742, + "src": "1744:118:0", + "visibility": "public" + }, + { + "canonicalName": "GitFundedGrant.Expense", + "id": 135, + "members": [ + { + "constant": false, + "id": 124, + "name": "title", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "1983:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 123, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1983:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 126, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "2002:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 125, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2002:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 128, + "name": "allocated", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "2032:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 127, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2032:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 130, + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "2065:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2065:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 132, + "name": "status", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "2097:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + }, + "typeName": { + "contractScope": null, + "id": 131, + "name": "ExpenseStatus", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 101, + "src": "2097:13:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 134, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 135, + "src": "2124:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 133, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2124:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Expense", + "nodeType": "StructDefinition", + "scope": 742, + "src": "1961:187:0", + "visibility": "public" + }, + { + "canonicalName": "GitFundedGrant.Issue", + "id": 148, + "members": [ + { + "constant": false, + "id": 137, + "name": "title", + "nodeType": "VariableDeclaration", + "scope": 148, + "src": "2261:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 136, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2261:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 139, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 148, + "src": "2280:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 138, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2280:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 141, + "name": "allocated", + "nodeType": "VariableDeclaration", + "scope": 148, + "src": "2310:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 140, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2310:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 143, + "name": "bountyId", + "nodeType": "VariableDeclaration", + "scope": 148, + "src": "2343:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 142, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2343:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 145, + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 148, + "src": "2363:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 144, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2363:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 147, + "name": "status", + "nodeType": "VariableDeclaration", + "scope": 148, + "src": "2395:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + }, + "typeName": { + "contractScope": null, + "id": 146, + "name": "IssueStatus", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 107, + "src": "2395:11:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Issue", + "nodeType": "StructDefinition", + "scope": 742, + "src": "2241:178:0", + "visibility": "public" + }, + { + "constant": false, + "id": 151, + "name": "expenses", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "2427:25:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 149, + "name": "Expense", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 135, + "src": "2427:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage_ptr", + "typeString": "struct GitFundedGrant.Expense" + } + }, + "id": 150, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2427:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage_ptr", + "typeString": "struct GitFundedGrant.Expense[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 154, + "name": "issues", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "2457:21:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 152, + "name": "Issue", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 148, + "src": "2457:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage_ptr", + "typeString": "struct GitFundedGrant.Issue" + } + }, + "id": 153, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2457:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage_ptr", + "typeString": "struct GitFundedGrant.Issue[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 158, + "name": "users", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "2485:37:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_User_$122_storage_$", + "typeString": "mapping(address => struct GitFundedGrant.User)" + }, + "typeName": { + "id": 157, + "keyType": { + "id": 155, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2493:7:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "2485:24:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_User_$122_storage_$", + "typeString": "mapping(address => struct GitFundedGrant.User)" + }, + "valueType": { + "contractScope": null, + "id": 156, + "name": "User", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 122, + "src": "2504:4:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_User_$122_storage_ptr", + "typeString": "struct GitFundedGrant.User" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 160, + "name": "admin", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "2529:28:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 159, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2529:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 162, + "name": "repoId", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "2562:20:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 161, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2562:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 164, + "name": "title", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "2587:19:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 163, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2587:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 166, + "name": "budget", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "2611:11:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 165, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2611:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 168, + "name": "availableFund", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "2641:25:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 167, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2641:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 170, + "name": "live", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "2683:9:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 169, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2683:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 172, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 742, + "src": "2749:20:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 171, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2749:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 183, + "nodeType": "Block", + "src": "2796:71:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "id": 178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 175, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "2813:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2813:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 177, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "2827:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2813:19:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "4e6f7420417574686f7269736564", + "id": 179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2834:16:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_176ed4ceac838408d8da5199a6fb82c380ff1fc682f88be96c591ec96e5f2042", + "typeString": "literal_string \"Not Authorised\"" + }, + "value": "Not Authorised" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_176ed4ceac838408d8da5199a6fb82c380ff1fc682f88be96c591ec96e5f2042", + "typeString": "literal_string \"Not Authorised\"" + } + ], + "id": 174, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "2805:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2805:46:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 181, + "nodeType": "ExpressionStatement", + "src": "2805:46:0" + }, + { + "id": 182, + "nodeType": "PlaceholderStatement", + "src": "2860:1:0" + } + ] + }, + "documentation": null, + "id": 184, + "name": "onlyAdmin", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 173, + "nodeType": "ParameterList", + "parameters": [], + "src": "2796:0:0" + }, + "src": "2776:91:0", + "visibility": "internal" + }, + { + "body": { + "id": 192, + "nodeType": "Block", + "src": "2899:61:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 187, + "name": "active", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 16, + "src": "2914:6:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "50726f6a656374206973206e6f7420616374697665", + "id": 188, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2922:23:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b9940373385e930b80d39946ce71106932213e2e05030240272fd8cb58e2b65e", + "typeString": "literal_string \"Project is not active\"" + }, + "value": "Project is not active" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b9940373385e930b80d39946ce71106932213e2e05030240272fd8cb58e2b65e", + "typeString": "literal_string \"Project is not active\"" + } + ], + "id": 186, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "2906:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 189, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2906:40:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 190, + "nodeType": "ExpressionStatement", + "src": "2906:40:0" + }, + { + "id": 191, + "nodeType": "PlaceholderStatement", + "src": "2953:1:0" + } + ] + }, + "documentation": null, + "id": 193, + "name": "onlyWhenActive", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 185, + "nodeType": "ParameterList", + "parameters": [], + "src": "2896:2:0" + }, + "src": "2873:87:0", + "visibility": "internal" + }, + { + "body": { + "id": 202, + "nodeType": "Block", + "src": "3004:38:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 199, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "3028:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 198, + "name": "selfdestruct", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10419, + "src": "3015:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$", + "typeString": "function (address payable)" + } + }, + "id": 200, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3015:19:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 201, + "nodeType": "ExpressionStatement", + "src": "3015:19:0" + } + ] + }, + "documentation": null, + "id": 203, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 196, + "modifierName": { + "argumentTypes": null, + "id": 195, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 184, + "src": "2994:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "2994:9:0" + } + ], + "name": "destroy", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 194, + "nodeType": "ParameterList", + "parameters": [], + "src": "2984:2:0" + }, + "returnParameters": { + "id": 197, + "nodeType": "ParameterList", + "parameters": [], + "src": "3004:0:0" + }, + "scope": 742, + "src": "2968:74:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 223, + "nodeType": "Block", + "src": "3144:67:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 216, + "name": "repoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 162, + "src": "3161:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "argumentTypes": null, + "id": 217, + "name": "title", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 164, + "src": "3169:5:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + { + "argumentTypes": null, + "id": 218, + "name": "budget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 166, + "src": "3176:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 219, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "3184:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 220, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 160, + "src": "3199:5:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 221, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3160:45:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_string_storage_$_t_string_storage_$_t_uint256_$_t_uint256_$_t_address_payable_$", + "typeString": "tuple(string storage ref,string storage ref,uint256,uint256,address payable)" + } + }, + "functionReturnParameters": 215, + "id": 222, + "nodeType": "Return", + "src": "3153:52:0" + } + ] + }, + "documentation": null, + "id": 224, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "fetchProject", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 204, + "nodeType": "ParameterList", + "parameters": [], + "src": "3069:2:0" + }, + "returnParameters": { + "id": 215, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 206, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 224, + "src": "3093:13:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 205, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3093:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 208, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 224, + "src": "3108:13:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 207, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3108:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 210, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 224, + "src": "3123:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 209, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3123:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 212, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 224, + "src": "3129:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 211, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3129:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 214, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 224, + "src": "3135:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 213, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3135:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3092:51:0" + }, + "scope": 742, + "src": "3048:163:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 279, + "nodeType": "Block", + "src": "3475:267:0", + "statements": [ + { + "assignments": [ + 248 + ], + "declarations": [ + { + "constant": false, + "id": 248, + "name": "expense", + "nodeType": "VariableDeclaration", + "scope": 279, + "src": "3484:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_memory_ptr", + "typeString": "struct GitFundedGrant.Expense" + }, + "typeName": { + "contractScope": null, + "id": 247, + "name": "Expense", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 135, + "src": "3484:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage_ptr", + "typeString": "struct GitFundedGrant.Expense" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 259, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 250, + "name": "_title", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 226, + "src": "3517:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 251, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 228, + "src": "3525:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3534:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 253, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3537:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3537:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 255, + "name": "ExpenseStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "3549:13:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ExpenseStatus_$101_$", + "typeString": "type(enum GitFundedGrant.ExpenseStatus)" + } + }, + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "PENDING", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3549:21:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 257, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3571:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 249, + "name": "Expense", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 135, + "src": "3509:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Expense_$135_storage_ptr_$", + "typeString": "type(struct GitFundedGrant.Expense storage pointer)" + } + }, + "id": 258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3509:64:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_memory", + "typeString": "struct GitFundedGrant.Expense memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3484:89:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 263, + "name": "expense", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 248, + "src": "3594:7:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_memory_ptr", + "typeString": "struct GitFundedGrant.Expense memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Expense_$135_memory_ptr", + "typeString": "struct GitFundedGrant.Expense memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 260, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "3580:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 262, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3580:13:0", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Expense_$135_storage_$returns$_t_uint256_$", + "typeString": "function (struct GitFundedGrant.Expense storage ref) returns (uint256)" + } + }, + "id": 264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3580:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 265, + "nodeType": "ExpressionStatement", + "src": "3580:22:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 269, + "name": "applicant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 230, + "src": "3628:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 270, + "name": "sharesRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 232, + "src": "3638:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 271, + "name": "lootRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 234, + "src": "3654:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 272, + "name": "tributeOffered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 236, + "src": "3668:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 273, + "name": "tributeToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 238, + "src": "3683:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 274, + "name": "paymentRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 240, + "src": "3696:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 275, + "name": "paymentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 242, + "src": "3713:12:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 276, + "name": "details", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 244, + "src": "3726:7:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 266, + "name": "dao", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "3609:3:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + }, + "id": 268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "submitProposal", + "nodeType": "MemberAccess", + "referencedDeclaration": 6726, + "src": "3609:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (address,uint256,uint256,uint256,address,uint256,address,string memory) external returns (uint256)" + } + }, + "id": 277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3609:125:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 278, + "nodeType": "ExpressionStatement", + "src": "3609:125:0" + } + ] + }, + "documentation": null, + "id": 280, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addExpense", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 245, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 226, + "name": "_title", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "3237:20:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 225, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3237:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 228, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "3259:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 227, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3259:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 230, + "name": "applicant", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "3273:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 229, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3273:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 232, + "name": "sharesRequested", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "3292:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 231, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3292:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 234, + "name": "lootRequested", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "3314:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 233, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3314:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 236, + "name": "tributeOffered", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "3334:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 235, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3334:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 238, + "name": "tributeToken", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "3378:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 237, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3378:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 240, + "name": "paymentRequested", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "3400:21:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 239, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3400:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 242, + "name": "paymentToken", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "3423:20:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 241, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3423:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 244, + "name": "details", + "nodeType": "VariableDeclaration", + "scope": 280, + "src": "3445:21:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 243, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3445:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3236:231:0" + }, + "returnParameters": { + "id": 246, + "nodeType": "ParameterList", + "parameters": [], + "src": "3475:0:0" + }, + "scope": 742, + "src": "3217:525:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 345, + "nodeType": "Block", + "src": "3807:675:0", + "statements": [ + { + "assignments": [ + 288 + ], + "declarations": [ + { + "constant": false, + "id": 288, + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 345, + "src": "3816:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 287, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3816:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 293, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 289, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "3829:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 291, + "indexExpression": { + "argumentTypes": null, + "id": 290, + "name": "expenseIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "3838:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3829:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage", + "typeString": "struct GitFundedGrant.Expense storage ref" + } + }, + "id": 292, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "proposalIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 134, + "src": "3829:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3816:49:0" + }, + { + "assignments": [ + 295 + ], + "declarations": [ + { + "constant": false, + "id": 295, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 345, + "src": "4099:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 294, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4099:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 300, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 296, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "4113:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 298, + "indexExpression": { + "argumentTypes": null, + "id": 297, + "name": "expenseIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "4122:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4113:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage", + "typeString": "struct GitFundedGrant.Expense storage ref" + } + }, + "id": 299, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 126, + "src": "4113:29:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4099:43:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + }, + "id": 308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 302, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "4157:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 304, + "indexExpression": { + "argumentTypes": null, + "id": 303, + "name": "expenseIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "4166:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4157:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage", + "typeString": "struct GitFundedGrant.Expense storage ref" + } + }, + "id": 305, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 132, + "src": "4157:29:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 306, + "name": "ExpenseStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "4190:13:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ExpenseStatus_$101_$", + "typeString": "type(enum GitFundedGrant.ExpenseStatus)" + } + }, + "id": 307, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "PENDING", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4190:21:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + } + }, + "src": "4157:54:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 301, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4149:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4149:63:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 310, + "nodeType": "ExpressionStatement", + "src": "4149:63:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 312, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "4227:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 313, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 295, + "src": "4244:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4227:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "46756e6473206e6f7420617661696c61626c65", + "id": 315, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4252:21:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", + "typeString": "literal_string \"Funds not available\"" + }, + "value": "Funds not available" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", + "typeString": "literal_string \"Funds not available\"" + } + ], + "id": 311, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "4219:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4219:55:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 317, + "nodeType": "ExpressionStatement", + "src": "4219:55:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 318, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "4285:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 320, + "indexExpression": { + "argumentTypes": null, + "id": 319, + "name": "expenseIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "4294:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4285:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage", + "typeString": "struct GitFundedGrant.Expense storage ref" + } + }, + "id": 321, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 132, + "src": "4285:29:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 322, + "name": "ExpenseStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "4317:13:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ExpenseStatus_$101_$", + "typeString": "type(enum GitFundedGrant.ExpenseStatus)" + } + }, + "id": 323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "ACCEPTED", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4317:22:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + } + }, + "src": "4285:54:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + } + }, + "id": 325, + "nodeType": "ExpressionStatement", + "src": "4285:54:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 326, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "4346:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 327, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 295, + "src": "4363:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4346:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 329, + "nodeType": "ExpressionStatement", + "src": "4346:23:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 330, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "4376:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 332, + "indexExpression": { + "argumentTypes": null, + "id": 331, + "name": "expenseIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "4385:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4376:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage", + "typeString": "struct GitFundedGrant.Expense storage ref" + } + }, + "id": 333, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "allocated", + "nodeType": "MemberAccess", + "referencedDeclaration": 128, + "src": "4376:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 334, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 295, + "src": "4412:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4376:42:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 336, + "nodeType": "ExpressionStatement", + "src": "4376:42:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 342, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 295, + "src": "4467:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 337, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "4425:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 339, + "indexExpression": { + "argumentTypes": null, + "id": 338, + "name": "expenseIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 282, + "src": "4434:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4425:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage", + "typeString": "struct GitFundedGrant.Expense storage ref" + } + }, + "id": 340, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "recipient", + "nodeType": "MemberAccess", + "referencedDeclaration": 130, + "src": "4425:32:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4425:41:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4425:49:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 344, + "nodeType": "ExpressionStatement", + "src": "4425:49:0" + } + ] + }, + "documentation": null, + "id": 346, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 285, + "modifierName": { + "argumentTypes": null, + "id": 284, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 184, + "src": "3790:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "3790:9:0" + } + ], + "name": "acceptExpense", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 283, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 282, + "name": "expenseIndex", + "nodeType": "VariableDeclaration", + "scope": 346, + "src": "3771:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 281, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3771:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3770:19:0" + }, + "returnParameters": { + "id": 286, + "nodeType": "ParameterList", + "parameters": [], + "src": "3807:0:0" + }, + "scope": 742, + "src": "3748:734:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 361, + "nodeType": "Block", + "src": "4537:86:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 351, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "4544:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 353, + "indexExpression": { + "argumentTypes": null, + "id": 352, + "name": "expenseIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 348, + "src": "4553:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4544:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage", + "typeString": "struct GitFundedGrant.Expense storage ref" + } + }, + "id": 354, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "proposalIndex", + "nodeType": "MemberAccess", + "referencedDeclaration": 134, + "src": "4544:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 357, + "name": "expenseIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 348, + "src": "4604:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 355, + "name": "dao", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "4584:3:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Governance_$7480", + "typeString": "contract Governance" + } + }, + "id": 356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sponsorProposal", + "nodeType": "MemberAccess", + "referencedDeclaration": 6932, + "src": "4584:19:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) external returns (uint256)" + } + }, + "id": 358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4584:33:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4544:73:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 360, + "nodeType": "ExpressionStatement", + "src": "4544:73:0" + } + ] + }, + "documentation": null, + "id": 362, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sponsorExpense", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 349, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 348, + "name": "expenseIndex", + "nodeType": "VariableDeclaration", + "scope": 362, + "src": "4511:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 347, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4511:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4510:19:0" + }, + "returnParameters": { + "id": 350, + "nodeType": "ParameterList", + "parameters": [], + "src": "4537:0:0" + }, + "scope": 742, + "src": "4486:137:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 415, + "nodeType": "Block", + "src": "4790:354:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + }, + "id": 378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 372, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "4807:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 374, + "indexExpression": { + "argumentTypes": null, + "id": 373, + "name": "expenseIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 364, + "src": "4816:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4807:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage", + "typeString": "struct GitFundedGrant.Expense storage ref" + } + }, + "id": 375, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 132, + "src": "4807:29:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 376, + "name": "ExpenseStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "4840:13:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ExpenseStatus_$101_$", + "typeString": "type(enum GitFundedGrant.ExpenseStatus)" + } + }, + "id": 377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "PENDING", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4840:21:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + } + }, + "src": "4807:54:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 371, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4799:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4799:63:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 380, + "nodeType": "ExpressionStatement", + "src": "4799:63:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 382, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "4877:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 383, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 366, + "src": "4894:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4877:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "46756e6473206e6f7420617661696c61626c65", + "id": 385, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4902:21:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", + "typeString": "literal_string \"Funds not available\"" + }, + "value": "Funds not available" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", + "typeString": "literal_string \"Funds not available\"" + } + ], + "id": 381, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "4869:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4869:55:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 387, + "nodeType": "ExpressionStatement", + "src": "4869:55:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 388, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "4935:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 390, + "indexExpression": { + "argumentTypes": null, + "id": 389, + "name": "expenseIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 364, + "src": "4944:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4935:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage", + "typeString": "struct GitFundedGrant.Expense storage ref" + } + }, + "id": 391, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 132, + "src": "4935:29:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 392, + "name": "ExpenseStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 101, + "src": "4967:13:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_ExpenseStatus_$101_$", + "typeString": "type(enum GitFundedGrant.ExpenseStatus)" + } + }, + "id": 393, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "PARTIALLY_ACCEPTED", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "4967:32:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + } + }, + "src": "4935:64:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_ExpenseStatus_$101", + "typeString": "enum GitFundedGrant.ExpenseStatus" + } + }, + "id": 395, + "nodeType": "ExpressionStatement", + "src": "4935:64:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 396, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "5006:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 397, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 366, + "src": "5023:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5006:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 399, + "nodeType": "ExpressionStatement", + "src": "5006:23:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 405, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 400, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "5036:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 402, + "indexExpression": { + "argumentTypes": null, + "id": 401, + "name": "expenseIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 364, + "src": "5045:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5036:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage", + "typeString": "struct GitFundedGrant.Expense storage ref" + } + }, + "id": 403, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "allocated", + "nodeType": "MemberAccess", + "referencedDeclaration": 128, + "src": "5036:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 404, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 366, + "src": "5072:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5036:42:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 406, + "nodeType": "ExpressionStatement", + "src": "5036:42:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 412, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 366, + "src": "5127:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 407, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "5085:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 409, + "indexExpression": { + "argumentTypes": null, + "id": 408, + "name": "expenseIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 364, + "src": "5094:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5085:22:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Expense_$135_storage", + "typeString": "struct GitFundedGrant.Expense storage ref" + } + }, + "id": 410, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "recipient", + "nodeType": "MemberAccess", + "referencedDeclaration": 130, + "src": "5085:32:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5085:41:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5085:49:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 414, + "nodeType": "ExpressionStatement", + "src": "5085:49:0" + } + ] + }, + "documentation": null, + "id": 416, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 369, + "modifierName": { + "argumentTypes": null, + "id": 368, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 184, + "src": "4773:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "4773:9:0" + } + ], + "name": "acceptPartialExpense", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 367, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 364, + "name": "expenseIndex", + "nodeType": "VariableDeclaration", + "scope": 416, + "src": "4741:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 363, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4741:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 366, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 416, + "src": "4760:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 365, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4760:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4740:32:0" + }, + "returnParameters": { + "id": 370, + "nodeType": "ParameterList", + "parameters": [], + "src": "4790:0:0" + }, + "scope": 742, + "src": "4711:433:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 427, + "nodeType": "Block", + "src": "5190:63:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 419, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "5199:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 422, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "5233:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 423, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5233:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 420, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "5215:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "5215:17:0", + "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": 424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5215:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5199:44:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 426, + "nodeType": "ExpressionStatement", + "src": "5199:44:0" + } + ] + }, + "documentation": null, + "id": 428, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "fundProject", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 417, + "nodeType": "ParameterList", + "parameters": [], + "src": "5172:2:0" + }, + "returnParameters": { + "id": 418, + "nodeType": "ParameterList", + "parameters": [], + "src": "5190:0:0" + }, + "scope": 742, + "src": "5152:101:0", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 450, + "nodeType": "Block", + "src": "5345:91:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 437, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "5354:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 440, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 432, + "src": "5388:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 438, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "5370:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "5370:17:0", + "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": 441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5370:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5354:40:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 443, + "nodeType": "ExpressionStatement", + "src": "5354:40:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 447, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 432, + "src": "5420:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 444, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 430, + "src": "5401:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5401:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5401:25:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 449, + "nodeType": "ExpressionStatement", + "src": "5401:25:0" + } + ] + }, + "documentation": null, + "id": 451, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 435, + "modifierName": { + "argumentTypes": null, + "id": 434, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 184, + "src": "5320:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "5320:9:0" + } + ], + "name": "transferFund", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 433, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 430, + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 451, + "src": "5281:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 429, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5281:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 432, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 451, + "src": "5308:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 431, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5308:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5280:39:0" + }, + "returnParameters": { + "id": 436, + "nodeType": "ParameterList", + "parameters": [], + "src": "5345:0:0" + }, + "scope": 742, + "src": "5259:177:0", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 459, + "nodeType": "Block", + "src": "5499:35:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 456, + "name": "expenses", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 151, + "src": "5513:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" + } + }, + "id": 457, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5513:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 455, + "id": 458, + "nodeType": "Return", + "src": "5506:22:0" + } + ] + }, + "documentation": null, + "id": 460, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getExpensesCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 452, + "nodeType": "ParameterList", + "parameters": [], + "src": "5469:2:0" + }, + "returnParameters": { + "id": 455, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 454, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 460, + "src": "5493:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 453, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5493:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5492:6:0" + }, + "scope": 742, + "src": "5444:90:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 468, + "nodeType": "Block", + "src": "5593:33:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 465, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "5607:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 466, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5607:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 464, + "id": 467, + "nodeType": "Return", + "src": "5600:20:0" + } + ] + }, + "documentation": null, + "id": 469, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getIssuesCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 461, + "nodeType": "ParameterList", + "parameters": [], + "src": "5563:2:0" + }, + "returnParameters": { + "id": 464, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 463, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 469, + "src": "5587:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 462, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5587:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5586:6:0" + }, + "scope": 742, + "src": "5540:86:0", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 495, + "nodeType": "Block", + "src": "5818:134:0", + "statements": [ + { + "assignments": [ + 477 + ], + "declarations": [ + { + "constant": false, + "id": 477, + "name": "issue", + "nodeType": "VariableDeclaration", + "scope": 495, + "src": "5831:18:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_memory_ptr", + "typeString": "struct GitFundedGrant.Issue" + }, + "typeName": { + "contractScope": null, + "id": 476, + "name": "Issue", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 148, + "src": "5831:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage_ptr", + "typeString": "struct GitFundedGrant.Issue" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 488, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 479, + "name": "_title", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 471, + "src": "5858:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 480, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 473, + "src": "5866:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 481, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5875:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 482, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5878:1:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 483, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "5881:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 484, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5881:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 485, + "name": "IssueStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 107, + "src": "5893:11:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_IssueStatus_$107_$", + "typeString": "type(enum GitFundedGrant.IssueStatus)" + } + }, + "id": 486, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "BACKLOG", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5893:19:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + ], + "id": 478, + "name": "Issue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 148, + "src": "5852:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Issue_$148_storage_ptr_$", + "typeString": "type(struct GitFundedGrant.Issue storage pointer)" + } + }, + "id": 487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5852:61:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_memory", + "typeString": "struct GitFundedGrant.Issue memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5831:82:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 492, + "name": "issue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 477, + "src": "5936:5:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_memory_ptr", + "typeString": "struct GitFundedGrant.Issue memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Issue_$148_memory_ptr", + "typeString": "struct GitFundedGrant.Issue memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 489, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "5924:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5924:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Issue_$148_storage_$returns$_t_uint256_$", + "typeString": "function (struct GitFundedGrant.Issue storage ref) returns (uint256)" + } + }, + "id": 493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5924:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 494, + "nodeType": "ExpressionStatement", + "src": "5924:18:0" + } + ] + }, + "documentation": null, + "id": 496, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addIssue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 474, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 471, + "name": "_title", + "nodeType": "VariableDeclaration", + "scope": 496, + "src": "5775:20:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 470, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5775:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 473, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 496, + "src": "5797:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 472, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5797:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5774:36:0" + }, + "returnParameters": { + "id": 475, + "nodeType": "ParameterList", + "parameters": [], + "src": "5818:0:0" + }, + "scope": 742, + "src": "5757:195:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 581, + "nodeType": "Block", + "src": "6348:494:0", + "statements": [ + { + "assignments": [ + 522 + ], + "declarations": [ + { + "constant": false, + "id": 522, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 581, + "src": "6361:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 521, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6361:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 527, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 523, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "6375:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 525, + "indexExpression": { + "argumentTypes": null, + "id": 524, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "6382:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6375:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 526, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 139, + "src": "6375:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6361:39:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + }, + "id": 535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 529, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "6419:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 531, + "indexExpression": { + "argumentTypes": null, + "id": 530, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "6426:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6419:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 532, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 147, + "src": "6419:25:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 533, + "name": "IssueStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 107, + "src": "6448:11:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_IssueStatus_$107_$", + "typeString": "type(enum GitFundedGrant.IssueStatus)" + } + }, + "id": 534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "BACKLOG", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6448:19:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "src": "6419:48:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 528, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "6411:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6411:57:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 537, + "nodeType": "ExpressionStatement", + "src": "6411:57:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 539, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "6487:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 540, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 522, + "src": "6504:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6487:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "46756e6473206e6f7420617661696c61626c65", + "id": 542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6512:21:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", + "typeString": "literal_string \"Funds not available\"" + }, + "value": "Funds not available" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", + "typeString": "literal_string \"Funds not available\"" + } + ], + "id": 538, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "6479:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6479:55:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 544, + "nodeType": "ExpressionStatement", + "src": "6479:55:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 545, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "6549:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 547, + "indexExpression": { + "argumentTypes": null, + "id": 546, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "6556:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6549:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 548, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 147, + "src": "6549:25:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 549, + "name": "IssueStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 107, + "src": "6577:11:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_IssueStatus_$107_$", + "typeString": "type(enum GitFundedGrant.IssueStatus)" + } + }, + "id": 550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "TODO", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6577:16:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "src": "6549:44:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "id": 552, + "nodeType": "ExpressionStatement", + "src": "6549:44:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 553, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "6604:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 554, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 522, + "src": "6621:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6604:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 556, + "nodeType": "ExpressionStatement", + "src": "6604:23:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 557, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "6638:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 559, + "indexExpression": { + "argumentTypes": null, + "id": 558, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "6645:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6638:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 560, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "allocated", + "nodeType": "MemberAccess", + "referencedDeclaration": 141, + "src": "6638:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 561, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 522, + "src": "6670:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6638:38:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 563, + "nodeType": "ExpressionStatement", + "src": "6638:38:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 564, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "6689:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 566, + "indexExpression": { + "argumentTypes": null, + "id": 565, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 498, + "src": "6696:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6689:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 567, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "bountyId", + "nodeType": "MemberAccess", + "referencedDeclaration": 143, + "src": "6689:27:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 570, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 500, + "src": "6738:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 571, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 503, + "src": "6749:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 572, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 506, + "src": "6772:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 573, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 508, + "src": "6784:5:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 574, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 510, + "src": "6791:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 575, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 512, + "src": "6802:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 576, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 514, + "src": "6810:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 577, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 516, + "src": "6825:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 568, + "name": "ib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23, + "src": "6719:2:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", + "typeString": "contract iBountiesMetaTxRelayer" + } + }, + "id": 569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "metaIssueBounty", + "nodeType": "MemberAccess", + "referencedDeclaration": 4537, + "src": "6719:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bytes memory,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256) external returns (uint256)" + } + }, + "id": 578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6719:113:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6689:143:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 580, + "nodeType": "ExpressionStatement", + "src": "6689:143:0" + } + ] + }, + "documentation": null, + "id": 582, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 519, + "modifierName": { + "argumentTypes": null, + "id": 518, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 184, + "src": "6331:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "6331:9:0" + } + ], + "name": "acceptIssueWithNoFund", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 517, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 498, + "name": "issueIndex", + "nodeType": "VariableDeclaration", + "scope": 582, + "src": "6036:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 497, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6036:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 500, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 582, + "src": "6066:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 499, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6066:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 503, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 582, + "src": "6103:33:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 501, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6103:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 502, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6103:17:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 506, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 582, + "src": "6151:27:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 504, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6151:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 505, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6151:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 508, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 582, + "src": "6193:19:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 507, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6193:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 510, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 582, + "src": "6227:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 509, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6227:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 512, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 582, + "src": "6256:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 511, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6256:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 514, + "name": "_tokenVersion", + "nodeType": "VariableDeclaration", + "scope": 582, + "src": "6285:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 513, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6285:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 516, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 582, + "src": "6318:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 515, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6318:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6035:295:0" + }, + "returnParameters": { + "id": 520, + "nodeType": "ParameterList", + "parameters": [], + "src": "6348:0:0" + }, + "scope": 742, + "src": "6005:837:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 674, + "nodeType": "Block", + "src": "7228:522:0", + "statements": [ + { + "assignments": [ + 610 + ], + "declarations": [ + { + "constant": false, + "id": 610, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 674, + "src": "7237:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 609, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7237:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 615, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 611, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "7251:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 613, + "indexExpression": { + "argumentTypes": null, + "id": 612, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 584, + "src": "7258:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7251:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 614, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 139, + "src": "7251:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7237:39:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + }, + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 617, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "7291:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 619, + "indexExpression": { + "argumentTypes": null, + "id": 618, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 584, + "src": "7298:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7291:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 620, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 147, + "src": "7291:25:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 621, + "name": "IssueStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 107, + "src": "7320:11:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_IssueStatus_$107_$", + "typeString": "type(enum GitFundedGrant.IssueStatus)" + } + }, + "id": 622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "BACKLOG", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7320:19:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "src": "7291:48:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "50726f6a656374206973206e6f7420696e206261636b6c6f67", + "id": 624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7341:27:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e017887d840fc949a9b314cdaa0d1854d946edb479801781961ce41ea66163a1", + "typeString": "literal_string \"Project is not in backlog\"" + }, + "value": "Project is not in backlog" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e017887d840fc949a9b314cdaa0d1854d946edb479801781961ce41ea66163a1", + "typeString": "literal_string \"Project is not in backlog\"" + } + ], + "id": 616, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7283:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 625, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7283:86:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 626, + "nodeType": "ExpressionStatement", + "src": "7283:86:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 630, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 628, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "7384:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 629, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 610, + "src": "7401:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7384:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "46756e6473206e6f7420617661696c61626c65", + "id": 631, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7409:21:0", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", + "typeString": "literal_string \"Funds not available\"" + }, + "value": "Funds not available" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", + "typeString": "literal_string \"Funds not available\"" + } + ], + "id": 627, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7376:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7376:55:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 633, + "nodeType": "ExpressionStatement", + "src": "7376:55:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 634, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "7442:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 636, + "indexExpression": { + "argumentTypes": null, + "id": 635, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 584, + "src": "7449:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7442:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 637, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 147, + "src": "7442:25:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 638, + "name": "IssueStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 107, + "src": "7470:11:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_IssueStatus_$107_$", + "typeString": "type(enum GitFundedGrant.IssueStatus)" + } + }, + "id": 639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "TODO", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7470:16:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "src": "7442:44:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "id": 641, + "nodeType": "ExpressionStatement", + "src": "7442:44:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 644, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 642, + "name": "availableFund", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 168, + "src": "7493:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 643, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 610, + "src": "7510:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7493:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 645, + "nodeType": "ExpressionStatement", + "src": "7493:23:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 646, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "7523:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 648, + "indexExpression": { + "argumentTypes": null, + "id": 647, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 584, + "src": "7530:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7523:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 649, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "allocated", + "nodeType": "MemberAccess", + "referencedDeclaration": 141, + "src": "7523:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 650, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 610, + "src": "7555:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7523:38:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 652, + "nodeType": "ExpressionStatement", + "src": "7523:38:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 653, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "7570:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 655, + "indexExpression": { + "argumentTypes": null, + "id": 654, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 584, + "src": "7577:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7570:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 656, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "bountyId", + "nodeType": "MemberAccess", + "referencedDeclaration": 143, + "src": "7570:27:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 662, + "name": "signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "7638:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 663, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 589, + "src": "7649:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 664, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "7666:10:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 665, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 594, + "src": "7678:5:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 666, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 596, + "src": "7685:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 667, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 598, + "src": "7696:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 668, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 600, + "src": "7704:13:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 669, + "name": "_depositAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 602, + "src": "7719:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 670, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 604, + "src": "7735:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "arguments": [ + { + "argumentTypes": null, + "id": 660, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 610, + "src": "7630:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 657, + "name": "ib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23, + "src": "7598:2:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", + "typeString": "contract iBountiesMetaTxRelayer" + } + }, + "id": 658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "metaIssueAndContribute", + "nodeType": "MemberAccess", + "referencedDeclaration": 4562, + "src": "7598:25:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_bytes_memory_ptr_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (bytes memory,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256,uint256) payable external returns (uint256)" + } + }, + "id": 659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7598:31:0", + "typeDescriptions": { + "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_bytes_memory_ptr_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$value_$", + "typeString": "function (uint256) returns (function (bytes memory,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256,uint256) payable external returns (uint256))" + } + }, + "id": 661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7598:39:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_bytes_memory_ptr_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$value", + "typeString": "function (bytes memory,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256,uint256) payable external returns (uint256)" + } + }, + "id": 671, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7598:144:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7570:172:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 673, + "nodeType": "ExpressionStatement", + "src": "7570:172:0" + } + ] + }, + "documentation": null, + "id": 675, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 607, + "modifierName": { + "argumentTypes": null, + "id": 606, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 184, + "src": "7203:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7203:9:0" + } + ], + "name": "acceptIssue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 605, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 584, + "name": "issueIndex", + "nodeType": "VariableDeclaration", + "scope": 675, + "src": "6946:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 583, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6946:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 586, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 675, + "src": "6968:22:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 585, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6968:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 589, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 675, + "src": "6997:33:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 587, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6997:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 588, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6997:17:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 592, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 675, + "src": "7037:27:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 590, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7037:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 591, + "length": null, + "nodeType": "ArrayTypeName", + "src": "7037:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 594, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 675, + "src": "7071:19:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 593, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7071:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 596, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 675, + "src": "7097:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 595, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7097:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 598, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 675, + "src": "7118:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7118:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 600, + "name": "_tokenVersion", + "nodeType": "VariableDeclaration", + "scope": 675, + "src": "7139:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 599, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7139:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 602, + "name": "_depositAmount", + "nodeType": "VariableDeclaration", + "scope": 675, + "src": "7164:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 601, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7164:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 604, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 675, + "src": "7190:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 603, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7190:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6945:257:0" + }, + "returnParameters": { + "id": 608, + "nodeType": "ParameterList", + "parameters": [], + "src": "7228:0:0" + }, + "scope": 742, + "src": "6925:825:0", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 691, + "nodeType": "Block", + "src": "7817:56:0", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 686, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10439, + "src": "7853:4:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GitFundedGrant_$742", + "typeString": "contract GitFundedGrant" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_GitFundedGrant_$742", + "typeString": "contract GitFundedGrant" + } + ], + "id": 685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7845:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7845:13:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7845:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 682, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 677, + "src": "7826:9:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7826:18:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 689, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7826:41:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 690, + "nodeType": "ExpressionStatement", + "src": "7826:41:0" + } + ] + }, + "documentation": null, + "id": 692, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 680, + "modifierName": { + "argumentTypes": null, + "id": 679, + "name": "onlyAdmin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 184, + "src": "7807:9:0", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7807:9:0" + } + ], + "name": "swipe", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 677, + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 692, + "src": "7771:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 676, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7771:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7770:27:0" + }, + "returnParameters": { + "id": 681, + "nodeType": "ParameterList", + "parameters": [], + "src": "7817:0:0" + }, + "scope": 742, + "src": "7756:117:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 740, + "nodeType": "Block", + "src": "7996:254:0", + "statements": [ + { + "assignments": [ + 704 + ], + "declarations": [ + { + "constant": false, + "id": 704, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 740, + "src": "8007:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 703, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8007:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 709, + "initialValue": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 705, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "8022:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 707, + "indexExpression": { + "argumentTypes": null, + "id": 706, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 694, + "src": "8029:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8022:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 708, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "bountyId", + "nodeType": "MemberAccess", + "referencedDeclaration": 143, + "src": "8022:27:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8007:42:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + }, + "id": 717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 711, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "8068:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 713, + "indexExpression": { + "argumentTypes": null, + "id": 712, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 694, + "src": "8075:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8068:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 714, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "status", + "nodeType": "MemberAccess", + "referencedDeclaration": 147, + "src": "8068:25:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 715, + "name": "IssueStatus", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 107, + "src": "8097:11:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_IssueStatus_$107_$", + "typeString": "type(enum GitFundedGrant.IssueStatus)" + } + }, + "id": 716, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "TODO", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8097:16:0", + "typeDescriptions": { + "typeIdentifier": "t_enum$_IssueStatus_$107", + "typeString": "enum GitFundedGrant.IssueStatus" + } + }, + "src": "8068:45:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 710, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "8060:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8060:54:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 719, + "nodeType": "ExpressionStatement", + "src": "8060:54:0" + }, + { + "expression": { + "argumentTypes": null, + "id": 725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 720, + "name": "issues", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 154, + "src": "8123:6:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", + "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" + } + }, + "id": 722, + "indexExpression": { + "argumentTypes": null, + "id": 721, + "name": "issueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 694, + "src": "8130:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8123:18:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Issue_$148_storage", + "typeString": "struct GitFundedGrant.Issue storage ref" + } + }, + "id": 723, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "allocated", + "nodeType": "MemberAccess", + "referencedDeclaration": 141, + "src": "8123:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "id": 724, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 698, + "src": "8156:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8123:40:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 726, + "nodeType": "ExpressionStatement", + "src": "8123:40:0" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 734, + "name": "_signature", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 696, + "src": "8205:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "argumentTypes": null, + "id": 735, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 704, + "src": "8216:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 736, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 698, + "src": "8226:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 737, + "name": "_nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 700, + "src": "8234:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "arguments": [ + { + "argumentTypes": null, + "id": 732, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 698, + "src": "8196:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 727, + "name": "ib", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 23, + "src": "8172:2:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", + "typeString": "contract iBountiesMetaTxRelayer" + } + }, + "id": 730, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "metaContribute", + "nodeType": "MemberAccess", + "referencedDeclaration": 4573, + "src": "8172:17:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (bytes memory,uint256,uint256,uint256) payable external" + } + }, + "id": 731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8172:23:0", + "typeDescriptions": { + "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$value_$", + "typeString": "function (uint256) returns (function (bytes memory,uint256,uint256,uint256) payable external)" + } + }, + "id": 733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8172:32:0", + "typeDescriptions": { + "typeIdentifier": "t_function_external_payable$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$value", + "typeString": "function (bytes memory,uint256,uint256,uint256) payable external" + } + }, + "id": 738, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8172:69:0", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 739, + "nodeType": "ExpressionStatement", + "src": "8172:69:0" + } + ] + }, + "documentation": null, + "id": 741, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "fundIssue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 701, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 694, + "name": "issueIndex", + "nodeType": "VariableDeclaration", + "scope": 741, + "src": "7905:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 693, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7905:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 696, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 741, + "src": "7927:23:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 695, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7927:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 698, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 741, + "src": "7957:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 697, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7957:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 700, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 741, + "src": "7976:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 699, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7976:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7898:90:0" + }, + "returnParameters": { + "id": 702, + "nodeType": "ParameterList", + "parameters": [], + "src": "7996:0:0" + }, + "scope": 742, + "src": "7880:370:0", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 743, + "src": "183:8070:0" + } + ], + "src": "0:8255:0" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:19.745Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/contracts/GitFundedGrantFactory.json b/src/contracts/GitFundedGrantFactory.json new file mode 100644 index 0000000..39dec81 --- /dev/null +++ b/src/contracts/GitFundedGrantFactory.json @@ -0,0 +1,3197 @@ +{ + "contractName": "GitFundedGrantFactory", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "projectCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + }, + { + "name": "", + "type": "uint256" + } + ], + "name": "projects", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_bountyAddress", + "type": "address" + }, + { + "name": "_tokenAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "repoId", + "type": "string" + }, + { + "indexed": false, + "name": "title", + "type": "string" + }, + { + "indexed": false, + "name": "budget", + "type": "uint256" + }, + { + "indexed": false, + "name": "availableFund", + "type": "uint256" + }, + { + "indexed": false, + "name": "admin", + "type": "address" + } + ], + "name": "projectAdded", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "repoId", + "type": "string" + }, + { + "name": "title", + "type": "string" + }, + { + "name": "budget", + "type": "uint256" + } + ], + "name": "newProject", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getContractAddress", + "outputs": [ + { + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getProjectsCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"getContractAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"projectCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"projects\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"repoId\",\"type\":\"string\"},{\"name\":\"title\",\"type\":\"string\"},{\"name\":\"budget\",\"type\":\"uint256\"}],\"name\":\"newProject\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getProjectsCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_bountyAddress\",\"type\":\"address\"},{\"name\":\"_tokenAddress\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"repoId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"title\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"budget\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"availableFund\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"projectAdded\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/GitFundedGrantFactory.sol\":\"GitFundedGrantFactory\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/GitFundedGrant.sol\":{\"keccak256\":\"0x8e4e4e93ef49625069d01d78121332f364556da1659eb2d8fb66315620da1e80\",\"urls\":[\"bzzr://b7351fd42bacdcb7066bc03507f0f3d41c71357d27f7bc21ffea0fa6aeaf7962\",\"dweb:/ipfs/QmPfSjuKcowi3F6YMr9a8qrsCLvcyFx5NacP6yBoJtwFKo\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/GitFundedGrantFactory.sol\":{\"keccak256\":\"0x4335d74031b142c4432f5fda5e4a69e730509ac24d63be8afecf210d1de78380\",\"urls\":[\"bzzr://3a9573f5d08b544768a55274b7e5dc79e540babf774d9a83c29c63f5062d7dc9\",\"dweb:/ipfs/QmbCzeHPeLQwXaSegfwdmT6itik8FeWPNnk29z3ajDrMgN\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/iBountiesMetaTxRelayer.sol\":{\"keccak256\":\"0x2c7a62683ee97ced4a5d82a5d24524d49e4e0ff8a8c7a4586e6450e590e6f917\",\"urls\":[\"bzzr://b01b873559523fad3de083f16b2d265f41de56a4b2d8d13955ec5c6e79a0d53f\",\"dweb:/ipfs/QmUkBDYA6czW2yFAypaw6EwreqN3795GYaG8PsYh2w5SC3\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Governance.sol\":{\"keccak256\":\"0x6008b164e82e38bbae1f88843ec8963a73a722963b941dd9bde72d4a0e849d80\",\"urls\":[\"bzzr://310d76b367fcb8cd744884b5e57e2a08ee9995ab845909d50f11f14c5f530273\",\"dweb:/ipfs/QmRVebN3g2R9R7HENS45ctw5Cn4wGLr65f8nGjtYkPW2jb\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol\":{\"keccak256\":\"0xa8ace5b5ac3322c9019470d2a1ad1342ef5d984da3d4818554e703b65ceda667\",\"urls\":[\"bzzr://b38168eab9d05f21a7576958f33878d9d31877a12f1f14bda390f3f4fbdaa2a4\",\"dweb:/ipfs/QmWa9cX9gzUkyM9yVwfhd6FsSeh1jpV62sBzdGJm6jRPRX\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/iGovernance.sol\":{\"keccak256\":\"0x2e3ecc4629568c30886c401376a98f196c7d8dafbf1dbce95296e0ca553cb85f\",\"urls\":[\"bzzr://a69865ec2501d5c618498843782e9c014b0903e4a6dc79511303fc5c53372534\",\"dweb:/ipfs/QmWX6FLo2pNaQQXfyVebLSc2VAi4yJNqiVLNSMUcouVyZa\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol\":{\"keccak256\":\"0x8d08add2e57d2885eb9cda96d2ce54056015247de9adfea8e13c78bb2d9233f2\",\"urls\":[\"bzzr://24804e36486f935a9e98bf507193d1b160db755edba6c9d124a894aef3741ada\",\"dweb:/ipfs/QmauQVeYbGgqJDNxKAceFj1hFD1gfCfAXNBA8vCh3aGYKA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", + "bytecode": "0x60806040526000805534801561001457600080fd5b506040516130813803806130818339818101604052604081101561003757600080fd5b508051602090910151600180546001600160a01b039384166001600160a01b031991821617909155600280549390921692169190911790556130038061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806332a2c5d01461005c57806336fbad26146100b45780637ecdd3c5146100ce578063954db47414610116578063e4a8f18b14610245575b600080fd5b61006461024d565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156100a0578181015183820152602001610088565b505050509050019250505060405180910390f35b6100bc6102b8565b60408051918252519081900360200190f35b6100fa600480360360408110156100e457600080fd5b506001600160a01b0381351690602001356102be565b604080516001600160a01b039092168252519081900360200190f35b6100fa6004803603606081101561012c57600080fd5b81019060208101813564010000000081111561014757600080fd5b82018360208201111561015957600080fd5b8035906020019184600183028401116401000000008311171561017b57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156101ce57600080fd5b8201836020820111156101e057600080fd5b8035906020019184600183028401116401000000008311171561020257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050913592506102f3915050565b6100bc61059c565b336000908152600360209081526040918290208054835181840281018401909452808452606093928301828280156102ae57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610290575b5050505050905090565b60005481565b600360205281600052604060002081815481106102d757fe5b6000918252602090912001546001600160a01b03169150829050565b600154600254604051600092839287928792879233926001600160a01b039283169290911690610322906105a2565b604081018590526001600160a01b0380851660608301528381166080830152821660a082015260c08082528751908201528651819060208083019160e08401918b019080838360005b8381101561038357818101518382015260200161036b565b50505050905090810190601f1680156103b05780820380516001836020036101000a031916815260200191505b5083810382528851815288516020918201918a019080838360005b838110156103e35781810151838201526020016103cb565b50505050905090810190601f1680156104105780820380516001836020036101000a031916815260200191505b5098505050505050505050604051809103906000f080158015610437573d6000803e3d6000fd5b503360008181526003602090815260408083208054600180820183559185528385200180546001600160a01b0319166001600160a01b03881617905583540183558051908101889052606081018390526080810184905260a08082528a519082015289519495507fa4802727cd9ec0d1fcbf51f260983cba0fd67d1ce8b069f1d8d2ddeb0e8adbf3948a948a948a949093919282918281019160c08401918a01908083838a5b838110156104f55781810151838201526020016104dd565b50505050905090810190601f1680156105225780820380516001836020036101000a031916815260200191505b50838103825287518152875160209182019189019080838360005b8381101561055557818101518382015260200161053d565b50505050905090810190601f1680156105825780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a1949350505050565b60005490565b612a1f806105b08339019056fe6080604052600160008181558180556003805460ff19169092179091556004553480156200002c57600080fd5b5060405162002a1f38038062002a1f833981810160405260c08110156200005257600080fd5b8101908080516401000000008111156200006b57600080fd5b820160208101848111156200007f57600080fd5b81516401000000008111828201871017156200009a57600080fd5b50509291906020018051640100000000811115620000b757600080fd5b82016020810184811115620000cb57600080fd5b8151640100000000811182820187101715620000e657600080fd5b5050602080830151604084015160608501516080909501518851949750919550939290916200011b91600c91890190620001a4565b5084516200013190600d906020880190620001a4565b5050600e92909255600b80546001600160a01b039283166001600160a01b0319918216179091556000600f556010805460068054958516959093169490941790915561010060ff19909316600117838104909216909202610100600160a81b031990911617905550504260025562000249565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001e757805160ff191683800117855562000217565b8280016001018555821562000217579182015b8281111562000217578251825591602001919060010190620001fa565b506200022592915062000229565b5090565b6200024691905b8082111562000225576000815560010162000230565b90565b6127c680620002596000396000f3fe6080604052600436106101b75760003560e01c80637436f3dc116100ec578063c4d66de81161008a578063d63dc66111610064578063d63dc66114610d21578063dff3ad6914610d29578063e2dc35e014610ea0578063f851a44014610ecc576101b7565b8063c4d66de814610ca6578063cce7db5814610cd9578063d0cb3cd114610d0c576101b7565b806391fc17b4116100c657806391fc17b414610911578063a87430ba14610926578063a9a74bd6146109a6578063af4afe0a14610c02576101b7565b80637436f3dc1461081a57806383197ef01461082f5780638c3006c714610844576101b7565b806322dffcbb1161015957806350b594471161013357806350b594471461071e57806354fd4d501461073357806360d41290146107485780636415921d1461075d576101b7565b806322dffcbb146105b757806325a287ce1461066a5780634a79d50c14610694576101b7565b80630c3d5157116101955780630c3d5157146105215780630d0f3f5d146105485780630daded9514610578578063125ede9d1461058d576101b7565b8063013e9128146101bc57806302fb0c5e1461041357806304e15de51461043c575b600080fd5b61041160048036036101408110156101d357600080fd5b81359190810190604081016020820135600160201b8111156101f457600080fd5b82018360208201111561020657600080fd5b803590602001918460018302840111600160201b8311171561022757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561027957600080fd5b82018360208201111561028b57600080fd5b803590602001918460208302840111600160201b831117156102ac57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156102fb57600080fd5b82018360208201111561030d57600080fd5b803590602001918460208302840111600160201b8311171561032e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561037d57600080fd5b82018360208201111561038f57600080fd5b803590602001918460018302840111600160201b831117156103b057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505082359350506001600160a01b03602083013516916040810135915060608101359060800135610efd565b005b34801561041f57600080fd5b50610428611300565b604080519115158252519081900360200190f35b34801561044857600080fd5b506104666004803603602081101561045f57600080fd5b5035611309565b6040518080602001878152602001868152602001858152602001846001600160a01b03166001600160a01b031681526020018360048111156104a457fe5b60ff168152602001828103825288818151815260200191508051906020019080838360005b838110156104e15781810151838201526020016104c9565b50505050905090810190601f16801561050e5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b34801561052d57600080fd5b506105366113e7565b60408051918252519081900360200190f35b34801561055457600080fd5b506104116004803603604081101561056b57600080fd5b50803590602001356113ed565b34801561058457600080fd5b50610536611596565b34801561059957600080fd5b50610411600480360360208110156105b057600080fd5b503561159d565b3480156105c357600080fd5b50610411600480360360408110156105da57600080fd5b810190602081018135600160201b8111156105f457600080fd5b82018360208201111561060657600080fd5b803590602001918460018302840111600160201b8311171561062757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550509135925061178c915050565b34801561067657600080fd5b506104116004803603602081101561068d57600080fd5b50356118a0565b3480156106a057600080fd5b506106a9611940565b6040805160208082528351818301528351919283929083019185019080838360005b838110156106e35781810151838201526020016106cb565b50505050905090810190601f1680156107105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561072a57600080fd5b506105366119ce565b34801561073f57600080fd5b506105366119d4565b34801561075457600080fd5b506105366119da565b34801561076957600080fd5b506104116004803603608081101561078057600080fd5b81359190810190604081016020820135600160201b8111156107a157600080fd5b8201836020820111156107b357600080fd5b803590602001918460018302840111600160201b831117156107d457600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050823593505050602001356119e0565b34801561082657600080fd5b50610536611b69565b34801561083b57600080fd5b50610411611b6f565b34801561085057600080fd5b50610859611bcd565b60408051908101849052606081018390526001600160a01b038216608082015260a08082528651908201528551819060208083019160c08401918a019080838360005b838110156108b457818101518382015260200161089c565b50505050905090810190601f1680156108e15780820380516001836020036101000a031916815260200191505b508381038252875181528751602091820191890190808383600083156104e15781810151838201526020016104c9565b34801561091d57600080fd5b506106a9611d21565b34801561093257600080fd5b506109596004803603602081101561094957600080fd5b50356001600160a01b0316611d7c565b6040805186151581526001600160a01b0386166020820152908101849052606081018390526080810182600281111561098e57fe5b60ff1681526020019550505050505060405180910390f35b3480156109b257600080fd5b5061041160048036036101208110156109ca57600080fd5b81359190810190604081016020820135600160201b8111156109eb57600080fd5b8201836020820111156109fd57600080fd5b803590602001918460018302840111600160201b83111715610a1e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115610a7057600080fd5b820183602082011115610a8257600080fd5b803590602001918460208302840111600160201b83111715610aa357600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610af257600080fd5b820183602082011115610b0457600080fd5b803590602001918460208302840111600160201b83111715610b2557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610b7457600080fd5b820183602082011115610b8657600080fd5b803590602001918460018302840111600160201b83111715610ba757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505082359350506001600160a01b03602083013516916040810135915060600135611db7565b348015610c0e57600080fd5b50610c2c60048036036020811015610c2557600080fd5b5035612164565b6040518080602001878152602001868152602001856001600160a01b03166001600160a01b03168152602001846003811115610c6457fe5b60ff16815260200183815260200182810382528881815181526020019150805190602001908083836000838110156104e15781810151838201526020016104c9565b348015610cb257600080fd5b5061041160048036036020811015610cc957600080fd5b50356001600160a01b0316612243565b348015610ce557600080fd5b5061041160048036036020811015610cfc57600080fd5b50356001600160a01b03166122b5565b348015610d1857600080fd5b5061053661233f565b610411612345565b348015610d3557600080fd5b506104116004803603610140811015610d4d57600080fd5b810190602081018135600160201b811115610d6757600080fd5b820183602082011115610d7957600080fd5b803590602001918460018302840111600160201b83111715610d9a57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092958435956001600160a01b03602087013581169660408101359650606081013595506080810135945060a081013582169360c08201359360e08301359093169290916101208101906101000135600160201b811115610e2c57600080fd5b820183602082011115610e3e57600080fd5b803590602001918460018302840111600160201b83111715610e5f57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061235d945050505050565b61041160048036036040811015610eb657600080fd5b506001600160a01b03813516906020013561258d565b348015610ed857600080fd5b50610ee1612629565b604080516001600160a01b039092168252519081900360200190f35b600b546001600160a01b03163314610f4d576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600060098b81548110610f5c57fe5b60009182526020822060016005909202010154915060098c81548110610f7e57fe5b906000526020600020906005020160040160149054906101000a900460ff166004811115610fa857fe5b14610ffa576040805162461bcd60e51b815260206004820152601960248201527f50726f6a656374206973206e6f7420696e206261636b6c6f6700000000000000604482015290519081900360640190fd5b80600f541015611047576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b600160098c8154811061105657fe5b906000526020600020906005020160040160146101000a81548160ff0219169083600481111561108257fe5b0217905550600f80548290039055600980548291908d9081106110a157fe5b906000526020600020906005020160020181905550600660009054906101000a90046001600160a01b03166001600160a01b031663b1e6bcbb828c8c8c8c8c8c8c8c8c6040518b63ffffffff1660e01b815260040180806020018060200180602001806020018a8152602001896001600160a01b03166001600160a01b0316815260200188815260200187815260200186815260200185810385528e818151815260200191508051906020019080838360005b8381101561116c578181015183820152602001611154565b50505050905090810190601f1680156111995780820380516001836020036101000a031916815260200191505b5085810384528d818151815260200191508051906020019060200280838360005b838110156111d25781810151838201526020016111ba565b5050505090500185810383528c818151815260200191508051906020019060200280838360005b838110156112115781810151838201526020016111f9565b5050505090500185810382528b818151815260200191508051906020019080838360005b8381101561124d578181015183820152602001611235565b50505050905090810190601f16801561127a5780820380516001836020036101000a031916815260200191505b509d50505050505050505050505050506020604051808303818588803b1580156112a357600080fd5b505af11580156112b7573d6000803e3d6000fd5b50505050506040513d60208110156112ce57600080fd5b5051600980548d9081106112de57fe5b9060005260206000209060050201600301819055505050505050505050505050565b60035460ff1681565b6009818154811061131657fe5b60009182526020918290206005919091020180546040805160026001841615610100026000190190931692909204601f8101859004850283018501909152808252919350918391908301828280156113af5780601f10611384576101008083540402835291602001916113af565b820191906000526020600020905b81548152906001019060200180831161139257829003601f168201915b50505050600183015460028401546003850154600490950154939491939092506001600160a01b03811690600160a01b900460ff1686565b60025481565b600b546001600160a01b0316331461143d576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b60006008838154811061144c57fe5b906000526020600020906005020160030160149054906101000a900460ff16600381111561147657fe5b1461148057600080fd5b80600f5410156114cd576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b6001600883815481106114dc57fe5b906000526020600020906005020160030160146101000a81548160ff0219169083600381111561150857fe5b0217905550600f80548290039055600880548291908490811061152757fe5b9060005260206000209060050201600201819055506008828154811061154957fe5b600091825260208220600360059092020101546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015611591573d6000803e3d6000fd5b505050565b6008545b90565b600b546001600160a01b031633146115ed576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b6000600882815481106115fc57fe5b906000526020600020906005020160040154905060006008838154811061161f57fe5b6000918252602082206001600590920201015491506008848154811061164157fe5b906000526020600020906005020160030160149054906101000a900460ff16600381111561166b57fe5b1461167557600080fd5b80600f5410156116c2576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b6002600884815481106116d157fe5b906000526020600020906005020160030160146101000a81548160ff021916908360038111156116fd57fe5b0217905550600f80548290039055600880548291908590811061171c57fe5b9060005260206000209060050201600201819055506008838154811061173e57fe5b600091825260208220600360059092020101546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015611786573d6000803e3d6000fd5b50505050565b611794612666565b6040518060c001604052808481526020018381526020016000815260200160008152602001336001600160a01b03168152602001600060048111156117d557fe5b90526009805460018101808355600092909252825180519394509192849260059092027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af019161182a918391602001906126af565b506020820151600182015560408201516002820155606082015160038201556080820151600480830180546001600160a01b0319166001600160a01b039093169290921780835560a0850151929160ff60a01b1990911690600160a01b90849081111561189357fe5b0217905550505050505050565b6007546040805163025d1b6560e61b81526004810184905290516001600160a01b0390921691639746d940916024808201926020929091908290030181600087803b1580156118ee57600080fd5b505af1158015611902573d6000803e3d6000fd5b505050506040513d602081101561191857600080fd5b5051600880548390811061192857fe5b90600052602060002090600502016004018190555050565b600d805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156119c65780601f1061199b576101008083540402835291602001916119c6565b820191906000526020600020905b8154815290600101906020018083116119a957829003601f168201915b505050505081565b60095490565b60005481565b60045481565b6000600985815481106119ef57fe5b60009182526020909120600360059092020101549050600160098681548110611a1457fe5b906000526020600020906005020160040160149054906101000a900460ff166004811115611a3e57fe5b14611a4857600080fd5b8260098681548110611a5657fe5b906000526020600020906005020160020160008282540192505081905550600660009054906101000a90046001600160a01b03166001600160a01b031663432326a984868487876040518663ffffffff1660e01b81526004018080602001858152602001848152602001838152602001828103825286818151815260200191508051906020019080838360005b83811015611afb578181015183820152602001611ae3565b50505050905090810190601f168015611b285780820380516001836020036101000a031916815260200191505b50955050505050506000604051808303818588803b158015611b4957600080fd5b505af1158015611b5d573d6000803e3d6000fd5b50505050505050505050565b60015481565b600b546001600160a01b03163314611bbf576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600b546001600160a01b0316ff5b600e54600f54600b54600c8054604080516020601f600260001960018716156101000201909516949094049384018190048102820181019092528281526060968796600096879687969095600d956001600160a01b0390931692918791830182828015611c7b5780601f10611c5057610100808354040283529160200191611c7b565b820191906000526020600020905b815481529060010190602001808311611c5e57829003601f168201915b5050875460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959a5089945092508401905082828015611d095780601f10611cde57610100808354040283529160200191611d09565b820191906000526020600020905b815481529060010190602001808311611cec57829003601f168201915b50989e939d50959b5093995091975095505050505050565b600c805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156119c65780601f1061199b576101008083540402835291602001916119c6565b600a60205260009081526040902080546001820154600283015460039093015460ff808416946101009094046001600160a01b031693911685565b600b546001600160a01b03163314611e07576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600060098a81548110611e1657fe5b60009182526020822060016005909202010154915060098b81548110611e3857fe5b906000526020600020906005020160040160149054906101000a900460ff166004811115611e6257fe5b14611e6c57600080fd5b80600f541015611eb9576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b600160098b81548110611ec857fe5b906000526020600020906005020160040160146101000a81548160ff02191690836004811115611ef457fe5b0217905550600f80548290039055600980548291908c908110611f1357fe5b906000526020600020906005020160020181905550600660009054906101000a90046001600160a01b03166001600160a01b031663df4015fc8a8a8a8a8a8a8a8a6040518963ffffffff1660e01b81526004018080602001806020018060200180602001898152602001886001600160a01b03166001600160a01b0316815260200187815260200186815260200185810385528d818151815260200191508051906020019080838360005b83811015611fd6578181015183820152602001611fbe565b50505050905090810190601f1680156120035780820380516001836020036101000a031916815260200191505b5085810384528c5181528c51602091820191808f01910280838360005b83811015612038578181015183820152602001612020565b5050505090500185810383528b818151815260200191508051906020019060200280838360005b8381101561207757818101518382015260200161205f565b5050505090500185810382528a818151815260200191508051906020019080838360005b838110156120b357818101518382015260200161209b565b50505050905090810190601f1680156120e05780820380516001836020036101000a031916815260200191505b509c50505050505050505050505050602060405180830381600087803b15801561210957600080fd5b505af115801561211d573d6000803e3d6000fd5b505050506040513d602081101561213357600080fd5b5051600980548c90811061214357fe5b90600052602060002090600502016003018190555050505050505050505050565b6008818154811061217157fe5b60009182526020918290206005919091020180546040805160026001841615610100026000190190931692909204601f81018590048502830185019091528082529193509183919083018282801561220a5780601f106121df5761010080835404028352916020019161220a565b820191906000526020600020905b8154815290600101906020018083116121ed57829003601f168201915b50505050600183015460028401546003850154600490950154939491939092506001600160a01b03821691600160a01b900460ff169086565b600b546001600160a01b03163314612293576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b600b546001600160a01b03163314612305576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b6040516001600160a01b03821690303180156108fc02916000818181858888f1935050505015801561233b573d6000803e3d6000fd5b5050565b600f5481565b600f54612358903463ffffffff61263816565b600f55565b61236561272d565b6040805160c0810182528c8152602081018c90526000918101829052336060820152906080820190815260006020918201819052600880546001810180835591909252835180519495509093859360059093027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301926123e99284929101906126af565b5060208201516001820155604082015160028201556060820151600380830180546001600160a01b0319166001600160a01b03909316929092178083556080850151929160ff60a01b1990911690600160a01b90849081111561244857fe5b021790555060a0919091015160049182015560075460405163590f940b60e01b81526001600160a01b038d8116938201938452602482018d9052604482018c9052606482018b9052898116608483015260a4820189905287811660c483015261010060e483019081528751610104840152875191909316945063590f940b938e938e938e938e938e938e938e938e9392916101240190602085019080838360005b838110156125015781810151838201526020016124e9565b50505050905090810190601f16801561252e5780820380516001836020036101000a031916815260200191505b509950505050505050505050602060405180830381600087803b15801561255457600080fd5b505af1158015612568573d6000803e3d6000fd5b505050506040513d602081101561257e57600080fd5b50505050505050505050505050565b600b546001600160a01b031633146125dd576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600f546125f0908263ffffffff61265116565b600f556040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611591573d6000803e3d6000fd5b600b546001600160a01b031681565b60008282018381101561264a57600080fd5b9392505050565b60008282111561266057600080fd5b50900390565b6040518060c001604052806060815260200160008152602001600081526020016000815260200160006001600160a01b03168152602001600060048111156126aa57fe5b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106126f057805160ff191683800117855561271d565b8280016001018555821561271d579182015b8281111561271d578251825591602001919060010190612702565b50612729929150612777565b5090565b6040518060c0016040528060608152602001600081526020016000815260200160006001600160a01b031681526020016000600381111561276a57fe5b8152602001600081525090565b61159a91905b80821115612729576000815560010161277d56fea265627a7a723058200e546ac39b5535e507ab2dfeb382697613f80eb1cf6f25c1eeea6059d0901a6964736f6c63430005090032a265627a7a72305820e3be4db12b5f52aa7ebaa1ac9409c2c002ff7cd791dc2fc0d4cf1e142b97968064736f6c63430005090032", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c806332a2c5d01461005c57806336fbad26146100b45780637ecdd3c5146100ce578063954db47414610116578063e4a8f18b14610245575b600080fd5b61006461024d565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156100a0578181015183820152602001610088565b505050509050019250505060405180910390f35b6100bc6102b8565b60408051918252519081900360200190f35b6100fa600480360360408110156100e457600080fd5b506001600160a01b0381351690602001356102be565b604080516001600160a01b039092168252519081900360200190f35b6100fa6004803603606081101561012c57600080fd5b81019060208101813564010000000081111561014757600080fd5b82018360208201111561015957600080fd5b8035906020019184600183028401116401000000008311171561017b57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156101ce57600080fd5b8201836020820111156101e057600080fd5b8035906020019184600183028401116401000000008311171561020257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050913592506102f3915050565b6100bc61059c565b336000908152600360209081526040918290208054835181840281018401909452808452606093928301828280156102ae57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610290575b5050505050905090565b60005481565b600360205281600052604060002081815481106102d757fe5b6000918252602090912001546001600160a01b03169150829050565b600154600254604051600092839287928792879233926001600160a01b039283169290911690610322906105a2565b604081018590526001600160a01b0380851660608301528381166080830152821660a082015260c08082528751908201528651819060208083019160e08401918b019080838360005b8381101561038357818101518382015260200161036b565b50505050905090810190601f1680156103b05780820380516001836020036101000a031916815260200191505b5083810382528851815288516020918201918a019080838360005b838110156103e35781810151838201526020016103cb565b50505050905090810190601f1680156104105780820380516001836020036101000a031916815260200191505b5098505050505050505050604051809103906000f080158015610437573d6000803e3d6000fd5b503360008181526003602090815260408083208054600180820183559185528385200180546001600160a01b0319166001600160a01b03881617905583540183558051908101889052606081018390526080810184905260a08082528a519082015289519495507fa4802727cd9ec0d1fcbf51f260983cba0fd67d1ce8b069f1d8d2ddeb0e8adbf3948a948a948a949093919282918281019160c08401918a01908083838a5b838110156104f55781810151838201526020016104dd565b50505050905090810190601f1680156105225780820380516001836020036101000a031916815260200191505b50838103825287518152875160209182019189019080838360005b8381101561055557818101518382015260200161053d565b50505050905090810190601f1680156105825780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a1949350505050565b60005490565b612a1f806105b08339019056fe6080604052600160008181558180556003805460ff19169092179091556004553480156200002c57600080fd5b5060405162002a1f38038062002a1f833981810160405260c08110156200005257600080fd5b8101908080516401000000008111156200006b57600080fd5b820160208101848111156200007f57600080fd5b81516401000000008111828201871017156200009a57600080fd5b50509291906020018051640100000000811115620000b757600080fd5b82016020810184811115620000cb57600080fd5b8151640100000000811182820187101715620000e657600080fd5b5050602080830151604084015160608501516080909501518851949750919550939290916200011b91600c91890190620001a4565b5084516200013190600d906020880190620001a4565b5050600e92909255600b80546001600160a01b039283166001600160a01b0319918216179091556000600f556010805460068054958516959093169490941790915561010060ff19909316600117838104909216909202610100600160a81b031990911617905550504260025562000249565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001e757805160ff191683800117855562000217565b8280016001018555821562000217579182015b8281111562000217578251825591602001919060010190620001fa565b506200022592915062000229565b5090565b6200024691905b8082111562000225576000815560010162000230565b90565b6127c680620002596000396000f3fe6080604052600436106101b75760003560e01c80637436f3dc116100ec578063c4d66de81161008a578063d63dc66111610064578063d63dc66114610d21578063dff3ad6914610d29578063e2dc35e014610ea0578063f851a44014610ecc576101b7565b8063c4d66de814610ca6578063cce7db5814610cd9578063d0cb3cd114610d0c576101b7565b806391fc17b4116100c657806391fc17b414610911578063a87430ba14610926578063a9a74bd6146109a6578063af4afe0a14610c02576101b7565b80637436f3dc1461081a57806383197ef01461082f5780638c3006c714610844576101b7565b806322dffcbb1161015957806350b594471161013357806350b594471461071e57806354fd4d501461073357806360d41290146107485780636415921d1461075d576101b7565b806322dffcbb146105b757806325a287ce1461066a5780634a79d50c14610694576101b7565b80630c3d5157116101955780630c3d5157146105215780630d0f3f5d146105485780630daded9514610578578063125ede9d1461058d576101b7565b8063013e9128146101bc57806302fb0c5e1461041357806304e15de51461043c575b600080fd5b61041160048036036101408110156101d357600080fd5b81359190810190604081016020820135600160201b8111156101f457600080fd5b82018360208201111561020657600080fd5b803590602001918460018302840111600160201b8311171561022757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561027957600080fd5b82018360208201111561028b57600080fd5b803590602001918460208302840111600160201b831117156102ac57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156102fb57600080fd5b82018360208201111561030d57600080fd5b803590602001918460208302840111600160201b8311171561032e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561037d57600080fd5b82018360208201111561038f57600080fd5b803590602001918460018302840111600160201b831117156103b057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505082359350506001600160a01b03602083013516916040810135915060608101359060800135610efd565b005b34801561041f57600080fd5b50610428611300565b604080519115158252519081900360200190f35b34801561044857600080fd5b506104666004803603602081101561045f57600080fd5b5035611309565b6040518080602001878152602001868152602001858152602001846001600160a01b03166001600160a01b031681526020018360048111156104a457fe5b60ff168152602001828103825288818151815260200191508051906020019080838360005b838110156104e15781810151838201526020016104c9565b50505050905090810190601f16801561050e5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b34801561052d57600080fd5b506105366113e7565b60408051918252519081900360200190f35b34801561055457600080fd5b506104116004803603604081101561056b57600080fd5b50803590602001356113ed565b34801561058457600080fd5b50610536611596565b34801561059957600080fd5b50610411600480360360208110156105b057600080fd5b503561159d565b3480156105c357600080fd5b50610411600480360360408110156105da57600080fd5b810190602081018135600160201b8111156105f457600080fd5b82018360208201111561060657600080fd5b803590602001918460018302840111600160201b8311171561062757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550509135925061178c915050565b34801561067657600080fd5b506104116004803603602081101561068d57600080fd5b50356118a0565b3480156106a057600080fd5b506106a9611940565b6040805160208082528351818301528351919283929083019185019080838360005b838110156106e35781810151838201526020016106cb565b50505050905090810190601f1680156107105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561072a57600080fd5b506105366119ce565b34801561073f57600080fd5b506105366119d4565b34801561075457600080fd5b506105366119da565b34801561076957600080fd5b506104116004803603608081101561078057600080fd5b81359190810190604081016020820135600160201b8111156107a157600080fd5b8201836020820111156107b357600080fd5b803590602001918460018302840111600160201b831117156107d457600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050823593505050602001356119e0565b34801561082657600080fd5b50610536611b69565b34801561083b57600080fd5b50610411611b6f565b34801561085057600080fd5b50610859611bcd565b60408051908101849052606081018390526001600160a01b038216608082015260a08082528651908201528551819060208083019160c08401918a019080838360005b838110156108b457818101518382015260200161089c565b50505050905090810190601f1680156108e15780820380516001836020036101000a031916815260200191505b508381038252875181528751602091820191890190808383600083156104e15781810151838201526020016104c9565b34801561091d57600080fd5b506106a9611d21565b34801561093257600080fd5b506109596004803603602081101561094957600080fd5b50356001600160a01b0316611d7c565b6040805186151581526001600160a01b0386166020820152908101849052606081018390526080810182600281111561098e57fe5b60ff1681526020019550505050505060405180910390f35b3480156109b257600080fd5b5061041160048036036101208110156109ca57600080fd5b81359190810190604081016020820135600160201b8111156109eb57600080fd5b8201836020820111156109fd57600080fd5b803590602001918460018302840111600160201b83111715610a1e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115610a7057600080fd5b820183602082011115610a8257600080fd5b803590602001918460208302840111600160201b83111715610aa357600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610af257600080fd5b820183602082011115610b0457600080fd5b803590602001918460208302840111600160201b83111715610b2557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610b7457600080fd5b820183602082011115610b8657600080fd5b803590602001918460018302840111600160201b83111715610ba757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505082359350506001600160a01b03602083013516916040810135915060600135611db7565b348015610c0e57600080fd5b50610c2c60048036036020811015610c2557600080fd5b5035612164565b6040518080602001878152602001868152602001856001600160a01b03166001600160a01b03168152602001846003811115610c6457fe5b60ff16815260200183815260200182810382528881815181526020019150805190602001908083836000838110156104e15781810151838201526020016104c9565b348015610cb257600080fd5b5061041160048036036020811015610cc957600080fd5b50356001600160a01b0316612243565b348015610ce557600080fd5b5061041160048036036020811015610cfc57600080fd5b50356001600160a01b03166122b5565b348015610d1857600080fd5b5061053661233f565b610411612345565b348015610d3557600080fd5b506104116004803603610140811015610d4d57600080fd5b810190602081018135600160201b811115610d6757600080fd5b820183602082011115610d7957600080fd5b803590602001918460018302840111600160201b83111715610d9a57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092958435956001600160a01b03602087013581169660408101359650606081013595506080810135945060a081013582169360c08201359360e08301359093169290916101208101906101000135600160201b811115610e2c57600080fd5b820183602082011115610e3e57600080fd5b803590602001918460018302840111600160201b83111715610e5f57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061235d945050505050565b61041160048036036040811015610eb657600080fd5b506001600160a01b03813516906020013561258d565b348015610ed857600080fd5b50610ee1612629565b604080516001600160a01b039092168252519081900360200190f35b600b546001600160a01b03163314610f4d576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600060098b81548110610f5c57fe5b60009182526020822060016005909202010154915060098c81548110610f7e57fe5b906000526020600020906005020160040160149054906101000a900460ff166004811115610fa857fe5b14610ffa576040805162461bcd60e51b815260206004820152601960248201527f50726f6a656374206973206e6f7420696e206261636b6c6f6700000000000000604482015290519081900360640190fd5b80600f541015611047576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b600160098c8154811061105657fe5b906000526020600020906005020160040160146101000a81548160ff0219169083600481111561108257fe5b0217905550600f80548290039055600980548291908d9081106110a157fe5b906000526020600020906005020160020181905550600660009054906101000a90046001600160a01b03166001600160a01b031663b1e6bcbb828c8c8c8c8c8c8c8c8c6040518b63ffffffff1660e01b815260040180806020018060200180602001806020018a8152602001896001600160a01b03166001600160a01b0316815260200188815260200187815260200186815260200185810385528e818151815260200191508051906020019080838360005b8381101561116c578181015183820152602001611154565b50505050905090810190601f1680156111995780820380516001836020036101000a031916815260200191505b5085810384528d818151815260200191508051906020019060200280838360005b838110156111d25781810151838201526020016111ba565b5050505090500185810383528c818151815260200191508051906020019060200280838360005b838110156112115781810151838201526020016111f9565b5050505090500185810382528b818151815260200191508051906020019080838360005b8381101561124d578181015183820152602001611235565b50505050905090810190601f16801561127a5780820380516001836020036101000a031916815260200191505b509d50505050505050505050505050506020604051808303818588803b1580156112a357600080fd5b505af11580156112b7573d6000803e3d6000fd5b50505050506040513d60208110156112ce57600080fd5b5051600980548d9081106112de57fe5b9060005260206000209060050201600301819055505050505050505050505050565b60035460ff1681565b6009818154811061131657fe5b60009182526020918290206005919091020180546040805160026001841615610100026000190190931692909204601f8101859004850283018501909152808252919350918391908301828280156113af5780601f10611384576101008083540402835291602001916113af565b820191906000526020600020905b81548152906001019060200180831161139257829003601f168201915b50505050600183015460028401546003850154600490950154939491939092506001600160a01b03811690600160a01b900460ff1686565b60025481565b600b546001600160a01b0316331461143d576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b60006008838154811061144c57fe5b906000526020600020906005020160030160149054906101000a900460ff16600381111561147657fe5b1461148057600080fd5b80600f5410156114cd576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b6001600883815481106114dc57fe5b906000526020600020906005020160030160146101000a81548160ff0219169083600381111561150857fe5b0217905550600f80548290039055600880548291908490811061152757fe5b9060005260206000209060050201600201819055506008828154811061154957fe5b600091825260208220600360059092020101546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015611591573d6000803e3d6000fd5b505050565b6008545b90565b600b546001600160a01b031633146115ed576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b6000600882815481106115fc57fe5b906000526020600020906005020160040154905060006008838154811061161f57fe5b6000918252602082206001600590920201015491506008848154811061164157fe5b906000526020600020906005020160030160149054906101000a900460ff16600381111561166b57fe5b1461167557600080fd5b80600f5410156116c2576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b6002600884815481106116d157fe5b906000526020600020906005020160030160146101000a81548160ff021916908360038111156116fd57fe5b0217905550600f80548290039055600880548291908590811061171c57fe5b9060005260206000209060050201600201819055506008838154811061173e57fe5b600091825260208220600360059092020101546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015611786573d6000803e3d6000fd5b50505050565b611794612666565b6040518060c001604052808481526020018381526020016000815260200160008152602001336001600160a01b03168152602001600060048111156117d557fe5b90526009805460018101808355600092909252825180519394509192849260059092027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af019161182a918391602001906126af565b506020820151600182015560408201516002820155606082015160038201556080820151600480830180546001600160a01b0319166001600160a01b039093169290921780835560a0850151929160ff60a01b1990911690600160a01b90849081111561189357fe5b0217905550505050505050565b6007546040805163025d1b6560e61b81526004810184905290516001600160a01b0390921691639746d940916024808201926020929091908290030181600087803b1580156118ee57600080fd5b505af1158015611902573d6000803e3d6000fd5b505050506040513d602081101561191857600080fd5b5051600880548390811061192857fe5b90600052602060002090600502016004018190555050565b600d805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156119c65780601f1061199b576101008083540402835291602001916119c6565b820191906000526020600020905b8154815290600101906020018083116119a957829003601f168201915b505050505081565b60095490565b60005481565b60045481565b6000600985815481106119ef57fe5b60009182526020909120600360059092020101549050600160098681548110611a1457fe5b906000526020600020906005020160040160149054906101000a900460ff166004811115611a3e57fe5b14611a4857600080fd5b8260098681548110611a5657fe5b906000526020600020906005020160020160008282540192505081905550600660009054906101000a90046001600160a01b03166001600160a01b031663432326a984868487876040518663ffffffff1660e01b81526004018080602001858152602001848152602001838152602001828103825286818151815260200191508051906020019080838360005b83811015611afb578181015183820152602001611ae3565b50505050905090810190601f168015611b285780820380516001836020036101000a031916815260200191505b50955050505050506000604051808303818588803b158015611b4957600080fd5b505af1158015611b5d573d6000803e3d6000fd5b50505050505050505050565b60015481565b600b546001600160a01b03163314611bbf576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600b546001600160a01b0316ff5b600e54600f54600b54600c8054604080516020601f600260001960018716156101000201909516949094049384018190048102820181019092528281526060968796600096879687969095600d956001600160a01b0390931692918791830182828015611c7b5780601f10611c5057610100808354040283529160200191611c7b565b820191906000526020600020905b815481529060010190602001808311611c5e57829003601f168201915b5050875460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959a5089945092508401905082828015611d095780601f10611cde57610100808354040283529160200191611d09565b820191906000526020600020905b815481529060010190602001808311611cec57829003601f168201915b50989e939d50959b5093995091975095505050505050565b600c805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156119c65780601f1061199b576101008083540402835291602001916119c6565b600a60205260009081526040902080546001820154600283015460039093015460ff808416946101009094046001600160a01b031693911685565b600b546001600160a01b03163314611e07576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600060098a81548110611e1657fe5b60009182526020822060016005909202010154915060098b81548110611e3857fe5b906000526020600020906005020160040160149054906101000a900460ff166004811115611e6257fe5b14611e6c57600080fd5b80600f541015611eb9576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b600160098b81548110611ec857fe5b906000526020600020906005020160040160146101000a81548160ff02191690836004811115611ef457fe5b0217905550600f80548290039055600980548291908c908110611f1357fe5b906000526020600020906005020160020181905550600660009054906101000a90046001600160a01b03166001600160a01b031663df4015fc8a8a8a8a8a8a8a8a6040518963ffffffff1660e01b81526004018080602001806020018060200180602001898152602001886001600160a01b03166001600160a01b0316815260200187815260200186815260200185810385528d818151815260200191508051906020019080838360005b83811015611fd6578181015183820152602001611fbe565b50505050905090810190601f1680156120035780820380516001836020036101000a031916815260200191505b5085810384528c5181528c51602091820191808f01910280838360005b83811015612038578181015183820152602001612020565b5050505090500185810383528b818151815260200191508051906020019060200280838360005b8381101561207757818101518382015260200161205f565b5050505090500185810382528a818151815260200191508051906020019080838360005b838110156120b357818101518382015260200161209b565b50505050905090810190601f1680156120e05780820380516001836020036101000a031916815260200191505b509c50505050505050505050505050602060405180830381600087803b15801561210957600080fd5b505af115801561211d573d6000803e3d6000fd5b505050506040513d602081101561213357600080fd5b5051600980548c90811061214357fe5b90600052602060002090600502016003018190555050505050505050505050565b6008818154811061217157fe5b60009182526020918290206005919091020180546040805160026001841615610100026000190190931692909204601f81018590048502830185019091528082529193509183919083018282801561220a5780601f106121df5761010080835404028352916020019161220a565b820191906000526020600020905b8154815290600101906020018083116121ed57829003601f168201915b50505050600183015460028401546003850154600490950154939491939092506001600160a01b03821691600160a01b900460ff169086565b600b546001600160a01b03163314612293576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b600b546001600160a01b03163314612305576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b6040516001600160a01b03821690303180156108fc02916000818181858888f1935050505015801561233b573d6000803e3d6000fd5b5050565b600f5481565b600f54612358903463ffffffff61263816565b600f55565b61236561272d565b6040805160c0810182528c8152602081018c90526000918101829052336060820152906080820190815260006020918201819052600880546001810180835591909252835180519495509093859360059093027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301926123e99284929101906126af565b5060208201516001820155604082015160028201556060820151600380830180546001600160a01b0319166001600160a01b03909316929092178083556080850151929160ff60a01b1990911690600160a01b90849081111561244857fe5b021790555060a0919091015160049182015560075460405163590f940b60e01b81526001600160a01b038d8116938201938452602482018d9052604482018c9052606482018b9052898116608483015260a4820189905287811660c483015261010060e483019081528751610104840152875191909316945063590f940b938e938e938e938e938e938e938e938e9392916101240190602085019080838360005b838110156125015781810151838201526020016124e9565b50505050905090810190601f16801561252e5780820380516001836020036101000a031916815260200191505b509950505050505050505050602060405180830381600087803b15801561255457600080fd5b505af1158015612568573d6000803e3d6000fd5b505050506040513d602081101561257e57600080fd5b50505050505050505050505050565b600b546001600160a01b031633146125dd576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600f546125f0908263ffffffff61265116565b600f556040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611591573d6000803e3d6000fd5b600b546001600160a01b031681565b60008282018381101561264a57600080fd5b9392505050565b60008282111561266057600080fd5b50900390565b6040518060c001604052806060815260200160008152602001600081526020016000815260200160006001600160a01b03168152602001600060048111156126aa57fe5b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106126f057805160ff191683800117855561271d565b8280016001018555821561271d579182015b8281111561271d578251825591602001919060010190612702565b50612729929150612777565b5090565b6040518060c0016040528060608152602001600081526020016000815260200160006001600160a01b031681526020016000600381111561276a57fe5b8152602001600081525090565b61159a91905b80821115612729576000815560010161277d56fea265627a7a723058200e546ac39b5535e507ab2dfeb382697613f80eb1cf6f25c1eeea6059d0901a6964736f6c63430005090032a265627a7a72305820e3be4db12b5f52aa7ebaa1ac9409c2c002ff7cd791dc2fc0d4cf1e142b97968064736f6c63430005090032", + "sourceMap": "68:1222:1:-;;;131:1;104:28;;290:150;8:9:-1;5:2;;;30:1;27;20:12;5:2;290:150:1;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;290:150:1;;;;;;;365:13;:30;;-1:-1:-1;;;;;365:30:1;;;-1:-1:-1;;;;;;365:30:1;;;;;;;402:12;:28;;;;;;;;;;;;;;68:1222;;;;;;", + "deployedSourceMap": "68:1222:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;68:1222:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:109;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1085:109:1;;;;;;;;;;;;;;;;;104:28;;;:::i;:::-;;;;;;;;;;;;;;;;238:45;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;238:45:1;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;238:45:1;;;;;;;;;;;;;;629:450;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;629:450:1;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;629:450:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;629:450:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;629:450:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;629:450:1;;;;;;;;-1:-1:-1;629:450:1;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;629:450:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;629:450:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;629:450:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;629:450:1;;-1:-1:-1;;629:450:1;;;-1:-1:-1;629:450:1;;-1:-1:-1;;629:450:1:i;1200:87::-;;;:::i;1085:109::-;1177:10;1168:20;;;;:8;:20;;;;;;;;;1161:27;;;;;;;;;;;;;;;;;1136:16;;1161:27;;;1168:20;1161:27;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1161:27:1;;;;;;;;;;;;;;;;;;;;;;;1085:109;:::o;104:28::-;;;;:::o;238:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;238:45:1;;-1:-1:-1;238:45:1;;-1:-1:-1;238:45:1:o;629:450::-;860:13;;882:12;;770:131;;727:7;;;;797:6;;812:5;;826:6;;841:10;;-1:-1:-1;;;;;860:13:1;;;;882:12;;;;770:131;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;770:131:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;770:131:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;770:131:1;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;770:131:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;919:10:1;910:20;;;;:8;:20;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;910:43:1;;;;;;;;;-1:-1:-1;;;;;;910:43:1;-1:-1:-1;;;;;910:43:1;;;;;960:17;;;;;991:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;910:43;;-1:-1:-1;991:50:1;;;;1012:5;;991:50;;910:20;;919:10;;991:50;;;;;;;;;;;;;;;;910:20;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;991:50:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;991:50:1;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;991:50:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1065:7;629:450;-1:-1:-1;;;;629:450:1:o;1200:87::-;1249:4;1269:12;1200:87;:::o;68:1222::-;;;;;;;;:::o", + "source": "pragma solidity >=0.5.0 < 0.6.0;\r\nimport './GitFundedGrant.sol';\r\n\r\ncontract GitFundedGrantFactory {\r\n uint public projectCount = 0;\r\n address bountyAddress; // This is actually BountiesMetaTxRelayer address\r\n address tokenAddress;\r\n mapping(address => address[]) public projects;\r\n\r\n constructor(address _bountyAddress, address _tokenAddress) public {\r\n\r\n bountyAddress = _bountyAddress;\r\n tokenAddress = _tokenAddress;\r\n\r\n\r\n }\r\n\r\n\r\n event projectAdded (\r\n string repoId,\r\n string title,\r\n uint budget, // In dollars\r\n uint availableFund, // In Ether\r\n address admin\r\n\r\n );\r\n\r\n function newProject(\r\n string memory repoId, string memory title, uint budget) public returns (address) {\r\n\r\n GitFundedGrant project = new GitFundedGrant(\r\n repoId,\r\n title,\r\n budget,\r\n msg.sender,\r\n bountyAddress,\r\n tokenAddress\r\n );\r\n\r\n projects[msg.sender].push(address(project));\r\n projectCount += 1;\r\n\r\n emit projectAdded(repoId, title, budget, 0, msg.sender);\r\n\r\n return address(project);\r\n }\r\n\r\n function getContractAddress() public view returns (address[] memory) {\r\n return projects[msg.sender];\r\n }\r\n\r\n function getProjectsCount() public view returns (uint) {\r\n return projectCount;\r\n }\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\GitFundedGrantFactory.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/GitFundedGrantFactory.sol", + "exportedSymbols": { + "GitFundedGrantFactory": [ + 858 + ] + }, + "id": 859, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 744, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:1" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/GitFundedGrant.sol", + "file": "./GitFundedGrant.sol", + "id": 745, + "nodeType": "ImportDirective", + "scope": 859, + "sourceUnit": 743, + "src": "34:30:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [ + 742 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 858, + "linearizedBaseContracts": [ + 858 + ], + "name": "GitFundedGrantFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 748, + "name": "projectCount", + "nodeType": "VariableDeclaration", + "scope": 858, + "src": "104:28:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 746, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "104:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 747, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "131:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 750, + "name": "bountyAddress", + "nodeType": "VariableDeclaration", + "scope": 858, + "src": "137:21:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 749, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "137:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 752, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 858, + "src": "213:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 751, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "213:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 757, + "name": "projects", + "nodeType": "VariableDeclaration", + "scope": 858, + "src": "238:45:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", + "typeString": "mapping(address => address[])" + }, + "typeName": { + "id": 756, + "keyType": { + "id": 753, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "246:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "238:29:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", + "typeString": "mapping(address => address[])" + }, + "valueType": { + "baseType": { + "id": 754, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "257:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 755, + "length": null, + "nodeType": "ArrayTypeName", + "src": "257:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 772, + "nodeType": "Block", + "src": "356:84:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 764, + "name": "bountyAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 750, + "src": "365:13:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 765, + "name": "_bountyAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 759, + "src": "381:14:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "365:30:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 767, + "nodeType": "ExpressionStatement", + "src": "365:30:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 768, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "402:12:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 769, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 761, + "src": "417:13:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "402:28:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 771, + "nodeType": "ExpressionStatement", + "src": "402:28:1" + } + ] + }, + "documentation": null, + "id": 773, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 762, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 759, + "name": "_bountyAddress", + "nodeType": "VariableDeclaration", + "scope": 773, + "src": "302:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 758, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "302:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 761, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 773, + "src": "326:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 760, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "326:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "301:47:1" + }, + "returnParameters": { + "id": 763, + "nodeType": "ParameterList", + "parameters": [], + "src": "356:0:1" + }, + "scope": 858, + "src": "290:150:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 785, + "name": "projectAdded", + "nodeType": "EventDefinition", + "parameters": { + "id": 784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 775, + "indexed": false, + "name": "repoId", + "nodeType": "VariableDeclaration", + "scope": 785, + "src": "478:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 774, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "478:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 777, + "indexed": false, + "name": "title", + "nodeType": "VariableDeclaration", + "scope": 785, + "src": "502:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 776, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "502:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 779, + "indexed": false, + "name": "budget", + "nodeType": "VariableDeclaration", + "scope": 785, + "src": "525:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 778, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "525:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 781, + "indexed": false, + "name": "availableFund", + "nodeType": "VariableDeclaration", + "scope": 785, + "src": "561:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 780, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "561:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 783, + "indexed": false, + "name": "admin", + "nodeType": "VariableDeclaration", + "scope": 785, + "src": "602:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 782, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "602:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "467:155:1" + }, + "src": "448:175:1" + }, + { + "body": { + "id": 836, + "nodeType": "Block", + "src": "736:343:1", + "statements": [ + { + "assignments": [ + 797 + ], + "declarations": [ + { + "constant": false, + "id": 797, + "name": "project", + "nodeType": "VariableDeclaration", + "scope": 836, + "src": "745:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GitFundedGrant_$742", + "typeString": "contract GitFundedGrant" + }, + "typeName": { + "contractScope": null, + "id": 796, + "name": "GitFundedGrant", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 742, + "src": "745:14:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GitFundedGrant_$742", + "typeString": "contract GitFundedGrant" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 808, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 800, + "name": "repoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 787, + "src": "797:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 801, + "name": "title", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "812:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 802, + "name": "budget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 791, + "src": "826:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 803, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "841:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "841:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 805, + "name": "bountyAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 750, + "src": "860:13:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 806, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "882:12:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "770:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_payable_$_t_address_$_t_address_$returns$_t_contract$_GitFundedGrant_$742_$", + "typeString": "function (string memory,string memory,uint256,address payable,address,address) returns (contract GitFundedGrant)" + }, + "typeName": { + "contractScope": null, + "id": 798, + "name": "GitFundedGrant", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 742, + "src": "774:14:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GitFundedGrant_$742", + "typeString": "contract GitFundedGrant" + } + } + }, + "id": 807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "770:131:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GitFundedGrant_$742", + "typeString": "contract GitFundedGrant" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "745:156:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 815, + "name": "project", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "944:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GitFundedGrant_$742", + "typeString": "contract GitFundedGrant" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_GitFundedGrant_$742", + "typeString": "contract GitFundedGrant" + } + ], + "id": 814, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "936:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "936:16:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 809, + "name": "projects", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 757, + "src": "910:8:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", + "typeString": "mapping(address => address[] storage ref)" + } + }, + "id": 812, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 810, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "919:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "919:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "910:20:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "910:25:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) returns (uint256)" + } + }, + "id": 817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "910:43:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 818, + "nodeType": "ExpressionStatement", + "src": "910:43:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 819, + "name": "projectCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 748, + "src": "960:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 820, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "976:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "960:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 822, + "nodeType": "ExpressionStatement", + "src": "960:17:1" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 824, + "name": "repoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 787, + "src": "1004:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 825, + "name": "title", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "1012:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 826, + "name": "budget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 791, + "src": "1019:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 827, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1027:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 828, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "1030:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1030:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 823, + "name": "projectAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 785, + "src": "991:12:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (string memory,string memory,uint256,uint256,address)" + } + }, + "id": 830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "991:50:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 831, + "nodeType": "EmitStatement", + "src": "986:55:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 833, + "name": "project", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "1065:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GitFundedGrant_$742", + "typeString": "contract GitFundedGrant" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_GitFundedGrant_$742", + "typeString": "contract GitFundedGrant" + } + ], + "id": 832, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1057:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1057:16:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 795, + "id": 835, + "nodeType": "Return", + "src": "1050:23:1" + } + ] + }, + "documentation": null, + "id": 837, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "newProject", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 792, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 787, + "name": "repoId", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "655:20:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 786, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "655:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 789, + "name": "title", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "677:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 788, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "677:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 791, + "name": "budget", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "698:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 790, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "698:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "648:62:1" + }, + "returnParameters": { + "id": 795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 794, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "727:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "727:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "726:9:1" + }, + "scope": 858, + "src": "629:450:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 848, + "nodeType": "Block", + "src": "1154:40:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 843, + "name": "projects", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 757, + "src": "1168:8:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", + "typeString": "mapping(address => address[] storage ref)" + } + }, + "id": 846, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 844, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "1177:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1177:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1168:20:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "functionReturnParameters": 842, + "id": 847, + "nodeType": "Return", + "src": "1161:27:1" + } + ] + }, + "documentation": null, + "id": 849, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getContractAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 838, + "nodeType": "ParameterList", + "parameters": [], + "src": "1112:2:1" + }, + "returnParameters": { + "id": 842, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 841, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 849, + "src": "1136:16:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 839, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1136:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 840, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1136:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1135:18:1" + }, + "scope": 858, + "src": "1085:109:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 856, + "nodeType": "Block", + "src": "1255:32:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 854, + "name": "projectCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 748, + "src": "1269:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 853, + "id": 855, + "nodeType": "Return", + "src": "1262:19:1" + } + ] + }, + "documentation": null, + "id": 857, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getProjectsCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 850, + "nodeType": "ParameterList", + "parameters": [], + "src": "1225:2:1" + }, + "returnParameters": { + "id": 853, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 852, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 857, + "src": "1249:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 851, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1249:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1248:6:1" + }, + "scope": 858, + "src": "1200:87:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 859, + "src": "68:1222:1" + } + ], + "src": "0:1292:1" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/GitFundedGrantFactory.sol", + "exportedSymbols": { + "GitFundedGrantFactory": [ + 858 + ] + }, + "id": 859, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 744, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:1" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/GitFundedGrant.sol", + "file": "./GitFundedGrant.sol", + "id": 745, + "nodeType": "ImportDirective", + "scope": 859, + "sourceUnit": 743, + "src": "34:30:1", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [ + 742 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 858, + "linearizedBaseContracts": [ + 858 + ], + "name": "GitFundedGrantFactory", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 748, + "name": "projectCount", + "nodeType": "VariableDeclaration", + "scope": 858, + "src": "104:28:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 746, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "104:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 747, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "131:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 750, + "name": "bountyAddress", + "nodeType": "VariableDeclaration", + "scope": 858, + "src": "137:21:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 749, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "137:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 752, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 858, + "src": "213:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 751, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "213:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 757, + "name": "projects", + "nodeType": "VariableDeclaration", + "scope": 858, + "src": "238:45:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", + "typeString": "mapping(address => address[])" + }, + "typeName": { + "id": 756, + "keyType": { + "id": 753, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "246:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "238:29:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", + "typeString": "mapping(address => address[])" + }, + "valueType": { + "baseType": { + "id": 754, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "257:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 755, + "length": null, + "nodeType": "ArrayTypeName", + "src": "257:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 772, + "nodeType": "Block", + "src": "356:84:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 764, + "name": "bountyAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 750, + "src": "365:13:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 765, + "name": "_bountyAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 759, + "src": "381:14:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "365:30:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 767, + "nodeType": "ExpressionStatement", + "src": "365:30:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 768, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "402:12:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 769, + "name": "_tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 761, + "src": "417:13:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "402:28:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 771, + "nodeType": "ExpressionStatement", + "src": "402:28:1" + } + ] + }, + "documentation": null, + "id": 773, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 762, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 759, + "name": "_bountyAddress", + "nodeType": "VariableDeclaration", + "scope": 773, + "src": "302:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 758, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "302:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 761, + "name": "_tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 773, + "src": "326:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 760, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "326:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "301:47:1" + }, + "returnParameters": { + "id": 763, + "nodeType": "ParameterList", + "parameters": [], + "src": "356:0:1" + }, + "scope": 858, + "src": "290:150:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 785, + "name": "projectAdded", + "nodeType": "EventDefinition", + "parameters": { + "id": 784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 775, + "indexed": false, + "name": "repoId", + "nodeType": "VariableDeclaration", + "scope": 785, + "src": "478:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 774, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "478:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 777, + "indexed": false, + "name": "title", + "nodeType": "VariableDeclaration", + "scope": 785, + "src": "502:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 776, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "502:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 779, + "indexed": false, + "name": "budget", + "nodeType": "VariableDeclaration", + "scope": 785, + "src": "525:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 778, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "525:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 781, + "indexed": false, + "name": "availableFund", + "nodeType": "VariableDeclaration", + "scope": 785, + "src": "561:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 780, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "561:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 783, + "indexed": false, + "name": "admin", + "nodeType": "VariableDeclaration", + "scope": 785, + "src": "602:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 782, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "602:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "467:155:1" + }, + "src": "448:175:1" + }, + { + "body": { + "id": 836, + "nodeType": "Block", + "src": "736:343:1", + "statements": [ + { + "assignments": [ + 797 + ], + "declarations": [ + { + "constant": false, + "id": 797, + "name": "project", + "nodeType": "VariableDeclaration", + "scope": 836, + "src": "745:22:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GitFundedGrant_$742", + "typeString": "contract GitFundedGrant" + }, + "typeName": { + "contractScope": null, + "id": 796, + "name": "GitFundedGrant", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 742, + "src": "745:14:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GitFundedGrant_$742", + "typeString": "contract GitFundedGrant" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 808, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 800, + "name": "repoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 787, + "src": "797:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 801, + "name": "title", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "812:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 802, + "name": "budget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 791, + "src": "826:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 803, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "841:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "841:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 805, + "name": "bountyAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 750, + "src": "860:13:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 806, + "name": "tokenAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "882:12:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "770:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_payable_$_t_address_$_t_address_$returns$_t_contract$_GitFundedGrant_$742_$", + "typeString": "function (string memory,string memory,uint256,address payable,address,address) returns (contract GitFundedGrant)" + }, + "typeName": { + "contractScope": null, + "id": 798, + "name": "GitFundedGrant", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 742, + "src": "774:14:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GitFundedGrant_$742", + "typeString": "contract GitFundedGrant" + } + } + }, + "id": 807, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "770:131:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GitFundedGrant_$742", + "typeString": "contract GitFundedGrant" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "745:156:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 815, + "name": "project", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "944:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GitFundedGrant_$742", + "typeString": "contract GitFundedGrant" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_GitFundedGrant_$742", + "typeString": "contract GitFundedGrant" + } + ], + "id": 814, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "936:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "936:16:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 809, + "name": "projects", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 757, + "src": "910:8:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", + "typeString": "mapping(address => address[] storage ref)" + } + }, + "id": 812, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 810, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "919:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "919:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "910:20:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 813, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "910:25:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) returns (uint256)" + } + }, + "id": 817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "910:43:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 818, + "nodeType": "ExpressionStatement", + "src": "910:43:1" + }, + { + "expression": { + "argumentTypes": null, + "id": 821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 819, + "name": "projectCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 748, + "src": "960:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 820, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "976:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "960:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 822, + "nodeType": "ExpressionStatement", + "src": "960:17:1" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 824, + "name": "repoId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 787, + "src": "1004:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 825, + "name": "title", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 789, + "src": "1012:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 826, + "name": "budget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 791, + "src": "1019:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 827, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1027:1:1", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 828, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "1030:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1030:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 823, + "name": "projectAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 785, + "src": "991:12:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (string memory,string memory,uint256,uint256,address)" + } + }, + "id": 830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "991:50:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 831, + "nodeType": "EmitStatement", + "src": "986:55:1" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 833, + "name": "project", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 797, + "src": "1065:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GitFundedGrant_$742", + "typeString": "contract GitFundedGrant" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_GitFundedGrant_$742", + "typeString": "contract GitFundedGrant" + } + ], + "id": 832, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1057:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1057:16:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 795, + "id": 835, + "nodeType": "Return", + "src": "1050:23:1" + } + ] + }, + "documentation": null, + "id": 837, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "newProject", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 792, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 787, + "name": "repoId", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "655:20:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 786, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "655:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 789, + "name": "title", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "677:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 788, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "677:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 791, + "name": "budget", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "698:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 790, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "698:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "648:62:1" + }, + "returnParameters": { + "id": 795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 794, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 837, + "src": "727:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 793, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "727:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "726:9:1" + }, + "scope": 858, + "src": "629:450:1", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 848, + "nodeType": "Block", + "src": "1154:40:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 843, + "name": "projects", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 757, + "src": "1168:8:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", + "typeString": "mapping(address => address[] storage ref)" + } + }, + "id": 846, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 844, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "1177:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1177:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1168:20:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "functionReturnParameters": 842, + "id": 847, + "nodeType": "Return", + "src": "1161:27:1" + } + ] + }, + "documentation": null, + "id": 849, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getContractAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 838, + "nodeType": "ParameterList", + "parameters": [], + "src": "1112:2:1" + }, + "returnParameters": { + "id": 842, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 841, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 849, + "src": "1136:16:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 839, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1136:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 840, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1136:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1135:18:1" + }, + "scope": 858, + "src": "1085:109:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 856, + "nodeType": "Block", + "src": "1255:32:1", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 854, + "name": "projectCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 748, + "src": "1269:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 853, + "id": 855, + "nodeType": "Return", + "src": "1262:19:1" + } + ] + }, + "documentation": null, + "id": 857, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getProjectsCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 850, + "nodeType": "ParameterList", + "parameters": [], + "src": "1225:2:1" + }, + "returnParameters": { + "id": 853, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 852, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 857, + "src": "1249:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 851, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1249:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1248:6:1" + }, + "scope": 858, + "src": "1200:87:1", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 859, + "src": "68:1222:1" + } + ], + "src": "0:1292:1" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": { + "10": { + "events": { + "0xa4802727cd9ec0d1fcbf51f260983cba0fd67d1ce8b069f1d8d2ddeb0e8adbf3": { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "repoId", + "type": "string" + }, + { + "indexed": false, + "name": "title", + "type": "string" + }, + { + "indexed": false, + "name": "budget", + "type": "uint256" + }, + { + "indexed": false, + "name": "availableFund", + "type": "uint256" + }, + { + "indexed": false, + "name": "admin", + "type": "address" + } + ], + "name": "projectAdded", + "type": "event" + } + }, + "links": {}, + "address": "0x984c870d6DFCdCF033Ef2d5cE13E0Ff17e8EcA78", + "transactionHash": "0x549e1dd064b6d7391497e4ea3fa31273e933a234341b9194a1b00ebd30d488ee" + } + }, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:30.969Z", + "networkType": "ethereum", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/contracts/Governance.json b/src/contracts/Governance.json new file mode 100644 index 0000000..a7c6281 --- /dev/null +++ b/src/contracts/Governance.json @@ -0,0 +1,34664 @@ +{ + "contractName": "Governance", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "proposals", + "outputs": [ + { + "name": "applicant", + "type": "address" + }, + { + "name": "proposer", + "type": "address" + }, + { + "name": "sponsor", + "type": "address" + }, + { + "name": "sharesRequested", + "type": "uint256" + }, + { + "name": "lootRequested", + "type": "uint256" + }, + { + "name": "tributeOffered", + "type": "uint256" + }, + { + "name": "tributeToken", + "type": "address" + }, + { + "name": "paymentRequested", + "type": "uint256" + }, + { + "name": "paymentToken", + "type": "address" + }, + { + "name": "startingPeriod", + "type": "uint256" + }, + { + "name": "yesVotes", + "type": "uint256" + }, + { + "name": "noVotes", + "type": "uint256" + }, + { + "name": "details", + "type": "string" + }, + { + "name": "maxTotalSharesAndLootAtYesVote", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "members", + "outputs": [ + { + "name": "delegateKey", + "type": "address" + }, + { + "name": "shares", + "type": "uint256" + }, + { + "name": "exists", + "type": "bool" + }, + { + "name": "highestIndexYesVote", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "approvedTokens", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "emergencyProcessingWait", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalShares", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "proposalQueue", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "memberAddressByDelegateKey", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "emergencyWarning", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "gracePeriodLength", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "result", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "summoningTime", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "votingPeriodLength", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "proposalDeposit", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "guildBank", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "lastEmergencyProposalIndex", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "periodDuration", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "depositToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "proposalCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "admin", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_admin", + "type": "address" + }, + { + "name": "_approvedTokens", + "type": "address[1]" + }, + { + "name": "_periodDuration", + "type": "uint256" + }, + { + "name": "_votingPeriodLength", + "type": "uint256" + }, + { + "name": "_gracePeriodLength", + "type": "uint256" + }, + { + "name": "_emergencyProcessingWait", + "type": "uint256" + }, + { + "name": "_bailoutWait", + "type": "uint256" + }, + { + "name": "_proposalDeposit", + "type": "uint256" + }, + { + "name": "_dilutionBound", + "type": "uint256" + }, + { + "name": "_processingReward", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "proposalIndex", + "type": "uint256" + }, + { + "indexed": true, + "name": "delegateKey", + "type": "address" + }, + { + "indexed": true, + "name": "memberAddress", + "type": "address" + }, + { + "indexed": true, + "name": "applicant", + "type": "address" + }, + { + "indexed": false, + "name": "sharesRequested", + "type": "uint256" + }, + { + "indexed": false, + "name": "lootRequested", + "type": "uint256" + }, + { + "indexed": false, + "name": "tributeOffered", + "type": "uint256" + }, + { + "indexed": false, + "name": "tributeToken", + "type": "address" + }, + { + "indexed": false, + "name": "paymentRequested", + "type": "uint256" + }, + { + "indexed": false, + "name": "paymentToken", + "type": "address" + } + ], + "name": "SubmitProposal", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "delegateKey", + "type": "address" + }, + { + "indexed": true, + "name": "memberAddress", + "type": "address" + }, + { + "indexed": false, + "name": "proposalIndex", + "type": "uint256" + }, + { + "indexed": false, + "name": "proposalQueueIndex", + "type": "uint256" + }, + { + "indexed": false, + "name": "startingPeriod", + "type": "uint256" + } + ], + "name": "SponsorProposal", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "proposalIndex", + "type": "uint256" + }, + { + "indexed": true, + "name": "delegateKey", + "type": "address" + }, + { + "indexed": true, + "name": "memberAddress", + "type": "address" + }, + { + "indexed": false, + "name": "uintVote", + "type": "uint8" + } + ], + "name": "SubmitVote", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "proposalIndex", + "type": "uint256" + }, + { + "indexed": true, + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "name": "didPass", + "type": "bool" + } + ], + "name": "ProcessProposal", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "memberAddress", + "type": "address" + }, + { + "indexed": false, + "name": "sharesToBurn", + "type": "uint256" + }, + { + "indexed": false, + "name": "lootToBurn", + "type": "uint256" + } + ], + "name": "Ragequit", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "proposalIndex", + "type": "uint256" + }, + { + "indexed": false, + "name": "applicantAddress", + "type": "address" + } + ], + "name": "CancelProposal", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "memberAddress", + "type": "address" + }, + { + "indexed": false, + "name": "newDelegateKey", + "type": "address" + } + ], + "name": "UpdateDelegateKey", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "admin", + "type": "address" + }, + { + "indexed": false, + "name": "shares", + "type": "uint256" + } + ], + "name": "SummonComplete", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "applicant", + "type": "address" + }, + { + "name": "sharesRequested", + "type": "uint256" + }, + { + "name": "lootRequested", + "type": "uint256" + }, + { + "name": "tributeOffered", + "type": "uint256" + }, + { + "name": "tributeToken", + "type": "address" + }, + { + "name": "paymentRequested", + "type": "uint256" + }, + { + "name": "paymentToken", + "type": "address" + }, + { + "name": "details", + "type": "string" + } + ], + "name": "submitProposal", + "outputs": [ + { + "name": "proposalId", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "proposalId", + "type": "uint256" + } + ], + "name": "sponsorProposal", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "proposalIndex", + "type": "uint256" + }, + { + "name": "uintVote", + "type": "uint8" + } + ], + "name": "submitVote", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "proposalIndex", + "type": "uint256" + } + ], + "name": "processProposal", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCurrentPeriod", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getProposalQueueLength", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "proposalId", + "type": "uint256" + } + ], + "name": "getProposalFlags", + "outputs": [ + { + "name": "", + "type": "bool[6]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "highestIndexYesVote", + "type": "uint256" + } + ], + "name": "canRagequit", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "startingPeriod", + "type": "uint256" + } + ], + "name": "hasVotingPeriodExpired", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "memberAddress", + "type": "address" + }, + { + "name": "proposalIndex", + "type": "uint256" + } + ], + "name": "getMemberProposalVote", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getProposal", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getResult", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"name\":\"applicant\",\"type\":\"address\"},{\"name\":\"proposer\",\"type\":\"address\"},{\"name\":\"sponsor\",\"type\":\"address\"},{\"name\":\"sharesRequested\",\"type\":\"uint256\"},{\"name\":\"lootRequested\",\"type\":\"uint256\"},{\"name\":\"tributeOffered\",\"type\":\"uint256\"},{\"name\":\"tributeToken\",\"type\":\"address\"},{\"name\":\"paymentRequested\",\"type\":\"uint256\"},{\"name\":\"paymentToken\",\"type\":\"address\"},{\"name\":\"startingPeriod\",\"type\":\"uint256\"},{\"name\":\"yesVotes\",\"type\":\"uint256\"},{\"name\":\"noVotes\",\"type\":\"uint256\"},{\"name\":\"details\",\"type\":\"string\"},{\"name\":\"maxTotalSharesAndLootAtYesVote\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"memberAddress\",\"type\":\"address\"},{\"name\":\"proposalIndex\",\"type\":\"uint256\"}],\"name\":\"getMemberProposalVote\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCurrentPeriod\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"members\",\"outputs\":[{\"name\":\"delegateKey\",\"type\":\"address\"},{\"name\":\"shares\",\"type\":\"uint256\"},{\"name\":\"exists\",\"type\":\"bool\"},{\"name\":\"highestIndexYesVote\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"approvedTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"emergencyProcessingWait\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalShares\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposalQueue\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"memberAddressByDelegateKey\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"emergencyWarning\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"applicant\",\"type\":\"address\"},{\"name\":\"sharesRequested\",\"type\":\"uint256\"},{\"name\":\"lootRequested\",\"type\":\"uint256\"},{\"name\":\"tributeOffered\",\"type\":\"uint256\"},{\"name\":\"tributeToken\",\"type\":\"address\"},{\"name\":\"paymentRequested\",\"type\":\"uint256\"},{\"name\":\"paymentToken\",\"type\":\"address\"},{\"name\":\"details\",\"type\":\"string\"}],\"name\":\"submitProposal\",\"outputs\":[{\"name\":\"proposalId\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"gracePeriodLength\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"result\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getProposalQueueLength\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"summoningTime\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"votingPeriodLength\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalDeposit\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"startingPeriod\",\"type\":\"uint256\"}],\"name\":\"hasVotingPeriodExpired\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"sponsorProposal\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"name\":\"uintVote\",\"type\":\"uint8\"}],\"name\":\"submitVote\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"highestIndexYesVote\",\"type\":\"uint256\"}],\"name\":\"canRagequit\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"guildBank\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastEmergencyProposalIndex\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"getProposalFlags\",\"outputs\":[{\"name\":\"\",\"type\":\"bool[6]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"periodDuration\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getProposal\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"depositToken\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getResult\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"proposalIndex\",\"type\":\"uint256\"}],\"name\":\"processProposal\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_admin\",\"type\":\"address\"},{\"name\":\"_approvedTokens\",\"type\":\"address[1]\"},{\"name\":\"_periodDuration\",\"type\":\"uint256\"},{\"name\":\"_votingPeriodLength\",\"type\":\"uint256\"},{\"name\":\"_gracePeriodLength\",\"type\":\"uint256\"},{\"name\":\"_emergencyProcessingWait\",\"type\":\"uint256\"},{\"name\":\"_bailoutWait\",\"type\":\"uint256\"},{\"name\":\"_proposalDeposit\",\"type\":\"uint256\"},{\"name\":\"_dilutionBound\",\"type\":\"uint256\"},{\"name\":\"_processingReward\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"delegateKey\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"memberAddress\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"applicant\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"sharesRequested\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"lootRequested\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"tributeOffered\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"tributeToken\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"paymentRequested\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"paymentToken\",\"type\":\"address\"}],\"name\":\"SubmitProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"delegateKey\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"memberAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"proposalQueueIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"startingPeriod\",\"type\":\"uint256\"}],\"name\":\"SponsorProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"delegateKey\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"memberAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"uintVote\",\"type\":\"uint8\"}],\"name\":\"SubmitVote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"didPass\",\"type\":\"bool\"}],\"name\":\"ProcessProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"memberAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"sharesToBurn\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"lootToBurn\",\"type\":\"uint256\"}],\"name\":\"Ragequit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"applicantAddress\",\"type\":\"address\"}],\"name\":\"CancelProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"memberAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"newDelegateKey\",\"type\":\"address\"}],\"name\":\"UpdateDelegateKey\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"SummonComplete\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{\"submitProposal(address,uint256,uint256,uint256,address,uint256,address,string)\":{\"notice\":\"***************\\r PROPOSAL FUNCTIONS\\r****************\"}}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Governance.sol\":\"Governance\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Governance.sol\":{\"keccak256\":\"0x6008b164e82e38bbae1f88843ec8963a73a722963b941dd9bde72d4a0e849d80\",\"urls\":[\"bzzr://310d76b367fcb8cd744884b5e57e2a08ee9995ab845909d50f11f14c5f530273\",\"dweb:/ipfs/QmRVebN3g2R9R7HENS45ctw5Cn4wGLr65f8nGjtYkPW2jb\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol\":{\"keccak256\":\"0xa8ace5b5ac3322c9019470d2a1ad1342ef5d984da3d4818554e703b65ceda667\",\"urls\":[\"bzzr://b38168eab9d05f21a7576958f33878d9d31877a12f1f14bda390f3f4fbdaa2a4\",\"dweb:/ipfs/QmWa9cX9gzUkyM9yVwfhd6FsSeh1jpV62sBzdGJm6jRPRX\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol\":{\"keccak256\":\"0x8d08add2e57d2885eb9cda96d2ce54056015247de9adfea8e13c78bb2d9233f2\",\"urls\":[\"bzzr://24804e36486f935a9e98bf507193d1b160db755edba6c9d124a894aef3741ada\",\"dweb:/ipfs/QmauQVeYbGgqJDNxKAceFj1hFD1gfCfAXNBA8vCh3aGYKA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", + "bytecode": "0x608060405260006009819055600a819055600c805460ff19169055600d553480156200002a57600080fd5b5060405162002d5238038062002d5283398181016040526101408110156200005157600080fd5b50805160408201516060830151608084015160a085015160c086015160e08701516101008801516101208901516000805460ff191660011790559798602001976001600160a01b038a166200010757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f61646d696e2063616e6e6f742062652030000000000000000000000000000000604482015290519081900360640190fd5b600088116200017757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5f706572696f644475726174696f6e2063616e6e6f7420626520300000000000604482015290519081900360640190fd5b60008711620001e757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5f766f74696e67506572696f644c656e6774682063616e6e6f74206265203000604482015290519081900360640190fd5b670de0b6b3a76400008711156200024a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018062002d0d6021913960400191505060405180910390fd5b670de0b6b3a7640000861115620002c257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f5f6772616365506572696f644c656e6774682065786365656473206c696d6974604482015290519081900360640190fd5b600085116200031d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018062002d2e6024913960400191505060405180910390fd5b60008054610100600160a81b0319166101006001600160a01b038d160217815589906020020151600780546001600160a01b0319166001600160a01b0390921691909117905560005b60018110156200044e5760008a82600181106200037f57fe5b60200201516001600160a01b03161415620003fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f5f617070726f766564546f6b656e2063616e6e6f742062652030000000000000604482015290519081900360640190fd5b600e8a82600181106200040a57fe5b6020908102919091015182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b03909316929092179091550162000366565b506040516200045d9062000586565b604051809103906000f0801580156200047a573d6000803e3d6000fd5b50600880546001600160a01b03199081166001600160a01b039384161790915560018a815560028a815560038a815560048a9055600588905542600655604080516080810182526000805461010090819004891680845260208085018981528587018a815260608701868152938652600f8352878620965187548d16908e161787559051868b015551978501805460ff1916981515989098179097555192909401919091558054839004871680825260108552828220805490971617909555600a8490559354845193845293519304909316927f03995a801b13c36325306deef859ef977ce61c6e15a794281bf969d20482522792918290030190a25050505050505050505062000594565b61051880620027f583390190565b61225180620005a46000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80638340bbce1161010f578063b2643aab116100a2578063da35c66411610071578063da35c664146106a8578063de292789146106b0578063e63bc62d146106b8578063f851a440146106d5576101e5565b8063b2643aab1461063b578063b470aade14610690578063b9e2bea014610698578063c89039c5146106a0576101e5565b806399653fbe116100de57806399653fbe146105e6578063a3dc38001461060e578063a42afd291461062b578063a44a5e7e14610633576101e5565b80638340bbce1461059c5780638b15a605146105a45780639425a476146105ac5780639746d940146105c9576101e5565b80633b214a741161018757806363858f2d1161015657806363858f2d1461057c5780636537214714610584578063797daf701461058c5780637d5b6c7214610594576101e5565b80633b214a741461043d578063402c17941461045a578063505afd7414610480578063590f940b1461049c576101e5565b806308ae4b0c116101c357806308ae4b0c1461039e5780631dafede0146103f45780631e2362ec1461042d5780633a98ef3914610435576101e5565b8063013cf08b146101ea578063044a0ca814610334578063086146d214610384575b600080fd5b6102076004803603602081101561020057600080fd5b50356106dd565b604051808f6001600160a01b03166001600160a01b031681526020018e6001600160a01b03166001600160a01b031681526020018d6001600160a01b03166001600160a01b031681526020018c81526020018b81526020018a8152602001896001600160a01b03166001600160a01b03168152602001888152602001876001600160a01b03166001600160a01b0316815260200186815260200185815260200184815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156102ec5781810151838201526020016102d4565b50505050905090810190601f1680156103195780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b6103606004803603604081101561034a57600080fd5b506001600160a01b038135169060200135610840565b6040518082600281111561037057fe5b60ff16815260200191505060405180910390f35b61038c610947565b60408051918252519081900360200190f35b6103c4600480360360208110156103b457600080fd5b50356001600160a01b0316610976565b604080516001600160a01b0390951685526020850193909352901515838301526060830152519081900360800190f35b6104116004803603602081101561040a57600080fd5b50356109ad565b604080516001600160a01b039092168252519081900360200190f35b61038c6109d4565b61038c6109da565b61038c6004803603602081101561045357600080fd5b50356109e0565b6104116004803603602081101561047057600080fd5b50356001600160a01b03166109fe565b610488610a19565b604080519115158252519081900360200190f35b61038c60048036036101008110156104b357600080fd5b6001600160a01b038235811692602081013592604082013592606083013592608081013582169260a08201359260c0830135169190810190610100810160e082013564010000000081111561050757600080fd5b82018360208201111561051957600080fd5b8035906020019184600183028401116401000000008311171561053b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a22945050505050565b61038c610b5d565b61038c610b63565b61038c610b69565b61038c610b6f565b61038c610b75565b61038c610b7b565b610488600480360360208110156105c257600080fd5b5035610b81565b61038c600480360360208110156105df57600080fd5b5035610ba8565b61060c600480360360408110156105fc57600080fd5b508035906020013560ff16610ee5565b005b6104886004803603602081101561062457600080fd5b50356112eb565b610411611394565b61038c6113a3565b6106586004803603602081101561065157600080fd5b50356113a9565b604051808260c080838360005b8381101561067d578181015183820152602001610665565b5050505090500191505060405180910390f35b61038c611413565b61038c611419565b61041161141f565b61038c61142e565b61038c611434565b61060c600480360360208110156106ce57600080fd5b503561143a565b610411611736565b60116020528060005260406000206000915090508060000160009054906101000a90046001600160a01b0316908060010160009054906101000a90046001600160a01b0316908060020160009054906101000a90046001600160a01b0316908060030154908060040154908060050154908060060160009054906101000a90046001600160a01b0316908060070154908060080160009054906101000a90046001600160a01b03169080600901549080600a01549080600b01549080600d018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108305780601f1061080557610100808354040283529160200191610830565b820191906000526020600020905b81548152906001019060200180831161081357829003601f168201915b50505050509080600e015490508e565b6001600160a01b0382166000908152600f602052604081206002015460ff166108a8576040805162461bcd60e51b81526020600482015260156024820152741b595b58995c88191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b60125482106108f8576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b601160006012848154811061090957fe5b6000918252602080832090910154835282810193909352604091820181206001600160a01b0387168252600f0190925290205460ff16905092915050565b60006109706001546109646006544261174a90919063ffffffff16565b9063ffffffff61175f16565b90505b90565b600f6020526000908152604090208054600182015460028301546003909301546001600160a01b0390921692909160ff9091169084565b600e81815481106109ba57fe5b6000918252602090912001546001600160a01b0316905081565b60045481565b600a5481565b601281815481106109ed57fe5b600091825260209091200154905081565b6010602052600090815260409020546001600160a01b031681565b600c5460ff1681565b6000805460ff16610a68576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff19169055670de0b6b3a7640000881115610acf576040805162461bcd60e51b815260206004820152601960248201527f746f6f206d616e79207368617265732072657175657374656400000000000000604482015290519081900360640190fd5b6001600160a01b038916610b22576040805162461bcd60e51b815260206004820152601560248201527406170706c6963616e742063616e6e6f74206265203605c1b604482015290519081900360640190fd5b610b2a611f66565b610b3b8a8a8a8a8a8a8a8a89611781565b5050600954600019016000805460ff1916600117905598975050505050505050565b60035481565b600b5481565b60125490565b60065481565b60025481565b60055481565b6000610b9860025483611a4290919063ffffffff16565b610ba0610947565b101592915050565b6000805460ff16610bee576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff19168155338152601060209081526040808320546001600160a01b03168352600f909152902060010154610c60576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b600082815260116020526040902060018101546001600160a01b0316610ccd576040805162461bcd60e51b815260206004820181905260248201527f70726f706f73616c206d7573742068617665206265656e2070726f706f736564604482015290519081900360640190fd5b600c81015460ff1615610d115760405162461bcd60e51b81526004018080602001828103825260238152602001806121b56023913960400191505060405180910390fd5b600c8101546301000000900460ff1615610d72576040805162461bcd60e51b815260206004820152601b60248201527f70726f706f73616c20686173206265656e2063616e63656c6c65640000000000604482015290519081900360640190fd5b6000610de76001610ddb610d84610947565b60125415610dd35760128054601191600091610da790600163ffffffff61174a16565b81548110610db157fe5b9060005260206000200154815260200190815260200160002060090154610dd6565b60005b611a5b565b9063ffffffff611a4216565b60098301819055336000818152601060205260408120546002860180546001600160a01b0319166001600160a01b039092169182179055600c8601805460ff19166001908117909155601280548083018255938190527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449093018990559154939450928392917f2a383a979381335e3eb401ac01dd8083e024ff0256bf5338456ffc0063390bbd918991610e9b919061174a565b604080519283526020830191909152818101879052519081900360600190a3601254610ece90600163ffffffff61174a16565b93505050506000805460ff19166001179055919050565b60005460ff16610f2a576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff19168155338152601060209081526040808320546001600160a01b03168352600f909152902060010154610f9c576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b336000908152601060209081526040808320546001600160a01b0316808452600f9092529091206012548410611013576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6000601160006012878154811061102657fe5b90600052602060002001548152602001908152602001600020905060038460ff161061108f576040805162461bcd60e51b81526020600482015260136024820152726d757374206265206c657373207468616e203360681b604482015290519081900360640190fd5b60008460ff1660028111156110a057fe5b90506110af8260090154610b81565b156110eb5760405162461bcd60e51b81526004018080602001828103825260228152602001806121d86022913960400191505060405180910390fd5b6001600160a01b0384166000908152600f8301602052604081205460ff16600281111561111457fe5b14611166576040805162461bcd60e51b815260206004820152601860248201527f6d656d6265722068617320616c726561647920766f7465640000000000000000604482015290519081900360640190fd5b600181600281111561117457fe5b148061118b5750600281600281111561118957fe5b145b6111dc576040805162461bcd60e51b815260206004820152601d60248201527f766f7465206d7573742062652065697468657220596573206f72204e6f000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600f830160205260409020805482919060ff1916600183600281111561120d57fe5b0217905550600181600281111561122057fe5b141561125d576001830154600a83015461123f9163ffffffff611a4216565b600a830155600383015486111561125857600383018690555b611290565b600281600281111561126b57fe5b1415611290576001830154600b83015461128a9163ffffffff611a4216565b600b8301555b6040805160ff8716815290516001600160a01b03861691339189917f29bf0061f2faa9daa482f061b116195432d435536d8af4ae6b3c5dd78223679b919081900360200190a450506000805460ff1916600117905550505050565b601254600090821061133e576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b601160006012848154811061134f57fe5b90600052602060002001548152602001908152602001600020600c0160016006811061137757fe5b602081049091015460ff601f9092166101000a9004169050919050565b6008546001600160a01b031681565b600d5481565b6113b1611f66565b600082815260116020526040808220815160c081019283905292600c909101916006918390855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116113d8575094979650505050505050565b60015481565b60095490565b6007546001600160a01b031681565b60095481565b600b5490565b60005460ff1661147f576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff1916905561149281611a72565b6000601282815481106114a157fe5b600091825260208083209190910154808352601190915260408220600c8101805461ff00191661010017905590925090806114db85611d83565b91509150670de0b6b3a76400006115018460030154600a54611a4290919063ffffffff16565b111561150c57600091505b81156116e3576001600b55600c8301805462ff000019166201000017905582546001600160a01b03166000908152600f602052604090206002015460ff16156115a257600383015483546001600160a01b03166000908152600f60205260409020600101546115809163ffffffff611a4216565b83546001600160a01b03166000908152600f60205260409020600101556116c4565b82546001600160a01b039081166000908152601060209081526040808320549093168252600f9052206002015460ff16156116265782546001600160a01b0390811660009081526010602090815260408083205490931680835283832080546001600160a01b03199081168317909155600f90925292909120805490911690911790555b6040805160808101825284546001600160a01b0390811680835260038088015460208086019182526001868801818152600060608901818152968152600f8452898120985189549089166001600160a01b0319918216178a559451928901929092555160028801805491151560ff19909216919091179055935195909201949094558754909216808252601090925292909220805490911690911790555b6003830154600a546116db9163ffffffff611a4216565b600a556116e9565b6002600b555b6040805183151581529051859187917f86f74240ecee9e4230d26ff92e17fee978460d9c0f78f5c88b2864c9e7a494279181900360200190a350506000805460ff19166001179055505050565b60005461010090046001600160a01b031681565b60008282111561175957600080fd5b50900390565b600080821161176d57600080fd5b600082848161177857fe5b04949350505050565b611789611f84565b604051806101e001604052808b6001600160a01b03168152602001336001600160a01b0316815260200160006001600160a01b031681526020018a8152602001898152602001888152602001876001600160a01b03168152602001868152602001856001600160a01b03168152602001600081526020016000815260200160008152602001838152602001848152602001600081525090508060116000600954815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060e082015181600701556101008201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c0190600661197a92919061202d565b506101a0820151805161199791600d8401916020909101906120bf565b506101c09190910151600e90910155336000818152601060209081526040918290205460095483519081529182018d90528183018c9052606082018b90526001600160a01b038a8116608084015260a083018a905288811660c0840152925190831693928e1692849290917f1facc413faf060d5cc5c8bc12d8fe29e5c530eb98e2475c76733ec749787a7509181900360e00190a45050600980546001019055505050505050505050565b600082820183811015611a5457600080fd5b9392505050565b600081831015611a6b5781611a54565b5090919050565b6012548110611ac2576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b611aca611f84565b6011600060128481548110611adb57fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff161515815260206001928301818104948501949093039092029101808411611bb157505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152938201939291830182828015611c745780601f10611c4957610100808354040283529160200191611c74565b820191906000526020600020905b815481529060010190602001808311611c5757829003601f168201915b50505050508152602001600e820154815250509050806101800151600160068110611c9b57fe5b602002015115611cdc5760405162461bcd60e51b81526004018080602001828103825260238152602001806121fa6023913960400191505060405180910390fd5b811580611d445750601160006012611cfb85600163ffffffff61174a16565b81548110611d0557fe5b90600052602060002001548152602001908152602001600020600c01600160068110611d2d57fe5b602081049091015460ff601f9092166101000a9004165b611d7f5760405162461bcd60e51b81526004018080602001828103825260238152602001806121926023913960400191505060405180910390fd5b5050565b600080611d8e611f84565b6011600060128681548110611d9f57fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff161515815260206001928301818104948501949093039092029101808411611e7557505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152938201939291830182828015611f385780601f10611f0d57610100808354040283529160200191611f38565b820191906000526020600020905b815481529060010190602001808311611f1b57829003601f168201915b5050509183525050600e91909101546020909101526101608101516101409091015111946000945092505050565b6040518060c001604052806006906020820280388339509192915050565b60405180610280016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001612019611f66565b815260200160608152602001600081525090565b6001830191839082156120af5791602002820160005b8382111561208057835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302612043565b80156120ad5782816101000a81549060ff0219169055600101602081600001049283019260010302612080565b505b506120bb929150612139565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061210057805160ff191683800117855561212d565b8280016001018555821561212d579182015b8281111561212d578251825591602001919060010190612112565b506120bb929150612157565b61097391905b808211156120bb57805460ff1916815560010161213f565b61097391905b808211156120bb576000815560010161215d56fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c0070726576696f75732070726f706f73616c206d7573742062652070726f63657373656470726f706f73616c2068617320616c7265616479206265656e2073706f6e736f72656470726f706f73616c20766f74696e6720706572696f6420686173206578706972656470726f706f73616c2068617320616c7265616479206265656e2070726f636573736564a265627a7a723058204aadd5a65785cc61785723b74e34bd108bbb4ad24956b9ecd95015be2e7f326b64736f6c63430005090032608060405234801561001057600080fd5b50600080546001600160a01b031916331790556104e6806100326000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301e3366714610046578063732c8f57146100905780638da5cb5b1461014f575b600080fd5b61007c6004803603606081101561005c57600080fd5b506001600160a01b03813581169160208101359091169060400135610173565b604080519115158252519081900360200190f35b61007c600480360360808110156100a657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156100dd57600080fd5b8201836020820111156100ef57600080fd5b8035906020019184602083028401116401000000008311171561011157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061026c945050505050565b61015761044e565b604080516001600160a01b039092168252519081900360200190f35b600080546001600160a01b0316331461018b57600080fd5b836001600160a01b0316836001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398846040518082815260200191505060405180910390a3836001600160a01b031663a9059cbb84846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561023657600080fd5b505af115801561024a573d6000803e3d6000fd5b505050506040513d602081101561026057600080fd5b505190505b9392505050565b600080546001600160a01b0316331461028457600080fd5b60005b82518110156104425760006103318483815181106102a157fe5b60200260200101516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156102fe57600080fd5b505afa158015610312573d6000803e3d6000fd5b505050506040513d602081101561032857600080fd5b5051878761045d565b905083828151811061033f57fe5b60200260200101516001600160a01b0316876001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398836040518082815260200191505060405180910390a383828151811061039d57fe5b60200260200101516001600160a01b031663a9059cbb88836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b505050506040513d602081101561042e57600080fd5b505161043957600080fd5b50600101610287565b50600195945050505050565b6000546001600160a01b031681565b60008161046957600080fd5b8361047657506000610265565b8383028385828161048357fe5b04141561049c5782818161049357fe5b04915050610265565b838386816104a657fe5b04029594505050505056fea265627a7a72305820600a90e68081feae486f77ec58352ebe4f959e2362fac128a8d418122da6121464736f6c634300050900325f766f74696e67506572696f644c656e6774682065786365656473206c696d69745f656d657267656e637950726f63657373696e67576169742063616e6e6f742062652030", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101e55760003560e01c80638340bbce1161010f578063b2643aab116100a2578063da35c66411610071578063da35c664146106a8578063de292789146106b0578063e63bc62d146106b8578063f851a440146106d5576101e5565b8063b2643aab1461063b578063b470aade14610690578063b9e2bea014610698578063c89039c5146106a0576101e5565b806399653fbe116100de57806399653fbe146105e6578063a3dc38001461060e578063a42afd291461062b578063a44a5e7e14610633576101e5565b80638340bbce1461059c5780638b15a605146105a45780639425a476146105ac5780639746d940146105c9576101e5565b80633b214a741161018757806363858f2d1161015657806363858f2d1461057c5780636537214714610584578063797daf701461058c5780637d5b6c7214610594576101e5565b80633b214a741461043d578063402c17941461045a578063505afd7414610480578063590f940b1461049c576101e5565b806308ae4b0c116101c357806308ae4b0c1461039e5780631dafede0146103f45780631e2362ec1461042d5780633a98ef3914610435576101e5565b8063013cf08b146101ea578063044a0ca814610334578063086146d214610384575b600080fd5b6102076004803603602081101561020057600080fd5b50356106dd565b604051808f6001600160a01b03166001600160a01b031681526020018e6001600160a01b03166001600160a01b031681526020018d6001600160a01b03166001600160a01b031681526020018c81526020018b81526020018a8152602001896001600160a01b03166001600160a01b03168152602001888152602001876001600160a01b03166001600160a01b0316815260200186815260200185815260200184815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156102ec5781810151838201526020016102d4565b50505050905090810190601f1680156103195780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b6103606004803603604081101561034a57600080fd5b506001600160a01b038135169060200135610840565b6040518082600281111561037057fe5b60ff16815260200191505060405180910390f35b61038c610947565b60408051918252519081900360200190f35b6103c4600480360360208110156103b457600080fd5b50356001600160a01b0316610976565b604080516001600160a01b0390951685526020850193909352901515838301526060830152519081900360800190f35b6104116004803603602081101561040a57600080fd5b50356109ad565b604080516001600160a01b039092168252519081900360200190f35b61038c6109d4565b61038c6109da565b61038c6004803603602081101561045357600080fd5b50356109e0565b6104116004803603602081101561047057600080fd5b50356001600160a01b03166109fe565b610488610a19565b604080519115158252519081900360200190f35b61038c60048036036101008110156104b357600080fd5b6001600160a01b038235811692602081013592604082013592606083013592608081013582169260a08201359260c0830135169190810190610100810160e082013564010000000081111561050757600080fd5b82018360208201111561051957600080fd5b8035906020019184600183028401116401000000008311171561053b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a22945050505050565b61038c610b5d565b61038c610b63565b61038c610b69565b61038c610b6f565b61038c610b75565b61038c610b7b565b610488600480360360208110156105c257600080fd5b5035610b81565b61038c600480360360208110156105df57600080fd5b5035610ba8565b61060c600480360360408110156105fc57600080fd5b508035906020013560ff16610ee5565b005b6104886004803603602081101561062457600080fd5b50356112eb565b610411611394565b61038c6113a3565b6106586004803603602081101561065157600080fd5b50356113a9565b604051808260c080838360005b8381101561067d578181015183820152602001610665565b5050505090500191505060405180910390f35b61038c611413565b61038c611419565b61041161141f565b61038c61142e565b61038c611434565b61060c600480360360208110156106ce57600080fd5b503561143a565b610411611736565b60116020528060005260406000206000915090508060000160009054906101000a90046001600160a01b0316908060010160009054906101000a90046001600160a01b0316908060020160009054906101000a90046001600160a01b0316908060030154908060040154908060050154908060060160009054906101000a90046001600160a01b0316908060070154908060080160009054906101000a90046001600160a01b03169080600901549080600a01549080600b01549080600d018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108305780601f1061080557610100808354040283529160200191610830565b820191906000526020600020905b81548152906001019060200180831161081357829003601f168201915b50505050509080600e015490508e565b6001600160a01b0382166000908152600f602052604081206002015460ff166108a8576040805162461bcd60e51b81526020600482015260156024820152741b595b58995c88191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b60125482106108f8576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b601160006012848154811061090957fe5b6000918252602080832090910154835282810193909352604091820181206001600160a01b0387168252600f0190925290205460ff16905092915050565b60006109706001546109646006544261174a90919063ffffffff16565b9063ffffffff61175f16565b90505b90565b600f6020526000908152604090208054600182015460028301546003909301546001600160a01b0390921692909160ff9091169084565b600e81815481106109ba57fe5b6000918252602090912001546001600160a01b0316905081565b60045481565b600a5481565b601281815481106109ed57fe5b600091825260209091200154905081565b6010602052600090815260409020546001600160a01b031681565b600c5460ff1681565b6000805460ff16610a68576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff19169055670de0b6b3a7640000881115610acf576040805162461bcd60e51b815260206004820152601960248201527f746f6f206d616e79207368617265732072657175657374656400000000000000604482015290519081900360640190fd5b6001600160a01b038916610b22576040805162461bcd60e51b815260206004820152601560248201527406170706c6963616e742063616e6e6f74206265203605c1b604482015290519081900360640190fd5b610b2a611f66565b610b3b8a8a8a8a8a8a8a8a89611781565b5050600954600019016000805460ff1916600117905598975050505050505050565b60035481565b600b5481565b60125490565b60065481565b60025481565b60055481565b6000610b9860025483611a4290919063ffffffff16565b610ba0610947565b101592915050565b6000805460ff16610bee576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff19168155338152601060209081526040808320546001600160a01b03168352600f909152902060010154610c60576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b600082815260116020526040902060018101546001600160a01b0316610ccd576040805162461bcd60e51b815260206004820181905260248201527f70726f706f73616c206d7573742068617665206265656e2070726f706f736564604482015290519081900360640190fd5b600c81015460ff1615610d115760405162461bcd60e51b81526004018080602001828103825260238152602001806121b56023913960400191505060405180910390fd5b600c8101546301000000900460ff1615610d72576040805162461bcd60e51b815260206004820152601b60248201527f70726f706f73616c20686173206265656e2063616e63656c6c65640000000000604482015290519081900360640190fd5b6000610de76001610ddb610d84610947565b60125415610dd35760128054601191600091610da790600163ffffffff61174a16565b81548110610db157fe5b9060005260206000200154815260200190815260200160002060090154610dd6565b60005b611a5b565b9063ffffffff611a4216565b60098301819055336000818152601060205260408120546002860180546001600160a01b0319166001600160a01b039092169182179055600c8601805460ff19166001908117909155601280548083018255938190527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449093018990559154939450928392917f2a383a979381335e3eb401ac01dd8083e024ff0256bf5338456ffc0063390bbd918991610e9b919061174a565b604080519283526020830191909152818101879052519081900360600190a3601254610ece90600163ffffffff61174a16565b93505050506000805460ff19166001179055919050565b60005460ff16610f2a576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff19168155338152601060209081526040808320546001600160a01b03168352600f909152902060010154610f9c576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b336000908152601060209081526040808320546001600160a01b0316808452600f9092529091206012548410611013576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6000601160006012878154811061102657fe5b90600052602060002001548152602001908152602001600020905060038460ff161061108f576040805162461bcd60e51b81526020600482015260136024820152726d757374206265206c657373207468616e203360681b604482015290519081900360640190fd5b60008460ff1660028111156110a057fe5b90506110af8260090154610b81565b156110eb5760405162461bcd60e51b81526004018080602001828103825260228152602001806121d86022913960400191505060405180910390fd5b6001600160a01b0384166000908152600f8301602052604081205460ff16600281111561111457fe5b14611166576040805162461bcd60e51b815260206004820152601860248201527f6d656d6265722068617320616c726561647920766f7465640000000000000000604482015290519081900360640190fd5b600181600281111561117457fe5b148061118b5750600281600281111561118957fe5b145b6111dc576040805162461bcd60e51b815260206004820152601d60248201527f766f7465206d7573742062652065697468657220596573206f72204e6f000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600f830160205260409020805482919060ff1916600183600281111561120d57fe5b0217905550600181600281111561122057fe5b141561125d576001830154600a83015461123f9163ffffffff611a4216565b600a830155600383015486111561125857600383018690555b611290565b600281600281111561126b57fe5b1415611290576001830154600b83015461128a9163ffffffff611a4216565b600b8301555b6040805160ff8716815290516001600160a01b03861691339189917f29bf0061f2faa9daa482f061b116195432d435536d8af4ae6b3c5dd78223679b919081900360200190a450506000805460ff1916600117905550505050565b601254600090821061133e576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b601160006012848154811061134f57fe5b90600052602060002001548152602001908152602001600020600c0160016006811061137757fe5b602081049091015460ff601f9092166101000a9004169050919050565b6008546001600160a01b031681565b600d5481565b6113b1611f66565b600082815260116020526040808220815160c081019283905292600c909101916006918390855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116113d8575094979650505050505050565b60015481565b60095490565b6007546001600160a01b031681565b60095481565b600b5490565b60005460ff1661147f576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff1916905561149281611a72565b6000601282815481106114a157fe5b600091825260208083209190910154808352601190915260408220600c8101805461ff00191661010017905590925090806114db85611d83565b91509150670de0b6b3a76400006115018460030154600a54611a4290919063ffffffff16565b111561150c57600091505b81156116e3576001600b55600c8301805462ff000019166201000017905582546001600160a01b03166000908152600f602052604090206002015460ff16156115a257600383015483546001600160a01b03166000908152600f60205260409020600101546115809163ffffffff611a4216565b83546001600160a01b03166000908152600f60205260409020600101556116c4565b82546001600160a01b039081166000908152601060209081526040808320549093168252600f9052206002015460ff16156116265782546001600160a01b0390811660009081526010602090815260408083205490931680835283832080546001600160a01b03199081168317909155600f90925292909120805490911690911790555b6040805160808101825284546001600160a01b0390811680835260038088015460208086019182526001868801818152600060608901818152968152600f8452898120985189549089166001600160a01b0319918216178a559451928901929092555160028801805491151560ff19909216919091179055935195909201949094558754909216808252601090925292909220805490911690911790555b6003830154600a546116db9163ffffffff611a4216565b600a556116e9565b6002600b555b6040805183151581529051859187917f86f74240ecee9e4230d26ff92e17fee978460d9c0f78f5c88b2864c9e7a494279181900360200190a350506000805460ff19166001179055505050565b60005461010090046001600160a01b031681565b60008282111561175957600080fd5b50900390565b600080821161176d57600080fd5b600082848161177857fe5b04949350505050565b611789611f84565b604051806101e001604052808b6001600160a01b03168152602001336001600160a01b0316815260200160006001600160a01b031681526020018a8152602001898152602001888152602001876001600160a01b03168152602001868152602001856001600160a01b03168152602001600081526020016000815260200160008152602001838152602001848152602001600081525090508060116000600954815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060e082015181600701556101008201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c0190600661197a92919061202d565b506101a0820151805161199791600d8401916020909101906120bf565b506101c09190910151600e90910155336000818152601060209081526040918290205460095483519081529182018d90528183018c9052606082018b90526001600160a01b038a8116608084015260a083018a905288811660c0840152925190831693928e1692849290917f1facc413faf060d5cc5c8bc12d8fe29e5c530eb98e2475c76733ec749787a7509181900360e00190a45050600980546001019055505050505050505050565b600082820183811015611a5457600080fd5b9392505050565b600081831015611a6b5781611a54565b5090919050565b6012548110611ac2576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b611aca611f84565b6011600060128481548110611adb57fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff161515815260206001928301818104948501949093039092029101808411611bb157505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152938201939291830182828015611c745780601f10611c4957610100808354040283529160200191611c74565b820191906000526020600020905b815481529060010190602001808311611c5757829003601f168201915b50505050508152602001600e820154815250509050806101800151600160068110611c9b57fe5b602002015115611cdc5760405162461bcd60e51b81526004018080602001828103825260238152602001806121fa6023913960400191505060405180910390fd5b811580611d445750601160006012611cfb85600163ffffffff61174a16565b81548110611d0557fe5b90600052602060002001548152602001908152602001600020600c01600160068110611d2d57fe5b602081049091015460ff601f9092166101000a9004165b611d7f5760405162461bcd60e51b81526004018080602001828103825260238152602001806121926023913960400191505060405180910390fd5b5050565b600080611d8e611f84565b6011600060128681548110611d9f57fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff161515815260206001928301818104948501949093039092029101808411611e7557505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152938201939291830182828015611f385780601f10611f0d57610100808354040283529160200191611f38565b820191906000526020600020905b815481529060010190602001808311611f1b57829003601f168201915b5050509183525050600e91909101546020909101526101608101516101409091015111946000945092505050565b6040518060c001604052806006906020820280388339509192915050565b60405180610280016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001612019611f66565b815260200160608152602001600081525090565b6001830191839082156120af5791602002820160005b8382111561208057835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302612043565b80156120ad5782816101000a81549060ff0219169055600101602081600001049283019260010302612080565b505b506120bb929150612139565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061210057805160ff191683800117855561212d565b8280016001018555821561212d579182015b8281111561212d578251825591602001919060010190612112565b506120bb929150612157565b61097391905b808211156120bb57805460ff1916815560010161213f565b61097391905b808211156120bb576000815560010161215d56fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c0070726576696f75732070726f706f73616c206d7573742062652070726f63657373656470726f706f73616c2068617320616c7265616479206265656e2073706f6e736f72656470726f706f73616c20766f74696e6720706572696f6420686173206578706972656470726f706f73616c2068617320616c7265616479206265656e2070726f636573736564a265627a7a723058204aadd5a65785cc61785723b74e34bd108bbb4ad24956b9ecd95015be2e7f326b64736f6c63430005090032", + "sourceMap": "157:33834:13:-;;;3387:1;3356:32;;;;3424:30;;;;3596:36;;;-1:-1:-1;;3596:36:13;;;3695:45;;7008:2614;5:2:-1;;;;30:1;27;20:12;5:2;7008:2614:13;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;7008:2614:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1229:11:21;:18;;-1:-1:-1;;1229:18:21;1243:4;1229:18;;;7008:2614:13;;;;;-1:-1:-1;;;;;7409:20:13;;7401:50;;;;;-1:-1:-1;;;7401:50:13;;;;;;;;;;;;-1:-1:-1;;;7401:50:13;;;;;;;;;;;;;;;7488:1;7470:15;:19;7462:59;;;;;-1:-1:-1;;;7462:59:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;7562:1;7540:19;:23;7532:67;;;;;-1:-1:-1;;;7532:67:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;1621:6;7618:19;:47;;7610:93;;;;-1:-1:-1;;;7610:93:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1712:6;7722:18;:45;;7714:90;;;;;-1:-1:-1;;;7714:90:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7850:1;7823:24;:28;7815:77;;;;-1:-1:-1;;;7815:77:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8479:5;:14;;-1:-1:-1;;;;;;8479:14:13;-1:-1:-1;;;;;;8479:14:13;;;;;;;;;;;;;8528:18;;8506:12;:41;;-1:-1:-1;;;;;;8506:41:13;;;;;;;;8560:362;8584:22;8580:1;:26;8560:362;;;8667:1;8637:15;8653:1;8637:18;;;;;;;;;;;-1:-1:-1;;;;;8637:32:13;;;8629:71;;;;;-1:-1:-1;;;8629:71:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;8863:14;8890:15;8906:1;8890:18;;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;-1:-1;8863:47:13;;;;;;;;;;;;-1:-1:-1;;;;;;8863:47:13;-1:-1:-1;;;;;8863:47:13;;;;;;;;;;8608:3;8560:362;;;;8946:15;;;;;:::i;:::-;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;8934:9:13;:27;;-1:-1:-1;;;;;;8934:27:13;;;-1:-1:-1;;;;;8934:27:13;;;;;;;-1:-1:-1;8974:32:13;;;9017:18;:40;;;9068:17;:38;;;9117:23;:50;;;-1:-1:-1;9218:34:13;;;9375:3;-1:-1:-1;9359:19:13;9469:25;;;;;;;;-1:-1:-1;9476:5:13;;8934:27;9476:5;;;;;;9469:25;;;;;;;;;;;;;;;;;;;;;;9452:14;;;:7;:14;;;;;:42;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9452:42:13;;;;;;;;;;;;;;;;;;;;9541:5;;;;;;;9505:33;;;:26;:33;;;;;:41;;;;;;;;;9557:11;:15;;;9605:5;;9590:24;;;;;;;9605:5;;;;;;9590:24;;;;;;;;;7008:2614;;;;;;;;;;157:33834;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "157:33834:13:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:33834:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6374:45;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6374:45:13;;:::i;:::-;;;;;-1:-1:-1;;;;;6374:45:13;-1:-1:-1;;;;;6374:45:13;;;;;;-1:-1:-1;;;;;6374:45:13;-1:-1:-1;;;;;6374:45:13;;;;;;-1:-1:-1;;;;;6374:45:13;-1:-1:-1;;;;;6374:45:13;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6374:45:13;-1:-1:-1;;;;;6374:45:13;;;;;;;;;;;-1:-1:-1;;;;;6374:45:13;-1:-1:-1;;;;;6374:45:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6374:45:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33419:351;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33419:351:13;;-1:-1:-1;;;;;33419:351:13;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31742:126;;;:::i;:::-;;;;;;;;;;;;;;;;6256:41;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6256:41:13;-1:-1:-1;;;;;6256:41:13;;:::i;:::-;;;;-1:-1:-1;;;;;6256:41:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6098:30;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6098:30:13;;:::i;:::-;;;;-1:-1:-1;;;;;6098:30:13;;;;;;;;;;;;;;631:38;;;:::i;3424:30::-;;;:::i;6428:::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6428:30:13;;:::i;6304:61::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6304:61:13;-1:-1:-1;;;;;6304:61:13;;:::i;3596:36::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;9702:1460;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;9702:1460:13;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9702:1460:13;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;9702:1460:13;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9702:1460:13;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;9702:1460:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;9702:1460:13;;-1:-1:-1;9702:1460:13;;-1:-1:-1;;;;;9702:1460:13:i;559:32::-;;;:::i;3566:21::-;;;:::i;31875:108::-;;;:::i;1129:28::-;;;:::i;486:33::-;;;:::i;778:30::-;;;:::i;33243:169::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33243:169:13;;:::i;13854:2079::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13854:2079:13;;:::i;15941:1793::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15941:1793:13;;;;;;;;;:::i;:::-;;32216:246;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32216:246:13;;:::i;1293:26::-;;;:::i;3695:45::-;;;:::i;31990:134::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31990:134:13;;:::i;:::-;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;31990:134:13;;;;;;;;;;;;;;;;388:29;;;:::i;33776:92::-;;;:::i;1208:26::-;;;:::i;3356:32::-;;;:::i;33874:114::-;;;:::i;17741:3817::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17741:3817:13;;:::i;304:20::-;;;:::i;6374:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6374:45:13;;;;;;;;;;;;;-1:-1:-1;;;;;6374:45:13;;;;;;;;;;;;;-1:-1:-1;;;;;6374:45:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6374:45:13;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6374:45:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;33419:351::-;-1:-1:-1;;;;;33541:22:13;;33517:4;33541:22;;;:7;:22;;;;;:29;;;;;33533:63;;;;;-1:-1:-1;;;33533:63:13;;;;;;;;;;;;-1:-1:-1;;;33533:63:13;;;;;;;;;;;;;;;33630:13;:20;33614:36;;33606:72;;;;;-1:-1:-1;;;33606:72:13;;;;;;;;;;;;-1:-1:-1;;;33606:72:13;;;;;;;;;;;;;;;33695:9;:39;33705:13;33719;33705:28;;;;;;;;;;;;;;;;;;;;33695:39;;;;;;;;;;;;;;;-1:-1:-1;;;;;33695:68:13;;;;:53;;:68;;;;;;;;;-1:-1:-1;33419:351:13;;;;:::o;31742:126::-;31791:7;31818:42;31845:14;;31818:22;31826:13;;31818:3;:7;;:22;;;;:::i;:::-;:26;:42;:26;:42;:::i;:::-;31811:49;;31742:126;;:::o;6256:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6256:41:13;;;;;;;;;;;;:::o;6098:30::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6098:30:13;;-1:-1:-1;6098:30:13;:::o;631:38::-;;;;:::o;3424:30::-;;;;:::o;6428:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6428:30:13;:::o;6304:61::-;;;;;;;;;;;;-1:-1:-1;;;;;6304:61:13;;:::o;3596:36::-;;;;;;:::o;9702:1460::-;10018:18;1754:11:21;;;;1746:55;;;;;-1:-1:-1;;;1746:55:21;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1746:55:21;;;;;;;;;;;;;;;1893:5;1879:19;;-1:-1:-1;;1879:19:21;;;2143:6:13;10175:39;;;10167:77;;;;;-1:-1:-1;;;10167:77:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10430:23:13;;10422:57;;;;;-1:-1:-1;;;10422:57:13;;;;;;;;;;;;-1:-1:-1;;;10422:57:13;;;;;;;;;;;;;;;10820:20;;:::i;:::-;10921:136;10937:9;10948:15;10965:13;10980:14;10996:12;11010:16;11028:12;11042:7;11051:5;10921:15;:136::i;:::-;-1:-1:-1;;11075:13:13;;-1:-1:-1;;11075:17:13;2059:11:21;:18;;-1:-1:-1;;2059:18:21;2073:4;2059:18;;;9702:1460:13;;-1:-1:-1;;;;;;;;9702:1460:13:o;559:32::-;;;;:::o;3566:21::-;;;;:::o;31875:108::-;31956:13;:20;31875:108;:::o;1129:28::-;;;;:::o;486:33::-;;;;:::o;778:30::-;;;;:::o;33243:169::-;33320:4;33366:38;33385:18;;33366:14;:18;;:38;;;;:::i;:::-;33344:18;:16;:18::i;:::-;:60;;;33243:169;-1:-1:-1;;33243:169:13:o;13854:2079::-;13943:7;1754:11:21;;;;1746:55;;;;;-1:-1:-1;;;1746:55:21;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1746:55:21;;;;;;;;;;;;;;;1893:5;1879:19;;-1:-1:-1;;1879:19:21;;;6938:10:13;6911:38;;:26;:38;;;;;;;;;-1:-1:-1;;;;;6911:38:13;6903:47;;:7;:47;;;;;-1:-1:-1;6903:54:13;;6895:85;;;;;-1:-1:-1;;;6895:85:13;;;;;;;;;;;;-1:-1:-1;;;6895:85:13;;;;;;;;;;;;;;;14207:25;14235:21;;;:9;:21;;;;;14277:17;;;;-1:-1:-1;;;;;14277:17:13;14269:76;;;;;-1:-1:-1;;;14269:76:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14365:14;;;:17;;;14364:18;14356:66;;;;-1:-1:-1;;;14356:66:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14442:14;;;:17;;;;;;14441:18;14433:58;;;;;-1:-1:-1;;;14433:58:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;15279:22;15304:169;15471:1;15304:162;15322:18;:16;:18::i;:::-;15355:13;:20;:25;:100;;15397:13;15411:20;;15387:9;;:53;;15411:27;;15436:1;15411:27;:24;:27;:::i;:::-;15397:42;;;;;;;;;;;;;;;;15387:53;;;;;;;;;;;:68;;;15355:100;;;15383:1;15355:100;15304:3;:162::i;:::-;:166;:169;:166;:169;:::i;:::-;15486:23;;;:40;;;15590:10;15539:21;15563:38;;;:26;:38;;;;;;15612:16;;;:32;;-1:-1:-1;;;;;;15612:32:13;-1:-1:-1;;;;;15563:38:13;;;15612:32;;;;;15657:14;;;:24;;-1:-1:-1;;15657:24:13;-1:-1:-1;15657:24:13;;;;;;15735:13;27:10:-1;;23:18;;;45:23;;15735:30:13;;;;;;;;;;;15836:20;;15486:40;;-1:-1:-1;15563:38:13;;;15590:10;15781:99;;15735:30;;15836:27;;:20;:24;:27::i;:::-;15781:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;15898:13;:20;:27;;15923:1;15898:27;:24;:27;:::i;:::-;15891:34;;;;;2059:11:21;:18;;-1:-1:-1;;2059:18:21;2073:4;2059:18;;;13854:2079:13;;-1:-1:-1;13854:2079:13:o;15941:1793::-;1754:11:21;;;;1746:55;;;;;-1:-1:-1;;;1746:55:21;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1746:55:21;;;;;;;;;;;;;;;1893:5;1879:19;;-1:-1:-1;;1879:19:21;;;6938:10:13;6911:38;;:26;:38;;;;;;;;;-1:-1:-1;;;;;6911:38:13;6903:47;;:7;:47;;;;;-1:-1:-1;6903:54:13;;6895:85;;;;;-1:-1:-1;;;6895:85:13;;;;;;;;;;;;-1:-1:-1;;;6895:85:13;;;;;;;;;;;;;;;16095:10;16044:21;16068:38;;;:26;:38;;;;;;;;;-1:-1:-1;;;;;16068:38:13;16141:22;;;:7;:22;;;;;;16200:13;:20;16184:36;;16176:72;;;;;-1:-1:-1;;;16176:72:13;;;;;;;;;;;;-1:-1:-1;;;16176:72:13;;;;;;;;;;;;;;;16259:25;16287:9;:39;16297:13;16311;16297:28;;;;;;;;;;;;;;;;16287:39;;;;;;;;;;;16259:67;;16358:1;16347:8;:12;;;16339:44;;;;;-1:-1:-1;;;16339:44:13;;;;;;;;;;;;-1:-1:-1;;;16339:44:13;;;;;;;;;;;;;;;16394:9;16411:8;16406:14;;;;;;;;;;16394:26;;16542:47;16565:8;:23;;;16542:22;:47::i;:::-;16541:48;16533:95;;;;-1:-1:-1;;;16533:95:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16647:37:13;;16688:9;16647:37;;;:22;;;:37;;;;;;;;:50;;;;;;;;;16639:87;;;;;-1:-1:-1;;;16639:87:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;16753:8;16745:4;:16;;;;;;;;;:35;;;-1:-1:-1;16773:7:13;16765:4;:15;;;;;;;;;16745:35;16737:77;;;;;-1:-1:-1;;;16737:77:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16827:37:13;;;;;;:22;;;:37;;;;;:44;;16867:4;;16827:37;-1:-1:-1;;16827:44:13;-1:-1:-1;16867:4:13;16827:44;;;;;;;;;;;;-1:-1:-1;16896:8:13;16888:4;:16;;;;;;;;;16884:763;;;16963:13;;;;16941:17;;;;:36;;;:21;:36;:::i;:::-;16921:17;;;:56;17109:26;;;;17093:42;;17089:125;;;17156:26;;;:42;;;17089:125;16884:763;;;17557:7;17549:4;:15;;;;;;;;;17545:102;;;17621:13;;;;17600:16;;;;:35;;;:20;:35;:::i;:::-;17581:16;;;:54;17545:102;17664:62;;;;;;;;;;-1:-1:-1;;;;;17664:62:13;;;17690:10;;17675:13;;17664:62;;;;;;;;;;-1:-1:-1;;2059:11:21;:18;;-1:-1:-1;;2059:18:21;2073:4;2059:18;;;-1:-1:-1;;;;15941:1793:13:o;32216:246::-;32334:13;:20;32287:4;;32312:42;;32304:78;;;;;-1:-1:-1;;;32304:78:13;;;;;;;;;;;;-1:-1:-1;;;32304:78:13;;;;;;;;;;;;;;;32400:9;:45;32410:13;32424:19;32410:34;;;;;;;;;;;;;;;;32400:45;;;;;;;;;;;:51;;32452:1;32400:54;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32216:246:13;;;:::o;1293:26::-;;;-1:-1:-1;;;;;1293:26:13;;:::o;3695:45::-;;;;:::o;31990:134::-;32057:14;;:::i;:::-;32090:21;;;;:9;:21;;;;;;32083:34;;;;;;;;;;32090:27;;;;;32083:34;;32090:27;;32083:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32083:34:13;;31990:134;-1:-1:-1;;;;;;;31990:134:13:o;388:29::-;;;;:::o;33776:92::-;33847:13;;33776:92;:::o;1208:26::-;;;-1:-1:-1;;;;;1208:26:13;;:::o;3356:32::-;;;;:::o;33874:114::-;33943:6;;33874:114;:::o;17741:3817::-;1754:11:21;;;;1746:55;;;;;-1:-1:-1;;;1746:55:21;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1746:55:21;;;;;;;;;;;;;;;1893:5;1879:19;;-1:-1:-1;;1879:19:21;;;17819:45:13;17850:13;17819:30;:45::i;:::-;17876:18;17897:13;17911;17897:28;;;;;;;;;;;;;;;;;;;;;17963:21;;;:9;:21;;;;;;18090:14;;;:24;;-1:-1:-1;;18090:24:13;;;;;17897:28;;-1:-1:-1;17963:21:13;17897:28;18182:23;18191:13;18182:8;:23::i;:::-;18139:66;;;;2143:6;18497:41;18513:8;:24;;;18497:11;;:15;;:41;;;;:::i;:::-;:64;18493:112;;;18588:5;18578:15;;18493:112;18971:7;18967:2471;;;19002:1;18995:6;:8;19017:14;;;:24;;-1:-1:-1;;19017:24:13;;;;;19169:18;;-1:-1:-1;;;;;19169:18:13;-1:-1:-1;19161:27:13;;;:7;19017:17;19161:27;;;;19032:1;19161:34;;19017:24;19161:34;19157:1271;;;19291:24;;;;19260:18;;-1:-1:-1;;;;;19260:18:13;19252:27;;;;:7;:27;;;;;-1:-1:-1;19252:34:13;;:64;;:38;:64::i;:::-;19223:18;;-1:-1:-1;;;;;19223:18:13;19215:27;;;;:7;:27;;;;;-1:-1:-1;19215:34:13;:101;19157:1271;;;19707:18;;-1:-1:-1;;;;;19707:18:13;;;19672:55;19680:46;;;:26;:46;;;;;;;;;;;;19672:55;;:7;:55;;;:62;;;;;19668:345;;;19812:18;;-1:-1:-1;;;;;19812:18:13;;;19758:24;19785:46;;;:26;:46;;;;;;;;;;;;19853:44;;;;;;:63;;-1:-1:-1;;;;;;19853:63:13;;;;;;;;19938:7;:25;;;;;;;:56;;;;;;;;;;19668:345;20129:61;;;;;;;;20136:18;;-1:-1:-1;;;;;20136:18:13;;;20129:61;;;20156:24;;;;;20129:61;;;;;;;-1:-1:-1;20129:61:13;;;;;;-1:-1:-1;20129:61:13;;;;;;20099:27;;;:7;:27;;;;;:91;;;;;;;-1:-1:-1;;;;;;20099:91:13;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20099:91:13;;;;;;;;;;;;;;;;;;;20395:18;;;;;20346:46;;;:26;:46;;;;;;;:67;;;;;;;;;;19157:1271;20511:24;;;;20495:11;;:41;;;:15;:41;:::i;:::-;20481:11;:55;18967:2471;;;21082:1;21075:6;:8;21178:250;21500:51;;;;;;;;;;21531:10;;21516:13;;21500:51;;;;;;;;;-1:-1:-1;;2059:11:21;:18;;-1:-1:-1;;2059:18:21;2073:4;2059:18;;;-1:-1:-1;;;17741:3817:13:o;304:20::-;;;;;;-1:-1:-1;;;;;304:20:13;;:::o;431:150:22:-;489:7;522:1;517;:6;;509:15;;;;;;-1:-1:-1;547:5:22;;;431:150::o;272:151::-;330:7;364:1;360;:5;352:14;;;;;;377:9;393:1;389;:5;;;;;;;272:151;-1:-1:-1;;;;272:151:22:o;12534:1312:13:-;12873:24;;:::i;:::-;12900:611;;;;;;;;12936:9;-1:-1:-1;;;;;12900:611:13;;;;;12971:10;-1:-1:-1;;;;;12900:611:13;;;;;13014:1;-1:-1:-1;;;;;12900:611:13;;;;;13049:15;12900:611;;;;13095:13;12900:611;;;;13140:14;12900:611;;;;13191:12;-1:-1:-1;;;;;12900:611:13;;;;;13238:16;12900:611;;;;13291:12;-1:-1:-1;;;;;12900:611:13;;;;;13336:1;12900:611;;;;13363:1;12900:611;;;;13389:1;12900:611;;;;13413:5;12900:611;;;;13443:7;12900:611;;;;13498:1;12900:611;;;12873:638;;13551:8;13524:9;:24;13534:13;;13524:24;;;;;;;;;;;:35;;;;;;;;;;;;;-1:-1:-1;;;;;13524:35:13;;;;;-1:-1:-1;;;;;13524:35:13;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13524:35:13;;;;;-1:-1:-1;;;;;13524:35:13;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13524:35:13;;;;;-1:-1:-1;;;;;13524:35:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13524:35:13;;;;;-1:-1:-1;;;;;13524:35:13;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13524:35:13;;;;;-1:-1:-1;;;;;13524:35:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;13524:35:13;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;13524:35:13;;;;;;;;;;;13621:10;13570:21;13594:38;;;:26;:38;;;;;;;;;;13663:13;;13648:161;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13648:161:13;;;;;;;-1:-1:-1;13648:161:13;;;;;;;;;;;;;;13594:38;;;;13648:161;;;;13594:38;;13621:10;;13648:161;;;;;;;;;-1:-1:-1;;13820:13:13;:18;;13837:1;13820:18;;;-1:-1:-1;;;;;;;;;12534:1312:13:o;589:150:22:-;647:7;679:5;;;703:6;;;;695:15;;;;;;730:1;589:150;-1:-1:-1;;;589:150:22:o;31627:107:13:-;31685:7;31717:1;31712;:6;;:14;;31725:1;31712:14;;;-1:-1:-1;31721:1:13;;31705:21;-1:-1:-1;31627:107:13:o;25461:623::-;25573:13;:20;25557:36;;25549:72;;;;;-1:-1:-1;;;25549:72:13;;;;;;;;;;;;-1:-1:-1;;;25549:72:13;;;;;;;;;;;;;;;25632:24;;:::i;:::-;25659:9;:39;25669:13;25683;25669:28;;;;;;;;;;;;;;;;;;;;;25659:39;;;;;;;;;;;;;;;25632:66;;;;;;;;;-1:-1:-1;;;;;25632:66:13;;;;;-1:-1:-1;25632:66:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25632:66:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25659:39;;25632:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;25632:66:13;;;-1:-1:-1;;;25632:66:13;;;;;;;;;;;;;;;;-1:-1:-1;;25632:66:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25874:8;:14;;;25889:1;25874:17;;;;;;;;;;;:26;25866:74;;;;-1:-1:-1;;;25866:74:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25959:18;;;:77;;-1:-1:-1;25981:9:13;:46;25991:13;26005:20;:13;26023:1;26005:20;:17;:20;:::i;:::-;25991:35;;;;;;;;;;;;;;;;25981:46;;;;;;;;;;;:52;;26034:1;25981:55;;;;;;;;;;;;;;;;;;;;;;;;25959:77;25951:125;;;;-1:-1:-1;;;25951:125:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25461:623;;:::o;23603:1850::-;23662:12;23676:24;23713;;:::i;:::-;23740:9;:39;23750:13;23764;23750:28;;;;;;;;;;;;;;;;;;;;;23740:39;;;;;;;;;;;;;;;23713:66;;;;;;;;;-1:-1:-1;;;;;23713:66:13;;;;;-1:-1:-1;23713:66:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23713:66:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23740:39;;23713:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;23713:66:13;;;-1:-1:-1;;;23713:66:13;;;;;;;;;;;;;;;;-1:-1:-1;;23713:66:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;23713:66:13;;;-1:-1:-1;;23713:66:13;;;;;;;;;;;23822:16;;;;23802:17;;;;;:36;;-1:-1:-1;;;23603:1850:13;-1:-1:-1;;;23603:1850:13:o;157:33834::-;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;157:33834:13;;;-1:-1:-1;;157:33834:13:o;:::-;;;;;;;;;-1:-1:-1;157:33834:13;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;157:33834:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;157:33834:13;;;-1:-1:-1;157:33834:13;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;157:33834:13;;;-1:-1:-1;157:33834:13;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;157:33834:13;;;-1:-1:-1;157:33834:13;;;;;;;;;;;;;;;;;;;;", + "source": "pragma solidity >=0.5.0 < 0.6.0;\r\n\r\nimport \"./oz/SafeMath.sol\";\r\nimport \"./oz/IERC20.sol\";\r\nimport \"./oz/ReentrancyGuard.sol\";\r\nimport \"./GuildBank.sol\";\r\n\r\ncontract Governance is ReentrancyGuard {\r\n using SafeMath for uint256;\r\n\r\n /***************\r\n GLOBAL CONSTANTS\r\n ***************/\r\n address public admin; // initial singular shareholder, assists with bailouts\r\n\r\n uint256 public periodDuration; // default = 17280 = 4.8 hours in seconds (5 periods per day)\r\n uint256 public votingPeriodLength; // default = 35 periods (7 days)\r\n uint256 public gracePeriodLength; // default = 35 periods (7 days)\r\n uint256 public emergencyProcessingWait; // default = 35 periods (7 days)\r\n //uint256 public bailoutWait; // default = 70 periods (14 days)\r\n uint256 public proposalDeposit; // default = 10 ETH (~$1,000 worth of ETH at contract deployment)\r\n //uint256 public dilutionBound; // default = 3 - maximum multiplier a YES voter will be obligated to pay in case of mass ragequit\r\n //uint256 public processingReward; // default = 0.1 - amount of ETH to give to whoever processes a proposal\r\n uint256 public summoningTime; // needed to determine the current period\r\n\r\n IERC20 public depositToken; // deposit token contract reference; default = wETH\r\n GuildBank public guildBank; // guild bank contract reference\r\n\r\n // HARD-CODED LIMITS\r\n // These numbers are quite arbitrary; they are small enough to avoid overflows when doing calculations\r\n // with periods or shares, yet big enough to not limit reasonable use cases.\r\n uint256 constant MAX_VOTING_PERIOD_LENGTH = 10**18; // maximum length of voting period\r\n uint256 constant MAX_GRACE_PERIOD_LENGTH = 10**18; // maximum length of grace period\r\n // uint256 constant MAX_BAILOUT_WAIT = 10**18; // maximum # periods after a jailed member can be ragekicked before they must be bailed out instead\r\n // uint256 constant MAX_DILUTION_BOUND = 10**18; // maximum dilution bound\r\n // uint256 constant MAX_NUMBER_OF_SHARES_AND_LOOT = 10**18; // maximum number of shares that can be minted\r\n uint256 constant MAX_NUMBER_OF_SHARES = 10**18; // maximum number of shares that can be minted\r\n\r\n // ***************\r\n // EVENTS\r\n // ***************\r\n event SubmitProposal(uint256 proposalIndex, address indexed delegateKey, address indexed memberAddress, address indexed applicant, uint256 sharesRequested, uint256 lootRequested, uint256 tributeOffered, address tributeToken, uint256 paymentRequested, address paymentToken);\r\n event SponsorProposal(address indexed delegateKey, address indexed memberAddress, uint256 proposalIndex, uint256 proposalQueueIndex, uint256 startingPeriod);\r\n event SubmitVote(uint256 indexed proposalIndex, address indexed delegateKey, address indexed memberAddress, uint8 uintVote);\r\n event ProcessProposal(uint256 indexed proposalIndex, uint256 indexed proposalId, bool didPass);\r\n event Ragequit(address indexed memberAddress, uint256 sharesToBurn, uint256 lootToBurn);\r\n event CancelProposal(uint256 indexed proposalIndex, address applicantAddress);\r\n event UpdateDelegateKey(address indexed memberAddress, address newDelegateKey);\r\n event SummonComplete(address indexed admin, uint256 shares);\r\n\r\n // *******************\r\n // INTERNAL ACCOUNTING\r\n // *******************\r\n uint256 public proposalCount = 0; // total proposals submitted\r\n uint256 public totalShares = 0; // total shares across all members\r\n //uint256 public totalLoot = 0; // total loot across all members\r\n uint256 public result;\r\n\r\n bool public emergencyWarning = false; // true if emergency processing has ever been triggered\r\n uint256 public lastEmergencyProposalIndex = 0; // index of the last proposal which triggered emergency processing\r\n\r\n enum Vote {\r\n Null, // default value, counted as abstention\r\n Yes,\r\n No\r\n }\r\n\r\n struct Member {\r\n address delegateKey; // the key responsible for submitting proposals and voting - defaults to member address unless updated\r\n uint256 shares; // the # of voting shares assigned to this member\r\n //uint256 loot; // the loot amount available to this member (combined with shares on ragequit)\r\n bool exists; // always true once a member has been created\r\n uint256 highestIndexYesVote; // highest proposal index # on which the member voted YES\r\n //uint256 jailed; // set to proposalIndex of a passing guild kick proposal for this member, prevents voting on and sponsoring proposals\r\n }\r\n\r\n struct Proposal {\r\n address applicant; // the applicant who wishes to become a member - this key will be used for withdrawals (doubles as guild kick target for gkick proposals)\r\n address proposer; // the account that submitted the proposal (can be non-member)\r\n address sponsor; // the member that sponsored the proposal (moving it into the queue)\r\n uint256 sharesRequested; // the # of shares the applicant is requesting\r\n uint256 lootRequested; // the amount of loot the applicant is requesting\r\n uint256 tributeOffered; // amount of tokens offered as tribute\r\n IERC20 tributeToken; // tribute token contract reference\r\n uint256 paymentRequested; // amount of tokens requested as payment\r\n IERC20 paymentToken; // payment token contract reference\r\n uint256 startingPeriod; // the period in which voting can start for this proposal\r\n uint256 yesVotes; // the total number of YES votes for this proposal\r\n uint256 noVotes; // the total number of NO votes for this proposal\r\n bool[6] flags; // [sponsored, processed, didPass, cancelled, whitelist, guildkick]\r\n string details; // proposal details - could be IPFS hash, plaintext, or JSON\r\n uint256 maxTotalSharesAndLootAtYesVote; // the maximum # of total shares encountered at a yes vote on this proposal\r\n mapping(address => Vote) votesByMember; // the votes on this proposal by each member\r\n }\r\n\r\n // mapping(address => bool) public tokenWhitelist;\r\n IERC20[] public approvedTokens;\r\n\r\n // mapping(address => bool) public proposedToWhitelist;\r\n // mapping(address => bool) public proposedToKick;\r\n\r\n mapping(address => Member) public members;\r\n mapping(address => address) public memberAddressByDelegateKey;\r\n\r\n mapping(uint256 => Proposal) public proposals;\r\n\r\n uint256[] public proposalQueue;\r\n\r\n // modifier onlyMember {\r\n // require(members[msg.sender].shares > 0 || members[msg.sender].loot > 0, \"not a member\");\r\n // _;\r\n // }\r\n modifier onlyMember {\r\n require(members[msg.sender].shares > 0 , \"not a member\");\r\n _;\r\n }\r\n\r\n modifier onlyShareholder {\r\n require(members[msg.sender].shares > 0, \"not a shareholder\");\r\n _;\r\n }\r\n\r\n modifier onlyDelegate {\r\n require(members[memberAddressByDelegateKey[msg.sender]].shares > 0, \"not a delegate\");\r\n _;\r\n }\r\n\r\n constructor(\r\n address _admin,\r\n address[1] memory _approvedTokens,\r\n uint256 _periodDuration,\r\n uint256 _votingPeriodLength,\r\n uint256 _gracePeriodLength,\r\n uint256 _emergencyProcessingWait,\r\n uint256 _bailoutWait,\r\n uint256 _proposalDeposit,\r\n uint256 _dilutionBound,\r\n uint256 _processingReward\r\n ) public {\r\n require(_admin != address(0), \"admin cannot be 0\");\r\n require(_periodDuration > 0, \"_periodDuration cannot be 0\");\r\n require(_votingPeriodLength > 0, \"_votingPeriodLength cannot be 0\");\r\n require(_votingPeriodLength <= MAX_VOTING_PERIOD_LENGTH, \"_votingPeriodLength exceeds limit\");\r\n require(_gracePeriodLength <= MAX_GRACE_PERIOD_LENGTH, \"_gracePeriodLength exceeds limit\");\r\n require(_emergencyProcessingWait > 0, \"_emergencyProcessingWait cannot be 0\");\r\n // require(_bailoutWait > _emergencyProcessingWait, \"_bailoutWait must be greater than _emergencyProcessingWait\");\r\n // require(_bailoutWait <= MAX_BAILOUT_WAIT, \"_bailoutWait exceeds limit\");\r\n // require(_dilutionBound > 0, \"_dilutionBound cannot be 0\");\r\n // require(_dilutionBound <= MAX_DILUTION_BOUND, \"_dilutionBound exceeds limit\");\r\n require(_approvedTokens.length > 0, \"need at least one approved token\");\r\n // require(_proposalDeposit >= _processingReward, \"_proposalDeposit cannot be smaller than _processingReward\");\r\n\r\n admin = _admin;\r\n\r\n depositToken = IERC20(_approvedTokens[0]);\r\n\r\n for (uint256 i = 0; i < _approvedTokens.length; i++) {\r\n require(_approvedTokens[i] != address(0), \"_approvedToken cannot be 0\");\r\n // require(!tokenWhitelist[_approvedTokens[i]], \"duplicate approved token\");\r\n //tokenWhitelist[_approvedTokens[i]] = true;\r\n approvedTokens.push(IERC20(_approvedTokens[i]));\r\n }\r\n\r\n guildBank = new GuildBank();\r\n\r\n periodDuration = _periodDuration;\r\n votingPeriodLength = _votingPeriodLength;\r\n gracePeriodLength = _gracePeriodLength;\r\n emergencyProcessingWait = _emergencyProcessingWait;\r\n // bailoutWait = _bailoutWait;\r\n proposalDeposit = _proposalDeposit;\r\n // dilutionBound = _dilutionBound;\r\n // processingReward = _processingReward;\r\n\r\n summoningTime = now;\r\n\r\n //members[admin] = Member(admin, 1, 0, true, 0, 0);\r\n members[admin] = Member(admin, 1, true, 0);\r\n memberAddressByDelegateKey[admin] = admin;\r\n totalShares = 1;\r\n\r\n emit SummonComplete(admin, 1);\r\n }\r\n\r\n /*****************\r\n PROPOSAL FUNCTIONS\r\n *****************/\r\n function submitProposal(\r\n address applicant,\r\n uint256 sharesRequested,\r\n uint256 lootRequested,\r\n uint256 tributeOffered,\r\n address tributeToken,\r\n uint256 paymentRequested,\r\n address paymentToken,\r\n string memory details\r\n ) public nonReentrant returns (uint256 proposalId) {\r\n //require(sharesRequested.add(lootRequested) <= MAX_NUMBER_OF_SHARES_AND_LOOT, \"too many shares requested\");\r\n require(sharesRequested <= MAX_NUMBER_OF_SHARES, \"too many shares requested\");\r\n // require(tokenWhitelist[tributeToken], \"tributeToken is not whitelisted\");\r\n // require(tokenWhitelist[paymentToken], \"payment is not whitelisted\");\r\n require(applicant != address(0), \"applicant cannot be 0\");\r\n // require(members[applicant].jailed == 0, \"proposal applicant must not be jailed\");\r\n\r\n // collect tribute from proposer and store it in the Moloch until the proposal is processed\r\n //require(IERC20(tributeToken).transferFrom(msg.sender, address(this), tributeOffered), \"tribute token transfer failed\");\r\n\r\n bool[6] memory flags; // [sponsored, processed, didPass, cancelled, whitelist, guildkick]\r\n\r\n _submitProposal(applicant, sharesRequested, lootRequested, tributeOffered, tributeToken, paymentRequested, paymentToken, details, flags);\r\n return proposalCount - 1; // return proposalId - contracts calling submit might want it\r\n }\r\n\r\n // function submitWhitelistProposal(address tokenToWhitelist, string memory details) public nonReentrant returns (uint256 proposalId) {\r\n // require(tokenToWhitelist != address(0), \"must provide token address\");\r\n // require(!tokenWhitelist[tokenToWhitelist], \"cannot already have whitelisted the token\");\r\n\r\n // bool[6] memory flags; // [sponsored, processed, didPass, cancelled, whitelist, guildkick]\r\n // flags[4] = true;\r\n\r\n // _submitProposal(address(0), 0, 0, 0, tokenToWhitelist, 0, address(0), details, flags);\r\n // return proposalCount - 1;\r\n // }\r\n\r\n // function submitGuildKickProposal(address memberToKick, string memory details) public nonReentrant returns (uint256 proposalId) {\r\n // Member memory member = members[memberToKick];\r\n\r\n // require(member.shares > 0 || member.loot > 0, \"member must have at least one share or one loot\");\r\n // require(memberToKick != admin, \"the admin may not be kicked\");\r\n // require(members[memberToKick].jailed == 0, \"member must not already be jailed\");\r\n\r\n // bool[6] memory flags; // [sponsored, processed, didPass, cancelled, whitelist, guildkick]\r\n // flags[5] = true;\r\n\r\n // _submitProposal(memberToKick, 0, 0, 0, address(0), 0, address(0), details, flags);\r\n // return proposalCount - 1;\r\n // }\r\n\r\n function _submitProposal(\r\n address applicant,\r\n uint256 sharesRequested,\r\n uint256 lootRequested,\r\n uint256 tributeOffered,\r\n address tributeToken,\r\n uint256 paymentRequested,\r\n address paymentToken,\r\n string memory details,\r\n bool[6] memory flags\r\n ) internal {\r\n Proposal memory proposal = Proposal({\r\n applicant : applicant,\r\n proposer : msg.sender,\r\n sponsor : address(0),\r\n sharesRequested : sharesRequested,\r\n lootRequested : lootRequested,\r\n tributeOffered : tributeOffered,\r\n tributeToken : IERC20(tributeToken),\r\n paymentRequested : paymentRequested,\r\n paymentToken : IERC20(paymentToken),\r\n startingPeriod : 0,\r\n yesVotes : 0,\r\n noVotes : 0,\r\n flags : flags,\r\n details : details,\r\n maxTotalSharesAndLootAtYesVote : 0\r\n });\r\n\r\n proposals[proposalCount] = proposal;\r\n address memberAddress = memberAddressByDelegateKey[msg.sender];\r\n emit SubmitProposal(proposalCount, msg.sender, memberAddress, applicant, sharesRequested, lootRequested, tributeOffered, tributeToken, paymentRequested, paymentToken);\r\n proposalCount += 1;\r\n }\r\n\r\n function sponsorProposal(uint256 proposalId) public nonReentrant onlyDelegate returns (uint256) {\r\n // collect proposal deposit from sponsor and store it in the Moloch until the proposal is processed\r\n //require(depositToken.transferFrom(msg.sender, address(this), proposalDeposit), \"proposal deposit token transfer failed\");\r\n\r\n Proposal storage proposal = proposals[proposalId];\r\n\r\n require(proposal.proposer != address(0), 'proposal must have been proposed');\r\n require(!proposal.flags[0], \"proposal has already been sponsored\");\r\n require(!proposal.flags[3], \"proposal has been cancelled\");\r\n // require(members[proposal.applicant].jailed == 0, \"proposal applicant must not be jailed\");\r\n\r\n // // whitelist proposal\r\n // if (proposal.flags[4]) {\r\n // require(!tokenWhitelist[address(proposal.tributeToken)], \"cannot already have whitelisted the token\");\r\n // require(!proposedToWhitelist[address(proposal.tributeToken)], 'already proposed to whitelist');\r\n // proposedToWhitelist[address(proposal.tributeToken)] = true;\r\n\r\n // // guild kick proposal\r\n // } else if (proposal.flags[5]) {\r\n // require(!proposedToKick[proposal.applicant], 'already proposed to kick');\r\n // proposedToKick[proposal.applicant] = true;\r\n // }\r\n\r\n // compute startingPeriod for proposal\r\n uint256 startingPeriod = max(\r\n getCurrentPeriod(),\r\n proposalQueue.length == 0 ? 0 : proposals[proposalQueue[proposalQueue.length.sub(1)]].startingPeriod\r\n ).add(1);\r\n\r\n proposal.startingPeriod = startingPeriod;\r\n\r\n address memberAddress = memberAddressByDelegateKey[msg.sender];\r\n proposal.sponsor = memberAddress;\r\n\r\n proposal.flags[0] = true;\r\n\r\n // append proposal to the queue\r\n proposalQueue.push(proposalId);\r\n emit SponsorProposal(msg.sender, memberAddress, proposalId, proposalQueue.length.sub(1), startingPeriod);\r\n return proposalQueue.length.sub(1);\r\n }\r\n\r\n function submitVote(uint256 proposalIndex, uint8 uintVote) public nonReentrant onlyDelegate {\r\n address memberAddress = memberAddressByDelegateKey[msg.sender];\r\n Member storage member = members[memberAddress];\r\n\r\n require(proposalIndex < proposalQueue.length, \"proposal does not exist\");\r\n Proposal storage proposal = proposals[proposalQueue[proposalIndex]];\r\n\r\n require(uintVote < 3, \"must be less than 3\");\r\n Vote vote = Vote(uintVote);\r\n\r\n //require(getCurrentPeriod() >= proposal.startingPeriod, \"voting period has not started\");\r\n require(!hasVotingPeriodExpired(proposal.startingPeriod), \"proposal voting period has expired\");\r\n require(proposal.votesByMember[memberAddress] == Vote.Null, \"member has already voted\");\r\n require(vote == Vote.Yes || vote == Vote.No, \"vote must be either Yes or No\");\r\n\r\n proposal.votesByMember[memberAddress] = vote;\r\n\r\n if (vote == Vote.Yes) {\r\n proposal.yesVotes = proposal.yesVotes.add(member.shares);\r\n\r\n // set highest index (latest) yes vote - must be processed for member to ragequit\r\n if (proposalIndex > member.highestIndexYesVote) {\r\n member.highestIndexYesVote = proposalIndex;\r\n }\r\n\r\n // set maximum of total shares encountered at a yes vote - used to bound dilution for yes voters\r\n // if (totalShares.add(totalLoot) > proposal.maxTotalSharesAndLootAtYesVote) {\r\n // proposal.maxTotalSharesAndLootAtYesVote = totalShares.add(totalLoot);\r\n // }\r\n\r\n } else if (vote == Vote.No) {\r\n proposal.noVotes = proposal.noVotes.add(member.shares);\r\n }\r\n\r\n emit SubmitVote(proposalIndex, msg.sender, memberAddress, uintVote);\r\n }\r\n\r\n function processProposal(uint256 proposalIndex) public nonReentrant {\r\n _validateProposalForProcessing(proposalIndex);\r\n\r\n uint256 proposalId = proposalQueue[proposalIndex];\r\n Proposal storage proposal = proposals[proposalId];\r\n\r\n //require(!proposal.flags[4] && !proposal.flags[5], \"must be a standard proposal\");\r\n\r\n proposal.flags[1] = true; // processed\r\n\r\n (bool didPass, bool emergencyProcessing) = _didPass(proposalIndex);\r\n\r\n // Make the proposal fail if the new total number of shares and loot exceeds the limit\r\n // if (totalShares.add(totalLoot).add(proposal.sharesRequested).add(proposal.lootRequested) > MAX_NUMBER_OF_SHARES_AND_LOOT) {\r\n // didPass = false;\r\n // }\r\n if (totalShares.add(proposal.sharesRequested) > MAX_NUMBER_OF_SHARES) {\r\n didPass = false;\r\n }\r\n\r\n\r\n // Make the proposal fail if it is requesting more tokens as payment than the available guild bank balance\r\n // if (!emergencyProcessing && proposal.paymentToken != IERC20(0) && proposal.paymentRequested > proposal.paymentToken.balanceOf(address(guildBank))) {\r\n // didPass = false;\r\n // }\r\n\r\n // PROPOSAL PASSED\r\n if (didPass) {\r\n result=1;\r\n proposal.flags[2] = true; // didPass\r\n\r\n // if the applicant is already a member, add to their existing shares & loot\r\n if (members[proposal.applicant].exists) {\r\n members[proposal.applicant].shares = members[proposal.applicant].shares.add(proposal.sharesRequested);\r\n //members[proposal.applicant].loot = members[proposal.applicant].loot.add(proposal.lootRequested);\r\n\r\n // the applicant is a new member, create a new record for them\r\n } else {\r\n // if the applicant address is already taken by a member's delegateKey, reset it to their member address\r\n if (members[memberAddressByDelegateKey[proposal.applicant]].exists) {\r\n address memberToOverride = memberAddressByDelegateKey[proposal.applicant];\r\n memberAddressByDelegateKey[memberToOverride] = memberToOverride;\r\n members[memberToOverride].delegateKey = memberToOverride;\r\n }\r\n\r\n // use applicant address as delegateKey by default\r\n members[proposal.applicant] = Member(proposal.applicant, proposal.sharesRequested, true, 0);\r\n //members[proposal.applicant] = Member(proposal.applicant, proposal.sharesRequested, proposal.lootRequested, true, 0, 0);\r\n memberAddressByDelegateKey[proposal.applicant] = proposal.applicant;\r\n }\r\n\r\n // mint new shares & loot\r\n totalShares = totalShares.add(proposal.sharesRequested);\r\n // totalLoot = totalLoot.add(proposal.lootRequested);\r\n\r\n // require(\r\n // proposal.tributeToken.transfer(address(guildBank), proposal.tributeOffered),\r\n // \"token transfer to guild bank failed\"\r\n // );\r\n\r\n // require(\r\n // guildBank.withdrawToken(proposal.paymentToken, proposal.applicant, proposal.paymentRequested),\r\n // \"token payment to applicant failed\"\r\n // );\r\n\r\n\r\n // PROPOSAL FAILED\r\n } else {\r\n result=2;\r\n // return all tokens to the applicant (skip if emergency processing)\r\n if (!emergencyProcessing) {\r\n // require(\r\n // proposal.tributeToken.transfer(proposal.proposer, proposal.tributeOffered),\r\n // \"failing vote token transfer failed\"\r\n // );\r\n }\r\n }\r\n\r\n //_returnDeposit(proposal.sponsor);\r\n\r\n emit ProcessProposal(proposalIndex, proposalId, didPass);\r\n }\r\n\r\n// function processWhitelistProposal(uint256 proposalIndex) public nonReentrant {\r\n// _validateProposalForProcessing(proposalIndex);\r\n//\r\n// uint256 proposalId = proposalQueue[proposalIndex];\r\n// Proposal storage proposal = proposals[proposalId];\r\n//\r\n// require(proposal.flags[4], \"must be a whitelist proposal\");\r\n//\r\n// proposal.flags[1] = true; // processed\r\n//\r\n// (bool didPass,) = _didPass(proposalIndex);\r\n//\r\n// if (didPass) {\r\n// proposal.flags[2] = true; // didPass\r\n//\r\n// tokenWhitelist[address(proposal.tributeToken)] = true;\r\n// approvedTokens.push(proposal.tributeToken);\r\n// }\r\n//\r\n// proposedToWhitelist[address(proposal.tributeToken)] = false;\r\n//\r\n// _returnDeposit(proposal.sponsor);\r\n//\r\n// emit ProcessProposal(proposalIndex, proposalId, didPass);\r\n// }\r\n\r\n// function processGuildKickProposal(uint256 proposalIndex) public nonReentrant {\r\n// _validateProposalForProcessing(proposalIndex);\r\n//\r\n// uint256 proposalId = proposalQueue[proposalIndex];\r\n// Proposal storage proposal = proposals[proposalId];\r\n//\r\n// require(proposal.flags[5], \"must be a guild kick proposal\");\r\n//\r\n// proposal.flags[1] = true; // processed\r\n//\r\n// (bool didPass,) = _didPass(proposalIndex);\r\n//\r\n// if (didPass) {\r\n// proposal.flags[2] = true; // didPass\r\n// Member storage member = members[proposal.applicant];\r\n// member.jailed = proposalIndex;\r\n//\r\n// // transfer shares to loot\r\n// member.loot = member.loot.add(member.shares);\r\n// totalShares = totalShares.sub(member.shares);\r\n// totalLoot = totalLoot.add(member.shares);\r\n// member.shares = 0; // revoke all shares\r\n// }\r\n//\r\n// proposedToKick[proposal.applicant] = false;\r\n//\r\n// _returnDeposit(proposal.sponsor);\r\n//\r\n// emit ProcessProposal(proposalIndex, proposalId, didPass);\r\n// }\r\n\r\n function _didPass(uint256 proposalIndex) internal returns (bool didPass, bool emergencyProcessing) {\r\n Proposal memory proposal = proposals[proposalQueue[proposalIndex]];\r\n\r\n didPass = proposal.yesVotes > proposal.noVotes;\r\n\r\n // Make the proposal fail (and skip returning tribute) if emergencyProcessingWait is exceeded\r\n emergencyProcessing = false;\r\n // if (getCurrentPeriod() >= proposal.startingPeriod.add(votingPeriodLength).add(gracePeriodLength).add(emergencyProcessingWait)) {\r\n // emergencyWarning = true;\r\n // lastEmergencyProposalIndex = proposalIndex;\r\n // emergencyProcessing = true;\r\n // didPass = false;\r\n // }\r\n\r\n // // Make the proposal fail if it was past its grace period during the last emergency processing and it is not a guild kick proposal\r\n // if (emergencyWarning) {\r\n // if (proposal.startingPeriod <= proposals[proposalQueue[lastEmergencyProposalIndex]].startingPeriod.add(emergencyProcessingWait) && !proposal.flags[5]) {\r\n // didPass = false;\r\n // }\r\n // }\r\n\r\n // // Make the proposal fail if the dilutionBound is exceeded\r\n // if ((totalShares.add(totalLoot)).mul(dilutionBound) < proposal.maxTotalSharesAndLootAtYesVote) {\r\n // didPass = false;\r\n // }\r\n\r\n // // Make the proposal fail if the applicant is jailed\r\n // // - for standard proposals, we don't want the applicant to get any shares/loot/payment\r\n // // - for guild kick proposals, we should never be able to propose to kick a jailed member (or have two kick proposals active), so it doesn't matter\r\n // if (members[proposal.applicant].jailed != 0) {\r\n // didPass = false;\r\n // }\r\n\r\n return (didPass, emergencyProcessing);\r\n }\r\n\r\n function _validateProposalForProcessing(uint256 proposalIndex) internal view {\r\n require(proposalIndex < proposalQueue.length, \"proposal does not exist\");\r\n Proposal memory proposal = proposals[proposalQueue[proposalIndex]];\r\n\r\n //require(getCurrentPeriod() >= proposal.startingPeriod.add(votingPeriodLength).add(gracePeriodLength), \"proposal is not ready to be processed\");\r\n require(proposal.flags[1] == false, \"proposal has already been processed\");\r\n require(proposalIndex == 0 || proposals[proposalQueue[proposalIndex.sub(1)]].flags[1], \"previous proposal must be processed\");\r\n }\r\n\r\n // function _returnDeposit(address sponsor) internal {\r\n // require(\r\n // depositToken.transfer(msg.sender, processingReward),\r\n // \"failed to send processing reward to msg.sender\"\r\n // );\r\n\r\n // require(\r\n // depositToken.transfer(sponsor, proposalDeposit.sub(processingReward)),\r\n // \"failed to return proposal deposit to sponsor\"\r\n // );\r\n // }\r\n\r\n // function ragequit(uint256 sharesToBurn, uint256 lootToBurn) public nonReentrant onlyMember {\r\n // _ragequit(msg.sender, sharesToBurn, lootToBurn, approvedTokens);\r\n // }\r\n\r\n // function safeRagequit(uint256 sharesToBurn, uint256 lootToBurn, IERC20[] memory tokenList) public nonReentrant onlyMember {\r\n // // all tokens in tokenList must be in the tokenWhitelist\r\n // for (uint256 i=0; i < tokenList.length; i++) {\r\n // //require(tokenWhitelist[address(tokenList[i])], \"token must be whitelisted\");\r\n\r\n // if (i > 0) {\r\n // require(tokenList[i] > tokenList[i - 1], \"token list must be unique and in ascending order\");\r\n // }\r\n // }\r\n\r\n // _ragequit(msg.sender, sharesToBurn, lootToBurn, tokenList);\r\n // }\r\n\r\n\r\n // function _ragequit(address memberAddress, uint256 sharesToBurn, uint256 lootToBurn, IERC20[] memory tokenList) internal {\r\n // //uint256 initialTotalSharesAndLoot = totalShares.add(totalLoot);\r\n // uint256 initialTotalSharesAndLoot = totalShares.add(0);\r\n\r\n // Member storage member = members[memberAddress];\r\n\r\n // require(member.shares >= sharesToBurn, \"insufficient shares\");\r\n // //require(member.loot >= lootToBurn, \"insufficient loot\");\r\n\r\n // require(canRagequit(member.highestIndexYesVote), \"cannot ragequit until highest index proposal member voted YES on is processed\");\r\n\r\n // //uint256 sharesAndLootToBurn = sharesToBurn.add(lootToBurn);\r\n\r\n // // burn shares and loot\r\n // member.shares = member.shares.sub(sharesToBurn);\r\n // //member.loot = member.loot.sub(lootToBurn);\r\n // totalShares = totalShares.sub(sharesToBurn);\r\n // //totalLoot = totalLoot.sub(lootToBurn);\r\n\r\n // // instruct guildBank to transfer fair share of tokens to the ragequitter\r\n // // require(\r\n // // guildBank.withdraw(memberAddress, sharesAndLootToBurn, initialTotalSharesAndLoot, tokenList),\r\n // // \"withdrawal of tokens from guildBank failed\"\r\n // // );\r\n // require(\r\n // guildBank.withdraw(memberAddress, sharesToBurn, initialTotalSharesAndLoot, tokenList),\r\n // \"withdrawal of tokens from guildBank failed\"\r\n // );\r\n\r\n // emit Ragequit(msg.sender, sharesToBurn, lootToBurn);\r\n // }\r\n\r\n// function ragekick(address memberToKick) public nonReentrant {\r\n// Member storage member = members[memberToKick];\r\n//\r\n// require(member.jailed != 0, \"member must be in jail\");\r\n// require(member.loot > 0, \"member must have some loot\"); // note - should be impossible for jailed member to have shares\r\n// require(canRagequit(member.highestIndexYesVote), \"cannot ragequit until highest index proposal member voted YES on is processed\");\r\n// require(!canBailout(memberToKick), \"bailoutWait has passed, member must be bailed out\");\r\n//\r\n// _ragequit(memberToKick, 0, member.loot, approvedTokens);\r\n// }\r\n//\r\n// function bailout(address memberToBail) public nonReentrant {\r\n// Member storage member = members[memberToBail];\r\n//\r\n// require(member.jailed != 0, \"member must be in jail\");\r\n// require(member.loot > 0, \"member must have some loot\"); // note - should be impossible for jailed member to have shares\r\n// require(canBailout(memberToBail), \"cannot bailout yet\");\r\n//\r\n// members[admin].loot = members[admin].loot.add(member.loot);\r\n// member.loot = 0;\r\n// }\r\n\r\n // function cancelProposal(uint256 proposalId) public nonReentrant {\r\n // Proposal storage proposal = proposals[proposalId];\r\n // require(!proposal.flags[0], \"proposal has already been sponsored\");\r\n // require(!proposal.flags[3], \"proposal has already been cancelled\");\r\n // require(msg.sender == proposal.proposer, \"solely the proposer can cancel\");\r\n\r\n // proposal.flags[3] = true; // cancelled\r\n\r\n // require(\r\n // proposal.tributeToken.transfer(proposal.proposer, proposal.tributeOffered),\r\n // \"failed to return tribute to proposer\"\r\n // );\r\n\r\n // emit CancelProposal(proposalId, msg.sender);\r\n // }\r\n\r\n // function updateDelegateKey(address newDelegateKey) public nonReentrant onlyShareholder {\r\n // require(newDelegateKey != address(0), \"newDelegateKey cannot be 0\");\r\n\r\n // // skip checks if member is setting the delegate key to theisr member address\r\n // if (newDelegateKey != msg.sender) {\r\n // require(!members[newDelegateKey].exists, \"cannot overwrite existing members\");\r\n // require(!members[memberAddressByDelegateKey[newDelegateKey]].exists, \"cannot overwrite existing delegate keys\");\r\n // }\r\n\r\n // Member storage member = members[msg.sender];\r\n // memberAddressByDelegateKey[member.delegateKey] = address(0);\r\n // memberAddressByDelegateKey[newDelegateKey] = msg.sender;\r\n // member.delegateKey = newDelegateKey;\r\n\r\n // emit UpdateDelegateKey(msg.sender, newDelegateKey);\r\n // }\r\n\r\n /***************\r\n GETTER FUNCTIONS\r\n ***************/\r\n function max(uint256 x, uint256 y) internal pure returns (uint256) {\r\n return x >= y ? x : y;\r\n }\r\n\r\n function getCurrentPeriod() public view returns (uint256) {\r\n return now.sub(summoningTime).div(periodDuration);\r\n }\r\n\r\n function getProposalQueueLength() public view returns (uint256) {\r\n return proposalQueue.length;\r\n }\r\n\r\n function getProposalFlags(uint256 proposalId) public view returns (bool[6] memory) {\r\n return proposals[proposalId].flags;\r\n }\r\n\r\n // can only ragequit if the latest proposal you voted YES on has been processed\r\n function canRagequit(uint256 highestIndexYesVote) public view returns (bool) {\r\n require(highestIndexYesVote < proposalQueue.length, \"proposal does not exist\");\r\n return proposals[proposalQueue[highestIndexYesVote]].flags[1];\r\n }\r\n\r\n// function canBailout(address memberToBail) public view returns (bool) {\r\n// Member memory member = members[memberToBail];\r\n//\r\n// // get the starting period of the proposal to start the bailout wait from\r\n// // - either the guild kick proposal or the member's highest index yes vote\r\n// uint256 bailoutWaitStartingPeriod = member.highestIndexYesVote > member.jailed\r\n// ? proposals[proposalQueue[member.highestIndexYesVote]].startingPeriod\r\n// : proposals[proposalQueue[member.jailed]].startingPeriod;\r\n//\r\n// // bailout wait starts after proposal grace period ends\r\n// return getCurrentPeriod() >= bailoutWaitStartingPeriod.add(votingPeriodLength).add(gracePeriodLength).add(bailoutWait);\r\n// }\r\n//\r\n function hasVotingPeriodExpired(uint256 startingPeriod) public view returns (bool) {\r\n return getCurrentPeriod() >= startingPeriod.add(votingPeriodLength);\r\n }\r\n\r\n function getMemberProposalVote(address memberAddress, uint256 proposalIndex) public view returns (Vote) {\r\n require(members[memberAddress].exists, \"member does not exist\");\r\n require(proposalIndex < proposalQueue.length, \"proposal does not exist\");\r\n return proposals[proposalQueue[proposalIndex]].votesByMember[memberAddress];\r\n }\r\n function getProposal () public view returns(uint256){\r\n return proposalCount;\r\n }\r\n function getResult () public view returns(uint256){\r\n return result;//checks proposal passed or not\r\n }\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\Governance.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Governance.sol", + "exportedSymbols": { + "Governance": [ + 7480 + ] + }, + "id": 7481, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6235, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:13" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "./oz/SafeMath.sol", + "id": 6236, + "nodeType": "ImportDirective", + "scope": 7481, + "sourceUnit": 9858, + "src": "36:27:13", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", + "file": "./oz/IERC20.sol", + "id": 6237, + "nodeType": "ImportDirective", + "scope": 7481, + "sourceUnit": 9720, + "src": "65:25:13", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol", + "file": "./oz/ReentrancyGuard.sol", + "id": 6238, + "nodeType": "ImportDirective", + "scope": 7481, + "sourceUnit": 9750, + "src": "92:34:13", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol", + "file": "./GuildBank.sol", + "id": 6239, + "nodeType": "ImportDirective", + "scope": 7481, + "sourceUnit": 7659, + "src": "128:25:13", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 6240, + "name": "ReentrancyGuard", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9749, + "src": "180:15:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReentrancyGuard_$9749", + "typeString": "contract ReentrancyGuard" + } + }, + "id": 6241, + "nodeType": "InheritanceSpecifier", + "src": "180:15:13" + } + ], + "contractDependencies": [ + 7658, + 9749 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 7480, + "linearizedBaseContracts": [ + 7480, + 9749 + ], + "name": "Governance", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 6244, + "libraryName": { + "contractScope": null, + "id": 6242, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "209:8:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "203:27:13", + "typeName": { + "id": 6243, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "222:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 6246, + "name": "admin", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "304:20:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6245, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "304:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6248, + "name": "periodDuration", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "388:29:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6247, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "388:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6250, + "name": "votingPeriodLength", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "486:33:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6249, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "486:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6252, + "name": "gracePeriodLength", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "559:32:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "559:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6254, + "name": "emergencyProcessingWait", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "631:38:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6253, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "631:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6256, + "name": "proposalDeposit", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "778:30:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6255, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "778:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6258, + "name": "summoningTime", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "1129:28:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1129:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6260, + "name": "depositToken", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "1208:26:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 6259, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "1208:6:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6262, + "name": "guildBank", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "1293:26:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + }, + "typeName": { + "contractScope": null, + "id": 6261, + "name": "GuildBank", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7658, + "src": "1293:9:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "id": 6267, + "name": "MAX_VOTING_PERIOD_LENGTH", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "1577:50:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6263, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1577:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "id": 6266, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 6264, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1621:2:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 6265, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1625:2:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "1621:6:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 6272, + "name": "MAX_GRACE_PERIOD_LENGTH", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "1669:49:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1669:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "id": 6271, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 6269, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1712:2:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 6270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1716:2:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "1712:6:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 6277, + "name": "MAX_NUMBER_OF_SHARES", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "2103:46:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6273, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2103:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "id": 6276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 6274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2143:2:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 6275, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2147:2:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "2143:6:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + }, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 6299, + "name": "SubmitProposal", + "nodeType": "EventDefinition", + "parameters": { + "id": 6298, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6279, + "indexed": false, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 6299, + "src": "2289:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6278, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2289:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6281, + "indexed": true, + "name": "delegateKey", + "nodeType": "VariableDeclaration", + "scope": 6299, + "src": "2312:27:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6280, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2312:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6283, + "indexed": true, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 6299, + "src": "2341:29:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6282, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2341:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6285, + "indexed": true, + "name": "applicant", + "nodeType": "VariableDeclaration", + "scope": 6299, + "src": "2372:25:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6284, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2372:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6287, + "indexed": false, + "name": "sharesRequested", + "nodeType": "VariableDeclaration", + "scope": 6299, + "src": "2399:23:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6286, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2399:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6289, + "indexed": false, + "name": "lootRequested", + "nodeType": "VariableDeclaration", + "scope": 6299, + "src": "2424:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2424:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6291, + "indexed": false, + "name": "tributeOffered", + "nodeType": "VariableDeclaration", + "scope": 6299, + "src": "2447:22:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2447:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6293, + "indexed": false, + "name": "tributeToken", + "nodeType": "VariableDeclaration", + "scope": 6299, + "src": "2471:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6292, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2471:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6295, + "indexed": false, + "name": "paymentRequested", + "nodeType": "VariableDeclaration", + "scope": 6299, + "src": "2493:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6294, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2493:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6297, + "indexed": false, + "name": "paymentToken", + "nodeType": "VariableDeclaration", + "scope": 6299, + "src": "2519:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6296, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2519:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2288:252:13" + }, + "src": "2268:273:13" + }, + { + "anonymous": false, + "documentation": null, + "id": 6311, + "name": "SponsorProposal", + "nodeType": "EventDefinition", + "parameters": { + "id": 6310, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6301, + "indexed": true, + "name": "delegateKey", + "nodeType": "VariableDeclaration", + "scope": 6311, + "src": "2569:27:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6300, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2569:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6303, + "indexed": true, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 6311, + "src": "2598:29:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6302, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2598:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6305, + "indexed": false, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 6311, + "src": "2629:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6304, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2629:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6307, + "indexed": false, + "name": "proposalQueueIndex", + "nodeType": "VariableDeclaration", + "scope": 6311, + "src": "2652:26:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6306, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2652:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6309, + "indexed": false, + "name": "startingPeriod", + "nodeType": "VariableDeclaration", + "scope": 6311, + "src": "2680:22:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6308, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2680:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2568:135:13" + }, + "src": "2547:157:13" + }, + { + "anonymous": false, + "documentation": null, + "id": 6321, + "name": "SubmitVote", + "nodeType": "EventDefinition", + "parameters": { + "id": 6320, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6313, + "indexed": true, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 6321, + "src": "2727:29:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2727:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6315, + "indexed": true, + "name": "delegateKey", + "nodeType": "VariableDeclaration", + "scope": 6321, + "src": "2758:27:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2758:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6317, + "indexed": true, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 6321, + "src": "2787:29:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6316, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2787:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6319, + "indexed": false, + "name": "uintVote", + "nodeType": "VariableDeclaration", + "scope": 6321, + "src": "2818:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 6318, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2818:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2726:107:13" + }, + "src": "2710:124:13" + }, + { + "anonymous": false, + "documentation": null, + "id": 6329, + "name": "ProcessProposal", + "nodeType": "EventDefinition", + "parameters": { + "id": 6328, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6323, + "indexed": true, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 6329, + "src": "2862:29:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6322, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2862:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6325, + "indexed": true, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 6329, + "src": "2893:26:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6324, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2893:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6327, + "indexed": false, + "name": "didPass", + "nodeType": "VariableDeclaration", + "scope": 6329, + "src": "2921:12:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6326, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2921:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2861:73:13" + }, + "src": "2840:95:13" + }, + { + "anonymous": false, + "documentation": null, + "id": 6337, + "name": "Ragequit", + "nodeType": "EventDefinition", + "parameters": { + "id": 6336, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6331, + "indexed": true, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 6337, + "src": "2956:29:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6330, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2956:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6333, + "indexed": false, + "name": "sharesToBurn", + "nodeType": "VariableDeclaration", + "scope": 6337, + "src": "2987:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6332, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2987:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6335, + "indexed": false, + "name": "lootToBurn", + "nodeType": "VariableDeclaration", + "scope": 6337, + "src": "3009:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6334, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3009:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2955:73:13" + }, + "src": "2941:88:13" + }, + { + "anonymous": false, + "documentation": null, + "id": 6343, + "name": "CancelProposal", + "nodeType": "EventDefinition", + "parameters": { + "id": 6342, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6339, + "indexed": true, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 6343, + "src": "3056:29:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6338, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3056:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6341, + "indexed": false, + "name": "applicantAddress", + "nodeType": "VariableDeclaration", + "scope": 6343, + "src": "3087:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6340, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3087:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3055:57:13" + }, + "src": "3035:78:13" + }, + { + "anonymous": false, + "documentation": null, + "id": 6349, + "name": "UpdateDelegateKey", + "nodeType": "EventDefinition", + "parameters": { + "id": 6348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6345, + "indexed": true, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 6349, + "src": "3143:29:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6344, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3143:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6347, + "indexed": false, + "name": "newDelegateKey", + "nodeType": "VariableDeclaration", + "scope": 6349, + "src": "3174:22:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6346, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3174:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3142:55:13" + }, + "src": "3119:79:13" + }, + { + "anonymous": false, + "documentation": null, + "id": 6355, + "name": "SummonComplete", + "nodeType": "EventDefinition", + "parameters": { + "id": 6354, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6351, + "indexed": true, + "name": "admin", + "nodeType": "VariableDeclaration", + "scope": 6355, + "src": "3225:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6350, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3225:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6353, + "indexed": false, + "name": "shares", + "nodeType": "VariableDeclaration", + "scope": 6355, + "src": "3248:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6352, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3248:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3224:39:13" + }, + "src": "3204:60:13" + }, + { + "constant": false, + "id": 6358, + "name": "proposalCount", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "3356:32:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6356, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3356:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 6357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3387:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 6361, + "name": "totalShares", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "3424:30:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6359, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3424:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 6360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3453:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 6363, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "3566:21:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6362, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3566:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6366, + "name": "emergencyWarning", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "3596:36:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6364, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3596:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 6365, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3627:5:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 6369, + "name": "lastEmergencyProposalIndex", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "3695:45:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6367, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3695:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 6368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3739:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "canonicalName": "Governance.Vote", + "id": 6373, + "members": [ + { + "id": 6370, + "name": "Null", + "nodeType": "EnumValue", + "src": "3837:4:13" + }, + { + "id": 6371, + "name": "Yes", + "nodeType": "EnumValue", + "src": "3892:3:13" + }, + { + "id": 6372, + "name": "No", + "nodeType": "EnumValue", + "src": "3906:2:13" + } + ], + "name": "Vote", + "nodeType": "EnumDefinition", + "src": "3816:99:13" + }, + { + "canonicalName": "Governance.Member", + "id": 6382, + "members": [ + { + "constant": false, + "id": 6375, + "name": "delegateKey", + "nodeType": "VariableDeclaration", + "scope": 6382, + "src": "3948:19:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6374, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3948:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6377, + "name": "shares", + "nodeType": "VariableDeclaration", + "scope": 6382, + "src": "4081:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4081:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6379, + "name": "exists", + "nodeType": "VariableDeclaration", + "scope": 6382, + "src": "4260:11:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6378, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4260:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6381, + "name": "highestIndexYesVote", + "nodeType": "VariableDeclaration", + "scope": 6382, + "src": "4328:27:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6380, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4328:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Member", + "nodeType": "StructDefinition", + "scope": 7480, + "src": "3923:643:13", + "visibility": "public" + }, + { + "canonicalName": "Governance.Proposal", + "id": 6419, + "members": [ + { + "constant": false, + "id": 6384, + "name": "applicant", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "4601:17:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6383, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4601:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6386, + "name": "proposer", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "4767:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6385, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4767:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6388, + "name": "sponsor", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "4857:15:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6387, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4857:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6390, + "name": "sharesRequested", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "4952:23:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6389, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4952:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6392, + "name": "lootRequested", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "5033:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6391, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5033:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6394, + "name": "tributeOffered", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "5115:22:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6393, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5115:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6396, + "name": "tributeToken", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "5187:19:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 6395, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "5187:6:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6398, + "name": "paymentRequested", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "5253:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6397, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5253:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6400, + "name": "paymentToken", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "5329:19:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 6399, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "5329:6:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6402, + "name": "startingPeriod", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "5395:22:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6401, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5395:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6404, + "name": "yesVotes", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "5486:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6403, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5486:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6406, + "name": "noVotes", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "5564:15:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6405, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5564:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6410, + "name": "flags", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "5640:13:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", + "typeString": "bool[6]" + }, + "typeName": { + "baseType": { + "id": 6407, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5640:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6409, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 6408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5645:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "5640:7:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", + "typeString": "bool[6]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6412, + "name": "details", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "5732:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6411, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5732:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6414, + "name": "maxTotalSharesAndLootAtYesVote", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "5818:38:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6413, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5818:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6418, + "name": "votesByMember", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "5943:38:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$6373_$", + "typeString": "mapping(address => enum Governance.Vote)" + }, + "typeName": { + "id": 6417, + "keyType": { + "id": 6415, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5951:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5943:24:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$6373_$", + "typeString": "mapping(address => enum Governance.Vote)" + }, + "valueType": { + "contractScope": null, + "id": 6416, + "name": "Vote", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6373, + "src": "5962:4:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Proposal", + "nodeType": "StructDefinition", + "scope": 7480, + "src": "4574:1460:13", + "visibility": "public" + }, + { + "constant": false, + "id": 6422, + "name": "approvedTokens", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "6098:30:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage", + "typeString": "contract IERC20[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 6420, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "6098:6:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 6421, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6098:8:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage_ptr", + "typeString": "contract IERC20[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6426, + "name": "members", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "6256:41:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member)" + }, + "typeName": { + "id": 6425, + "keyType": { + "id": 6423, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6264:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "6256:26:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member)" + }, + "valueType": { + "contractScope": null, + "id": 6424, + "name": "Member", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6382, + "src": "6275:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", + "typeString": "struct Governance.Member" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6430, + "name": "memberAddressByDelegateKey", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "6304:61:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "typeName": { + "id": 6429, + "keyType": { + "id": 6427, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6312:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "6304:27:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "valueType": { + "id": 6428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6323:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6434, + "name": "proposals", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "6374:45:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal)" + }, + "typeName": { + "id": 6433, + "keyType": { + "id": 6431, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6382:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "6374:28:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal)" + }, + "valueType": { + "contractScope": null, + "id": 6432, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6419, + "src": "6393:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6437, + "name": "proposalQueue", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "6428:30:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 6435, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6428:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6436, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6428:9:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 6451, + "nodeType": "Block", + "src": "6643:87:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6440, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6426, + "src": "6662:7:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member storage ref)" + } + }, + "id": 6443, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6441, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6670:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6670:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6662:19:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "id": 6444, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 6377, + "src": "6662:26:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6445, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6691:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6662:30:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6e6f742061206d656d626572", + "id": 6447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6695:14:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8a38730a0a31747b89b97e72db1b281f9d6fdcc9116c7bee85aba010b162e996", + "typeString": "literal_string \"not a member\"" + }, + "value": "not a member" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a38730a0a31747b89b97e72db1b281f9d6fdcc9116c7bee85aba010b162e996", + "typeString": "literal_string \"not a member\"" + } + ], + "id": 6439, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "6654:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6654:56:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6449, + "nodeType": "ExpressionStatement", + "src": "6654:56:13" + }, + { + "id": 6450, + "nodeType": "PlaceholderStatement", + "src": "6721:1:13" + } + ] + }, + "documentation": null, + "id": 6452, + "name": "onlyMember", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 6438, + "nodeType": "ParameterList", + "parameters": [], + "src": "6643:0:13" + }, + "src": "6623:107:13", + "visibility": "internal" + }, + { + "body": { + "id": 6466, + "nodeType": "Block", + "src": "6763:91:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6455, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6426, + "src": "6782:7:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member storage ref)" + } + }, + "id": 6458, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6456, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6790:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6790:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6782:19:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "id": 6459, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 6377, + "src": "6782:26:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6460, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6811:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6782:30:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6e6f742061207368617265686f6c646572", + "id": 6462, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6814:19:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f04c1891c0a18f803b467b9992e2d2738663e155d08d2aaee274da8a131a0bdb", + "typeString": "literal_string \"not a shareholder\"" + }, + "value": "not a shareholder" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f04c1891c0a18f803b467b9992e2d2738663e155d08d2aaee274da8a131a0bdb", + "typeString": "literal_string \"not a shareholder\"" + } + ], + "id": 6454, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "6774:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6774:60:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6464, + "nodeType": "ExpressionStatement", + "src": "6774:60:13" + }, + { + "id": 6465, + "nodeType": "PlaceholderStatement", + "src": "6845:1:13" + } + ] + }, + "documentation": null, + "id": 6467, + "name": "onlyShareholder", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 6453, + "nodeType": "ParameterList", + "parameters": [], + "src": "6763:0:13" + }, + "src": "6738:116:13", + "visibility": "internal" + }, + { + "body": { + "id": 6483, + "nodeType": "Block", + "src": "6884:116:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6470, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6426, + "src": "6903:7:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member storage ref)" + } + }, + "id": 6475, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6471, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6430, + "src": "6911:26:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 6474, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6472, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6938:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6938:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6911:38:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6903:47:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "id": 6476, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 6377, + "src": "6903:54:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6477, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6960:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6903:58:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6e6f7420612064656c6567617465", + "id": 6479, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6963:16:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4d2048a93053cc7fa7807c657f537fc9d130edf6819e714c97d45589e5ba66dc", + "typeString": "literal_string \"not a delegate\"" + }, + "value": "not a delegate" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4d2048a93053cc7fa7807c657f537fc9d130edf6819e714c97d45589e5ba66dc", + "typeString": "literal_string \"not a delegate\"" + } + ], + "id": 6469, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "6895:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6895:85:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6481, + "nodeType": "ExpressionStatement", + "src": "6895:85:13" + }, + { + "id": 6482, + "nodeType": "PlaceholderStatement", + "src": "6991:1:13" + } + ] + }, + "documentation": null, + "id": 6484, + "name": "onlyDelegate", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 6468, + "nodeType": "ParameterList", + "parameters": [], + "src": "6884:0:13" + }, + "src": "6862:138:13", + "visibility": "internal" + }, + { + "body": { + "id": 6663, + "nodeType": "Block", + "src": "7390:2232:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6510, + "name": "_admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6486, + "src": "7409:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7427:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7419:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 6513, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7419:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7409:20:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "61646d696e2063616e6e6f742062652030", + "id": 6515, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7431:19:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_34fd041aec796669a45725a5f2b52fe72174400c96ad9493bcab3ab40112f810", + "typeString": "literal_string \"admin cannot be 0\"" + }, + "value": "admin cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_34fd041aec796669a45725a5f2b52fe72174400c96ad9493bcab3ab40112f810", + "typeString": "literal_string \"admin cannot be 0\"" + } + ], + "id": 6509, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7401:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7401:50:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6517, + "nodeType": "ExpressionStatement", + "src": "7401:50:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6519, + "name": "_periodDuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6492, + "src": "7470:15:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6520, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7488:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7470:19:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f706572696f644475726174696f6e2063616e6e6f742062652030", + "id": 6522, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7491:29:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_dcaa7db0431116123c67314944edc83f1ee2d0251a1b070940664f004c74012d", + "typeString": "literal_string \"_periodDuration cannot be 0\"" + }, + "value": "_periodDuration cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_dcaa7db0431116123c67314944edc83f1ee2d0251a1b070940664f004c74012d", + "typeString": "literal_string \"_periodDuration cannot be 0\"" + } + ], + "id": 6518, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7462:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7462:59:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6524, + "nodeType": "ExpressionStatement", + "src": "7462:59:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6526, + "name": "_votingPeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6494, + "src": "7540:19:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7562:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7540:23:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f766f74696e67506572696f644c656e6774682063616e6e6f742062652030", + "id": 6529, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7565:33:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_90c9559254cdd6a8c5e39e97417540a97cc2c7e6b004410ebb33d7f7769bc53b", + "typeString": "literal_string \"_votingPeriodLength cannot be 0\"" + }, + "value": "_votingPeriodLength cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_90c9559254cdd6a8c5e39e97417540a97cc2c7e6b004410ebb33d7f7769bc53b", + "typeString": "literal_string \"_votingPeriodLength cannot be 0\"" + } + ], + "id": 6525, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7532:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7532:67:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6531, + "nodeType": "ExpressionStatement", + "src": "7532:67:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6533, + "name": "_votingPeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6494, + "src": "7618:19:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 6534, + "name": "MAX_VOTING_PERIOD_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6267, + "src": "7641:24:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7618:47:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f766f74696e67506572696f644c656e6774682065786365656473206c696d6974", + "id": 6536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7667:35:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7cba4ff2b7c48d54c20d93277dca7b9500525168ffa3f2b94651177b72c45612", + "typeString": "literal_string \"_votingPeriodLength exceeds limit\"" + }, + "value": "_votingPeriodLength exceeds limit" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7cba4ff2b7c48d54c20d93277dca7b9500525168ffa3f2b94651177b72c45612", + "typeString": "literal_string \"_votingPeriodLength exceeds limit\"" + } + ], + "id": 6532, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7610:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7610:93:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6538, + "nodeType": "ExpressionStatement", + "src": "7610:93:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6540, + "name": "_gracePeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6496, + "src": "7722:18:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 6541, + "name": "MAX_GRACE_PERIOD_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6272, + "src": "7744:23:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7722:45:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f6772616365506572696f644c656e6774682065786365656473206c696d6974", + "id": 6543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7769:34:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_94e4c02e557a13b96fee3c87ad3ed501d16c78e01ccadd26d54a03a2773f4e60", + "typeString": "literal_string \"_gracePeriodLength exceeds limit\"" + }, + "value": "_gracePeriodLength exceeds limit" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94e4c02e557a13b96fee3c87ad3ed501d16c78e01ccadd26d54a03a2773f4e60", + "typeString": "literal_string \"_gracePeriodLength exceeds limit\"" + } + ], + "id": 6539, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7714:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7714:90:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6545, + "nodeType": "ExpressionStatement", + "src": "7714:90:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6547, + "name": "_emergencyProcessingWait", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6498, + "src": "7823:24:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7850:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7823:28:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f656d657267656e637950726f63657373696e67576169742063616e6e6f742062652030", + "id": 6550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7853:38:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bbc33dc034ca97464527af241134c23d7681bf4b99d8886c6c16474b9fa58717", + "typeString": "literal_string \"_emergencyProcessingWait cannot be 0\"" + }, + "value": "_emergencyProcessingWait cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_bbc33dc034ca97464527af241134c23d7681bf4b99d8886c6c16474b9fa58717", + "typeString": "literal_string \"_emergencyProcessingWait cannot be 0\"" + } + ], + "id": 6546, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7815:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7815:77:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6552, + "nodeType": "ExpressionStatement", + "src": "7815:77:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6554, + "name": "_approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6490, + "src": "8282:15:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + } + }, + "id": 6555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8282:22:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8307:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8282:26:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6e656564206174206c65617374206f6e6520617070726f76656420746f6b656e", + "id": 6558, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8310:34:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c6d3134f6bde8083414251001f93c467973bb02a0dc01b762665902389253170", + "typeString": "literal_string \"need at least one approved token\"" + }, + "value": "need at least one approved token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c6d3134f6bde8083414251001f93c467973bb02a0dc01b762665902389253170", + "typeString": "literal_string \"need at least one approved token\"" + } + ], + "id": 6553, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "8274:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8274:71:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6560, + "nodeType": "ExpressionStatement", + "src": "8274:71:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6561, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6246, + "src": "8479:5:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6562, + "name": "_admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6486, + "src": "8487:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8479:14:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6564, + "nodeType": "ExpressionStatement", + "src": "8479:14:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6565, + "name": "depositToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6260, + "src": "8506:12:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6567, + "name": "_approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6490, + "src": "8528:15:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + } + }, + "id": 6569, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8544:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8528:18:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6566, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9719, + "src": "8521:6:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8521:26:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "src": "8506:41:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 6572, + "nodeType": "ExpressionStatement", + "src": "8506:41:13" + }, + { + "body": { + "id": 6605, + "nodeType": "Block", + "src": "8613:309:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6585, + "name": "_approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6490, + "src": "8637:15:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + } + }, + "id": 6587, + "indexExpression": { + "argumentTypes": null, + "id": 6586, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6574, + "src": "8653:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8637:18:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8667:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8659:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 6590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8659:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8637:32:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f617070726f766564546f6b656e2063616e6e6f742062652030", + "id": 6592, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8671:28:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b40b09ae38f1346b8a26ea643f189c8d547e60b5d4d63ceb6e8e43507dd5bc8", + "typeString": "literal_string \"_approvedToken cannot be 0\"" + }, + "value": "_approvedToken cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b40b09ae38f1346b8a26ea643f189c8d547e60b5d4d63ceb6e8e43507dd5bc8", + "typeString": "literal_string \"_approvedToken cannot be 0\"" + } + ], + "id": 6584, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "8629:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8629:71:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6594, + "nodeType": "ExpressionStatement", + "src": "8629:71:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6599, + "name": "_approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6490, + "src": "8890:15:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + } + }, + "id": 6601, + "indexExpression": { + "argumentTypes": null, + "id": 6600, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6574, + "src": "8906:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8890:18:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6598, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9719, + "src": "8883:6:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8883:26:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + ], + "expression": { + "argumentTypes": null, + "id": 6595, + "name": "approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6422, + "src": "8863:14:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage", + "typeString": "contract IERC20[] storage ref" + } + }, + "id": 6597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8863:19:13", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_IERC20_$9719_$returns$_t_uint256_$", + "typeString": "function (contract IERC20) returns (uint256)" + } + }, + "id": 6603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8863:47:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6604, + "nodeType": "ExpressionStatement", + "src": "8863:47:13" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6577, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6574, + "src": "8580:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6578, + "name": "_approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6490, + "src": "8584:15:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + } + }, + "id": 6579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8584:22:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8580:26:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6606, + "initializationExpression": { + "assignments": [ + 6574 + ], + "declarations": [ + { + "constant": false, + "id": 6574, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 6606, + "src": "8565:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6573, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8565:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6576, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 6575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8577:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "8565:13:13" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 6582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "8608:3:13", + "subExpression": { + "argumentTypes": null, + "id": 6581, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6574, + "src": "8608:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6583, + "nodeType": "ExpressionStatement", + "src": "8608:3:13" + }, + "nodeType": "ForStatement", + "src": "8560:362:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6607, + "name": "guildBank", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6262, + "src": "8934:9:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "8946:13:13", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_GuildBank_$7658_$", + "typeString": "function () returns (contract GuildBank)" + }, + "typeName": { + "contractScope": null, + "id": 6608, + "name": "GuildBank", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7658, + "src": "8950:9:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + } + }, + "id": 6610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8946:15:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + }, + "src": "8934:27:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + }, + "id": 6612, + "nodeType": "ExpressionStatement", + "src": "8934:27:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6613, + "name": "periodDuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6248, + "src": "8974:14:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6614, + "name": "_periodDuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6492, + "src": "8991:15:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8974:32:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6616, + "nodeType": "ExpressionStatement", + "src": "8974:32:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6617, + "name": "votingPeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6250, + "src": "9017:18:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6618, + "name": "_votingPeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6494, + "src": "9038:19:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9017:40:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6620, + "nodeType": "ExpressionStatement", + "src": "9017:40:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6621, + "name": "gracePeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6252, + "src": "9068:17:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6622, + "name": "_gracePeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6496, + "src": "9088:18:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9068:38:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6624, + "nodeType": "ExpressionStatement", + "src": "9068:38:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6625, + "name": "emergencyProcessingWait", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6254, + "src": "9117:23:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6626, + "name": "_emergencyProcessingWait", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6498, + "src": "9143:24:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9117:50:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6628, + "nodeType": "ExpressionStatement", + "src": "9117:50:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6629, + "name": "proposalDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6256, + "src": "9218:15:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6630, + "name": "_proposalDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6502, + "src": "9236:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9218:34:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6632, + "nodeType": "ExpressionStatement", + "src": "9218:34:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6633, + "name": "summoningTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "9359:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6634, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10413, + "src": "9375:3:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9359:19:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6636, + "nodeType": "ExpressionStatement", + "src": "9359:19:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6637, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6426, + "src": "9452:7:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member storage ref)" + } + }, + "id": 6639, + "indexExpression": { + "argumentTypes": null, + "id": 6638, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6246, + "src": "9460:5:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9452:14:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6641, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6246, + "src": "9476:5:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "31", + "id": 6642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9483:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 6643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9486:4:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 6644, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9492:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6640, + "name": "Member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6382, + "src": "9469:6:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Member_$6382_storage_ptr_$", + "typeString": "type(struct Governance.Member storage pointer)" + } + }, + "id": 6645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9469:25:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_memory", + "typeString": "struct Governance.Member memory" + } + }, + "src": "9452:42:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "id": 6647, + "nodeType": "ExpressionStatement", + "src": "9452:42:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6648, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6430, + "src": "9505:26:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 6650, + "indexExpression": { + "argumentTypes": null, + "id": 6649, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6246, + "src": "9532:5:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9505:33:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6651, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6246, + "src": "9541:5:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9505:41:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6653, + "nodeType": "ExpressionStatement", + "src": "9505:41:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6654, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6361, + "src": "9557:11:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 6655, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9571:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9557:15:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6657, + "nodeType": "ExpressionStatement", + "src": "9557:15:13" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6659, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6246, + "src": "9605:5:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "31", + "id": 6660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9612:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 6658, + "name": "SummonComplete", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6355, + "src": "9590:14:13", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9590:24:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6662, + "nodeType": "EmitStatement", + "src": "9585:29:13" + } + ] + }, + "documentation": null, + "id": 6664, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6507, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6486, + "name": "_admin", + "nodeType": "VariableDeclaration", + "scope": 6664, + "src": "7030:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6485, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7030:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6490, + "name": "_approvedTokens", + "nodeType": "VariableDeclaration", + "scope": 6664, + "src": "7055:33:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1]" + }, + "typeName": { + "baseType": { + "id": 6487, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7055:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6489, + "length": { + "argumentTypes": null, + "hexValue": "31", + "id": 6488, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7063:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "ArrayTypeName", + "src": "7055:10:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_storage_ptr", + "typeString": "address[1]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6492, + "name": "_periodDuration", + "nodeType": "VariableDeclaration", + "scope": 6664, + "src": "7099:23:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6491, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7099:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6494, + "name": "_votingPeriodLength", + "nodeType": "VariableDeclaration", + "scope": 6664, + "src": "7133:27:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6493, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7133:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6496, + "name": "_gracePeriodLength", + "nodeType": "VariableDeclaration", + "scope": 6664, + "src": "7171:26:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6495, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7171:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6498, + "name": "_emergencyProcessingWait", + "nodeType": "VariableDeclaration", + "scope": 6664, + "src": "7208:32:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6497, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7208:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6500, + "name": "_bailoutWait", + "nodeType": "VariableDeclaration", + "scope": 6664, + "src": "7251:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6499, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7251:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6502, + "name": "_proposalDeposit", + "nodeType": "VariableDeclaration", + "scope": 6664, + "src": "7282:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7282:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6504, + "name": "_dilutionBound", + "nodeType": "VariableDeclaration", + "scope": 6664, + "src": "7317:22:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6503, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7317:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6506, + "name": "_processingReward", + "nodeType": "VariableDeclaration", + "scope": 6664, + "src": "7350:25:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6505, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7350:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7019:363:13" + }, + "returnParameters": { + "id": 6508, + "nodeType": "ParameterList", + "parameters": [], + "src": "7390:0:13" + }, + "scope": 7480, + "src": "7008:2614:13", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6725, + "nodeType": "Block", + "src": "10038:1124:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6688, + "name": "sharesRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6668, + "src": "10175:15:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 6689, + "name": "MAX_NUMBER_OF_SHARES", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6277, + "src": "10194:20:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10175:39:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "746f6f206d616e792073686172657320726571756573746564", + "id": 6691, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10216:27:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_584b3bdfa816bf4fa30756567c0526c04441dc54230f4ba83c195ee6f0a70758", + "typeString": "literal_string \"too many shares requested\"" + }, + "value": "too many shares requested" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_584b3bdfa816bf4fa30756567c0526c04441dc54230f4ba83c195ee6f0a70758", + "typeString": "literal_string \"too many shares requested\"" + } + ], + "id": 6687, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "10167:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10167:77:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6693, + "nodeType": "ExpressionStatement", + "src": "10167:77:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6695, + "name": "applicant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6666, + "src": "10430:9:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6697, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10451:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6696, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10443:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 6698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10443:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10430:23:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6170706c6963616e742063616e6e6f742062652030", + "id": 6700, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10455:23:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9ab093dd894be784ee3143d9792a50bf0275e1dda1505d8ede42bc26455cf276", + "typeString": "literal_string \"applicant cannot be 0\"" + }, + "value": "applicant cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9ab093dd894be784ee3143d9792a50bf0275e1dda1505d8ede42bc26455cf276", + "typeString": "literal_string \"applicant cannot be 0\"" + } + ], + "id": 6694, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "10422:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10422:57:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6702, + "nodeType": "ExpressionStatement", + "src": "10422:57:13" + }, + { + "assignments": [ + 6707 + ], + "declarations": [ + { + "constant": false, + "id": 6707, + "name": "flags", + "nodeType": "VariableDeclaration", + "scope": 6725, + "src": "10820:20:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6]" + }, + "typeName": { + "baseType": { + "id": 6705, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10820:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6706, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 6704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10825:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "10820:7:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", + "typeString": "bool[6]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6708, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "10820:20:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6710, + "name": "applicant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6666, + "src": "10937:9:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6711, + "name": "sharesRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6668, + "src": "10948:15:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6712, + "name": "lootRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6670, + "src": "10965:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6713, + "name": "tributeOffered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6672, + "src": "10980:14:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6714, + "name": "tributeToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6674, + "src": "10996:12:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6715, + "name": "paymentRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6676, + "src": "11010:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6716, + "name": "paymentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6678, + "src": "11028:12:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6717, + "name": "details", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6680, + "src": "11042:7:13", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 6718, + "name": "flags", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6707, + "src": "11051:5:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6] memory" + } + ], + "id": 6709, + "name": "_submitProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6808, + "src": "10921:15:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_array$_t_bool_$6_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,address,uint256,address,string memory,bool[6] memory)" + } + }, + "id": 6719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10921:136:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6720, + "nodeType": "ExpressionStatement", + "src": "10921:136:13" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6721, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6358, + "src": "11075:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 6722, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11091:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11075:17:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6686, + "id": 6724, + "nodeType": "Return", + "src": "11068:24:13" + } + ] + }, + "documentation": "***************\r\nPROPOSAL FUNCTIONS\r****************", + "id": 6726, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6683, + "modifierName": { + "argumentTypes": null, + "id": 6682, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9748, + "src": "9996:12:13", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "9996:12:13" + } + ], + "name": "submitProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6681, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6666, + "name": "applicant", + "nodeType": "VariableDeclaration", + "scope": 6726, + "src": "9736:17:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6665, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9736:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6668, + "name": "sharesRequested", + "nodeType": "VariableDeclaration", + "scope": 6726, + "src": "9764:23:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6667, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9764:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6670, + "name": "lootRequested", + "nodeType": "VariableDeclaration", + "scope": 6726, + "src": "9798:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6669, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9798:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6672, + "name": "tributeOffered", + "nodeType": "VariableDeclaration", + "scope": 6726, + "src": "9830:22:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6671, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9830:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6674, + "name": "tributeToken", + "nodeType": "VariableDeclaration", + "scope": 6726, + "src": "9863:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6673, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9863:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6676, + "name": "paymentRequested", + "nodeType": "VariableDeclaration", + "scope": 6726, + "src": "9894:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6675, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9894:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6678, + "name": "paymentToken", + "nodeType": "VariableDeclaration", + "scope": 6726, + "src": "9929:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6677, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9929:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6680, + "name": "details", + "nodeType": "VariableDeclaration", + "scope": 6726, + "src": "9960:21:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6679, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9960:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9725:263:13" + }, + "returnParameters": { + "id": 6686, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6685, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 6726, + "src": "10018:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6684, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10018:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10017:20:13" + }, + "scope": 7480, + "src": "9702:1460:13", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6807, + "nodeType": "Block", + "src": "12862:984:13", + "statements": [ + { + "assignments": [ + 6750 + ], + "declarations": [ + { + "constant": false, + "id": 6750, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 6807, + "src": "12873:24:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", + "typeString": "struct Governance.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 6749, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6419, + "src": "12873:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6775, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6752, + "name": "applicant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6728, + "src": "12936:9:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6753, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "12971:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12971:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6756, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13014:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6755, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13006:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 6757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13006:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6758, + "name": "sharesRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6730, + "src": "13049:15:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6759, + "name": "lootRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6732, + "src": "13095:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6760, + "name": "tributeOffered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6734, + "src": "13140:14:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6762, + "name": "tributeToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6736, + "src": "13191:12:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6761, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9719, + "src": "13184:6:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13184:20:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + { + "argumentTypes": null, + "id": 6764, + "name": "paymentRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6738, + "src": "13238:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6766, + "name": "paymentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6740, + "src": "13291:12:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6765, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9719, + "src": "13284:6:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13284:20:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 6768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13336:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 6769, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13363:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 6770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13389:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "id": 6771, + "name": "flags", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6746, + "src": "13413:5:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6] memory" + } + }, + { + "argumentTypes": null, + "id": 6772, + "name": "details", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6742, + "src": "13443:7:13", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 6773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13498:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6751, + "name": "Proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6419, + "src": "12900:8:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Proposal_$6419_storage_ptr_$", + "typeString": "type(struct Governance.Proposal storage pointer)" + } + }, + "id": 6774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "applicant", + "proposer", + "sponsor", + "sharesRequested", + "lootRequested", + "tributeOffered", + "tributeToken", + "paymentRequested", + "paymentToken", + "startingPeriod", + "yesVotes", + "noVotes", + "flags", + "details", + "maxTotalSharesAndLootAtYesVote" + ], + "nodeType": "FunctionCall", + "src": "12900:611:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_memory", + "typeString": "struct Governance.Proposal memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12873:638:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6776, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6434, + "src": "13524:9:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" + } + }, + "id": 6778, + "indexExpression": { + "argumentTypes": null, + "id": 6777, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6358, + "src": "13534:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13524:24:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage", + "typeString": "struct Governance.Proposal storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6779, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6750, + "src": "13551:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", + "typeString": "struct Governance.Proposal memory" + } + }, + "src": "13524:35:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage", + "typeString": "struct Governance.Proposal storage ref" + } + }, + "id": 6781, + "nodeType": "ExpressionStatement", + "src": "13524:35:13" + }, + { + "assignments": [ + 6783 + ], + "declarations": [ + { + "constant": false, + "id": 6783, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 6807, + "src": "13570:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6782, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13570:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6788, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6784, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6430, + "src": "13594:26:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 6787, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6785, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "13621:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13621:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13594:38:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13570:62:13" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6790, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6358, + "src": "13663:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6791, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "13678:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13678:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6793, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6783, + "src": "13690:13:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6794, + "name": "applicant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6728, + "src": "13705:9:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6795, + "name": "sharesRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6730, + "src": "13716:15:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6796, + "name": "lootRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6732, + "src": "13733:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6797, + "name": "tributeOffered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6734, + "src": "13748:14:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6798, + "name": "tributeToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6736, + "src": "13764:12:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6799, + "name": "paymentRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6738, + "src": "13778:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6800, + "name": "paymentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6740, + "src": "13796:12:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6789, + "name": "SubmitProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6299, + "src": "13648:14:13", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (uint256,address,address,address,uint256,uint256,uint256,address,uint256,address)" + } + }, + "id": 6801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13648:161:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6802, + "nodeType": "EmitStatement", + "src": "13643:166:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6803, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6358, + "src": "13820:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 6804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13837:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "13820:18:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6806, + "nodeType": "ExpressionStatement", + "src": "13820:18:13" + } + ] + }, + "documentation": null, + "id": 6808, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_submitProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6728, + "name": "applicant", + "nodeType": "VariableDeclaration", + "scope": 6808, + "src": "12569:17:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6727, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12569:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6730, + "name": "sharesRequested", + "nodeType": "VariableDeclaration", + "scope": 6808, + "src": "12597:23:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6729, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12597:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6732, + "name": "lootRequested", + "nodeType": "VariableDeclaration", + "scope": 6808, + "src": "12631:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6731, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12631:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6734, + "name": "tributeOffered", + "nodeType": "VariableDeclaration", + "scope": 6808, + "src": "12663:22:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6733, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12663:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6736, + "name": "tributeToken", + "nodeType": "VariableDeclaration", + "scope": 6808, + "src": "12696:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6735, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12696:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6738, + "name": "paymentRequested", + "nodeType": "VariableDeclaration", + "scope": 6808, + "src": "12727:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6737, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12727:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6740, + "name": "paymentToken", + "nodeType": "VariableDeclaration", + "scope": 6808, + "src": "12762:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6739, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12762:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6742, + "name": "details", + "nodeType": "VariableDeclaration", + "scope": 6808, + "src": "12793:21:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6741, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "12793:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6746, + "name": "flags", + "nodeType": "VariableDeclaration", + "scope": 6808, + "src": "12825:20:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6]" + }, + "typeName": { + "baseType": { + "id": 6743, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12825:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6745, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 6744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12830:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "12825:7:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", + "typeString": "bool[6]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12558:294:13" + }, + "returnParameters": { + "id": 6748, + "nodeType": "ParameterList", + "parameters": [], + "src": "12862:0:13" + }, + "scope": 7480, + "src": "12534:1312:13", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 6931, + "nodeType": "Block", + "src": "13952:1981:13", + "statements": [ + { + "assignments": [ + 6820 + ], + "declarations": [ + { + "constant": false, + "id": 6820, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 6931, + "src": "14207:25:13", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 6819, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6419, + "src": "14207:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6824, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6821, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6434, + "src": "14235:9:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" + } + }, + "id": 6823, + "indexExpression": { + "argumentTypes": null, + "id": 6822, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6810, + "src": "14245:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14235:21:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage", + "typeString": "struct Governance.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14207:49:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6826, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6820, + "src": "14277:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 6827, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "proposer", + "nodeType": "MemberAccess", + "referencedDeclaration": 6386, + "src": "14277:17:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14306:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6828, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14298:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 6830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14298:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "14277:31:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c206d7573742068617665206265656e2070726f706f736564", + "id": 6832, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14310:34:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ac8dac03073454fa1d404b87251ebaea89a776f599ae35927c3fdc86124e6933", + "typeString": "literal_string \"proposal must have been proposed\"" + }, + "value": "proposal must have been proposed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ac8dac03073454fa1d404b87251ebaea89a776f599ae35927c3fdc86124e6933", + "typeString": "literal_string \"proposal must have been proposed\"" + } + ], + "id": 6825, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "14269:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14269:76:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6834, + "nodeType": "ExpressionStatement", + "src": "14269:76:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "14364:18:13", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6836, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6820, + "src": "14365:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 6837, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 6410, + "src": "14365:14:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 6839, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6838, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14380:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14365:17:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c2068617320616c7265616479206265656e2073706f6e736f726564", + "id": 6841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14384:37:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8ce373ba28507085e66e9df24290b9ef61d72fa05638e1221982de773985e387", + "typeString": "literal_string \"proposal has already been sponsored\"" + }, + "value": "proposal has already been sponsored" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8ce373ba28507085e66e9df24290b9ef61d72fa05638e1221982de773985e387", + "typeString": "literal_string \"proposal has already been sponsored\"" + } + ], + "id": 6835, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "14356:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14356:66:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6843, + "nodeType": "ExpressionStatement", + "src": "14356:66:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "14441:18:13", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6845, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6820, + "src": "14442:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 6846, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 6410, + "src": "14442:14:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 6848, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 6847, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14457:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14442:17:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c20686173206265656e2063616e63656c6c6564", + "id": 6850, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14461:29:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_310ff3a9ce641706ee5130d4a11d082239c2f517d2fdbc264a36cda8e36c8cbd", + "typeString": "literal_string \"proposal has been cancelled\"" + }, + "value": "proposal has been cancelled" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_310ff3a9ce641706ee5130d4a11d082239c2f517d2fdbc264a36cda8e36c8cbd", + "typeString": "literal_string \"proposal has been cancelled\"" + } + ], + "id": 6844, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "14433:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14433:58:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6852, + "nodeType": "ExpressionStatement", + "src": "14433:58:13" + }, + { + "assignments": [ + 6854 + ], + "declarations": [ + { + "constant": false, + "id": 6854, + "name": "startingPeriod", + "nodeType": "VariableDeclaration", + "scope": 6931, + "src": "15279:22:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6853, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15279:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6878, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 6876, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15471:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6856, + "name": "getCurrentPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7363, + "src": "15322:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 6857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15322:18:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6858, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "15355:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 6859, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15355:20:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15379:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15355:25:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6863, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6434, + "src": "15387:9:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" + } + }, + "id": 6871, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6864, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "15397:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 6870, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 6868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15436:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6865, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "15411:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 6866, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15411:20:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "15411:24:13", + "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": 6869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15411:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15397:42:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15387:53:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage", + "typeString": "struct Governance.Proposal storage ref" + } + }, + "id": 6872, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "startingPeriod", + "nodeType": "MemberAccess", + "referencedDeclaration": 6402, + "src": "15387:68:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "15355:100:13", + "trueExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6862, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15383:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6855, + "name": "max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7349, + "src": "15304:3:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 6874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15304:162:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "15304:166:13", + "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": 6877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15304:169:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15279:194:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6879, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6820, + "src": "15486:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 6881, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "startingPeriod", + "nodeType": "MemberAccess", + "referencedDeclaration": 6402, + "src": "15486:23:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6882, + "name": "startingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6854, + "src": "15512:14:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15486:40:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6884, + "nodeType": "ExpressionStatement", + "src": "15486:40:13" + }, + { + "assignments": [ + 6886 + ], + "declarations": [ + { + "constant": false, + "id": 6886, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 6931, + "src": "15539:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6885, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15539:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6891, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6887, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6430, + "src": "15563:26:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 6890, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6888, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "15590:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15590:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15563:38:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15539:62:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6892, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6820, + "src": "15612:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 6894, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "sponsor", + "nodeType": "MemberAccess", + "referencedDeclaration": 6388, + "src": "15612:16:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6895, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6886, + "src": "15631:13:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15612:32:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6897, + "nodeType": "ExpressionStatement", + "src": "15612:32:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6898, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6820, + "src": "15657:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 6901, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 6410, + "src": "15657:14:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 6902, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15672:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15657:17:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 6903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15677:4:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "15657:24:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6905, + "nodeType": "ExpressionStatement", + "src": "15657:24:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6909, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6810, + "src": "15754:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6906, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "15735:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 6908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15735:18:13", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) returns (uint256)" + } + }, + "id": 6910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15735:30:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6911, + "nodeType": "ExpressionStatement", + "src": "15735:30:13" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6913, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "15797:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15797:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6915, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6886, + "src": "15809:13:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6916, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6810, + "src": "15824:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 6920, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15861:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6917, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "15836:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 6918, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15836:20:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "15836:24:13", + "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": 6921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15836:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6922, + "name": "startingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6854, + "src": "15865:14:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6912, + "name": "SponsorProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6311, + "src": "15781:15:13", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256,uint256)" + } + }, + "id": 6923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15781:99:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6924, + "nodeType": "EmitStatement", + "src": "15776:104:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 6928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15923:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6925, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "15898:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 6926, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15898:20:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "15898:24:13", + "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": 6929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6818, + "id": 6930, + "nodeType": "Return", + "src": "15891:34:13" + } + ] + }, + "documentation": null, + "id": 6932, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6813, + "modifierName": { + "argumentTypes": null, + "id": 6812, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9748, + "src": "13907:12:13", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "13907:12:13" + }, + { + "arguments": null, + "id": 6815, + "modifierName": { + "argumentTypes": null, + "id": 6814, + "name": "onlyDelegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6484, + "src": "13920:12:13", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "13920:12:13" + } + ], + "name": "sponsorProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6811, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6810, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 6932, + "src": "13879:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6809, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13879:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13878:20:13" + }, + "returnParameters": { + "id": 6818, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6817, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6932, + "src": "13943:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6816, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13943:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13942:9:13" + }, + "scope": 7480, + "src": "13854:2079:13", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7080, + "nodeType": "Block", + "src": "16033:1701:13", + "statements": [ + { + "assignments": [ + 6944 + ], + "declarations": [ + { + "constant": false, + "id": 6944, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 7080, + "src": "16044:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16044:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6949, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6945, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6430, + "src": "16068:26:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 6948, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6946, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "16095:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16095:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16068:38:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16044:62:13" + }, + { + "assignments": [ + 6951 + ], + "declarations": [ + { + "constant": false, + "id": 6951, + "name": "member", + "nodeType": "VariableDeclaration", + "scope": 7080, + "src": "16117:21:13", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", + "typeString": "struct Governance.Member" + }, + "typeName": { + "contractScope": null, + "id": 6950, + "name": "Member", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6382, + "src": "16117:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", + "typeString": "struct Governance.Member" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6955, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6952, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6426, + "src": "16141:7:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member storage ref)" + } + }, + "id": 6954, + "indexExpression": { + "argumentTypes": null, + "id": 6953, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6944, + "src": "16149:13:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16141:22:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16117:46:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6957, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6934, + "src": "16184:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6958, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "16200:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 6959, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16200:20:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16184:36:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", + "id": 6961, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16222:25:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + }, + "value": "proposal does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + } + ], + "id": 6956, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "16176:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16176:72:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6963, + "nodeType": "ExpressionStatement", + "src": "16176:72:13" + }, + { + "assignments": [ + 6965 + ], + "declarations": [ + { + "constant": false, + "id": 6965, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 7080, + "src": "16259:25:13", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 6964, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6419, + "src": "16259:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6971, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6966, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6434, + "src": "16287:9:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" + } + }, + "id": 6970, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6967, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "16297:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 6969, + "indexExpression": { + "argumentTypes": null, + "id": 6968, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6934, + "src": "16311:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16297:28:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16287:39:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage", + "typeString": "struct Governance.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16259:67:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 6975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6973, + "name": "uintVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6936, + "src": "16347:8:13", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 6974, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16358:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "16347:12:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6d757374206265206c657373207468616e2033", + "id": 6976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16361:21:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_707c6bf11f318d88bf3ce18a41621954ec264b68d584313fba9bb644a8e76020", + "typeString": "literal_string \"must be less than 3\"" + }, + "value": "must be less than 3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_707c6bf11f318d88bf3ce18a41621954ec264b68d584313fba9bb644a8e76020", + "typeString": "literal_string \"must be less than 3\"" + } + ], + "id": 6972, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "16339:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16339:44:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6978, + "nodeType": "ExpressionStatement", + "src": "16339:44:13" + }, + { + "assignments": [ + 6980 + ], + "declarations": [ + { + "constant": false, + "id": 6980, + "name": "vote", + "nodeType": "VariableDeclaration", + "scope": 7080, + "src": "16394:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + }, + "typeName": { + "contractScope": null, + "id": 6979, + "name": "Vote", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6373, + "src": "16394:4:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6984, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6982, + "name": "uintVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6936, + "src": "16411:8:13", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 6981, + "name": "Vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6373, + "src": "16406:4:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Vote_$6373_$", + "typeString": "type(enum Governance.Vote)" + } + }, + "id": 6983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16406:14:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16394:26:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "16541:48:13", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6987, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6965, + "src": "16565:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 6988, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "startingPeriod", + "nodeType": "MemberAccess", + "referencedDeclaration": 6402, + "src": "16565:23:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6986, + "name": "hasVotingPeriodExpired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7428, + "src": "16542:22:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 6989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16542:47:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c20766f74696e6720706572696f64206861732065787069726564", + "id": 6991, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16591:36:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c0ba1a8fcc742113774789a424c824e010e781c8d7353e4ab7ada35c65566c07", + "typeString": "literal_string \"proposal voting period has expired\"" + }, + "value": "proposal voting period has expired" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c0ba1a8fcc742113774789a424c824e010e781c8d7353e4ab7ada35c65566c07", + "typeString": "literal_string \"proposal voting period has expired\"" + } + ], + "id": 6985, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "16533:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16533:95:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6993, + "nodeType": "ExpressionStatement", + "src": "16533:95:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + }, + "id": 7001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6995, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6965, + "src": "16647:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 6996, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "votesByMember", + "nodeType": "MemberAccess", + "referencedDeclaration": 6418, + "src": "16647:22:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$6373_$", + "typeString": "mapping(address => enum Governance.Vote)" + } + }, + "id": 6998, + "indexExpression": { + "argumentTypes": null, + "id": 6997, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6944, + "src": "16670:13:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16647:37:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6999, + "name": "Vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6373, + "src": "16688:4:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Vote_$6373_$", + "typeString": "type(enum Governance.Vote)" + } + }, + "id": 7000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Null", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16688:9:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "src": "16647:50:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6d656d6265722068617320616c726561647920766f746564", + "id": 7002, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16699:26:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7343d72c90cb341bd2f3ab7b007b6dc9c32e041eadcc4b701abd38deefeb2299", + "typeString": "literal_string \"member has already voted\"" + }, + "value": "member has already voted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7343d72c90cb341bd2f3ab7b007b6dc9c32e041eadcc4b701abd38deefeb2299", + "typeString": "literal_string \"member has already voted\"" + } + ], + "id": 6994, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "16639:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16639:87:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7004, + "nodeType": "ExpressionStatement", + "src": "16639:87:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + }, + "id": 7009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7006, + "name": "vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6980, + "src": "16745:4:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7007, + "name": "Vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6373, + "src": "16753:4:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Vote_$6373_$", + "typeString": "type(enum Governance.Vote)" + } + }, + "id": 7008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Yes", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16753:8:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "src": "16745:16:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + }, + "id": 7013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7010, + "name": "vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6980, + "src": "16765:4:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7011, + "name": "Vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6373, + "src": "16773:4:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Vote_$6373_$", + "typeString": "type(enum Governance.Vote)" + } + }, + "id": 7012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "No", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16773:7:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "src": "16765:15:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "16745:35:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "766f7465206d7573742062652065697468657220596573206f72204e6f", + "id": 7015, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16782:31:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cdbdf7342fd7207f7fe59a7f11b342501ce75d0d11dd200fffb4af998c12a928", + "typeString": "literal_string \"vote must be either Yes or No\"" + }, + "value": "vote must be either Yes or No" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cdbdf7342fd7207f7fe59a7f11b342501ce75d0d11dd200fffb4af998c12a928", + "typeString": "literal_string \"vote must be either Yes or No\"" + } + ], + "id": 7005, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "16737:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16737:77:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7017, + "nodeType": "ExpressionStatement", + "src": "16737:77:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 7024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7018, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6965, + "src": "16827:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7021, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "votesByMember", + "nodeType": "MemberAccess", + "referencedDeclaration": 6418, + "src": "16827:22:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$6373_$", + "typeString": "mapping(address => enum Governance.Vote)" + } + }, + "id": 7022, + "indexExpression": { + "argumentTypes": null, + "id": 7020, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6944, + "src": "16850:13:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16827:37:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7023, + "name": "vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6980, + "src": "16867:4:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "src": "16827:44:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "id": 7025, + "nodeType": "ExpressionStatement", + "src": "16827:44:13" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + }, + "id": 7029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7026, + "name": "vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6980, + "src": "16888:4:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7027, + "name": "Vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6373, + "src": "16896:4:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Vote_$6373_$", + "typeString": "type(enum Governance.Vote)" + } + }, + "id": 7028, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Yes", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16896:8:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "src": "16888:16:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + }, + "id": 7057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7054, + "name": "vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6980, + "src": "17549:4:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7055, + "name": "Vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6373, + "src": "17557:4:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Vote_$6373_$", + "typeString": "type(enum Governance.Vote)" + } + }, + "id": 7056, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "No", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "17557:7:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "src": "17549:15:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7070, + "nodeType": "IfStatement", + "src": "17545:102:13", + "trueBody": { + "id": 7069, + "nodeType": "Block", + "src": "17566:81:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7058, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6965, + "src": "17581:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7060, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "noVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 6406, + "src": "17581:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7064, + "name": "member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6951, + "src": "17621:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", + "typeString": "struct Governance.Member storage pointer" + } + }, + "id": 7065, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 6377, + "src": "17621:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7061, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6965, + "src": "17600:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7062, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "noVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 6406, + "src": "17600:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "17600:20:13", + "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": 7066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17600:35:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17581:54:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7068, + "nodeType": "ExpressionStatement", + "src": "17581:54:13" + } + ] + } + }, + "id": 7071, + "nodeType": "IfStatement", + "src": "16884:763:13", + "trueBody": { + "id": 7053, + "nodeType": "Block", + "src": "16906:633:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7030, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6965, + "src": "16921:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7032, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "yesVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 6404, + "src": "16921:17:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7036, + "name": "member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6951, + "src": "16963:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", + "typeString": "struct Governance.Member storage pointer" + } + }, + "id": 7037, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 6377, + "src": "16963:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7033, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6965, + "src": "16941:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7034, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "yesVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 6404, + "src": "16941:17:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "16941:21:13", + "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": 7038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16941:36:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16921:56:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7040, + "nodeType": "ExpressionStatement", + "src": "16921:56:13" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7041, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6934, + "src": "17093:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7042, + "name": "member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6951, + "src": "17109:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", + "typeString": "struct Governance.Member storage pointer" + } + }, + "id": 7043, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "highestIndexYesVote", + "nodeType": "MemberAccess", + "referencedDeclaration": 6381, + "src": "17109:26:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17093:42:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7052, + "nodeType": "IfStatement", + "src": "17089:125:13", + "trueBody": { + "id": 7051, + "nodeType": "Block", + "src": "17137:77:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7045, + "name": "member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6951, + "src": "17156:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", + "typeString": "struct Governance.Member storage pointer" + } + }, + "id": 7047, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "highestIndexYesVote", + "nodeType": "MemberAccess", + "referencedDeclaration": 6381, + "src": "17156:26:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7048, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6934, + "src": "17185:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17156:42:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7050, + "nodeType": "ExpressionStatement", + "src": "17156:42:13" + } + ] + } + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7073, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6934, + "src": "17675:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7074, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "17690:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "17690:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7076, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6944, + "src": "17702:13:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7077, + "name": "uintVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6936, + "src": "17717:8:13", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 7072, + "name": "SubmitVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6321, + "src": "17664:10:13", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint8_$returns$__$", + "typeString": "function (uint256,address,address,uint8)" + } + }, + "id": 7078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17664:62:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7079, + "nodeType": "EmitStatement", + "src": "17659:67:13" + } + ] + }, + "documentation": null, + "id": 7081, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6939, + "modifierName": { + "argumentTypes": null, + "id": 6938, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9748, + "src": "16007:12:13", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "16007:12:13" + }, + { + "arguments": null, + "id": 6941, + "modifierName": { + "argumentTypes": null, + "id": 6940, + "name": "onlyDelegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6484, + "src": "16020:12:13", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "16020:12:13" + } + ], + "name": "submitVote", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6937, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6934, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 7081, + "src": "15961:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15961:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6936, + "name": "uintVote", + "nodeType": "VariableDeclaration", + "scope": 7081, + "src": "15984:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 6935, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "15984:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15960:39:13" + }, + "returnParameters": { + "id": 6942, + "nodeType": "ParameterList", + "parameters": [], + "src": "16033:0:13" + }, + "scope": 7480, + "src": "15941:1793:13", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7246, + "nodeType": "Block", + "src": "17809:3749:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7089, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7083, + "src": "17850:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7088, + "name": "_validateProposalForProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7332, + "src": "17819:30:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", + "typeString": "function (uint256) view" + } + }, + "id": 7090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17819:45:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7091, + "nodeType": "ExpressionStatement", + "src": "17819:45:13" + }, + { + "assignments": [ + 7093 + ], + "declarations": [ + { + "constant": false, + "id": 7093, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 7246, + "src": "17876:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7092, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17876:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7097, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7094, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "17897:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 7096, + "indexExpression": { + "argumentTypes": null, + "id": 7095, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7083, + "src": "17911:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17897:28:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17876:49:13" + }, + { + "assignments": [ + 7099 + ], + "declarations": [ + { + "constant": false, + "id": 7099, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 7246, + "src": "17935:25:13", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 7098, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6419, + "src": "17935:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7103, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7100, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6434, + "src": "17963:9:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" + } + }, + "id": 7102, + "indexExpression": { + "argumentTypes": null, + "id": 7101, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7093, + "src": "17973:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17963:21:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage", + "typeString": "struct Governance.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17935:49:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 7110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7104, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "18090:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7107, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 6410, + "src": "18090:14:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 7108, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 7106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18105:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18090:17:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18110:4:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "18090:24:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7111, + "nodeType": "ExpressionStatement", + "src": "18090:24:13" + }, + { + "assignments": [ + 7113, + 7115 + ], + "declarations": [ + { + "constant": false, + "id": 7113, + "name": "didPass", + "nodeType": "VariableDeclaration", + "scope": 7246, + "src": "18140:12:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7112, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18140:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7115, + "name": "emergencyProcessing", + "nodeType": "VariableDeclaration", + "scope": 7246, + "src": "18154:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7114, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18154:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7119, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7117, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7083, + "src": "18191:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7116, + "name": "_didPass", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7281, + "src": "18182:8:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$_t_bool_$_t_bool_$", + "typeString": "function (uint256) returns (bool,bool)" + } + }, + "id": 7118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18182:23:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", + "typeString": "tuple(bool,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18139:66:13" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7122, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "18513:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7123, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sharesRequested", + "nodeType": "MemberAccess", + "referencedDeclaration": 6390, + "src": "18513:24:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7120, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6361, + "src": "18497:11:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "18497:15:13", + "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": 7124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18497:41:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 7125, + "name": "MAX_NUMBER_OF_SHARES", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6277, + "src": "18541:20:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18497:64:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7132, + "nodeType": "IfStatement", + "src": "18493:112:13", + "trueBody": { + "id": 7131, + "nodeType": "Block", + "src": "18563:42:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7127, + "name": "didPass", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7113, + "src": "18578:7:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 7128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18588:5:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "18578:15:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7130, + "nodeType": "ExpressionStatement", + "src": "18578:15:13" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "id": 7133, + "name": "didPass", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7113, + "src": "18971:7:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 7238, + "nodeType": "Block", + "src": "21060:378:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7230, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6363, + "src": "21075:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "32", + "id": 7231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21082:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "21075:8:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7233, + "nodeType": "ExpressionStatement", + "src": "21075:8:13" + }, + { + "condition": { + "argumentTypes": null, + "id": 7235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "21182:20:13", + "subExpression": { + "argumentTypes": null, + "id": 7234, + "name": "emergencyProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7115, + "src": "21183:19:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7237, + "nodeType": "IfStatement", + "src": "21178:250:13", + "trueBody": { + "id": 7236, + "nodeType": "Block", + "src": "21204:224:13", + "statements": [] + } + } + ] + }, + "id": 7239, + "nodeType": "IfStatement", + "src": "18967:2471:13", + "trueBody": { + "id": 7229, + "nodeType": "Block", + "src": "18980:2074:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7134, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6363, + "src": "18995:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 7135, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19002:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "18995:8:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7137, + "nodeType": "ExpressionStatement", + "src": "18995:8:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 7144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7138, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "19017:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7141, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 6410, + "src": "19017:14:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 7142, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 7140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19032:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "19017:17:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7143, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19037:4:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "19017:24:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7145, + "nodeType": "ExpressionStatement", + "src": "19017:24:13" + }, + { + "condition": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7146, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6426, + "src": "19161:7:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member storage ref)" + } + }, + "id": 7149, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7147, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "19169:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7148, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 6384, + "src": "19169:18:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19161:27:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "id": 7150, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exists", + "nodeType": "MemberAccess", + "referencedDeclaration": 6379, + "src": "19161:34:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 7219, + "nodeType": "Block", + "src": "19529:899:13", + "statements": [ + { + "condition": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7168, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6426, + "src": "19672:7:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member storage ref)" + } + }, + "id": 7173, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7169, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6430, + "src": "19680:26:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 7172, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7170, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "19707:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7171, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 6384, + "src": "19707:18:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19680:46:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19672:55:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "id": 7174, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exists", + "nodeType": "MemberAccess", + "referencedDeclaration": 6379, + "src": "19672:62:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7196, + "nodeType": "IfStatement", + "src": "19668:345:13", + "trueBody": { + "id": 7195, + "nodeType": "Block", + "src": "19736:277:13", + "statements": [ + { + "assignments": [ + 7176 + ], + "declarations": [ + { + "constant": false, + "id": 7176, + "name": "memberToOverride", + "nodeType": "VariableDeclaration", + "scope": 7195, + "src": "19758:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7175, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19758:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7181, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7177, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6430, + "src": "19785:26:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 7180, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7178, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "19812:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7179, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 6384, + "src": "19812:18:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19785:46:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19758:73:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 7186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7182, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6430, + "src": "19853:26:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 7184, + "indexExpression": { + "argumentTypes": null, + "id": 7183, + "name": "memberToOverride", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7176, + "src": "19880:16:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "19853:44:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7185, + "name": "memberToOverride", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7176, + "src": "19900:16:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19853:63:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7187, + "nodeType": "ExpressionStatement", + "src": "19853:63:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 7193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7188, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6426, + "src": "19938:7:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member storage ref)" + } + }, + "id": 7190, + "indexExpression": { + "argumentTypes": null, + "id": 7189, + "name": "memberToOverride", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7176, + "src": "19946:16:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19938:25:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "id": 7191, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "delegateKey", + "nodeType": "MemberAccess", + "referencedDeclaration": 6375, + "src": "19938:37:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7192, + "name": "memberToOverride", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7176, + "src": "19978:16:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19938:56:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7194, + "nodeType": "ExpressionStatement", + "src": "19938:56:13" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 7209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7197, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6426, + "src": "20099:7:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member storage ref)" + } + }, + "id": 7200, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7198, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "20107:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7199, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 6384, + "src": "20107:18:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "20099:27:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7202, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "20136:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7203, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 6384, + "src": "20136:18:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7204, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "20156:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7205, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sharesRequested", + "nodeType": "MemberAccess", + "referencedDeclaration": 6390, + "src": "20156:24:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20182:4:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 7207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20188:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7201, + "name": "Member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6382, + "src": "20129:6:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Member_$6382_storage_ptr_$", + "typeString": "type(struct Governance.Member storage pointer)" + } + }, + "id": 7208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20129:61:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_memory", + "typeString": "struct Governance.Member memory" + } + }, + "src": "20099:91:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "id": 7210, + "nodeType": "ExpressionStatement", + "src": "20099:91:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 7217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7211, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6430, + "src": "20346:26:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 7214, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7212, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "20373:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7213, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 6384, + "src": "20373:18:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "20346:46:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7215, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "20395:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7216, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 6384, + "src": "20395:18:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "20346:67:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7218, + "nodeType": "ExpressionStatement", + "src": "20346:67:13" + } + ] + }, + "id": 7220, + "nodeType": "IfStatement", + "src": "19157:1271:13", + "trueBody": { + "id": 7167, + "nodeType": "Block", + "src": "19197:326:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7151, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6426, + "src": "19215:7:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member storage ref)" + } + }, + "id": 7154, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7152, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "19223:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7153, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 6384, + "src": "19223:18:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19215:27:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "id": 7155, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 6377, + "src": "19215:34:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7162, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "19291:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7163, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sharesRequested", + "nodeType": "MemberAccess", + "referencedDeclaration": 6390, + "src": "19291:24:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7156, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6426, + "src": "19252:7:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member storage ref)" + } + }, + "id": 7159, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7157, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "19260:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7158, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 6384, + "src": "19260:18:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19252:27:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "id": 7160, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 6377, + "src": "19252:34:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "19252:38:13", + "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": 7164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19252:64:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19215:101:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7166, + "nodeType": "ExpressionStatement", + "src": "19215:101:13" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 7227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7221, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6361, + "src": "20481:11:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7224, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "20511:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7225, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sharesRequested", + "nodeType": "MemberAccess", + "referencedDeclaration": 6390, + "src": "20511:24:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7222, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6361, + "src": "20495:11:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "20495:15:13", + "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": 7226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20495:41:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20481:55:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7228, + "nodeType": "ExpressionStatement", + "src": "20481:55:13" + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7241, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7083, + "src": "21516:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7242, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7093, + "src": "21531:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7243, + "name": "didPass", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7113, + "src": "21543:7:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7240, + "name": "ProcessProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6329, + "src": "21500:15:13", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (uint256,uint256,bool)" + } + }, + "id": 7244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21500:51:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7245, + "nodeType": "EmitStatement", + "src": "21495:56:13" + } + ] + }, + "documentation": null, + "id": 7247, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 7086, + "modifierName": { + "argumentTypes": null, + "id": 7085, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9748, + "src": "17796:12:13", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "17796:12:13" + } + ], + "name": "processProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7084, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7083, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 7247, + "src": "17766:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7082, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17766:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17765:23:13" + }, + "returnParameters": { + "id": 7087, + "nodeType": "ParameterList", + "parameters": [], + "src": "17809:0:13" + }, + "scope": 7480, + "src": "17741:3817:13", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7280, + "nodeType": "Block", + "src": "23702:1751:13", + "statements": [ + { + "assignments": [ + 7257 + ], + "declarations": [ + { + "constant": false, + "id": 7257, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 7280, + "src": "23713:24:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", + "typeString": "struct Governance.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 7256, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6419, + "src": "23713:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7263, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7258, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6434, + "src": "23740:9:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" + } + }, + "id": 7262, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7259, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "23750:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 7261, + "indexExpression": { + "argumentTypes": null, + "id": 7260, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7249, + "src": "23764:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "23750:28:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "23740:39:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage", + "typeString": "struct Governance.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23713:66:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 7270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7264, + "name": "didPass", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7252, + "src": "23792:7:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7265, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7257, + "src": "23802:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", + "typeString": "struct Governance.Proposal memory" + } + }, + "id": 7266, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "yesVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 6404, + "src": "23802:17:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7267, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7257, + "src": "23822:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", + "typeString": "struct Governance.Proposal memory" + } + }, + "id": 7268, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "noVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 6406, + "src": "23822:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "23802:36:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "23792:46:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7271, + "nodeType": "ExpressionStatement", + "src": "23792:46:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 7274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7272, + "name": "emergencyProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7254, + "src": "23954:19:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 7273, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23976:5:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "23954:27:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7275, + "nodeType": "ExpressionStatement", + "src": "23954:27:13" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 7276, + "name": "didPass", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7252, + "src": "25416:7:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 7277, + "name": "emergencyProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7254, + "src": "25425:19:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 7278, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "25415:30:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", + "typeString": "tuple(bool,bool)" + } + }, + "functionReturnParameters": 7255, + "id": 7279, + "nodeType": "Return", + "src": "25408:37:13" + } + ] + }, + "documentation": null, + "id": 7281, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_didPass", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7250, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7249, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 7281, + "src": "23621:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7248, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23621:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "23620:23:13" + }, + "returnParameters": { + "id": 7255, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7252, + "name": "didPass", + "nodeType": "VariableDeclaration", + "scope": 7281, + "src": "23662:12:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7251, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "23662:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7254, + "name": "emergencyProcessing", + "nodeType": "VariableDeclaration", + "scope": 7281, + "src": "23676:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7253, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "23676:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "23661:40:13" + }, + "scope": 7480, + "src": "23603:1850:13", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7331, + "nodeType": "Block", + "src": "25538:546:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7287, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7283, + "src": "25557:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7288, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "25573:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 7289, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "25573:20:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25557:36:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", + "id": 7291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25595:25:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + }, + "value": "proposal does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + } + ], + "id": 7286, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "25549:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25549:72:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7293, + "nodeType": "ExpressionStatement", + "src": "25549:72:13" + }, + { + "assignments": [ + 7295 + ], + "declarations": [ + { + "constant": false, + "id": 7295, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 7331, + "src": "25632:24:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", + "typeString": "struct Governance.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 7294, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6419, + "src": "25632:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7301, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7296, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6434, + "src": "25659:9:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" + } + }, + "id": 7300, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7297, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "25669:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 7299, + "indexExpression": { + "argumentTypes": null, + "id": 7298, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7283, + "src": "25683:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25669:28:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25659:39:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage", + "typeString": "struct Governance.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "25632:66:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7303, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7295, + "src": "25874:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", + "typeString": "struct Governance.Proposal memory" + } + }, + "id": 7304, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 6410, + "src": "25874:14:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_memory", + "typeString": "bool[6] memory" + } + }, + "id": 7306, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 7305, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25889:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25874:17:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 7307, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25895:5:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "25874:26:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c2068617320616c7265616479206265656e2070726f636573736564", + "id": 7309, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25902:37:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f70ef3e0419e3b9f916dea28b6ea9e7ed2c6d066761e4c360c469298c30b58d3", + "typeString": "literal_string \"proposal has already been processed\"" + }, + "value": "proposal has already been processed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f70ef3e0419e3b9f916dea28b6ea9e7ed2c6d066761e4c360c469298c30b58d3", + "typeString": "literal_string \"proposal has already been processed\"" + } + ], + "id": 7302, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "25866:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25866:74:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7311, + "nodeType": "ExpressionStatement", + "src": "25866:74:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7313, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7283, + "src": "25959:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25976:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "25959:18:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7316, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6434, + "src": "25981:9:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" + } + }, + "id": 7323, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7317, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "25991:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 7322, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 7320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26023:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "id": 7318, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7283, + "src": "26005:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "26005:17:13", + "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": 7321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "26005:20:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25991:35:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25981:46:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage", + "typeString": "struct Governance.Proposal storage ref" + } + }, + "id": 7324, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 6410, + "src": "25981:52:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 7326, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 7325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26034:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25981:55:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "25959:77:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726576696f75732070726f706f73616c206d7573742062652070726f636573736564", + "id": 7328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26038:37:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_38cd8535d1c8042024c6aab26e03143698df4f39cb508f25654837a140ff5918", + "typeString": "literal_string \"previous proposal must be processed\"" + }, + "value": "previous proposal must be processed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_38cd8535d1c8042024c6aab26e03143698df4f39cb508f25654837a140ff5918", + "typeString": "literal_string \"previous proposal must be processed\"" + } + ], + "id": 7312, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "25951:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25951:125:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7330, + "nodeType": "ExpressionStatement", + "src": "25951:125:13" + } + ] + }, + "documentation": null, + "id": 7332, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_validateProposalForProcessing", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7284, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7283, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 7332, + "src": "25501:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7282, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "25501:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "25500:23:13" + }, + "returnParameters": { + "id": 7285, + "nodeType": "ParameterList", + "parameters": [], + "src": "25538:0:13" + }, + "scope": 7480, + "src": "25461:623:13", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7348, + "nodeType": "Block", + "src": "31694:40:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7341, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7334, + "src": "31712:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 7342, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7336, + "src": "31717:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31712:6:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 7345, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7336, + "src": "31725:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "31712:14:13", + "trueExpression": { + "argumentTypes": null, + "id": 7344, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7334, + "src": "31721:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7340, + "id": 7347, + "nodeType": "Return", + "src": "31705:21:13" + } + ] + }, + "documentation": "*************\r\nGETTER FUNCTIONS\r**************", + "id": 7349, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7337, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7334, + "name": "x", + "nodeType": "VariableDeclaration", + "scope": 7349, + "src": "31640:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7333, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31640:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7336, + "name": "y", + "nodeType": "VariableDeclaration", + "scope": 7349, + "src": "31651:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7335, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31651:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "31639:22:13" + }, + "returnParameters": { + "id": 7340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7339, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7349, + "src": "31685:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7338, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31685:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "31684:9:13" + }, + "scope": 7480, + "src": "31627:107:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7362, + "nodeType": "Block", + "src": "31800:68:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7359, + "name": "periodDuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6248, + "src": "31845:14:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7356, + "name": "summoningTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "31826:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7354, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10413, + "src": "31818:3:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "31818:7:13", + "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": 7357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31818:22:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9808, + "src": "31818:26:13", + "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": 7360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31818:42:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7353, + "id": 7361, + "nodeType": "Return", + "src": "31811:49:13" + } + ] + }, + "documentation": null, + "id": 7363, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getCurrentPeriod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7350, + "nodeType": "ParameterList", + "parameters": [], + "src": "31767:2:13" + }, + "returnParameters": { + "id": 7353, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7352, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7363, + "src": "31791:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7351, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31791:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "31790:9:13" + }, + "scope": 7480, + "src": "31742:126:13", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7371, + "nodeType": "Block", + "src": "31939:44:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7368, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "31956:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 7369, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "31956:20:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7367, + "id": 7370, + "nodeType": "Return", + "src": "31949:27:13" + } + ] + }, + "documentation": null, + "id": 7372, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getProposalQueueLength", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7364, + "nodeType": "ParameterList", + "parameters": [], + "src": "31906:2:13" + }, + "returnParameters": { + "id": 7367, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7366, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7372, + "src": "31930:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31930:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "31929:9:13" + }, + "scope": 7480, + "src": "31875:108:13", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7386, + "nodeType": "Block", + "src": "32073:51:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7381, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6434, + "src": "32090:9:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" + } + }, + "id": 7383, + "indexExpression": { + "argumentTypes": null, + "id": 7382, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7374, + "src": "32100:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "32090:21:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage", + "typeString": "struct Governance.Proposal storage ref" + } + }, + "id": 7384, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 6410, + "src": "32090:27:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "functionReturnParameters": 7380, + "id": 7385, + "nodeType": "Return", + "src": "32083:34:13" + } + ] + }, + "documentation": null, + "id": 7387, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getProposalFlags", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7374, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 7387, + "src": "32016:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32016:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "32015:20:13" + }, + "returnParameters": { + "id": 7380, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7379, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7387, + "src": "32057:14:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6]" + }, + "typeName": { + "baseType": { + "id": 7376, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32057:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7378, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 7377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32062:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "32057:7:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", + "typeString": "bool[6]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "32056:16:13" + }, + "scope": 7480, + "src": "31990:134:13", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7411, + "nodeType": "Block", + "src": "32293:169:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7395, + "name": "highestIndexYesVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7389, + "src": "32312:19:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7396, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "32334:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 7397, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "32334:20:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "32312:42:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", + "id": 7399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32356:25:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + }, + "value": "proposal does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + } + ], + "id": 7394, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "32304:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32304:78:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7401, + "nodeType": "ExpressionStatement", + "src": "32304:78:13" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7402, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6434, + "src": "32400:9:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" + } + }, + "id": 7406, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7403, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "32410:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 7405, + "indexExpression": { + "argumentTypes": null, + "id": 7404, + "name": "highestIndexYesVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7389, + "src": "32424:19:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "32410:34:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "32400:45:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage", + "typeString": "struct Governance.Proposal storage ref" + } + }, + "id": 7407, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 6410, + "src": "32400:51:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 7409, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 7408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32452:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "32400:54:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 7393, + "id": 7410, + "nodeType": "Return", + "src": "32393:61:13" + } + ] + }, + "documentation": null, + "id": 7412, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "canRagequit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7389, + "name": "highestIndexYesVote", + "nodeType": "VariableDeclaration", + "scope": 7412, + "src": "32237:27:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7388, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32237:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "32236:29:13" + }, + "returnParameters": { + "id": 7393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7392, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7412, + "src": "32287:4:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32287:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "32286:6:13" + }, + "scope": 7480, + "src": "32216:246:13", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7427, + "nodeType": "Block", + "src": "33326:86:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7419, + "name": "getCurrentPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7363, + "src": "33344:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 7420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33344:18:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7423, + "name": "votingPeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6250, + "src": "33385:18:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7421, + "name": "startingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7414, + "src": "33366:14:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "33366:18:13", + "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": 7424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33366:38:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "33344:60:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 7418, + "id": 7426, + "nodeType": "Return", + "src": "33337:67:13" + } + ] + }, + "documentation": null, + "id": 7428, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "hasVotingPeriodExpired", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7414, + "name": "startingPeriod", + "nodeType": "VariableDeclaration", + "scope": 7428, + "src": "33275:22:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7413, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33275:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "33274:24:13" + }, + "returnParameters": { + "id": 7418, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7417, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7428, + "src": "33320:4:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7416, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "33320:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "33319:6:13" + }, + "scope": 7480, + "src": "33243:169:13", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7462, + "nodeType": "Block", + "src": "33523:247:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7438, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6426, + "src": "33541:7:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member storage ref)" + } + }, + "id": 7440, + "indexExpression": { + "argumentTypes": null, + "id": 7439, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7430, + "src": "33549:13:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33541:22:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "id": 7441, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exists", + "nodeType": "MemberAccess", + "referencedDeclaration": 6379, + "src": "33541:29:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6d656d62657220646f6573206e6f74206578697374", + "id": 7442, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "33572:23:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_eeb2dbde81ed918fce84900f40c1838c2cab850a4c637d1ccdd3d5601b174fb4", + "typeString": "literal_string \"member does not exist\"" + }, + "value": "member does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_eeb2dbde81ed918fce84900f40c1838c2cab850a4c637d1ccdd3d5601b174fb4", + "typeString": "literal_string \"member does not exist\"" + } + ], + "id": 7437, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "33533:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33533:63:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7444, + "nodeType": "ExpressionStatement", + "src": "33533:63:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7446, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7432, + "src": "33614:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7447, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "33630:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 7448, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "33630:20:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "33614:36:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", + "id": 7450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "33652:25:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + }, + "value": "proposal does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + } + ], + "id": 7445, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "33606:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33606:72:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7452, + "nodeType": "ExpressionStatement", + "src": "33606:72:13" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7453, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6434, + "src": "33695:9:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" + } + }, + "id": 7457, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7454, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "33705:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 7456, + "indexExpression": { + "argumentTypes": null, + "id": 7455, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7432, + "src": "33719:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33705:28:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33695:39:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage", + "typeString": "struct Governance.Proposal storage ref" + } + }, + "id": 7458, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "votesByMember", + "nodeType": "MemberAccess", + "referencedDeclaration": 6418, + "src": "33695:53:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$6373_$", + "typeString": "mapping(address => enum Governance.Vote)" + } + }, + "id": 7460, + "indexExpression": { + "argumentTypes": null, + "id": 7459, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7430, + "src": "33749:13:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33695:68:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "functionReturnParameters": 7436, + "id": 7461, + "nodeType": "Return", + "src": "33688:75:13" + } + ] + }, + "documentation": null, + "id": 7463, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMemberProposalVote", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7433, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7430, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 7463, + "src": "33450:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7429, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33450:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7432, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 7463, + "src": "33473:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7431, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33473:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "33449:46:13" + }, + "returnParameters": { + "id": 7436, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7435, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7463, + "src": "33517:4:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + }, + "typeName": { + "contractScope": null, + "id": 7434, + "name": "Vote", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6373, + "src": "33517:4:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "33516:6:13" + }, + "scope": 7480, + "src": "33419:351:13", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7470, + "nodeType": "Block", + "src": "33829:39:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7468, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6358, + "src": "33847:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7467, + "id": 7469, + "nodeType": "Return", + "src": "33840:20:13" + } + ] + }, + "documentation": null, + "id": 7471, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7464, + "nodeType": "ParameterList", + "parameters": [], + "src": "33797:2:13" + }, + "returnParameters": { + "id": 7467, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7466, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7471, + "src": "33821:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7465, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33821:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "33820:9:13" + }, + "scope": 7480, + "src": "33776:92:13", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7478, + "nodeType": "Block", + "src": "33925:63:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7476, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6363, + "src": "33943:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7475, + "id": 7477, + "nodeType": "Return", + "src": "33936:13:13" + } + ] + }, + "documentation": null, + "id": 7479, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getResult", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7472, + "nodeType": "ParameterList", + "parameters": [], + "src": "33893:2:13" + }, + "returnParameters": { + "id": 7475, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7474, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7479, + "src": "33917:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7473, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33917:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "33916:9:13" + }, + "scope": 7480, + "src": "33874:114:13", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 7481, + "src": "157:33834:13" + } + ], + "src": "0:33993:13" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Governance.sol", + "exportedSymbols": { + "Governance": [ + 7480 + ] + }, + "id": 7481, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 6235, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:13" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "./oz/SafeMath.sol", + "id": 6236, + "nodeType": "ImportDirective", + "scope": 7481, + "sourceUnit": 9858, + "src": "36:27:13", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", + "file": "./oz/IERC20.sol", + "id": 6237, + "nodeType": "ImportDirective", + "scope": 7481, + "sourceUnit": 9720, + "src": "65:25:13", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol", + "file": "./oz/ReentrancyGuard.sol", + "id": 6238, + "nodeType": "ImportDirective", + "scope": 7481, + "sourceUnit": 9750, + "src": "92:34:13", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol", + "file": "./GuildBank.sol", + "id": 6239, + "nodeType": "ImportDirective", + "scope": 7481, + "sourceUnit": 7659, + "src": "128:25:13", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 6240, + "name": "ReentrancyGuard", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9749, + "src": "180:15:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReentrancyGuard_$9749", + "typeString": "contract ReentrancyGuard" + } + }, + "id": 6241, + "nodeType": "InheritanceSpecifier", + "src": "180:15:13" + } + ], + "contractDependencies": [ + 7658, + 9749 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 7480, + "linearizedBaseContracts": [ + 7480, + 9749 + ], + "name": "Governance", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 6244, + "libraryName": { + "contractScope": null, + "id": 6242, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "209:8:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "203:27:13", + "typeName": { + "id": 6243, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "222:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 6246, + "name": "admin", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "304:20:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6245, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "304:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6248, + "name": "periodDuration", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "388:29:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6247, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "388:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6250, + "name": "votingPeriodLength", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "486:33:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6249, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "486:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6252, + "name": "gracePeriodLength", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "559:32:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "559:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6254, + "name": "emergencyProcessingWait", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "631:38:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6253, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "631:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6256, + "name": "proposalDeposit", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "778:30:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6255, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "778:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6258, + "name": "summoningTime", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "1129:28:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6257, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1129:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6260, + "name": "depositToken", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "1208:26:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 6259, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "1208:6:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6262, + "name": "guildBank", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "1293:26:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + }, + "typeName": { + "contractScope": null, + "id": 6261, + "name": "GuildBank", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7658, + "src": "1293:9:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "id": 6267, + "name": "MAX_VOTING_PERIOD_LENGTH", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "1577:50:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6263, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1577:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "id": 6266, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 6264, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1621:2:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 6265, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1625:2:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "1621:6:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 6272, + "name": "MAX_GRACE_PERIOD_LENGTH", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "1669:49:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6268, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1669:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "id": 6271, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 6269, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1712:2:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 6270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1716:2:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "1712:6:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 6277, + "name": "MAX_NUMBER_OF_SHARES", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "2103:46:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6273, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2103:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "id": 6276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 6274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2143:2:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 6275, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2147:2:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "2143:6:13", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + }, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 6299, + "name": "SubmitProposal", + "nodeType": "EventDefinition", + "parameters": { + "id": 6298, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6279, + "indexed": false, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 6299, + "src": "2289:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6278, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2289:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6281, + "indexed": true, + "name": "delegateKey", + "nodeType": "VariableDeclaration", + "scope": 6299, + "src": "2312:27:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6280, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2312:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6283, + "indexed": true, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 6299, + "src": "2341:29:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6282, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2341:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6285, + "indexed": true, + "name": "applicant", + "nodeType": "VariableDeclaration", + "scope": 6299, + "src": "2372:25:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6284, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2372:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6287, + "indexed": false, + "name": "sharesRequested", + "nodeType": "VariableDeclaration", + "scope": 6299, + "src": "2399:23:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6286, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2399:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6289, + "indexed": false, + "name": "lootRequested", + "nodeType": "VariableDeclaration", + "scope": 6299, + "src": "2424:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2424:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6291, + "indexed": false, + "name": "tributeOffered", + "nodeType": "VariableDeclaration", + "scope": 6299, + "src": "2447:22:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2447:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6293, + "indexed": false, + "name": "tributeToken", + "nodeType": "VariableDeclaration", + "scope": 6299, + "src": "2471:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6292, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2471:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6295, + "indexed": false, + "name": "paymentRequested", + "nodeType": "VariableDeclaration", + "scope": 6299, + "src": "2493:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6294, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2493:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6297, + "indexed": false, + "name": "paymentToken", + "nodeType": "VariableDeclaration", + "scope": 6299, + "src": "2519:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6296, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2519:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2288:252:13" + }, + "src": "2268:273:13" + }, + { + "anonymous": false, + "documentation": null, + "id": 6311, + "name": "SponsorProposal", + "nodeType": "EventDefinition", + "parameters": { + "id": 6310, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6301, + "indexed": true, + "name": "delegateKey", + "nodeType": "VariableDeclaration", + "scope": 6311, + "src": "2569:27:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6300, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2569:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6303, + "indexed": true, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 6311, + "src": "2598:29:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6302, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2598:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6305, + "indexed": false, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 6311, + "src": "2629:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6304, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2629:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6307, + "indexed": false, + "name": "proposalQueueIndex", + "nodeType": "VariableDeclaration", + "scope": 6311, + "src": "2652:26:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6306, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2652:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6309, + "indexed": false, + "name": "startingPeriod", + "nodeType": "VariableDeclaration", + "scope": 6311, + "src": "2680:22:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6308, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2680:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2568:135:13" + }, + "src": "2547:157:13" + }, + { + "anonymous": false, + "documentation": null, + "id": 6321, + "name": "SubmitVote", + "nodeType": "EventDefinition", + "parameters": { + "id": 6320, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6313, + "indexed": true, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 6321, + "src": "2727:29:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2727:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6315, + "indexed": true, + "name": "delegateKey", + "nodeType": "VariableDeclaration", + "scope": 6321, + "src": "2758:27:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2758:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6317, + "indexed": true, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 6321, + "src": "2787:29:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6316, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2787:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6319, + "indexed": false, + "name": "uintVote", + "nodeType": "VariableDeclaration", + "scope": 6321, + "src": "2818:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 6318, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2818:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2726:107:13" + }, + "src": "2710:124:13" + }, + { + "anonymous": false, + "documentation": null, + "id": 6329, + "name": "ProcessProposal", + "nodeType": "EventDefinition", + "parameters": { + "id": 6328, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6323, + "indexed": true, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 6329, + "src": "2862:29:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6322, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2862:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6325, + "indexed": true, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 6329, + "src": "2893:26:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6324, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2893:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6327, + "indexed": false, + "name": "didPass", + "nodeType": "VariableDeclaration", + "scope": 6329, + "src": "2921:12:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6326, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2921:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2861:73:13" + }, + "src": "2840:95:13" + }, + { + "anonymous": false, + "documentation": null, + "id": 6337, + "name": "Ragequit", + "nodeType": "EventDefinition", + "parameters": { + "id": 6336, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6331, + "indexed": true, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 6337, + "src": "2956:29:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6330, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2956:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6333, + "indexed": false, + "name": "sharesToBurn", + "nodeType": "VariableDeclaration", + "scope": 6337, + "src": "2987:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6332, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2987:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6335, + "indexed": false, + "name": "lootToBurn", + "nodeType": "VariableDeclaration", + "scope": 6337, + "src": "3009:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6334, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3009:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2955:73:13" + }, + "src": "2941:88:13" + }, + { + "anonymous": false, + "documentation": null, + "id": 6343, + "name": "CancelProposal", + "nodeType": "EventDefinition", + "parameters": { + "id": 6342, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6339, + "indexed": true, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 6343, + "src": "3056:29:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6338, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3056:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6341, + "indexed": false, + "name": "applicantAddress", + "nodeType": "VariableDeclaration", + "scope": 6343, + "src": "3087:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6340, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3087:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3055:57:13" + }, + "src": "3035:78:13" + }, + { + "anonymous": false, + "documentation": null, + "id": 6349, + "name": "UpdateDelegateKey", + "nodeType": "EventDefinition", + "parameters": { + "id": 6348, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6345, + "indexed": true, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 6349, + "src": "3143:29:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6344, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3143:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6347, + "indexed": false, + "name": "newDelegateKey", + "nodeType": "VariableDeclaration", + "scope": 6349, + "src": "3174:22:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6346, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3174:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3142:55:13" + }, + "src": "3119:79:13" + }, + { + "anonymous": false, + "documentation": null, + "id": 6355, + "name": "SummonComplete", + "nodeType": "EventDefinition", + "parameters": { + "id": 6354, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6351, + "indexed": true, + "name": "admin", + "nodeType": "VariableDeclaration", + "scope": 6355, + "src": "3225:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6350, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3225:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6353, + "indexed": false, + "name": "shares", + "nodeType": "VariableDeclaration", + "scope": 6355, + "src": "3248:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6352, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3248:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3224:39:13" + }, + "src": "3204:60:13" + }, + { + "constant": false, + "id": 6358, + "name": "proposalCount", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "3356:32:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6356, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3356:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 6357, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3387:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 6361, + "name": "totalShares", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "3424:30:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6359, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3424:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 6360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3453:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 6363, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "3566:21:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6362, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3566:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6366, + "name": "emergencyWarning", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "3596:36:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6364, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3596:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 6365, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3627:5:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 6369, + "name": "lastEmergencyProposalIndex", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "3695:45:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6367, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3695:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 6368, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3739:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "canonicalName": "Governance.Vote", + "id": 6373, + "members": [ + { + "id": 6370, + "name": "Null", + "nodeType": "EnumValue", + "src": "3837:4:13" + }, + { + "id": 6371, + "name": "Yes", + "nodeType": "EnumValue", + "src": "3892:3:13" + }, + { + "id": 6372, + "name": "No", + "nodeType": "EnumValue", + "src": "3906:2:13" + } + ], + "name": "Vote", + "nodeType": "EnumDefinition", + "src": "3816:99:13" + }, + { + "canonicalName": "Governance.Member", + "id": 6382, + "members": [ + { + "constant": false, + "id": 6375, + "name": "delegateKey", + "nodeType": "VariableDeclaration", + "scope": 6382, + "src": "3948:19:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6374, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3948:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6377, + "name": "shares", + "nodeType": "VariableDeclaration", + "scope": 6382, + "src": "4081:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6376, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4081:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6379, + "name": "exists", + "nodeType": "VariableDeclaration", + "scope": 6382, + "src": "4260:11:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 6378, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4260:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6381, + "name": "highestIndexYesVote", + "nodeType": "VariableDeclaration", + "scope": 6382, + "src": "4328:27:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6380, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4328:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Member", + "nodeType": "StructDefinition", + "scope": 7480, + "src": "3923:643:13", + "visibility": "public" + }, + { + "canonicalName": "Governance.Proposal", + "id": 6419, + "members": [ + { + "constant": false, + "id": 6384, + "name": "applicant", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "4601:17:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6383, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4601:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6386, + "name": "proposer", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "4767:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6385, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4767:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6388, + "name": "sponsor", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "4857:15:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6387, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4857:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6390, + "name": "sharesRequested", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "4952:23:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6389, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4952:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6392, + "name": "lootRequested", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "5033:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6391, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5033:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6394, + "name": "tributeOffered", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "5115:22:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6393, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5115:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6396, + "name": "tributeToken", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "5187:19:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 6395, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "5187:6:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6398, + "name": "paymentRequested", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "5253:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6397, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5253:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6400, + "name": "paymentToken", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "5329:19:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 6399, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "5329:6:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6402, + "name": "startingPeriod", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "5395:22:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6401, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5395:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6404, + "name": "yesVotes", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "5486:16:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6403, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5486:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6406, + "name": "noVotes", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "5564:15:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6405, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5564:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6410, + "name": "flags", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "5640:13:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", + "typeString": "bool[6]" + }, + "typeName": { + "baseType": { + "id": 6407, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5640:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6409, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 6408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5645:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "5640:7:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", + "typeString": "bool[6]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6412, + "name": "details", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "5732:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6411, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5732:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6414, + "name": "maxTotalSharesAndLootAtYesVote", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "5818:38:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6413, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5818:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6418, + "name": "votesByMember", + "nodeType": "VariableDeclaration", + "scope": 6419, + "src": "5943:38:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$6373_$", + "typeString": "mapping(address => enum Governance.Vote)" + }, + "typeName": { + "id": 6417, + "keyType": { + "id": 6415, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5951:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5943:24:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$6373_$", + "typeString": "mapping(address => enum Governance.Vote)" + }, + "valueType": { + "contractScope": null, + "id": 6416, + "name": "Vote", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6373, + "src": "5962:4:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Proposal", + "nodeType": "StructDefinition", + "scope": 7480, + "src": "4574:1460:13", + "visibility": "public" + }, + { + "constant": false, + "id": 6422, + "name": "approvedTokens", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "6098:30:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage", + "typeString": "contract IERC20[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 6420, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "6098:6:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 6421, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6098:8:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage_ptr", + "typeString": "contract IERC20[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6426, + "name": "members", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "6256:41:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member)" + }, + "typeName": { + "id": 6425, + "keyType": { + "id": 6423, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6264:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "6256:26:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member)" + }, + "valueType": { + "contractScope": null, + "id": 6424, + "name": "Member", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6382, + "src": "6275:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", + "typeString": "struct Governance.Member" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6430, + "name": "memberAddressByDelegateKey", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "6304:61:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "typeName": { + "id": 6429, + "keyType": { + "id": 6427, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6312:7:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "6304:27:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "valueType": { + "id": 6428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6323:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6434, + "name": "proposals", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "6374:45:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal)" + }, + "typeName": { + "id": 6433, + "keyType": { + "id": 6431, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6382:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "6374:28:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal)" + }, + "valueType": { + "contractScope": null, + "id": 6432, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6419, + "src": "6393:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 6437, + "name": "proposalQueue", + "nodeType": "VariableDeclaration", + "scope": 7480, + "src": "6428:30:13", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 6435, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6428:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6436, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6428:9:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 6451, + "nodeType": "Block", + "src": "6643:87:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6440, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6426, + "src": "6662:7:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member storage ref)" + } + }, + "id": 6443, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6441, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6670:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6670:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6662:19:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "id": 6444, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 6377, + "src": "6662:26:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6445, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6691:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6662:30:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6e6f742061206d656d626572", + "id": 6447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6695:14:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8a38730a0a31747b89b97e72db1b281f9d6fdcc9116c7bee85aba010b162e996", + "typeString": "literal_string \"not a member\"" + }, + "value": "not a member" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a38730a0a31747b89b97e72db1b281f9d6fdcc9116c7bee85aba010b162e996", + "typeString": "literal_string \"not a member\"" + } + ], + "id": 6439, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "6654:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6654:56:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6449, + "nodeType": "ExpressionStatement", + "src": "6654:56:13" + }, + { + "id": 6450, + "nodeType": "PlaceholderStatement", + "src": "6721:1:13" + } + ] + }, + "documentation": null, + "id": 6452, + "name": "onlyMember", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 6438, + "nodeType": "ParameterList", + "parameters": [], + "src": "6643:0:13" + }, + "src": "6623:107:13", + "visibility": "internal" + }, + { + "body": { + "id": 6466, + "nodeType": "Block", + "src": "6763:91:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6455, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6426, + "src": "6782:7:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member storage ref)" + } + }, + "id": 6458, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6456, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6790:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6790:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6782:19:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "id": 6459, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 6377, + "src": "6782:26:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6460, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6811:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6782:30:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6e6f742061207368617265686f6c646572", + "id": 6462, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6814:19:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f04c1891c0a18f803b467b9992e2d2738663e155d08d2aaee274da8a131a0bdb", + "typeString": "literal_string \"not a shareholder\"" + }, + "value": "not a shareholder" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f04c1891c0a18f803b467b9992e2d2738663e155d08d2aaee274da8a131a0bdb", + "typeString": "literal_string \"not a shareholder\"" + } + ], + "id": 6454, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "6774:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6463, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6774:60:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6464, + "nodeType": "ExpressionStatement", + "src": "6774:60:13" + }, + { + "id": 6465, + "nodeType": "PlaceholderStatement", + "src": "6845:1:13" + } + ] + }, + "documentation": null, + "id": 6467, + "name": "onlyShareholder", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 6453, + "nodeType": "ParameterList", + "parameters": [], + "src": "6763:0:13" + }, + "src": "6738:116:13", + "visibility": "internal" + }, + { + "body": { + "id": 6483, + "nodeType": "Block", + "src": "6884:116:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6470, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6426, + "src": "6903:7:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member storage ref)" + } + }, + "id": 6475, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6471, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6430, + "src": "6911:26:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 6474, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6472, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6938:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6938:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6911:38:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6903:47:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "id": 6476, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 6377, + "src": "6903:54:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6477, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6960:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6903:58:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6e6f7420612064656c6567617465", + "id": 6479, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6963:16:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4d2048a93053cc7fa7807c657f537fc9d130edf6819e714c97d45589e5ba66dc", + "typeString": "literal_string \"not a delegate\"" + }, + "value": "not a delegate" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4d2048a93053cc7fa7807c657f537fc9d130edf6819e714c97d45589e5ba66dc", + "typeString": "literal_string \"not a delegate\"" + } + ], + "id": 6469, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "6895:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6895:85:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6481, + "nodeType": "ExpressionStatement", + "src": "6895:85:13" + }, + { + "id": 6482, + "nodeType": "PlaceholderStatement", + "src": "6991:1:13" + } + ] + }, + "documentation": null, + "id": 6484, + "name": "onlyDelegate", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 6468, + "nodeType": "ParameterList", + "parameters": [], + "src": "6884:0:13" + }, + "src": "6862:138:13", + "visibility": "internal" + }, + { + "body": { + "id": 6663, + "nodeType": "Block", + "src": "7390:2232:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6514, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6510, + "name": "_admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6486, + "src": "7409:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7427:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7419:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 6513, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7419:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7409:20:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "61646d696e2063616e6e6f742062652030", + "id": 6515, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7431:19:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_34fd041aec796669a45725a5f2b52fe72174400c96ad9493bcab3ab40112f810", + "typeString": "literal_string \"admin cannot be 0\"" + }, + "value": "admin cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_34fd041aec796669a45725a5f2b52fe72174400c96ad9493bcab3ab40112f810", + "typeString": "literal_string \"admin cannot be 0\"" + } + ], + "id": 6509, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7401:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7401:50:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6517, + "nodeType": "ExpressionStatement", + "src": "7401:50:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6519, + "name": "_periodDuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6492, + "src": "7470:15:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6520, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7488:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7470:19:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f706572696f644475726174696f6e2063616e6e6f742062652030", + "id": 6522, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7491:29:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_dcaa7db0431116123c67314944edc83f1ee2d0251a1b070940664f004c74012d", + "typeString": "literal_string \"_periodDuration cannot be 0\"" + }, + "value": "_periodDuration cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_dcaa7db0431116123c67314944edc83f1ee2d0251a1b070940664f004c74012d", + "typeString": "literal_string \"_periodDuration cannot be 0\"" + } + ], + "id": 6518, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7462:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7462:59:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6524, + "nodeType": "ExpressionStatement", + "src": "7462:59:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6526, + "name": "_votingPeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6494, + "src": "7540:19:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6527, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7562:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7540:23:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f766f74696e67506572696f644c656e6774682063616e6e6f742062652030", + "id": 6529, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7565:33:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_90c9559254cdd6a8c5e39e97417540a97cc2c7e6b004410ebb33d7f7769bc53b", + "typeString": "literal_string \"_votingPeriodLength cannot be 0\"" + }, + "value": "_votingPeriodLength cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_90c9559254cdd6a8c5e39e97417540a97cc2c7e6b004410ebb33d7f7769bc53b", + "typeString": "literal_string \"_votingPeriodLength cannot be 0\"" + } + ], + "id": 6525, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7532:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6530, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7532:67:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6531, + "nodeType": "ExpressionStatement", + "src": "7532:67:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6533, + "name": "_votingPeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6494, + "src": "7618:19:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 6534, + "name": "MAX_VOTING_PERIOD_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6267, + "src": "7641:24:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7618:47:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f766f74696e67506572696f644c656e6774682065786365656473206c696d6974", + "id": 6536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7667:35:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7cba4ff2b7c48d54c20d93277dca7b9500525168ffa3f2b94651177b72c45612", + "typeString": "literal_string \"_votingPeriodLength exceeds limit\"" + }, + "value": "_votingPeriodLength exceeds limit" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7cba4ff2b7c48d54c20d93277dca7b9500525168ffa3f2b94651177b72c45612", + "typeString": "literal_string \"_votingPeriodLength exceeds limit\"" + } + ], + "id": 6532, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7610:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7610:93:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6538, + "nodeType": "ExpressionStatement", + "src": "7610:93:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6540, + "name": "_gracePeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6496, + "src": "7722:18:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 6541, + "name": "MAX_GRACE_PERIOD_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6272, + "src": "7744:23:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7722:45:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f6772616365506572696f644c656e6774682065786365656473206c696d6974", + "id": 6543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7769:34:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_94e4c02e557a13b96fee3c87ad3ed501d16c78e01ccadd26d54a03a2773f4e60", + "typeString": "literal_string \"_gracePeriodLength exceeds limit\"" + }, + "value": "_gracePeriodLength exceeds limit" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94e4c02e557a13b96fee3c87ad3ed501d16c78e01ccadd26d54a03a2773f4e60", + "typeString": "literal_string \"_gracePeriodLength exceeds limit\"" + } + ], + "id": 6539, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7714:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7714:90:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6545, + "nodeType": "ExpressionStatement", + "src": "7714:90:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6547, + "name": "_emergencyProcessingWait", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6498, + "src": "7823:24:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6548, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7850:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7823:28:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f656d657267656e637950726f63657373696e67576169742063616e6e6f742062652030", + "id": 6550, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7853:38:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bbc33dc034ca97464527af241134c23d7681bf4b99d8886c6c16474b9fa58717", + "typeString": "literal_string \"_emergencyProcessingWait cannot be 0\"" + }, + "value": "_emergencyProcessingWait cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_bbc33dc034ca97464527af241134c23d7681bf4b99d8886c6c16474b9fa58717", + "typeString": "literal_string \"_emergencyProcessingWait cannot be 0\"" + } + ], + "id": 6546, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7815:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7815:77:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6552, + "nodeType": "ExpressionStatement", + "src": "7815:77:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6554, + "name": "_approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6490, + "src": "8282:15:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + } + }, + "id": 6555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8282:22:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8307:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "8282:26:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6e656564206174206c65617374206f6e6520617070726f76656420746f6b656e", + "id": 6558, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8310:34:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c6d3134f6bde8083414251001f93c467973bb02a0dc01b762665902389253170", + "typeString": "literal_string \"need at least one approved token\"" + }, + "value": "need at least one approved token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c6d3134f6bde8083414251001f93c467973bb02a0dc01b762665902389253170", + "typeString": "literal_string \"need at least one approved token\"" + } + ], + "id": 6553, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "8274:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8274:71:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6560, + "nodeType": "ExpressionStatement", + "src": "8274:71:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6561, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6246, + "src": "8479:5:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6562, + "name": "_admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6486, + "src": "8487:6:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8479:14:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6564, + "nodeType": "ExpressionStatement", + "src": "8479:14:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6565, + "name": "depositToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6260, + "src": "8506:12:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6567, + "name": "_approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6490, + "src": "8528:15:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + } + }, + "id": 6569, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8544:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8528:18:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6566, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9719, + "src": "8521:6:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8521:26:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "src": "8506:41:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 6572, + "nodeType": "ExpressionStatement", + "src": "8506:41:13" + }, + { + "body": { + "id": 6605, + "nodeType": "Block", + "src": "8613:309:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6585, + "name": "_approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6490, + "src": "8637:15:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + } + }, + "id": 6587, + "indexExpression": { + "argumentTypes": null, + "id": 6586, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6574, + "src": "8653:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8637:18:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8667:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8659:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 6590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8659:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8637:32:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f617070726f766564546f6b656e2063616e6e6f742062652030", + "id": 6592, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8671:28:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b40b09ae38f1346b8a26ea643f189c8d547e60b5d4d63ceb6e8e43507dd5bc8", + "typeString": "literal_string \"_approvedToken cannot be 0\"" + }, + "value": "_approvedToken cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b40b09ae38f1346b8a26ea643f189c8d547e60b5d4d63ceb6e8e43507dd5bc8", + "typeString": "literal_string \"_approvedToken cannot be 0\"" + } + ], + "id": 6584, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "8629:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8629:71:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6594, + "nodeType": "ExpressionStatement", + "src": "8629:71:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6599, + "name": "_approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6490, + "src": "8890:15:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + } + }, + "id": 6601, + "indexExpression": { + "argumentTypes": null, + "id": 6600, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6574, + "src": "8906:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8890:18:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6598, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9719, + "src": "8883:6:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8883:26:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + ], + "expression": { + "argumentTypes": null, + "id": 6595, + "name": "approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6422, + "src": "8863:14:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage", + "typeString": "contract IERC20[] storage ref" + } + }, + "id": 6597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8863:19:13", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_IERC20_$9719_$returns$_t_uint256_$", + "typeString": "function (contract IERC20) returns (uint256)" + } + }, + "id": 6603, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8863:47:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6604, + "nodeType": "ExpressionStatement", + "src": "8863:47:13" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6577, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6574, + "src": "8580:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6578, + "name": "_approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6490, + "src": "8584:15:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + } + }, + "id": 6579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8584:22:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8580:26:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6606, + "initializationExpression": { + "assignments": [ + 6574 + ], + "declarations": [ + { + "constant": false, + "id": 6574, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 6606, + "src": "8565:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6573, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8565:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6576, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 6575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8577:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "8565:13:13" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 6582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "8608:3:13", + "subExpression": { + "argumentTypes": null, + "id": 6581, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6574, + "src": "8608:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6583, + "nodeType": "ExpressionStatement", + "src": "8608:3:13" + }, + "nodeType": "ForStatement", + "src": "8560:362:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6607, + "name": "guildBank", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6262, + "src": "8934:9:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "8946:13:13", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_GuildBank_$7658_$", + "typeString": "function () returns (contract GuildBank)" + }, + "typeName": { + "contractScope": null, + "id": 6608, + "name": "GuildBank", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7658, + "src": "8950:9:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + } + }, + "id": 6610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8946:15:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + }, + "src": "8934:27:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + }, + "id": 6612, + "nodeType": "ExpressionStatement", + "src": "8934:27:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6615, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6613, + "name": "periodDuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6248, + "src": "8974:14:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6614, + "name": "_periodDuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6492, + "src": "8991:15:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8974:32:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6616, + "nodeType": "ExpressionStatement", + "src": "8974:32:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6617, + "name": "votingPeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6250, + "src": "9017:18:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6618, + "name": "_votingPeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6494, + "src": "9038:19:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9017:40:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6620, + "nodeType": "ExpressionStatement", + "src": "9017:40:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6621, + "name": "gracePeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6252, + "src": "9068:17:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6622, + "name": "_gracePeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6496, + "src": "9088:18:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9068:38:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6624, + "nodeType": "ExpressionStatement", + "src": "9068:38:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6625, + "name": "emergencyProcessingWait", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6254, + "src": "9117:23:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6626, + "name": "_emergencyProcessingWait", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6498, + "src": "9143:24:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9117:50:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6628, + "nodeType": "ExpressionStatement", + "src": "9117:50:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6631, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6629, + "name": "proposalDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6256, + "src": "9218:15:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6630, + "name": "_proposalDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6502, + "src": "9236:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9218:34:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6632, + "nodeType": "ExpressionStatement", + "src": "9218:34:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6633, + "name": "summoningTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "9359:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6634, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10413, + "src": "9375:3:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9359:19:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6636, + "nodeType": "ExpressionStatement", + "src": "9359:19:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6637, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6426, + "src": "9452:7:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member storage ref)" + } + }, + "id": 6639, + "indexExpression": { + "argumentTypes": null, + "id": 6638, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6246, + "src": "9460:5:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9452:14:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6641, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6246, + "src": "9476:5:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "31", + "id": 6642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9483:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 6643, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9486:4:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 6644, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9492:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6640, + "name": "Member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6382, + "src": "9469:6:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Member_$6382_storage_ptr_$", + "typeString": "type(struct Governance.Member storage pointer)" + } + }, + "id": 6645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9469:25:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_memory", + "typeString": "struct Governance.Member memory" + } + }, + "src": "9452:42:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "id": 6647, + "nodeType": "ExpressionStatement", + "src": "9452:42:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6648, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6430, + "src": "9505:26:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 6650, + "indexExpression": { + "argumentTypes": null, + "id": 6649, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6246, + "src": "9532:5:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9505:33:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6651, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6246, + "src": "9541:5:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9505:41:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6653, + "nodeType": "ExpressionStatement", + "src": "9505:41:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6654, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6361, + "src": "9557:11:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 6655, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9571:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9557:15:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6657, + "nodeType": "ExpressionStatement", + "src": "9557:15:13" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6659, + "name": "admin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6246, + "src": "9605:5:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "31", + "id": 6660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9612:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 6658, + "name": "SummonComplete", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6355, + "src": "9590:14:13", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 6661, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9590:24:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6662, + "nodeType": "EmitStatement", + "src": "9585:29:13" + } + ] + }, + "documentation": null, + "id": 6664, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6507, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6486, + "name": "_admin", + "nodeType": "VariableDeclaration", + "scope": 6664, + "src": "7030:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6485, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7030:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6490, + "name": "_approvedTokens", + "nodeType": "VariableDeclaration", + "scope": 6664, + "src": "7055:33:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1]" + }, + "typeName": { + "baseType": { + "id": 6487, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7055:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6489, + "length": { + "argumentTypes": null, + "hexValue": "31", + "id": 6488, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7063:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "ArrayTypeName", + "src": "7055:10:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_storage_ptr", + "typeString": "address[1]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6492, + "name": "_periodDuration", + "nodeType": "VariableDeclaration", + "scope": 6664, + "src": "7099:23:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6491, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7099:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6494, + "name": "_votingPeriodLength", + "nodeType": "VariableDeclaration", + "scope": 6664, + "src": "7133:27:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6493, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7133:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6496, + "name": "_gracePeriodLength", + "nodeType": "VariableDeclaration", + "scope": 6664, + "src": "7171:26:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6495, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7171:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6498, + "name": "_emergencyProcessingWait", + "nodeType": "VariableDeclaration", + "scope": 6664, + "src": "7208:32:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6497, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7208:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6500, + "name": "_bailoutWait", + "nodeType": "VariableDeclaration", + "scope": 6664, + "src": "7251:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6499, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7251:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6502, + "name": "_proposalDeposit", + "nodeType": "VariableDeclaration", + "scope": 6664, + "src": "7282:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7282:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6504, + "name": "_dilutionBound", + "nodeType": "VariableDeclaration", + "scope": 6664, + "src": "7317:22:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6503, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7317:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6506, + "name": "_processingReward", + "nodeType": "VariableDeclaration", + "scope": 6664, + "src": "7350:25:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6505, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7350:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7019:363:13" + }, + "returnParameters": { + "id": 6508, + "nodeType": "ParameterList", + "parameters": [], + "src": "7390:0:13" + }, + "scope": 7480, + "src": "7008:2614:13", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6725, + "nodeType": "Block", + "src": "10038:1124:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6688, + "name": "sharesRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6668, + "src": "10175:15:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 6689, + "name": "MAX_NUMBER_OF_SHARES", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6277, + "src": "10194:20:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10175:39:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "746f6f206d616e792073686172657320726571756573746564", + "id": 6691, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10216:27:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_584b3bdfa816bf4fa30756567c0526c04441dc54230f4ba83c195ee6f0a70758", + "typeString": "literal_string \"too many shares requested\"" + }, + "value": "too many shares requested" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_584b3bdfa816bf4fa30756567c0526c04441dc54230f4ba83c195ee6f0a70758", + "typeString": "literal_string \"too many shares requested\"" + } + ], + "id": 6687, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "10167:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6692, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10167:77:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6693, + "nodeType": "ExpressionStatement", + "src": "10167:77:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6695, + "name": "applicant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6666, + "src": "10430:9:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6697, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10451:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6696, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10443:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 6698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10443:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10430:23:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6170706c6963616e742063616e6e6f742062652030", + "id": 6700, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10455:23:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9ab093dd894be784ee3143d9792a50bf0275e1dda1505d8ede42bc26455cf276", + "typeString": "literal_string \"applicant cannot be 0\"" + }, + "value": "applicant cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9ab093dd894be784ee3143d9792a50bf0275e1dda1505d8ede42bc26455cf276", + "typeString": "literal_string \"applicant cannot be 0\"" + } + ], + "id": 6694, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "10422:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10422:57:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6702, + "nodeType": "ExpressionStatement", + "src": "10422:57:13" + }, + { + "assignments": [ + 6707 + ], + "declarations": [ + { + "constant": false, + "id": 6707, + "name": "flags", + "nodeType": "VariableDeclaration", + "scope": 6725, + "src": "10820:20:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6]" + }, + "typeName": { + "baseType": { + "id": 6705, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10820:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6706, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 6704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10825:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "10820:7:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", + "typeString": "bool[6]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6708, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "10820:20:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6710, + "name": "applicant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6666, + "src": "10937:9:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6711, + "name": "sharesRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6668, + "src": "10948:15:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6712, + "name": "lootRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6670, + "src": "10965:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6713, + "name": "tributeOffered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6672, + "src": "10980:14:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6714, + "name": "tributeToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6674, + "src": "10996:12:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6715, + "name": "paymentRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6676, + "src": "11010:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6716, + "name": "paymentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6678, + "src": "11028:12:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6717, + "name": "details", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6680, + "src": "11042:7:13", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 6718, + "name": "flags", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6707, + "src": "11051:5:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6] memory" + } + ], + "id": 6709, + "name": "_submitProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6808, + "src": "10921:15:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_array$_t_bool_$6_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,address,uint256,address,string memory,bool[6] memory)" + } + }, + "id": 6719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10921:136:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6720, + "nodeType": "ExpressionStatement", + "src": "10921:136:13" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6721, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6358, + "src": "11075:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 6722, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11091:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11075:17:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6686, + "id": 6724, + "nodeType": "Return", + "src": "11068:24:13" + } + ] + }, + "documentation": "***************\r\nPROPOSAL FUNCTIONS\r****************", + "id": 6726, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6683, + "modifierName": { + "argumentTypes": null, + "id": 6682, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9748, + "src": "9996:12:13", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "9996:12:13" + } + ], + "name": "submitProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6681, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6666, + "name": "applicant", + "nodeType": "VariableDeclaration", + "scope": 6726, + "src": "9736:17:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6665, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9736:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6668, + "name": "sharesRequested", + "nodeType": "VariableDeclaration", + "scope": 6726, + "src": "9764:23:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6667, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9764:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6670, + "name": "lootRequested", + "nodeType": "VariableDeclaration", + "scope": 6726, + "src": "9798:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6669, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9798:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6672, + "name": "tributeOffered", + "nodeType": "VariableDeclaration", + "scope": 6726, + "src": "9830:22:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6671, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9830:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6674, + "name": "tributeToken", + "nodeType": "VariableDeclaration", + "scope": 6726, + "src": "9863:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6673, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9863:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6676, + "name": "paymentRequested", + "nodeType": "VariableDeclaration", + "scope": 6726, + "src": "9894:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6675, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9894:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6678, + "name": "paymentToken", + "nodeType": "VariableDeclaration", + "scope": 6726, + "src": "9929:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6677, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9929:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6680, + "name": "details", + "nodeType": "VariableDeclaration", + "scope": 6726, + "src": "9960:21:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6679, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9960:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9725:263:13" + }, + "returnParameters": { + "id": 6686, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6685, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 6726, + "src": "10018:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6684, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10018:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10017:20:13" + }, + "scope": 7480, + "src": "9702:1460:13", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6807, + "nodeType": "Block", + "src": "12862:984:13", + "statements": [ + { + "assignments": [ + 6750 + ], + "declarations": [ + { + "constant": false, + "id": 6750, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 6807, + "src": "12873:24:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", + "typeString": "struct Governance.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 6749, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6419, + "src": "12873:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6775, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6752, + "name": "applicant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6728, + "src": "12936:9:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6753, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "12971:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12971:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6756, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13014:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6755, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13006:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 6757, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13006:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6758, + "name": "sharesRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6730, + "src": "13049:15:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6759, + "name": "lootRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6732, + "src": "13095:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6760, + "name": "tributeOffered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6734, + "src": "13140:14:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6762, + "name": "tributeToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6736, + "src": "13191:12:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6761, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9719, + "src": "13184:6:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13184:20:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + { + "argumentTypes": null, + "id": 6764, + "name": "paymentRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6738, + "src": "13238:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6766, + "name": "paymentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6740, + "src": "13291:12:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6765, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9719, + "src": "13284:6:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 6767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13284:20:13", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 6768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13336:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 6769, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13363:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 6770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13389:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "id": 6771, + "name": "flags", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6746, + "src": "13413:5:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6] memory" + } + }, + { + "argumentTypes": null, + "id": 6772, + "name": "details", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6742, + "src": "13443:7:13", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 6773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13498:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6751, + "name": "Proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6419, + "src": "12900:8:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Proposal_$6419_storage_ptr_$", + "typeString": "type(struct Governance.Proposal storage pointer)" + } + }, + "id": 6774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "applicant", + "proposer", + "sponsor", + "sharesRequested", + "lootRequested", + "tributeOffered", + "tributeToken", + "paymentRequested", + "paymentToken", + "startingPeriod", + "yesVotes", + "noVotes", + "flags", + "details", + "maxTotalSharesAndLootAtYesVote" + ], + "nodeType": "FunctionCall", + "src": "12900:611:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_memory", + "typeString": "struct Governance.Proposal memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12873:638:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6776, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6434, + "src": "13524:9:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" + } + }, + "id": 6778, + "indexExpression": { + "argumentTypes": null, + "id": 6777, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6358, + "src": "13534:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13524:24:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage", + "typeString": "struct Governance.Proposal storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6779, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6750, + "src": "13551:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", + "typeString": "struct Governance.Proposal memory" + } + }, + "src": "13524:35:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage", + "typeString": "struct Governance.Proposal storage ref" + } + }, + "id": 6781, + "nodeType": "ExpressionStatement", + "src": "13524:35:13" + }, + { + "assignments": [ + 6783 + ], + "declarations": [ + { + "constant": false, + "id": 6783, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 6807, + "src": "13570:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6782, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13570:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6788, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6784, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6430, + "src": "13594:26:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 6787, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6785, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "13621:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13621:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13594:38:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13570:62:13" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6790, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6358, + "src": "13663:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6791, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "13678:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6792, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13678:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6793, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6783, + "src": "13690:13:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6794, + "name": "applicant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6728, + "src": "13705:9:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6795, + "name": "sharesRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6730, + "src": "13716:15:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6796, + "name": "lootRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6732, + "src": "13733:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6797, + "name": "tributeOffered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6734, + "src": "13748:14:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6798, + "name": "tributeToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6736, + "src": "13764:12:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6799, + "name": "paymentRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6738, + "src": "13778:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6800, + "name": "paymentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6740, + "src": "13796:12:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6789, + "name": "SubmitProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6299, + "src": "13648:14:13", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (uint256,address,address,address,uint256,uint256,uint256,address,uint256,address)" + } + }, + "id": 6801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13648:161:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6802, + "nodeType": "EmitStatement", + "src": "13643:166:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 6803, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6358, + "src": "13820:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 6804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13837:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "13820:18:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6806, + "nodeType": "ExpressionStatement", + "src": "13820:18:13" + } + ] + }, + "documentation": null, + "id": 6808, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_submitProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6728, + "name": "applicant", + "nodeType": "VariableDeclaration", + "scope": 6808, + "src": "12569:17:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6727, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12569:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6730, + "name": "sharesRequested", + "nodeType": "VariableDeclaration", + "scope": 6808, + "src": "12597:23:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6729, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12597:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6732, + "name": "lootRequested", + "nodeType": "VariableDeclaration", + "scope": 6808, + "src": "12631:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6731, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12631:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6734, + "name": "tributeOffered", + "nodeType": "VariableDeclaration", + "scope": 6808, + "src": "12663:22:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6733, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12663:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6736, + "name": "tributeToken", + "nodeType": "VariableDeclaration", + "scope": 6808, + "src": "12696:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6735, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12696:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6738, + "name": "paymentRequested", + "nodeType": "VariableDeclaration", + "scope": 6808, + "src": "12727:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6737, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12727:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6740, + "name": "paymentToken", + "nodeType": "VariableDeclaration", + "scope": 6808, + "src": "12762:20:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6739, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12762:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6742, + "name": "details", + "nodeType": "VariableDeclaration", + "scope": 6808, + "src": "12793:21:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 6741, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "12793:6:13", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6746, + "name": "flags", + "nodeType": "VariableDeclaration", + "scope": 6808, + "src": "12825:20:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6]" + }, + "typeName": { + "baseType": { + "id": 6743, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12825:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6745, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 6744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12830:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "12825:7:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", + "typeString": "bool[6]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12558:294:13" + }, + "returnParameters": { + "id": 6748, + "nodeType": "ParameterList", + "parameters": [], + "src": "12862:0:13" + }, + "scope": 7480, + "src": "12534:1312:13", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 6931, + "nodeType": "Block", + "src": "13952:1981:13", + "statements": [ + { + "assignments": [ + 6820 + ], + "declarations": [ + { + "constant": false, + "id": 6820, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 6931, + "src": "14207:25:13", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 6819, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6419, + "src": "14207:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6824, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6821, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6434, + "src": "14235:9:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" + } + }, + "id": 6823, + "indexExpression": { + "argumentTypes": null, + "id": 6822, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6810, + "src": "14245:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14235:21:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage", + "typeString": "struct Governance.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14207:49:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6826, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6820, + "src": "14277:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 6827, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "proposer", + "nodeType": "MemberAccess", + "referencedDeclaration": 6386, + "src": "14277:17:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 6829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14306:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 6828, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "14298:7:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 6830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14298:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "14277:31:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c206d7573742068617665206265656e2070726f706f736564", + "id": 6832, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14310:34:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ac8dac03073454fa1d404b87251ebaea89a776f599ae35927c3fdc86124e6933", + "typeString": "literal_string \"proposal must have been proposed\"" + }, + "value": "proposal must have been proposed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ac8dac03073454fa1d404b87251ebaea89a776f599ae35927c3fdc86124e6933", + "typeString": "literal_string \"proposal must have been proposed\"" + } + ], + "id": 6825, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "14269:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14269:76:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6834, + "nodeType": "ExpressionStatement", + "src": "14269:76:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6840, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "14364:18:13", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6836, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6820, + "src": "14365:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 6837, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 6410, + "src": "14365:14:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 6839, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6838, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14380:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14365:17:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c2068617320616c7265616479206265656e2073706f6e736f726564", + "id": 6841, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14384:37:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8ce373ba28507085e66e9df24290b9ef61d72fa05638e1221982de773985e387", + "typeString": "literal_string \"proposal has already been sponsored\"" + }, + "value": "proposal has already been sponsored" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8ce373ba28507085e66e9df24290b9ef61d72fa05638e1221982de773985e387", + "typeString": "literal_string \"proposal has already been sponsored\"" + } + ], + "id": 6835, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "14356:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14356:66:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6843, + "nodeType": "ExpressionStatement", + "src": "14356:66:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6849, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "14441:18:13", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6845, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6820, + "src": "14442:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 6846, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 6410, + "src": "14442:14:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 6848, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 6847, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14457:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14442:17:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c20686173206265656e2063616e63656c6c6564", + "id": 6850, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14461:29:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_310ff3a9ce641706ee5130d4a11d082239c2f517d2fdbc264a36cda8e36c8cbd", + "typeString": "literal_string \"proposal has been cancelled\"" + }, + "value": "proposal has been cancelled" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_310ff3a9ce641706ee5130d4a11d082239c2f517d2fdbc264a36cda8e36c8cbd", + "typeString": "literal_string \"proposal has been cancelled\"" + } + ], + "id": 6844, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "14433:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14433:58:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6852, + "nodeType": "ExpressionStatement", + "src": "14433:58:13" + }, + { + "assignments": [ + 6854 + ], + "declarations": [ + { + "constant": false, + "id": 6854, + "name": "startingPeriod", + "nodeType": "VariableDeclaration", + "scope": 6931, + "src": "15279:22:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6853, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15279:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6878, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 6876, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15471:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 6856, + "name": "getCurrentPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7363, + "src": "15322:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 6857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15322:18:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6858, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "15355:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 6859, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15355:20:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15379:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15355:25:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6863, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6434, + "src": "15387:9:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" + } + }, + "id": 6871, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6864, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "15397:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 6870, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 6868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15436:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6865, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "15411:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 6866, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15411:20:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "15411:24:13", + "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": 6869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15411:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15397:42:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15387:53:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage", + "typeString": "struct Governance.Proposal storage ref" + } + }, + "id": 6872, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "startingPeriod", + "nodeType": "MemberAccess", + "referencedDeclaration": 6402, + "src": "15387:68:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "15355:100:13", + "trueExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6862, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15383:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6855, + "name": "max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7349, + "src": "15304:3:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 6874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15304:162:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "15304:166:13", + "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": 6877, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15304:169:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15279:194:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6879, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6820, + "src": "15486:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 6881, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "startingPeriod", + "nodeType": "MemberAccess", + "referencedDeclaration": 6402, + "src": "15486:23:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6882, + "name": "startingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6854, + "src": "15512:14:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15486:40:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6884, + "nodeType": "ExpressionStatement", + "src": "15486:40:13" + }, + { + "assignments": [ + 6886 + ], + "declarations": [ + { + "constant": false, + "id": 6886, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 6931, + "src": "15539:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6885, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15539:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6891, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6887, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6430, + "src": "15563:26:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 6890, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6888, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "15590:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6889, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15590:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15563:38:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15539:62:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6892, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6820, + "src": "15612:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 6894, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "sponsor", + "nodeType": "MemberAccess", + "referencedDeclaration": 6388, + "src": "15612:16:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 6895, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6886, + "src": "15631:13:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15612:32:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 6897, + "nodeType": "ExpressionStatement", + "src": "15612:32:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 6904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6898, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6820, + "src": "15657:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 6901, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 6410, + "src": "15657:14:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 6902, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 6900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15672:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15657:17:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 6903, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15677:4:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "15657:24:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 6905, + "nodeType": "ExpressionStatement", + "src": "15657:24:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6909, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6810, + "src": "15754:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6906, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "15735:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 6908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15735:18:13", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) returns (uint256)" + } + }, + "id": 6910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15735:30:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6911, + "nodeType": "ExpressionStatement", + "src": "15735:30:13" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6913, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "15797:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15797:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 6915, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6886, + "src": "15809:13:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 6916, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6810, + "src": "15824:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 6920, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15861:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6917, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "15836:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 6918, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15836:20:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6919, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "15836:24:13", + "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": 6921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15836:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 6922, + "name": "startingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6854, + "src": "15865:14:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6912, + "name": "SponsorProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6311, + "src": "15781:15:13", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256,uint256)" + } + }, + "id": 6923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15781:99:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6924, + "nodeType": "EmitStatement", + "src": "15776:104:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 6928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15923:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6925, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "15898:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 6926, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15898:20:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 6927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "15898:24:13", + "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": 6929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15898:27:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6818, + "id": 6930, + "nodeType": "Return", + "src": "15891:34:13" + } + ] + }, + "documentation": null, + "id": 6932, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6813, + "modifierName": { + "argumentTypes": null, + "id": 6812, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9748, + "src": "13907:12:13", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "13907:12:13" + }, + { + "arguments": null, + "id": 6815, + "modifierName": { + "argumentTypes": null, + "id": 6814, + "name": "onlyDelegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6484, + "src": "13920:12:13", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "13920:12:13" + } + ], + "name": "sponsorProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6811, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6810, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 6932, + "src": "13879:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6809, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13879:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13878:20:13" + }, + "returnParameters": { + "id": 6818, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6817, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 6932, + "src": "13943:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6816, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13943:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13942:9:13" + }, + "scope": 7480, + "src": "13854:2079:13", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7080, + "nodeType": "Block", + "src": "16033:1701:13", + "statements": [ + { + "assignments": [ + 6944 + ], + "declarations": [ + { + "constant": false, + "id": 6944, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 7080, + "src": "16044:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6943, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16044:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6949, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6945, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6430, + "src": "16068:26:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 6948, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6946, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "16095:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 6947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16095:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16068:38:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16044:62:13" + }, + { + "assignments": [ + 6951 + ], + "declarations": [ + { + "constant": false, + "id": 6951, + "name": "member", + "nodeType": "VariableDeclaration", + "scope": 7080, + "src": "16117:21:13", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", + "typeString": "struct Governance.Member" + }, + "typeName": { + "contractScope": null, + "id": 6950, + "name": "Member", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6382, + "src": "16117:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", + "typeString": "struct Governance.Member" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6955, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6952, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6426, + "src": "16141:7:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member storage ref)" + } + }, + "id": 6954, + "indexExpression": { + "argumentTypes": null, + "id": 6953, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6944, + "src": "16149:13:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16141:22:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16117:46:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 6960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6957, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6934, + "src": "16184:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6958, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "16200:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 6959, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16200:20:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16184:36:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", + "id": 6961, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16222:25:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + }, + "value": "proposal does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + } + ], + "id": 6956, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "16176:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16176:72:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6963, + "nodeType": "ExpressionStatement", + "src": "16176:72:13" + }, + { + "assignments": [ + 6965 + ], + "declarations": [ + { + "constant": false, + "id": 6965, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 7080, + "src": "16259:25:13", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 6964, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6419, + "src": "16259:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6971, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6966, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6434, + "src": "16287:9:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" + } + }, + "id": 6970, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6967, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "16297:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 6969, + "indexExpression": { + "argumentTypes": null, + "id": 6968, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6934, + "src": "16311:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16297:28:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16287:39:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage", + "typeString": "struct Governance.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16259:67:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 6975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 6973, + "name": "uintVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6936, + "src": "16347:8:13", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 6974, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16358:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "16347:12:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6d757374206265206c657373207468616e2033", + "id": 6976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16361:21:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_707c6bf11f318d88bf3ce18a41621954ec264b68d584313fba9bb644a8e76020", + "typeString": "literal_string \"must be less than 3\"" + }, + "value": "must be less than 3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_707c6bf11f318d88bf3ce18a41621954ec264b68d584313fba9bb644a8e76020", + "typeString": "literal_string \"must be less than 3\"" + } + ], + "id": 6972, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "16339:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16339:44:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6978, + "nodeType": "ExpressionStatement", + "src": "16339:44:13" + }, + { + "assignments": [ + 6980 + ], + "declarations": [ + { + "constant": false, + "id": 6980, + "name": "vote", + "nodeType": "VariableDeclaration", + "scope": 7080, + "src": "16394:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + }, + "typeName": { + "contractScope": null, + "id": 6979, + "name": "Vote", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6373, + "src": "16394:4:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6984, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6982, + "name": "uintVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6936, + "src": "16411:8:13", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 6981, + "name": "Vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6373, + "src": "16406:4:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Vote_$6373_$", + "typeString": "type(enum Governance.Vote)" + } + }, + "id": 6983, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16406:14:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "16394:26:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "16541:48:13", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6987, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6965, + "src": "16565:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 6988, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "startingPeriod", + "nodeType": "MemberAccess", + "referencedDeclaration": 6402, + "src": "16565:23:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 6986, + "name": "hasVotingPeriodExpired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7428, + "src": "16542:22:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 6989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16542:47:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c20766f74696e6720706572696f64206861732065787069726564", + "id": 6991, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16591:36:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c0ba1a8fcc742113774789a424c824e010e781c8d7353e4ab7ada35c65566c07", + "typeString": "literal_string \"proposal voting period has expired\"" + }, + "value": "proposal voting period has expired" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c0ba1a8fcc742113774789a424c824e010e781c8d7353e4ab7ada35c65566c07", + "typeString": "literal_string \"proposal voting period has expired\"" + } + ], + "id": 6985, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "16533:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 6992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16533:95:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6993, + "nodeType": "ExpressionStatement", + "src": "16533:95:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + }, + "id": 7001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6995, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6965, + "src": "16647:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 6996, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "votesByMember", + "nodeType": "MemberAccess", + "referencedDeclaration": 6418, + "src": "16647:22:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$6373_$", + "typeString": "mapping(address => enum Governance.Vote)" + } + }, + "id": 6998, + "indexExpression": { + "argumentTypes": null, + "id": 6997, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6944, + "src": "16670:13:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16647:37:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 6999, + "name": "Vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6373, + "src": "16688:4:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Vote_$6373_$", + "typeString": "type(enum Governance.Vote)" + } + }, + "id": 7000, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Null", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16688:9:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "src": "16647:50:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6d656d6265722068617320616c726561647920766f746564", + "id": 7002, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16699:26:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7343d72c90cb341bd2f3ab7b007b6dc9c32e041eadcc4b701abd38deefeb2299", + "typeString": "literal_string \"member has already voted\"" + }, + "value": "member has already voted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7343d72c90cb341bd2f3ab7b007b6dc9c32e041eadcc4b701abd38deefeb2299", + "typeString": "literal_string \"member has already voted\"" + } + ], + "id": 6994, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "16639:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16639:87:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7004, + "nodeType": "ExpressionStatement", + "src": "16639:87:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + }, + "id": 7009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7006, + "name": "vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6980, + "src": "16745:4:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7007, + "name": "Vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6373, + "src": "16753:4:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Vote_$6373_$", + "typeString": "type(enum Governance.Vote)" + } + }, + "id": 7008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Yes", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16753:8:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "src": "16745:16:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + }, + "id": 7013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7010, + "name": "vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6980, + "src": "16765:4:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7011, + "name": "Vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6373, + "src": "16773:4:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Vote_$6373_$", + "typeString": "type(enum Governance.Vote)" + } + }, + "id": 7012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "No", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16773:7:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "src": "16765:15:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "16745:35:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "766f7465206d7573742062652065697468657220596573206f72204e6f", + "id": 7015, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16782:31:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cdbdf7342fd7207f7fe59a7f11b342501ce75d0d11dd200fffb4af998c12a928", + "typeString": "literal_string \"vote must be either Yes or No\"" + }, + "value": "vote must be either Yes or No" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cdbdf7342fd7207f7fe59a7f11b342501ce75d0d11dd200fffb4af998c12a928", + "typeString": "literal_string \"vote must be either Yes or No\"" + } + ], + "id": 7005, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "16737:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16737:77:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7017, + "nodeType": "ExpressionStatement", + "src": "16737:77:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 7024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7018, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6965, + "src": "16827:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7021, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "votesByMember", + "nodeType": "MemberAccess", + "referencedDeclaration": 6418, + "src": "16827:22:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$6373_$", + "typeString": "mapping(address => enum Governance.Vote)" + } + }, + "id": 7022, + "indexExpression": { + "argumentTypes": null, + "id": 7020, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6944, + "src": "16850:13:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16827:37:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7023, + "name": "vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6980, + "src": "16867:4:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "src": "16827:44:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "id": 7025, + "nodeType": "ExpressionStatement", + "src": "16827:44:13" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + }, + "id": 7029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7026, + "name": "vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6980, + "src": "16888:4:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7027, + "name": "Vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6373, + "src": "16896:4:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Vote_$6373_$", + "typeString": "type(enum Governance.Vote)" + } + }, + "id": 7028, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Yes", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16896:8:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "src": "16888:16:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + }, + "id": 7057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7054, + "name": "vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6980, + "src": "17549:4:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7055, + "name": "Vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6373, + "src": "17557:4:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Vote_$6373_$", + "typeString": "type(enum Governance.Vote)" + } + }, + "id": 7056, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "No", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "17557:7:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "src": "17549:15:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7070, + "nodeType": "IfStatement", + "src": "17545:102:13", + "trueBody": { + "id": 7069, + "nodeType": "Block", + "src": "17566:81:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7058, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6965, + "src": "17581:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7060, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "noVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 6406, + "src": "17581:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7064, + "name": "member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6951, + "src": "17621:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", + "typeString": "struct Governance.Member storage pointer" + } + }, + "id": 7065, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 6377, + "src": "17621:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7061, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6965, + "src": "17600:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7062, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "noVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 6406, + "src": "17600:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "17600:20:13", + "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": 7066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17600:35:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17581:54:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7068, + "nodeType": "ExpressionStatement", + "src": "17581:54:13" + } + ] + } + }, + "id": 7071, + "nodeType": "IfStatement", + "src": "16884:763:13", + "trueBody": { + "id": 7053, + "nodeType": "Block", + "src": "16906:633:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7030, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6965, + "src": "16921:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7032, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "yesVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 6404, + "src": "16921:17:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7036, + "name": "member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6951, + "src": "16963:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", + "typeString": "struct Governance.Member storage pointer" + } + }, + "id": 7037, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 6377, + "src": "16963:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7033, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6965, + "src": "16941:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7034, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "yesVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 6404, + "src": "16941:17:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "16941:21:13", + "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": 7038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16941:36:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16921:56:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7040, + "nodeType": "ExpressionStatement", + "src": "16921:56:13" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7041, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6934, + "src": "17093:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7042, + "name": "member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6951, + "src": "17109:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", + "typeString": "struct Governance.Member storage pointer" + } + }, + "id": 7043, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "highestIndexYesVote", + "nodeType": "MemberAccess", + "referencedDeclaration": 6381, + "src": "17109:26:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17093:42:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7052, + "nodeType": "IfStatement", + "src": "17089:125:13", + "trueBody": { + "id": 7051, + "nodeType": "Block", + "src": "17137:77:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7045, + "name": "member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6951, + "src": "17156:6:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", + "typeString": "struct Governance.Member storage pointer" + } + }, + "id": 7047, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "highestIndexYesVote", + "nodeType": "MemberAccess", + "referencedDeclaration": 6381, + "src": "17156:26:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7048, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6934, + "src": "17185:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17156:42:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7050, + "nodeType": "ExpressionStatement", + "src": "17156:42:13" + } + ] + } + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7073, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6934, + "src": "17675:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7074, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "17690:3:13", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "17690:10:13", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 7076, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6944, + "src": "17702:13:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7077, + "name": "uintVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6936, + "src": "17717:8:13", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 7072, + "name": "SubmitVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6321, + "src": "17664:10:13", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint8_$returns$__$", + "typeString": "function (uint256,address,address,uint8)" + } + }, + "id": 7078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17664:62:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7079, + "nodeType": "EmitStatement", + "src": "17659:67:13" + } + ] + }, + "documentation": null, + "id": 7081, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6939, + "modifierName": { + "argumentTypes": null, + "id": 6938, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9748, + "src": "16007:12:13", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "16007:12:13" + }, + { + "arguments": null, + "id": 6941, + "modifierName": { + "argumentTypes": null, + "id": 6940, + "name": "onlyDelegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6484, + "src": "16020:12:13", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "16020:12:13" + } + ], + "name": "submitVote", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6937, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6934, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 7081, + "src": "15961:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15961:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6936, + "name": "uintVote", + "nodeType": "VariableDeclaration", + "scope": 7081, + "src": "15984:14:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 6935, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "15984:5:13", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15960:39:13" + }, + "returnParameters": { + "id": 6942, + "nodeType": "ParameterList", + "parameters": [], + "src": "16033:0:13" + }, + "scope": 7480, + "src": "15941:1793:13", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7246, + "nodeType": "Block", + "src": "17809:3749:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7089, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7083, + "src": "17850:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7088, + "name": "_validateProposalForProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7332, + "src": "17819:30:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", + "typeString": "function (uint256) view" + } + }, + "id": 7090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17819:45:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7091, + "nodeType": "ExpressionStatement", + "src": "17819:45:13" + }, + { + "assignments": [ + 7093 + ], + "declarations": [ + { + "constant": false, + "id": 7093, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 7246, + "src": "17876:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7092, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17876:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7097, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7094, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "17897:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 7096, + "indexExpression": { + "argumentTypes": null, + "id": 7095, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7083, + "src": "17911:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17897:28:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17876:49:13" + }, + { + "assignments": [ + 7099 + ], + "declarations": [ + { + "constant": false, + "id": 7099, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 7246, + "src": "17935:25:13", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 7098, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6419, + "src": "17935:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7103, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7100, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6434, + "src": "17963:9:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" + } + }, + "id": 7102, + "indexExpression": { + "argumentTypes": null, + "id": 7101, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7093, + "src": "17973:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17963:21:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage", + "typeString": "struct Governance.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17935:49:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 7110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7104, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "18090:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7107, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 6410, + "src": "18090:14:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 7108, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 7106, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18105:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18090:17:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7109, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18110:4:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "18090:24:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7111, + "nodeType": "ExpressionStatement", + "src": "18090:24:13" + }, + { + "assignments": [ + 7113, + 7115 + ], + "declarations": [ + { + "constant": false, + "id": 7113, + "name": "didPass", + "nodeType": "VariableDeclaration", + "scope": 7246, + "src": "18140:12:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7112, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18140:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7115, + "name": "emergencyProcessing", + "nodeType": "VariableDeclaration", + "scope": 7246, + "src": "18154:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7114, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18154:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7119, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7117, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7083, + "src": "18191:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7116, + "name": "_didPass", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7281, + "src": "18182:8:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$_t_bool_$_t_bool_$", + "typeString": "function (uint256) returns (bool,bool)" + } + }, + "id": 7118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18182:23:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", + "typeString": "tuple(bool,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18139:66:13" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7122, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "18513:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7123, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sharesRequested", + "nodeType": "MemberAccess", + "referencedDeclaration": 6390, + "src": "18513:24:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7120, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6361, + "src": "18497:11:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "18497:15:13", + "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": 7124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18497:41:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 7125, + "name": "MAX_NUMBER_OF_SHARES", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6277, + "src": "18541:20:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18497:64:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7132, + "nodeType": "IfStatement", + "src": "18493:112:13", + "trueBody": { + "id": 7131, + "nodeType": "Block", + "src": "18563:42:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7127, + "name": "didPass", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7113, + "src": "18578:7:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 7128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18588:5:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "18578:15:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7130, + "nodeType": "ExpressionStatement", + "src": "18578:15:13" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "id": 7133, + "name": "didPass", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7113, + "src": "18971:7:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 7238, + "nodeType": "Block", + "src": "21060:378:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7232, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7230, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6363, + "src": "21075:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "32", + "id": 7231, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21082:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "21075:8:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7233, + "nodeType": "ExpressionStatement", + "src": "21075:8:13" + }, + { + "condition": { + "argumentTypes": null, + "id": 7235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "21182:20:13", + "subExpression": { + "argumentTypes": null, + "id": 7234, + "name": "emergencyProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7115, + "src": "21183:19:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7237, + "nodeType": "IfStatement", + "src": "21178:250:13", + "trueBody": { + "id": 7236, + "nodeType": "Block", + "src": "21204:224:13", + "statements": [] + } + } + ] + }, + "id": 7239, + "nodeType": "IfStatement", + "src": "18967:2471:13", + "trueBody": { + "id": 7229, + "nodeType": "Block", + "src": "18980:2074:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7134, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6363, + "src": "18995:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 7135, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19002:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "18995:8:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7137, + "nodeType": "ExpressionStatement", + "src": "18995:8:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 7144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7138, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "19017:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7141, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 6410, + "src": "19017:14:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 7142, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 7140, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19032:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "19017:17:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7143, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19037:4:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "19017:24:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7145, + "nodeType": "ExpressionStatement", + "src": "19017:24:13" + }, + { + "condition": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7146, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6426, + "src": "19161:7:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member storage ref)" + } + }, + "id": 7149, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7147, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "19169:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7148, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 6384, + "src": "19169:18:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19161:27:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "id": 7150, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exists", + "nodeType": "MemberAccess", + "referencedDeclaration": 6379, + "src": "19161:34:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 7219, + "nodeType": "Block", + "src": "19529:899:13", + "statements": [ + { + "condition": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7168, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6426, + "src": "19672:7:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member storage ref)" + } + }, + "id": 7173, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7169, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6430, + "src": "19680:26:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 7172, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7170, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "19707:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7171, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 6384, + "src": "19707:18:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19680:46:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19672:55:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "id": 7174, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exists", + "nodeType": "MemberAccess", + "referencedDeclaration": 6379, + "src": "19672:62:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7196, + "nodeType": "IfStatement", + "src": "19668:345:13", + "trueBody": { + "id": 7195, + "nodeType": "Block", + "src": "19736:277:13", + "statements": [ + { + "assignments": [ + 7176 + ], + "declarations": [ + { + "constant": false, + "id": 7176, + "name": "memberToOverride", + "nodeType": "VariableDeclaration", + "scope": 7195, + "src": "19758:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7175, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19758:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7181, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7177, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6430, + "src": "19785:26:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 7180, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7178, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "19812:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7179, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 6384, + "src": "19812:18:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19785:46:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19758:73:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 7186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7182, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6430, + "src": "19853:26:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 7184, + "indexExpression": { + "argumentTypes": null, + "id": 7183, + "name": "memberToOverride", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7176, + "src": "19880:16:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "19853:44:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7185, + "name": "memberToOverride", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7176, + "src": "19900:16:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19853:63:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7187, + "nodeType": "ExpressionStatement", + "src": "19853:63:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 7193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7188, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6426, + "src": "19938:7:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member storage ref)" + } + }, + "id": 7190, + "indexExpression": { + "argumentTypes": null, + "id": 7189, + "name": "memberToOverride", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7176, + "src": "19946:16:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19938:25:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "id": 7191, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "delegateKey", + "nodeType": "MemberAccess", + "referencedDeclaration": 6375, + "src": "19938:37:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7192, + "name": "memberToOverride", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7176, + "src": "19978:16:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19938:56:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7194, + "nodeType": "ExpressionStatement", + "src": "19938:56:13" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 7209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7197, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6426, + "src": "20099:7:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member storage ref)" + } + }, + "id": 7200, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7198, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "20107:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7199, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 6384, + "src": "20107:18:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "20099:27:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7202, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "20136:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7203, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 6384, + "src": "20136:18:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7204, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "20156:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7205, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sharesRequested", + "nodeType": "MemberAccess", + "referencedDeclaration": 6390, + "src": "20156:24:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20182:4:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 7207, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20188:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7201, + "name": "Member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6382, + "src": "20129:6:13", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Member_$6382_storage_ptr_$", + "typeString": "type(struct Governance.Member storage pointer)" + } + }, + "id": 7208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20129:61:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_memory", + "typeString": "struct Governance.Member memory" + } + }, + "src": "20099:91:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "id": 7210, + "nodeType": "ExpressionStatement", + "src": "20099:91:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 7217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7211, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6430, + "src": "20346:26:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 7214, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7212, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "20373:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7213, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 6384, + "src": "20373:18:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "20346:46:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7215, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "20395:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7216, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 6384, + "src": "20395:18:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "20346:67:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7218, + "nodeType": "ExpressionStatement", + "src": "20346:67:13" + } + ] + }, + "id": 7220, + "nodeType": "IfStatement", + "src": "19157:1271:13", + "trueBody": { + "id": 7167, + "nodeType": "Block", + "src": "19197:326:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7151, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6426, + "src": "19215:7:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member storage ref)" + } + }, + "id": 7154, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7152, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "19223:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7153, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 6384, + "src": "19223:18:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19215:27:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "id": 7155, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 6377, + "src": "19215:34:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7162, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "19291:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7163, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sharesRequested", + "nodeType": "MemberAccess", + "referencedDeclaration": 6390, + "src": "19291:24:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7156, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6426, + "src": "19252:7:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member storage ref)" + } + }, + "id": 7159, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7157, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "19260:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7158, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 6384, + "src": "19260:18:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19252:27:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "id": 7160, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 6377, + "src": "19252:34:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "19252:38:13", + "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": 7164, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19252:64:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19215:101:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7166, + "nodeType": "ExpressionStatement", + "src": "19215:101:13" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 7227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7221, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6361, + "src": "20481:11:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7224, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7099, + "src": "20511:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal storage pointer" + } + }, + "id": 7225, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sharesRequested", + "nodeType": "MemberAccess", + "referencedDeclaration": 6390, + "src": "20511:24:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7222, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6361, + "src": "20495:11:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7223, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "20495:15:13", + "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": 7226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20495:41:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20481:55:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7228, + "nodeType": "ExpressionStatement", + "src": "20481:55:13" + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7241, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7083, + "src": "21516:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7242, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7093, + "src": "21531:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7243, + "name": "didPass", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7113, + "src": "21543:7:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7240, + "name": "ProcessProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6329, + "src": "21500:15:13", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (uint256,uint256,bool)" + } + }, + "id": 7244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21500:51:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7245, + "nodeType": "EmitStatement", + "src": "21495:56:13" + } + ] + }, + "documentation": null, + "id": 7247, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 7086, + "modifierName": { + "argumentTypes": null, + "id": 7085, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9748, + "src": "17796:12:13", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "17796:12:13" + } + ], + "name": "processProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7084, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7083, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 7247, + "src": "17766:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7082, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17766:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17765:23:13" + }, + "returnParameters": { + "id": 7087, + "nodeType": "ParameterList", + "parameters": [], + "src": "17809:0:13" + }, + "scope": 7480, + "src": "17741:3817:13", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7280, + "nodeType": "Block", + "src": "23702:1751:13", + "statements": [ + { + "assignments": [ + 7257 + ], + "declarations": [ + { + "constant": false, + "id": 7257, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 7280, + "src": "23713:24:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", + "typeString": "struct Governance.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 7256, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6419, + "src": "23713:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7263, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7258, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6434, + "src": "23740:9:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" + } + }, + "id": 7262, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7259, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "23750:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 7261, + "indexExpression": { + "argumentTypes": null, + "id": 7260, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7249, + "src": "23764:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "23750:28:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "23740:39:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage", + "typeString": "struct Governance.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23713:66:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 7270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7264, + "name": "didPass", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7252, + "src": "23792:7:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7269, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7265, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7257, + "src": "23802:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", + "typeString": "struct Governance.Proposal memory" + } + }, + "id": 7266, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "yesVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 6404, + "src": "23802:17:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7267, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7257, + "src": "23822:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", + "typeString": "struct Governance.Proposal memory" + } + }, + "id": 7268, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "noVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 6406, + "src": "23822:16:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "23802:36:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "23792:46:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7271, + "nodeType": "ExpressionStatement", + "src": "23792:46:13" + }, + { + "expression": { + "argumentTypes": null, + "id": 7274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7272, + "name": "emergencyProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7254, + "src": "23954:19:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 7273, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23976:5:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "23954:27:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7275, + "nodeType": "ExpressionStatement", + "src": "23954:27:13" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 7276, + "name": "didPass", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7252, + "src": "25416:7:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 7277, + "name": "emergencyProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7254, + "src": "25425:19:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 7278, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "25415:30:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", + "typeString": "tuple(bool,bool)" + } + }, + "functionReturnParameters": 7255, + "id": 7279, + "nodeType": "Return", + "src": "25408:37:13" + } + ] + }, + "documentation": null, + "id": 7281, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_didPass", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7250, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7249, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 7281, + "src": "23621:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7248, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23621:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "23620:23:13" + }, + "returnParameters": { + "id": 7255, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7252, + "name": "didPass", + "nodeType": "VariableDeclaration", + "scope": 7281, + "src": "23662:12:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7251, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "23662:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7254, + "name": "emergencyProcessing", + "nodeType": "VariableDeclaration", + "scope": 7281, + "src": "23676:24:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7253, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "23676:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "23661:40:13" + }, + "scope": 7480, + "src": "23603:1850:13", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7331, + "nodeType": "Block", + "src": "25538:546:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7287, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7283, + "src": "25557:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7288, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "25573:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 7289, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "25573:20:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25557:36:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", + "id": 7291, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25595:25:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + }, + "value": "proposal does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + } + ], + "id": 7286, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "25549:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25549:72:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7293, + "nodeType": "ExpressionStatement", + "src": "25549:72:13" + }, + { + "assignments": [ + 7295 + ], + "declarations": [ + { + "constant": false, + "id": 7295, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 7331, + "src": "25632:24:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", + "typeString": "struct Governance.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 7294, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6419, + "src": "25632:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", + "typeString": "struct Governance.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7301, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7296, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6434, + "src": "25659:9:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" + } + }, + "id": 7300, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7297, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "25669:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 7299, + "indexExpression": { + "argumentTypes": null, + "id": 7298, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7283, + "src": "25683:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25669:28:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25659:39:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage", + "typeString": "struct Governance.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "25632:66:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7308, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7303, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7295, + "src": "25874:8:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", + "typeString": "struct Governance.Proposal memory" + } + }, + "id": 7304, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 6410, + "src": "25874:14:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_memory", + "typeString": "bool[6] memory" + } + }, + "id": 7306, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 7305, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25889:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25874:17:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 7307, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25895:5:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "25874:26:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c2068617320616c7265616479206265656e2070726f636573736564", + "id": 7309, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25902:37:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f70ef3e0419e3b9f916dea28b6ea9e7ed2c6d066761e4c360c469298c30b58d3", + "typeString": "literal_string \"proposal has already been processed\"" + }, + "value": "proposal has already been processed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f70ef3e0419e3b9f916dea28b6ea9e7ed2c6d066761e4c360c469298c30b58d3", + "typeString": "literal_string \"proposal has already been processed\"" + } + ], + "id": 7302, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "25866:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25866:74:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7311, + "nodeType": "ExpressionStatement", + "src": "25866:74:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 7327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7313, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7283, + "src": "25959:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7314, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25976:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "25959:18:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7316, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6434, + "src": "25981:9:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" + } + }, + "id": 7323, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7317, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "25991:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 7322, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 7320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26023:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "id": 7318, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7283, + "src": "26005:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "26005:17:13", + "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": 7321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "26005:20:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25991:35:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25981:46:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage", + "typeString": "struct Governance.Proposal storage ref" + } + }, + "id": 7324, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 6410, + "src": "25981:52:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 7326, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 7325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26034:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25981:55:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "25959:77:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726576696f75732070726f706f73616c206d7573742062652070726f636573736564", + "id": 7328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26038:37:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_38cd8535d1c8042024c6aab26e03143698df4f39cb508f25654837a140ff5918", + "typeString": "literal_string \"previous proposal must be processed\"" + }, + "value": "previous proposal must be processed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_38cd8535d1c8042024c6aab26e03143698df4f39cb508f25654837a140ff5918", + "typeString": "literal_string \"previous proposal must be processed\"" + } + ], + "id": 7312, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "25951:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25951:125:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7330, + "nodeType": "ExpressionStatement", + "src": "25951:125:13" + } + ] + }, + "documentation": null, + "id": 7332, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_validateProposalForProcessing", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7284, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7283, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 7332, + "src": "25501:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7282, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "25501:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "25500:23:13" + }, + "returnParameters": { + "id": 7285, + "nodeType": "ParameterList", + "parameters": [], + "src": "25538:0:13" + }, + "scope": 7480, + "src": "25461:623:13", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7348, + "nodeType": "Block", + "src": "31694:40:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7341, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7334, + "src": "31712:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 7342, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7336, + "src": "31717:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31712:6:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 7345, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7336, + "src": "31725:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "31712:14:13", + "trueExpression": { + "argumentTypes": null, + "id": 7344, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7334, + "src": "31721:1:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7340, + "id": 7347, + "nodeType": "Return", + "src": "31705:21:13" + } + ] + }, + "documentation": "*************\r\nGETTER FUNCTIONS\r**************", + "id": 7349, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7337, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7334, + "name": "x", + "nodeType": "VariableDeclaration", + "scope": 7349, + "src": "31640:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7333, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31640:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7336, + "name": "y", + "nodeType": "VariableDeclaration", + "scope": 7349, + "src": "31651:9:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7335, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31651:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "31639:22:13" + }, + "returnParameters": { + "id": 7340, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7339, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7349, + "src": "31685:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7338, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31685:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "31684:9:13" + }, + "scope": 7480, + "src": "31627:107:13", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 7362, + "nodeType": "Block", + "src": "31800:68:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7359, + "name": "periodDuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6248, + "src": "31845:14:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7356, + "name": "summoningTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6258, + "src": "31826:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7354, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10413, + "src": "31818:3:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "31818:7:13", + "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": 7357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31818:22:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9808, + "src": "31818:26:13", + "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": 7360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31818:42:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7353, + "id": 7361, + "nodeType": "Return", + "src": "31811:49:13" + } + ] + }, + "documentation": null, + "id": 7363, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getCurrentPeriod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7350, + "nodeType": "ParameterList", + "parameters": [], + "src": "31767:2:13" + }, + "returnParameters": { + "id": 7353, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7352, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7363, + "src": "31791:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7351, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31791:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "31790:9:13" + }, + "scope": 7480, + "src": "31742:126:13", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7371, + "nodeType": "Block", + "src": "31939:44:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7368, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "31956:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 7369, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "31956:20:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7367, + "id": 7370, + "nodeType": "Return", + "src": "31949:27:13" + } + ] + }, + "documentation": null, + "id": 7372, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getProposalQueueLength", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7364, + "nodeType": "ParameterList", + "parameters": [], + "src": "31906:2:13" + }, + "returnParameters": { + "id": 7367, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7366, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7372, + "src": "31930:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7365, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31930:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "31929:9:13" + }, + "scope": 7480, + "src": "31875:108:13", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7386, + "nodeType": "Block", + "src": "32073:51:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7381, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6434, + "src": "32090:9:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" + } + }, + "id": 7383, + "indexExpression": { + "argumentTypes": null, + "id": 7382, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7374, + "src": "32100:10:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "32090:21:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage", + "typeString": "struct Governance.Proposal storage ref" + } + }, + "id": 7384, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 6410, + "src": "32090:27:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "functionReturnParameters": 7380, + "id": 7385, + "nodeType": "Return", + "src": "32083:34:13" + } + ] + }, + "documentation": null, + "id": 7387, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getProposalFlags", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7374, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 7387, + "src": "32016:18:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32016:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "32015:20:13" + }, + "returnParameters": { + "id": 7380, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7379, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7387, + "src": "32057:14:13", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6]" + }, + "typeName": { + "baseType": { + "id": 7376, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32057:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7378, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 7377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32062:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "32057:7:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", + "typeString": "bool[6]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "32056:16:13" + }, + "scope": 7480, + "src": "31990:134:13", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7411, + "nodeType": "Block", + "src": "32293:169:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7395, + "name": "highestIndexYesVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7389, + "src": "32312:19:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7396, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "32334:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 7397, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "32334:20:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "32312:42:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", + "id": 7399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32356:25:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + }, + "value": "proposal does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + } + ], + "id": 7394, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "32304:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32304:78:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7401, + "nodeType": "ExpressionStatement", + "src": "32304:78:13" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7402, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6434, + "src": "32400:9:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" + } + }, + "id": 7406, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7403, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "32410:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 7405, + "indexExpression": { + "argumentTypes": null, + "id": 7404, + "name": "highestIndexYesVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7389, + "src": "32424:19:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "32410:34:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "32400:45:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage", + "typeString": "struct Governance.Proposal storage ref" + } + }, + "id": 7407, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 6410, + "src": "32400:51:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 7409, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 7408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32452:1:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "32400:54:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 7393, + "id": 7410, + "nodeType": "Return", + "src": "32393:61:13" + } + ] + }, + "documentation": null, + "id": 7412, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "canRagequit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7389, + "name": "highestIndexYesVote", + "nodeType": "VariableDeclaration", + "scope": 7412, + "src": "32237:27:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7388, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32237:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "32236:29:13" + }, + "returnParameters": { + "id": 7393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7392, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7412, + "src": "32287:4:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32287:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "32286:6:13" + }, + "scope": 7480, + "src": "32216:246:13", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7427, + "nodeType": "Block", + "src": "33326:86:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 7419, + "name": "getCurrentPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7363, + "src": "33344:16:13", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 7420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33344:18:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7423, + "name": "votingPeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6250, + "src": "33385:18:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7421, + "name": "startingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7414, + "src": "33366:14:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "33366:18:13", + "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": 7424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33366:38:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "33344:60:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 7418, + "id": 7426, + "nodeType": "Return", + "src": "33337:67:13" + } + ] + }, + "documentation": null, + "id": 7428, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "hasVotingPeriodExpired", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7415, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7414, + "name": "startingPeriod", + "nodeType": "VariableDeclaration", + "scope": 7428, + "src": "33275:22:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7413, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33275:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "33274:24:13" + }, + "returnParameters": { + "id": 7418, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7417, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7428, + "src": "33320:4:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7416, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "33320:4:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "33319:6:13" + }, + "scope": 7480, + "src": "33243:169:13", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7462, + "nodeType": "Block", + "src": "33523:247:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7438, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6426, + "src": "33541:7:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", + "typeString": "mapping(address => struct Governance.Member storage ref)" + } + }, + "id": 7440, + "indexExpression": { + "argumentTypes": null, + "id": 7439, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7430, + "src": "33549:13:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33541:22:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$6382_storage", + "typeString": "struct Governance.Member storage ref" + } + }, + "id": 7441, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exists", + "nodeType": "MemberAccess", + "referencedDeclaration": 6379, + "src": "33541:29:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6d656d62657220646f6573206e6f74206578697374", + "id": 7442, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "33572:23:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_eeb2dbde81ed918fce84900f40c1838c2cab850a4c637d1ccdd3d5601b174fb4", + "typeString": "literal_string \"member does not exist\"" + }, + "value": "member does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_eeb2dbde81ed918fce84900f40c1838c2cab850a4c637d1ccdd3d5601b174fb4", + "typeString": "literal_string \"member does not exist\"" + } + ], + "id": 7437, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "33533:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33533:63:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7444, + "nodeType": "ExpressionStatement", + "src": "33533:63:13" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7446, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7432, + "src": "33614:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7447, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "33630:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 7448, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "33630:20:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "33614:36:13", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", + "id": 7450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "33652:25:13", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + }, + "value": "proposal does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + } + ], + "id": 7445, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "33606:7:13", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7451, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33606:72:13", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7452, + "nodeType": "ExpressionStatement", + "src": "33606:72:13" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7453, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6434, + "src": "33695:9:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", + "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" + } + }, + "id": 7457, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7454, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6437, + "src": "33705:13:13", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 7456, + "indexExpression": { + "argumentTypes": null, + "id": 7455, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7432, + "src": "33719:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33705:28:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33695:39:13", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$6419_storage", + "typeString": "struct Governance.Proposal storage ref" + } + }, + "id": 7458, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "votesByMember", + "nodeType": "MemberAccess", + "referencedDeclaration": 6418, + "src": "33695:53:13", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$6373_$", + "typeString": "mapping(address => enum Governance.Vote)" + } + }, + "id": 7460, + "indexExpression": { + "argumentTypes": null, + "id": 7459, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7430, + "src": "33749:13:13", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33695:68:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "functionReturnParameters": 7436, + "id": 7461, + "nodeType": "Return", + "src": "33688:75:13" + } + ] + }, + "documentation": null, + "id": 7463, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMemberProposalVote", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7433, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7430, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 7463, + "src": "33450:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7429, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33450:7:13", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7432, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 7463, + "src": "33473:21:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7431, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33473:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "33449:46:13" + }, + "returnParameters": { + "id": 7436, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7435, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7463, + "src": "33517:4:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + }, + "typeName": { + "contractScope": null, + "id": 7434, + "name": "Vote", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6373, + "src": "33517:4:13", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$6373", + "typeString": "enum Governance.Vote" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "33516:6:13" + }, + "scope": 7480, + "src": "33419:351:13", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7470, + "nodeType": "Block", + "src": "33829:39:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7468, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6358, + "src": "33847:13:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7467, + "id": 7469, + "nodeType": "Return", + "src": "33840:20:13" + } + ] + }, + "documentation": null, + "id": 7471, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7464, + "nodeType": "ParameterList", + "parameters": [], + "src": "33797:2:13" + }, + "returnParameters": { + "id": 7467, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7466, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7471, + "src": "33821:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7465, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33821:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "33820:9:13" + }, + "scope": 7480, + "src": "33776:92:13", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7478, + "nodeType": "Block", + "src": "33925:63:13", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7476, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6363, + "src": "33943:6:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7475, + "id": 7477, + "nodeType": "Return", + "src": "33936:13:13" + } + ] + }, + "documentation": null, + "id": 7479, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getResult", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7472, + "nodeType": "ParameterList", + "parameters": [], + "src": "33893:2:13" + }, + "returnParameters": { + "id": 7475, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7474, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7479, + "src": "33917:7:13", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7473, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33917:7:13", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "33916:9:13" + }, + "scope": 7480, + "src": "33874:114:13", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 7481, + "src": "157:33834:13" + } + ], + "src": "0:33993:13" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:20.133Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": { + "submitProposal(address,uint256,uint256,uint256,address,uint256,address,string)": { + "notice": "***************\r PROPOSAL FUNCTIONS\r****************" + } + } + } +} \ No newline at end of file diff --git a/src/contracts/GuildBank.json b/src/contracts/GuildBank.json new file mode 100644 index 0000000..35730a8 --- /dev/null +++ b/src/contracts/GuildBank.json @@ -0,0 +1,4823 @@ +{ + "contractName": "GuildBank", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "receiver", + "type": "address" + }, + { + "indexed": true, + "name": "tokenAddress", + "type": "address" + }, + { + "indexed": false, + "name": "amount", + "type": "uint256" + } + ], + "name": "Withdrawal", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "receiver", + "type": "address" + }, + { + "name": "shares", + "type": "uint256" + }, + { + "name": "totalShares", + "type": "uint256" + }, + { + "name": "approvedTokens", + "type": "address[]" + } + ], + "name": "withdraw", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "token", + "type": "address" + }, + { + "name": "receiver", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + } + ], + "name": "withdrawToken", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"token\",\"type\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawToken\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\"},{\"name\":\"shares\",\"type\":\"uint256\"},{\"name\":\"totalShares\",\"type\":\"uint256\"},{\"name\":\"approvedTokens\",\"type\":\"address[]\"}],\"name\":\"withdraw\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol\":\"GuildBank\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol\":{\"keccak256\":\"0xa8ace5b5ac3322c9019470d2a1ad1342ef5d984da3d4818554e703b65ceda667\",\"urls\":[\"bzzr://b38168eab9d05f21a7576958f33878d9d31877a12f1f14bda390f3f4fbdaa2a4\",\"dweb:/ipfs/QmWa9cX9gzUkyM9yVwfhd6FsSeh1jpV62sBzdGJm6jRPRX\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b031916331790556104e6806100326000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301e3366714610046578063732c8f57146100905780638da5cb5b1461014f575b600080fd5b61007c6004803603606081101561005c57600080fd5b506001600160a01b03813581169160208101359091169060400135610173565b604080519115158252519081900360200190f35b61007c600480360360808110156100a657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156100dd57600080fd5b8201836020820111156100ef57600080fd5b8035906020019184602083028401116401000000008311171561011157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061026c945050505050565b61015761044e565b604080516001600160a01b039092168252519081900360200190f35b600080546001600160a01b0316331461018b57600080fd5b836001600160a01b0316836001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398846040518082815260200191505060405180910390a3836001600160a01b031663a9059cbb84846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561023657600080fd5b505af115801561024a573d6000803e3d6000fd5b505050506040513d602081101561026057600080fd5b505190505b9392505050565b600080546001600160a01b0316331461028457600080fd5b60005b82518110156104425760006103318483815181106102a157fe5b60200260200101516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156102fe57600080fd5b505afa158015610312573d6000803e3d6000fd5b505050506040513d602081101561032857600080fd5b5051878761045d565b905083828151811061033f57fe5b60200260200101516001600160a01b0316876001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398836040518082815260200191505060405180910390a383828151811061039d57fe5b60200260200101516001600160a01b031663a9059cbb88836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b505050506040513d602081101561042e57600080fd5b505161043957600080fd5b50600101610287565b50600195945050505050565b6000546001600160a01b031681565b60008161046957600080fd5b8361047657506000610265565b8383028385828161048357fe5b04141561049c5782818161049357fe5b04915050610265565b838386816104a657fe5b04029594505050505056fea265627a7a72305820600a90e68081feae486f77ec58352ebe4f959e2362fac128a8d418122da6121464736f6c63430005090032", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c806301e3366714610046578063732c8f57146100905780638da5cb5b1461014f575b600080fd5b61007c6004803603606081101561005c57600080fd5b506001600160a01b03813581169160208101359091169060400135610173565b604080519115158252519081900360200190f35b61007c600480360360808110156100a657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156100dd57600080fd5b8201836020820111156100ef57600080fd5b8035906020019184602083028401116401000000008311171561011157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061026c945050505050565b61015761044e565b604080516001600160a01b039092168252519081900360200190f35b600080546001600160a01b0316331461018b57600080fd5b836001600160a01b0316836001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398846040518082815260200191505060405180910390a3836001600160a01b031663a9059cbb84846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561023657600080fd5b505af115801561024a573d6000803e3d6000fd5b505050506040513d602081101561026057600080fd5b505190505b9392505050565b600080546001600160a01b0316331461028457600080fd5b60005b82518110156104425760006103318483815181106102a157fe5b60200260200101516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156102fe57600080fd5b505afa158015610312573d6000803e3d6000fd5b505050506040513d602081101561032857600080fd5b5051878761045d565b905083828151811061033f57fe5b60200260200101516001600160a01b0316876001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398836040518082815260200191505060405180910390a383828151811061039d57fe5b60200260200101516001600160a01b031663a9059cbb88836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b505050506040513d602081101561042e57600080fd5b505161043957600080fd5b50600101610287565b50600195945050505050565b6000546001600160a01b031681565b60008161046957600080fd5b8361047657506000610265565b8383028385828161048357fe5b04141561049c5782818161049357fe5b04915050610265565b838386816104a657fe5b04029594505050505056fea265627a7a72305820600a90e68081feae486f77ec58352ebe4f959e2362fac128a8d418122da6121464736f6c63430005090032", + "sourceMap": "65:1463:14:-;;;121:59;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;154:5:14;:18;;-1:-1:-1;;;;;;154:18:14;162:10;154:18;;;-1:-1:-1;;;;65:1463:14;;;;", + "deployedSourceMap": "65:1463:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;65:1463:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;872:221;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;872:221:14;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;373:491;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;373:491:14;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;373:491:14;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;373:491:14;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;373:491:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;373:491:14;;-1:-1:-1;373:491:14;;-1:-1:-1;;;;;373:491:14:i;92:20::-;;;:::i;:::-;;;;-1:-1:-1;;;;;92:20:14;;;;;;;;;;;;;;872:221;969:4;242:5;;-1:-1:-1;;;;;242:5:14;228:10;:19;220:28;;;;;;991:44;;;;;;;;-1:-1:-1;;;;;991:44:14;;;;;;;;;;;;;;;;;1053:32;;;-1:-1:-1;;;1053:32:14;;-1:-1:-1;;;;;1053:32:14;;;;;;;;;;;;;;;:14;;;;-1:-1:-1;;1053:32:14;;;;;;;;;;;;;;;-1:-1:-1;1053:14:14;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;1053:32:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1053:32:14;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1053:32:14;;-1:-1:-1;259:1:14;872:221;;;;;:::o;373:491::-;504:4;242:5;;-1:-1:-1;;;;;242:5:14;228:10;:19;220:28;;;;;;526:9;521:314;545:14;:21;541:1;:25;521:314;;;588:14;605:74;615:14;630:1;615:17;;;;;;;;;;;;;;;;;;;:42;;;-1:-1:-1;;;615:42:14;;651:4;615:42;;;;;;-1:-1:-1;;;;;615:27:14;;;;-1:-1:-1;;615:42:14;;;;;;;;;;:27;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;615:42:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;615:42:14;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;615:42:14;659:6;667:11;605:9;:74::i;:::-;588:91;;728:14;743:1;728:17;;;;;;;;;;;;;;;;;;;699:56;;;;;;;;-1:-1:-1;;;;;699:56:14;;;;;;;;;;;;;;;;778:14;793:1;778:17;;;;;;;;;;;;;;;;;;;:44;;;-1:-1:-1;;;778:44:14;;-1:-1:-1;;;;;778:44:14;;;;;;;;;;;;;;;:26;;;;;-1:-1:-1;;778:44:14;;;;;;;;;;;-1:-1:-1;778:26:14;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;778:44:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;778:44:14;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;778:44:14;770:53;;;;;;-1:-1:-1;568:3:14;;521:314;;;-1:-1:-1;852:4:14;;373:491;-1:-1:-1;;;;;373:491:14:o;92:20::-;;;-1:-1:-1;;;;;92:20:14;;:::o;1101:422::-;1197:7;1225:16;1217:25;;;;;;1259:12;1255:31;;-1:-1:-1;1282:1:14;1275:8;;1255:31;1313:16;;;1323:6;1313:7;:16;:7;1346:14;;;;;:24;1342:122;;;1441:11;1434:4;:18;;;;;;1427:25;;;;;1342:122;1509:6;1494:11;1484:7;:21;;;;;;1483:32;;1101:422;-1:-1:-1;;;;;1101:422:14:o", + "source": "pragma solidity >=0.5.0 < 0.6.0;\r\n\r\nimport \"./oz/IERC20.sol\";\r\n\r\ncontract GuildBank {\r\n address public owner;\r\n\r\n constructor () public {\r\n owner = msg.sender;\r\n }\r\n\r\n modifier onlyOwner() {\r\n require(msg.sender == owner);\r\n _;\r\n }\r\n\r\n event Withdrawal(address indexed receiver, address indexed tokenAddress, uint256 amount);\r\n\r\n function withdraw(address receiver, uint256 shares, uint256 totalShares, IERC20[] memory approvedTokens) public onlyOwner returns (bool) {\r\n for (uint256 i = 0; i < approvedTokens.length; i++) {\r\n uint256 amount = fairShare(approvedTokens[i].balanceOf(address(this)), shares, totalShares);\r\n emit Withdrawal(receiver, address(approvedTokens[i]), amount);\r\n require(approvedTokens[i].transfer(receiver, amount));\r\n }\r\n return true;\r\n }\r\n\r\n function withdrawToken(IERC20 token, address receiver, uint256 amount) public onlyOwner returns (bool) {\r\n emit Withdrawal(receiver, address(token), amount);\r\n return token.transfer(receiver, amount);\r\n }\r\n\r\n function fairShare(uint256 balance, uint256 shares, uint256 totalShares) internal pure returns (uint256) {\r\n require(totalShares != 0);\r\n\r\n if (balance == 0) { return 0; }\r\n\r\n uint256 prod = balance * shares;\r\n\r\n if (prod / balance == shares) { // no overflow in multiplication above?\r\n return prod / totalShares;\r\n }\r\n\r\n return (balance / totalShares) * shares;\r\n }\r\n\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\GuildBank.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol", + "exportedSymbols": { + "GuildBank": [ + 7658 + ] + }, + "id": 7659, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 7482, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:14" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", + "file": "./oz/IERC20.sol", + "id": 7483, + "nodeType": "ImportDirective", + "scope": 7659, + "sourceUnit": 9720, + "src": "36:25:14", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 7658, + "linearizedBaseContracts": [ + 7658 + ], + "name": "GuildBank", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 7485, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 7658, + "src": "92:20:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7484, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "92:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 7493, + "nodeType": "Block", + "src": "143:37:14", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7488, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7485, + "src": "154:5:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7489, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "162:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "162:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "154:18:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7492, + "nodeType": "ExpressionStatement", + "src": "154:18:14" + } + ] + }, + "documentation": null, + "id": 7494, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7486, + "nodeType": "ParameterList", + "parameters": [], + "src": "133:2:14" + }, + "returnParameters": { + "id": 7487, + "nodeType": "ParameterList", + "parameters": [], + "src": "143:0:14" + }, + "scope": 7658, + "src": "121:59:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7504, + "nodeType": "Block", + "src": "209:59:14", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 7500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7497, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "228:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "228:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 7499, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7485, + "src": "242:5:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "228:19:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7496, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "220:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "220:28:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7502, + "nodeType": "ExpressionStatement", + "src": "220:28:14" + }, + { + "id": 7503, + "nodeType": "PlaceholderStatement", + "src": "259:1:14" + } + ] + }, + "documentation": null, + "id": 7505, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 7495, + "nodeType": "ParameterList", + "parameters": [], + "src": "206:2:14" + }, + "src": "188:80:14", + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 7513, + "name": "Withdrawal", + "nodeType": "EventDefinition", + "parameters": { + "id": 7512, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7507, + "indexed": true, + "name": "receiver", + "nodeType": "VariableDeclaration", + "scope": 7513, + "src": "293:24:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "293:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7509, + "indexed": true, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 7513, + "src": "319:28:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "319:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7511, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 7513, + "src": "349:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "349:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "292:72:14" + }, + "src": "276:89:14" + }, + { + "body": { + "id": 7579, + "nodeType": "Block", + "src": "510:354:14", + "statements": [ + { + "body": { + "id": 7575, + "nodeType": "Block", + "src": "573:262:14", + "statements": [ + { + "assignments": [ + 7541 + ], + "declarations": [ + { + "constant": false, + "id": 7541, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 7575, + "src": "588:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7540, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "588:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7554, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7548, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10435, + "src": "651:4:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + ], + "id": 7547, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "643:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "643:13:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7543, + "name": "approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7522, + "src": "615:14:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[] memory" + } + }, + "id": 7545, + "indexExpression": { + "argumentTypes": null, + "id": 7544, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7530, + "src": "630:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "615:17:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 7546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 9693, + "src": "615:27:14", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 7550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "615:42:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7551, + "name": "shares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7517, + "src": "659:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7552, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7519, + "src": "667:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7542, + "name": "fairShare", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7657, + "src": "605:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 7553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "605:74:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "588:91:14" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7556, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7515, + "src": "710:8:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7558, + "name": "approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7522, + "src": "728:14:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[] memory" + } + }, + "id": 7560, + "indexExpression": { + "argumentTypes": null, + "id": 7559, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7530, + "src": "743:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "728:17:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + ], + "id": 7557, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "720:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "720:26:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7562, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7541, + "src": "748:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7555, + "name": "Withdrawal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7513, + "src": "699:10:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 7563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "699:56:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7564, + "nodeType": "EmitStatement", + "src": "694:61:14" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7570, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7515, + "src": "805:8:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7571, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7541, + "src": "815:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7566, + "name": "approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7522, + "src": "778:14:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[] memory" + } + }, + "id": 7568, + "indexExpression": { + "argumentTypes": null, + "id": 7567, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7530, + "src": "793:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "778:17:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 7569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9661, + "src": "778:26:14", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 7572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "778:44:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7565, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "770:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "770:53:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7574, + "nodeType": "ExpressionStatement", + "src": "770:53:14" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7533, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7530, + "src": "541:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7534, + "name": "approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7522, + "src": "545:14:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[] memory" + } + }, + "id": 7535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "545:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "541:25:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7576, + "initializationExpression": { + "assignments": [ + 7530 + ], + "declarations": [ + { + "constant": false, + "id": 7530, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 7576, + "src": "526:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7529, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "526:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7532, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 7531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "538:1:14", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "526:13:14" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 7538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "568:3:14", + "subExpression": { + "argumentTypes": null, + "id": 7537, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7530, + "src": "568:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7539, + "nodeType": "ExpressionStatement", + "src": "568:3:14" + }, + "nodeType": "ForStatement", + "src": "521:314:14" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "852:4:14", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 7528, + "id": 7578, + "nodeType": "Return", + "src": "845:11:14" + } + ] + }, + "documentation": null, + "id": 7580, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 7525, + "modifierName": { + "argumentTypes": null, + "id": 7524, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7505, + "src": "485:9:14", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "485:9:14" + } + ], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7523, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7515, + "name": "receiver", + "nodeType": "VariableDeclaration", + "scope": 7580, + "src": "391:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "391:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7517, + "name": "shares", + "nodeType": "VariableDeclaration", + "scope": 7580, + "src": "409:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "409:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7519, + "name": "totalShares", + "nodeType": "VariableDeclaration", + "scope": 7580, + "src": "425:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7518, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "425:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7522, + "name": "approvedTokens", + "nodeType": "VariableDeclaration", + "scope": 7580, + "src": "446:30:14", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 7520, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "446:6:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 7521, + "length": null, + "nodeType": "ArrayTypeName", + "src": "446:8:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage_ptr", + "typeString": "contract IERC20[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "390:87:14" + }, + "returnParameters": { + "id": 7528, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7527, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7580, + "src": "504:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7526, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "504:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "503:6:14" + }, + "scope": 7658, + "src": "373:491:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7607, + "nodeType": "Block", + "src": "975:118:14", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7594, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7584, + "src": "1002:8:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7596, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7582, + "src": "1020:5:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + ], + "id": 7595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1012:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1012:14:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7598, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7586, + "src": "1028:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7593, + "name": "Withdrawal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7513, + "src": "991:10:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 7599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "991:44:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7600, + "nodeType": "EmitStatement", + "src": "986:49:14" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7603, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7584, + "src": "1068:8:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7604, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7586, + "src": "1078:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7601, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7582, + "src": "1053:5:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 7602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9661, + "src": "1053:14:14", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 7605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1053:32:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 7592, + "id": 7606, + "nodeType": "Return", + "src": "1046:39:14" + } + ] + }, + "documentation": null, + "id": 7608, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 7589, + "modifierName": { + "argumentTypes": null, + "id": 7588, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7505, + "src": "950:9:14", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "950:9:14" + } + ], + "name": "withdrawToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7582, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7608, + "src": "895:12:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 7581, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "895:6:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7584, + "name": "receiver", + "nodeType": "VariableDeclaration", + "scope": 7608, + "src": "909:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7583, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "909:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7586, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 7608, + "src": "927:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7585, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "927:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "894:48:14" + }, + "returnParameters": { + "id": 7592, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7591, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7608, + "src": "969:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7590, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "969:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "968:6:14" + }, + "scope": 7658, + "src": "872:221:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7656, + "nodeType": "Block", + "src": "1206:317:14", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7620, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7614, + "src": "1225:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7621, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1240:1:14", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1225:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7619, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "1217:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1217:25:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7624, + "nodeType": "ExpressionStatement", + "src": "1217:25:14" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7625, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7610, + "src": "1259:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7626, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1270:1:14", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1259:12:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7631, + "nodeType": "IfStatement", + "src": "1255:31:14", + "trueBody": { + "id": 7630, + "nodeType": "Block", + "src": "1273:13:14", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1282:1:14", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 7618, + "id": 7629, + "nodeType": "Return", + "src": "1275:8:14" + } + ] + } + }, + { + "assignments": [ + 7633 + ], + "declarations": [ + { + "constant": false, + "id": 7633, + "name": "prod", + "nodeType": "VariableDeclaration", + "scope": 7656, + "src": "1298:12:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7632, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1298:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7637, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7634, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7610, + "src": "1313:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 7635, + "name": "shares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7612, + "src": "1323:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1313:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1298:31:14" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7638, + "name": "prod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7633, + "src": "1346:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 7639, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7610, + "src": "1353:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1346:14:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 7641, + "name": "shares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7612, + "src": "1364:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1346:24:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7648, + "nodeType": "IfStatement", + "src": "1342:122:14", + "trueBody": { + "id": 7647, + "nodeType": "Block", + "src": "1372:92:14", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7643, + "name": "prod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7633, + "src": "1434:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 7644, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7614, + "src": "1441:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1434:18:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7618, + "id": 7646, + "nodeType": "Return", + "src": "1427:25:14" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7649, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7610, + "src": "1484:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 7650, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7614, + "src": "1494:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1484:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 7652, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1483:23:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 7653, + "name": "shares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7612, + "src": "1509:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1483:32:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7618, + "id": 7655, + "nodeType": "Return", + "src": "1476:39:14" + } + ] + }, + "documentation": null, + "id": 7657, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "fairShare", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7610, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 7657, + "src": "1120:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1120:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7612, + "name": "shares", + "nodeType": "VariableDeclaration", + "scope": 7657, + "src": "1137:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1137:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7614, + "name": "totalShares", + "nodeType": "VariableDeclaration", + "scope": 7657, + "src": "1153:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7613, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1153:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1119:54:14" + }, + "returnParameters": { + "id": 7618, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7617, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7657, + "src": "1197:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7616, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1197:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1196:9:14" + }, + "scope": 7658, + "src": "1101:422:14", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 7659, + "src": "65:1463:14" + } + ], + "src": "0:1530:14" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol", + "exportedSymbols": { + "GuildBank": [ + 7658 + ] + }, + "id": 7659, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 7482, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:14" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", + "file": "./oz/IERC20.sol", + "id": 7483, + "nodeType": "ImportDirective", + "scope": 7659, + "sourceUnit": 9720, + "src": "36:25:14", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 7658, + "linearizedBaseContracts": [ + 7658 + ], + "name": "GuildBank", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 7485, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 7658, + "src": "92:20:14", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7484, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "92:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 7493, + "nodeType": "Block", + "src": "143:37:14", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 7491, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7488, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7485, + "src": "154:5:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7489, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "162:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "162:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "154:18:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7492, + "nodeType": "ExpressionStatement", + "src": "154:18:14" + } + ] + }, + "documentation": null, + "id": 7494, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7486, + "nodeType": "ParameterList", + "parameters": [], + "src": "133:2:14" + }, + "returnParameters": { + "id": 7487, + "nodeType": "ParameterList", + "parameters": [], + "src": "143:0:14" + }, + "scope": 7658, + "src": "121:59:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7504, + "nodeType": "Block", + "src": "209:59:14", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 7500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7497, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "228:3:14", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "228:10:14", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 7499, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7485, + "src": "242:5:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "228:19:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7496, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "220:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "220:28:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7502, + "nodeType": "ExpressionStatement", + "src": "220:28:14" + }, + { + "id": 7503, + "nodeType": "PlaceholderStatement", + "src": "259:1:14" + } + ] + }, + "documentation": null, + "id": 7505, + "name": "onlyOwner", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 7495, + "nodeType": "ParameterList", + "parameters": [], + "src": "206:2:14" + }, + "src": "188:80:14", + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 7513, + "name": "Withdrawal", + "nodeType": "EventDefinition", + "parameters": { + "id": 7512, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7507, + "indexed": true, + "name": "receiver", + "nodeType": "VariableDeclaration", + "scope": 7513, + "src": "293:24:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "293:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7509, + "indexed": true, + "name": "tokenAddress", + "nodeType": "VariableDeclaration", + "scope": 7513, + "src": "319:28:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "319:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7511, + "indexed": false, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 7513, + "src": "349:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "349:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "292:72:14" + }, + "src": "276:89:14" + }, + { + "body": { + "id": 7579, + "nodeType": "Block", + "src": "510:354:14", + "statements": [ + { + "body": { + "id": 7575, + "nodeType": "Block", + "src": "573:262:14", + "statements": [ + { + "assignments": [ + 7541 + ], + "declarations": [ + { + "constant": false, + "id": 7541, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 7575, + "src": "588:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7540, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "588:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7554, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7548, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10435, + "src": "651:4:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + ], + "id": 7547, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "643:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "643:13:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7543, + "name": "approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7522, + "src": "615:14:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[] memory" + } + }, + "id": 7545, + "indexExpression": { + "argumentTypes": null, + "id": 7544, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7530, + "src": "630:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "615:17:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 7546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 9693, + "src": "615:27:14", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 7550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "615:42:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7551, + "name": "shares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7517, + "src": "659:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 7552, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7519, + "src": "667:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7542, + "name": "fairShare", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7657, + "src": "605:9:14", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" + } + }, + "id": 7553, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "605:74:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "588:91:14" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7556, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7515, + "src": "710:8:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7558, + "name": "approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7522, + "src": "728:14:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[] memory" + } + }, + "id": 7560, + "indexExpression": { + "argumentTypes": null, + "id": 7559, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7530, + "src": "743:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "728:17:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + ], + "id": 7557, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "720:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "720:26:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7562, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7541, + "src": "748:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7555, + "name": "Withdrawal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7513, + "src": "699:10:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 7563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "699:56:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7564, + "nodeType": "EmitStatement", + "src": "694:61:14" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7570, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7515, + "src": "805:8:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7571, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7541, + "src": "815:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7566, + "name": "approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7522, + "src": "778:14:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[] memory" + } + }, + "id": 7568, + "indexExpression": { + "argumentTypes": null, + "id": 7567, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7530, + "src": "793:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "778:17:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 7569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9661, + "src": "778:26:14", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 7572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "778:44:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7565, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "770:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "770:53:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7574, + "nodeType": "ExpressionStatement", + "src": "770:53:14" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7536, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7533, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7530, + "src": "541:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7534, + "name": "approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7522, + "src": "545:14:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[] memory" + } + }, + "id": 7535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "545:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "541:25:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7576, + "initializationExpression": { + "assignments": [ + 7530 + ], + "declarations": [ + { + "constant": false, + "id": 7530, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 7576, + "src": "526:9:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7529, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "526:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7532, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 7531, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "538:1:14", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "526:13:14" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 7538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "568:3:14", + "subExpression": { + "argumentTypes": null, + "id": 7537, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7530, + "src": "568:1:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7539, + "nodeType": "ExpressionStatement", + "src": "568:3:14" + }, + "nodeType": "ForStatement", + "src": "521:314:14" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 7577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "852:4:14", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 7528, + "id": 7578, + "nodeType": "Return", + "src": "845:11:14" + } + ] + }, + "documentation": null, + "id": 7580, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 7525, + "modifierName": { + "argumentTypes": null, + "id": 7524, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7505, + "src": "485:9:14", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "485:9:14" + } + ], + "name": "withdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7523, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7515, + "name": "receiver", + "nodeType": "VariableDeclaration", + "scope": 7580, + "src": "391:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "391:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7517, + "name": "shares", + "nodeType": "VariableDeclaration", + "scope": 7580, + "src": "409:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7516, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "409:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7519, + "name": "totalShares", + "nodeType": "VariableDeclaration", + "scope": 7580, + "src": "425:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7518, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "425:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7522, + "name": "approvedTokens", + "nodeType": "VariableDeclaration", + "scope": 7580, + "src": "446:30:14", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 7520, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "446:6:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 7521, + "length": null, + "nodeType": "ArrayTypeName", + "src": "446:8:14", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage_ptr", + "typeString": "contract IERC20[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "390:87:14" + }, + "returnParameters": { + "id": 7528, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7527, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7580, + "src": "504:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7526, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "504:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "503:6:14" + }, + "scope": 7658, + "src": "373:491:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7607, + "nodeType": "Block", + "src": "975:118:14", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7594, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7584, + "src": "1002:8:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7596, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7582, + "src": "1020:5:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + ], + "id": 7595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1012:7:14", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1012:14:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7598, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7586, + "src": "1028:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 7593, + "name": "Withdrawal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7513, + "src": "991:10:14", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 7599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "991:44:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7600, + "nodeType": "EmitStatement", + "src": "986:49:14" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 7603, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7584, + "src": "1068:8:14", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 7604, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7586, + "src": "1078:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 7601, + "name": "token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7582, + "src": "1053:5:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 7602, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9661, + "src": "1053:14:14", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 7605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1053:32:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 7592, + "id": 7606, + "nodeType": "Return", + "src": "1046:39:14" + } + ] + }, + "documentation": null, + "id": 7608, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 7589, + "modifierName": { + "argumentTypes": null, + "id": 7588, + "name": "onlyOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7505, + "src": "950:9:14", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "950:9:14" + } + ], + "name": "withdrawToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7582, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 7608, + "src": "895:12:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 7581, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "895:6:14", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7584, + "name": "receiver", + "nodeType": "VariableDeclaration", + "scope": 7608, + "src": "909:16:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7583, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "909:7:14", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7586, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 7608, + "src": "927:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7585, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "927:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "894:48:14" + }, + "returnParameters": { + "id": 7592, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7591, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7608, + "src": "969:4:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7590, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "969:4:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "968:6:14" + }, + "scope": 7658, + "src": "872:221:14", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 7656, + "nodeType": "Block", + "src": "1206:317:14", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7620, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7614, + "src": "1225:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7621, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1240:1:14", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1225:16:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 7619, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "1217:7:14", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 7623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1217:25:14", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7624, + "nodeType": "ExpressionStatement", + "src": "1217:25:14" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7625, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7610, + "src": "1259:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7626, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1270:1:14", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1259:12:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7631, + "nodeType": "IfStatement", + "src": "1255:31:14", + "trueBody": { + "id": 7630, + "nodeType": "Block", + "src": "1273:13:14", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7628, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1282:1:14", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 7618, + "id": 7629, + "nodeType": "Return", + "src": "1275:8:14" + } + ] + } + }, + { + "assignments": [ + 7633 + ], + "declarations": [ + { + "constant": false, + "id": 7633, + "name": "prod", + "nodeType": "VariableDeclaration", + "scope": 7656, + "src": "1298:12:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7632, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1298:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7637, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7636, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7634, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7610, + "src": "1313:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 7635, + "name": "shares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7612, + "src": "1323:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1313:16:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1298:31:14" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7640, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7638, + "name": "prod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7633, + "src": "1346:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 7639, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7610, + "src": "1353:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1346:14:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 7641, + "name": "shares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7612, + "src": "1364:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1346:24:14", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 7648, + "nodeType": "IfStatement", + "src": "1342:122:14", + "trueBody": { + "id": 7647, + "nodeType": "Block", + "src": "1372:92:14", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7643, + "name": "prod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7633, + "src": "1434:4:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 7644, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7614, + "src": "1441:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1434:18:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7618, + "id": 7646, + "nodeType": "Return", + "src": "1427:25:14" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7649, + "name": "balance", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7610, + "src": "1484:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 7650, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7614, + "src": "1494:11:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1484:21:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 7652, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "1483:23:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 7653, + "name": "shares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7612, + "src": "1509:6:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1483:32:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 7618, + "id": 7655, + "nodeType": "Return", + "src": "1476:39:14" + } + ] + }, + "documentation": null, + "id": 7657, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "fairShare", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7615, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7610, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 7657, + "src": "1120:15:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7609, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1120:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7612, + "name": "shares", + "nodeType": "VariableDeclaration", + "scope": 7657, + "src": "1137:14:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7611, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1137:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7614, + "name": "totalShares", + "nodeType": "VariableDeclaration", + "scope": 7657, + "src": "1153:19:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7613, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1153:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1119:54:14" + }, + "returnParameters": { + "id": 7618, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7617, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 7657, + "src": "1197:7:14", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7616, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1197:7:14", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1196:9:14" + }, + "scope": 7658, + "src": "1101:422:14", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 7659, + "src": "65:1463:14" + } + ], + "src": "0:1530:14" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:20.168Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/contracts/HumanStandardToken.json b/src/contracts/HumanStandardToken.json new file mode 100644 index 0000000..a4eb298 --- /dev/null +++ b/src/contracts/HumanStandardToken.json @@ -0,0 +1,5733 @@ +{ + "contractName": "HumanStandardToken", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "name", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "decimals", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "version", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "symbol", + "outputs": [ + { + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_initialAmount", + "type": "uint256" + }, + { + "name": "_tokenName", + "type": "string" + }, + { + "name": "_decimalUnits", + "type": "uint8" + }, + { + "name": "_tokenSymbol", + "type": "string" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_from", + "type": "address" + }, + { + "indexed": false, + "name": "_to", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_owner", + "type": "address" + }, + { + "indexed": false, + "name": "_spender", + "type": "address" + }, + { + "indexed": false, + "name": "_value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_from", + "type": "address" + }, + { + "name": "_to", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "balance", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_spender", + "type": "address" + }, + { + "name": "_value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_owner", + "type": "address" + }, + { + "name": "_spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "remaining", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"remaining\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_initialAmount\",\"type\":\"uint256\"},{\"name\":\"_tokenName\",\"type\":\"string\"},{\"name\":\"_decimalUnits\",\"type\":\"uint8\"},{\"name\":\"_tokenSymbol\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/HumanStandardToken.sol\":\"HumanStandardToken\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC20Token.sol\":{\"keccak256\":\"0x3148ace3c8e413e3e8cb9181826bbb7382fe8fd691fbbe398b0f3291c5ac88f6\",\"urls\":[\"bzzr://f6dae48bd61cf187d97f6dd7b1f14c4216ccda99c9173d87ac59465f9d3a030b\",\"dweb:/ipfs/QmbDe5WTm8sWmUWRbKxtWUrSbyS1T5vgkiVscK94RJb6iS\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/HumanStandardToken.sol\":{\"keccak256\":\"0x84cf05b3aedd146c60769d2ad00bf26e7403ab72fed4f03b7b1dd0fd4ed3c4fb\",\"urls\":[\"bzzr://cf8349a1f17075cbc166cd200f4e6a05e378a4a69ca474f2b7273cde6e830241\",\"dweb:/ipfs/QmeWmKmdhJMm5J4j62gzmDbktSoWn2wjNxT4Bv4FLu8HmF\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/Token.sol\":{\"keccak256\":\"0xdee24120ae0fa14b9200dfa97babfa107aaf668b52eeda93ad672260ede4b74c\",\"urls\":[\"bzzr://2144e06fcebb6227647c4362c7075680ea03074e80e51d37cad0b09092ff06a5\",\"dweb:/ipfs/QmYgcfKEH2DT6brtajHvPRdu6my6CRWH86TXmZCMZeGjfK\"]}},\"version\":1}", + "bytecode": "0x60c0604052600460808190527f48302e310000000000000000000000000000000000000000000000000000000060a090815261003e916006919061016b565b5034801561004b57600080fd5b506040516108493803806108498339818101604052608081101561006e57600080fd5b81516020830180519193928301929164010000000081111561008f57600080fd5b820160208101848111156100a257600080fd5b81516401000000008111828201871017156100bc57600080fd5b505060208201516040909201805191949293916401000000008111156100e157600080fd5b820160208101848111156100f457600080fd5b815164010000000081118282018710171561010e57600080fd5b5050336000908152600160209081526040822089905590889055865191945061013e93506003925086019061016b565b506004805460ff191660ff8416179055805161016190600590602084019061016b565b5050505050610206565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106101ac57805160ff19168380011785556101d9565b828001600101855582156101d9579182015b828111156101d95782518255916020019190600101906101be565b506101e59291506101e9565b5090565b61020391905b808211156101e557600081556001016101ef565b90565b610634806102156000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806354fd4d501161006657806354fd4d50146101ce57806370a08231146101d657806395d89b41146101fc578063a9059cbb14610204578063dd62ed3e146102305761009e565b806306fdde03146100a3578063095ea7b31461012057806318160ddd1461016057806323b872dd1461017a578063313ce567146101b0575b600080fd5b6100ab61025e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100e55781810151838201526020016100cd565b50505050905090810190601f1680156101125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61014c6004803603604081101561013657600080fd5b506001600160a01b0381351690602001356102ec565b604080519115158252519081900360200190f35b61016861035e565b60408051918252519081900360200190f35b61014c6004803603606081101561019057600080fd5b506001600160a01b03813581169160208101359091169060400135610364565b6101b8610459565b6040805160ff9092168252519081900360200190f35b6100ab610462565b610168600480360360208110156101ec57600080fd5b50356001600160a01b03166104bd565b6100ab6104d8565b61014c6004803603604081101561021a57600080fd5b506001600160a01b038135169060200135610533565b6101686004803603604081101561024657600080fd5b506001600160a01b03813581169160200135166105d4565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102e45780601f106102b9576101008083540402835291602001916102e4565b820191906000526020600020905b8154815290600101906020018083116102c757829003601f168201915b505050505081565b3360008181526002602090815260408083206001600160a01b0387168085529083528184208690558151948552918401919091528281018490525190917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925919081900360600190a15060015b92915050565b60005481565b6001600160a01b03831660009081526001602052604081205482118015906103af57506001600160a01b03841660009081526002602090815260408083203384529091529020548211155b80156103bb5750600082115b1561044e576001600160a01b038084166000818152600160209081526040808320805488019055938816808352848320805488900390556002825284832033845282529184902080548790039055835191825281019190915280820184905290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a1506001610452565b5060005b9392505050565b60045460ff1681565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102e45780601f106102b9576101008083540402835291602001916102e4565b6001600160a01b031660009081526001602052604090205490565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102e45780601f106102b9576101008083540402835291602001916102e4565b3360009081526001602052604081205482118015906105525750600082115b156105cc57336000818152600160209081526040808320805487900390556001600160a01b03871680845292819020805487019055805193845290830191909152818101849052517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a1506001610358565b506000610358565b6001600160a01b0391821660009081526002602090815260408083209390941682529190915220549056fea265627a7a72305820ea50d5555dc6ba11d5c386fb3c62afb045c6406a2ecde00a994eb76840f7ea2f64736f6c63430005090032", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806354fd4d501161006657806354fd4d50146101ce57806370a08231146101d657806395d89b41146101fc578063a9059cbb14610204578063dd62ed3e146102305761009e565b806306fdde03146100a3578063095ea7b31461012057806318160ddd1461016057806323b872dd1461017a578063313ce567146101b0575b600080fd5b6100ab61025e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100e55781810151838201526020016100cd565b50505050905090810190601f1680156101125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61014c6004803603604081101561013657600080fd5b506001600160a01b0381351690602001356102ec565b604080519115158252519081900360200190f35b61016861035e565b60408051918252519081900360200190f35b61014c6004803603606081101561019057600080fd5b506001600160a01b03813581169160208101359091169060400135610364565b6101b8610459565b6040805160ff9092168252519081900360200190f35b6100ab610462565b610168600480360360208110156101ec57600080fd5b50356001600160a01b03166104bd565b6100ab6104d8565b61014c6004803603604081101561021a57600080fd5b506001600160a01b038135169060200135610533565b6101686004803603604081101561024657600080fd5b506001600160a01b03813581169160200135166105d4565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102e45780601f106102b9576101008083540402835291602001916102e4565b820191906000526020600020905b8154815290600101906020018083116102c757829003601f168201915b505050505081565b3360008181526002602090815260408083206001600160a01b0387168085529083528184208690558151948552918401919091528281018490525190917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925919081900360600190a15060015b92915050565b60005481565b6001600160a01b03831660009081526001602052604081205482118015906103af57506001600160a01b03841660009081526002602090815260408083203384529091529020548211155b80156103bb5750600082115b1561044e576001600160a01b038084166000818152600160209081526040808320805488019055938816808352848320805488900390556002825284832033845282529184902080548790039055835191825281019190915280820184905290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a1506001610452565b5060005b9392505050565b60045460ff1681565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102e45780601f106102b9576101008083540402835291602001916102e4565b6001600160a01b031660009081526001602052604090205490565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102e45780601f106102b9576101008083540402835291602001916102e4565b3360009081526001602052604081205482118015906105525750600082115b156105cc57336000818152600160209081526040808320805487900390556001600160a01b03871680845292819020805487019055805193845290830191909152818101849052517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a1506001610358565b506000610358565b6001600160a01b0391821660009081526002602090815260408083209390941682529190915220549056fea265627a7a72305820ea50d5555dc6ba11d5c386fb3c62afb045c6406a2ecde00a994eb76840f7ea2f64736f6c63430005090032", + "sourceMap": "1549:30:9:-;828:3355;1549:30;;828:3355;1549:30;;;;;;;;;;;;;;:::i;:::-;;1653:664;8:9:-1;5:2;;;30:1;27;20:12;5:2;1653:664:9;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1653:664:9;;;;;;;;;;;;;;19:11:-1;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;261:11;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;-1:-1;;1653:664:9;;;;;;;;;;;;;;;19:11:-1;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;261:11;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;-1:-1;;1838:10:9;1829:20;;;;:8;:20;;;;;;;:37;;;1930:28;;;;2015:17;;1653:664;;-1:-1:-1;2015:17:9;;-1:-1:-1;2015:4:9;;-1:-1:-1;2015:17:9;;;;:::i;:::-;-1:-1:-1;2114:8:9;:24;;-1:-1:-1;;2114:24:9;;;;;;;2219:21;;;;:6;;:21;;;;;:::i;:::-;;1653:664;;;;828:3355;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;828:3355:9;;;-1:-1:-1;828:3355:9;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "828:3355:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;828:3355:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1215:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1215:18:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3816:214;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3816:214:9;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;629:26:11;;;:::i;:::-;;;;;;;;;;;;;;;;3012:673:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3012:673:9;;;;;;;;;;;;;;;;;:::i;1287:21::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1549:30;;;:::i;3693:115::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3693:115:9;-1:-1:-1;;;;;3693:115:9;;:::i;1482:20::-;;;:::i;2323:681::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2323:681:9;;;;;;;;:::i;4038:142::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4038:142:9;;;;;;;;;;:::i;1215:18::-;;;;;;;;;;;;;;;-1:-1:-1;;1215:18:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3816:214::-;3916:10;3883:12;3908:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3908:29:9;;;;;;;;;;;:38;;;3962;;;;;;;;;;;;;;;;;;;3883:12;;3962:38;;;;;;;;;;-1:-1:-1;4018:4:9;3816:214;;;;;:::o;629:26:11:-;;;;:::o;3012:673:9:-;-1:-1:-1;;;;;3359:15:9;;3094:12;3359:15;;;:8;:15;;;;;;:25;-1:-1:-1;3359:25:9;;;:65;;-1:-1:-1;;;;;;3388:14:9;;;;;;:7;:14;;;;;;;;3403:10;3388:26;;;;;;;;:36;-1:-1:-1;3388:36:9;3359:65;:79;;;;;3437:1;3428:6;:10;3359:79;3355:323;;;-1:-1:-1;;;;;3455:13:9;;;;;;;:8;:13;;;;;;;;:23;;;;;;3493:15;;;;;;;;;:25;;;;;;;3533:7;:14;;;;;3548:10;3533:26;;;;;;;;:36;;;;;;;3589:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3639:4:9;3632:11;;3355:323;-1:-1:-1;3670:5:9;3355:323;3012:673;;;;;:::o;1287:21::-;;;;;;:::o;1549:30::-;;;;;;;;;;;;;;;-1:-1:-1;;1549:30:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3693:115;-1:-1:-1;;;;;3784:16:9;3749:15;3784:16;;;:8;:16;;;;;;;3693:115::o;1482:20::-;;;;;;;;;;;;;;;-1:-1:-1;;1482:20:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2323:681;2763:10;2386:12;2754:20;;;:8;:20;;;;;;:30;-1:-1:-1;2754:30:9;;;:44;;;2797:1;2788:6;:10;2754:44;2750:247;;;2824:10;2815:20;;;;:8;:20;;;;;;;;:30;;;;;;;-1:-1:-1;;;;;2860:13:9;;;;;;;;;:23;;;;;;2903:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2958:4:9;2951:11;;2750:247;-1:-1:-1;2989:5:9;2982:12;;4038:142;-1:-1:-1;;;;;4147:15:9;;;4112:17;4147:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;4038:142::o", + "source": "/*\r\nThis Token Contract implements the standard token functionality (https://github.com/ethereum/EIPs/issues/20) as well as the following OPTIONAL extras intended for use by humans.\r\n\r\nIn other words. This is intended for deployment in something like a Token Factory or Mist wallet, and then used by humans.\r\nImagine coins, currencies, shares, voting weight, etc.\r\nMachine-based, rapid creation of many tokens would not necessarily need these extra features or will be minted in other manners.\r\n\r\n1) Initial Finite Supply (upon creation one specifies how much is minted).\r\n2) In the absence of a token registry: Optional Decimal, Symbol & Name.\r\n3) Optional approveAndCall() functionality to notify a contract if an approval() has occurred.\r\n\r\n.*/\r\n\r\nimport \"../inherited/ERC20Token.sol\";\r\n\r\npragma solidity >=0.5.0 < 0.6.0;\r\n\r\ncontract HumanStandardToken is ERC20Token {\r\n\r\n /* Public variables of the token */\r\n\r\n /*\r\n NOTE:\r\n The following variables are OPTIONAL vanities. One does not have to include them.\r\n They allow one to customise the token contract & in no way influences the core functionality.\r\n Some wallets/interfaces might not even bother to look at this information.\r\n */\r\n string public name; //fancy name: eg Simon Bucks\r\n uint8 public decimals; //How many decimals to show. ie. There could 1000 base units with 3 decimals. Meaning 0.980 SBX = 980 base units. It's like comparing 1 wei to 1 ether.\r\n string public symbol; //An identifier: eg SBX\r\n string public version = 'H0.1'; //human 0.1 standard. Just an arbitrary versioning scheme.\r\n\r\n constructor(\r\n uint256 _initialAmount,\r\n string memory _tokenName,\r\n uint8 _decimalUnits,\r\n string memory _tokenSymbol\r\n ) public {\r\n balances[msg.sender] = _initialAmount; // Give the creator all initial tokens\r\n totalSupply = _initialAmount; // Update total supply\r\n name = _tokenName; // Set the name for display purposes\r\n decimals = _decimalUnits; // Amount of decimals for display purposes\r\n symbol = _tokenSymbol; // Set the symbol for display purposes\r\n }\r\n function transfer(address _to, uint256 _value) public returns (bool success) {\r\n //Default assumes totalSupply can't be over max (2^256 - 1).\r\n //If your token leaves out totalSupply and can issue more tokens as time goes on, you need to check if it doesn't wrap.\r\n //Replace the if with this one instead.\r\n //if (balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]) {\r\n if (balances[msg.sender] >= _value && _value > 0) {\r\n balances[msg.sender] -= _value;\r\n balances[_to] += _value;\r\n emit Transfer(msg.sender, _to, _value);\r\n return true;\r\n } else { return false; }\r\n }\r\n\r\n function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {\r\n //same as above. Replace this line with the following if you want to protect against wrapping uints.\r\n //if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value > balances[_to]) {\r\n if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0) {\r\n balances[_to] += _value;\r\n balances[_from] -= _value;\r\n allowed[_from][msg.sender] -= _value;\r\n emit Transfer(_from, _to, _value);\r\n return true;\r\n } else { return false; }\r\n }\r\n\r\n function balanceOf(address _owner) view public returns (uint256 balance) {\r\n return balances[_owner];\r\n }\r\n\r\n function approve(address _spender, uint256 _value) public returns (bool success) {\r\n allowed[msg.sender][_spender] = _value;\r\n emit Approval(msg.sender, _spender, _value);\r\n return true;\r\n }\r\n\r\n function allowance(address _owner, address _spender) view public returns (uint256 remaining) {\r\n return allowed[_owner][_spender];\r\n }\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\inherited\\HumanStandardToken.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/HumanStandardToken.sol", + "exportedSymbols": { + "HumanStandardToken": [ + 6014 + ] + }, + "id": 6015, + "nodeType": "SourceUnit", + "nodes": [ + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC20Token.sol", + "file": "../inherited/ERC20Token.sol", + "id": 5799, + "nodeType": "ImportDirective", + "scope": 6015, + "sourceUnit": 4990, + "src": "751:37:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 5800, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "792:32:9" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5801, + "name": "ERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4989, + "src": "859:10:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Token_$4989", + "typeString": "contract ERC20Token" + } + }, + "id": 5802, + "nodeType": "InheritanceSpecifier", + "src": "859:10:9" + } + ], + "contractDependencies": [ + 4989, + 6137 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6014, + "linearizedBaseContracts": [ + 6014, + 4989, + 6137 + ], + "name": "HumanStandardToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 5804, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 6014, + "src": "1215:18:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 5803, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1215:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5806, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 6014, + "src": "1287:21:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5805, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1287:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5808, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 6014, + "src": "1482:20:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 5807, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1482:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5811, + "name": "version", + "nodeType": "VariableDeclaration", + "scope": 6014, + "src": "1549:30:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 5809, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1549:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "48302e31", + "id": 5810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1573:6:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d6d58ef494a91661d08cde370ab3ac80b175fdf7fb2bea79e75e8276633326a2", + "typeString": "literal_string \"H0.1\"" + }, + "value": "H0.1" + }, + "visibility": "public" + }, + { + "body": { + "id": 5845, + "nodeType": "Block", + "src": "1818:499:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5822, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "1829:8:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5825, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5823, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "1838:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1838:10:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1829:20:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5826, + "name": "_initialAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5813, + "src": "1852:14:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1829:37:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5828, + "nodeType": "ExpressionStatement", + "src": "1829:37:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 5831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5829, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6075, + "src": "1930:11:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5830, + "name": "_initialAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5813, + "src": "1944:14:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1930:28:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5832, + "nodeType": "ExpressionStatement", + "src": "1930:28:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 5835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5833, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5804, + "src": "2015:4:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5834, + "name": "_tokenName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5815, + "src": "2022:10:9", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2015:17:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 5836, + "nodeType": "ExpressionStatement", + "src": "2015:17:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 5839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5837, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5806, + "src": "2114:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5838, + "name": "_decimalUnits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5817, + "src": "2125:13:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "2114:24:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 5840, + "nodeType": "ExpressionStatement", + "src": "2114:24:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 5843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5841, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5808, + "src": "2219:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5842, + "name": "_tokenSymbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5819, + "src": "2228:12:9", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2219:21:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 5844, + "nodeType": "ExpressionStatement", + "src": "2219:21:9" + } + ] + }, + "documentation": null, + "id": 5846, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5813, + "name": "_initialAmount", + "nodeType": "VariableDeclaration", + "scope": 5846, + "src": "1675:22:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5812, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1675:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5815, + "name": "_tokenName", + "nodeType": "VariableDeclaration", + "scope": 5846, + "src": "1708:24:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5814, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1708:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5817, + "name": "_decimalUnits", + "nodeType": "VariableDeclaration", + "scope": 5846, + "src": "1743:19:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5816, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1743:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5819, + "name": "_tokenSymbol", + "nodeType": "VariableDeclaration", + "scope": 5846, + "src": "1773:26:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5818, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1773:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1664:146:9" + }, + "returnParameters": { + "id": 5821, + "nodeType": "ParameterList", + "parameters": [], + "src": "1818:0:9" + }, + "scope": 6014, + "src": "1653:664:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5892, + "nodeType": "Block", + "src": "2400:604:9", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5855, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "2754:8:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5858, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5856, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "2763:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2763:10:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2754:20:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 5859, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "2778:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2754:30:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5861, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "2788:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5862, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2797:1:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2788:10:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2754:44:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5890, + "nodeType": "Block", + "src": "2980:17:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 5888, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2989:5:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 5854, + "id": 5889, + "nodeType": "Return", + "src": "2982:12:9" + } + ] + }, + "id": 5891, + "nodeType": "IfStatement", + "src": "2750:247:9", + "trueBody": { + "id": 5887, + "nodeType": "Block", + "src": "2800:174:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5865, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "2815:8:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5868, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5866, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "2824:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2824:10:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2815:20:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 5869, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "2839:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2815:30:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5871, + "nodeType": "ExpressionStatement", + "src": "2815:30:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 5876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5872, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "2860:8:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5874, + "indexExpression": { + "argumentTypes": null, + "id": 5873, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5848, + "src": "2869:3:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2860:13:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "id": 5875, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "2877:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2860:23:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5877, + "nodeType": "ExpressionStatement", + "src": "2860:23:9" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5879, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "2912:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2912:10:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5881, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5848, + "src": "2924:3:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5882, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "2929:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5878, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6128, + "src": "2903:8:9", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2903:33:9", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5884, + "nodeType": "EmitStatement", + "src": "2898:38:9" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5885, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2958:4:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5854, + "id": 5886, + "nodeType": "Return", + "src": "2951:11:9" + } + ] + } + } + ] + }, + "documentation": null, + "id": 5893, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5851, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5848, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5893, + "src": "2341:11:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2341:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5850, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 5893, + "src": "2354:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5849, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2354:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2340:29:9" + }, + "returnParameters": { + "id": 5854, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5853, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 5893, + "src": "2386:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5852, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2386:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2385:14:9" + }, + "scope": 6014, + "src": "2323:681:9", + "stateMutability": "nonpayable", + "superFunction": 4858, + "visibility": "public" + }, + { + "body": { + "id": 5956, + "nodeType": "Block", + "src": "3108:577:9", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5904, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "3359:8:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5906, + "indexExpression": { + "argumentTypes": null, + "id": 5905, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5895, + "src": "3368:5:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3359:15:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 5907, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5899, + "src": "3378:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3359:25:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5909, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4988, + "src": "3388:7:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5911, + "indexExpression": { + "argumentTypes": null, + "id": 5910, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5895, + "src": "3396:5:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3388:14:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5914, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5912, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3403:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3403:10:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3388:26:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 5915, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5899, + "src": "3418:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3388:36:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3359:65:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5918, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5899, + "src": "3428:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3437:1:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3428:10:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3359:79:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5954, + "nodeType": "Block", + "src": "3661:17:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 5952, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3670:5:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 5903, + "id": 5953, + "nodeType": "Return", + "src": "3663:12:9" + } + ] + }, + "id": 5955, + "nodeType": "IfStatement", + "src": "3355:323:9", + "trueBody": { + "id": 5951, + "nodeType": "Block", + "src": "3440:215:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5922, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "3455:8:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5924, + "indexExpression": { + "argumentTypes": null, + "id": 5923, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5897, + "src": "3464:3:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3455:13:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "id": 5925, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5899, + "src": "3472:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3455:23:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5927, + "nodeType": "ExpressionStatement", + "src": "3455:23:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 5932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5928, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "3493:8:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5930, + "indexExpression": { + "argumentTypes": null, + "id": 5929, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5895, + "src": "3502:5:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3493:15:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 5931, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5899, + "src": "3512:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3493:25:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5933, + "nodeType": "ExpressionStatement", + "src": "3493:25:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 5941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5934, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4988, + "src": "3533:7:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5938, + "indexExpression": { + "argumentTypes": null, + "id": 5935, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5895, + "src": "3541:5:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3533:14:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5939, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5936, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3548:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3548:10:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3533:26:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 5940, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5899, + "src": "3563:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3533:36:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5942, + "nodeType": "ExpressionStatement", + "src": "3533:36:9" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5944, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5895, + "src": "3598:5:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5945, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5897, + "src": "3605:3:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5946, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5899, + "src": "3610:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5943, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6128, + "src": "3589:8:9", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3589:28:9", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5948, + "nodeType": "EmitStatement", + "src": "3584:33:9" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5949, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3639:4:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5903, + "id": 5950, + "nodeType": "Return", + "src": "3632:11:9" + } + ] + } + } + ] + }, + "documentation": null, + "id": 5957, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5900, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5895, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5957, + "src": "3034:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5894, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3034:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5897, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5957, + "src": "3049:11:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5896, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3049:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5899, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 5957, + "src": "3062:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5898, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3062:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3033:44:9" + }, + "returnParameters": { + "id": 5903, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5902, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 5957, + "src": "3094:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5901, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3094:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3093:14:9" + }, + "scope": 6014, + "src": "3012:673:9", + "stateMutability": "nonpayable", + "superFunction": 4922, + "visibility": "public" + }, + { + "body": { + "id": 5968, + "nodeType": "Block", + "src": "3766:42:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5964, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "3784:8:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5966, + "indexExpression": { + "argumentTypes": null, + "id": 5965, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5959, + "src": "3793:6:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3784:16:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5963, + "id": 5967, + "nodeType": "Return", + "src": "3777:23:9" + } + ] + }, + "documentation": null, + "id": 5969, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5960, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5959, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5969, + "src": "3712:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5958, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3712:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3711:16:9" + }, + "returnParameters": { + "id": 5963, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5962, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 5969, + "src": "3749:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5961, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3749:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3748:17:9" + }, + "scope": 6014, + "src": "3693:115:9", + "stateMutability": "view", + "superFunction": 4934, + "visibility": "public" + }, + { + "body": { + "id": 5996, + "nodeType": "Block", + "src": "3897:133:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5978, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4988, + "src": "3908:7:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5982, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5979, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3916:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3916:10:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3908:19:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5983, + "indexExpression": { + "argumentTypes": null, + "id": 5981, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5971, + "src": "3928:8:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3908:29:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5984, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5973, + "src": "3940:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3908:38:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5986, + "nodeType": "ExpressionStatement", + "src": "3908:38:9" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5988, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3971:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3971:10:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5990, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5971, + "src": "3983:8:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5991, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5973, + "src": "3993:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5987, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6136, + "src": "3962:8:9", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3962:38:9", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5993, + "nodeType": "EmitStatement", + "src": "3957:43:9" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5994, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4018:4:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5977, + "id": 5995, + "nodeType": "Return", + "src": "4011:11:9" + } + ] + }, + "documentation": null, + "id": 5997, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5971, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 5997, + "src": "3833:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5970, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3833:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5973, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 5997, + "src": "3851:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3851:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3832:34:9" + }, + "returnParameters": { + "id": 5977, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5976, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 5997, + "src": "3883:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5975, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3883:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3882:14:9" + }, + "scope": 6014, + "src": "3816:214:9", + "stateMutability": "nonpayable", + "superFunction": 4962, + "visibility": "public" + }, + { + "body": { + "id": 6012, + "nodeType": "Block", + "src": "4131:49:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6006, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4988, + "src": "4147:7:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 6008, + "indexExpression": { + "argumentTypes": null, + "id": 6007, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5999, + "src": "4155:6:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4147:15:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 6010, + "indexExpression": { + "argumentTypes": null, + "id": 6009, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6001, + "src": "4163:8:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4147:25:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6005, + "id": 6011, + "nodeType": "Return", + "src": "4140:32:9" + } + ] + }, + "documentation": null, + "id": 6013, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6002, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5999, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 6013, + "src": "4057:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5998, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4057:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6001, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 6013, + "src": "4073:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6000, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4073:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4056:34:9" + }, + "returnParameters": { + "id": 6005, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6004, + "name": "remaining", + "nodeType": "VariableDeclaration", + "scope": 6013, + "src": "4112:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6003, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4112:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4111:19:9" + }, + "scope": 6014, + "src": "4038:142:9", + "stateMutability": "view", + "superFunction": 4978, + "visibility": "public" + } + ], + "scope": 6015, + "src": "828:3355:9" + } + ], + "src": "751:3434:9" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/HumanStandardToken.sol", + "exportedSymbols": { + "HumanStandardToken": [ + 6014 + ] + }, + "id": 6015, + "nodeType": "SourceUnit", + "nodes": [ + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC20Token.sol", + "file": "../inherited/ERC20Token.sol", + "id": 5799, + "nodeType": "ImportDirective", + "scope": 6015, + "sourceUnit": 4990, + "src": "751:37:9", + "symbolAliases": [], + "unitAlias": "" + }, + { + "id": 5800, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "792:32:9" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5801, + "name": "ERC20Token", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 4989, + "src": "859:10:9", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Token_$4989", + "typeString": "contract ERC20Token" + } + }, + "id": 5802, + "nodeType": "InheritanceSpecifier", + "src": "859:10:9" + } + ], + "contractDependencies": [ + 4989, + 6137 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 6014, + "linearizedBaseContracts": [ + 6014, + 4989, + 6137 + ], + "name": "HumanStandardToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 5804, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 6014, + "src": "1215:18:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 5803, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1215:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5806, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 6014, + "src": "1287:21:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5805, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1287:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5808, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 6014, + "src": "1482:20:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 5807, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1482:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 5811, + "name": "version", + "nodeType": "VariableDeclaration", + "scope": 6014, + "src": "1549:30:9", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 5809, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1549:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "48302e31", + "id": 5810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1573:6:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d6d58ef494a91661d08cde370ab3ac80b175fdf7fb2bea79e75e8276633326a2", + "typeString": "literal_string \"H0.1\"" + }, + "value": "H0.1" + }, + "visibility": "public" + }, + { + "body": { + "id": 5845, + "nodeType": "Block", + "src": "1818:499:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5822, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "1829:8:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5825, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5823, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "1838:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1838:10:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1829:20:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5826, + "name": "_initialAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5813, + "src": "1852:14:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1829:37:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5828, + "nodeType": "ExpressionStatement", + "src": "1829:37:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 5831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5829, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6075, + "src": "1930:11:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5830, + "name": "_initialAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5813, + "src": "1944:14:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1930:28:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5832, + "nodeType": "ExpressionStatement", + "src": "1930:28:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 5835, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5833, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5804, + "src": "2015:4:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5834, + "name": "_tokenName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5815, + "src": "2022:10:9", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2015:17:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 5836, + "nodeType": "ExpressionStatement", + "src": "2015:17:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 5839, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5837, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5806, + "src": "2114:8:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5838, + "name": "_decimalUnits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5817, + "src": "2125:13:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "2114:24:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 5840, + "nodeType": "ExpressionStatement", + "src": "2114:24:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 5843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 5841, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5808, + "src": "2219:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5842, + "name": "_tokenSymbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5819, + "src": "2228:12:9", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2219:21:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 5844, + "nodeType": "ExpressionStatement", + "src": "2219:21:9" + } + ] + }, + "documentation": null, + "id": 5846, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5813, + "name": "_initialAmount", + "nodeType": "VariableDeclaration", + "scope": 5846, + "src": "1675:22:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5812, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1675:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5815, + "name": "_tokenName", + "nodeType": "VariableDeclaration", + "scope": 5846, + "src": "1708:24:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5814, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1708:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5817, + "name": "_decimalUnits", + "nodeType": "VariableDeclaration", + "scope": 5846, + "src": "1743:19:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 5816, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1743:5:9", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5819, + "name": "_tokenSymbol", + "nodeType": "VariableDeclaration", + "scope": 5846, + "src": "1773:26:9", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 5818, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1773:6:9", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1664:146:9" + }, + "returnParameters": { + "id": 5821, + "nodeType": "ParameterList", + "parameters": [], + "src": "1818:0:9" + }, + "scope": 6014, + "src": "1653:664:9", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5892, + "nodeType": "Block", + "src": "2400:604:9", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5855, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "2754:8:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5858, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5856, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "2763:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2763:10:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2754:20:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 5859, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "2778:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2754:30:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5861, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "2788:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5862, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2797:1:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2788:10:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "2754:44:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5890, + "nodeType": "Block", + "src": "2980:17:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 5888, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2989:5:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 5854, + "id": 5889, + "nodeType": "Return", + "src": "2982:12:9" + } + ] + }, + "id": 5891, + "nodeType": "IfStatement", + "src": "2750:247:9", + "trueBody": { + "id": 5887, + "nodeType": "Block", + "src": "2800:174:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5865, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "2815:8:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5868, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5866, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "2824:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5867, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2824:10:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2815:20:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 5869, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "2839:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2815:30:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5871, + "nodeType": "ExpressionStatement", + "src": "2815:30:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 5876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5872, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "2860:8:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5874, + "indexExpression": { + "argumentTypes": null, + "id": 5873, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5848, + "src": "2869:3:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "2860:13:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "id": 5875, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "2877:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2860:23:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5877, + "nodeType": "ExpressionStatement", + "src": "2860:23:9" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5879, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "2912:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "2912:10:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5881, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5848, + "src": "2924:3:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5882, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5850, + "src": "2929:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5878, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6128, + "src": "2903:8:9", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2903:33:9", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5884, + "nodeType": "EmitStatement", + "src": "2898:38:9" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5885, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2958:4:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5854, + "id": 5886, + "nodeType": "Return", + "src": "2951:11:9" + } + ] + } + } + ] + }, + "documentation": null, + "id": 5893, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5851, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5848, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5893, + "src": "2341:11:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5847, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2341:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5850, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 5893, + "src": "2354:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5849, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2354:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2340:29:9" + }, + "returnParameters": { + "id": 5854, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5853, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 5893, + "src": "2386:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5852, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2386:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2385:14:9" + }, + "scope": 6014, + "src": "2323:681:9", + "stateMutability": "nonpayable", + "superFunction": 4858, + "visibility": "public" + }, + { + "body": { + "id": 5956, + "nodeType": "Block", + "src": "3108:577:9", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5904, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "3359:8:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5906, + "indexExpression": { + "argumentTypes": null, + "id": 5905, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5895, + "src": "3368:5:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3359:15:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 5907, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5899, + "src": "3378:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3359:25:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5909, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4988, + "src": "3388:7:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5911, + "indexExpression": { + "argumentTypes": null, + "id": 5910, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5895, + "src": "3396:5:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3388:14:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5914, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5912, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3403:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3403:10:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3388:26:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 5915, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5899, + "src": "3418:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3388:36:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3359:65:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "&&", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5918, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5899, + "src": "3428:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5919, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3437:1:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3428:10:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3359:79:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 5954, + "nodeType": "Block", + "src": "3661:17:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 5952, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3670:5:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 5903, + "id": 5953, + "nodeType": "Return", + "src": "3663:12:9" + } + ] + }, + "id": 5955, + "nodeType": "IfStatement", + "src": "3355:323:9", + "trueBody": { + "id": 5951, + "nodeType": "Block", + "src": "3440:215:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5922, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "3455:8:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5924, + "indexExpression": { + "argumentTypes": null, + "id": 5923, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5897, + "src": "3464:3:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3455:13:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "id": 5925, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5899, + "src": "3472:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3455:23:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5927, + "nodeType": "ExpressionStatement", + "src": "3455:23:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 5932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5928, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "3493:8:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5930, + "indexExpression": { + "argumentTypes": null, + "id": 5929, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5895, + "src": "3502:5:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3493:15:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 5931, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5899, + "src": "3512:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3493:25:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5933, + "nodeType": "ExpressionStatement", + "src": "3493:25:9" + }, + { + "expression": { + "argumentTypes": null, + "id": 5941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5934, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4988, + "src": "3533:7:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5938, + "indexExpression": { + "argumentTypes": null, + "id": 5935, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5895, + "src": "3541:5:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3533:14:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5939, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5936, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3548:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3548:10:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3533:26:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "argumentTypes": null, + "id": 5940, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5899, + "src": "3563:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3533:36:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5942, + "nodeType": "ExpressionStatement", + "src": "3533:36:9" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5944, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5895, + "src": "3598:5:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5945, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5897, + "src": "3605:3:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5946, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5899, + "src": "3610:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5943, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6128, + "src": "3589:8:9", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5947, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3589:28:9", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5948, + "nodeType": "EmitStatement", + "src": "3584:33:9" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5949, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3639:4:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5903, + "id": 5950, + "nodeType": "Return", + "src": "3632:11:9" + } + ] + } + } + ] + }, + "documentation": null, + "id": 5957, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5900, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5895, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5957, + "src": "3034:13:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5894, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3034:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5897, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5957, + "src": "3049:11:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5896, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3049:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5899, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 5957, + "src": "3062:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5898, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3062:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3033:44:9" + }, + "returnParameters": { + "id": 5903, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5902, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 5957, + "src": "3094:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5901, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3094:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3093:14:9" + }, + "scope": 6014, + "src": "3012:673:9", + "stateMutability": "nonpayable", + "superFunction": 4922, + "visibility": "public" + }, + { + "body": { + "id": 5968, + "nodeType": "Block", + "src": "3766:42:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5964, + "name": "balances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4982, + "src": "3784:8:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5966, + "indexExpression": { + "argumentTypes": null, + "id": 5965, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5959, + "src": "3793:6:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3784:16:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5963, + "id": 5967, + "nodeType": "Return", + "src": "3777:23:9" + } + ] + }, + "documentation": null, + "id": 5969, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5960, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5959, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5969, + "src": "3712:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5958, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3712:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3711:16:9" + }, + "returnParameters": { + "id": 5963, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5962, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 5969, + "src": "3749:15:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5961, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3749:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3748:17:9" + }, + "scope": 6014, + "src": "3693:115:9", + "stateMutability": "view", + "superFunction": 4934, + "visibility": "public" + }, + { + "body": { + "id": 5996, + "nodeType": "Block", + "src": "3897:133:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5985, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5978, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4988, + "src": "3908:7:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 5982, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5979, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3916:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3916:10:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3908:19:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5983, + "indexExpression": { + "argumentTypes": null, + "id": 5981, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5971, + "src": "3928:8:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3908:29:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5984, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5973, + "src": "3940:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3908:38:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5986, + "nodeType": "ExpressionStatement", + "src": "3908:38:9" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5988, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3971:3:9", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3971:10:9", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5990, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5971, + "src": "3983:8:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5991, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5973, + "src": "3993:6:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5987, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6136, + "src": "3962:8:9", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5992, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3962:38:9", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5993, + "nodeType": "EmitStatement", + "src": "3957:43:9" + }, + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5994, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4018:4:9", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5977, + "id": 5995, + "nodeType": "Return", + "src": "4011:11:9" + } + ] + }, + "documentation": null, + "id": 5997, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5971, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 5997, + "src": "3833:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5970, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3833:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5973, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 5997, + "src": "3851:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3851:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3832:34:9" + }, + "returnParameters": { + "id": 5977, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5976, + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 5997, + "src": "3883:12:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5975, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3883:4:9", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3882:14:9" + }, + "scope": 6014, + "src": "3816:214:9", + "stateMutability": "nonpayable", + "superFunction": 4962, + "visibility": "public" + }, + { + "body": { + "id": 6012, + "nodeType": "Block", + "src": "4131:49:9", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 6006, + "name": "allowed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4988, + "src": "4147:7:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", + "typeString": "mapping(address => mapping(address => uint256))" + } + }, + "id": 6008, + "indexExpression": { + "argumentTypes": null, + "id": 6007, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5999, + "src": "4155:6:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4147:15:9", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 6010, + "indexExpression": { + "argumentTypes": null, + "id": 6009, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6001, + "src": "4163:8:9", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4147:25:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 6005, + "id": 6011, + "nodeType": "Return", + "src": "4140:32:9" + } + ] + }, + "documentation": null, + "id": 6013, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6002, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5999, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 6013, + "src": "4057:14:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5998, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4057:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 6001, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 6013, + "src": "4073:16:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6000, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4073:7:9", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4056:34:9" + }, + "returnParameters": { + "id": 6005, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6004, + "name": "remaining", + "nodeType": "VariableDeclaration", + "scope": 6013, + "src": "4112:17:9", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6003, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4112:7:9", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4111:19:9" + }, + "scope": 6014, + "src": "4038:142:9", + "stateMutability": "view", + "superFunction": 4978, + "visibility": "public" + } + ], + "scope": 6015, + "src": "828:3355:9" + } + ], + "src": "751:3434:9" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:20.097Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/contracts/IClaimsToken.json b/src/contracts/IClaimsToken.json new file mode 100644 index 0000000..d776119 --- /dev/null +++ b/src/contracts/IClaimsToken.json @@ -0,0 +1,10542 @@ +{ + "contractName": "IClaimsToken", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": false, + "name": "fundsReceived", + "type": "uint256" + } + ], + "name": "FundsReceived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "by", + "type": "address" + }, + { + "indexed": false, + "name": "fundsWithdrawn", + "type": "uint256" + } + ], + "name": "FundsWithdrawn", + "type": "event" + }, + { + "constant": false, + "inputs": [], + "name": "withdrawFunds", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_forAddress", + "type": "address" + } + ], + "name": "availableFunds", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalReceivedFunds", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"totalReceivedFunds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"withdrawFunds\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_forAddress\",\"type\":\"address\"}],\"name\":\"availableFunds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"fundsReceived\",\"type\":\"uint256\"}],\"name\":\"FundsReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"by\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"fundsWithdrawn\",\"type\":\"uint256\"}],\"name\":\"FundsWithdrawn\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"availableFunds(address)\":{\"details\":\"Returns the amount of funds a given address is able to withdraw currently.\\r\",\"params\":{\"_forAddress\":\"Address of ClaimsToken holder\\r\"},\"return\":\"A uint256 representing the available funds for a given account\\r\"},\"totalReceivedFunds()\":{\"details\":\"Get cumulative funds received by ClaimsToken.\\r\",\"return\":\"A uint256 representing the total funds received by ClaimsToken\\r\"},\"withdrawFunds()\":{\"details\":\"Withdraws available funds for user.\\r\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol\":\"IClaimsToken\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol\":{\"keccak256\":\"0x83d94afc84930834148f8e00b2b2b624be5e2a910aeb9f508b6e3252648b304a\",\"urls\":[\"bzzr://074edfefdd7f638d059397b8b72e70605bb8eba1e750d8d512d86a5d8abaf966\",\"dweb:/ipfs/QmTPEnc9wjRf7jZ1xzh68sAjusFY5XHCTLpy79yCtCuWrA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol\":{\"keccak256\":\"0xd97866cc5c8b2c90cd57a126748771aad20762b3c708c30a4412ce17a9b79333\",\"urls\":[\"bzzr://0b6010f15f59b69c79df02987919092e5c44bd47602737eb54f4545237b5e636\",\"dweb:/ipfs/QmbPTbnWnvkWF8PRLgpmoXBr7UpJVyULmVRagrskTpkjyJ\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity >=0.5.0 < 0.6.0;\r\n\r\nimport \"../oz/SafeMath.sol\";\r\nimport \"../oz/IERC20.sol\";\r\nimport \"../oz/ERC20.sol\";\r\n\r\n/**\r\n * @dev Optional functions from the ERC20 standard.\r\n */\r\ncontract ERC20Detailed is IERC20 {\r\n string private _name;\r\n string private _symbol;\r\n uint8 private _decimals;\r\n\r\n /**\r\n * @dev Sets the values for `name`, `symbol`, and `decimals`. All three of\r\n * these values are immutable: they can only be set once during\r\n * construction.\r\n */\r\n constructor (string memory name, string memory symbol, uint8 decimals) public {\r\n _name = name;\r\n _symbol = symbol;\r\n _decimals = decimals;\r\n }\r\n\r\n /**\r\n * @dev Returns the name of the token.\r\n */\r\n function name() public view returns (string memory) {\r\n return _name;\r\n }\r\n\r\n /**\r\n * @dev Returns the symbol of the token, usually a shorter version of the\r\n * name.\r\n */\r\n function symbol() public view returns (string memory) {\r\n return _symbol;\r\n }\r\n\r\n /**\r\n * @dev Returns the number of decimals used to get its user representation.\r\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\r\n * be displayed to a user as `5,05` (`505 / 10 ** 2`).\r\n *\r\n * Tokens usually opt for a value of 18, imitating the relationship between\r\n * Ether and Wei.\r\n *\r\n * NOTE: This information is only used for _display_ purposes: it in\r\n * no way affects any of the arithmetic of the contract, including\r\n * {IERC20-balanceOf} and {IERC20-transfer}.\r\n */\r\n function decimals() public view returns (uint8) {\r\n return _decimals;\r\n }\r\n}\r\n\r\ninterface IClaimsToken {\r\n\r\n\t/**\r\n\t * @dev This event emits when funds to be deposited are sent to the token contract\r\n\t * @param from contains the address of the sender of the received funds\r\n\t * @param fundsReceived contains the amount of funds received for distribution\r\n\t */\r\n\tevent FundsReceived(address indexed from, uint256 fundsReceived);\r\n\r\n\t/**\r\n\t * @dev This event emits when distributed funds are withdrawn by a token holder.\r\n\t * @param by contains the address of the receiver of funds\r\n\t * @param fundsWithdrawn contains the amount of funds that were withdrawn\r\n\t */\r\n\tevent FundsWithdrawn(address indexed by, uint256 fundsWithdrawn);\r\n\r\n\t/**\r\n\t * @dev Withdraws available funds for user.\r\n\t */\r\n\tfunction withdrawFunds() external payable;\r\n\r\n\t/**\r\n\t * @dev Returns the amount of funds a given address is able to withdraw currently.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t * @return A uint256 representing the available funds for a given account\r\n\t */\r\n\tfunction availableFunds(address _forAddress) external view returns (uint256);\r\n\r\n\t/**\r\n\t * @dev Get cumulative funds received by ClaimsToken.\r\n\t * @return A uint256 representing the total funds received by ClaimsToken\r\n\t */\r\n\tfunction totalReceivedFunds() external view returns (uint256);\r\n}\r\n\r\ncontract ClaimsToken is IClaimsToken, ERC20, ERC20Detailed {\r\n\r\n\tusing SafeMath for uint256;\r\n\r\n\t// cumulative funds received by this contract\r\n\tuint256 public receivedFunds;\r\n\t// cumulative funds received which were already processed for distribution - by user\r\n\tmapping (address => uint256) public processedFunds;\r\n\t// claimed but not yet withdrawn funds for a user\r\n\tmapping (address => uint256) public claimedFunds;\r\n\r\n\r\n\tconstructor(address _owner)\r\n\t\tpublic\r\n\t\tERC20Detailed(\"ClaimsToken\", \"CST\", 18)\r\n\t{\r\n\t\t_mint(_owner, 10000 * (10 ** uint256(18)));\r\n\r\n\t\treceivedFunds = 0;\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Transfer token to a specified address.\r\n\t * Claims funds for both parties, whereby the amount of tokens withdrawn\r\n\t * is inherited by the new token owner.\r\n\t * @param _to The address to transfer to\r\n\t * @param _value The amount to be transferred\r\n\t */\r\n\tfunction transfer(address _to, uint256 _value)\r\n\t\tpublic\r\n\t\treturns (bool)\r\n\t{\r\n\t\t_claimFunds(msg.sender);\r\n\t\t_claimFunds(_to);\r\n\r\n\t\treturn super.transfer(_to, _value);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @dev Transfer tokens from one address to another.\r\n\t * Claims funds for both parties, whereby the amount of tokens withdrawn\r\n\t * is inherited by the new token owner.\r\n\t * @param _from address The address which you want to send tokens from\r\n\t * @param _to address The address which you want to transfer to\r\n\t * @param _value uint256 the amount of tokens to be transferred\r\n\t */\r\n\tfunction transferFrom(address _from, address _to, uint256 _value)\r\n\t\tpublic\r\n\t\treturns (bool)\r\n\t{\r\n\t\t_claimFunds(_from);\r\n\t\t_claimFunds(_to);\r\n\r\n\t\treturn super.transferFrom(_from, _to, _value);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Get cumulative funds received by ClaimsToken.\r\n\t * @return A uint256 representing the total funds received by ClaimsToken\r\n\t */\r\n\tfunction totalReceivedFunds()\r\n\t\texternal\r\n\t\tview\r\n\t\treturns (uint256)\r\n\t{\r\n\t\treturn receivedFunds;\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Returns the amount of funds a given address is able to withdraw currently.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t * @return A uint256 representing the available funds for a given account\r\n\t */\r\n\tfunction availableFunds(address _forAddress)\r\n\t\tpublic\r\n\t\tview\r\n\t\treturns (uint256)\r\n\t{\r\n\t\treturn _calcUnprocessedFunds(_forAddress).add(claimedFunds[_forAddress]);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Increments cumulative received funds by new received funds.\r\n\t * Called when ClaimsToken receives funds.\r\n\t * @param _value Amount of tokens / Ether received\r\n\t */\r\n\tfunction _registerFunds(uint256 _value)\r\n\t\tinternal\r\n\t{\r\n\t\treceivedFunds = receivedFunds.add(_value);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Returns payout for a user which can be withdrawn or claimed.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t */\r\n\tfunction _calcUnprocessedFunds(address _forAddress)\r\n\t\tinternal\r\n\t\tview\r\n\t\treturns (uint256)\r\n\t{\r\n\t\tuint256 newReceivedFunds = receivedFunds.sub(processedFunds[_forAddress]);\r\n\t\treturn balanceOf(_forAddress).mul(newReceivedFunds).div(totalSupply());\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Claims funds for a user.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t */\r\n\tfunction _claimFunds(address _forAddress) internal {\r\n\t\tuint256 unprocessedFunds = _calcUnprocessedFunds(_forAddress);\r\n\r\n\t\tprocessedFunds[_forAddress] = receivedFunds;\r\n\t\tclaimedFunds[_forAddress] = claimedFunds[_forAddress].add(unprocessedFunds);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Sets claimed but not yet withdrawn funds to 0,\r\n\t * marks total received funds as processed and\r\n\t * returns the withdrawable amount for a user.\r\n\t * @return A uint256 representing the withdrawable funds\r\n\t */\r\n\tfunction _prepareWithdraw()\r\n\t\tinternal\r\n\t\treturns (uint256)\r\n\t{\r\n\t\tuint256 withdrawableFunds = availableFunds(msg.sender);\r\n\r\n\t\tprocessedFunds[msg.sender] = receivedFunds;\r\n\t\tclaimedFunds[msg.sender] = 0;\r\n\r\n\t\treturn withdrawableFunds;\r\n\t}\r\n}\r\n\r\ncontract ClaimsTokenERC20Extension is IClaimsToken, ClaimsToken {\r\n\r\n\t// token that ClaimsToken takes in custodianship\r\n\tIERC20 public fundsToken;\r\n\r\n\tmodifier onlyFundsToken () {\r\n\t\trequire(msg.sender == address(fundsToken), \"UNAUTHORIZED_SENDER\");\r\n\t\t_;\r\n\t}\r\n\r\n\tconstructor(address _owner, IERC20 _fundsToken)\r\n\t\tpublic\r\n\t\tClaimsToken(_owner)\r\n\t{\r\n\t\trequire(address(_fundsToken) != address(0));\r\n\r\n\t\tfundsToken = _fundsToken;\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Withdraws available funds for user.\r\n\t */\r\n\tfunction withdrawFunds()\r\n\t\texternal\r\n\t\tpayable\r\n\t{\r\n\t\trequire(msg.value == 0, \"\");\r\n\r\n\t\tuint256 withdrawableFunds = _prepareWithdraw();\r\n\r\n\t\trequire(fundsToken.transfer(msg.sender, withdrawableFunds), \"TRANSFER_FAILED\");\r\n\t}\r\n\r\n\t/**\r\n\t * @dev For ERC223.\r\n\t * Calls _registerFunds(), whereby total received funds (cumulative) gets updated.\r\n\t * @param _sender Sender of tokens\r\n\t * @param _value Amount of tokens\r\n\t */\r\n\tfunction tokenFallback(address _sender, uint256 _value, bytes memory)\r\n\t\tpublic\r\n\t\tonlyFundsToken()\r\n\t{\r\n\t\tif (_value > 0) {\r\n\t\t\t_registerFunds(_value);\r\n\t\t\temit FundsReceived(_sender, _value);\r\n\t\t}\r\n\t}\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\tokens\\ClaimsToken.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol", + "exportedSymbols": { + "ClaimsToken": [ + 10228 + ], + "ClaimsTokenERC20Extension": [ + 10327 + ], + "ERC20Detailed": [ + 9977 + ], + "IClaimsToken": [ + 10005 + ] + }, + "id": 10328, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9919, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:24" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "../oz/SafeMath.sol", + "id": 9920, + "nodeType": "ImportDirective", + "scope": 10328, + "sourceUnit": 9858, + "src": "36:28:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", + "file": "../oz/IERC20.sol", + "id": 9921, + "nodeType": "ImportDirective", + "scope": 10328, + "sourceUnit": 9720, + "src": "66:26:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol", + "file": "../oz/ERC20.sol", + "id": 9922, + "nodeType": "ImportDirective", + "scope": 10328, + "sourceUnit": 9651, + "src": "94:25:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9923, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "212:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 9924, + "nodeType": "InheritanceSpecifier", + "src": "212:6:24" + } + ], + "contractDependencies": [ + 9719 + ], + "contractKind": "contract", + "documentation": "@dev Optional functions from the ERC20 standard.\r", + "fullyImplemented": false, + "id": 9977, + "linearizedBaseContracts": [ + 9977, + 9719 + ], + "name": "ERC20Detailed", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 9926, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 9977, + "src": "226:20:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 9925, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "226:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 9928, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 9977, + "src": "253:22:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 9927, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "253:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 9930, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 9977, + "src": "282:23:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9929, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "282:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 9951, + "nodeType": "Block", + "src": "581:89:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9939, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9926, + "src": "592:5:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9940, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9932, + "src": "600:4:24", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "592:12:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 9942, + "nodeType": "ExpressionStatement", + "src": "592:12:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 9945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9943, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9928, + "src": "615:7:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9944, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9934, + "src": "625:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "615:16:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 9946, + "nodeType": "ExpressionStatement", + "src": "615:16:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 9949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9947, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9930, + "src": "642:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9948, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9936, + "src": "654:8:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "642:20:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 9950, + "nodeType": "ExpressionStatement", + "src": "642:20:24" + } + ] + }, + "documentation": "@dev Sets the values for `name`, `symbol`, and `decimals`. All three of\r\nthese values are immutable: they can only be set once during\r\nconstruction.\r", + "id": 9952, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9937, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9932, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 9952, + "src": "516:18:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9931, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "516:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9934, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 9952, + "src": "536:20:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9933, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "536:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9936, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 9952, + "src": "558:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9935, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "558:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "515:58:24" + }, + "returnParameters": { + "id": 9938, + "nodeType": "ParameterList", + "parameters": [], + "src": "581:0:24" + }, + "scope": 9977, + "src": "503:167:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9959, + "nodeType": "Block", + "src": "792:31:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9957, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9926, + "src": "810:5:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 9956, + "id": 9958, + "nodeType": "Return", + "src": "803:12:24" + } + ] + }, + "documentation": "@dev Returns the name of the token.\r", + "id": 9960, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9953, + "nodeType": "ParameterList", + "parameters": [], + "src": "753:2:24" + }, + "returnParameters": { + "id": 9956, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9955, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9960, + "src": "777:13:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9954, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "777:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "776:15:24" + }, + "scope": 9977, + "src": "740:83:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9967, + "nodeType": "Block", + "src": "996:33:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9965, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9928, + "src": "1014:7:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 9964, + "id": 9966, + "nodeType": "Return", + "src": "1007:14:24" + } + ] + }, + "documentation": "@dev Returns the symbol of the token, usually a shorter version of the\r\nname.\r", + "id": 9968, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9961, + "nodeType": "ParameterList", + "parameters": [], + "src": "957:2:24" + }, + "returnParameters": { + "id": 9964, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9963, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9968, + "src": "981:13:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9962, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "981:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "980:15:24" + }, + "scope": 9977, + "src": "942:87:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9975, + "nodeType": "Block", + "src": "1640:35:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9973, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9930, + "src": "1658:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 9972, + "id": 9974, + "nodeType": "Return", + "src": "1651:16:24" + } + ] + }, + "documentation": "@dev Returns the number of decimals used to get its user representation.\r\nFor example, if `decimals` equals `2`, a balance of `505` tokens should\r\nbe displayed to a user as `5,05` (`505 / 10 ** 2`).\r\n\n * Tokens usually opt for a value of 18, imitating the relationship between\r\nEther and Wei.\r\n\n * NOTE: This information is only used for _display_ purposes: it in\r\nno way affects any of the arithmetic of the contract, including\r\n{IERC20-balanceOf} and {IERC20-transfer}.\r", + "id": 9976, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9969, + "nodeType": "ParameterList", + "parameters": [], + "src": "1609:2:24" + }, + "returnParameters": { + "id": 9972, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9971, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9976, + "src": "1633:5:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9970, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1633:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1632:7:24" + }, + "scope": 9977, + "src": "1592:83:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 10328, + "src": "186:1492:24" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 10005, + "linearizedBaseContracts": [ + 10005 + ], + "name": "IClaimsToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": "@dev This event emits when funds to be deposited are sent to the token contract\r\n@param from contains the address of the sender of the received funds\r\n@param fundsReceived contains the amount of funds received for distribution\r", + "id": 9983, + "name": "FundsReceived", + "nodeType": "EventDefinition", + "parameters": { + "id": 9982, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9979, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 9983, + "src": "1983:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9978, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1983:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9981, + "indexed": false, + "name": "fundsReceived", + "nodeType": "VariableDeclaration", + "scope": 9983, + "src": "2005:21:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2005:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1982:45:24" + }, + "src": "1963:65:24" + }, + { + "anonymous": false, + "documentation": "@dev This event emits when distributed funds are withdrawn by a token holder.\r\n@param by contains the address of the receiver of funds\r\n@param fundsWithdrawn contains the amount of funds that were withdrawn\r", + "id": 9989, + "name": "FundsWithdrawn", + "nodeType": "EventDefinition", + "parameters": { + "id": 9988, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9985, + "indexed": true, + "name": "by", + "nodeType": "VariableDeclaration", + "scope": 9989, + "src": "2286:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9984, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2286:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9987, + "indexed": false, + "name": "fundsWithdrawn", + "nodeType": "VariableDeclaration", + "scope": 9989, + "src": "2306:22:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2306:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2285:44:24" + }, + "src": "2265:65:24" + }, + { + "body": null, + "documentation": "@dev Withdraws available funds for user.\r", + "id": 9992, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdrawFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9990, + "nodeType": "ParameterList", + "parameters": [], + "src": "2415:2:24" + }, + "returnParameters": { + "id": 9991, + "nodeType": "ParameterList", + "parameters": [], + "src": "2434:0:24" + }, + "scope": 10005, + "src": "2393:42:24", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", + "id": 9999, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "availableFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9994, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 9999, + "src": "2691:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2691:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2690:21:24" + }, + "returnParameters": { + "id": 9998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9997, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9999, + "src": "2735:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9996, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2735:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2734:9:24" + }, + "scope": 10005, + "src": "2667:77:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", + "id": 10004, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalReceivedFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10000, + "nodeType": "ParameterList", + "parameters": [], + "src": "2920:2:24" + }, + "returnParameters": { + "id": 10003, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10002, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10004, + "src": "2946:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2946:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2945:9:24" + }, + "scope": 10005, + "src": "2893:62:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 10328, + "src": "1682:1276:24" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10006, + "name": "IClaimsToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10005, + "src": "2986:12:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IClaimsToken_$10005", + "typeString": "contract IClaimsToken" + } + }, + "id": 10007, + "nodeType": "InheritanceSpecifier", + "src": "2986:12:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10008, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9650, + "src": "3000:5:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9650", + "typeString": "contract ERC20" + } + }, + "id": 10009, + "nodeType": "InheritanceSpecifier", + "src": "3000:5:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10010, + "name": "ERC20Detailed", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9977, + "src": "3007:13:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$9977", + "typeString": "contract ERC20Detailed" + } + }, + "id": 10011, + "nodeType": "InheritanceSpecifier", + "src": "3007:13:24" + } + ], + "contractDependencies": [ + 9650, + 9719, + 9977, + 10005 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 10228, + "linearizedBaseContracts": [ + 10228, + 9977, + 9650, + 9719, + 10005 + ], + "name": "ClaimsToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 10014, + "libraryName": { + "contractScope": null, + "id": 10012, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "3033:8:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "3027:27:24", + "typeName": { + "id": 10013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3046:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 10016, + "name": "receivedFunds", + "nodeType": "VariableDeclaration", + "scope": 10228, + "src": "3107:28:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10015, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3107:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 10020, + "name": "processedFunds", + "nodeType": "VariableDeclaration", + "scope": 10228, + "src": "3226:50:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 10019, + "keyType": { + "id": 10017, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3235:7:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3226:28:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 10018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3246:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 10024, + "name": "claimedFunds", + "nodeType": "VariableDeclaration", + "scope": 10228, + "src": "3332:48:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 10023, + "keyType": { + "id": 10021, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3341:7:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3332:28:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 10022, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3352:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 10050, + "nodeType": "Block", + "src": "3471:76:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10035, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10026, + "src": "3482:6:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10043, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130303030", + "id": 10036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3490:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "value": "10000" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10041, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 10037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3499:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "3138", + "id": 10039, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3513:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + } + ], + "id": 10038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3505:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 10040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3505:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3499:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10042, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3498:19:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3490:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10034, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9539, + "src": "3476:5:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 10044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3476:42:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10045, + "nodeType": "ExpressionStatement", + "src": "3476:42:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10046, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "3525:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 10047, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3541:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3525:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10049, + "nodeType": "ExpressionStatement", + "src": "3525:17:24" + } + ] + }, + "documentation": null, + "id": 10051, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "hexValue": "436c61696d73546f6b656e", + "id": 10029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3443:13:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25771c0ba9a97de4408886fe552885a1751acfa735dfd2ef9c66e7b9e8871e71", + "typeString": "literal_string \"ClaimsToken\"" + }, + "value": "ClaimsToken" + }, + { + "argumentTypes": null, + "hexValue": "435354", + "id": 10030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3458:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0626086d51c299e905c42b7a28a0add92109e49b12cb2bd2531769201453ab94", + "typeString": "literal_string \"CST\"" + }, + "value": "CST" + }, + { + "argumentTypes": null, + "hexValue": "3138", + "id": 10031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3465:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + } + ], + "id": 10032, + "modifierName": { + "argumentTypes": null, + "id": 10028, + "name": "ERC20Detailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9977, + "src": "3429:13:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$9977_$", + "typeString": "type(contract ERC20Detailed)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3429:39:24" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10026, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 10051, + "src": "3400:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10025, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3400:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3399:16:24" + }, + "returnParameters": { + "id": 10033, + "nodeType": "ParameterList", + "parameters": [], + "src": "3471:0:24" + }, + "scope": 10228, + "src": "3388:159:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 10075, + "nodeType": "Block", + "src": "3898:95:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10061, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3915:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3915:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 10060, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "3903:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3903:23:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10064, + "nodeType": "ExpressionStatement", + "src": "3903:23:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10066, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10053, + "src": "3943:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10065, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "3931:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3931:16:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10068, + "nodeType": "ExpressionStatement", + "src": "3931:16:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10071, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10053, + "src": "3976:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10072, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10055, + "src": "3981:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10069, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10490, + "src": "3961:5:24", + "typeDescriptions": { + "typeIdentifier": "t_super$_ClaimsToken_$10228", + "typeString": "contract super ClaimsToken" + } + }, + "id": 10070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9343, + "src": "3961:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" + } + }, + "id": 10073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3961:27:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 10059, + "id": 10074, + "nodeType": "Return", + "src": "3954:34:24" + } + ] + }, + "documentation": "@dev Transfer token to a specified address.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _to The address to transfer to\r\n@param _value The amount to be transferred\r", + "id": 10076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10056, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10053, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 10076, + "src": "3839:11:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10052, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3839:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10055, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10076, + "src": "3852:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10054, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3852:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3838:29:24" + }, + "returnParameters": { + "id": 10059, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10058, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10076, + "src": "3890:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10057, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3890:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3889:6:24" + }, + "scope": 10228, + "src": "3821:172:24", + "stateMutability": "nonpayable", + "superFunction": 9343, + "visibility": "public" + }, + { + "body": { + "id": 10102, + "nodeType": "Block", + "src": "4485:101:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10088, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10078, + "src": "4502:5:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10087, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "4490:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4490:18:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10090, + "nodeType": "ExpressionStatement", + "src": "4490:18:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10092, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10080, + "src": "4525:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10091, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "4513:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4513:16:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10094, + "nodeType": "ExpressionStatement", + "src": "4513:16:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10097, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10078, + "src": "4562:5:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10098, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10080, + "src": "4569:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10099, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10082, + "src": "4574:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10095, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10490, + "src": "4543:5:24", + "typeDescriptions": { + "typeIdentifier": "t_super$_ClaimsToken_$10228", + "typeString": "contract super ClaimsToken" + } + }, + "id": 10096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 9397, + "src": "4543:18:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) returns (bool)" + } + }, + "id": 10100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4543:38:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 10086, + "id": 10101, + "nodeType": "Return", + "src": "4536:45:24" + } + ] + }, + "documentation": "@dev Transfer tokens from one address to another.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _from address The address which you want to send tokens from\r\n@param _to address The address which you want to transfer to\r\n@param _value uint256 the amount of tokens to be transferred\r", + "id": 10103, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10083, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10078, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4411:13:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4411:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10080, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4426:11:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10079, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4426:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10082, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4439:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10081, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4439:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4410:44:24" + }, + "returnParameters": { + "id": 10086, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10085, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4477:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10084, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4477:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4476:6:24" + }, + "scope": 10228, + "src": "4389:197:24", + "stateMutability": "nonpayable", + "superFunction": 9397, + "visibility": "public" + }, + { + "body": { + "id": 10110, + "nodeType": "Block", + "src": "4808:30:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10108, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "4820:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10107, + "id": 10109, + "nodeType": "Return", + "src": "4813:20:24" + } + ] + }, + "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", + "id": 10111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalReceivedFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10104, + "nodeType": "ParameterList", + "parameters": [], + "src": "4762:2:24" + }, + "returnParameters": { + "id": 10107, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10106, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10111, + "src": "4797:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10105, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4797:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4796:9:24" + }, + "scope": 10228, + "src": "4735:103:24", + "stateMutability": "view", + "superFunction": 10004, + "visibility": "external" + }, + { + "body": { + "id": 10127, + "nodeType": "Block", + "src": "5156:82:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10122, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "5207:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10124, + "indexExpression": { + "argumentTypes": null, + "id": 10123, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10113, + "src": "5220:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5207:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10119, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10113, + "src": "5190:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10118, + "name": "_calcUnprocessedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10169, + "src": "5168:21:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5168:34:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "5168:38:24", + "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": 10125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5168:65:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10117, + "id": 10126, + "nodeType": "Return", + "src": "5161:72:24" + } + ] + }, + "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", + "id": 10128, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "availableFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10114, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10113, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 10128, + "src": "5094:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5094:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5093:21:24" + }, + "returnParameters": { + "id": 10117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10116, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10128, + "src": "5145:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10115, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5145:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5144:9:24" + }, + "scope": 10228, + "src": "5070:168:24", + "stateMutability": "view", + "superFunction": 9999, + "visibility": "public" + }, + { + "body": { + "id": 10140, + "nodeType": "Block", + "src": "5477:51:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10133, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "5482:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10136, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10130, + "src": "5516:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10134, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "5498:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "5498:17:24", + "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": 10137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5498:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5482:41:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10139, + "nodeType": "ExpressionStatement", + "src": "5482:41:24" + } + ] + }, + "documentation": "@dev Increments cumulative received funds by new received funds.\r\nCalled when ClaimsToken receives funds.\r\n@param _value Amount of tokens / Ether received\r", + "id": 10141, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10130, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10141, + "src": "5447:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10129, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5447:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5446:16:24" + }, + "returnParameters": { + "id": 10132, + "nodeType": "ParameterList", + "parameters": [], + "src": "5477:0:24" + }, + "scope": 10228, + "src": "5423:105:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10168, + "nodeType": "Block", + "src": "5765:158:24", + "statements": [ + { + "assignments": [ + 10149 + ], + "declarations": [ + { + "constant": false, + "id": 10149, + "name": "newReceivedFunds", + "nodeType": "VariableDeclaration", + "scope": 10168, + "src": "5770:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10148, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5770:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10156, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10152, + "name": "processedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10020, + "src": "5815:14:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10154, + "indexExpression": { + "argumentTypes": null, + "id": 10153, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10143, + "src": "5830:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5815:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10150, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "5797:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "5797:17:24", + "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": 10155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5797:46:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5770:73:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 10164, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9296, + "src": "5904:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 10165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5904:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10161, + "name": "newReceivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10149, + "src": "5882:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10158, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10143, + "src": "5865:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10157, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9308, + "src": "5855:9:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5855:22:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 9784, + "src": "5855:26:24", + "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": 10162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5855:44:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9808, + "src": "5855:48:24", + "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": 10166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5855:63:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10147, + "id": 10167, + "nodeType": "Return", + "src": "5848:70:24" + } + ] + }, + "documentation": "@dev Returns payout for a user which can be withdrawn or claimed.\r\n@param _forAddress Address of ClaimsToken holder\r", + "id": 10169, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_calcUnprocessedFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10143, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 10169, + "src": "5701:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5701:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5700:21:24" + }, + "returnParameters": { + "id": 10147, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10146, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10169, + "src": "5754:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5754:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5753:9:24" + }, + "scope": 10228, + "src": "5670:253:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10197, + "nodeType": "Block", + "src": "6080:201:24", + "statements": [ + { + "assignments": [ + 10175 + ], + "declarations": [ + { + "constant": false, + "id": 10175, + "name": "unprocessedFunds", + "nodeType": "VariableDeclaration", + "scope": 10197, + "src": "6085:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10174, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6085:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10179, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10177, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6134:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10176, + "name": "_calcUnprocessedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10169, + "src": "6112:21:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6112:34:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6085:61:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10180, + "name": "processedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10020, + "src": "6153:14:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10182, + "indexExpression": { + "argumentTypes": null, + "id": 10181, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6168:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6153:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10183, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "6183:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6153:43:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10185, + "nodeType": "ExpressionStatement", + "src": "6153:43:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10186, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "6201:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10188, + "indexExpression": { + "argumentTypes": null, + "id": 10187, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6214:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6201:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10193, + "name": "unprocessedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10175, + "src": "6259:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10189, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "6229:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10191, + "indexExpression": { + "argumentTypes": null, + "id": 10190, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6242:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6229:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "6229:29:24", + "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": 10194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6229:47:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6201:75:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10196, + "nodeType": "ExpressionStatement", + "src": "6201:75:24" + } + ] + }, + "documentation": "@dev Claims funds for a user.\r\n@param _forAddress Address of ClaimsToken holder\r", + "id": 10198, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_claimFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10172, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10171, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 10198, + "src": "6050:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10170, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6050:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6049:21:24" + }, + "returnParameters": { + "id": 10173, + "nodeType": "ParameterList", + "parameters": [], + "src": "6080:0:24" + }, + "scope": 10228, + "src": "6029:252:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10226, + "nodeType": "Block", + "src": "6575:177:24", + "statements": [ + { + "assignments": [ + 10204 + ], + "declarations": [ + { + "constant": false, + "id": 10204, + "name": "withdrawableFunds", + "nodeType": "VariableDeclaration", + "scope": 10226, + "src": "6580:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6580:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10209, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10206, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6623:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6623:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 10205, + "name": "availableFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10128, + "src": "6608:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6608:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6580:54:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10210, + "name": "processedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10020, + "src": "6641:14:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10213, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10211, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6656:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6656:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6641:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10214, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "6670:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6641:42:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10216, + "nodeType": "ExpressionStatement", + "src": "6641:42:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10217, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "6688:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10220, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10218, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6701:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6701:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6688:24:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 10221, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6715:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6688:28:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10223, + "nodeType": "ExpressionStatement", + "src": "6688:28:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10224, + "name": "withdrawableFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10204, + "src": "6730:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10202, + "id": 10225, + "nodeType": "Return", + "src": "6723:24:24" + } + ] + }, + "documentation": "@dev Sets claimed but not yet withdrawn funds to 0,\r\nmarks total received funds as processed and\r\nreturns the withdrawable amount for a user.\r\n@return A uint256 representing the withdrawable funds\r", + "id": 10227, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_prepareWithdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10199, + "nodeType": "ParameterList", + "parameters": [], + "src": "6537:2:24" + }, + "returnParameters": { + "id": 10202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10201, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10227, + "src": "6564:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10200, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6564:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6563:9:24" + }, + "scope": 10228, + "src": "6512:240:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 10328, + "src": "2962:3793:24" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10229, + "name": "IClaimsToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10005, + "src": "6797:12:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IClaimsToken_$10005", + "typeString": "contract IClaimsToken" + } + }, + "id": 10230, + "nodeType": "InheritanceSpecifier", + "src": "6797:12:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10231, + "name": "ClaimsToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10228, + "src": "6811:11:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ClaimsToken_$10228", + "typeString": "contract ClaimsToken" + } + }, + "id": 10232, + "nodeType": "InheritanceSpecifier", + "src": "6811:11:24" + } + ], + "contractDependencies": [ + 9650, + 9719, + 9977, + 10005, + 10228 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 10327, + "linearizedBaseContracts": [ + 10327, + 10228, + 9977, + 9650, + 9719, + 10005 + ], + "name": "ClaimsTokenERC20Extension", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 10234, + "name": "fundsToken", + "nodeType": "VariableDeclaration", + "scope": 10327, + "src": "6880:24:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 10233, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "6880:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 10247, + "nodeType": "Block", + "src": "6937:81:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 10242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10237, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6950:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6950:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10240, + "name": "fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10234, + "src": "6972:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + ], + "id": 10239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6964:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6964:19:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6950:33:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "554e415554484f52495a45445f53454e444552", + "id": 10243, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6985:21:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", + "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" + }, + "value": "UNAUTHORIZED_SENDER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", + "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" + } + ], + "id": 10236, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "6942:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 10244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6942:65:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10245, + "nodeType": "ExpressionStatement", + "src": "6942:65:24" + }, + { + "id": 10246, + "nodeType": "PlaceholderStatement", + "src": "7012:1:24" + } + ] + }, + "documentation": null, + "id": 10248, + "name": "onlyFundsToken", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 10235, + "nodeType": "ParameterList", + "parameters": [], + "src": "6934:2:24" + }, + "src": "6910:108:24", + "visibility": "internal" + }, + { + "body": { + "id": 10272, + "nodeType": "Block", + "src": "7106:84:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 10265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10260, + "name": "_fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10252, + "src": "7127:11:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + ], + "id": 10259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7119:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7119:20:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 10263, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7151:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 10262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7143:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10264, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7143:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7119:34:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10258, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "7111:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 10266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7111:43:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10267, + "nodeType": "ExpressionStatement", + "src": "7111:43:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10268, + "name": "fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10234, + "src": "7161:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10269, + "name": "_fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10252, + "src": "7174:11:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "src": "7161:24:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 10271, + "nodeType": "ExpressionStatement", + "src": "7161:24:24" + } + ] + }, + "documentation": null, + "id": 10273, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 10255, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10250, + "src": "7096:6:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 10256, + "modifierName": { + "argumentTypes": null, + "id": 10254, + "name": "ClaimsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10228, + "src": "7084:11:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ClaimsToken_$10228_$", + "typeString": "type(contract ClaimsToken)" + } + }, + "nodeType": "ModifierInvocation", + "src": "7084:19:24" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10250, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 10273, + "src": "7035:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10249, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7035:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10252, + "name": "_fundsToken", + "nodeType": "VariableDeclaration", + "scope": 10273, + "src": "7051:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 10251, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "7051:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7034:36:24" + }, + "returnParameters": { + "id": 10257, + "nodeType": "ParameterList", + "parameters": [], + "src": "7106:0:24" + }, + "scope": 10327, + "src": "7023:167:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 10299, + "nodeType": "Block", + "src": "7303:175:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10277, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "7316:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7316:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 10279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7329:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7316:14:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 10281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7332:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 10276, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7308:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 10282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7308:27:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10283, + "nodeType": "ExpressionStatement", + "src": "7308:27:24" + }, + { + "assignments": [ + 10285 + ], + "declarations": [ + { + "constant": false, + "id": 10285, + "name": "withdrawableFunds", + "nodeType": "VariableDeclaration", + "scope": 10299, + "src": "7342:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10284, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7342:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10288, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 10286, + "name": "_prepareWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10227, + "src": "7370:16:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () returns (uint256)" + } + }, + "id": 10287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7370:18:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7342:46:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10292, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "7423:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7423:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 10294, + "name": "withdrawableFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10285, + "src": "7435:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10290, + "name": "fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10234, + "src": "7403:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 10291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9661, + "src": "7403:19:24", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 10295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7403:50:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5452414e534645525f4641494c4544", + "id": 10296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7455:17:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", + "typeString": "literal_string \"TRANSFER_FAILED\"" + }, + "value": "TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", + "typeString": "literal_string \"TRANSFER_FAILED\"" + } + ], + "id": 10289, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7395:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 10297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7395:78:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10298, + "nodeType": "ExpressionStatement", + "src": "7395:78:24" + } + ] + }, + "documentation": "@dev Withdraws available funds for user.\r", + "id": 10300, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10274, + "nodeType": "ParameterList", + "parameters": [], + "src": "7275:2:24" + }, + "returnParameters": { + "id": 10275, + "nodeType": "ParameterList", + "parameters": [], + "src": "7303:0:24" + }, + "scope": 10327, + "src": "7253:225:24", + "stateMutability": "payable", + "superFunction": 9992, + "visibility": "external" + }, + { + "body": { + "id": 10325, + "nodeType": "Block", + "src": "7777:100:24", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10311, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7786:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 10312, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7795:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7786:10:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 10324, + "nodeType": "IfStatement", + "src": "7782:91:24", + "trueBody": { + "id": 10323, + "nodeType": "Block", + "src": "7798:75:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10315, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7819:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10314, + "name": "_registerFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10141, + "src": "7804:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 10316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7804:22:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10317, + "nodeType": "ExpressionStatement", + "src": "7804:22:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10319, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10302, + "src": "7851:7:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10320, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7860:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10318, + "name": "FundsReceived", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9983, + "src": "7837:13:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 10321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7837:30:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10322, + "nodeType": "EmitStatement", + "src": "7832:35:24" + } + ] + } + } + ] + }, + "documentation": "@dev For ERC223.\r\nCalls _registerFunds(), whereby total received funds (cumulative) gets updated.\r\n@param _sender Sender of tokens\r\n@param _value Amount of tokens\r", + "id": 10326, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [], + "id": 10309, + "modifierName": { + "argumentTypes": null, + "id": 10308, + "name": "onlyFundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10248, + "src": "7758:14:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7758:16:24" + } + ], + "name": "tokenFallback", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10302, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 10326, + "src": "7698:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10301, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7698:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10304, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10326, + "src": "7715:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10303, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7715:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10306, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10326, + "src": "7731:12:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 10305, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7731:5:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7697:47:24" + }, + "returnParameters": { + "id": 10310, + "nodeType": "ParameterList", + "parameters": [], + "src": "7777:0:24" + }, + "scope": 10327, + "src": "7675:202:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 10328, + "src": "6759:1121:24" + } + ], + "src": "0:7882:24" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol", + "exportedSymbols": { + "ClaimsToken": [ + 10228 + ], + "ClaimsTokenERC20Extension": [ + 10327 + ], + "ERC20Detailed": [ + 9977 + ], + "IClaimsToken": [ + 10005 + ] + }, + "id": 10328, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9919, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:24" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "../oz/SafeMath.sol", + "id": 9920, + "nodeType": "ImportDirective", + "scope": 10328, + "sourceUnit": 9858, + "src": "36:28:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", + "file": "../oz/IERC20.sol", + "id": 9921, + "nodeType": "ImportDirective", + "scope": 10328, + "sourceUnit": 9720, + "src": "66:26:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol", + "file": "../oz/ERC20.sol", + "id": 9922, + "nodeType": "ImportDirective", + "scope": 10328, + "sourceUnit": 9651, + "src": "94:25:24", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 9923, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "212:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 9924, + "nodeType": "InheritanceSpecifier", + "src": "212:6:24" + } + ], + "contractDependencies": [ + 9719 + ], + "contractKind": "contract", + "documentation": "@dev Optional functions from the ERC20 standard.\r", + "fullyImplemented": false, + "id": 9977, + "linearizedBaseContracts": [ + 9977, + 9719 + ], + "name": "ERC20Detailed", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 9926, + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 9977, + "src": "226:20:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 9925, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "226:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 9928, + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 9977, + "src": "253:22:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 9927, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "253:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 9930, + "name": "_decimals", + "nodeType": "VariableDeclaration", + "scope": 9977, + "src": "282:23:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9929, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "282:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 9951, + "nodeType": "Block", + "src": "581:89:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9939, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9926, + "src": "592:5:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9940, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9932, + "src": "600:4:24", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "592:12:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 9942, + "nodeType": "ExpressionStatement", + "src": "592:12:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 9945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9943, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9928, + "src": "615:7:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9944, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9934, + "src": "625:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "615:16:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 9946, + "nodeType": "ExpressionStatement", + "src": "615:16:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 9949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9947, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9930, + "src": "642:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 9948, + "name": "decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9936, + "src": "654:8:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "642:20:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 9950, + "nodeType": "ExpressionStatement", + "src": "642:20:24" + } + ] + }, + "documentation": "@dev Sets the values for `name`, `symbol`, and `decimals`. All three of\r\nthese values are immutable: they can only be set once during\r\nconstruction.\r", + "id": 9952, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9937, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9932, + "name": "name", + "nodeType": "VariableDeclaration", + "scope": 9952, + "src": "516:18:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9931, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "516:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9934, + "name": "symbol", + "nodeType": "VariableDeclaration", + "scope": 9952, + "src": "536:20:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9933, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "536:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9936, + "name": "decimals", + "nodeType": "VariableDeclaration", + "scope": 9952, + "src": "558:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9935, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "558:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "515:58:24" + }, + "returnParameters": { + "id": 9938, + "nodeType": "ParameterList", + "parameters": [], + "src": "581:0:24" + }, + "scope": 9977, + "src": "503:167:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9959, + "nodeType": "Block", + "src": "792:31:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9957, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9926, + "src": "810:5:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 9956, + "id": 9958, + "nodeType": "Return", + "src": "803:12:24" + } + ] + }, + "documentation": "@dev Returns the name of the token.\r", + "id": 9960, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9953, + "nodeType": "ParameterList", + "parameters": [], + "src": "753:2:24" + }, + "returnParameters": { + "id": 9956, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9955, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9960, + "src": "777:13:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9954, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "777:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "776:15:24" + }, + "scope": 9977, + "src": "740:83:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9967, + "nodeType": "Block", + "src": "996:33:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9965, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9928, + "src": "1014:7:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 9964, + "id": 9966, + "nodeType": "Return", + "src": "1007:14:24" + } + ] + }, + "documentation": "@dev Returns the symbol of the token, usually a shorter version of the\r\nname.\r", + "id": 9968, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9961, + "nodeType": "ParameterList", + "parameters": [], + "src": "957:2:24" + }, + "returnParameters": { + "id": 9964, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9963, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9968, + "src": "981:13:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9962, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "981:6:24", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "980:15:24" + }, + "scope": 9977, + "src": "942:87:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9975, + "nodeType": "Block", + "src": "1640:35:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9973, + "name": "_decimals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9930, + "src": "1658:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 9972, + "id": 9974, + "nodeType": "Return", + "src": "1651:16:24" + } + ] + }, + "documentation": "@dev Returns the number of decimals used to get its user representation.\r\nFor example, if `decimals` equals `2`, a balance of `505` tokens should\r\nbe displayed to a user as `5,05` (`505 / 10 ** 2`).\r\n\n * Tokens usually opt for a value of 18, imitating the relationship between\r\nEther and Wei.\r\n\n * NOTE: This information is only used for _display_ purposes: it in\r\nno way affects any of the arithmetic of the contract, including\r\n{IERC20-balanceOf} and {IERC20-transfer}.\r", + "id": 9976, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "decimals", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9969, + "nodeType": "ParameterList", + "parameters": [], + "src": "1609:2:24" + }, + "returnParameters": { + "id": 9972, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9971, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9976, + "src": "1633:5:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9970, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1633:5:24", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1632:7:24" + }, + "scope": 9977, + "src": "1592:83:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 10328, + "src": "186:1492:24" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 10005, + "linearizedBaseContracts": [ + 10005 + ], + "name": "IClaimsToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": "@dev This event emits when funds to be deposited are sent to the token contract\r\n@param from contains the address of the sender of the received funds\r\n@param fundsReceived contains the amount of funds received for distribution\r", + "id": 9983, + "name": "FundsReceived", + "nodeType": "EventDefinition", + "parameters": { + "id": 9982, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9979, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 9983, + "src": "1983:20:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9978, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1983:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9981, + "indexed": false, + "name": "fundsReceived", + "nodeType": "VariableDeclaration", + "scope": 9983, + "src": "2005:21:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9980, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2005:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1982:45:24" + }, + "src": "1963:65:24" + }, + { + "anonymous": false, + "documentation": "@dev This event emits when distributed funds are withdrawn by a token holder.\r\n@param by contains the address of the receiver of funds\r\n@param fundsWithdrawn contains the amount of funds that were withdrawn\r", + "id": 9989, + "name": "FundsWithdrawn", + "nodeType": "EventDefinition", + "parameters": { + "id": 9988, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9985, + "indexed": true, + "name": "by", + "nodeType": "VariableDeclaration", + "scope": 9989, + "src": "2286:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9984, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2286:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9987, + "indexed": false, + "name": "fundsWithdrawn", + "nodeType": "VariableDeclaration", + "scope": 9989, + "src": "2306:22:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2306:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2285:44:24" + }, + "src": "2265:65:24" + }, + { + "body": null, + "documentation": "@dev Withdraws available funds for user.\r", + "id": 9992, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "withdrawFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9990, + "nodeType": "ParameterList", + "parameters": [], + "src": "2415:2:24" + }, + "returnParameters": { + "id": 9991, + "nodeType": "ParameterList", + "parameters": [], + "src": "2434:0:24" + }, + "scope": 10005, + "src": "2393:42:24", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", + "id": 9999, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "availableFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9994, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 9999, + "src": "2691:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2691:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2690:21:24" + }, + "returnParameters": { + "id": 9998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9997, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9999, + "src": "2735:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9996, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2735:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2734:9:24" + }, + "scope": 10005, + "src": "2667:77:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", + "id": 10004, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalReceivedFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10000, + "nodeType": "ParameterList", + "parameters": [], + "src": "2920:2:24" + }, + "returnParameters": { + "id": 10003, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10002, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10004, + "src": "2946:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10001, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2946:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2945:9:24" + }, + "scope": 10005, + "src": "2893:62:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 10328, + "src": "1682:1276:24" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10006, + "name": "IClaimsToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10005, + "src": "2986:12:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IClaimsToken_$10005", + "typeString": "contract IClaimsToken" + } + }, + "id": 10007, + "nodeType": "InheritanceSpecifier", + "src": "2986:12:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10008, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9650, + "src": "3000:5:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9650", + "typeString": "contract ERC20" + } + }, + "id": 10009, + "nodeType": "InheritanceSpecifier", + "src": "3000:5:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10010, + "name": "ERC20Detailed", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9977, + "src": "3007:13:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Detailed_$9977", + "typeString": "contract ERC20Detailed" + } + }, + "id": 10011, + "nodeType": "InheritanceSpecifier", + "src": "3007:13:24" + } + ], + "contractDependencies": [ + 9650, + 9719, + 9977, + 10005 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": false, + "id": 10228, + "linearizedBaseContracts": [ + 10228, + 9977, + 9650, + 9719, + 10005 + ], + "name": "ClaimsToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 10014, + "libraryName": { + "contractScope": null, + "id": 10012, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "3033:8:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "3027:27:24", + "typeName": { + "id": 10013, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3046:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 10016, + "name": "receivedFunds", + "nodeType": "VariableDeclaration", + "scope": 10228, + "src": "3107:28:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10015, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3107:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 10020, + "name": "processedFunds", + "nodeType": "VariableDeclaration", + "scope": 10228, + "src": "3226:50:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 10019, + "keyType": { + "id": 10017, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3235:7:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3226:28:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 10018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3246:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 10024, + "name": "claimedFunds", + "nodeType": "VariableDeclaration", + "scope": 10228, + "src": "3332:48:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 10023, + "keyType": { + "id": 10021, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3341:7:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "3332:28:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 10022, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3352:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 10050, + "nodeType": "Block", + "src": "3471:76:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10035, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10026, + "src": "3482:6:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10043, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130303030", + "id": 10036, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3490:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10000_by_1", + "typeString": "int_const 10000" + }, + "value": "10000" + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10041, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 10037, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3499:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "3138", + "id": 10039, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3513:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + } + ], + "id": 10038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3505:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": "uint256" + }, + "id": 10040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3505:11:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3499:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 10042, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3498:19:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3490:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10034, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9539, + "src": "3476:5:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 10044, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3476:42:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10045, + "nodeType": "ExpressionStatement", + "src": "3476:42:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10048, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10046, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "3525:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 10047, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3541:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "3525:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10049, + "nodeType": "ExpressionStatement", + "src": "3525:17:24" + } + ] + }, + "documentation": null, + "id": 10051, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "hexValue": "436c61696d73546f6b656e", + "id": 10029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3443:13:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_25771c0ba9a97de4408886fe552885a1751acfa735dfd2ef9c66e7b9e8871e71", + "typeString": "literal_string \"ClaimsToken\"" + }, + "value": "ClaimsToken" + }, + { + "argumentTypes": null, + "hexValue": "435354", + "id": 10030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3458:5:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0626086d51c299e905c42b7a28a0add92109e49b12cb2bd2531769201453ab94", + "typeString": "literal_string \"CST\"" + }, + "value": "CST" + }, + { + "argumentTypes": null, + "hexValue": "3138", + "id": 10031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3465:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + } + ], + "id": 10032, + "modifierName": { + "argumentTypes": null, + "id": 10028, + "name": "ERC20Detailed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9977, + "src": "3429:13:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$9977_$", + "typeString": "type(contract ERC20Detailed)" + } + }, + "nodeType": "ModifierInvocation", + "src": "3429:39:24" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10026, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 10051, + "src": "3400:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10025, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3400:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3399:16:24" + }, + "returnParameters": { + "id": 10033, + "nodeType": "ParameterList", + "parameters": [], + "src": "3471:0:24" + }, + "scope": 10228, + "src": "3388:159:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 10075, + "nodeType": "Block", + "src": "3898:95:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10061, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "3915:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3915:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 10060, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "3903:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3903:23:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10064, + "nodeType": "ExpressionStatement", + "src": "3903:23:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10066, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10053, + "src": "3943:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10065, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "3931:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3931:16:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10068, + "nodeType": "ExpressionStatement", + "src": "3931:16:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10071, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10053, + "src": "3976:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10072, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10055, + "src": "3981:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10069, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10490, + "src": "3961:5:24", + "typeDescriptions": { + "typeIdentifier": "t_super$_ClaimsToken_$10228", + "typeString": "contract super ClaimsToken" + } + }, + "id": 10070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9343, + "src": "3961:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" + } + }, + "id": 10073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3961:27:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 10059, + "id": 10074, + "nodeType": "Return", + "src": "3954:34:24" + } + ] + }, + "documentation": "@dev Transfer token to a specified address.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _to The address to transfer to\r\n@param _value The amount to be transferred\r", + "id": 10076, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10056, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10053, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 10076, + "src": "3839:11:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10052, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3839:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10055, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10076, + "src": "3852:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10054, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3852:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3838:29:24" + }, + "returnParameters": { + "id": 10059, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10058, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10076, + "src": "3890:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10057, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3890:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3889:6:24" + }, + "scope": 10228, + "src": "3821:172:24", + "stateMutability": "nonpayable", + "superFunction": 9343, + "visibility": "public" + }, + { + "body": { + "id": 10102, + "nodeType": "Block", + "src": "4485:101:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10088, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10078, + "src": "4502:5:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10087, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "4490:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10089, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4490:18:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10090, + "nodeType": "ExpressionStatement", + "src": "4490:18:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10092, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10080, + "src": "4525:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10091, + "name": "_claimFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10198, + "src": "4513:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", + "typeString": "function (address)" + } + }, + "id": 10093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4513:16:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10094, + "nodeType": "ExpressionStatement", + "src": "4513:16:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10097, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10078, + "src": "4562:5:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10098, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10080, + "src": "4569:3:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10099, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10082, + "src": "4574:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10095, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10490, + "src": "4543:5:24", + "typeDescriptions": { + "typeIdentifier": "t_super$_ClaimsToken_$10228", + "typeString": "contract super ClaimsToken" + } + }, + "id": 10096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 9397, + "src": "4543:18:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) returns (bool)" + } + }, + "id": 10100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4543:38:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 10086, + "id": 10101, + "nodeType": "Return", + "src": "4536:45:24" + } + ] + }, + "documentation": "@dev Transfer tokens from one address to another.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _from address The address which you want to send tokens from\r\n@param _to address The address which you want to transfer to\r\n@param _value uint256 the amount of tokens to be transferred\r", + "id": 10103, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10083, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10078, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4411:13:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10077, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4411:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10080, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4426:11:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10079, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4426:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10082, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4439:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10081, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4439:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4410:44:24" + }, + "returnParameters": { + "id": 10086, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10085, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10103, + "src": "4477:4:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10084, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4477:4:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4476:6:24" + }, + "scope": 10228, + "src": "4389:197:24", + "stateMutability": "nonpayable", + "superFunction": 9397, + "visibility": "public" + }, + { + "body": { + "id": 10110, + "nodeType": "Block", + "src": "4808:30:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10108, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "4820:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10107, + "id": 10109, + "nodeType": "Return", + "src": "4813:20:24" + } + ] + }, + "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", + "id": 10111, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalReceivedFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10104, + "nodeType": "ParameterList", + "parameters": [], + "src": "4762:2:24" + }, + "returnParameters": { + "id": 10107, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10106, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10111, + "src": "4797:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10105, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4797:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4796:9:24" + }, + "scope": 10228, + "src": "4735:103:24", + "stateMutability": "view", + "superFunction": 10004, + "visibility": "external" + }, + { + "body": { + "id": 10127, + "nodeType": "Block", + "src": "5156:82:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10122, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "5207:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10124, + "indexExpression": { + "argumentTypes": null, + "id": 10123, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10113, + "src": "5220:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5207:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10119, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10113, + "src": "5190:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10118, + "name": "_calcUnprocessedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10169, + "src": "5168:21:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5168:34:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "5168:38:24", + "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": 10125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5168:65:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10117, + "id": 10126, + "nodeType": "Return", + "src": "5161:72:24" + } + ] + }, + "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", + "id": 10128, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "availableFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10114, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10113, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 10128, + "src": "5094:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10112, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5094:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5093:21:24" + }, + "returnParameters": { + "id": 10117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10116, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10128, + "src": "5145:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10115, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5145:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5144:9:24" + }, + "scope": 10228, + "src": "5070:168:24", + "stateMutability": "view", + "superFunction": 9999, + "visibility": "public" + }, + { + "body": { + "id": 10140, + "nodeType": "Block", + "src": "5477:51:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10133, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "5482:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10136, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10130, + "src": "5516:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10134, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "5498:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "5498:17:24", + "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": 10137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5498:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5482:41:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10139, + "nodeType": "ExpressionStatement", + "src": "5482:41:24" + } + ] + }, + "documentation": "@dev Increments cumulative received funds by new received funds.\r\nCalled when ClaimsToken receives funds.\r\n@param _value Amount of tokens / Ether received\r", + "id": 10141, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10130, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10141, + "src": "5447:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10129, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5447:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5446:16:24" + }, + "returnParameters": { + "id": 10132, + "nodeType": "ParameterList", + "parameters": [], + "src": "5477:0:24" + }, + "scope": 10228, + "src": "5423:105:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10168, + "nodeType": "Block", + "src": "5765:158:24", + "statements": [ + { + "assignments": [ + 10149 + ], + "declarations": [ + { + "constant": false, + "id": 10149, + "name": "newReceivedFunds", + "nodeType": "VariableDeclaration", + "scope": 10168, + "src": "5770:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10148, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5770:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10156, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10152, + "name": "processedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10020, + "src": "5815:14:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10154, + "indexExpression": { + "argumentTypes": null, + "id": 10153, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10143, + "src": "5830:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5815:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10150, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "5797:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "5797:17:24", + "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": 10155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5797:46:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5770:73:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 10164, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9296, + "src": "5904:11:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 10165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5904:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10161, + "name": "newReceivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10149, + "src": "5882:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10158, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10143, + "src": "5865:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10157, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9308, + "src": "5855:9:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10159, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5855:22:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mul", + "nodeType": "MemberAccess", + "referencedDeclaration": 9784, + "src": "5855:26:24", + "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": 10162, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5855:44:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10163, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9808, + "src": "5855:48:24", + "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": 10166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5855:63:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10147, + "id": 10167, + "nodeType": "Return", + "src": "5848:70:24" + } + ] + }, + "documentation": "@dev Returns payout for a user which can be withdrawn or claimed.\r\n@param _forAddress Address of ClaimsToken holder\r", + "id": 10169, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_calcUnprocessedFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10143, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 10169, + "src": "5701:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5701:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5700:21:24" + }, + "returnParameters": { + "id": 10147, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10146, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10169, + "src": "5754:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5754:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5753:9:24" + }, + "scope": 10228, + "src": "5670:253:24", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10197, + "nodeType": "Block", + "src": "6080:201:24", + "statements": [ + { + "assignments": [ + 10175 + ], + "declarations": [ + { + "constant": false, + "id": 10175, + "name": "unprocessedFunds", + "nodeType": "VariableDeclaration", + "scope": 10197, + "src": "6085:24:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10174, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6085:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10179, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10177, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6134:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 10176, + "name": "_calcUnprocessedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10169, + "src": "6112:21:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6112:34:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6085:61:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10184, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10180, + "name": "processedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10020, + "src": "6153:14:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10182, + "indexExpression": { + "argumentTypes": null, + "id": 10181, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6168:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6153:27:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10183, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "6183:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6153:43:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10185, + "nodeType": "ExpressionStatement", + "src": "6153:43:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10186, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "6201:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10188, + "indexExpression": { + "argumentTypes": null, + "id": 10187, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6214:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6201:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10193, + "name": "unprocessedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10175, + "src": "6259:16:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10189, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "6229:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10191, + "indexExpression": { + "argumentTypes": null, + "id": 10190, + "name": "_forAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10171, + "src": "6242:11:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6229:25:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "6229:29:24", + "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": 10194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6229:47:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6201:75:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10196, + "nodeType": "ExpressionStatement", + "src": "6201:75:24" + } + ] + }, + "documentation": "@dev Claims funds for a user.\r\n@param _forAddress Address of ClaimsToken holder\r", + "id": 10198, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_claimFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10172, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10171, + "name": "_forAddress", + "nodeType": "VariableDeclaration", + "scope": 10198, + "src": "6050:19:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10170, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6050:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6049:21:24" + }, + "returnParameters": { + "id": 10173, + "nodeType": "ParameterList", + "parameters": [], + "src": "6080:0:24" + }, + "scope": 10228, + "src": "6029:252:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 10226, + "nodeType": "Block", + "src": "6575:177:24", + "statements": [ + { + "assignments": [ + 10204 + ], + "declarations": [ + { + "constant": false, + "id": 10204, + "name": "withdrawableFunds", + "nodeType": "VariableDeclaration", + "scope": 10226, + "src": "6580:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6580:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10209, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10206, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6623:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6623:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 10205, + "name": "availableFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10128, + "src": "6608:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 10208, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6608:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6580:54:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10210, + "name": "processedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10020, + "src": "6641:14:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10213, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10211, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6656:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6656:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6641:26:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10214, + "name": "receivedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10016, + "src": "6670:13:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6641:42:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10216, + "nodeType": "ExpressionStatement", + "src": "6641:42:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 10217, + "name": "claimedFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10024, + "src": "6688:12:24", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 10220, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10218, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6701:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6701:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6688:24:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "30", + "id": 10221, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6715:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6688:28:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 10223, + "nodeType": "ExpressionStatement", + "src": "6688:28:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10224, + "name": "withdrawableFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10204, + "src": "6730:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 10202, + "id": 10225, + "nodeType": "Return", + "src": "6723:24:24" + } + ] + }, + "documentation": "@dev Sets claimed but not yet withdrawn funds to 0,\r\nmarks total received funds as processed and\r\nreturns the withdrawable amount for a user.\r\n@return A uint256 representing the withdrawable funds\r", + "id": 10227, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_prepareWithdraw", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10199, + "nodeType": "ParameterList", + "parameters": [], + "src": "6537:2:24" + }, + "returnParameters": { + "id": 10202, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10201, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10227, + "src": "6564:7:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10200, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6564:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6563:9:24" + }, + "scope": 10228, + "src": "6512:240:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 10328, + "src": "2962:3793:24" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10229, + "name": "IClaimsToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10005, + "src": "6797:12:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IClaimsToken_$10005", + "typeString": "contract IClaimsToken" + } + }, + "id": 10230, + "nodeType": "InheritanceSpecifier", + "src": "6797:12:24" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10231, + "name": "ClaimsToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 10228, + "src": "6811:11:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ClaimsToken_$10228", + "typeString": "contract ClaimsToken" + } + }, + "id": 10232, + "nodeType": "InheritanceSpecifier", + "src": "6811:11:24" + } + ], + "contractDependencies": [ + 9650, + 9719, + 9977, + 10005, + 10228 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 10327, + "linearizedBaseContracts": [ + 10327, + 10228, + 9977, + 9650, + 9719, + 10005 + ], + "name": "ClaimsTokenERC20Extension", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 10234, + "name": "fundsToken", + "nodeType": "VariableDeclaration", + "scope": 10327, + "src": "6880:24:24", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 10233, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "6880:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 10247, + "nodeType": "Block", + "src": "6937:81:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 10242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10237, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6950:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6950:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10240, + "name": "fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10234, + "src": "6972:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + ], + "id": 10239, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6964:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6964:19:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "6950:33:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "554e415554484f52495a45445f53454e444552", + "id": 10243, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6985:21:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", + "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" + }, + "value": "UNAUTHORIZED_SENDER" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", + "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" + } + ], + "id": 10236, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "6942:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 10244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6942:65:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10245, + "nodeType": "ExpressionStatement", + "src": "6942:65:24" + }, + { + "id": 10246, + "nodeType": "PlaceholderStatement", + "src": "7012:1:24" + } + ] + }, + "documentation": null, + "id": 10248, + "name": "onlyFundsToken", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 10235, + "nodeType": "ParameterList", + "parameters": [], + "src": "6934:2:24" + }, + "src": "6910:108:24", + "visibility": "internal" + }, + { + "body": { + "id": 10272, + "nodeType": "Block", + "src": "7106:84:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 10265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10260, + "name": "_fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10252, + "src": "7127:11:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + ], + "id": 10259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7119:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7119:20:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 10263, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7151:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 10262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7143:7:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 10264, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7143:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7119:34:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10258, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "7111:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 10266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7111:43:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10267, + "nodeType": "ExpressionStatement", + "src": "7111:43:24" + }, + { + "expression": { + "argumentTypes": null, + "id": 10270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10268, + "name": "fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10234, + "src": "7161:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10269, + "name": "_fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10252, + "src": "7174:11:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "src": "7161:24:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 10271, + "nodeType": "ExpressionStatement", + "src": "7161:24:24" + } + ] + }, + "documentation": null, + "id": 10273, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 10255, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10250, + "src": "7096:6:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 10256, + "modifierName": { + "argumentTypes": null, + "id": 10254, + "name": "ClaimsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10228, + "src": "7084:11:24", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ClaimsToken_$10228_$", + "typeString": "type(contract ClaimsToken)" + } + }, + "nodeType": "ModifierInvocation", + "src": "7084:19:24" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10250, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 10273, + "src": "7035:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10249, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7035:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10252, + "name": "_fundsToken", + "nodeType": "VariableDeclaration", + "scope": 10273, + "src": "7051:18:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 10251, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "7051:6:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7034:36:24" + }, + "returnParameters": { + "id": 10257, + "nodeType": "ParameterList", + "parameters": [], + "src": "7106:0:24" + }, + "scope": 10327, + "src": "7023:167:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 10299, + "nodeType": "Block", + "src": "7303:175:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10277, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "7316:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7316:9:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 10279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7329:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7316:14:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 10281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7332:2:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 10276, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7308:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 10282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7308:27:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10283, + "nodeType": "ExpressionStatement", + "src": "7308:27:24" + }, + { + "assignments": [ + 10285 + ], + "declarations": [ + { + "constant": false, + "id": 10285, + "name": "withdrawableFunds", + "nodeType": "VariableDeclaration", + "scope": 10299, + "src": "7342:25:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10284, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7342:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 10288, + "initialValue": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 10286, + "name": "_prepareWithdraw", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10227, + "src": "7370:16:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_uint256_$", + "typeString": "function () returns (uint256)" + } + }, + "id": 10287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7370:18:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7342:46:24" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10292, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "7423:3:24", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7423:10:24", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 10294, + "name": "withdrawableFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10285, + "src": "7435:17:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10290, + "name": "fundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10234, + "src": "7403:10:24", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 10291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9661, + "src": "7403:19:24", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 10295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7403:50:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5452414e534645525f4641494c4544", + "id": 10296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7455:17:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", + "typeString": "literal_string \"TRANSFER_FAILED\"" + }, + "value": "TRANSFER_FAILED" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", + "typeString": "literal_string \"TRANSFER_FAILED\"" + } + ], + "id": 10289, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7395:7:24", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 10297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7395:78:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10298, + "nodeType": "ExpressionStatement", + "src": "7395:78:24" + } + ] + }, + "documentation": "@dev Withdraws available funds for user.\r", + "id": 10300, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawFunds", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10274, + "nodeType": "ParameterList", + "parameters": [], + "src": "7275:2:24" + }, + "returnParameters": { + "id": 10275, + "nodeType": "ParameterList", + "parameters": [], + "src": "7303:0:24" + }, + "scope": 10327, + "src": "7253:225:24", + "stateMutability": "payable", + "superFunction": 9992, + "visibility": "external" + }, + { + "body": { + "id": 10325, + "nodeType": "Block", + "src": "7777:100:24", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 10313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 10311, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7786:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 10312, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7795:1:24", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7786:10:24", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 10324, + "nodeType": "IfStatement", + "src": "7782:91:24", + "trueBody": { + "id": 10323, + "nodeType": "Block", + "src": "7798:75:24", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10315, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7819:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10314, + "name": "_registerFunds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10141, + "src": "7804:14:24", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 10316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7804:22:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10317, + "nodeType": "ExpressionStatement", + "src": "7804:22:24" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10319, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10302, + "src": "7851:7:24", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10320, + "name": "_value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10304, + "src": "7860:6:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10318, + "name": "FundsReceived", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9983, + "src": "7837:13:24", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 10321, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7837:30:24", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10322, + "nodeType": "EmitStatement", + "src": "7832:35:24" + } + ] + } + } + ] + }, + "documentation": "@dev For ERC223.\r\nCalls _registerFunds(), whereby total received funds (cumulative) gets updated.\r\n@param _sender Sender of tokens\r\n@param _value Amount of tokens\r", + "id": 10326, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [], + "id": 10309, + "modifierName": { + "argumentTypes": null, + "id": 10308, + "name": "onlyFundsToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10248, + "src": "7758:14:24", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "7758:16:24" + } + ], + "name": "tokenFallback", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10302, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 10326, + "src": "7698:15:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10301, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7698:7:24", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10304, + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 10326, + "src": "7715:14:24", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10303, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7715:7:24", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10306, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10326, + "src": "7731:12:24", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 10305, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "7731:5:24", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "7697:47:24" + }, + "returnParameters": { + "id": 10310, + "nodeType": "ParameterList", + "parameters": [], + "src": "7777:0:24" + }, + "scope": 10327, + "src": "7675:202:24", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 10328, + "src": "6759:1121:24" + } + ], + "src": "0:7882:24" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:20.309Z", + "devdoc": { + "methods": { + "availableFunds(address)": { + "details": "Returns the amount of funds a given address is able to withdraw currently.\r", + "params": { + "_forAddress": "Address of ClaimsToken holder\r" + }, + "return": "A uint256 representing the available funds for a given account\r" + }, + "totalReceivedFunds()": { + "details": "Get cumulative funds received by ClaimsToken.\r", + "return": "A uint256 representing the total funds received by ClaimsToken\r" + }, + "withdrawFunds()": { + "details": "Withdraws available funds for user.\r" + } + } + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/contracts/IERC20.json b/src/contracts/IERC20.json new file mode 100644 index 0000000..140bad8 --- /dev/null +++ b/src/contracts/IERC20.json @@ -0,0 +1,1864 @@ +{ + "contractName": "IERC20", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "who", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"who\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity ^0.5.2;\r\n\r\ninterface IERC20 {\r\n function transfer(address to, uint256 value) external returns (bool);\r\n\r\n function approve(address spender, uint256 value) external returns (bool);\r\n\r\n function transferFrom(address from, address to, uint256 value) external returns (bool);\r\n\r\n function totalSupply() external view returns (uint256);\r\n\r\n function balanceOf(address who) external view returns (uint256);\r\n\r\n function allowance(address owner, address spender) external view returns (uint256);\r\n\r\n event Transfer(address indexed from, address indexed to, uint256 value);\r\n\r\n event Approval(address indexed owner, address indexed spender, uint256 value);\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\oz\\IERC20.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", + "exportedSymbols": { + "IERC20": [ + 9719 + ] + }, + "id": 9720, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9652, + "literals": [ + "solidity", + "^", + "0.5", + ".2" + ], + "nodeType": "PragmaDirective", + "src": "0:23:20" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 9719, + "linearizedBaseContracts": [ + 9719 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 9661, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9654, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 9661, + "src": "69:10:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9653, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "69:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9656, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9661, + "src": "81:13:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9655, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "81:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "68:27:20" + }, + "returnParameters": { + "id": 9660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9659, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9661, + "src": "114:4:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9658, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "114:4:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "113:6:20" + }, + "scope": 9719, + "src": "51:69:20", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 9670, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9666, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9663, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 9670, + "src": "145:15:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "145:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9665, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9670, + "src": "162:13:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9664, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "162:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "144:32:20" + }, + "returnParameters": { + "id": 9669, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9668, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9670, + "src": "195:4:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9667, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "195:4:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "194:6:20" + }, + "scope": 9719, + "src": "128:73:20", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 9681, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9677, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9672, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 9681, + "src": "231:12:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "231:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9674, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 9681, + "src": "245:10:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9673, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "245:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9676, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9681, + "src": "257:13:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9675, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "257:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "230:41:20" + }, + "returnParameters": { + "id": 9680, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9679, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9681, + "src": "290:4:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9678, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "290:4:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "289:6:20" + }, + "scope": 9719, + "src": "209:87:20", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 9686, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9682, + "nodeType": "ParameterList", + "parameters": [], + "src": "324:2:20" + }, + "returnParameters": { + "id": 9685, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9684, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9686, + "src": "350:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9683, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "350:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "349:9:20" + }, + "scope": 9719, + "src": "304:55:20", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 9693, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9689, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9688, + "name": "who", + "nodeType": "VariableDeclaration", + "scope": 9693, + "src": "386:11:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9687, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "386:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "385:13:20" + }, + "returnParameters": { + "id": 9692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9691, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9693, + "src": "422:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9690, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "422:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "421:9:20" + }, + "scope": 9719, + "src": "367:64:20", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 9702, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9698, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9695, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 9702, + "src": "458:13:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "458:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9697, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 9702, + "src": "473:15:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9696, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "473:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "457:32:20" + }, + "returnParameters": { + "id": 9701, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9700, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9702, + "src": "513:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9699, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "513:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "512:9:20" + }, + "scope": 9719, + "src": "439:83:20", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "anonymous": false, + "documentation": null, + "id": 9710, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 9709, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9704, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 9710, + "src": "545:20:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9703, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "545:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9706, + "indexed": true, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 9710, + "src": "567:18:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9705, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "567:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9708, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9710, + "src": "587:13:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9707, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "587:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "544:57:20" + }, + "src": "530:72:20" + }, + { + "anonymous": false, + "documentation": null, + "id": 9718, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 9717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9712, + "indexed": true, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 9718, + "src": "625:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9711, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "625:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9714, + "indexed": true, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 9718, + "src": "648:23:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9713, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "648:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9716, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9718, + "src": "673:13:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "673:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "624:63:20" + }, + "src": "610:78:20" + } + ], + "scope": 9720, + "src": "27:664:20" + } + ], + "src": "0:693:20" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", + "exportedSymbols": { + "IERC20": [ + 9719 + ] + }, + "id": 9720, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9652, + "literals": [ + "solidity", + "^", + "0.5", + ".2" + ], + "nodeType": "PragmaDirective", + "src": "0:23:20" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 9719, + "linearizedBaseContracts": [ + 9719 + ], + "name": "IERC20", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 9661, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9657, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9654, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 9661, + "src": "69:10:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9653, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "69:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9656, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9661, + "src": "81:13:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9655, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "81:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "68:27:20" + }, + "returnParameters": { + "id": 9660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9659, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9661, + "src": "114:4:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9658, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "114:4:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "113:6:20" + }, + "scope": 9719, + "src": "51:69:20", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 9670, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9666, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9663, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 9670, + "src": "145:15:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "145:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9665, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9670, + "src": "162:13:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9664, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "162:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "144:32:20" + }, + "returnParameters": { + "id": 9669, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9668, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9670, + "src": "195:4:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9667, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "195:4:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "194:6:20" + }, + "scope": 9719, + "src": "128:73:20", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 9681, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9677, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9672, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 9681, + "src": "231:12:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "231:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9674, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 9681, + "src": "245:10:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9673, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "245:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9676, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9681, + "src": "257:13:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9675, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "257:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "230:41:20" + }, + "returnParameters": { + "id": 9680, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9679, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9681, + "src": "290:4:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9678, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "290:4:20", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "289:6:20" + }, + "scope": 9719, + "src": "209:87:20", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 9686, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9682, + "nodeType": "ParameterList", + "parameters": [], + "src": "324:2:20" + }, + "returnParameters": { + "id": 9685, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9684, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9686, + "src": "350:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9683, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "350:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "349:9:20" + }, + "scope": 9719, + "src": "304:55:20", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 9693, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9689, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9688, + "name": "who", + "nodeType": "VariableDeclaration", + "scope": 9693, + "src": "386:11:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9687, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "386:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "385:13:20" + }, + "returnParameters": { + "id": 9692, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9691, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9693, + "src": "422:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9690, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "422:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "421:9:20" + }, + "scope": 9719, + "src": "367:64:20", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 9702, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "allowance", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9698, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9695, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 9702, + "src": "458:13:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9694, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "458:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9697, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 9702, + "src": "473:15:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9696, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "473:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "457:32:20" + }, + "returnParameters": { + "id": 9701, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9700, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9702, + "src": "513:7:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9699, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "513:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "512:9:20" + }, + "scope": 9719, + "src": "439:83:20", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "anonymous": false, + "documentation": null, + "id": 9710, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 9709, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9704, + "indexed": true, + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 9710, + "src": "545:20:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9703, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "545:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9706, + "indexed": true, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 9710, + "src": "567:18:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9705, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "567:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9708, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9710, + "src": "587:13:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9707, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "587:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "544:57:20" + }, + "src": "530:72:20" + }, + { + "anonymous": false, + "documentation": null, + "id": 9718, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 9717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9712, + "indexed": true, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 9718, + "src": "625:21:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9711, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "625:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9714, + "indexed": true, + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 9718, + "src": "648:23:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9713, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "648:7:20", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9716, + "indexed": false, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 9718, + "src": "673:13:20", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "673:7:20", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "624:63:20" + }, + "src": "610:78:20" + } + ], + "scope": 9720, + "src": "27:664:20" + } + ], + "src": "0:693:20" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:20.242Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/contracts/Migrations.json b/src/contracts/Migrations.json index f6be758..18adafa 100644 --- a/src/contracts/Migrations.json +++ b/src/contracts/Migrations.json @@ -2,107 +2,119 @@ "contractName": "Migrations", "abi": [ { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { + "constant": true, "inputs": [], "name": "last_completed_migration", "outputs": [ { - "internalType": "uint256", "name": "", "type": "uint256" } ], + "payable": false, "stateMutability": "view", - "type": "function", - "constant": true + "type": "function" }, { + "constant": true, "inputs": [], "name": "owner", "outputs": [ { - "internalType": "address", "name": "", "type": "address" } ], + "payable": false, "stateMutability": "view", - "type": "function", - "constant": true + "type": "function" }, { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "constant": false, "inputs": [ { - "internalType": "uint256", "name": "completed", "type": "uint256" } ], "name": "setCompleted", "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "new_address", + "type": "address" + } + ], + "name": "upgrade", + "outputs": [], + "payable": false, "stateMutability": "nonpayable", "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"last_completed_migration\",\"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\":\"uint256\",\"name\":\"completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/dapp-boilerplate/contracts/contracts/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/dapp-boilerplate/contracts/contracts/Migrations.sol\":{\"keccak256\":\"0x56b40ac19ce4213579d657b19c01ebfe5e9bea11a8e4fb2f793372dadbd30fd8\",\"urls\":[\"bzz-raw://bb76098d6ddec49292f3e278fde7a78b1ae9a7601a75e16ed594d672bf5916af\",\"dweb:/ipfs/QmaYAWxrLBBBBBcNwNG1duYnqzYvH1UdRrwMhWm5ZispEZ\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b0319163317905560fd806100316000396000f3fe6080604052348015600f57600080fd5b5060043610603c5760003560e01c8063445df0ac1460415780638da5cb5b146059578063fdacd57614607b575b600080fd5b60476097565b60408051918252519081900360200190f35b605f609d565b604080516001600160a01b039092168252519081900360200190f35b609560048036036020811015608f57600080fd5b503560ac565b005b60015481565b6000546001600160a01b031681565b6000546001600160a01b031633141560c45760018190555b5056fea2646970667358221220a0ad4756eebddde3e218ce8607139f6996a6fcf015bdadb95df7e165d2948f5f64736f6c63430006060033", - "deployedBytecode": "0x6080604052348015600f57600080fd5b5060043610603c5760003560e01c8063445df0ac1460415780638da5cb5b146059578063fdacd57614607b575b600080fd5b60476097565b60408051918252519081900360200190f35b605f609d565b604080516001600160a01b039092168252519081900360200190f35b609560048036036020811015608f57600080fd5b503560ac565b005b60015481565b6000546001600160a01b031681565b6000546001600160a01b031633141560c45760018190555b5056fea2646970667358221220a0ad4756eebddde3e218ce8607139f6996a6fcf015bdadb95df7e165d2948f5f64736f6c63430006060033", - "sourceMap": "36:326:1:-:0;;;129:52;5:9:-1;2:2;;;27:1;24;17:12;2:2;-1:-1;157:5:1;:18;;-1:-1:-1;;;;;;157:18:1;165:10;157:18;;;36:326;;;;;;", - "deployedSourceMap": "36:326:1:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;36:326:1;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;86:36:1;;;:::i;:::-;;;;;;;;;;;;;;;;61:20;;;:::i;:::-;;;;-1:-1:-1;;;;;61:20:1;;;;;;;;;;;;;;254:105;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;254:105:1;;:::i;:::-;;86:36;;;;:::o;61:20::-;;;-1:-1:-1;;;;;61:20:1;;:::o;254:105::-;234:5;;-1:-1:-1;;;;;234:5:1;220:10;:19;216:26;;;317:24:::1;:36:::0;;;216:26;254:105;:::o", - "source": "pragma solidity >=0.4.21 <0.7.0;\r\n\r\ncontract Migrations {\r\n address public owner;\r\n uint public last_completed_migration;\r\n\r\n constructor() public {\r\n owner = msg.sender;\r\n }\r\n\r\n modifier restricted() {\r\n if (msg.sender == owner) _;\r\n }\r\n\r\n function setCompleted(uint completed) public restricted {\r\n last_completed_migration = completed;\r\n }\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\dapp-boilerplate\\contracts\\contracts\\Migrations.sol", + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"new_address\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"last_completed_migration\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/Migrations.sol\":{\"keccak256\":\"0xcbed787a54a1f2fa2a5305009e2a9ba5ee8a082369ffbade2fde35264bc95f04\",\"urls\":[\"bzzr://adfcd94dd1e5c84fb15337b99d0ea5b0014790da7688d76b2495586ff6f5d18b\",\"dweb:/ipfs/QmYgv9zRY9HFkhLi1qZfEXkHxG71kVD6aeRncqbyDWzb5P\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b031916331790556101b3806100326000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100795780638da5cb5b14610093578063fdacd576146100b7575b600080fd5b6100776004803603602081101561006757600080fd5b50356001600160a01b03166100d4565b005b610081610151565b60408051918252519081900360200190f35b61009b610157565b604080516001600160a01b039092168252519081900360200190f35b610077600480360360208110156100cd57600080fd5b5035610166565b6000546001600160a01b031633141561014e576000819050806001600160a01b031663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561013457600080fd5b505af1158015610148573d6000803e3d6000fd5b50505050505b50565b60015481565b6000546001600160a01b031681565b6000546001600160a01b031633141561014e5760015556fea265627a7a72305820496bd79bee655d18a4a71cefe1db0ee55f249847069b69cc042d5510338caac064736f6c63430005090032", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100795780638da5cb5b14610093578063fdacd576146100b7575b600080fd5b6100776004803603602081101561006757600080fd5b50356001600160a01b03166100d4565b005b610081610151565b60408051918252519081900360200190f35b61009b610157565b604080516001600160a01b039092168252519081900360200190f35b610077600480360360208110156100cd57600080fd5b5035610166565b6000546001600160a01b031633141561014e576000819050806001600160a01b031663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561013457600080fd5b505af1158015610148573d6000803e3d6000fd5b50505050505b50565b60015481565b6000546001600160a01b031681565b6000546001600160a01b031633141561014e5760015556fea265627a7a72305820496bd79bee655d18a4a71cefe1db0ee55f249847069b69cc042d5510338caac064736f6c63430005090032", + "sourceMap": "36:500:10:-;;;196:52;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;224:5:10;:18;;-1:-1:-1;;;;;;224:18:10;232:10;224:18;;;36:500;;;;;;", + "deployedSourceMap": "36:500:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36:500:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;365:168;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;365:168:10;-1:-1:-1;;;;;365:168:10;;:::i;:::-;;86:36;;;:::i;:::-;;;;;;;;;;;;;;;;61:20;;;:::i;:::-;;;;-1:-1:-1;;;;;61:20:10;;;;;;;;;;;;;;254:105;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;254:105:10;;:::i;365:168::-;176:5;;-1:-1:-1;;;;;176:5:10;162:10;:19;158:26;;;428:19;461:11;428:45;;480:8;-1:-1:-1;;;;;480:21:10;;502:24;;480:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;480:47:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;480:47:10;;;;183:1;158:26;365:168;:::o;86:36::-;;;;:::o;61:20::-;;;-1:-1:-1;;;;;61:20:10;;:::o;254:105::-;176:5;;-1:-1:-1;;;;;176:5:10;162:10;:19;158:26;;;317:24;:36;254:105::o", + "source": "pragma solidity >=0.5.0 < 0.6.0;\r\n\r\ncontract Migrations {\r\n address public owner;\r\n uint public last_completed_migration;\r\n\r\n modifier restricted() {\r\n if (msg.sender == owner) _;\r\n }\r\n\r\n constructor() public {\r\n owner = msg.sender;\r\n }\r\n\r\n function setCompleted(uint completed) public restricted {\r\n last_completed_migration = completed;\r\n }\r\n\r\n function upgrade(address new_address) public restricted {\r\n Migrations upgraded = Migrations(new_address);\r\n upgraded.setCompleted(last_completed_migration);\r\n }\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\inherited\\Migrations.sol", "ast": { - "absolutePath": "/C/Users/abhinavanshul/dapp-boilerplate/contracts/contracts/Migrations.sol", + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/Migrations.sol", "exportedSymbols": { "Migrations": [ - 109 + 6071 ] }, - "id": 110, + "id": 6072, "nodeType": "SourceUnit", "nodes": [ { - "id": 74, + "id": 6016, "literals": [ "solidity", ">=", - "0.4", - ".21", + "0.5", + ".0", "<", - "0.7", + "0.6", ".0" ], "nodeType": "PragmaDirective", - "src": "0:32:1" + "src": "0:32:10" }, { - "abstract": false, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 109, + "id": 6071, "linearizedBaseContracts": [ - 109 + 6071 ], "name": "Migrations", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "functionSelector": "8da5cb5b", - "id": 76, - "mutability": "mutable", + "id": 6018, "name": "owner", "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 109, - "src": "61:20:1", + "scope": 6071, + "src": "61:20:10", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -110,10 +122,10 @@ "typeString": "address" }, "typeName": { - "id": 75, + "id": 6017, "name": "address", "nodeType": "ElementaryTypeName", - "src": "61:7:1", + "src": "61:7:10", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -125,14 +137,11 @@ }, { "constant": false, - "functionSelector": "445df0ac", - "id": 78, - "mutability": "mutable", + "id": 6020, "name": "last_completed_migration", "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 109, - "src": "86:36:1", + "scope": 6071, + "src": "86:36:10", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -140,10 +149,10 @@ "typeString": "uint256" }, "typeName": { - "id": 77, + "id": 6019, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "86:4:1", + "src": "86:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -154,49 +163,38 @@ }, { "body": { - "id": 86, + "id": 6028, "nodeType": "Block", - "src": "150:31:1", + "src": "151:39:10", "statements": [ { - "expression": { + "condition": { "argumentTypes": null, - "id": 84, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6025, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 81, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76, - "src": "157:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 82, + "id": 6022, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "165:3:1", + "referencedDeclaration": 10411, + "src": "162:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 83, + "id": 6023, "isConstant": false, "isLValue": false, "isPure": false, @@ -204,84 +202,103 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "165:10:1", + "src": "162:10:10", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "157:18:1", + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 6024, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6018, + "src": "176:5:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "162:19:10", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 85, - "nodeType": "ExpressionStatement", - "src": "157:18:1" + "falseBody": null, + "id": 6027, + "nodeType": "IfStatement", + "src": "158:26:10", + "trueBody": { + "id": 6026, + "nodeType": "PlaceholderStatement", + "src": "183:1:10" + } } ] }, "documentation": null, - "id": 87, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, + "id": 6029, + "name": "restricted", + "nodeType": "ModifierDefinition", "parameters": { - "id": 79, - "nodeType": "ParameterList", - "parameters": [], - "src": "140:2:1" - }, - "returnParameters": { - "id": 80, + "id": 6021, "nodeType": "ParameterList", "parameters": [], - "src": "150:0:1" + "src": "148:2:10" }, - "scope": 109, - "src": "129:52:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" + "src": "129:61:10", + "visibility": "internal" }, { "body": { - "id": 95, + "id": 6037, "nodeType": "Block", - "src": "209:39:1", + "src": "217:31:10", "statements": [ { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 92, + "id": 6035, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "leftHandSide": { + "argumentTypes": null, + "id": 6032, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6018, + "src": "224:5:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 89, + "id": 6033, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "220:3:1", + "referencedDeclaration": 10411, + "src": "232:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 90, + "id": 6034, "isConstant": false, "isLValue": false, "isPure": false, @@ -289,82 +306,71 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "220:10:1", + "src": "232:10:10", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 91, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76, - "src": "234:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "220:19:1", + "src": "224:18:10", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "falseBody": null, - "id": 94, - "nodeType": "IfStatement", - "src": "216:26:1", - "trueBody": { - "id": 93, - "nodeType": "PlaceholderStatement", - "src": "241:1:1" - } + "id": 6036, + "nodeType": "ExpressionStatement", + "src": "224:18:10" } ] }, "documentation": null, - "id": 96, - "name": "restricted", - "nodeType": "ModifierDefinition", - "overrides": null, + "id": 6038, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", "parameters": { - "id": 88, + "id": 6030, "nodeType": "ParameterList", "parameters": [], - "src": "206:2:1" + "src": "207:2:10" }, - "src": "187:61:1", - "virtual": false, - "visibility": "internal" + "returnParameters": { + "id": 6031, + "nodeType": "ParameterList", + "parameters": [], + "src": "217:0:10" + }, + "scope": 6071, + "src": "196:52:10", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" }, { "body": { - "id": 107, + "id": 6049, "nodeType": "Block", - "src": "310:49:1", + "src": "310:49:10", "statements": [ { "expression": { "argumentTypes": null, - "id": 105, + "id": 6047, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 103, + "id": 6045, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 78, - "src": "317:24:1", + "referencedDeclaration": 6020, + "src": "317:24:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -374,71 +380,67 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 104, + "id": 6046, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 98, - "src": "344:9:1", + "referencedDeclaration": 6040, + "src": "344:9:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "317:36:1", + "src": "317:36:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 106, + "id": 6048, "nodeType": "ExpressionStatement", - "src": "317:36:1" + "src": "317:36:10" } ] }, "documentation": null, - "functionSelector": "fdacd576", - "id": 108, + "id": 6050, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 101, + "id": 6043, "modifierName": { "argumentTypes": null, - "id": 100, + "id": 6042, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "299:10:1", + "referencedDeclaration": 6029, + "src": "299:10:10", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "299:10:1" + "src": "299:10:10" } ], "name": "setCompleted", "nodeType": "FunctionDefinition", - "overrides": null, "parameters": { - "id": 99, + "id": 6041, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 98, - "mutability": "mutable", + "id": 6040, "name": "completed", "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 108, - "src": "276:14:1", + "scope": 6050, + "src": "276:14:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -446,10 +448,10 @@ "typeString": "uint256" }, "typeName": { - "id": 97, + "id": 6039, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "276:4:1", + "src": "276:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -459,75 +461,309 @@ "visibility": "internal" } ], - "src": "275:16:1" + "src": "275:16:10" + }, + "returnParameters": { + "id": 6044, + "nodeType": "ParameterList", + "parameters": [], + "src": "310:0:10" + }, + "scope": 6071, + "src": "254:105:10", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6069, + "nodeType": "Block", + "src": "421:112:10", + "statements": [ + { + "assignments": [ + 6058 + ], + "declarations": [ + { + "constant": false, + "id": 6058, + "name": "upgraded", + "nodeType": "VariableDeclaration", + "scope": 6069, + "src": "428:19:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$6071", + "typeString": "contract Migrations" + }, + "typeName": { + "contractScope": null, + "id": 6057, + "name": "Migrations", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6071, + "src": "428:10:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$6071", + "typeString": "contract Migrations" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6062, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6060, + "name": "new_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "461:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6059, + "name": "Migrations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "450:10:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Migrations_$6071_$", + "typeString": "type(contract Migrations)" + } + }, + "id": 6061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "450:23:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$6071", + "typeString": "contract Migrations" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "428:45:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6066, + "name": "last_completed_migration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6020, + "src": "502:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6063, + "name": "upgraded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6058, + "src": "480:8:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$6071", + "typeString": "contract Migrations" + } + }, + "id": 6065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "setCompleted", + "nodeType": "MemberAccess", + "referencedDeclaration": 6050, + "src": "480:21:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 6067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "480:47:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6068, + "nodeType": "ExpressionStatement", + "src": "480:47:10" + } + ] + }, + "documentation": null, + "id": 6070, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6055, + "modifierName": { + "argumentTypes": null, + "id": 6054, + "name": "restricted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6029, + "src": "410:10:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "410:10:10" + } + ], + "name": "upgrade", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6053, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6052, + "name": "new_address", + "nodeType": "VariableDeclaration", + "scope": 6070, + "src": "382:19:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6051, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "382:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "381:21:10" }, "returnParameters": { - "id": 102, + "id": 6056, "nodeType": "ParameterList", "parameters": [], - "src": "310:0:1" + "src": "421:0:10" }, - "scope": 109, - "src": "254:105:1", + "scope": 6071, + "src": "365:168:10", "stateMutability": "nonpayable", - "virtual": false, + "superFunction": null, "visibility": "public" } ], - "scope": 110, - "src": "36:326:1" + "scope": 6072, + "src": "36:500:10" } ], - "src": "0:364:1" + "src": "0:538:10" }, "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/dapp-boilerplate/contracts/contracts/Migrations.sol", + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/Migrations.sol", "exportedSymbols": { "Migrations": [ - 109 + 6071 ] }, - "id": 110, + "id": 6072, "nodeType": "SourceUnit", "nodes": [ { - "id": 74, + "id": 6016, "literals": [ "solidity", ">=", - "0.4", - ".21", + "0.5", + ".0", "<", - "0.7", + "0.6", ".0" ], "nodeType": "PragmaDirective", - "src": "0:32:1" + "src": "0:32:10" }, { - "abstract": false, "baseContracts": [], "contractDependencies": [], "contractKind": "contract", "documentation": null, "fullyImplemented": true, - "id": 109, + "id": 6071, "linearizedBaseContracts": [ - 109 + 6071 ], "name": "Migrations", "nodeType": "ContractDefinition", "nodes": [ { "constant": false, - "functionSelector": "8da5cb5b", - "id": 76, - "mutability": "mutable", + "id": 6018, "name": "owner", "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 109, - "src": "61:20:1", + "scope": 6071, + "src": "61:20:10", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -535,10 +771,10 @@ "typeString": "address" }, "typeName": { - "id": 75, + "id": 6017, "name": "address", "nodeType": "ElementaryTypeName", - "src": "61:7:1", + "src": "61:7:10", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -550,14 +786,11 @@ }, { "constant": false, - "functionSelector": "445df0ac", - "id": 78, - "mutability": "mutable", + "id": 6020, "name": "last_completed_migration", "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 109, - "src": "86:36:1", + "scope": 6071, + "src": "86:36:10", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -565,10 +798,10 @@ "typeString": "uint256" }, "typeName": { - "id": 77, + "id": 6019, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "86:4:1", + "src": "86:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -579,49 +812,38 @@ }, { "body": { - "id": 86, + "id": 6028, "nodeType": "Block", - "src": "150:31:1", + "src": "151:39:10", "statements": [ { - "expression": { + "condition": { "argumentTypes": null, - "id": 84, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 6025, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 81, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76, - "src": "157:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { + "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 82, + "id": 6022, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "165:3:1", + "referencedDeclaration": 10411, + "src": "162:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 83, + "id": 6023, "isConstant": false, "isLValue": false, "isPure": false, @@ -629,84 +851,103 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "165:10:1", + "src": "162:10:10", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "157:18:1", + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 6024, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6018, + "src": "176:5:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "162:19:10", "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 85, - "nodeType": "ExpressionStatement", - "src": "157:18:1" + "falseBody": null, + "id": 6027, + "nodeType": "IfStatement", + "src": "158:26:10", + "trueBody": { + "id": 6026, + "nodeType": "PlaceholderStatement", + "src": "183:1:10" + } } ] }, "documentation": null, - "id": 87, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, + "id": 6029, + "name": "restricted", + "nodeType": "ModifierDefinition", "parameters": { - "id": 79, + "id": 6021, "nodeType": "ParameterList", "parameters": [], - "src": "140:2:1" + "src": "148:2:10" }, - "returnParameters": { - "id": 80, - "nodeType": "ParameterList", - "parameters": [], - "src": "150:0:1" - }, - "scope": 109, - "src": "129:52:1", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" + "src": "129:61:10", + "visibility": "internal" }, { "body": { - "id": 95, + "id": 6037, "nodeType": "Block", - "src": "209:39:1", + "src": "217:31:10", "statements": [ { - "condition": { + "expression": { "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 92, + "id": 6035, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, - "leftExpression": { + "leftHandSide": { + "argumentTypes": null, + "id": 6032, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6018, + "src": "224:5:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { "argumentTypes": null, "expression": { "argumentTypes": null, - "id": 89, + "id": 6033, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "220:3:1", + "referencedDeclaration": 10411, + "src": "232:3:10", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 90, + "id": 6034, "isConstant": false, "isLValue": false, "isPure": false, @@ -714,82 +955,71 @@ "memberName": "sender", "nodeType": "MemberAccess", "referencedDeclaration": null, - "src": "220:10:1", + "src": "232:10:10", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 91, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 76, - "src": "234:5:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "220:19:1", + "src": "224:18:10", "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" + "typeIdentifier": "t_address", + "typeString": "address" } }, - "falseBody": null, - "id": 94, - "nodeType": "IfStatement", - "src": "216:26:1", - "trueBody": { - "id": 93, - "nodeType": "PlaceholderStatement", - "src": "241:1:1" - } + "id": 6036, + "nodeType": "ExpressionStatement", + "src": "224:18:10" } ] }, "documentation": null, - "id": 96, - "name": "restricted", - "nodeType": "ModifierDefinition", - "overrides": null, + "id": 6038, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", "parameters": { - "id": 88, + "id": 6030, "nodeType": "ParameterList", "parameters": [], - "src": "206:2:1" + "src": "207:2:10" }, - "src": "187:61:1", - "virtual": false, - "visibility": "internal" + "returnParameters": { + "id": 6031, + "nodeType": "ParameterList", + "parameters": [], + "src": "217:0:10" + }, + "scope": 6071, + "src": "196:52:10", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" }, { "body": { - "id": 107, + "id": 6049, "nodeType": "Block", - "src": "310:49:1", + "src": "310:49:10", "statements": [ { "expression": { "argumentTypes": null, - "id": 105, + "id": 6047, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, - "id": 103, + "id": 6045, "name": "last_completed_migration", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 78, - "src": "317:24:1", + "referencedDeclaration": 6020, + "src": "317:24:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -799,71 +1029,67 @@ "operator": "=", "rightHandSide": { "argumentTypes": null, - "id": 104, + "id": 6046, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 98, - "src": "344:9:1", + "referencedDeclaration": 6040, + "src": "344:9:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "317:36:1", + "src": "317:36:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 106, + "id": 6048, "nodeType": "ExpressionStatement", - "src": "317:36:1" + "src": "317:36:10" } ] }, "documentation": null, - "functionSelector": "fdacd576", - "id": 108, + "id": 6050, "implemented": true, "kind": "function", "modifiers": [ { "arguments": null, - "id": 101, + "id": 6043, "modifierName": { "argumentTypes": null, - "id": 100, + "id": 6042, "name": "restricted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 96, - "src": "299:10:1", + "referencedDeclaration": 6029, + "src": "299:10:10", "typeDescriptions": { "typeIdentifier": "t_modifier$__$", "typeString": "modifier ()" } }, "nodeType": "ModifierInvocation", - "src": "299:10:1" + "src": "299:10:10" } ], "name": "setCompleted", "nodeType": "FunctionDefinition", - "overrides": null, "parameters": { - "id": 99, + "id": 6041, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 98, - "mutability": "mutable", + "id": 6040, "name": "completed", "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 108, - "src": "276:14:1", + "scope": 6050, + "src": "276:14:10", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -871,10 +1097,10 @@ "typeString": "uint256" }, "typeName": { - "id": 97, + "id": 6039, "name": "uint", "nodeType": "ElementaryTypeName", - "src": "276:4:1", + "src": "276:4:10", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -884,41 +1110,279 @@ "visibility": "internal" } ], - "src": "275:16:1" + "src": "275:16:10" + }, + "returnParameters": { + "id": 6044, + "nodeType": "ParameterList", + "parameters": [], + "src": "310:0:10" + }, + "scope": 6071, + "src": "254:105:10", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 6069, + "nodeType": "Block", + "src": "421:112:10", + "statements": [ + { + "assignments": [ + 6058 + ], + "declarations": [ + { + "constant": false, + "id": 6058, + "name": "upgraded", + "nodeType": "VariableDeclaration", + "scope": 6069, + "src": "428:19:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$6071", + "typeString": "contract Migrations" + }, + "typeName": { + "contractScope": null, + "id": 6057, + "name": "Migrations", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 6071, + "src": "428:10:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$6071", + "typeString": "contract Migrations" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 6062, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6060, + "name": "new_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6052, + "src": "461:11:10", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 6059, + "name": "Migrations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6071, + "src": "450:10:10", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Migrations_$6071_$", + "typeString": "type(contract Migrations)" + } + }, + "id": 6061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "450:23:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$6071", + "typeString": "contract Migrations" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "428:45:10" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 6066, + "name": "last_completed_migration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6020, + "src": "502:24:10", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 6063, + "name": "upgraded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6058, + "src": "480:8:10", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$6071", + "typeString": "contract Migrations" + } + }, + "id": 6065, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "setCompleted", + "nodeType": "MemberAccess", + "referencedDeclaration": 6050, + "src": "480:21:10", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 6067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "480:47:10", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 6068, + "nodeType": "ExpressionStatement", + "src": "480:47:10" + } + ] + }, + "documentation": null, + "id": 6070, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 6055, + "modifierName": { + "argumentTypes": null, + "id": 6054, + "name": "restricted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 6029, + "src": "410:10:10", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "410:10:10" + } + ], + "name": "upgrade", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 6053, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 6052, + "name": "new_address", + "nodeType": "VariableDeclaration", + "scope": 6070, + "src": "382:19:10", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 6051, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "382:7:10", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "381:21:10" }, "returnParameters": { - "id": 102, + "id": 6056, "nodeType": "ParameterList", "parameters": [], - "src": "310:0:1" + "src": "421:0:10" }, - "scope": 109, - "src": "254:105:1", + "scope": 6071, + "src": "365:168:10", "stateMutability": "nonpayable", - "virtual": false, + "superFunction": null, "visibility": "public" } ], - "scope": 110, - "src": "36:326:1" + "scope": 6072, + "src": "36:500:10" } ], - "src": "0:364:1" + "src": "0:538:10" }, "compiler": { "name": "solc", - "version": "0.6.6+commit.6c089d02.Emscripten.clang" + "version": "0.5.9+commit.e560f70d.Emscripten.clang" }, "networks": { "10": { "events": {}, "links": {}, "address": "0x627519AeF3d942bB1E190f752ab1707fcD4e5f76", - "transactionHash": "0xc38fd1e38efce5c92d241073b44acf326d39a037bd7a734ec6c74374bd62f54f" + "transactionHash": "0x39e17b03206dbd8c7b06ee877cdaa32183e7fab29738605fd18c8885c2d7642b" } }, "schemaVersion": "3.0.23", - "updatedAt": "2020-05-05T07:55:37.624Z", + "updatedAt": "2020-06-02T13:56:31.221Z", "networkType": "ethereum", "devdoc": { "methods": {} diff --git a/src/contracts/Moloch.json b/src/contracts/Moloch.json new file mode 100644 index 0000000..deb698d --- /dev/null +++ b/src/contracts/Moloch.json @@ -0,0 +1,40539 @@ +{ + "contractName": "Moloch", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "proposals", + "outputs": [ + { + "name": "applicant", + "type": "address" + }, + { + "name": "proposer", + "type": "address" + }, + { + "name": "sponsor", + "type": "address" + }, + { + "name": "sharesRequested", + "type": "uint256" + }, + { + "name": "lootRequested", + "type": "uint256" + }, + { + "name": "tributeOffered", + "type": "uint256" + }, + { + "name": "tributeToken", + "type": "address" + }, + { + "name": "paymentRequested", + "type": "uint256" + }, + { + "name": "paymentToken", + "type": "address" + }, + { + "name": "startingPeriod", + "type": "uint256" + }, + { + "name": "yesVotes", + "type": "uint256" + }, + { + "name": "noVotes", + "type": "uint256" + }, + { + "name": "details", + "type": "string" + }, + { + "name": "maxTotalSharesAndLootAtYesVote", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "members", + "outputs": [ + { + "name": "delegateKey", + "type": "address" + }, + { + "name": "shares", + "type": "uint256" + }, + { + "name": "exists", + "type": "bool" + }, + { + "name": "highestIndexYesVote", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "approvedTokens", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "emergencyProcessingWait", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalShares", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "proposalQueue", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "address" + } + ], + "name": "memberAddressByDelegateKey", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "emergencyWarning", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "gracePeriodLength", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "result", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "summoningTime", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "votingPeriodLength", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "proposalDeposit", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "guildBank", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "lastEmergencyProposalIndex", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "periodDuration", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "depositToken", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "proposalCount", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "summoner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "_summoner", + "type": "address" + }, + { + "name": "_approvedTokens", + "type": "address[1]" + }, + { + "name": "_periodDuration", + "type": "uint256" + }, + { + "name": "_votingPeriodLength", + "type": "uint256" + }, + { + "name": "_gracePeriodLength", + "type": "uint256" + }, + { + "name": "_emergencyProcessingWait", + "type": "uint256" + }, + { + "name": "_bailoutWait", + "type": "uint256" + }, + { + "name": "_proposalDeposit", + "type": "uint256" + }, + { + "name": "_dilutionBound", + "type": "uint256" + }, + { + "name": "_processingReward", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "proposalIndex", + "type": "uint256" + }, + { + "indexed": true, + "name": "delegateKey", + "type": "address" + }, + { + "indexed": true, + "name": "memberAddress", + "type": "address" + }, + { + "indexed": true, + "name": "applicant", + "type": "address" + }, + { + "indexed": false, + "name": "sharesRequested", + "type": "uint256" + }, + { + "indexed": false, + "name": "lootRequested", + "type": "uint256" + }, + { + "indexed": false, + "name": "tributeOffered", + "type": "uint256" + }, + { + "indexed": false, + "name": "tributeToken", + "type": "address" + }, + { + "indexed": false, + "name": "paymentRequested", + "type": "uint256" + }, + { + "indexed": false, + "name": "paymentToken", + "type": "address" + } + ], + "name": "SubmitProposal", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "delegateKey", + "type": "address" + }, + { + "indexed": true, + "name": "memberAddress", + "type": "address" + }, + { + "indexed": false, + "name": "proposalIndex", + "type": "uint256" + }, + { + "indexed": false, + "name": "proposalQueueIndex", + "type": "uint256" + }, + { + "indexed": false, + "name": "startingPeriod", + "type": "uint256" + } + ], + "name": "SponsorProposal", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "proposalIndex", + "type": "uint256" + }, + { + "indexed": true, + "name": "delegateKey", + "type": "address" + }, + { + "indexed": true, + "name": "memberAddress", + "type": "address" + }, + { + "indexed": false, + "name": "uintVote", + "type": "uint8" + } + ], + "name": "SubmitVote", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "proposalIndex", + "type": "uint256" + }, + { + "indexed": true, + "name": "proposalId", + "type": "uint256" + }, + { + "indexed": false, + "name": "didPass", + "type": "bool" + } + ], + "name": "ProcessProposal", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "memberAddress", + "type": "address" + }, + { + "indexed": false, + "name": "sharesToBurn", + "type": "uint256" + }, + { + "indexed": false, + "name": "lootToBurn", + "type": "uint256" + } + ], + "name": "Ragequit", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "proposalIndex", + "type": "uint256" + }, + { + "indexed": false, + "name": "applicantAddress", + "type": "address" + } + ], + "name": "CancelProposal", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "memberAddress", + "type": "address" + }, + { + "indexed": false, + "name": "newDelegateKey", + "type": "address" + } + ], + "name": "UpdateDelegateKey", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "summoner", + "type": "address" + }, + { + "indexed": false, + "name": "shares", + "type": "uint256" + } + ], + "name": "SummonComplete", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "applicant", + "type": "address" + }, + { + "name": "sharesRequested", + "type": "uint256" + }, + { + "name": "lootRequested", + "type": "uint256" + }, + { + "name": "tributeOffered", + "type": "uint256" + }, + { + "name": "tributeToken", + "type": "address" + }, + { + "name": "paymentRequested", + "type": "uint256" + }, + { + "name": "paymentToken", + "type": "address" + }, + { + "name": "details", + "type": "string" + } + ], + "name": "submitProposal", + "outputs": [ + { + "name": "proposalId", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "proposalId", + "type": "uint256" + } + ], + "name": "sponsorProposal", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getProposal", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "proposalIndex", + "type": "uint256" + }, + { + "name": "uintVote", + "type": "uint8" + } + ], + "name": "submitVote", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getResult", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "proposalIndex", + "type": "uint256" + } + ], + "name": "processProposal", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "sharesToBurn", + "type": "uint256" + }, + { + "name": "lootToBurn", + "type": "uint256" + } + ], + "name": "ragequit", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "sharesToBurn", + "type": "uint256" + }, + { + "name": "lootToBurn", + "type": "uint256" + }, + { + "name": "tokenList", + "type": "address[]" + } + ], + "name": "safeRagequit", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "proposalId", + "type": "uint256" + } + ], + "name": "cancelProposal", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getCurrentPeriod", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getProposalQueueLength", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "proposalId", + "type": "uint256" + } + ], + "name": "getProposalFlags", + "outputs": [ + { + "name": "", + "type": "bool[6]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "highestIndexYesVote", + "type": "uint256" + } + ], + "name": "canRagequit", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "startingPeriod", + "type": "uint256" + } + ], + "name": "hasVotingPeriodExpired", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "memberAddress", + "type": "address" + }, + { + "name": "proposalIndex", + "type": "uint256" + } + ], + "name": "getMemberProposalVote", + "outputs": [ + { + "name": "", + "type": "uint8" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"name\":\"applicant\",\"type\":\"address\"},{\"name\":\"proposer\",\"type\":\"address\"},{\"name\":\"sponsor\",\"type\":\"address\"},{\"name\":\"sharesRequested\",\"type\":\"uint256\"},{\"name\":\"lootRequested\",\"type\":\"uint256\"},{\"name\":\"tributeOffered\",\"type\":\"uint256\"},{\"name\":\"tributeToken\",\"type\":\"address\"},{\"name\":\"paymentRequested\",\"type\":\"uint256\"},{\"name\":\"paymentToken\",\"type\":\"address\"},{\"name\":\"startingPeriod\",\"type\":\"uint256\"},{\"name\":\"yesVotes\",\"type\":\"uint256\"},{\"name\":\"noVotes\",\"type\":\"uint256\"},{\"name\":\"details\",\"type\":\"string\"},{\"name\":\"maxTotalSharesAndLootAtYesVote\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"memberAddress\",\"type\":\"address\"},{\"name\":\"proposalIndex\",\"type\":\"uint256\"}],\"name\":\"getMemberProposalVote\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCurrentPeriod\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"members\",\"outputs\":[{\"name\":\"delegateKey\",\"type\":\"address\"},{\"name\":\"shares\",\"type\":\"uint256\"},{\"name\":\"exists\",\"type\":\"bool\"},{\"name\":\"highestIndexYesVote\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sharesToBurn\",\"type\":\"uint256\"},{\"name\":\"lootToBurn\",\"type\":\"uint256\"}],\"name\":\"ragequit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"approvedTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"emergencyProcessingWait\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalShares\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposalQueue\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"memberAddressByDelegateKey\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"emergencyWarning\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"applicant\",\"type\":\"address\"},{\"name\":\"sharesRequested\",\"type\":\"uint256\"},{\"name\":\"lootRequested\",\"type\":\"uint256\"},{\"name\":\"tributeOffered\",\"type\":\"uint256\"},{\"name\":\"tributeToken\",\"type\":\"address\"},{\"name\":\"paymentRequested\",\"type\":\"uint256\"},{\"name\":\"paymentToken\",\"type\":\"address\"},{\"name\":\"details\",\"type\":\"string\"}],\"name\":\"submitProposal\",\"outputs\":[{\"name\":\"proposalId\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"gracePeriodLength\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"result\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getProposalQueueLength\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"summoningTime\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"votingPeriodLength\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalDeposit\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"startingPeriod\",\"type\":\"uint256\"}],\"name\":\"hasVotingPeriodExpired\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"sponsorProposal\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"name\":\"uintVote\",\"type\":\"uint8\"}],\"name\":\"submitVote\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"highestIndexYesVote\",\"type\":\"uint256\"}],\"name\":\"canRagequit\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"guildBank\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastEmergencyProposalIndex\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"getProposalFlags\",\"outputs\":[{\"name\":\"\",\"type\":\"bool[6]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"periodDuration\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getProposal\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"depositToken\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"summoner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getResult\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"cancelProposal\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"proposalIndex\",\"type\":\"uint256\"}],\"name\":\"processProposal\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sharesToBurn\",\"type\":\"uint256\"},{\"name\":\"lootToBurn\",\"type\":\"uint256\"},{\"name\":\"tokenList\",\"type\":\"address[]\"}],\"name\":\"safeRagequit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_summoner\",\"type\":\"address\"},{\"name\":\"_approvedTokens\",\"type\":\"address[1]\"},{\"name\":\"_periodDuration\",\"type\":\"uint256\"},{\"name\":\"_votingPeriodLength\",\"type\":\"uint256\"},{\"name\":\"_gracePeriodLength\",\"type\":\"uint256\"},{\"name\":\"_emergencyProcessingWait\",\"type\":\"uint256\"},{\"name\":\"_bailoutWait\",\"type\":\"uint256\"},{\"name\":\"_proposalDeposit\",\"type\":\"uint256\"},{\"name\":\"_dilutionBound\",\"type\":\"uint256\"},{\"name\":\"_processingReward\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"delegateKey\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"memberAddress\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"applicant\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"sharesRequested\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"lootRequested\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"tributeOffered\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"tributeToken\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"paymentRequested\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"paymentToken\",\"type\":\"address\"}],\"name\":\"SubmitProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"delegateKey\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"memberAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"proposalQueueIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"startingPeriod\",\"type\":\"uint256\"}],\"name\":\"SponsorProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"delegateKey\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"memberAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"uintVote\",\"type\":\"uint8\"}],\"name\":\"SubmitVote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"didPass\",\"type\":\"bool\"}],\"name\":\"ProcessProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"memberAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"sharesToBurn\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"lootToBurn\",\"type\":\"uint256\"}],\"name\":\"Ragequit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"applicantAddress\",\"type\":\"address\"}],\"name\":\"CancelProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"memberAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"newDelegateKey\",\"type\":\"address\"}],\"name\":\"UpdateDelegateKey\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"summoner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"SummonComplete\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{\"submitProposal(address,uint256,uint256,uint256,address,uint256,address,string)\":{\"notice\":\"***************\\r PROPOSAL FUNCTIONS\\r****************\"}}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Moloch.sol\":\"Moloch\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol\":{\"keccak256\":\"0xa8ace5b5ac3322c9019470d2a1ad1342ef5d984da3d4818554e703b65ceda667\",\"urls\":[\"bzzr://b38168eab9d05f21a7576958f33878d9d31877a12f1f14bda390f3f4fbdaa2a4\",\"dweb:/ipfs/QmWa9cX9gzUkyM9yVwfhd6FsSeh1jpV62sBzdGJm6jRPRX\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Moloch.sol\":{\"keccak256\":\"0x513f84a2202580d2febaa6ee6322d9e93fee98f8c0ad5b98892a73687d49a0df\",\"urls\":[\"bzzr://ab0c63e6894e94dc4f8d0560000d3be9e20b87081af342d666fb5229d5bccd98\",\"dweb:/ipfs/QmYXkCZAMiX3UG4sKAp7Ro3nvKBKBANbRNWRn8JkWH3Pdc\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol\":{\"keccak256\":\"0x8d08add2e57d2885eb9cda96d2ce54056015247de9adfea8e13c78bb2d9233f2\",\"urls\":[\"bzzr://24804e36486f935a9e98bf507193d1b160db755edba6c9d124a894aef3741ada\",\"dweb:/ipfs/QmauQVeYbGgqJDNxKAceFj1hFD1gfCfAXNBA8vCh3aGYKA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", + "bytecode": "0x608060405260006009819055600a819055600b805460ff19169055600c553480156200002a57600080fd5b506040516200365a3803806200365a83398181016040526101408110156200005157600080fd5b50805160408201516060830151608084015160a085015160c086015160e08701516101008801516101208901516000805460ff191660011790559798602001976001600160a01b038a166200010757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73756d6d6f6e65722063616e6e6f742062652030000000000000000000000000604482015290519081900360640190fd5b600088116200017757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5f706572696f644475726174696f6e2063616e6e6f7420626520300000000000604482015290519081900360640190fd5b60008711620001e757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5f766f74696e67506572696f644c656e6774682063616e6e6f74206265203000604482015290519081900360640190fd5b670de0b6b3a76400008711156200024a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180620036156021913960400191505060405180910390fd5b670de0b6b3a7640000861115620002c257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f5f6772616365506572696f644c656e6774682065786365656473206c696d6974604482015290519081900360640190fd5b600085116200031d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180620036366024913960400191505060405180910390fd5b60008054610100600160a81b0319166101006001600160a01b038d160217815589906020020151600780546001600160a01b0319166001600160a01b0390921691909117905560005b60018110156200044e5760008a82600181106200037f57fe5b60200201516001600160a01b03161415620003fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f5f617070726f766564546f6b656e2063616e6e6f742062652030000000000000604482015290519081900360640190fd5b600d8a82600181106200040a57fe5b6020908102919091015182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b03909316929092179091550162000366565b506040516200045d9062000586565b604051809103906000f0801580156200047a573d6000803e3d6000fd5b50600880546001600160a01b03199081166001600160a01b039384161790915560018a815560028a815560038a815560048a9055600588905542600655604080516080810182526000805461010090819004891680845260208085018981528587018a815260608701868152938652600e8352878620965187548d16908e161787559051868b015551978501805460ff19169815159890981790975551929094019190915580548390048716808252600f8552828220805490971617909555600a8490559354845193845293519304909316927f03995a801b13c36325306deef859ef977ce61c6e15a794281bf969d20482522792918290030190a25050505050505050505062000594565b61051880620030fd83390190565b612b5980620005a46000396000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80638b15a6051161011a578063b470aade116100ad578063dacaa9d11161007c578063dacaa9d1146106f4578063de292789146106fc578063e0a8f6f514610704578063e63bc62d14610721578063ec51b0bf1461073e57610206565b8063b470aade146106d4578063b9e2bea0146106dc578063c89039c5146106e4578063da35c664146106ec57610206565b8063a3dc3800116100e9578063a3dc380014610652578063a42afd291461066f578063a44a5e7e14610677578063b2643aab1461067f57610206565b80638b15a605146105ea5780639425a476146105f25780639746d9401461060f57806399653fbe1461062c57610206565b80633b214a741161019d57806363858f2d1161016c57806363858f2d146105c257806365372147146105ca578063797daf70146105d25780637d5b6c72146105da5780638340bbce146105e257610206565b80633b214a7414610483578063402c1794146104a0578063505afd74146104c6578063590f940b146104e257610206565b806315eb349e116101d957806315eb349e146104155780631dafede01461043a5780631e2362ec146104735780633a98ef391461047b57610206565b8063013cf08b1461020b578063044a0ca814610355578063086146d2146103a557806308ae4b0c146103bf575b600080fd5b6102286004803603602081101561022157600080fd5b50356107ed565b604051808f6001600160a01b03166001600160a01b031681526020018e6001600160a01b03166001600160a01b031681526020018d6001600160a01b03166001600160a01b031681526020018c81526020018b81526020018a8152602001896001600160a01b03166001600160a01b03168152602001888152602001876001600160a01b03166001600160a01b0316815260200186815260200185815260200184815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561030d5781810151838201526020016102f5565b50505050905090810190601f16801561033a5780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b6103816004803603604081101561036b57600080fd5b506001600160a01b038135169060200135610950565b6040518082600281111561039157fe5b60ff16815260200191505060405180910390f35b6103ad610a57565b60408051918252519081900360200190f35b6103e5600480360360208110156103d557600080fd5b50356001600160a01b0316610a86565b604080516001600160a01b0390951685526020850193909352901515838301526060830152519081900360800190f35b6104386004803603604081101561042b57600080fd5b5080359060200135610abd565b005b6104576004803603602081101561045057600080fd5b5035610bd3565b604080516001600160a01b039092168252519081900360200190f35b6103ad610bfa565b6103ad610c00565b6103ad6004803603602081101561049957600080fd5b5035610c06565b610457600480360360208110156104b657600080fd5b50356001600160a01b0316610c24565b6104ce610c3f565b604080519115158252519081900360200190f35b6103ad60048036036101008110156104f957600080fd5b6001600160a01b038235811692602081013592604082013592606083013592608081013582169260a08201359260c0830135169190810190610100810160e082013564010000000081111561054d57600080fd5b82018360208201111561055f57600080fd5b8035906020019184600183028401116401000000008311171561058157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c48945050505050565b6103ad610d83565b6103ad610d89565b6103ad610d8f565b6103ad610d95565b6103ad610d9b565b6103ad610da1565b6104ce6004803603602081101561060857600080fd5b5035610da7565b6104386004803603602081101561062557600080fd5b5035610dce565b6104386004803603604081101561064257600080fd5b508035906020013560ff166110f2565b6104ce6004803603602081101561066857600080fd5b50356114f8565b6104576115a1565b6103ad6115b0565b61069c6004803603602081101561069557600080fd5b50356115b6565b604051808260c080838360005b838110156106c15781810151838201526020016106a9565b5050505090500191505060405180910390f35b6103ad611620565b6103ad611626565b61045761162c565b6103ad61163b565b610457611641565b6103ad611655565b6104386004803603602081101561071a57600080fd5b503561165b565b6104386004803603602081101561073757600080fd5b50356118cb565b6104386004803603606081101561075457600080fd5b81359160208101359181019060608101604082013564010000000081111561077b57600080fd5b82018360208201111561078d57600080fd5b803590602001918460208302840111640100000000831117156107af57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611bc7945050505050565b60106020528060005260406000206000915090508060000160009054906101000a90046001600160a01b0316908060010160009054906101000a90046001600160a01b0316908060020160009054906101000a90046001600160a01b0316908060030154908060040154908060050154908060060160009054906101000a90046001600160a01b0316908060070154908060080160009054906101000a90046001600160a01b03169080600901549080600a01549080600b01549080600d018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109405780601f1061091557610100808354040283529160200191610940565b820191906000526020600020905b81548152906001019060200180831161092357829003601f168201915b50505050509080600e015490508e565b6001600160a01b0382166000908152600e602052604081206002015460ff166109b8576040805162461bcd60e51b81526020600482015260156024820152741b595b58995c88191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b6011548210610a08576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6010600060118481548110610a1957fe5b6000918252602080832090910154835282810193909352604091820181206001600160a01b0387168252600f0190925290205460ff16905092915050565b6000610a80600154610a7460065442611d1890919063ffffffff16565b9063ffffffff611d2d16565b90505b90565b600e6020526000908152604090208054600182015460028301546003909301546001600160a01b0390921692909160ff9091169084565b60005460ff16610b02576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600e6020526040902060010154610b5c576040805162461bcd60e51b815260206004820152600c60248201526b3737ba10309036b2b6b132b960a11b604482015290519081900360640190fd5b610bc2338383600d805480602002602001604051908101604052809291908181526020018280548015610bb857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b9a575b5050505050611d4f565b50506000805460ff19166001179055565b600d8181548110610be057fe5b6000918252602090912001546001600160a01b0316905081565b60045481565b600a5481565b60118181548110610c1357fe5b600091825260209091200154905081565b600f602052600090815260409020546001600160a01b031681565b600b5460ff1681565b6000805460ff16610c8e576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19169055670de0b6b3a7640000881115610cf5576040805162461bcd60e51b815260206004820152601960248201527f746f6f206d616e79207368617265732072657175657374656400000000000000604482015290519081900360640190fd5b6001600160a01b038916610d48576040805162461bcd60e51b815260206004820152601560248201527406170706c6963616e742063616e6e6f74206265203605c1b604482015290519081900360640190fd5b610d50612780565b610d618a8a8a8a8a8a8a8a89611f9b565b5050600954600019016000805460ff1916600117905598975050505050505050565b60035481565b60125481565b60115490565b60065481565b60025481565b60055481565b6000610dbe6002548361225c90919063ffffffff16565b610dc6610a57565b101592915050565b60005460ff16610e13576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600f60209081526040808320546001600160a01b03168352600e909152902060010154610e85576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b600081815260106020526040902060018101546001600160a01b0316610ef2576040805162461bcd60e51b815260206004820181905260248201527f70726f706f73616c206d7573742068617665206265656e2070726f706f736564604482015290519081900360640190fd5b600c81015460ff1615610f365760405162461bcd60e51b8152600401808060200182810382526023815260200180612a6a6023913960400191505060405180910390fd5b600c8101546301000000900460ff1615610f97576040805162461bcd60e51b815260206004820152601b60248201527f70726f706f73616c20686173206265656e2063616e63656c6c65640000000000604482015290519081900360640190fd5b600061100c6001611000610fa9610a57565b60115415610ff85760118054601091600091610fcc90600163ffffffff611d1816565b81548110610fd657fe5b9060005260206000200154815260200190815260200160002060090154610ffb565b60005b612275565b9063ffffffff61225c16565b60098301819055336000818152600f60205260408120546002860180546001600160a01b0319166001600160a01b039092169182179055600c8601805460ff19166001908117909155601180548083018255938190527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c689093018890559154939450928392917f2a383a979381335e3eb401ac01dd8083e024ff0256bf5338456ffc0063390bbd9188916110c09190611d18565b604080519283526020830191909152818101879052519081900360600190a350506000805460ff191660011790555050565b60005460ff16611137576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600f60209081526040808320546001600160a01b03168352600e9091529020600101546111a9576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b336000908152600f60209081526040808320546001600160a01b0316808452600e9092529091206011548410611220576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6000601060006011878154811061123357fe5b90600052602060002001548152602001908152602001600020905060038460ff161061129c576040805162461bcd60e51b81526020600482015260136024820152726d757374206265206c657373207468616e203360681b604482015290519081900360640190fd5b60008460ff1660028111156112ad57fe5b90506112bc8260090154610da7565b156112f85760405162461bcd60e51b8152600401808060200182810382526022815260200180612abd6022913960400191505060405180910390fd5b6001600160a01b0384166000908152600f8301602052604081205460ff16600281111561132157fe5b14611373576040805162461bcd60e51b815260206004820152601860248201527f6d656d6265722068617320616c726561647920766f7465640000000000000000604482015290519081900360640190fd5b600181600281111561138157fe5b14806113985750600281600281111561139657fe5b145b6113e9576040805162461bcd60e51b815260206004820152601d60248201527f766f7465206d7573742062652065697468657220596573206f72204e6f000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600f830160205260409020805482919060ff1916600183600281111561141a57fe5b0217905550600181600281111561142d57fe5b141561146a576001830154600a83015461144c9163ffffffff61225c16565b600a830155600383015486111561146557600383018690555b61149d565b600281600281111561147857fe5b141561149d576001830154600b8301546114979163ffffffff61225c16565b600b8301555b6040805160ff8716815290516001600160a01b03861691339189917f29bf0061f2faa9daa482f061b116195432d435536d8af4ae6b3c5dd78223679b919081900360200190a450506000805460ff1916600117905550505050565b601154600090821061154b576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b601060006011848154811061155c57fe5b90600052602060002001548152602001908152602001600020600c0160016006811061158457fe5b602081049091015460ff601f9092166101000a9004169050919050565b6008546001600160a01b031681565b600c5481565b6115be612780565b600082815260106020526040808220815160c081019283905292600c909101916006918390855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116115e5575094979650505050505050565b60015481565b60095490565b6007546001600160a01b031681565b60095481565b60005461010090046001600160a01b031681565b60125490565b60005460ff166116a0576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155818152601060205260409020600c81015460ff16156116fa5760405162461bcd60e51b8152600401808060200182810382526023815260200180612a6a6023913960400191505060405180910390fd5b600c8101546301000000900460ff16156117455760405162461bcd60e51b8152600401808060200182810382526023815260200180612adf6023913960400191505060405180910390fd5b60018101546001600160a01b031633146117a6576040805162461bcd60e51b815260206004820152601e60248201527f736f6c656c79207468652070726f706f7365722063616e2063616e63656c0000604482015290519081900360640190fd5b600c8101805463ff000000191663010000001790556006810154600182015460058301546040805163a9059cbb60e01b81526001600160a01b039384166004820152602481019290925251919092169163a9059cbb9160448083019260209291908290030181600087803b15801561181d57600080fd5b505af1158015611831573d6000803e3d6000fd5b505050506040513d602081101561184757600080fd5b50516118845760405162461bcd60e51b81526004018080602001828103825260248152602001806129f96024913960400191505060405180910390fd5b60408051338152905183917fc215fed6680bb02d323dc3f8b8f85241572607538426059c9232601bd293c3be919081900360200190a250506000805460ff19166001179055565b60005460ff16611910576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff191690556119238161228c565b60006011828154811061193257fe5b600091825260208083209190910154808352601090915260408220600c8101805461ff001916610100179055909250908061196c8561259d565b91509150670de0b6b3a76400006119928460030154600a5461225c90919063ffffffff16565b111561199d57600091505b8115611b74576001601255600c8301805462ff000019166201000017905582546001600160a01b03166000908152600e602052604090206002015460ff1615611a3357600383015483546001600160a01b03166000908152600e6020526040902060010154611a119163ffffffff61225c16565b83546001600160a01b03166000908152600e6020526040902060010155611b55565b82546001600160a01b039081166000908152600f60209081526040808320549093168252600e9052206002015460ff1615611ab75782546001600160a01b039081166000908152600f602090815260408083205490931680835283832080546001600160a01b03199081168317909155600e90925292909120805490911690911790555b6040805160808101825284546001600160a01b0390811680835260038088015460208086019182526001868801818152600060608901818152968152600e8452898120985189549089166001600160a01b0319918216178a559451928901929092555160028801805491151560ff19909216919091179055935195909201949094558754909216808252600f90925292909220805490911690911790555b6003830154600a54611b6c9163ffffffff61225c16565b600a55611b7a565b60026012555b6040805183151581529051859187917f86f74240ecee9e4230d26ff92e17fee978460d9c0f78f5c88b2864c9e7a494279181900360200190a350506000805460ff19166001179055505050565b60005460ff16611c0c576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600e6020526040902060010154611c66576040805162461bcd60e51b815260206004820152600c60248201526b3737ba10309036b2b6b132b960a11b604482015290519081900360640190fd5b60005b8151811015611cf9578015611cf157816001820381518110611c8757fe5b60200260200101516001600160a01b0316828281518110611ca457fe5b60200260200101516001600160a01b031611611cf15760405162461bcd60e51b8152600401808060200182810382526030815260200180612a8d6030913960400191505060405180910390fd5b600101611c69565b50611d0633848484611d4f565b50506000805460ff1916600117905550565b600082821115611d2757600080fd5b50900390565b6000808211611d3b57600080fd5b6000828481611d4657fe5b04949350505050565b600a54600090611d65908263ffffffff61225c16565b6001600160a01b0386166000908152600e60205260409020600181015491925090851115611dd0576040805162461bcd60e51b8152602060048201526013602482015272696e73756666696369656e742073686172657360681b604482015290519081900360640190fd5b611ddd81600301546114f8565b611e185760405162461bcd60e51b815260040180806020018281038252604d8152602001806129ac604d913960600191505060405180910390fd5b6001810154611e2d908663ffffffff611d1816565b6001820155600a54611e45908663ffffffff611d1816565b600a5560085460405163732c8f5760e01b81526001600160a01b03888116600483019081526024830189905260448301869052608060648401908152875160848501528751929094169363732c8f57938b938b9389938b939192909160a401906020808601910280838360005b83811015611eca578181015183820152602001611eb2565b5050505090500195505050505050602060405180830381600087803b158015611ef257600080fd5b505af1158015611f06573d6000803e3d6000fd5b505050506040513d6020811015611f1c57600080fd5b5051611f595760405162461bcd60e51b815260040180806020018281038252602a815260200180612a40602a913960400191505060405180910390fd5b6040805186815260208101869052815133927fcad1a1c68982832d9abc314de8a1e5d5e8c81b0588961e360766736d10c3be1a928290030190a2505050505050565b611fa361279e565b604051806101e001604052808b6001600160a01b03168152602001336001600160a01b0316815260200160006001600160a01b031681526020018a8152602001898152602001888152602001876001600160a01b03168152602001868152602001856001600160a01b03168152602001600081526020016000815260200160008152602001838152602001848152602001600081525090508060106000600954815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060e082015181600701556101008201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c01906006612194929190612847565b506101a082015180516121b191600d8401916020909101906128d9565b506101c09190910151600e90910155336000818152600f60209081526040918290205460095483519081529182018d90528183018c9052606082018b90526001600160a01b038a8116608084015260a083018a905288811660c0840152925190831693928e1692849290917f1facc413faf060d5cc5c8bc12d8fe29e5c530eb98e2475c76733ec749787a7509181900360e00190a45050600980546001019055505050505050505050565b60008282018381101561226e57600080fd5b9392505050565b600081831015612285578161226e565b5090919050565b60115481106122dc576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6122e461279e565b60106000601184815481106122f557fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116123cb57505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815293820193929183018282801561248e5780601f106124635761010080835404028352916020019161248e565b820191906000526020600020905b81548152906001019060200180831161247157829003601f168201915b50505050508152602001600e8201548152505090508061018001516001600681106124b557fe5b6020020151156124f65760405162461bcd60e51b8152600401808060200182810382526023815260200180612b026023913960400191505060405180910390fd5b81158061255e575060106000601161251585600163ffffffff611d1816565b8154811061251f57fe5b90600052602060002001548152602001908152602001600020600c0160016006811061254757fe5b602081049091015460ff601f9092166101000a9004165b6125995760405162461bcd60e51b8152600401808060200182810382526023815260200180612a1d6023913960400191505060405180910390fd5b5050565b6000806125a861279e565b60106000601186815481106125b957fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff16151581526020600192830181810494850194909303909202910180841161268f57505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529382019392918301828280156127525780601f1061272757610100808354040283529160200191612752565b820191906000526020600020905b81548152906001019060200180831161273557829003601f168201915b5050509183525050600e91909101546020909101526101608101516101409091015111946000945092505050565b6040518060c001604052806006906020820280388339509192915050565b60405180610280016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001612833612780565b815260200160608152602001600081525090565b6001830191839082156128c95791602002820160005b8382111561289a57835183826101000a81548160ff021916908315150217905550926020019260010160208160000104928301926001030261285d565b80156128c75782816101000a81549060ff021916905560010160208160000104928301926001030261289a565b505b506128d5929150612953565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061291a57805160ff1916838001178555612947565b82800160010185558215612947579182015b8281111561294757825182559160200191906001019061292c565b506128d5929150612971565b610a8391905b808211156128d557805460ff19168155600101612959565b610a8391905b808211156128d5576000815560010161297756fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c0063616e6e6f7420726167657175697420756e74696c206869676865737420696e6465782070726f706f73616c206d656d62657220766f74656420594553206f6e2069732070726f6365737365646661696c656420746f2072657475726e207472696275746520746f2070726f706f73657270726576696f75732070726f706f73616c206d7573742062652070726f6365737365647769746864726177616c206f6620746f6b656e732066726f6d206775696c6442616e6b206661696c656470726f706f73616c2068617320616c7265616479206265656e2073706f6e736f726564746f6b656e206c697374206d75737420626520756e6971756520616e6420696e20617363656e64696e67206f7264657270726f706f73616c20766f74696e6720706572696f6420686173206578706972656470726f706f73616c2068617320616c7265616479206265656e2063616e63656c6c656470726f706f73616c2068617320616c7265616479206265656e2070726f636573736564a265627a7a72305820ffa2b7b09108c0ac06fc33e0ae4aec417565e7d3add4b822bd5cf908cea7f29864736f6c63430005090032608060405234801561001057600080fd5b50600080546001600160a01b031916331790556104e6806100326000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301e3366714610046578063732c8f57146100905780638da5cb5b1461014f575b600080fd5b61007c6004803603606081101561005c57600080fd5b506001600160a01b03813581169160208101359091169060400135610173565b604080519115158252519081900360200190f35b61007c600480360360808110156100a657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156100dd57600080fd5b8201836020820111156100ef57600080fd5b8035906020019184602083028401116401000000008311171561011157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061026c945050505050565b61015761044e565b604080516001600160a01b039092168252519081900360200190f35b600080546001600160a01b0316331461018b57600080fd5b836001600160a01b0316836001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398846040518082815260200191505060405180910390a3836001600160a01b031663a9059cbb84846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561023657600080fd5b505af115801561024a573d6000803e3d6000fd5b505050506040513d602081101561026057600080fd5b505190505b9392505050565b600080546001600160a01b0316331461028457600080fd5b60005b82518110156104425760006103318483815181106102a157fe5b60200260200101516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156102fe57600080fd5b505afa158015610312573d6000803e3d6000fd5b505050506040513d602081101561032857600080fd5b5051878761045d565b905083828151811061033f57fe5b60200260200101516001600160a01b0316876001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398836040518082815260200191505060405180910390a383828151811061039d57fe5b60200260200101516001600160a01b031663a9059cbb88836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b505050506040513d602081101561042e57600080fd5b505161043957600080fd5b50600101610287565b50600195945050505050565b6000546001600160a01b031681565b60008161046957600080fd5b8361047657506000610265565b8383028385828161048357fe5b04141561049c5782818161049357fe5b04915050610265565b838386816104a657fe5b04029594505050505056fea265627a7a72305820600a90e68081feae486f77ec58352ebe4f959e2362fac128a8d418122da6121464736f6c634300050900325f766f74696e67506572696f644c656e6774682065786365656473206c696d69745f656d657267656e637950726f63657373696e67576169742063616e6e6f742062652030", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102065760003560e01c80638b15a6051161011a578063b470aade116100ad578063dacaa9d11161007c578063dacaa9d1146106f4578063de292789146106fc578063e0a8f6f514610704578063e63bc62d14610721578063ec51b0bf1461073e57610206565b8063b470aade146106d4578063b9e2bea0146106dc578063c89039c5146106e4578063da35c664146106ec57610206565b8063a3dc3800116100e9578063a3dc380014610652578063a42afd291461066f578063a44a5e7e14610677578063b2643aab1461067f57610206565b80638b15a605146105ea5780639425a476146105f25780639746d9401461060f57806399653fbe1461062c57610206565b80633b214a741161019d57806363858f2d1161016c57806363858f2d146105c257806365372147146105ca578063797daf70146105d25780637d5b6c72146105da5780638340bbce146105e257610206565b80633b214a7414610483578063402c1794146104a0578063505afd74146104c6578063590f940b146104e257610206565b806315eb349e116101d957806315eb349e146104155780631dafede01461043a5780631e2362ec146104735780633a98ef391461047b57610206565b8063013cf08b1461020b578063044a0ca814610355578063086146d2146103a557806308ae4b0c146103bf575b600080fd5b6102286004803603602081101561022157600080fd5b50356107ed565b604051808f6001600160a01b03166001600160a01b031681526020018e6001600160a01b03166001600160a01b031681526020018d6001600160a01b03166001600160a01b031681526020018c81526020018b81526020018a8152602001896001600160a01b03166001600160a01b03168152602001888152602001876001600160a01b03166001600160a01b0316815260200186815260200185815260200184815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561030d5781810151838201526020016102f5565b50505050905090810190601f16801561033a5780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b6103816004803603604081101561036b57600080fd5b506001600160a01b038135169060200135610950565b6040518082600281111561039157fe5b60ff16815260200191505060405180910390f35b6103ad610a57565b60408051918252519081900360200190f35b6103e5600480360360208110156103d557600080fd5b50356001600160a01b0316610a86565b604080516001600160a01b0390951685526020850193909352901515838301526060830152519081900360800190f35b6104386004803603604081101561042b57600080fd5b5080359060200135610abd565b005b6104576004803603602081101561045057600080fd5b5035610bd3565b604080516001600160a01b039092168252519081900360200190f35b6103ad610bfa565b6103ad610c00565b6103ad6004803603602081101561049957600080fd5b5035610c06565b610457600480360360208110156104b657600080fd5b50356001600160a01b0316610c24565b6104ce610c3f565b604080519115158252519081900360200190f35b6103ad60048036036101008110156104f957600080fd5b6001600160a01b038235811692602081013592604082013592606083013592608081013582169260a08201359260c0830135169190810190610100810160e082013564010000000081111561054d57600080fd5b82018360208201111561055f57600080fd5b8035906020019184600183028401116401000000008311171561058157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c48945050505050565b6103ad610d83565b6103ad610d89565b6103ad610d8f565b6103ad610d95565b6103ad610d9b565b6103ad610da1565b6104ce6004803603602081101561060857600080fd5b5035610da7565b6104386004803603602081101561062557600080fd5b5035610dce565b6104386004803603604081101561064257600080fd5b508035906020013560ff166110f2565b6104ce6004803603602081101561066857600080fd5b50356114f8565b6104576115a1565b6103ad6115b0565b61069c6004803603602081101561069557600080fd5b50356115b6565b604051808260c080838360005b838110156106c15781810151838201526020016106a9565b5050505090500191505060405180910390f35b6103ad611620565b6103ad611626565b61045761162c565b6103ad61163b565b610457611641565b6103ad611655565b6104386004803603602081101561071a57600080fd5b503561165b565b6104386004803603602081101561073757600080fd5b50356118cb565b6104386004803603606081101561075457600080fd5b81359160208101359181019060608101604082013564010000000081111561077b57600080fd5b82018360208201111561078d57600080fd5b803590602001918460208302840111640100000000831117156107af57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611bc7945050505050565b60106020528060005260406000206000915090508060000160009054906101000a90046001600160a01b0316908060010160009054906101000a90046001600160a01b0316908060020160009054906101000a90046001600160a01b0316908060030154908060040154908060050154908060060160009054906101000a90046001600160a01b0316908060070154908060080160009054906101000a90046001600160a01b03169080600901549080600a01549080600b01549080600d018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109405780601f1061091557610100808354040283529160200191610940565b820191906000526020600020905b81548152906001019060200180831161092357829003601f168201915b50505050509080600e015490508e565b6001600160a01b0382166000908152600e602052604081206002015460ff166109b8576040805162461bcd60e51b81526020600482015260156024820152741b595b58995c88191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b6011548210610a08576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6010600060118481548110610a1957fe5b6000918252602080832090910154835282810193909352604091820181206001600160a01b0387168252600f0190925290205460ff16905092915050565b6000610a80600154610a7460065442611d1890919063ffffffff16565b9063ffffffff611d2d16565b90505b90565b600e6020526000908152604090208054600182015460028301546003909301546001600160a01b0390921692909160ff9091169084565b60005460ff16610b02576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600e6020526040902060010154610b5c576040805162461bcd60e51b815260206004820152600c60248201526b3737ba10309036b2b6b132b960a11b604482015290519081900360640190fd5b610bc2338383600d805480602002602001604051908101604052809291908181526020018280548015610bb857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b9a575b5050505050611d4f565b50506000805460ff19166001179055565b600d8181548110610be057fe5b6000918252602090912001546001600160a01b0316905081565b60045481565b600a5481565b60118181548110610c1357fe5b600091825260209091200154905081565b600f602052600090815260409020546001600160a01b031681565b600b5460ff1681565b6000805460ff16610c8e576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19169055670de0b6b3a7640000881115610cf5576040805162461bcd60e51b815260206004820152601960248201527f746f6f206d616e79207368617265732072657175657374656400000000000000604482015290519081900360640190fd5b6001600160a01b038916610d48576040805162461bcd60e51b815260206004820152601560248201527406170706c6963616e742063616e6e6f74206265203605c1b604482015290519081900360640190fd5b610d50612780565b610d618a8a8a8a8a8a8a8a89611f9b565b5050600954600019016000805460ff1916600117905598975050505050505050565b60035481565b60125481565b60115490565b60065481565b60025481565b60055481565b6000610dbe6002548361225c90919063ffffffff16565b610dc6610a57565b101592915050565b60005460ff16610e13576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600f60209081526040808320546001600160a01b03168352600e909152902060010154610e85576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b600081815260106020526040902060018101546001600160a01b0316610ef2576040805162461bcd60e51b815260206004820181905260248201527f70726f706f73616c206d7573742068617665206265656e2070726f706f736564604482015290519081900360640190fd5b600c81015460ff1615610f365760405162461bcd60e51b8152600401808060200182810382526023815260200180612a6a6023913960400191505060405180910390fd5b600c8101546301000000900460ff1615610f97576040805162461bcd60e51b815260206004820152601b60248201527f70726f706f73616c20686173206265656e2063616e63656c6c65640000000000604482015290519081900360640190fd5b600061100c6001611000610fa9610a57565b60115415610ff85760118054601091600091610fcc90600163ffffffff611d1816565b81548110610fd657fe5b9060005260206000200154815260200190815260200160002060090154610ffb565b60005b612275565b9063ffffffff61225c16565b60098301819055336000818152600f60205260408120546002860180546001600160a01b0319166001600160a01b039092169182179055600c8601805460ff19166001908117909155601180548083018255938190527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c689093018890559154939450928392917f2a383a979381335e3eb401ac01dd8083e024ff0256bf5338456ffc0063390bbd9188916110c09190611d18565b604080519283526020830191909152818101879052519081900360600190a350506000805460ff191660011790555050565b60005460ff16611137576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600f60209081526040808320546001600160a01b03168352600e9091529020600101546111a9576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b336000908152600f60209081526040808320546001600160a01b0316808452600e9092529091206011548410611220576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6000601060006011878154811061123357fe5b90600052602060002001548152602001908152602001600020905060038460ff161061129c576040805162461bcd60e51b81526020600482015260136024820152726d757374206265206c657373207468616e203360681b604482015290519081900360640190fd5b60008460ff1660028111156112ad57fe5b90506112bc8260090154610da7565b156112f85760405162461bcd60e51b8152600401808060200182810382526022815260200180612abd6022913960400191505060405180910390fd5b6001600160a01b0384166000908152600f8301602052604081205460ff16600281111561132157fe5b14611373576040805162461bcd60e51b815260206004820152601860248201527f6d656d6265722068617320616c726561647920766f7465640000000000000000604482015290519081900360640190fd5b600181600281111561138157fe5b14806113985750600281600281111561139657fe5b145b6113e9576040805162461bcd60e51b815260206004820152601d60248201527f766f7465206d7573742062652065697468657220596573206f72204e6f000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600f830160205260409020805482919060ff1916600183600281111561141a57fe5b0217905550600181600281111561142d57fe5b141561146a576001830154600a83015461144c9163ffffffff61225c16565b600a830155600383015486111561146557600383018690555b61149d565b600281600281111561147857fe5b141561149d576001830154600b8301546114979163ffffffff61225c16565b600b8301555b6040805160ff8716815290516001600160a01b03861691339189917f29bf0061f2faa9daa482f061b116195432d435536d8af4ae6b3c5dd78223679b919081900360200190a450506000805460ff1916600117905550505050565b601154600090821061154b576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b601060006011848154811061155c57fe5b90600052602060002001548152602001908152602001600020600c0160016006811061158457fe5b602081049091015460ff601f9092166101000a9004169050919050565b6008546001600160a01b031681565b600c5481565b6115be612780565b600082815260106020526040808220815160c081019283905292600c909101916006918390855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116115e5575094979650505050505050565b60015481565b60095490565b6007546001600160a01b031681565b60095481565b60005461010090046001600160a01b031681565b60125490565b60005460ff166116a0576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155818152601060205260409020600c81015460ff16156116fa5760405162461bcd60e51b8152600401808060200182810382526023815260200180612a6a6023913960400191505060405180910390fd5b600c8101546301000000900460ff16156117455760405162461bcd60e51b8152600401808060200182810382526023815260200180612adf6023913960400191505060405180910390fd5b60018101546001600160a01b031633146117a6576040805162461bcd60e51b815260206004820152601e60248201527f736f6c656c79207468652070726f706f7365722063616e2063616e63656c0000604482015290519081900360640190fd5b600c8101805463ff000000191663010000001790556006810154600182015460058301546040805163a9059cbb60e01b81526001600160a01b039384166004820152602481019290925251919092169163a9059cbb9160448083019260209291908290030181600087803b15801561181d57600080fd5b505af1158015611831573d6000803e3d6000fd5b505050506040513d602081101561184757600080fd5b50516118845760405162461bcd60e51b81526004018080602001828103825260248152602001806129f96024913960400191505060405180910390fd5b60408051338152905183917fc215fed6680bb02d323dc3f8b8f85241572607538426059c9232601bd293c3be919081900360200190a250506000805460ff19166001179055565b60005460ff16611910576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff191690556119238161228c565b60006011828154811061193257fe5b600091825260208083209190910154808352601090915260408220600c8101805461ff001916610100179055909250908061196c8561259d565b91509150670de0b6b3a76400006119928460030154600a5461225c90919063ffffffff16565b111561199d57600091505b8115611b74576001601255600c8301805462ff000019166201000017905582546001600160a01b03166000908152600e602052604090206002015460ff1615611a3357600383015483546001600160a01b03166000908152600e6020526040902060010154611a119163ffffffff61225c16565b83546001600160a01b03166000908152600e6020526040902060010155611b55565b82546001600160a01b039081166000908152600f60209081526040808320549093168252600e9052206002015460ff1615611ab75782546001600160a01b039081166000908152600f602090815260408083205490931680835283832080546001600160a01b03199081168317909155600e90925292909120805490911690911790555b6040805160808101825284546001600160a01b0390811680835260038088015460208086019182526001868801818152600060608901818152968152600e8452898120985189549089166001600160a01b0319918216178a559451928901929092555160028801805491151560ff19909216919091179055935195909201949094558754909216808252600f90925292909220805490911690911790555b6003830154600a54611b6c9163ffffffff61225c16565b600a55611b7a565b60026012555b6040805183151581529051859187917f86f74240ecee9e4230d26ff92e17fee978460d9c0f78f5c88b2864c9e7a494279181900360200190a350506000805460ff19166001179055505050565b60005460ff16611c0c576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600e6020526040902060010154611c66576040805162461bcd60e51b815260206004820152600c60248201526b3737ba10309036b2b6b132b960a11b604482015290519081900360640190fd5b60005b8151811015611cf9578015611cf157816001820381518110611c8757fe5b60200260200101516001600160a01b0316828281518110611ca457fe5b60200260200101516001600160a01b031611611cf15760405162461bcd60e51b8152600401808060200182810382526030815260200180612a8d6030913960400191505060405180910390fd5b600101611c69565b50611d0633848484611d4f565b50506000805460ff1916600117905550565b600082821115611d2757600080fd5b50900390565b6000808211611d3b57600080fd5b6000828481611d4657fe5b04949350505050565b600a54600090611d65908263ffffffff61225c16565b6001600160a01b0386166000908152600e60205260409020600181015491925090851115611dd0576040805162461bcd60e51b8152602060048201526013602482015272696e73756666696369656e742073686172657360681b604482015290519081900360640190fd5b611ddd81600301546114f8565b611e185760405162461bcd60e51b815260040180806020018281038252604d8152602001806129ac604d913960600191505060405180910390fd5b6001810154611e2d908663ffffffff611d1816565b6001820155600a54611e45908663ffffffff611d1816565b600a5560085460405163732c8f5760e01b81526001600160a01b03888116600483019081526024830189905260448301869052608060648401908152875160848501528751929094169363732c8f57938b938b9389938b939192909160a401906020808601910280838360005b83811015611eca578181015183820152602001611eb2565b5050505090500195505050505050602060405180830381600087803b158015611ef257600080fd5b505af1158015611f06573d6000803e3d6000fd5b505050506040513d6020811015611f1c57600080fd5b5051611f595760405162461bcd60e51b815260040180806020018281038252602a815260200180612a40602a913960400191505060405180910390fd5b6040805186815260208101869052815133927fcad1a1c68982832d9abc314de8a1e5d5e8c81b0588961e360766736d10c3be1a928290030190a2505050505050565b611fa361279e565b604051806101e001604052808b6001600160a01b03168152602001336001600160a01b0316815260200160006001600160a01b031681526020018a8152602001898152602001888152602001876001600160a01b03168152602001868152602001856001600160a01b03168152602001600081526020016000815260200160008152602001838152602001848152602001600081525090508060106000600954815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060e082015181600701556101008201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c01906006612194929190612847565b506101a082015180516121b191600d8401916020909101906128d9565b506101c09190910151600e90910155336000818152600f60209081526040918290205460095483519081529182018d90528183018c9052606082018b90526001600160a01b038a8116608084015260a083018a905288811660c0840152925190831693928e1692849290917f1facc413faf060d5cc5c8bc12d8fe29e5c530eb98e2475c76733ec749787a7509181900360e00190a45050600980546001019055505050505050505050565b60008282018381101561226e57600080fd5b9392505050565b600081831015612285578161226e565b5090919050565b60115481106122dc576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6122e461279e565b60106000601184815481106122f557fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116123cb57505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815293820193929183018282801561248e5780601f106124635761010080835404028352916020019161248e565b820191906000526020600020905b81548152906001019060200180831161247157829003601f168201915b50505050508152602001600e8201548152505090508061018001516001600681106124b557fe5b6020020151156124f65760405162461bcd60e51b8152600401808060200182810382526023815260200180612b026023913960400191505060405180910390fd5b81158061255e575060106000601161251585600163ffffffff611d1816565b8154811061251f57fe5b90600052602060002001548152602001908152602001600020600c0160016006811061254757fe5b602081049091015460ff601f9092166101000a9004165b6125995760405162461bcd60e51b8152600401808060200182810382526023815260200180612a1d6023913960400191505060405180910390fd5b5050565b6000806125a861279e565b60106000601186815481106125b957fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff16151581526020600192830181810494850194909303909202910180841161268f57505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529382019392918301828280156127525780601f1061272757610100808354040283529160200191612752565b820191906000526020600020905b81548152906001019060200180831161273557829003601f168201915b5050509183525050600e91909101546020909101526101608101516101409091015111946000945092505050565b6040518060c001604052806006906020820280388339509192915050565b60405180610280016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001612833612780565b815260200160608152602001600081525090565b6001830191839082156128c95791602002820160005b8382111561289a57835183826101000a81548160ff021916908315150217905550926020019260010160208160000104928301926001030261285d565b80156128c75782816101000a81549060ff021916905560010160208160000104928301926001030261289a565b505b506128d5929150612953565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061291a57805160ff1916838001178555612947565b82800160010185558215612947579182015b8281111561294757825182559160200191906001019061292c565b506128d5929150612971565b610a8391905b808211156128d557805460ff19168155600101612959565b610a8391905b808211156128d5576000815560010161297756fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c0063616e6e6f7420726167657175697420756e74696c206869676865737420696e6465782070726f706f73616c206d656d62657220766f74656420594553206f6e2069732070726f6365737365646661696c656420746f2072657475726e207472696275746520746f2070726f706f73657270726576696f75732070726f706f73616c206d7573742062652070726f6365737365647769746864726177616c206f6620746f6b656e732066726f6d206775696c6442616e6b206661696c656470726f706f73616c2068617320616c7265616479206265656e2073706f6e736f726564746f6b656e206c697374206d75737420626520756e6971756520616e6420696e20617363656e64696e67206f7264657270726f706f73616c20766f74696e6720706572696f6420686173206578706972656470726f706f73616c2068617320616c7265616479206265656e2063616e63656c6c656470726f706f73616c2068617320616c7265616479206265656e2070726f636573736564a265627a7a72305820ffa2b7b09108c0ac06fc33e0ae4aec417565e7d3add4b822bd5cf908cea7f29864736f6c63430005090032", + "sourceMap": "157:32734:15:-;;;3275:1;3244:32;;;;3312:30;;;;3456:36;;;-1:-1:-1;;3456:36:15;;;3555:45;;6709:2573;5:2:-1;;;;30:1;27;20:12;5:2;6709:2573:15;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;6709:2573:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1229:11:21;:18;;-1:-1:-1;;1229:18:21;1243:4;1229:18;;;6709:2573:15;;;;;-1:-1:-1;;;;;7113:23:15;;7105:56;;;;;-1:-1:-1;;;7105:56:15;;;;;;;;;;;;-1:-1:-1;;;7105:56:15;;;;;;;;;;;;;;;7198:1;7180:15;:19;7172:59;;;;;-1:-1:-1;;;7172:59:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;7272:1;7250:19;:23;7242:67;;;;;-1:-1:-1;;;7242:67:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;1620:6;7328:19;:47;;7320:93;;;;-1:-1:-1;;;7320:93:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1711:6;7432:18;:45;;7424:90;;;;;-1:-1:-1;;;7424:90:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7560:1;7533:24;:28;7525:77;;;;-1:-1:-1;;;7525:77:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8184:8;:20;;-1:-1:-1;;;;;;8184:20:15;-1:-1:-1;;;;;;8184:20:15;;;;;;;;;;;;;8239:18;;8217:12;:41;;-1:-1:-1;;;;;;8217:41:15;;;;;;;;8271:360;8295:22;8291:1;:26;8271:360;;;8377:1;8347:15;8363:1;8347:18;;;;;;;;;;;-1:-1:-1;;;;;8347:32:15;;;8339:71;;;;;-1:-1:-1;;;8339:71:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;8572:14;8599:15;8615:1;8599:18;;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;-1:-1;8572:47:15;;;;;;;;;;;;-1:-1:-1;;;;;;8572:47:15;-1:-1:-1;;;;;8572:47:15;;;;;;;;;;8319:3;8271:360;;;;8655:15;;;;;:::i;:::-;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;8643:9:15;:27;;-1:-1:-1;;;;;;8643:27:15;;;-1:-1:-1;;;;;8643:27:15;;;;;;;-1:-1:-1;8683:32:15;;;8726:18;:40;;;8777:17;:38;;;8826:23;:50;;;-1:-1:-1;8926:34:15;;;9081:3;-1:-1:-1;9065:19:15;9117:28;;;;;;;;-1:-1:-1;9124:8:15;;8643:27;9124:8;;;;;;9117:28;;;;;;;;;;;;;;;;;;;;;;9097:17;;;:7;:17;;;;;:48;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9097:48:15;;;;;;;;;;;;;;;;;;;;9195:8;;;;;;;9156:36;;;:26;:36;;;;;:47;;;;;;;;;9214:11;:15;;;9262:8;;9247:27;;;;;;;9262:8;;;;;;9247:27;;;;;;;;;6709:2573;;;;;;;;;;157:32734;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "157:32734:15:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:32734:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6231:45;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6231:45:15;;:::i;:::-;;;;;-1:-1:-1;;;;;6231:45:15;-1:-1:-1;;;;;6231:45:15;;;;;;-1:-1:-1;;;;;6231:45:15;-1:-1:-1;;;;;6231:45:15;;;;;;-1:-1:-1;;;;;6231:45:15;-1:-1:-1;;;;;6231:45:15;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6231:45:15;-1:-1:-1;;;;;6231:45:15;;;;;;;;;;;-1:-1:-1;;;;;6231:45:15;-1:-1:-1;;;;;6231:45:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6231:45:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32533:355;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32533:355:15;;-1:-1:-1;;;;;32533:355:15;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30844:126;;;:::i;:::-;;;;;;;;;;;;;;;;6113:41;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6113:41:15;-1:-1:-1;;;;;6113:41:15;;:::i;:::-;;;;-1:-1:-1;;;;;6113:41:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25972:173;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;25972:173:15;;;;;;;:::i;:::-;;5957:30;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5957:30:15;;:::i;:::-;;;;-1:-1:-1;;;;;5957:30:15;;;;;;;;;;;;;;630:38;;;:::i;3312:30::-;;;:::i;6285:::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6285:30:15;;:::i;6161:61::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6161:61:15;-1:-1:-1;;;;;6161:61:15;;:::i;3456:36::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;9362:1339;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;9362:1339:15;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9362:1339:15;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;9362:1339:15;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9362:1339:15;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;9362:1339:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;9362:1339:15;;-1:-1:-1;9362:1339:15;;-1:-1:-1;;;;;9362:1339:15:i;558:32::-;;;:::i;17320:21::-;;;:::i;30978:110::-;;;:::i;1128:28::-;;;:::i;485:33::-;;;:::i;777:30::-;;;:::i;32356:169::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32356:169:15;;:::i;13399:2010::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13399:2010:15;;:::i;15521:1793::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15521:1793:15;;;;;;;;;:::i;31325:246::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31325:246:15;;:::i;1292:26::-;;;:::i;3555:45::-;;;:::i;31096:136::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31096:136:15;;:::i;:::-;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;31096:136:15;;;;;;;;;;;;;;;;387:29;;;:::i;15415:92::-;;;:::i;1207:26::-;;;:::i;3244:32::-;;;:::i;300:23::-;;;:::i;17348:114::-;;;:::i;29122:650::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;29122:650:15;;:::i;17470:3550::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17470:3550:15;;:::i;26153:580::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;26153:580:15;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;26153:580:15;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;26153:580:15;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;26153:580:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;26153:580:15;;-1:-1:-1;26153:580:15;;-1:-1:-1;;;;;26153:580:15:i;6231:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6231:45:15;;;;;;;;;;;;;-1:-1:-1;;;;;6231:45:15;;;;;;;;;;;;;-1:-1:-1;;;;;6231:45:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6231:45:15;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6231:45:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;32533:355::-;-1:-1:-1;;;;;32656:22:15;;32631:4;32656:22;;;:7;:22;;;;;:29;;;;;32648:63;;;;;-1:-1:-1;;;32648:63:15;;;;;;;;;;;;-1:-1:-1;;;32648:63:15;;;;;;;;;;;;;;;32746:13;:20;32730:36;;32722:72;;;;;-1:-1:-1;;;32722:72:15;;;;;;;;;;;;-1:-1:-1;;;32722:72:15;;;;;;;;;;;;;;;32812:9;:39;32822:13;32836;32822:28;;;;;;;;;;;;;;;;;;;;32812:39;;;;;;;;;;;;;;;-1:-1:-1;;;;;32812:68:15;;;;:53;;:68;;;;;;;;;-1:-1:-1;32533:355:15;;;;:::o;30844:126::-;30893:7;30920:42;30947:14;;30920:22;30928:13;;30920:3;:7;;:22;;;;:::i;:::-;:26;:42;:26;:42;:::i;:::-;30913:49;;30844:126;;:::o;6113:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6113:41:15;;;;;;;;;;;;:::o;25972:173::-;1754:11:21;;;;1746:55;;;;;-1:-1:-1;;;1746:55:21;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1746:55:21;;;;;;;;;;;;;;;1893:5;1879:19;;-1:-1:-1;;1879:19:21;;;6371:10:15;6363:19;;:7;:19;;;;;-1:-1:-1;6363:26:15;;6355:56;;;;;-1:-1:-1;;;6355:56:15;;;;;;;;;;;;-1:-1:-1;;;6355:56:15;;;;;;;;;;;;;;;26074:63;26084:10;26096:12;26110:10;26122:14;26074:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;26074:63:15;;;-1:-1:-1;26074:63:15;;;;;;;;;;;;;;;;;:9;:63::i;:::-;-1:-1:-1;;2059:11:21;:18;;-1:-1:-1;;2059:18:21;2073:4;2059:18;;;25972:173:15:o;5957:30::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5957:30:15;;-1:-1:-1;5957:30:15;:::o;630:38::-;;;;:::o;3312:30::-;;;;:::o;6285:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6285:30:15;:::o;6161:61::-;;;;;;;;;;;;-1:-1:-1;;;;;6161:61:15;;:::o;3456:36::-;;;;;;:::o;9362:1339::-;9678:18;1754:11:21;;;;1746:55;;;;;-1:-1:-1;;;1746:55:21;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1746:55:21;;;;;;;;;;;;;;;1893:5;1879:19;;-1:-1:-1;;1879:19:21;;;2028:6:15;9717:39;;;9709:77;;;;;-1:-1:-1;;;9709:77:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9970:23:15;;9962:57;;;;;-1:-1:-1;;;9962:57:15;;;;;;;;;;;;-1:-1:-1;;;9962:57:15;;;;;;;;;;;;;;;10359:20;;:::i;:::-;10460:136;10476:9;10487:15;10504:13;10519:14;10535:12;10549:16;10567:12;10581:7;10590:5;10460:15;:136::i;:::-;-1:-1:-1;;10614:13:15;;-1:-1:-1;;10614:17:15;2059:11:21;:18;;-1:-1:-1;;2059:18:21;2073:4;2059:18;;;9362:1339:15;;-1:-1:-1;;;;;;;;9362:1339:15:o;558:32::-;;;;:::o;17320:21::-;;;;:::o;30978:110::-;31060:13;:20;30978:110;:::o;1128:28::-;;;;:::o;485:33::-;;;;:::o;777:30::-;;;;:::o;32356:169::-;32433:4;32479:38;32498:18;;32479:14;:18;;:38;;;;:::i;:::-;32457:18;:16;:18::i;:::-;:60;;;32356:169;-1:-1:-1;;32356:169:15:o;13399:2010::-;1754:11:21;;;;1746:55;;;;;-1:-1:-1;;;1746:55:21;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1746:55:21;;;;;;;;;;;;;;;1893:5;1879:19;;-1:-1:-1;;1879:19:21;;;6639:10:15;6612:38;;:26;:38;;;;;;;;;-1:-1:-1;;;;;6612:38:15;6604:47;;:7;:47;;;;;-1:-1:-1;6604:54:15;;6596:85;;;;;-1:-1:-1;;;6596:85:15;;;;;;;;;;;;-1:-1:-1;;;6596:85:15;;;;;;;;;;;;;;;13732:25;13760:21;;;:9;:21;;;;;13802:17;;;;-1:-1:-1;;;;;13802:17:15;13794:76;;;;;-1:-1:-1;;;13794:76:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13890:14;;;:17;;;13889:18;13881:66;;;;-1:-1:-1;;;13881:66:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13967:14;;;:17;;;;;;13966:18;13958:58;;;;;-1:-1:-1;;;13958:58:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;14800:22;14825:169;14992:1;14825:162;14843:18;:16;:18::i;:::-;14876:13;:20;:25;:100;;14918:13;14932:20;;14908:9;;:53;;14932:27;;14957:1;14932:27;:24;:27;:::i;:::-;14918:42;;;;;;;;;;;;;;;;14908:53;;;;;;;;;;;:68;;;14876:100;;;14904:1;14876:100;14825:3;:162::i;:::-;:166;:169;:166;:169;:::i;:::-;15007:23;;;:40;;;15111:10;15060:21;15084:38;;;:26;:38;;;;;;15133:16;;;:32;;-1:-1:-1;;;;;;15133:32:15;-1:-1:-1;;;;;15084:38:15;;;15133:32;;;;;15178:14;;;:24;;-1:-1:-1;;15178:24:15;-1:-1:-1;15178:24:15;;;;;;15256:13;27:10:-1;;23:18;;;45:23;;15256:30:15;;;;;;;;;;;15357:20;;15007:40;;-1:-1:-1;15084:38:15;;;15111:10;15302:99;;15256:30;;15357:27;;:20;:24;:27::i;:::-;15302:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2059:11:21;:18;;-1:-1:-1;;2059:18:21;2073:4;2059:18;;;-1:-1:-1;;13399:2010:15:o;15521:1793::-;1754:11:21;;;;1746:55;;;;;-1:-1:-1;;;1746:55:21;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1746:55:21;;;;;;;;;;;;;;;1893:5;1879:19;;-1:-1:-1;;1879:19:21;;;6639:10:15;6612:38;;:26;:38;;;;;;;;;-1:-1:-1;;;;;6612:38:15;6604:47;;:7;:47;;;;;-1:-1:-1;6604:54:15;;6596:85;;;;;-1:-1:-1;;;6596:85:15;;;;;;;;;;;;-1:-1:-1;;;6596:85:15;;;;;;;;;;;;;;;15675:10;15624:21;15648:38;;;:26;:38;;;;;;;;;-1:-1:-1;;;;;15648:38:15;15721:22;;;:7;:22;;;;;;15780:13;:20;15764:36;;15756:72;;;;;-1:-1:-1;;;15756:72:15;;;;;;;;;;;;-1:-1:-1;;;15756:72:15;;;;;;;;;;;;;;;15839:25;15867:9;:39;15877:13;15891;15877:28;;;;;;;;;;;;;;;;15867:39;;;;;;;;;;;15839:67;;15938:1;15927:8;:12;;;15919:44;;;;;-1:-1:-1;;;15919:44:15;;;;;;;;;;;;-1:-1:-1;;;15919:44:15;;;;;;;;;;;;;;;15974:9;15991:8;15986:14;;;;;;;;;;15974:26;;16122:47;16145:8;:23;;;16122:22;:47::i;:::-;16121:48;16113:95;;;;-1:-1:-1;;;16113:95:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16227:37:15;;16268:9;16227:37;;;:22;;;:37;;;;;;;;:50;;;;;;;;;16219:87;;;;;-1:-1:-1;;;16219:87:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;16333:8;16325:4;:16;;;;;;;;;:35;;;-1:-1:-1;16353:7:15;16345:4;:15;;;;;;;;;16325:35;16317:77;;;;;-1:-1:-1;;;16317:77:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16407:37:15;;;;;;:22;;;:37;;;;;:44;;16447:4;;16407:37;-1:-1:-1;;16407:44:15;-1:-1:-1;16447:4:15;16407:44;;;;;;;;;;;;-1:-1:-1;16476:8:15;16468:4;:16;;;;;;;;;16464:763;;;16543:13;;;;16521:17;;;;:36;;;:21;:36;:::i;:::-;16501:17;;;:56;16689:26;;;;16673:42;;16669:125;;;16736:26;;;:42;;;16669:125;16464:763;;;17137:7;17129:4;:15;;;;;;;;;17125:102;;;17201:13;;;;17180:16;;;;:35;;;:20;:35;:::i;:::-;17161:16;;;:54;17125:102;17244:62;;;;;;;;;;-1:-1:-1;;;;;17244:62:15;;;17270:10;;17255:13;;17244:62;;;;;;;;;;-1:-1:-1;;2059:11:21;:18;;-1:-1:-1;;2059:18:21;2073:4;2059:18;;;-1:-1:-1;;;;15521:1793:15:o;31325:246::-;31443:13;:20;31396:4;;31421:42;;31413:78;;;;;-1:-1:-1;;;31413:78:15;;;;;;;;;;;;-1:-1:-1;;;31413:78:15;;;;;;;;;;;;;;;31509:9;:45;31519:13;31533:19;31519:34;;;;;;;;;;;;;;;;31509:45;;;;;;;;;;;:51;;31561:1;31509:54;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31325:246:15;;;:::o;1292:26::-;;;-1:-1:-1;;;;;1292:26:15;;:::o;3555:45::-;;;;:::o;31096:136::-;31163:14;;:::i;:::-;31197:21;;;;:9;:21;;;;;;31190:34;;;;;;;;;;31197:27;;;;;31190:34;;31197:27;;31190:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31190:34:15;;31096:136;-1:-1:-1;;;;;;;31096:136:15:o;387:29::-;;;;:::o;15415:92::-;15486:13;;15415:92;:::o;1207:26::-;;;-1:-1:-1;;;;;1207:26:15;;:::o;3244:32::-;;;;:::o;300:23::-;;;;;;-1:-1:-1;;;;;300:23:15;;:::o;17348:114::-;17417:6;;17348:114;:::o;29122:650::-;1754:11:21;;;;1746:55;;;;;-1:-1:-1;;;1746:55:21;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1746:55:21;;;;;;;;;;;;;;;1893:5;1879:19;;-1:-1:-1;;1879:19:21;;;29225:21:15;;;:9;:21;;;;;29266:14;;;:17;-1:-1:-1;29266:17:15;29265:18;29257:66;;;;-1:-1:-1;;;29257:66:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29343:14;;;:17;;;;;;29342:18;29334:66;;;;-1:-1:-1;;;29334:66:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29433:17;;;;-1:-1:-1;;;;;29433:17:15;29419:10;:31;29411:74;;;;;-1:-1:-1;;;29411:74:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;29498:14;;;:24;;-1:-1:-1;;29498:24:15;;;;;29570:21;;;;-1:-1:-1;29601:17:15;;;29620:23;;;;29570:74;;;-1:-1:-1;;;29570:74:15;;-1:-1:-1;;;;;29601:17:15;;;29570:74;;;;;;;;;;;;:21;;;;;-1:-1:-1;;29570:74:15;;;;;29498:17;;29570:74;;;;;;;-1:-1:-1;29570:21:15;:74;;;5:2:-1;;;;30:1;27;20:12;5:2;29570:74:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;29570:74:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;29570:74:15;29548:160;;;;-1:-1:-1;;;29548:160:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29726:38;;;29753:10;29726:38;;;;29741:10;;29726:38;;;;;;;;;;-1:-1:-1;;2059:11:21;:18;;-1:-1:-1;;2059:18:21;2073:4;2059:18;;;29122:650:15:o;17470:3550::-;1754:11:21;;;;1746:55;;;;;-1:-1:-1;;;1746:55:21;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1746:55:21;;;;;;;;;;;;;;;1893:5;1879:19;;-1:-1:-1;;1879:19:21;;;17549:45:15;17580:13;17549:30;:45::i;:::-;17607:18;17628:13;17642;17628:28;;;;;;;;;;;;;;;;;;;;;17695:21;;;:9;:21;;;;;;17824:14;;;:24;;-1:-1:-1;;17824:24:15;;;;;17628:28;;-1:-1:-1;17695:21:15;17628:28;17917:23;17926:13;17917:8;:23::i;:::-;17874:66;;;;2028:6;18053:41;18069:8;:24;;;18053:11;;:15;;:41;;;;:::i;:::-;:64;18049:112;;;18144:5;18134:15;;18049:112;18531:7;18527:2370;;;18562:1;18555:6;:8;18578:14;;;:24;;-1:-1:-1;;18578:24:15;;;;;18732:18;;-1:-1:-1;;;;;18732:18:15;-1:-1:-1;18724:27:15;;;:7;18578:17;18724:27;;;;18593:1;18724:34;;18578:24;18724:34;18720:1147;;;18855:24;;;;18824:18;;-1:-1:-1;;;;;18824:18:15;18816:27;;;;:7;:27;;;;;-1:-1:-1;18816:34:15;;:64;;:38;:64::i;:::-;18787:18;;-1:-1:-1;;;;;18787:18:15;18779:27;;;;:7;:27;;;;;-1:-1:-1;18779:34:15;:101;18720:1147;;;19276:18;;-1:-1:-1;;;;;19276:18:15;;;19241:55;19249:46;;;:26;:46;;;;;;;;;;;;19241:55;;:7;:55;;;:62;;;;;19237:349;;;19382:18;;-1:-1:-1;;;;;19382:18:15;;;19328:24;19355:46;;;:26;:46;;;;;;;;;;;;19424:44;;;;;;:63;;-1:-1:-1;;;;;;19424:63:15;;;;;;;;19510:7;:25;;;;;;;:56;;;;;;;;;;19237:349;19704:61;;;;;;;;19711:18;;-1:-1:-1;;;;;19711:18:15;;;19704:61;;;19731:24;;;;;19704:61;;;;;;;-1:-1:-1;19704:61:15;;;;;;-1:-1:-1;19704:61:15;;;;;;19674:27;;;:7;:27;;;;;:91;;;;;;;-1:-1:-1;;;;;;19674:91:15;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19674:91:15;;;;;;;;;;;;;;;;;;;19833:18;;;;;19784:46;;;:26;:46;;;;;;;:67;;;;;;;;;;18720:1147;19952:24;;;;19936:11;;:41;;;:15;:41;:::i;:::-;19922:11;:55;18527:2370;;;20533:1;20526:6;:8;20631:255;20961:51;;;;;;;;;;20992:10;;20977:13;;20961:51;;;;;;;;;-1:-1:-1;;2059:11:21;:18;;-1:-1:-1;;2059:18:21;2073:4;2059:18;;;-1:-1:-1;;;17470:3550:15:o;26153:580::-;1754:11:21;;;;1746:55;;;;;-1:-1:-1;;;1746:55:21;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1746:55:21;;;;;;;;;;;;;;;1893:5;1879:19;;-1:-1:-1;;1879:19:21;;;6371:10:15;6363:19;;:7;:19;;;;;-1:-1:-1;6363:26:15;;6355:56;;;;;-1:-1:-1;;;6355:56:15;;;;;;;;;;;;-1:-1:-1;;;6355:56:15;;;;;;;;;;;;;;;26357:9;26352:303;26374:9;:16;26370:1;:20;26352:303;;;26510:5;;26506:138;;26559:9;26573:1;26569;:5;26559:16;;;;;;;;;;;;;;-1:-1:-1;;;;;26544:31:15;:9;26554:1;26544:12;;;;;;;;;;;;;;-1:-1:-1;;;;;26544:31:15;;26536:92;;;;-1:-1:-1;;;26536:92:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26392:3;;26352:303;;;;26667:58;26677:10;26689:12;26703:10;26715:9;26667;:58::i;:::-;-1:-1:-1;;2059:11:21;:18;;-1:-1:-1;;2059:18:21;2073:4;2059:18;;;-1:-1:-1;26153:580:15:o;431:150:22:-;489:7;522:1;517;:6;;509:15;;;;;;-1:-1:-1;547:5:22;;;431:150::o;272:151::-;330:7;364:1;360;:5;352:14;;;;;;377:9;393:1;389;:5;;;;;;;272:151;-1:-1:-1;;;;272:151:22:o;26741:1197:15:-;26908:11;;26872:33;;26908:18;;26872:33;26908:18;:15;:18;:::i;:::-;-1:-1:-1;;;;;26963:22:15;;26939:21;26963:22;;;:7;:22;;;;;-1:-1:-1;27006:13:15;;;26872:54;;-1:-1:-1;26963:22:15;-1:-1:-1;;27006:29:15;26998:61;;;;;-1:-1:-1;;;26998:61:15;;;;;;;;;;;;-1:-1:-1;;;26998:61:15;;;;;;;;;;;;;;;27148:39;27160:6;:26;;;27148:11;:39::i;:::-;27140:129;;;;-1:-1:-1;;;27140:129:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27404:13;;;;:31;;27422:12;27404:31;:17;:31;:::i;:::-;27388:13;;;:47;27514:11;;:29;;27530:12;27514:29;:15;:29;:::i;:::-;27500:11;:43;27711:9;;:85;;-1:-1:-1;;;27711:85:15;;-1:-1:-1;;;;;27711:85:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:9;;;;;-1:-1:-1;;27711:85:15;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;27711:85:15;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27711:85:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;27711:85:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;27711:85:15;27689:177;;;;-1:-1:-1;;;27689:177:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27884:46;;;;;;;;;;;;;;27893:10;;27884:46;;;;;;;;26741:1197;;;;;;:::o;12079:1312::-;12418:24;;:::i;:::-;12445:611;;;;;;;;12481:9;-1:-1:-1;;;;;12445:611:15;;;;;12516:10;-1:-1:-1;;;;;12445:611:15;;;;;12559:1;-1:-1:-1;;;;;12445:611:15;;;;;12594:15;12445:611;;;;12640:13;12445:611;;;;12685:14;12445:611;;;;12736:12;-1:-1:-1;;;;;12445:611:15;;;;;12783:16;12445:611;;;;12836:12;-1:-1:-1;;;;;12445:611:15;;;;;12881:1;12445:611;;;;12908:1;12445:611;;;;12934:1;12445:611;;;;12958:5;12445:611;;;;12988:7;12445:611;;;;13043:1;12445:611;;;12418:638;;13096:8;13069:9;:24;13079:13;;13069:24;;;;;;;;;;;:35;;;;;;;;;;;;;-1:-1:-1;;;;;13069:35:15;;;;;-1:-1:-1;;;;;13069:35:15;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13069:35:15;;;;;-1:-1:-1;;;;;13069:35:15;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13069:35:15;;;;;-1:-1:-1;;;;;13069:35:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13069:35:15;;;;;-1:-1:-1;;;;;13069:35:15;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13069:35:15;;;;;-1:-1:-1;;;;;13069:35:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;13069:35:15;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;13069:35:15;;;;;;;;;;;13166:10;13115:21;13139:38;;;:26;:38;;;;;;;;;;13208:13;;13193:161;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13193:161:15;;;;;;;-1:-1:-1;13193:161:15;;;;;;;;;;;;;;13139:38;;;;13193:161;;;;13139:38;;13166:10;;13193:161;;;;;;;;;-1:-1:-1;;13365:13:15;:18;;13382:1;13365:18;;;-1:-1:-1;;;;;;;;;12079:1312:15:o;589:150:22:-;647:7;679:5;;;703:6;;;;695:15;;;;;;730:1;589:150;-1:-1:-1;;;589:150:22:o;30729:107:15:-;30787:7;30819:1;30814;:6;;:14;;30827:1;30814:14;;;-1:-1:-1;30823:1:15;;30807:21;-1:-1:-1;30729:107:15:o;24912:623::-;25024:13;:20;25008:36;;25000:72;;;;;-1:-1:-1;;;25000:72:15;;;;;;;;;;;;-1:-1:-1;;;25000:72:15;;;;;;;;;;;;;;;25083:24;;:::i;:::-;25110:9;:39;25120:13;25134;25120:28;;;;;;;;;;;;;;;;;;;;;25110:39;;;;;;;;;;;;;;;25083:66;;;;;;;;;-1:-1:-1;;;;;25083:66:15;;;;;-1:-1:-1;25083:66:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25083:66:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25110:39;;25083:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;25083:66:15;;;-1:-1:-1;;;25083:66:15;;;;;;;;;;;;;;;;-1:-1:-1;;25083:66:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25325:8;:14;;;25340:1;25325:17;;;;;;;;;;;:26;25317:74;;;;-1:-1:-1;;;25317:74:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25410:18;;;:77;;-1:-1:-1;25432:9:15;:46;25442:13;25456:20;:13;25474:1;25456:20;:17;:20;:::i;:::-;25442:35;;;;;;;;;;;;;;;;25432:46;;;;;;;;;;;:52;;25485:1;25432:55;;;;;;;;;;;;;;;;;;;;;;;;25410:77;25402:125;;;;-1:-1:-1;;;25402:125:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24912:623;;:::o;23066:1838::-;23125:12;23139:24;23176;;:::i;:::-;23203:9;:39;23213:13;23227;23213:28;;;;;;;;;;;;;;;;;;;;;23203:39;;;;;;;;;;;;;;;23176:66;;;;;;;;;-1:-1:-1;;;;;23176:66:15;;;;;-1:-1:-1;23176:66:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23176:66:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23203:39;;23176:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;23176:66:15;;;-1:-1:-1;;;23176:66:15;;;;;;;;;;;;;;;;-1:-1:-1;;23176:66:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;23176:66:15;;;-1:-1:-1;;23176:66:15;;;;;;;;;;;23285:16;;;;23265:17;;;;;:36;;-1:-1:-1;;;23066:1838:15;-1:-1:-1;;;23066:1838:15:o;157:32734::-;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;157:32734:15;;;-1:-1:-1;;157:32734:15:o;:::-;;;;;;;;;-1:-1:-1;157:32734:15;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;157:32734:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;157:32734:15;;;-1:-1:-1;157:32734:15;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;157:32734:15;;;-1:-1:-1;157:32734:15;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;157:32734:15;;;-1:-1:-1;157:32734:15;;;;;;;;;;;;;;;;;;;;", + "source": "pragma solidity >=0.5.0 < 0.6.0;\r\n\r\nimport \"./oz/SafeMath.sol\";\r\nimport \"./oz/IERC20.sol\";\r\nimport \"./oz/ReentrancyGuard.sol\";\r\nimport \"./GuildBank.sol\";\r\n\r\ncontract Moloch is ReentrancyGuard {\r\n using SafeMath for uint256;\r\n\r\n /***************\r\n GLOBAL CONSTANTS\r\n ***************/\r\n address public summoner; // initial singular shareholder, assists with bailouts\r\n\r\n uint256 public periodDuration; // default = 17280 = 4.8 hours in seconds (5 periods per day)\r\n uint256 public votingPeriodLength; // default = 35 periods (7 days)\r\n uint256 public gracePeriodLength; // default = 35 periods (7 days)\r\n uint256 public emergencyProcessingWait; // default = 35 periods (7 days)\r\n //uint256 public bailoutWait; // default = 70 periods (14 days)\r\n uint256 public proposalDeposit; // default = 10 ETH (~$1,000 worth of ETH at contract deployment)\r\n //uint256 public dilutionBound; // default = 3 - maximum multiplier a YES voter will be obligated to pay in case of mass ragequit\r\n //uint256 public processingReward; // default = 0.1 - amount of ETH to give to whoever processes a proposal\r\n uint256 public summoningTime; // needed to determine the current period\r\n\r\n IERC20 public depositToken; // deposit token contract reference; default = wETH\r\n GuildBank public guildBank; // guild bank contract reference\r\n\r\n // HARD-CODED LIMITS\r\n // These numbers are quite arbitrary; they are small enough to avoid overflows when doing calculations\r\n // with periods or shares, yet big enough to not limit reasonable use cases.\r\n uint256 constant MAX_VOTING_PERIOD_LENGTH = 10**18; // maximum length of voting period\r\n uint256 constant MAX_GRACE_PERIOD_LENGTH = 10**18; // maximum length of grace period\r\n //uint256 constant MAX_BAILOUT_WAIT = 10**18; // maximum # periods after a jailed member can be ragekicked before they must be bailed out instead\r\n //uint256 constant MAX_DILUTION_BOUND = 10**18; // maximum dilution bound\r\n uint256 constant MAX_NUMBER_OF_SHARES = 10**18; // maximum number of shares that can be minted\r\n\r\n // ***************\r\n // EVENTS\r\n // ***************\r\n event SubmitProposal(uint256 proposalIndex, address indexed delegateKey, address indexed memberAddress, address indexed applicant, uint256 sharesRequested, uint256 lootRequested, uint256 tributeOffered, address tributeToken, uint256 paymentRequested, address paymentToken);\r\n event SponsorProposal(address indexed delegateKey, address indexed memberAddress, uint256 proposalIndex, uint256 proposalQueueIndex, uint256 startingPeriod);\r\n event SubmitVote(uint256 indexed proposalIndex, address indexed delegateKey, address indexed memberAddress, uint8 uintVote);\r\n event ProcessProposal(uint256 indexed proposalIndex, uint256 indexed proposalId, bool didPass);\r\n event Ragequit(address indexed memberAddress, uint256 sharesToBurn, uint256 lootToBurn);\r\n event CancelProposal(uint256 indexed proposalIndex, address applicantAddress);\r\n event UpdateDelegateKey(address indexed memberAddress, address newDelegateKey);\r\n event SummonComplete(address indexed summoner, uint256 shares);\r\n\r\n // *******************\r\n // INTERNAL ACCOUNTING\r\n // *******************\r\n uint256 public proposalCount = 0; // total proposals submitted\r\n uint256 public totalShares = 0; // total shares across all members\r\n //uint256 public totalLoot = 0; // total loot across all members\r\n\r\n bool public emergencyWarning = false; // true if emergency processing has ever been triggered\r\n uint256 public lastEmergencyProposalIndex = 0; // index of the last proposal which triggered emergency processing\r\n\r\n enum Vote {\r\n Null, // default value, counted as abstention\r\n Yes,\r\n No\r\n }\r\n\r\n struct Member {\r\n address delegateKey; // the key responsible for submitting proposals and voting - defaults to member address unless updated\r\n uint256 shares; // the # of voting shares assigned to this member\r\n //uint256 loot; // the loot amount available to this member (combined with shares on ragequit)\r\n bool exists; // always true once a member has been created\r\n uint256 highestIndexYesVote; // highest proposal index # on which the member voted YES\r\n //uint256 jailed; // set to proposalIndex of a passing guild kick proposal for this member, prevents voting on and sponsoring proposals\r\n }\r\n\r\n struct Proposal {\r\n address applicant; // the applicant who wishes to become a member - this key will be used for withdrawals (doubles as guild kick target for gkick proposals)\r\n address proposer; // the account that submitted the proposal (can be non-member)\r\n address sponsor; // the member that sponsored the proposal (moving it into the queue)\r\n uint256 sharesRequested; // the # of shares the applicant is requesting\r\n uint256 lootRequested; // the amount of loot the applicant is requesting\r\n uint256 tributeOffered; // amount of tokens offered as tribute\r\n IERC20 tributeToken; // tribute token contract reference\r\n uint256 paymentRequested; // amount of tokens requested as payment\r\n IERC20 paymentToken; // payment token contract reference\r\n uint256 startingPeriod; // the period in which voting can start for this proposal\r\n uint256 yesVotes; // the total number of YES votes for this proposal\r\n uint256 noVotes; // the total number of NO votes for this proposal\r\n bool[6] flags; // [sponsored, processed, didPass, cancelled, whitelist, guildkick]\r\n string details; // proposal details - could be IPFS hash, plaintext, or JSON\r\n uint256 maxTotalSharesAndLootAtYesVote; // the maximum # of total shares encountered at a yes vote on this proposal\r\n mapping(address => Vote) votesByMember; // the votes on this proposal by each member\r\n }\r\n\r\n //mapping(address => bool) public tokenWhitelist;\r\n IERC20[] public approvedTokens;\r\n\r\n //mapping(address => bool) public proposedToWhitelist;\r\n //mapping(address => bool) public proposedToKick;\r\n\r\n mapping(address => Member) public members;\r\n mapping(address => address) public memberAddressByDelegateKey;\r\n\r\n mapping(uint256 => Proposal) public proposals;\r\n\r\n uint256[] public proposalQueue;\r\n\r\n modifier onlyMember {\r\n require(members[msg.sender].shares > 0 , \"not a member\");\r\n _;\r\n }\r\n\r\n modifier onlyShareholder {\r\n require(members[msg.sender].shares > 0, \"not a shareholder\");\r\n _;\r\n }\r\n\r\n modifier onlyDelegate {\r\n require(members[memberAddressByDelegateKey[msg.sender]].shares > 0, \"not a delegate\");\r\n _;\r\n }\r\n\r\n constructor(\r\n address _summoner,\r\n address[1] memory _approvedTokens,\r\n uint256 _periodDuration,\r\n uint256 _votingPeriodLength,\r\n uint256 _gracePeriodLength,\r\n uint256 _emergencyProcessingWait,\r\n uint256 _bailoutWait,\r\n uint256 _proposalDeposit,\r\n uint256 _dilutionBound,\r\n uint256 _processingReward\r\n ) public {\r\n require(_summoner != address(0), \"summoner cannot be 0\");\r\n require(_periodDuration > 0, \"_periodDuration cannot be 0\");\r\n require(_votingPeriodLength > 0, \"_votingPeriodLength cannot be 0\");\r\n require(_votingPeriodLength <= MAX_VOTING_PERIOD_LENGTH, \"_votingPeriodLength exceeds limit\");\r\n require(_gracePeriodLength <= MAX_GRACE_PERIOD_LENGTH, \"_gracePeriodLength exceeds limit\");\r\n require(_emergencyProcessingWait > 0, \"_emergencyProcessingWait cannot be 0\");\r\n //require(_bailoutWait > _emergencyProcessingWait, \"_bailoutWait must be greater than _emergencyProcessingWait\");\r\n //require(_bailoutWait <= MAX_BAILOUT_WAIT, \"_bailoutWait exceeds limit\");\r\n //require(_dilutionBound > 0, \"_dilutionBound cannot be 0\");\r\n //require(_dilutionBound <= MAX_DILUTION_BOUND, \"_dilutionBound exceeds limit\");\r\n require(_approvedTokens.length > 0, \"need at least one approved token\");\r\n //require(_proposalDeposit >= _processingReward, \"_proposalDeposit cannot be smaller than _processingReward\");\r\n\r\n summoner = _summoner;\r\n\r\n depositToken = IERC20(_approvedTokens[0]);\r\n\r\n for (uint256 i = 0; i < _approvedTokens.length; i++) {\r\n require(_approvedTokens[i] != address(0), \"_approvedToken cannot be 0\");\r\n //require(!tokenWhitelist[_approvedTokens[i]], \"duplicate approved token\");\r\n //tokenWhitelist[_approvedTokens[i]] = true;\r\n approvedTokens.push(IERC20(_approvedTokens[i]));\r\n }\r\n\r\n guildBank = new GuildBank();\r\n\r\n periodDuration = _periodDuration;\r\n votingPeriodLength = _votingPeriodLength;\r\n gracePeriodLength = _gracePeriodLength;\r\n emergencyProcessingWait = _emergencyProcessingWait;\r\n //bailoutWait = _bailoutWait;\r\n proposalDeposit = _proposalDeposit;\r\n //dilutionBound = _dilutionBound;\r\n //processingReward = _processingReward;\r\n\r\n summoningTime = now;\r\n\r\n members[summoner] = Member(summoner, 1, true, 0);\r\n memberAddressByDelegateKey[summoner] = summoner;\r\n totalShares = 1;\r\n\r\n emit SummonComplete(summoner, 1);\r\n }\r\n\r\n /*****************\r\n PROPOSAL FUNCTIONS\r\n *****************/\r\n function submitProposal(\r\n address applicant,\r\n uint256 sharesRequested,\r\n uint256 lootRequested,\r\n uint256 tributeOffered,\r\n address tributeToken,\r\n uint256 paymentRequested,\r\n address paymentToken,\r\n string memory details\r\n ) public nonReentrant returns (uint256 proposalId) {\r\n require(sharesRequested <= MAX_NUMBER_OF_SHARES, \"too many shares requested\");\r\n //require(tokenWhitelist[tributeToken], \"tributeToken is not whitelisted\");\r\n //require(tokenWhitelist[paymentToken], \"payment is not whitelisted\");\r\n require(applicant != address(0), \"applicant cannot be 0\");\r\n //require(members[applicant].jailed == 0, \"proposal applicant must not be jailed\");\r\n\r\n // collect tribute from proposer and store it in the Moloch until the proposal is processed\r\n //require(IERC20(tributeToken).transferFrom(msg.sender, address(this), tributeOffered), \"tribute token transfer failed\");\r\n\r\n bool[6] memory flags; // [sponsored, processed, didPass, cancelled, whitelist, guildkick]\r\n\r\n _submitProposal(applicant, sharesRequested, lootRequested, tributeOffered, tributeToken, paymentRequested, paymentToken, details, flags);\r\n return proposalCount - 1; // return proposalId - contracts calling submit might want it\r\n }\r\n\r\n // function submitWhitelistProposal(address tokenToWhitelist, string memory details) public nonReentrant returns (uint256 proposalId) {\r\n // require(tokenToWhitelist != address(0), \"must provide token address\");\r\n // require(!tokenWhitelist[tokenToWhitelist], \"cannot already have whitelisted the token\");\r\n\r\n // bool[6] memory flags; // [sponsored, processed, didPass, cancelled, whitelist, guildkick]\r\n // flags[4] = true;\r\n\r\n // _submitProposal(address(0), 0, 0, 0, tokenToWhitelist, 0, address(0), details, flags);\r\n // return proposalCount - 1;\r\n // }\r\n\r\n // function submitGuildKickProposal(address memberToKick, string memory details) public nonReentrant returns (uint256 proposalId) {\r\n // Member memory member = members[memberToKick];\r\n\r\n // require(member.shares > 0 || member.loot > 0, \"member must have at least one share or one loot\");\r\n // require(memberToKick != summoner, \"the summoner may not be kicked\");\r\n // require(members[memberToKick].jailed == 0, \"member must not already be jailed\");\r\n\r\n // bool[6] memory flags; // [sponsored, processed, didPass, cancelled, whitelist, guildkick]\r\n // flags[5] = true;\r\n\r\n // _submitProposal(memberToKick, 0, 0, 0, address(0), 0, address(0), details, flags);\r\n // return proposalCount - 1;\r\n // }\r\n\r\n function _submitProposal(\r\n address applicant,\r\n uint256 sharesRequested,\r\n uint256 lootRequested,\r\n uint256 tributeOffered,\r\n address tributeToken,\r\n uint256 paymentRequested,\r\n address paymentToken,\r\n string memory details,\r\n bool[6] memory flags\r\n ) internal {\r\n Proposal memory proposal = Proposal({\r\n applicant : applicant,\r\n proposer : msg.sender,\r\n sponsor : address(0),\r\n sharesRequested : sharesRequested,\r\n lootRequested : lootRequested,\r\n tributeOffered : tributeOffered,\r\n tributeToken : IERC20(tributeToken),\r\n paymentRequested : paymentRequested,\r\n paymentToken : IERC20(paymentToken),\r\n startingPeriod : 0,\r\n yesVotes : 0,\r\n noVotes : 0,\r\n flags : flags,\r\n details : details,\r\n maxTotalSharesAndLootAtYesVote : 0\r\n });\r\n\r\n proposals[proposalCount] = proposal;\r\n address memberAddress = memberAddressByDelegateKey[msg.sender];\r\n emit SubmitProposal(proposalCount, msg.sender, memberAddress, applicant, sharesRequested, lootRequested, tributeOffered, tributeToken, paymentRequested, paymentToken);\r\n proposalCount += 1;\r\n }\r\n\r\n function sponsorProposal(uint256 proposalId) public nonReentrant onlyDelegate {\r\n // collect proposal deposit from sponsor and store it in the Moloch until the proposal is processed\r\n //require(depositToken.transferFrom(msg.sender, address(this), proposalDeposit), \"proposal deposit token transfer failed\");\r\n\r\n Proposal storage proposal = proposals[proposalId];\r\n\r\n require(proposal.proposer != address(0), 'proposal must have been proposed');\r\n require(!proposal.flags[0], \"proposal has already been sponsored\");\r\n require(!proposal.flags[3], \"proposal has been cancelled\");\r\n //require(members[proposal.applicant].jailed == 0, \"proposal applicant must not be jailed\");\r\n\r\n // whitelist proposal\r\n // if (proposal.flags[4]) {\r\n // require(!tokenWhitelist[address(proposal.tributeToken)], \"cannot already have whitelisted the token\");\r\n // require(!proposedToWhitelist[address(proposal.tributeToken)], 'already proposed to whitelist');\r\n // proposedToWhitelist[address(proposal.tributeToken)] = true;\r\n\r\n // // guild kick proposal\r\n // } else if (proposal.flags[5]) {\r\n // require(!proposedToKick[proposal.applicant], 'already proposed to kick');\r\n // proposedToKick[proposal.applicant] = true;\r\n // }\r\n\r\n // compute startingPeriod for proposal\r\n uint256 startingPeriod = max(\r\n getCurrentPeriod(),\r\n proposalQueue.length == 0 ? 0 : proposals[proposalQueue[proposalQueue.length.sub(1)]].startingPeriod\r\n ).add(1);\r\n\r\n proposal.startingPeriod = startingPeriod;\r\n\r\n address memberAddress = memberAddressByDelegateKey[msg.sender];\r\n proposal.sponsor = memberAddress;\r\n\r\n proposal.flags[0] = true;\r\n\r\n // append proposal to the queue\r\n proposalQueue.push(proposalId);\r\n emit SponsorProposal(msg.sender, memberAddress, proposalId, proposalQueue.length.sub(1), startingPeriod);\r\n }\r\n function getProposal () public view returns(uint256){\r\n return proposalCount;\r\n }\r\n \r\n\r\n function submitVote(uint256 proposalIndex, uint8 uintVote) public nonReentrant onlyDelegate {\r\n address memberAddress = memberAddressByDelegateKey[msg.sender];\r\n Member storage member = members[memberAddress];\r\n\r\n require(proposalIndex < proposalQueue.length, \"proposal does not exist\");\r\n Proposal storage proposal = proposals[proposalQueue[proposalIndex]];\r\n\r\n require(uintVote < 3, \"must be less than 3\");\r\n Vote vote = Vote(uintVote);\r\n\r\n //require(getCurrentPeriod() >= proposal.startingPeriod, \"voting period has not started\");\r\n require(!hasVotingPeriodExpired(proposal.startingPeriod), \"proposal voting period has expired\");\r\n require(proposal.votesByMember[memberAddress] == Vote.Null, \"member has already voted\");\r\n require(vote == Vote.Yes || vote == Vote.No, \"vote must be either Yes or No\");\r\n\r\n proposal.votesByMember[memberAddress] = vote;\r\n\r\n if (vote == Vote.Yes) {\r\n proposal.yesVotes = proposal.yesVotes.add(member.shares);\r\n\r\n // set highest index (latest) yes vote - must be processed for member to ragequit\r\n if (proposalIndex > member.highestIndexYesVote) {\r\n member.highestIndexYesVote = proposalIndex;\r\n }\r\n\r\n // set maximum of total shares encountered at a yes vote - used to bound dilution for yes voters\r\n // if (totalShares.add(totalLoot) > proposal.maxTotalSharesAndLootAtYesVote) {\r\n // proposal.maxTotalSharesAndLootAtYesVote = totalShares.add(totalLoot);\r\n // }\r\n\r\n } else if (vote == Vote.No) {\r\n proposal.noVotes = proposal.noVotes.add(member.shares);\r\n }\r\n\r\n emit SubmitVote(proposalIndex, msg.sender, memberAddress, uintVote);\r\n }\r\n uint256 public result;\r\n function getResult () public view returns(uint256){\r\n return result;//checks proposal passed or not\r\n }\r\n\r\n function processProposal(uint256 proposalIndex) public nonReentrant {\r\n _validateProposalForProcessing(proposalIndex);\r\n\r\n uint256 proposalId = proposalQueue[proposalIndex];\r\n Proposal storage proposal = proposals[proposalId];\r\n\r\n //require(!proposal.flags[4] && !proposal.flags[5], \"must be a standard proposal\");\r\n\r\n proposal.flags[1] = true; // processed\r\n\r\n (bool didPass, bool emergencyProcessing) = _didPass(proposalIndex);\r\n\r\n // Make the proposal fail if the new total number of shares and loot exceeds the limit\r\n if (totalShares.add(proposal.sharesRequested) > MAX_NUMBER_OF_SHARES) {\r\n didPass = false;\r\n }\r\n\r\n // Make the proposal fail if it is requesting more tokens as payment than the available guild bank balance\r\n // if (!emergencyProcessing && proposal.paymentToken != IERC20(0) && proposal.paymentRequested > proposal.paymentToken.balanceOf(address(guildBank))) {\r\n // didPass = false;\r\n // }\r\n\r\n // PROPOSAL PASSED\r\n if (didPass) {\r\n result=1;\r\n proposal.flags[2] = true; // didPass\r\n\r\n // if the applicant is already a member, add to their existing shares & loot\r\n if (members[proposal.applicant].exists) {\r\n members[proposal.applicant].shares = members[proposal.applicant].shares.add(proposal.sharesRequested);\r\n //members[proposal.applicant].loot = members[proposal.applicant].loot.add(proposal.lootRequested);\r\n\r\n // the applicant is a new member, create a new record for them\r\n } else {\r\n // if the applicant address is already taken by a member's delegateKey, reset it to their member address\r\n if (members[memberAddressByDelegateKey[proposal.applicant]].exists) {\r\n address memberToOverride = memberAddressByDelegateKey[proposal.applicant];\r\n memberAddressByDelegateKey[memberToOverride] = memberToOverride;\r\n members[memberToOverride].delegateKey = memberToOverride;\r\n }\r\n\r\n // use applicant address as delegateKey by default\r\n members[proposal.applicant] = Member(proposal.applicant, proposal.sharesRequested, true, 0);\r\n memberAddressByDelegateKey[proposal.applicant] = proposal.applicant;\r\n }\r\n\r\n // mint new shares & loot\r\n totalShares = totalShares.add(proposal.sharesRequested);\r\n //totalLoot = totalLoot.add(proposal.lootRequested);\r\n\r\n // require(\r\n // proposal.tributeToken.transfer(address(guildBank), proposal.tributeOffered),\r\n // \"token transfer to guild bank failed\"\r\n // );\r\n\r\n // require(\r\n // guildBank.withdrawToken(proposal.paymentToken, proposal.applicant, proposal.paymentRequested),\r\n // \"token payment to applicant failed\"\r\n // );\r\n\r\n\r\n // PROPOSAL FAILED\r\n } else {\r\n result=2;\r\n // return all tokens to the applicant (skip if emergency processing)\r\n if (!emergencyProcessing) {\r\n // require(\r\n // proposal.tributeToken.transfer(proposal.proposer, proposal.tributeOffered),\r\n // \"failing vote token transfer failed\"\r\n // );\r\n }\r\n }\r\n\r\n //_returnDeposit(proposal.sponsor);\r\n\r\n emit ProcessProposal(proposalIndex, proposalId, didPass);\r\n }\r\n\r\n // function processWhitelistProposal(uint256 proposalIndex) public nonReentrant {\r\n // _validateProposalForProcessing(proposalIndex);\r\n\r\n // uint256 proposalId = proposalQueue[proposalIndex];\r\n // Proposal storage proposal = proposals[proposalId];\r\n\r\n // require(proposal.flags[4], \"must be a whitelist proposal\");\r\n\r\n // proposal.flags[1] = true; // processed\r\n\r\n // (bool didPass,) = _didPass(proposalIndex);\r\n\r\n // if (didPass) {\r\n // proposal.flags[2] = true; // didPass\r\n\r\n // tokenWhitelist[address(proposal.tributeToken)] = true;\r\n // approvedTokens.push(proposal.tributeToken);\r\n // }\r\n\r\n // proposedToWhitelist[address(proposal.tributeToken)] = false;\r\n\r\n // _returnDeposit(proposal.sponsor);\r\n\r\n // emit ProcessProposal(proposalIndex, proposalId, didPass);\r\n // }\r\n\r\n // function processGuildKickProposal(uint256 proposalIndex) public nonReentrant {\r\n // _validateProposalForProcessing(proposalIndex);\r\n\r\n // uint256 proposalId = proposalQueue[proposalIndex];\r\n // Proposal storage proposal = proposals[proposalId];\r\n\r\n // require(proposal.flags[5], \"must be a guild kick proposal\");\r\n\r\n // proposal.flags[1] = true; // processed\r\n\r\n // (bool didPass,) = _didPass(proposalIndex);\r\n\r\n // if (didPass) {\r\n // proposal.flags[2] = true; // didPass\r\n // Member storage member = members[proposal.applicant];\r\n // member.jailed = proposalIndex;\r\n\r\n // // transfer shares to loot\r\n // member.loot = member.loot.add(member.shares);\r\n // totalShares = totalShares.sub(member.shares);\r\n // totalLoot = totalLoot.add(member.shares);\r\n // member.shares = 0; // revoke all shares\r\n // }\r\n\r\n // proposedToKick[proposal.applicant] = false;\r\n\r\n // _returnDeposit(proposal.sponsor);\r\n\r\n // emit ProcessProposal(proposalIndex, proposalId, didPass);\r\n // }\r\n\r\n function _didPass(uint256 proposalIndex) internal returns (bool didPass, bool emergencyProcessing) {\r\n Proposal memory proposal = proposals[proposalQueue[proposalIndex]];\r\n\r\n didPass = proposal.yesVotes > proposal.noVotes;\r\n\r\n // Make the proposal fail (and skip returning tribute) if emergencyProcessingWait is exceeded\r\n emergencyProcessing = false;\r\n // if (getCurrentPeriod() >= proposal.startingPeriod.add(votingPeriodLength).add(gracePeriodLength).add(emergencyProcessingWait)) {\r\n // emergencyWarning = true;\r\n // lastEmergencyProposalIndex = proposalIndex;\r\n // emergencyProcessing = true;\r\n // didPass = false;\r\n // }\r\n\r\n // // Make the proposal fail if it was past its grace period during the last emergency processing and it is not a guild kick proposal\r\n // if (emergencyWarning) {\r\n // if (proposal.startingPeriod <= proposals[proposalQueue[lastEmergencyProposalIndex]].startingPeriod.add(emergencyProcessingWait) && !proposal.flags[5]) {\r\n // didPass = false;\r\n // }\r\n // }\r\n\r\n // Make the proposal fail if the dilutionBound is exceeded\r\n // if ((totalShares.add(totalLoot)).mul(dilutionBound) < proposal.maxTotalSharesAndLootAtYesVote) {\r\n // didPass = false;\r\n // }\r\n\r\n // Make the proposal fail if the applicant is jailed\r\n // - for standard proposals, we don't want the applicant to get any shares/loot/payment\r\n // - for guild kick proposals, we should never be able to propose to kick a jailed member (or have two kick proposals active), so it doesn't matter\r\n // if (members[proposal.applicant].jailed != 0) {\r\n // didPass = false;\r\n // }\r\n\r\n return (didPass, emergencyProcessing);\r\n }\r\n\r\n function _validateProposalForProcessing(uint256 proposalIndex) internal view {\r\n require(proposalIndex < proposalQueue.length, \"proposal does not exist\");\r\n Proposal memory proposal = proposals[proposalQueue[proposalIndex]];\r\n\r\n //require(getCurrentPeriod() >= proposal.startingPeriod.add(votingPeriodLength).add(gracePeriodLength), \"proposal is not ready to be processed\");\r\n require(proposal.flags[1] == false, \"proposal has already been processed\");\r\n require(proposalIndex == 0 || proposals[proposalQueue[proposalIndex.sub(1)]].flags[1], \"previous proposal must be processed\");\r\n }\r\n\r\n // function _returnDeposit(address sponsor) internal {\r\n // require(\r\n // depositToken.transfer(msg.sender, processingReward),\r\n // \"failed to send processing reward to msg.sender\"\r\n // );\r\n\r\n // require(\r\n // depositToken.transfer(sponsor, proposalDeposit.sub(processingReward)),\r\n // \"failed to return proposal deposit to sponsor\"\r\n // );\r\n //}\r\n\r\n function ragequit(uint256 sharesToBurn, uint256 lootToBurn) public nonReentrant onlyMember {\r\n _ragequit(msg.sender, sharesToBurn, lootToBurn, approvedTokens);\r\n }\r\n\r\n function safeRagequit(uint256 sharesToBurn, uint256 lootToBurn, IERC20[] memory tokenList) public nonReentrant onlyMember {\r\n // all tokens in tokenList must be in the tokenWhitelist\r\n for (uint256 i=0; i < tokenList.length; i++) {\r\n //require(tokenWhitelist[address(tokenList[i])], \"token must be whitelisted\");\r\n\r\n if (i > 0) {\r\n require(tokenList[i] > tokenList[i - 1], \"token list must be unique and in ascending order\");\r\n }\r\n }\r\n\r\n _ragequit(msg.sender, sharesToBurn, lootToBurn, tokenList);\r\n }\r\n\r\n function _ragequit(address memberAddress, uint256 sharesToBurn, uint256 lootToBurn, IERC20[] memory tokenList) internal {\r\n uint256 initialTotalSharesAndLoot = totalShares.add(0);\r\n\r\n Member storage member = members[memberAddress];\r\n\r\n require(member.shares >= sharesToBurn, \"insufficient shares\");\r\n //require(member.loot >= lootToBurn, \"insufficient loot\");\r\n\r\n require(canRagequit(member.highestIndexYesVote), \"cannot ragequit until highest index proposal member voted YES on is processed\");\r\n\r\n //uint256 sharesAndLootToBurn = sharesToBurn.add(lootToBurn);\r\n\r\n // burn shares and loot\r\n member.shares = member.shares.sub(sharesToBurn);\r\n //member.loot = member.loot.sub(lootToBurn);\r\n totalShares = totalShares.sub(sharesToBurn);\r\n //totalLoot = totalLoot.sub(lootToBurn);\r\n\r\n // instruct guildBank to transfer fair share of tokens to the ragequitter\r\n require(\r\n guildBank.withdraw(memberAddress, sharesToBurn, initialTotalSharesAndLoot, tokenList),\r\n \"withdrawal of tokens from guildBank failed\"\r\n );\r\n\r\n emit Ragequit(msg.sender, sharesToBurn, lootToBurn);\r\n }\r\n\r\n // function ragekick(address memberToKick) public nonReentrant {\r\n // Member storage member = members[memberToKick];\r\n\r\n // require(member.jailed != 0, \"member must be in jail\");\r\n // require(member.loot > 0, \"member must have some loot\"); // note - should be impossible for jailed member to have shares\r\n // require(canRagequit(member.highestIndexYesVote), \"cannot ragequit until highest index proposal member voted YES on is processed\");\r\n // require(!canBailout(memberToKick), \"bailoutWait has passed, member must be bailed out\");\r\n\r\n // _ragequit(memberToKick, 0, member.loot, approvedTokens);\r\n // }\r\n\r\n // function bailout(address memberToBail) public nonReentrant {\r\n // Member storage member = members[memberToBail];\r\n\r\n // require(member.jailed != 0, \"member must be in jail\");\r\n // require(member.loot > 0, \"member must have some loot\"); // note - should be impossible for jailed member to have shares\r\n // require(canBailout(memberToBail), \"cannot bailout yet\");\r\n\r\n // members[summoner].loot = members[summoner].loot.add(member.loot);\r\n // member.loot = 0;\r\n // }\r\n\r\n function cancelProposal(uint256 proposalId) public nonReentrant {\r\n Proposal storage proposal = proposals[proposalId];\r\n require(!proposal.flags[0], \"proposal has already been sponsored\");\r\n require(!proposal.flags[3], \"proposal has already been cancelled\");\r\n require(msg.sender == proposal.proposer, \"solely the proposer can cancel\");\r\n\r\n proposal.flags[3] = true; // cancelled\r\n\r\n require(\r\n proposal.tributeToken.transfer(proposal.proposer, proposal.tributeOffered),\r\n \"failed to return tribute to proposer\"\r\n );\r\n\r\n emit CancelProposal(proposalId, msg.sender);\r\n }\r\n\r\n // function updateDelegateKey(address newDelegateKey) public nonReentrant onlyShareholder {\r\n // require(newDelegateKey != address(0), \"newDelegateKey cannot be 0\");\r\n\r\n // // skip checks if member is setting the delegate key to their member address\r\n // if (newDelegateKey != msg.sender) {\r\n // require(!members[newDelegateKey].exists, \"cannot overwrite existing members\");\r\n // require(!members[memberAddressByDelegateKey[newDelegateKey]].exists, \"cannot overwrite existing delegate keys\");\r\n // }\r\n\r\n // Member storage member = members[msg.sender];\r\n // memberAddressByDelegateKey[member.delegateKey] = address(0);\r\n // memberAddressByDelegateKey[newDelegateKey] = msg.sender;\r\n // member.delegateKey = newDelegateKey;\r\n\r\n // emit UpdateDelegateKey(msg.sender, newDelegateKey);\r\n // }\r\n\r\n /***************\r\n GETTER FUNCTIONS\r\n ***************/\r\n function max(uint256 x, uint256 y) internal pure returns (uint256) {\r\n return x >= y ? x : y;\r\n }\r\n\r\n function getCurrentPeriod() public view returns (uint256) {\r\n return now.sub(summoningTime).div(periodDuration);\r\n }\r\n\r\n function getProposalQueueLength() public view returns (uint256) {\r\n return proposalQueue.length;\r\n }\r\n\r\n function getProposalFlags(uint256 proposalId) public view returns (bool[6] memory) {\r\n return proposals[proposalId].flags;\r\n }\r\n\r\n // can only ragequit if the latest proposal you voted YES on has been processed\r\n function canRagequit(uint256 highestIndexYesVote) public view returns (bool) {\r\n require(highestIndexYesVote < proposalQueue.length, \"proposal does not exist\");\r\n return proposals[proposalQueue[highestIndexYesVote]].flags[1];\r\n }\r\n\r\n // function canBailout(address memberToBail) public view returns (bool) {\r\n // Member memory member = members[memberToBail];\r\n\r\n // // get the starting period of the proposal to start the bailout wait from\r\n // // - either the guild kick proposal or the member's highest index yes vote\r\n // uint256 bailoutWaitStartingPeriod = member.highestIndexYesVote > member.jailed\r\n // ? proposals[proposalQueue[member.highestIndexYesVote]].startingPeriod\r\n // : proposals[proposalQueue[member.jailed]].startingPeriod;\r\n\r\n // // bailout wait starts after proposal grace period ends\r\n // return getCurrentPeriod() >= bailoutWaitStartingPeriod.add(votingPeriodLength).add(gracePeriodLength).add(bailoutWait);\r\n // }\r\n\r\n function hasVotingPeriodExpired(uint256 startingPeriod) public view returns (bool) {\r\n return getCurrentPeriod() >= startingPeriod.add(votingPeriodLength);\r\n }\r\n\r\n function getMemberProposalVote(address memberAddress, uint256 proposalIndex) public view returns (Vote) {\r\n require(members[memberAddress].exists, \"member does not exist\");\r\n require(proposalIndex < proposalQueue.length, \"proposal does not exist\");\r\n return proposals[proposalQueue[proposalIndex]].votesByMember[memberAddress];\r\n }\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\Moloch.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Moloch.sol", + "exportedSymbols": { + "Moloch": [ + 9115 + ] + }, + "id": 9116, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 7660, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:15" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "./oz/SafeMath.sol", + "id": 7661, + "nodeType": "ImportDirective", + "scope": 9116, + "sourceUnit": 9858, + "src": "36:27:15", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", + "file": "./oz/IERC20.sol", + "id": 7662, + "nodeType": "ImportDirective", + "scope": 9116, + "sourceUnit": 9720, + "src": "65:25:15", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol", + "file": "./oz/ReentrancyGuard.sol", + "id": 7663, + "nodeType": "ImportDirective", + "scope": 9116, + "sourceUnit": 9750, + "src": "92:34:15", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol", + "file": "./GuildBank.sol", + "id": 7664, + "nodeType": "ImportDirective", + "scope": 9116, + "sourceUnit": 7659, + "src": "128:25:15", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 7665, + "name": "ReentrancyGuard", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9749, + "src": "176:15:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReentrancyGuard_$9749", + "typeString": "contract ReentrancyGuard" + } + }, + "id": 7666, + "nodeType": "InheritanceSpecifier", + "src": "176:15:15" + } + ], + "contractDependencies": [ + 7658, + 9749 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 9115, + "linearizedBaseContracts": [ + 9115, + 9749 + ], + "name": "Moloch", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 7669, + "libraryName": { + "contractScope": null, + "id": 7667, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "205:8:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "199:27:15", + "typeName": { + "id": 7668, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "218:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 7671, + "name": "summoner", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "300:23:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "300:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7673, + "name": "periodDuration", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "387:29:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7672, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "387:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7675, + "name": "votingPeriodLength", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "485:33:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7674, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "485:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7677, + "name": "gracePeriodLength", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "558:32:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "558:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7679, + "name": "emergencyProcessingWait", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "630:38:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "630:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7681, + "name": "proposalDeposit", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "777:30:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "777:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7683, + "name": "summoningTime", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "1128:28:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7682, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1128:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7685, + "name": "depositToken", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "1207:26:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 7684, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "1207:6:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7687, + "name": "guildBank", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "1292:26:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + }, + "typeName": { + "contractScope": null, + "id": 7686, + "name": "GuildBank", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7658, + "src": "1292:9:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "id": 7692, + "name": "MAX_VOTING_PERIOD_LENGTH", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "1576:50:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1576:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "id": 7691, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 7689, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1620:2:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 7690, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1624:2:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "1620:6:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 7697, + "name": "MAX_GRACE_PERIOD_LENGTH", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "1668:49:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1668:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "id": 7696, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 7694, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1711:2:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 7695, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1715:2:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "1711:6:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 7702, + "name": "MAX_NUMBER_OF_SHARES", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "1988:46:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1988:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "id": 7701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 7699, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2028:2:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 7700, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2032:2:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "2028:6:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + }, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 7724, + "name": "SubmitProposal", + "nodeType": "EventDefinition", + "parameters": { + "id": 7723, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7704, + "indexed": false, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 7724, + "src": "2174:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7703, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2174:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7706, + "indexed": true, + "name": "delegateKey", + "nodeType": "VariableDeclaration", + "scope": 7724, + "src": "2197:27:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7705, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2197:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7708, + "indexed": true, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 7724, + "src": "2226:29:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7707, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2226:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7710, + "indexed": true, + "name": "applicant", + "nodeType": "VariableDeclaration", + "scope": 7724, + "src": "2257:25:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2257:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7712, + "indexed": false, + "name": "sharesRequested", + "nodeType": "VariableDeclaration", + "scope": 7724, + "src": "2284:23:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7711, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2284:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7714, + "indexed": false, + "name": "lootRequested", + "nodeType": "VariableDeclaration", + "scope": 7724, + "src": "2309:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7713, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2309:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7716, + "indexed": false, + "name": "tributeOffered", + "nodeType": "VariableDeclaration", + "scope": 7724, + "src": "2332:22:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2332:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7718, + "indexed": false, + "name": "tributeToken", + "nodeType": "VariableDeclaration", + "scope": 7724, + "src": "2356:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7717, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2356:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7720, + "indexed": false, + "name": "paymentRequested", + "nodeType": "VariableDeclaration", + "scope": 7724, + "src": "2378:24:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7719, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2378:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7722, + "indexed": false, + "name": "paymentToken", + "nodeType": "VariableDeclaration", + "scope": 7724, + "src": "2404:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7721, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2404:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2173:252:15" + }, + "src": "2153:273:15" + }, + { + "anonymous": false, + "documentation": null, + "id": 7736, + "name": "SponsorProposal", + "nodeType": "EventDefinition", + "parameters": { + "id": 7735, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7726, + "indexed": true, + "name": "delegateKey", + "nodeType": "VariableDeclaration", + "scope": 7736, + "src": "2454:27:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2454:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7728, + "indexed": true, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 7736, + "src": "2483:29:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7727, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2483:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7730, + "indexed": false, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 7736, + "src": "2514:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7729, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2514:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7732, + "indexed": false, + "name": "proposalQueueIndex", + "nodeType": "VariableDeclaration", + "scope": 7736, + "src": "2537:26:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7731, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2537:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7734, + "indexed": false, + "name": "startingPeriod", + "nodeType": "VariableDeclaration", + "scope": 7736, + "src": "2565:22:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7733, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2565:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2453:135:15" + }, + "src": "2432:157:15" + }, + { + "anonymous": false, + "documentation": null, + "id": 7746, + "name": "SubmitVote", + "nodeType": "EventDefinition", + "parameters": { + "id": 7745, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7738, + "indexed": true, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 7746, + "src": "2612:29:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7737, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2612:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7740, + "indexed": true, + "name": "delegateKey", + "nodeType": "VariableDeclaration", + "scope": 7746, + "src": "2643:27:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7739, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2643:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7742, + "indexed": true, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 7746, + "src": "2672:29:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7741, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2672:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7744, + "indexed": false, + "name": "uintVote", + "nodeType": "VariableDeclaration", + "scope": 7746, + "src": "2703:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 7743, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2703:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2611:107:15" + }, + "src": "2595:124:15" + }, + { + "anonymous": false, + "documentation": null, + "id": 7754, + "name": "ProcessProposal", + "nodeType": "EventDefinition", + "parameters": { + "id": 7753, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7748, + "indexed": true, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 7754, + "src": "2747:29:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7747, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2747:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7750, + "indexed": true, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 7754, + "src": "2778:26:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2778:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7752, + "indexed": false, + "name": "didPass", + "nodeType": "VariableDeclaration", + "scope": 7754, + "src": "2806:12:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7751, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2806:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2746:73:15" + }, + "src": "2725:95:15" + }, + { + "anonymous": false, + "documentation": null, + "id": 7762, + "name": "Ragequit", + "nodeType": "EventDefinition", + "parameters": { + "id": 7761, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7756, + "indexed": true, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 7762, + "src": "2841:29:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7755, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2841:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7758, + "indexed": false, + "name": "sharesToBurn", + "nodeType": "VariableDeclaration", + "scope": 7762, + "src": "2872:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7757, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2872:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7760, + "indexed": false, + "name": "lootToBurn", + "nodeType": "VariableDeclaration", + "scope": 7762, + "src": "2894:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2894:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2840:73:15" + }, + "src": "2826:88:15" + }, + { + "anonymous": false, + "documentation": null, + "id": 7768, + "name": "CancelProposal", + "nodeType": "EventDefinition", + "parameters": { + "id": 7767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7764, + "indexed": true, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 7768, + "src": "2941:29:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7763, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2941:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7766, + "indexed": false, + "name": "applicantAddress", + "nodeType": "VariableDeclaration", + "scope": 7768, + "src": "2972:24:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7765, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2972:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2940:57:15" + }, + "src": "2920:78:15" + }, + { + "anonymous": false, + "documentation": null, + "id": 7774, + "name": "UpdateDelegateKey", + "nodeType": "EventDefinition", + "parameters": { + "id": 7773, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7770, + "indexed": true, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 7774, + "src": "3028:29:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7769, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3028:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7772, + "indexed": false, + "name": "newDelegateKey", + "nodeType": "VariableDeclaration", + "scope": 7774, + "src": "3059:22:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7771, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3059:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3027:55:15" + }, + "src": "3004:79:15" + }, + { + "anonymous": false, + "documentation": null, + "id": 7780, + "name": "SummonComplete", + "nodeType": "EventDefinition", + "parameters": { + "id": 7779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7776, + "indexed": true, + "name": "summoner", + "nodeType": "VariableDeclaration", + "scope": 7780, + "src": "3110:24:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7775, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3110:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7778, + "indexed": false, + "name": "shares", + "nodeType": "VariableDeclaration", + "scope": 7780, + "src": "3136:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7777, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3136:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3109:42:15" + }, + "src": "3089:63:15" + }, + { + "constant": false, + "id": 7783, + "name": "proposalCount", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "3244:32:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7781, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3244:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 7782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3275:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 7786, + "name": "totalShares", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "3312:30:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7784, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3312:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 7785, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3341:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 7789, + "name": "emergencyWarning", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "3456:36:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7787, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3456:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 7788, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3487:5:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 7792, + "name": "lastEmergencyProposalIndex", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "3555:45:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7790, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3555:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 7791, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3599:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "canonicalName": "Moloch.Vote", + "id": 7796, + "members": [ + { + "id": 7793, + "name": "Null", + "nodeType": "EnumValue", + "src": "3697:4:15" + }, + { + "id": 7794, + "name": "Yes", + "nodeType": "EnumValue", + "src": "3752:3:15" + }, + { + "id": 7795, + "name": "No", + "nodeType": "EnumValue", + "src": "3766:2:15" + } + ], + "name": "Vote", + "nodeType": "EnumDefinition", + "src": "3676:99:15" + }, + { + "canonicalName": "Moloch.Member", + "id": 7805, + "members": [ + { + "constant": false, + "id": 7798, + "name": "delegateKey", + "nodeType": "VariableDeclaration", + "scope": 7805, + "src": "3808:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7797, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3808:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7800, + "name": "shares", + "nodeType": "VariableDeclaration", + "scope": 7805, + "src": "3941:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7799, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3941:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7802, + "name": "exists", + "nodeType": "VariableDeclaration", + "scope": 7805, + "src": "4120:11:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7801, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4120:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7804, + "name": "highestIndexYesVote", + "nodeType": "VariableDeclaration", + "scope": 7805, + "src": "4188:27:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7803, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4188:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Member", + "nodeType": "StructDefinition", + "scope": 9115, + "src": "3783:643:15", + "visibility": "public" + }, + { + "canonicalName": "Moloch.Proposal", + "id": 7842, + "members": [ + { + "constant": false, + "id": 7807, + "name": "applicant", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "4461:17:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7806, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4461:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7809, + "name": "proposer", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "4627:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7808, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4627:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7811, + "name": "sponsor", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "4717:15:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4717:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7813, + "name": "sharesRequested", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "4812:23:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7812, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4812:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7815, + "name": "lootRequested", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "4893:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4893:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7817, + "name": "tributeOffered", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "4975:22:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7816, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4975:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7819, + "name": "tributeToken", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "5047:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 7818, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "5047:6:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7821, + "name": "paymentRequested", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "5113:24:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5113:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7823, + "name": "paymentToken", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "5189:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 7822, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "5189:6:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7825, + "name": "startingPeriod", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "5255:22:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7824, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5255:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7827, + "name": "yesVotes", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "5346:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7826, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5346:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7829, + "name": "noVotes", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "5424:15:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7828, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5424:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7833, + "name": "flags", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "5500:13:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", + "typeString": "bool[6]" + }, + "typeName": { + "baseType": { + "id": 7830, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5500:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7832, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 7831, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5505:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "5500:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", + "typeString": "bool[6]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7835, + "name": "details", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "5592:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7834, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5592:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7837, + "name": "maxTotalSharesAndLootAtYesVote", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "5678:38:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5678:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7841, + "name": "votesByMember", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "5803:38:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$7796_$", + "typeString": "mapping(address => enum Moloch.Vote)" + }, + "typeName": { + "id": 7840, + "keyType": { + "id": 7838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5811:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5803:24:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$7796_$", + "typeString": "mapping(address => enum Moloch.Vote)" + }, + "valueType": { + "contractScope": null, + "id": 7839, + "name": "Vote", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7796, + "src": "5822:4:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Proposal", + "nodeType": "StructDefinition", + "scope": 9115, + "src": "4434:1460:15", + "visibility": "public" + }, + { + "constant": false, + "id": 7845, + "name": "approvedTokens", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "5957:30:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage", + "typeString": "contract IERC20[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 7843, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "5957:6:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 7844, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5957:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage_ptr", + "typeString": "contract IERC20[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7849, + "name": "members", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "6113:41:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member)" + }, + "typeName": { + "id": 7848, + "keyType": { + "id": 7846, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6121:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "6113:26:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member)" + }, + "valueType": { + "contractScope": null, + "id": 7847, + "name": "Member", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7805, + "src": "6132:6:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7853, + "name": "memberAddressByDelegateKey", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "6161:61:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "typeName": { + "id": 7852, + "keyType": { + "id": 7850, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6169:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "6161:27:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "valueType": { + "id": 7851, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6180:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7857, + "name": "proposals", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "6231:45:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal)" + }, + "typeName": { + "id": 7856, + "keyType": { + "id": 7854, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6239:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "6231:28:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal)" + }, + "valueType": { + "contractScope": null, + "id": 7855, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7842, + "src": "6250:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7860, + "name": "proposalQueue", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "6285:30:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 7858, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6285:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7859, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6285:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 7874, + "nodeType": "Block", + "src": "6344:87:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7863, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "6363:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 7866, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7864, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6371:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6371:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6363:19:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "id": 7867, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 7800, + "src": "6363:26:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6392:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6363:30:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6e6f742061206d656d626572", + "id": 7870, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6396:14:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8a38730a0a31747b89b97e72db1b281f9d6fdcc9116c7bee85aba010b162e996", + "typeString": "literal_string \"not a member\"" + }, + "value": "not a member" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a38730a0a31747b89b97e72db1b281f9d6fdcc9116c7bee85aba010b162e996", + "typeString": "literal_string \"not a member\"" + } + ], + "id": 7862, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "6355:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6355:56:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7872, + "nodeType": "ExpressionStatement", + "src": "6355:56:15" + }, + { + "id": 7873, + "nodeType": "PlaceholderStatement", + "src": "6422:1:15" + } + ] + }, + "documentation": null, + "id": 7875, + "name": "onlyMember", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 7861, + "nodeType": "ParameterList", + "parameters": [], + "src": "6344:0:15" + }, + "src": "6324:107:15", + "visibility": "internal" + }, + { + "body": { + "id": 7889, + "nodeType": "Block", + "src": "6464:91:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7878, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "6483:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 7881, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7879, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6491:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6491:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6483:19:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "id": 7882, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 7800, + "src": "6483:26:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7883, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6512:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6483:30:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6e6f742061207368617265686f6c646572", + "id": 7885, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6515:19:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f04c1891c0a18f803b467b9992e2d2738663e155d08d2aaee274da8a131a0bdb", + "typeString": "literal_string \"not a shareholder\"" + }, + "value": "not a shareholder" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f04c1891c0a18f803b467b9992e2d2738663e155d08d2aaee274da8a131a0bdb", + "typeString": "literal_string \"not a shareholder\"" + } + ], + "id": 7877, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "6475:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6475:60:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7887, + "nodeType": "ExpressionStatement", + "src": "6475:60:15" + }, + { + "id": 7888, + "nodeType": "PlaceholderStatement", + "src": "6546:1:15" + } + ] + }, + "documentation": null, + "id": 7890, + "name": "onlyShareholder", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 7876, + "nodeType": "ParameterList", + "parameters": [], + "src": "6464:0:15" + }, + "src": "6439:116:15", + "visibility": "internal" + }, + { + "body": { + "id": 7906, + "nodeType": "Block", + "src": "6585:116:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7893, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "6604:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 7898, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7894, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7853, + "src": "6612:26:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 7897, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7895, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6639:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6639:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6612:38:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6604:47:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "id": 7899, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 7800, + "src": "6604:54:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6661:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6604:58:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6e6f7420612064656c6567617465", + "id": 7902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6664:16:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4d2048a93053cc7fa7807c657f537fc9d130edf6819e714c97d45589e5ba66dc", + "typeString": "literal_string \"not a delegate\"" + }, + "value": "not a delegate" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4d2048a93053cc7fa7807c657f537fc9d130edf6819e714c97d45589e5ba66dc", + "typeString": "literal_string \"not a delegate\"" + } + ], + "id": 7892, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "6596:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6596:85:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7904, + "nodeType": "ExpressionStatement", + "src": "6596:85:15" + }, + { + "id": 7905, + "nodeType": "PlaceholderStatement", + "src": "6692:1:15" + } + ] + }, + "documentation": null, + "id": 7907, + "name": "onlyDelegate", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 7891, + "nodeType": "ParameterList", + "parameters": [], + "src": "6585:0:15" + }, + "src": "6563:138:15", + "visibility": "internal" + }, + { + "body": { + "id": 8086, + "nodeType": "Block", + "src": "7094:2188:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 7937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7933, + "name": "_summoner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7909, + "src": "7113:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7935, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7134:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7934, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7126:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7126:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7113:23:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "73756d6d6f6e65722063616e6e6f742062652030", + "id": 7938, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7138:22:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e18bccdb58063a7f6628b2785d4b67ba1d84d6f9ced86e1185ad4b056fddad91", + "typeString": "literal_string \"summoner cannot be 0\"" + }, + "value": "summoner cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e18bccdb58063a7f6628b2785d4b67ba1d84d6f9ced86e1185ad4b056fddad91", + "typeString": "literal_string \"summoner cannot be 0\"" + } + ], + "id": 7932, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7105:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7105:56:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7940, + "nodeType": "ExpressionStatement", + "src": "7105:56:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7942, + "name": "_periodDuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7915, + "src": "7180:15:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7943, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7198:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7180:19:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f706572696f644475726174696f6e2063616e6e6f742062652030", + "id": 7945, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7201:29:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_dcaa7db0431116123c67314944edc83f1ee2d0251a1b070940664f004c74012d", + "typeString": "literal_string \"_periodDuration cannot be 0\"" + }, + "value": "_periodDuration cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_dcaa7db0431116123c67314944edc83f1ee2d0251a1b070940664f004c74012d", + "typeString": "literal_string \"_periodDuration cannot be 0\"" + } + ], + "id": 7941, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7172:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7172:59:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7947, + "nodeType": "ExpressionStatement", + "src": "7172:59:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7949, + "name": "_votingPeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7917, + "src": "7250:19:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7950, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7272:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7250:23:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f766f74696e67506572696f644c656e6774682063616e6e6f742062652030", + "id": 7952, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7275:33:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_90c9559254cdd6a8c5e39e97417540a97cc2c7e6b004410ebb33d7f7769bc53b", + "typeString": "literal_string \"_votingPeriodLength cannot be 0\"" + }, + "value": "_votingPeriodLength cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_90c9559254cdd6a8c5e39e97417540a97cc2c7e6b004410ebb33d7f7769bc53b", + "typeString": "literal_string \"_votingPeriodLength cannot be 0\"" + } + ], + "id": 7948, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7242:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7242:67:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7954, + "nodeType": "ExpressionStatement", + "src": "7242:67:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7956, + "name": "_votingPeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7917, + "src": "7328:19:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 7957, + "name": "MAX_VOTING_PERIOD_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7692, + "src": "7351:24:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7328:47:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f766f74696e67506572696f644c656e6774682065786365656473206c696d6974", + "id": 7959, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7377:35:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7cba4ff2b7c48d54c20d93277dca7b9500525168ffa3f2b94651177b72c45612", + "typeString": "literal_string \"_votingPeriodLength exceeds limit\"" + }, + "value": "_votingPeriodLength exceeds limit" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7cba4ff2b7c48d54c20d93277dca7b9500525168ffa3f2b94651177b72c45612", + "typeString": "literal_string \"_votingPeriodLength exceeds limit\"" + } + ], + "id": 7955, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7320:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7320:93:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7961, + "nodeType": "ExpressionStatement", + "src": "7320:93:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7963, + "name": "_gracePeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7919, + "src": "7432:18:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 7964, + "name": "MAX_GRACE_PERIOD_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7697, + "src": "7454:23:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7432:45:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f6772616365506572696f644c656e6774682065786365656473206c696d6974", + "id": 7966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7479:34:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_94e4c02e557a13b96fee3c87ad3ed501d16c78e01ccadd26d54a03a2773f4e60", + "typeString": "literal_string \"_gracePeriodLength exceeds limit\"" + }, + "value": "_gracePeriodLength exceeds limit" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94e4c02e557a13b96fee3c87ad3ed501d16c78e01ccadd26d54a03a2773f4e60", + "typeString": "literal_string \"_gracePeriodLength exceeds limit\"" + } + ], + "id": 7962, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7424:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7424:90:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7968, + "nodeType": "ExpressionStatement", + "src": "7424:90:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7970, + "name": "_emergencyProcessingWait", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7921, + "src": "7533:24:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7971, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7560:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7533:28:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f656d657267656e637950726f63657373696e67576169742063616e6e6f742062652030", + "id": 7973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7563:38:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bbc33dc034ca97464527af241134c23d7681bf4b99d8886c6c16474b9fa58717", + "typeString": "literal_string \"_emergencyProcessingWait cannot be 0\"" + }, + "value": "_emergencyProcessingWait cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_bbc33dc034ca97464527af241134c23d7681bf4b99d8886c6c16474b9fa58717", + "typeString": "literal_string \"_emergencyProcessingWait cannot be 0\"" + } + ], + "id": 7969, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7525:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7525:77:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7975, + "nodeType": "ExpressionStatement", + "src": "7525:77:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7977, + "name": "_approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7913, + "src": "7988:15:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + } + }, + "id": 7978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7988:22:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8013:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7988:26:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6e656564206174206c65617374206f6e6520617070726f76656420746f6b656e", + "id": 7981, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8016:34:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c6d3134f6bde8083414251001f93c467973bb02a0dc01b762665902389253170", + "typeString": "literal_string \"need at least one approved token\"" + }, + "value": "need at least one approved token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c6d3134f6bde8083414251001f93c467973bb02a0dc01b762665902389253170", + "typeString": "literal_string \"need at least one approved token\"" + } + ], + "id": 7976, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7980:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7980:71:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7983, + "nodeType": "ExpressionStatement", + "src": "7980:71:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 7986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7984, + "name": "summoner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7671, + "src": "8184:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7985, + "name": "_summoner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7909, + "src": "8195:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8184:20:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7987, + "nodeType": "ExpressionStatement", + "src": "8184:20:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 7994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7988, + "name": "depositToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7685, + "src": "8217:12:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7990, + "name": "_approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7913, + "src": "8239:15:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + } + }, + "id": 7992, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7991, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8255:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8239:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7989, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9719, + "src": "8232:6:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 7993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8232:26:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "src": "8217:41:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 7995, + "nodeType": "ExpressionStatement", + "src": "8217:41:15" + }, + { + "body": { + "id": 8028, + "nodeType": "Block", + "src": "8324:307:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 8014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8008, + "name": "_approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7913, + "src": "8347:15:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + } + }, + "id": 8010, + "indexExpression": { + "argumentTypes": null, + "id": 8009, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7997, + "src": "8363:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8347:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 8012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8377:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 8011, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8369:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 8013, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8369:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8347:32:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f617070726f766564546f6b656e2063616e6e6f742062652030", + "id": 8015, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8381:28:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b40b09ae38f1346b8a26ea643f189c8d547e60b5d4d63ceb6e8e43507dd5bc8", + "typeString": "literal_string \"_approvedToken cannot be 0\"" + }, + "value": "_approvedToken cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b40b09ae38f1346b8a26ea643f189c8d547e60b5d4d63ceb6e8e43507dd5bc8", + "typeString": "literal_string \"_approvedToken cannot be 0\"" + } + ], + "id": 8007, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "8339:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8339:71:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8017, + "nodeType": "ExpressionStatement", + "src": "8339:71:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8022, + "name": "_approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7913, + "src": "8599:15:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + } + }, + "id": 8024, + "indexExpression": { + "argumentTypes": null, + "id": 8023, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7997, + "src": "8615:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8599:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8021, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9719, + "src": "8592:6:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 8025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8592:26:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + ], + "expression": { + "argumentTypes": null, + "id": 8018, + "name": "approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7845, + "src": "8572:14:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage", + "typeString": "contract IERC20[] storage ref" + } + }, + "id": 8020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8572:19:15", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_IERC20_$9719_$returns$_t_uint256_$", + "typeString": "function (contract IERC20) returns (uint256)" + } + }, + "id": 8026, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8572:47:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8027, + "nodeType": "ExpressionStatement", + "src": "8572:47:15" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8000, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7997, + "src": "8291:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8001, + "name": "_approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7913, + "src": "8295:15:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + } + }, + "id": 8002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8295:22:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8291:26:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8029, + "initializationExpression": { + "assignments": [ + 7997 + ], + "declarations": [ + { + "constant": false, + "id": 7997, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 8029, + "src": "8276:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7996, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8276:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7999, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 7998, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8288:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "8276:13:15" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 8005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "8319:3:15", + "subExpression": { + "argumentTypes": null, + "id": 8004, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7997, + "src": "8319:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8006, + "nodeType": "ExpressionStatement", + "src": "8319:3:15" + }, + "nodeType": "ForStatement", + "src": "8271:360:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8030, + "name": "guildBank", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7687, + "src": "8643:9:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "8655:13:15", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_GuildBank_$7658_$", + "typeString": "function () returns (contract GuildBank)" + }, + "typeName": { + "contractScope": null, + "id": 8031, + "name": "GuildBank", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7658, + "src": "8659:9:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + } + }, + "id": 8033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8655:15:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + }, + "src": "8643:27:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + }, + "id": 8035, + "nodeType": "ExpressionStatement", + "src": "8643:27:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8036, + "name": "periodDuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7673, + "src": "8683:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8037, + "name": "_periodDuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7915, + "src": "8700:15:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8683:32:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8039, + "nodeType": "ExpressionStatement", + "src": "8683:32:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8040, + "name": "votingPeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7675, + "src": "8726:18:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8041, + "name": "_votingPeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7917, + "src": "8747:19:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8726:40:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8043, + "nodeType": "ExpressionStatement", + "src": "8726:40:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8044, + "name": "gracePeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7677, + "src": "8777:17:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8045, + "name": "_gracePeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7919, + "src": "8797:18:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8777:38:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8047, + "nodeType": "ExpressionStatement", + "src": "8777:38:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8048, + "name": "emergencyProcessingWait", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7679, + "src": "8826:23:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8049, + "name": "_emergencyProcessingWait", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7921, + "src": "8852:24:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8826:50:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8051, + "nodeType": "ExpressionStatement", + "src": "8826:50:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8052, + "name": "proposalDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7681, + "src": "8926:15:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8053, + "name": "_proposalDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7925, + "src": "8944:16:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8926:34:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8055, + "nodeType": "ExpressionStatement", + "src": "8926:34:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8056, + "name": "summoningTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7683, + "src": "9065:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8057, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10413, + "src": "9081:3:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9065:19:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8059, + "nodeType": "ExpressionStatement", + "src": "9065:19:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8060, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "9097:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 8062, + "indexExpression": { + "argumentTypes": null, + "id": 8061, + "name": "summoner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7671, + "src": "9105:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9097:17:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8064, + "name": "summoner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7671, + "src": "9124:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "31", + "id": 8065, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9134:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 8066, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9137:4:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 8067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9143:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 8063, + "name": "Member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7805, + "src": "9117:6:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Member_$7805_storage_ptr_$", + "typeString": "type(struct Moloch.Member storage pointer)" + } + }, + "id": 8068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9117:28:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_memory", + "typeString": "struct Moloch.Member memory" + } + }, + "src": "9097:48:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "id": 8070, + "nodeType": "ExpressionStatement", + "src": "9097:48:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8071, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7853, + "src": "9156:26:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 8073, + "indexExpression": { + "argumentTypes": null, + "id": 8072, + "name": "summoner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7671, + "src": "9183:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9156:36:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8074, + "name": "summoner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7671, + "src": "9195:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9156:47:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 8076, + "nodeType": "ExpressionStatement", + "src": "9156:47:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8077, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7786, + "src": "9214:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 8078, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9228:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9214:15:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8080, + "nodeType": "ExpressionStatement", + "src": "9214:15:15" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8082, + "name": "summoner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7671, + "src": "9262:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "31", + "id": 8083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9272:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 8081, + "name": "SummonComplete", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "9247:14:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 8084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9247:27:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8085, + "nodeType": "EmitStatement", + "src": "9242:32:15" + } + ] + }, + "documentation": null, + "id": 8087, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7930, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7909, + "name": "_summoner", + "nodeType": "VariableDeclaration", + "scope": 8087, + "src": "6731:17:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7908, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6731:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7913, + "name": "_approvedTokens", + "nodeType": "VariableDeclaration", + "scope": 8087, + "src": "6759:33:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1]" + }, + "typeName": { + "baseType": { + "id": 7910, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6759:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7912, + "length": { + "argumentTypes": null, + "hexValue": "31", + "id": 7911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6767:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "ArrayTypeName", + "src": "6759:10:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_storage_ptr", + "typeString": "address[1]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7915, + "name": "_periodDuration", + "nodeType": "VariableDeclaration", + "scope": 8087, + "src": "6803:23:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7914, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6803:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7917, + "name": "_votingPeriodLength", + "nodeType": "VariableDeclaration", + "scope": 8087, + "src": "6837:27:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7916, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6837:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7919, + "name": "_gracePeriodLength", + "nodeType": "VariableDeclaration", + "scope": 8087, + "src": "6875:26:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7918, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6875:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7921, + "name": "_emergencyProcessingWait", + "nodeType": "VariableDeclaration", + "scope": 8087, + "src": "6912:32:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7920, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6912:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7923, + "name": "_bailoutWait", + "nodeType": "VariableDeclaration", + "scope": 8087, + "src": "6955:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7922, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6955:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7925, + "name": "_proposalDeposit", + "nodeType": "VariableDeclaration", + "scope": 8087, + "src": "6986:24:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7924, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6986:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7927, + "name": "_dilutionBound", + "nodeType": "VariableDeclaration", + "scope": 8087, + "src": "7021:22:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7926, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7021:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7929, + "name": "_processingReward", + "nodeType": "VariableDeclaration", + "scope": 8087, + "src": "7054:25:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7928, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7054:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6720:366:15" + }, + "returnParameters": { + "id": 7931, + "nodeType": "ParameterList", + "parameters": [], + "src": "7094:0:15" + }, + "scope": 9115, + "src": "6709:2573:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 8148, + "nodeType": "Block", + "src": "9698:1003:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8111, + "name": "sharesRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8091, + "src": "9717:15:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 8112, + "name": "MAX_NUMBER_OF_SHARES", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7702, + "src": "9736:20:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9717:39:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "746f6f206d616e792073686172657320726571756573746564", + "id": 8114, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9758:27:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_584b3bdfa816bf4fa30756567c0526c04441dc54230f4ba83c195ee6f0a70758", + "typeString": "literal_string \"too many shares requested\"" + }, + "value": "too many shares requested" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_584b3bdfa816bf4fa30756567c0526c04441dc54230f4ba83c195ee6f0a70758", + "typeString": "literal_string \"too many shares requested\"" + } + ], + "id": 8110, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "9709:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9709:77:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8116, + "nodeType": "ExpressionStatement", + "src": "9709:77:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 8122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8118, + "name": "applicant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8089, + "src": "9970:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 8120, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9991:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 8119, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9983:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 8121, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9983:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "9970:23:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6170706c6963616e742063616e6e6f742062652030", + "id": 8123, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9995:23:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9ab093dd894be784ee3143d9792a50bf0275e1dda1505d8ede42bc26455cf276", + "typeString": "literal_string \"applicant cannot be 0\"" + }, + "value": "applicant cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9ab093dd894be784ee3143d9792a50bf0275e1dda1505d8ede42bc26455cf276", + "typeString": "literal_string \"applicant cannot be 0\"" + } + ], + "id": 8117, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "9962:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9962:57:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8125, + "nodeType": "ExpressionStatement", + "src": "9962:57:15" + }, + { + "assignments": [ + 8130 + ], + "declarations": [ + { + "constant": false, + "id": 8130, + "name": "flags", + "nodeType": "VariableDeclaration", + "scope": 8148, + "src": "10359:20:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6]" + }, + "typeName": { + "baseType": { + "id": 8128, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10359:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8129, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 8127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10364:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "10359:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", + "typeString": "bool[6]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8131, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "10359:20:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8133, + "name": "applicant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8089, + "src": "10476:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8134, + "name": "sharesRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8091, + "src": "10487:15:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8135, + "name": "lootRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8093, + "src": "10504:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8136, + "name": "tributeOffered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8095, + "src": "10519:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8137, + "name": "tributeToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8097, + "src": "10535:12:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8138, + "name": "paymentRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8099, + "src": "10549:16:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8139, + "name": "paymentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8101, + "src": "10567:12:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8140, + "name": "details", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8103, + "src": "10581:7:15", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 8141, + "name": "flags", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8130, + "src": "10590:5:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6] memory" + } + ], + "id": 8132, + "name": "_submitProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8231, + "src": "10460:15:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_array$_t_bool_$6_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,address,uint256,address,string memory,bool[6] memory)" + } + }, + "id": 8142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10460:136:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8143, + "nodeType": "ExpressionStatement", + "src": "10460:136:15" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8144, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7783, + "src": "10614:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 8145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10630:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10614:17:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8109, + "id": 8147, + "nodeType": "Return", + "src": "10607:24:15" + } + ] + }, + "documentation": "***************\r\nPROPOSAL FUNCTIONS\r****************", + "id": 8149, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 8106, + "modifierName": { + "argumentTypes": null, + "id": 8105, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9748, + "src": "9656:12:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "9656:12:15" + } + ], + "name": "submitProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8104, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8089, + "name": "applicant", + "nodeType": "VariableDeclaration", + "scope": 8149, + "src": "9396:17:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8088, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9396:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8091, + "name": "sharesRequested", + "nodeType": "VariableDeclaration", + "scope": 8149, + "src": "9424:23:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8090, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9424:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8093, + "name": "lootRequested", + "nodeType": "VariableDeclaration", + "scope": 8149, + "src": "9458:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8092, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9458:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8095, + "name": "tributeOffered", + "nodeType": "VariableDeclaration", + "scope": 8149, + "src": "9490:22:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8094, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9490:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8097, + "name": "tributeToken", + "nodeType": "VariableDeclaration", + "scope": 8149, + "src": "9523:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8096, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9523:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8099, + "name": "paymentRequested", + "nodeType": "VariableDeclaration", + "scope": 8149, + "src": "9554:24:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8098, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9554:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8101, + "name": "paymentToken", + "nodeType": "VariableDeclaration", + "scope": 8149, + "src": "9589:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8100, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9589:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8103, + "name": "details", + "nodeType": "VariableDeclaration", + "scope": 8149, + "src": "9620:21:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 8102, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9620:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9385:263:15" + }, + "returnParameters": { + "id": 8109, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8108, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 8149, + "src": "9678:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8107, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9678:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9677:20:15" + }, + "scope": 9115, + "src": "9362:1339:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 8230, + "nodeType": "Block", + "src": "12407:984:15", + "statements": [ + { + "assignments": [ + 8173 + ], + "declarations": [ + { + "constant": false, + "id": 8173, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 8230, + "src": "12418:24:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", + "typeString": "struct Moloch.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 8172, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7842, + "src": "12418:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8198, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8175, + "name": "applicant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8151, + "src": "12481:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8176, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "12516:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12516:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 8179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12559:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 8178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12551:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 8180, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12551:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 8181, + "name": "sharesRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8153, + "src": "12594:15:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8182, + "name": "lootRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8155, + "src": "12640:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8183, + "name": "tributeOffered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8157, + "src": "12685:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8185, + "name": "tributeToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8159, + "src": "12736:12:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8184, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9719, + "src": "12729:6:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 8186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12729:20:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + { + "argumentTypes": null, + "id": 8187, + "name": "paymentRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8161, + "src": "12783:16:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8189, + "name": "paymentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8163, + "src": "12836:12:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8188, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9719, + "src": "12829:6:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 8190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12829:20:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 8191, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12881:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 8192, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12908:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 8193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12934:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "id": 8194, + "name": "flags", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8169, + "src": "12958:5:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6] memory" + } + }, + { + "argumentTypes": null, + "id": 8195, + "name": "details", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8165, + "src": "12988:7:15", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 8196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13043:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 8174, + "name": "Proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7842, + "src": "12445:8:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Proposal_$7842_storage_ptr_$", + "typeString": "type(struct Moloch.Proposal storage pointer)" + } + }, + "id": 8197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "applicant", + "proposer", + "sponsor", + "sharesRequested", + "lootRequested", + "tributeOffered", + "tributeToken", + "paymentRequested", + "paymentToken", + "startingPeriod", + "yesVotes", + "noVotes", + "flags", + "details", + "maxTotalSharesAndLootAtYesVote" + ], + "nodeType": "FunctionCall", + "src": "12445:611:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_memory", + "typeString": "struct Moloch.Proposal memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12418:638:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8199, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "13069:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" + } + }, + "id": 8201, + "indexExpression": { + "argumentTypes": null, + "id": 8200, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7783, + "src": "13079:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13069:24:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8202, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8173, + "src": "13096:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", + "typeString": "struct Moloch.Proposal memory" + } + }, + "src": "13069:35:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "id": 8204, + "nodeType": "ExpressionStatement", + "src": "13069:35:15" + }, + { + "assignments": [ + 8206 + ], + "declarations": [ + { + "constant": false, + "id": 8206, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 8230, + "src": "13115:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8205, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13115:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8211, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8207, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7853, + "src": "13139:26:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 8210, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8208, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "13166:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13166:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13139:38:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13115:62:15" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8213, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7783, + "src": "13208:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8214, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "13223:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13223:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 8216, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8206, + "src": "13235:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8217, + "name": "applicant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8151, + "src": "13250:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8218, + "name": "sharesRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8153, + "src": "13261:15:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8219, + "name": "lootRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8155, + "src": "13278:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8220, + "name": "tributeOffered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8157, + "src": "13293:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8221, + "name": "tributeToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8159, + "src": "13309:12:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8222, + "name": "paymentRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8161, + "src": "13323:16:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8223, + "name": "paymentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8163, + "src": "13341:12:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8212, + "name": "SubmitProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7724, + "src": "13193:14:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (uint256,address,address,address,uint256,uint256,uint256,address,uint256,address)" + } + }, + "id": 8224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13193:161:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8225, + "nodeType": "EmitStatement", + "src": "13188:166:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8226, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7783, + "src": "13365:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 8227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13382:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "13365:18:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8229, + "nodeType": "ExpressionStatement", + "src": "13365:18:15" + } + ] + }, + "documentation": null, + "id": 8231, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_submitProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8170, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8151, + "name": "applicant", + "nodeType": "VariableDeclaration", + "scope": 8231, + "src": "12114:17:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8150, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12114:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8153, + "name": "sharesRequested", + "nodeType": "VariableDeclaration", + "scope": 8231, + "src": "12142:23:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8152, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12142:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8155, + "name": "lootRequested", + "nodeType": "VariableDeclaration", + "scope": 8231, + "src": "12176:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8154, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12176:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8157, + "name": "tributeOffered", + "nodeType": "VariableDeclaration", + "scope": 8231, + "src": "12208:22:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8156, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12208:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8159, + "name": "tributeToken", + "nodeType": "VariableDeclaration", + "scope": 8231, + "src": "12241:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12241:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8161, + "name": "paymentRequested", + "nodeType": "VariableDeclaration", + "scope": 8231, + "src": "12272:24:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8160, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12272:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8163, + "name": "paymentToken", + "nodeType": "VariableDeclaration", + "scope": 8231, + "src": "12307:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8162, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12307:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8165, + "name": "details", + "nodeType": "VariableDeclaration", + "scope": 8231, + "src": "12338:21:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 8164, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "12338:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8169, + "name": "flags", + "nodeType": "VariableDeclaration", + "scope": 8231, + "src": "12370:20:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6]" + }, + "typeName": { + "baseType": { + "id": 8166, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12370:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8168, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 8167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12375:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "12370:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", + "typeString": "bool[6]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12103:294:15" + }, + "returnParameters": { + "id": 8171, + "nodeType": "ParameterList", + "parameters": [], + "src": "12407:0:15" + }, + "scope": 9115, + "src": "12079:1312:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 8346, + "nodeType": "Block", + "src": "13477:1932:15", + "statements": [ + { + "assignments": [ + 8241 + ], + "declarations": [ + { + "constant": false, + "id": 8241, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 8346, + "src": "13732:25:15", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 8240, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7842, + "src": "13732:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8245, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8242, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "13760:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" + } + }, + "id": 8244, + "indexExpression": { + "argumentTypes": null, + "id": 8243, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8233, + "src": "13770:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13760:21:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13732:49:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 8252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8247, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8241, + "src": "13802:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8248, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "proposer", + "nodeType": "MemberAccess", + "referencedDeclaration": 7809, + "src": "13802:17:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 8250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13831:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 8249, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13823:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 8251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13823:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13802:31:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c206d7573742068617665206265656e2070726f706f736564", + "id": 8253, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13835:34:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ac8dac03073454fa1d404b87251ebaea89a776f599ae35927c3fdc86124e6933", + "typeString": "literal_string \"proposal must have been proposed\"" + }, + "value": "proposal must have been proposed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ac8dac03073454fa1d404b87251ebaea89a776f599ae35927c3fdc86124e6933", + "typeString": "literal_string \"proposal must have been proposed\"" + } + ], + "id": 8246, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "13794:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13794:76:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8255, + "nodeType": "ExpressionStatement", + "src": "13794:76:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "13889:18:15", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8257, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8241, + "src": "13890:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8258, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 7833, + "src": "13890:14:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 8260, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13905:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13890:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c2068617320616c7265616479206265656e2073706f6e736f726564", + "id": 8262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13909:37:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8ce373ba28507085e66e9df24290b9ef61d72fa05638e1221982de773985e387", + "typeString": "literal_string \"proposal has already been sponsored\"" + }, + "value": "proposal has already been sponsored" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8ce373ba28507085e66e9df24290b9ef61d72fa05638e1221982de773985e387", + "typeString": "literal_string \"proposal has already been sponsored\"" + } + ], + "id": 8256, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "13881:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13881:66:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8264, + "nodeType": "ExpressionStatement", + "src": "13881:66:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "13966:18:15", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8266, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8241, + "src": "13967:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8267, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 7833, + "src": "13967:14:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 8269, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 8268, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13982:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13967:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c20686173206265656e2063616e63656c6c6564", + "id": 8271, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13986:29:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_310ff3a9ce641706ee5130d4a11d082239c2f517d2fdbc264a36cda8e36c8cbd", + "typeString": "literal_string \"proposal has been cancelled\"" + }, + "value": "proposal has been cancelled" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_310ff3a9ce641706ee5130d4a11d082239c2f517d2fdbc264a36cda8e36c8cbd", + "typeString": "literal_string \"proposal has been cancelled\"" + } + ], + "id": 8265, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "13958:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13958:58:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8273, + "nodeType": "ExpressionStatement", + "src": "13958:58:15" + }, + { + "assignments": [ + 8275 + ], + "declarations": [ + { + "constant": false, + "id": 8275, + "name": "startingPeriod", + "nodeType": "VariableDeclaration", + "scope": 8346, + "src": "14800:22:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8274, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14800:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8299, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 8297, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14992:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8277, + "name": "getCurrentPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9014, + "src": "14843:16:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14843:18:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8279, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "14876:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 8280, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14876:20:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14900:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14876:25:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8284, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "14908:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" + } + }, + "id": 8292, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8285, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "14918:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 8291, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 8289, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14957:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8286, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "14932:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 8287, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14932:20:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "14932:24:15", + "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": 8290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14932:27:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14918:42:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14908:53:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "id": 8293, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "startingPeriod", + "nodeType": "MemberAccess", + "referencedDeclaration": 7825, + "src": "14908:68:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "14876:100:15", + "trueExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8283, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14904:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8276, + "name": "max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9000, + "src": "14825:3:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14825:162:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "14825:166:15", + "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": 8298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14825:169:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14800:194:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8300, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8241, + "src": "15007:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8302, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "startingPeriod", + "nodeType": "MemberAccess", + "referencedDeclaration": 7825, + "src": "15007:23:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8303, + "name": "startingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8275, + "src": "15033:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15007:40:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8305, + "nodeType": "ExpressionStatement", + "src": "15007:40:15" + }, + { + "assignments": [ + 8307 + ], + "declarations": [ + { + "constant": false, + "id": 8307, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 8346, + "src": "15060:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8306, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15060:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8312, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8308, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7853, + "src": "15084:26:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 8311, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8309, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "15111:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15111:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15084:38:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15060:62:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8313, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8241, + "src": "15133:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8315, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "sponsor", + "nodeType": "MemberAccess", + "referencedDeclaration": 7811, + "src": "15133:16:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8316, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8307, + "src": "15152:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15133:32:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 8318, + "nodeType": "ExpressionStatement", + "src": "15133:32:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8319, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8241, + "src": "15178:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8322, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 7833, + "src": "15178:14:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 8323, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8321, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15193:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15178:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 8324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15198:4:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "15178:24:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8326, + "nodeType": "ExpressionStatement", + "src": "15178:24:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8330, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8233, + "src": "15275:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8327, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "15256:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 8329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15256:18:15", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) returns (uint256)" + } + }, + "id": 8331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15256:30:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8332, + "nodeType": "ExpressionStatement", + "src": "15256:30:15" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8334, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "15318:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15318:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 8336, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8307, + "src": "15330:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8337, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8233, + "src": "15345:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 8341, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15382:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8338, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "15357:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 8339, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15357:20:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "15357:24:15", + "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": 8342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15357:27:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8343, + "name": "startingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8275, + "src": "15386:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8333, + "name": "SponsorProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7736, + "src": "15302:15:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256,uint256)" + } + }, + "id": 8344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15302:99:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8345, + "nodeType": "EmitStatement", + "src": "15297:104:15" + } + ] + }, + "documentation": null, + "id": 8347, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 8236, + "modifierName": { + "argumentTypes": null, + "id": 8235, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9748, + "src": "13451:12:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "13451:12:15" + }, + { + "arguments": null, + "id": 8238, + "modifierName": { + "argumentTypes": null, + "id": 8237, + "name": "onlyDelegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7907, + "src": "13464:12:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "13464:12:15" + } + ], + "name": "sponsorProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8233, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 8347, + "src": "13424:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8232, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13424:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13423:20:15" + }, + "returnParameters": { + "id": 8239, + "nodeType": "ParameterList", + "parameters": [], + "src": "13477:0:15" + }, + "scope": 9115, + "src": "13399:2010:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 8354, + "nodeType": "Block", + "src": "15468:39:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8352, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7783, + "src": "15486:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8351, + "id": 8353, + "nodeType": "Return", + "src": "15479:20:15" + } + ] + }, + "documentation": null, + "id": 8355, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8348, + "nodeType": "ParameterList", + "parameters": [], + "src": "15436:2:15" + }, + "returnParameters": { + "id": 8351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8350, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8355, + "src": "15460:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8349, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15460:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15459:9:15" + }, + "scope": 9115, + "src": "15415:92:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 8503, + "nodeType": "Block", + "src": "15613:1701:15", + "statements": [ + { + "assignments": [ + 8367 + ], + "declarations": [ + { + "constant": false, + "id": 8367, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 8503, + "src": "15624:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15624:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8372, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8368, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7853, + "src": "15648:26:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 8371, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8369, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "15675:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15675:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15648:38:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15624:62:15" + }, + { + "assignments": [ + 8374 + ], + "declarations": [ + { + "constant": false, + "id": 8374, + "name": "member", + "nodeType": "VariableDeclaration", + "scope": 8503, + "src": "15697:21:15", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member" + }, + "typeName": { + "contractScope": null, + "id": 8373, + "name": "Member", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7805, + "src": "15697:6:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8378, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8375, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "15721:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 8377, + "indexExpression": { + "argumentTypes": null, + "id": 8376, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8367, + "src": "15729:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15721:22:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15697:46:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8380, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8357, + "src": "15764:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8381, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "15780:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 8382, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15780:20:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15764:36:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", + "id": 8384, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15802:25:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + }, + "value": "proposal does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + } + ], + "id": 8379, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "15756:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15756:72:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8386, + "nodeType": "ExpressionStatement", + "src": "15756:72:15" + }, + { + "assignments": [ + 8388 + ], + "declarations": [ + { + "constant": false, + "id": 8388, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 8503, + "src": "15839:25:15", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 8387, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7842, + "src": "15839:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8394, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8389, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "15867:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" + } + }, + "id": 8393, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8390, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "15877:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 8392, + "indexExpression": { + "argumentTypes": null, + "id": 8391, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8357, + "src": "15891:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15877:28:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15867:39:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15839:67:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8396, + "name": "uintVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8359, + "src": "15927:8:15", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 8397, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15938:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "15927:12:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6d757374206265206c657373207468616e2033", + "id": 8399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15941:21:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_707c6bf11f318d88bf3ce18a41621954ec264b68d584313fba9bb644a8e76020", + "typeString": "literal_string \"must be less than 3\"" + }, + "value": "must be less than 3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_707c6bf11f318d88bf3ce18a41621954ec264b68d584313fba9bb644a8e76020", + "typeString": "literal_string \"must be less than 3\"" + } + ], + "id": 8395, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "15919:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15919:44:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8401, + "nodeType": "ExpressionStatement", + "src": "15919:44:15" + }, + { + "assignments": [ + 8403 + ], + "declarations": [ + { + "constant": false, + "id": 8403, + "name": "vote", + "nodeType": "VariableDeclaration", + "scope": 8503, + "src": "15974:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + }, + "typeName": { + "contractScope": null, + "id": 8402, + "name": "Vote", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7796, + "src": "15974:4:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8407, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8405, + "name": "uintVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8359, + "src": "15991:8:15", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 8404, + "name": "Vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7796, + "src": "15986:4:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Vote_$7796_$", + "typeString": "type(enum Moloch.Vote)" + } + }, + "id": 8406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15986:14:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15974:26:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "16121:48:15", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8410, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8388, + "src": "16145:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8411, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "startingPeriod", + "nodeType": "MemberAccess", + "referencedDeclaration": 7825, + "src": "16145:23:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8409, + "name": "hasVotingPeriodExpired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9079, + "src": "16122:22:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 8412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16122:47:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c20766f74696e6720706572696f64206861732065787069726564", + "id": 8414, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16171:36:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c0ba1a8fcc742113774789a424c824e010e781c8d7353e4ab7ada35c65566c07", + "typeString": "literal_string \"proposal voting period has expired\"" + }, + "value": "proposal voting period has expired" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c0ba1a8fcc742113774789a424c824e010e781c8d7353e4ab7ada35c65566c07", + "typeString": "literal_string \"proposal voting period has expired\"" + } + ], + "id": 8408, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "16113:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16113:95:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8416, + "nodeType": "ExpressionStatement", + "src": "16113:95:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + }, + "id": 8424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8418, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8388, + "src": "16227:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8419, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "votesByMember", + "nodeType": "MemberAccess", + "referencedDeclaration": 7841, + "src": "16227:22:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$7796_$", + "typeString": "mapping(address => enum Moloch.Vote)" + } + }, + "id": 8421, + "indexExpression": { + "argumentTypes": null, + "id": 8420, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8367, + "src": "16250:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16227:37:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8422, + "name": "Vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7796, + "src": "16268:4:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Vote_$7796_$", + "typeString": "type(enum Moloch.Vote)" + } + }, + "id": 8423, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Null", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16268:9:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "src": "16227:50:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6d656d6265722068617320616c726561647920766f746564", + "id": 8425, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16279:26:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7343d72c90cb341bd2f3ab7b007b6dc9c32e041eadcc4b701abd38deefeb2299", + "typeString": "literal_string \"member has already voted\"" + }, + "value": "member has already voted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7343d72c90cb341bd2f3ab7b007b6dc9c32e041eadcc4b701abd38deefeb2299", + "typeString": "literal_string \"member has already voted\"" + } + ], + "id": 8417, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "16219:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16219:87:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8427, + "nodeType": "ExpressionStatement", + "src": "16219:87:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 8437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + }, + "id": 8432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8429, + "name": "vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8403, + "src": "16325:4:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8430, + "name": "Vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7796, + "src": "16333:4:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Vote_$7796_$", + "typeString": "type(enum Moloch.Vote)" + } + }, + "id": 8431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Yes", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16333:8:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "src": "16325:16:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + }, + "id": 8436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8433, + "name": "vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8403, + "src": "16345:4:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8434, + "name": "Vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7796, + "src": "16353:4:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Vote_$7796_$", + "typeString": "type(enum Moloch.Vote)" + } + }, + "id": 8435, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "No", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16353:7:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "src": "16345:15:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "16325:35:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "766f7465206d7573742062652065697468657220596573206f72204e6f", + "id": 8438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16362:31:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cdbdf7342fd7207f7fe59a7f11b342501ce75d0d11dd200fffb4af998c12a928", + "typeString": "literal_string \"vote must be either Yes or No\"" + }, + "value": "vote must be either Yes or No" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cdbdf7342fd7207f7fe59a7f11b342501ce75d0d11dd200fffb4af998c12a928", + "typeString": "literal_string \"vote must be either Yes or No\"" + } + ], + "id": 8428, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "16317:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16317:77:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8440, + "nodeType": "ExpressionStatement", + "src": "16317:77:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8441, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8388, + "src": "16407:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8444, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "votesByMember", + "nodeType": "MemberAccess", + "referencedDeclaration": 7841, + "src": "16407:22:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$7796_$", + "typeString": "mapping(address => enum Moloch.Vote)" + } + }, + "id": 8445, + "indexExpression": { + "argumentTypes": null, + "id": 8443, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8367, + "src": "16430:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16407:37:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8446, + "name": "vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8403, + "src": "16447:4:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "src": "16407:44:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "id": 8448, + "nodeType": "ExpressionStatement", + "src": "16407:44:15" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + }, + "id": 8452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8449, + "name": "vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8403, + "src": "16468:4:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8450, + "name": "Vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7796, + "src": "16476:4:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Vote_$7796_$", + "typeString": "type(enum Moloch.Vote)" + } + }, + "id": 8451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Yes", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16476:8:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "src": "16468:16:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + }, + "id": 8480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8477, + "name": "vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8403, + "src": "17129:4:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8478, + "name": "Vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7796, + "src": "17137:4:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Vote_$7796_$", + "typeString": "type(enum Moloch.Vote)" + } + }, + "id": 8479, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "No", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "17137:7:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "src": "17129:15:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8493, + "nodeType": "IfStatement", + "src": "17125:102:15", + "trueBody": { + "id": 8492, + "nodeType": "Block", + "src": "17146:81:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8481, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8388, + "src": "17161:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8483, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "noVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 7829, + "src": "17161:16:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8487, + "name": "member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8374, + "src": "17201:6:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member storage pointer" + } + }, + "id": 8488, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 7800, + "src": "17201:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8484, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8388, + "src": "17180:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8485, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "noVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 7829, + "src": "17180:16:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "17180:20:15", + "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": 8489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17180:35:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17161:54:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8491, + "nodeType": "ExpressionStatement", + "src": "17161:54:15" + } + ] + } + }, + "id": 8494, + "nodeType": "IfStatement", + "src": "16464:763:15", + "trueBody": { + "id": 8476, + "nodeType": "Block", + "src": "16486:633:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8453, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8388, + "src": "16501:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8455, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "yesVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 7827, + "src": "16501:17:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8459, + "name": "member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8374, + "src": "16543:6:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member storage pointer" + } + }, + "id": 8460, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 7800, + "src": "16543:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8456, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8388, + "src": "16521:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8457, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "yesVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 7827, + "src": "16521:17:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "16521:21:15", + "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": 8461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16521:36:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16501:56:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8463, + "nodeType": "ExpressionStatement", + "src": "16501:56:15" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8464, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8357, + "src": "16673:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8465, + "name": "member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8374, + "src": "16689:6:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member storage pointer" + } + }, + "id": 8466, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "highestIndexYesVote", + "nodeType": "MemberAccess", + "referencedDeclaration": 7804, + "src": "16689:26:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16673:42:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8475, + "nodeType": "IfStatement", + "src": "16669:125:15", + "trueBody": { + "id": 8474, + "nodeType": "Block", + "src": "16717:77:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8468, + "name": "member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8374, + "src": "16736:6:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member storage pointer" + } + }, + "id": 8470, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "highestIndexYesVote", + "nodeType": "MemberAccess", + "referencedDeclaration": 7804, + "src": "16736:26:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8471, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8357, + "src": "16765:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16736:42:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8473, + "nodeType": "ExpressionStatement", + "src": "16736:42:15" + } + ] + } + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8496, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8357, + "src": "17255:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8497, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "17270:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "17270:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 8499, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8367, + "src": "17282:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8500, + "name": "uintVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8359, + "src": "17297:8:15", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 8495, + "name": "SubmitVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7746, + "src": "17244:10:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint8_$returns$__$", + "typeString": "function (uint256,address,address,uint8)" + } + }, + "id": 8501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17244:62:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8502, + "nodeType": "EmitStatement", + "src": "17239:67:15" + } + ] + }, + "documentation": null, + "id": 8504, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 8362, + "modifierName": { + "argumentTypes": null, + "id": 8361, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9748, + "src": "15587:12:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15587:12:15" + }, + { + "arguments": null, + "id": 8364, + "modifierName": { + "argumentTypes": null, + "id": 8363, + "name": "onlyDelegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7907, + "src": "15600:12:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15600:12:15" + } + ], + "name": "submitVote", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8360, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8357, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 8504, + "src": "15541:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8356, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15541:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8359, + "name": "uintVote", + "nodeType": "VariableDeclaration", + "scope": 8504, + "src": "15564:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8358, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "15564:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15540:39:15" + }, + "returnParameters": { + "id": 8365, + "nodeType": "ParameterList", + "parameters": [], + "src": "15613:0:15" + }, + "scope": 9115, + "src": "15521:1793:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "constant": false, + "id": 8506, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "17320:21:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8505, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17320:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 8513, + "nodeType": "Block", + "src": "17399:63:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8511, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8506, + "src": "17417:6:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8510, + "id": 8512, + "nodeType": "Return", + "src": "17410:13:15" + } + ] + }, + "documentation": null, + "id": 8514, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getResult", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8507, + "nodeType": "ParameterList", + "parameters": [], + "src": "17367:2:15" + }, + "returnParameters": { + "id": 8510, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8509, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8514, + "src": "17391:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8508, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17391:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17390:9:15" + }, + "scope": 9115, + "src": "17348:114:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 8679, + "nodeType": "Block", + "src": "17538:3482:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8522, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8516, + "src": "17580:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8521, + "name": "_validateProposalForProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8765, + "src": "17549:30:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", + "typeString": "function (uint256) view" + } + }, + "id": 8523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17549:45:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8524, + "nodeType": "ExpressionStatement", + "src": "17549:45:15" + }, + { + "assignments": [ + 8526 + ], + "declarations": [ + { + "constant": false, + "id": 8526, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 8679, + "src": "17607:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17607:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8530, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8527, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "17628:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 8529, + "indexExpression": { + "argumentTypes": null, + "id": 8528, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8516, + "src": "17642:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17628:28:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17607:49:15" + }, + { + "assignments": [ + 8532 + ], + "declarations": [ + { + "constant": false, + "id": 8532, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 8679, + "src": "17667:25:15", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 8531, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7842, + "src": "17667:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8536, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8533, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "17695:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" + } + }, + "id": 8535, + "indexExpression": { + "argumentTypes": null, + "id": 8534, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8526, + "src": "17705:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17695:21:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17667:49:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8537, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "17824:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8540, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 7833, + "src": "17824:14:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 8541, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 8539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17839:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17824:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 8542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17844:4:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "17824:24:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8544, + "nodeType": "ExpressionStatement", + "src": "17824:24:15" + }, + { + "assignments": [ + 8546, + 8548 + ], + "declarations": [ + { + "constant": false, + "id": 8546, + "name": "didPass", + "nodeType": "VariableDeclaration", + "scope": 8679, + "src": "17875:12:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8545, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17875:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8548, + "name": "emergencyProcessing", + "nodeType": "VariableDeclaration", + "scope": 8679, + "src": "17889:24:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8547, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17889:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8552, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8550, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8516, + "src": "17926:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8549, + "name": "_didPass", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8714, + "src": "17917:8:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$_t_bool_$_t_bool_$", + "typeString": "function (uint256) returns (bool,bool)" + } + }, + "id": 8551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17917:23:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", + "typeString": "tuple(bool,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17874:66:15" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8555, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "18069:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8556, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sharesRequested", + "nodeType": "MemberAccess", + "referencedDeclaration": 7813, + "src": "18069:24:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8553, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7786, + "src": "18053:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "18053:15:15", + "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": 8557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18053:41:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 8558, + "name": "MAX_NUMBER_OF_SHARES", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7702, + "src": "18097:20:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18053:64:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8565, + "nodeType": "IfStatement", + "src": "18049:112:15", + "trueBody": { + "id": 8564, + "nodeType": "Block", + "src": "18119:42:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8560, + "name": "didPass", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8546, + "src": "18134:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 8561, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18144:5:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "18134:15:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8563, + "nodeType": "ExpressionStatement", + "src": "18134:15:15" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "id": 8566, + "name": "didPass", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8546, + "src": "18531:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 8671, + "nodeType": "Block", + "src": "20511:386:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8663, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8506, + "src": "20526:6:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "32", + "id": 8664, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20533:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "20526:8:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8666, + "nodeType": "ExpressionStatement", + "src": "20526:8:15" + }, + { + "condition": { + "argumentTypes": null, + "id": 8668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "20635:20:15", + "subExpression": { + "argumentTypes": null, + "id": 8667, + "name": "emergencyProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8548, + "src": "20636:19:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8670, + "nodeType": "IfStatement", + "src": "20631:255:15", + "trueBody": { + "id": 8669, + "nodeType": "Block", + "src": "20657:229:15", + "statements": [] + } + } + ] + }, + "id": 8672, + "nodeType": "IfStatement", + "src": "18527:2370:15", + "trueBody": { + "id": 8662, + "nodeType": "Block", + "src": "18540:1965:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8567, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8506, + "src": "18555:6:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 8568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18562:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "18555:8:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8570, + "nodeType": "ExpressionStatement", + "src": "18555:8:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8571, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "18578:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8574, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 7833, + "src": "18578:14:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 8575, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 8573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18593:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18578:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 8576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18598:4:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "18578:24:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8578, + "nodeType": "ExpressionStatement", + "src": "18578:24:15" + }, + { + "condition": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8579, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "18724:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 8582, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8580, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "18732:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8581, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 7807, + "src": "18732:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18724:27:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "id": 8583, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exists", + "nodeType": "MemberAccess", + "referencedDeclaration": 7802, + "src": "18724:34:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 8652, + "nodeType": "Block", + "src": "19096:771:15", + "statements": [ + { + "condition": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8601, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "19241:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 8606, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8602, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7853, + "src": "19249:26:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 8605, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8603, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "19276:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 7807, + "src": "19276:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19249:46:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19241:55:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "id": 8607, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exists", + "nodeType": "MemberAccess", + "referencedDeclaration": 7802, + "src": "19241:62:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8629, + "nodeType": "IfStatement", + "src": "19237:349:15", + "trueBody": { + "id": 8628, + "nodeType": "Block", + "src": "19305:281:15", + "statements": [ + { + "assignments": [ + 8609 + ], + "declarations": [ + { + "constant": false, + "id": 8609, + "name": "memberToOverride", + "nodeType": "VariableDeclaration", + "scope": 8628, + "src": "19328:24:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8608, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19328:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8614, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8610, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7853, + "src": "19355:26:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 8613, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8611, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "19382:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8612, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 7807, + "src": "19382:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19355:46:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19328:73:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8615, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7853, + "src": "19424:26:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 8617, + "indexExpression": { + "argumentTypes": null, + "id": 8616, + "name": "memberToOverride", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8609, + "src": "19451:16:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "19424:44:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8618, + "name": "memberToOverride", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8609, + "src": "19471:16:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19424:63:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 8620, + "nodeType": "ExpressionStatement", + "src": "19424:63:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8621, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "19510:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 8623, + "indexExpression": { + "argumentTypes": null, + "id": 8622, + "name": "memberToOverride", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8609, + "src": "19518:16:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19510:25:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "id": 8624, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "delegateKey", + "nodeType": "MemberAccess", + "referencedDeclaration": 7798, + "src": "19510:37:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8625, + "name": "memberToOverride", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8609, + "src": "19550:16:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19510:56:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 8627, + "nodeType": "ExpressionStatement", + "src": "19510:56:15" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 8642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8630, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "19674:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 8633, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8631, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "19682:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 7807, + "src": "19682:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "19674:27:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8635, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "19711:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8636, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 7807, + "src": "19711:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8637, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "19731:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8638, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sharesRequested", + "nodeType": "MemberAccess", + "referencedDeclaration": 7813, + "src": "19731:24:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 8639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19757:4:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 8640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19763:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 8634, + "name": "Member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7805, + "src": "19704:6:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Member_$7805_storage_ptr_$", + "typeString": "type(struct Moloch.Member storage pointer)" + } + }, + "id": 8641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19704:61:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_memory", + "typeString": "struct Moloch.Member memory" + } + }, + "src": "19674:91:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "id": 8643, + "nodeType": "ExpressionStatement", + "src": "19674:91:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8644, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7853, + "src": "19784:26:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 8647, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8645, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "19811:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8646, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 7807, + "src": "19811:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "19784:46:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8648, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "19833:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8649, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 7807, + "src": "19833:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19784:67:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 8651, + "nodeType": "ExpressionStatement", + "src": "19784:67:15" + } + ] + }, + "id": 8653, + "nodeType": "IfStatement", + "src": "18720:1147:15", + "trueBody": { + "id": 8600, + "nodeType": "Block", + "src": "18760:330:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8584, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "18779:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 8587, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8585, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "18787:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8586, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 7807, + "src": "18787:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18779:27:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "id": 8588, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 7800, + "src": "18779:34:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8595, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "18855:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8596, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sharesRequested", + "nodeType": "MemberAccess", + "referencedDeclaration": 7813, + "src": "18855:24:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8589, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "18816:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 8592, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8590, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "18824:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8591, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 7807, + "src": "18824:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18816:27:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "id": 8593, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 7800, + "src": "18816:34:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "18816:38:15", + "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": 8597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18816:64:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18779:101:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8599, + "nodeType": "ExpressionStatement", + "src": "18779:101:15" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 8660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8654, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7786, + "src": "19922:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8657, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "19952:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8658, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sharesRequested", + "nodeType": "MemberAccess", + "referencedDeclaration": 7813, + "src": "19952:24:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8655, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7786, + "src": "19936:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "19936:15:15", + "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": 8659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19936:41:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19922:55:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8661, + "nodeType": "ExpressionStatement", + "src": "19922:55:15" + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8674, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8516, + "src": "20977:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8675, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8526, + "src": "20992:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8676, + "name": "didPass", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8546, + "src": "21004:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 8673, + "name": "ProcessProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7754, + "src": "20961:15:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (uint256,uint256,bool)" + } + }, + "id": 8677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20961:51:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8678, + "nodeType": "EmitStatement", + "src": "20956:56:15" + } + ] + }, + "documentation": null, + "id": 8680, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 8519, + "modifierName": { + "argumentTypes": null, + "id": 8518, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9748, + "src": "17525:12:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "17525:12:15" + } + ], + "name": "processProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8517, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8516, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 8680, + "src": "17495:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8515, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17495:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17494:23:15" + }, + "returnParameters": { + "id": 8520, + "nodeType": "ParameterList", + "parameters": [], + "src": "17538:0:15" + }, + "scope": 9115, + "src": "17470:3550:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 8713, + "nodeType": "Block", + "src": "23165:1739:15", + "statements": [ + { + "assignments": [ + 8690 + ], + "declarations": [ + { + "constant": false, + "id": 8690, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 8713, + "src": "23176:24:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", + "typeString": "struct Moloch.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 8689, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7842, + "src": "23176:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8696, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8691, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "23203:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" + } + }, + "id": 8695, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8692, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "23213:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 8694, + "indexExpression": { + "argumentTypes": null, + "id": 8693, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8682, + "src": "23227:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "23213:28:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "23203:39:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23176:66:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8697, + "name": "didPass", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "23255:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8698, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8690, + "src": "23265:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", + "typeString": "struct Moloch.Proposal memory" + } + }, + "id": 8699, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "yesVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 7827, + "src": "23265:17:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8700, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8690, + "src": "23285:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", + "typeString": "struct Moloch.Proposal memory" + } + }, + "id": 8701, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "noVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 7829, + "src": "23285:16:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "23265:36:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "23255:46:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8704, + "nodeType": "ExpressionStatement", + "src": "23255:46:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8705, + "name": "emergencyProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8687, + "src": "23417:19:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 8706, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23439:5:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "23417:27:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8708, + "nodeType": "ExpressionStatement", + "src": "23417:27:15" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 8709, + "name": "didPass", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "24867:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 8710, + "name": "emergencyProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8687, + "src": "24876:19:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 8711, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "24866:30:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", + "typeString": "tuple(bool,bool)" + } + }, + "functionReturnParameters": 8688, + "id": 8712, + "nodeType": "Return", + "src": "24859:37:15" + } + ] + }, + "documentation": null, + "id": 8714, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_didPass", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8683, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8682, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 8714, + "src": "23084:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8681, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23084:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "23083:23:15" + }, + "returnParameters": { + "id": 8688, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8685, + "name": "didPass", + "nodeType": "VariableDeclaration", + "scope": 8714, + "src": "23125:12:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8684, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "23125:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8687, + "name": "emergencyProcessing", + "nodeType": "VariableDeclaration", + "scope": 8714, + "src": "23139:24:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8686, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "23139:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "23124:40:15" + }, + "scope": 9115, + "src": "23066:1838:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 8764, + "nodeType": "Block", + "src": "24989:546:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8720, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8716, + "src": "25008:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8721, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "25024:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 8722, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "25024:20:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25008:36:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", + "id": 8724, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25046:25:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + }, + "value": "proposal does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + } + ], + "id": 8719, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "25000:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25000:72:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8726, + "nodeType": "ExpressionStatement", + "src": "25000:72:15" + }, + { + "assignments": [ + 8728 + ], + "declarations": [ + { + "constant": false, + "id": 8728, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 8764, + "src": "25083:24:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", + "typeString": "struct Moloch.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 8727, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7842, + "src": "25083:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8734, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8729, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "25110:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" + } + }, + "id": 8733, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8730, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "25120:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 8732, + "indexExpression": { + "argumentTypes": null, + "id": 8731, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8716, + "src": "25134:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25120:28:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25110:39:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "25083:66:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 8741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8736, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8728, + "src": "25325:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", + "typeString": "struct Moloch.Proposal memory" + } + }, + "id": 8737, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 7833, + "src": "25325:14:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_memory", + "typeString": "bool[6] memory" + } + }, + "id": 8739, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 8738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25340:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25325:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 8740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25346:5:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "25325:26:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c2068617320616c7265616479206265656e2070726f636573736564", + "id": 8742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25353:37:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f70ef3e0419e3b9f916dea28b6ea9e7ed2c6d066761e4c360c469298c30b58d3", + "typeString": "literal_string \"proposal has already been processed\"" + }, + "value": "proposal has already been processed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f70ef3e0419e3b9f916dea28b6ea9e7ed2c6d066761e4c360c469298c30b58d3", + "typeString": "literal_string \"proposal has already been processed\"" + } + ], + "id": 8735, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "25317:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25317:74:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8744, + "nodeType": "ExpressionStatement", + "src": "25317:74:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 8760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8746, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8716, + "src": "25410:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8747, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25427:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "25410:18:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8749, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "25432:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" + } + }, + "id": 8756, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8750, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "25442:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 8755, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 8753, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25474:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "id": 8751, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8716, + "src": "25456:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "25456:17:15", + "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": 8754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25456:20:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25442:35:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25432:46:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "id": 8757, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 7833, + "src": "25432:52:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 8759, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 8758, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25485:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25432:55:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "25410:77:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726576696f75732070726f706f73616c206d7573742062652070726f636573736564", + "id": 8761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25489:37:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_38cd8535d1c8042024c6aab26e03143698df4f39cb508f25654837a140ff5918", + "typeString": "literal_string \"previous proposal must be processed\"" + }, + "value": "previous proposal must be processed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_38cd8535d1c8042024c6aab26e03143698df4f39cb508f25654837a140ff5918", + "typeString": "literal_string \"previous proposal must be processed\"" + } + ], + "id": 8745, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "25402:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25402:125:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8763, + "nodeType": "ExpressionStatement", + "src": "25402:125:15" + } + ] + }, + "documentation": null, + "id": 8765, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_validateProposalForProcessing", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8716, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 8765, + "src": "24952:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "24952:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "24951:23:15" + }, + "returnParameters": { + "id": 8718, + "nodeType": "ParameterList", + "parameters": [], + "src": "24989:0:15" + }, + "scope": 9115, + "src": "24912:623:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 8784, + "nodeType": "Block", + "src": "26063:82:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8777, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "26084:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "26084:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 8779, + "name": "sharesToBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8767, + "src": "26096:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8780, + "name": "lootToBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8769, + "src": "26110:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8781, + "name": "approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7845, + "src": "26122:14:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage", + "typeString": "contract IERC20[] storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage", + "typeString": "contract IERC20[] storage ref" + } + ], + "id": 8776, + "name": "_ragequit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8916, + "src": "26074:9:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,contract IERC20[] memory)" + } + }, + "id": 8782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "26074:63:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8783, + "nodeType": "ExpressionStatement", + "src": "26074:63:15" + } + ] + }, + "documentation": null, + "id": 8785, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 8772, + "modifierName": { + "argumentTypes": null, + "id": 8771, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9748, + "src": "26039:12:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "26039:12:15" + }, + { + "arguments": null, + "id": 8774, + "modifierName": { + "argumentTypes": null, + "id": 8773, + "name": "onlyMember", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7875, + "src": "26052:10:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "26052:10:15" + } + ], + "name": "ragequit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8770, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8767, + "name": "sharesToBurn", + "nodeType": "VariableDeclaration", + "scope": 8785, + "src": "25990:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8766, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "25990:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8769, + "name": "lootToBurn", + "nodeType": "VariableDeclaration", + "scope": 8785, + "src": "26012:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26012:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "25989:42:15" + }, + "returnParameters": { + "id": 8775, + "nodeType": "ParameterList", + "parameters": [], + "src": "26063:0:15" + }, + "scope": 9115, + "src": "25972:173:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 8838, + "nodeType": "Block", + "src": "26275:458:15", + "statements": [ + { + "body": { + "id": 8828, + "nodeType": "Block", + "src": "26397:258:15", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8810, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8800, + "src": "26510:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8811, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26514:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "26510:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8827, + "nodeType": "IfStatement", + "src": "26506:138:15", + "trueBody": { + "id": 8826, + "nodeType": "Block", + "src": "26517:127:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "id": 8822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8814, + "name": "tokenList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8792, + "src": "26544:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[] memory" + } + }, + "id": 8816, + "indexExpression": { + "argumentTypes": null, + "id": 8815, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8800, + "src": "26554:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "26544:12:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8817, + "name": "tokenList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8792, + "src": "26559:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[] memory" + } + }, + "id": 8821, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8818, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8800, + "src": "26569:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 8819, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26573:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "26569:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "26559:16:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "src": "26544:31:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "746f6b656e206c697374206d75737420626520756e6971756520616e6420696e20617363656e64696e67206f72646572", + "id": 8823, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26577:50:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9965e0bdde37a58094676a2cf75ae70d5454508294df76c3b2e2e525015b1b43", + "typeString": "literal_string \"token list must be unique and in ascending order\"" + }, + "value": "token list must be unique and in ascending order" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9965e0bdde37a58094676a2cf75ae70d5454508294df76c3b2e2e525015b1b43", + "typeString": "literal_string \"token list must be unique and in ascending order\"" + } + ], + "id": 8813, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "26536:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "26536:92:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8825, + "nodeType": "ExpressionStatement", + "src": "26536:92:15" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8803, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8800, + "src": "26370:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8804, + "name": "tokenList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8792, + "src": "26374:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[] memory" + } + }, + "id": 8805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "26374:16:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26370:20:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8829, + "initializationExpression": { + "assignments": [ + 8800 + ], + "declarations": [ + { + "constant": false, + "id": 8800, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 8829, + "src": "26357:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8799, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26357:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8802, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 8801, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26367:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "26357:11:15" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 8808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "26392:3:15", + "subExpression": { + "argumentTypes": null, + "id": 8807, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8800, + "src": "26392:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8809, + "nodeType": "ExpressionStatement", + "src": "26392:3:15" + }, + "nodeType": "ForStatement", + "src": "26352:303:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8831, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "26677:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "26677:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 8833, + "name": "sharesToBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8787, + "src": "26689:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8834, + "name": "lootToBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8789, + "src": "26703:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8835, + "name": "tokenList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8792, + "src": "26715:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[] memory" + } + ], + "id": 8830, + "name": "_ragequit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8916, + "src": "26667:9:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,contract IERC20[] memory)" + } + }, + "id": 8836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "26667:58:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8837, + "nodeType": "ExpressionStatement", + "src": "26667:58:15" + } + ] + }, + "documentation": null, + "id": 8839, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 8795, + "modifierName": { + "argumentTypes": null, + "id": 8794, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9748, + "src": "26251:12:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "26251:12:15" + }, + { + "arguments": null, + "id": 8797, + "modifierName": { + "argumentTypes": null, + "id": 8796, + "name": "onlyMember", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7875, + "src": "26264:10:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "26264:10:15" + } + ], + "name": "safeRagequit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8793, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8787, + "name": "sharesToBurn", + "nodeType": "VariableDeclaration", + "scope": 8839, + "src": "26175:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8786, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26175:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8789, + "name": "lootToBurn", + "nodeType": "VariableDeclaration", + "scope": 8839, + "src": "26197:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26197:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8792, + "name": "tokenList", + "nodeType": "VariableDeclaration", + "scope": 8839, + "src": "26217:25:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 8790, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "26217:6:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 8791, + "length": null, + "nodeType": "ArrayTypeName", + "src": "26217:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage_ptr", + "typeString": "contract IERC20[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "26174:69:15" + }, + "returnParameters": { + "id": 8798, + "nodeType": "ParameterList", + "parameters": [], + "src": "26275:0:15" + }, + "scope": 9115, + "src": "26153:580:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 8915, + "nodeType": "Block", + "src": "26861:1077:15", + "statements": [ + { + "assignments": [ + 8852 + ], + "declarations": [ + { + "constant": false, + "id": 8852, + "name": "initialTotalSharesAndLoot", + "nodeType": "VariableDeclaration", + "scope": 8915, + "src": "26872:33:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8851, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26872:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8857, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 8855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26924:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "expression": { + "argumentTypes": null, + "id": 8853, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7786, + "src": "26908:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "26908:15:15", + "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": 8856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "26908:18:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "26872:54:15" + }, + { + "assignments": [ + 8859 + ], + "declarations": [ + { + "constant": false, + "id": 8859, + "name": "member", + "nodeType": "VariableDeclaration", + "scope": 8915, + "src": "26939:21:15", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member" + }, + "typeName": { + "contractScope": null, + "id": 8858, + "name": "Member", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7805, + "src": "26939:6:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8863, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8860, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "26963:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 8862, + "indexExpression": { + "argumentTypes": null, + "id": 8861, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8841, + "src": "26971:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "26963:22:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "26939:46:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8865, + "name": "member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8859, + "src": "27006:6:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member storage pointer" + } + }, + "id": 8866, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 7800, + "src": "27006:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 8867, + "name": "sharesToBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8843, + "src": "27023:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "27006:29:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "696e73756666696369656e7420736861726573", + "id": 8869, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27037:21:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d5ba7a6055332667d0b47802db7f56b8e6983a138e30503682c0b7c57a45190a", + "typeString": "literal_string \"insufficient shares\"" + }, + "value": "insufficient shares" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d5ba7a6055332667d0b47802db7f56b8e6983a138e30503682c0b7c57a45190a", + "typeString": "literal_string \"insufficient shares\"" + } + ], + "id": 8864, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "26998:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "26998:61:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8871, + "nodeType": "ExpressionStatement", + "src": "26998:61:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8874, + "name": "member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8859, + "src": "27160:6:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member storage pointer" + } + }, + "id": 8875, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "highestIndexYesVote", + "nodeType": "MemberAccess", + "referencedDeclaration": 7804, + "src": "27160:26:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8873, + "name": "canRagequit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9063, + "src": "27148:11:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 8876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27148:39:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "63616e6e6f7420726167657175697420756e74696c206869676865737420696e6465782070726f706f73616c206d656d62657220766f74656420594553206f6e2069732070726f636573736564", + "id": 8877, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27189:79:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_11872e0ade1b569d9743310990fb8e15cfb30e6e4c576314224629b74fe37ee9", + "typeString": "literal_string \"cannot ragequit until highest index proposal member voted YES on is processed\"" + }, + "value": "cannot ragequit until highest index proposal member voted YES on is processed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_11872e0ade1b569d9743310990fb8e15cfb30e6e4c576314224629b74fe37ee9", + "typeString": "literal_string \"cannot ragequit until highest index proposal member voted YES on is processed\"" + } + ], + "id": 8872, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "27140:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27140:129:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8879, + "nodeType": "ExpressionStatement", + "src": "27140:129:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8880, + "name": "member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8859, + "src": "27388:6:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member storage pointer" + } + }, + "id": 8882, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 7800, + "src": "27388:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8886, + "name": "sharesToBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8843, + "src": "27422:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8883, + "name": "member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8859, + "src": "27404:6:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member storage pointer" + } + }, + "id": 8884, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 7800, + "src": "27404:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "27404:17:15", + "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": 8887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27404:31:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "27388:47:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8889, + "nodeType": "ExpressionStatement", + "src": "27388:47:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8890, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7786, + "src": "27500:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8893, + "name": "sharesToBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8843, + "src": "27530:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8891, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7786, + "src": "27514:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "27514:15:15", + "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": 8894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27514:29:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "27500:43:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8896, + "nodeType": "ExpressionStatement", + "src": "27500:43:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8900, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8841, + "src": "27730:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8901, + "name": "sharesToBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8843, + "src": "27745:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8902, + "name": "initialTotalSharesAndLoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8852, + "src": "27759:25:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8903, + "name": "tokenList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8848, + "src": "27786:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 8898, + "name": "guildBank", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7687, + "src": "27711:9:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + }, + "id": 8899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 7580, + "src": "27711:18:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,uint256,uint256,contract IERC20[] memory) external returns (bool)" + } + }, + "id": 8904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27711:85:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "7769746864726177616c206f6620746f6b656e732066726f6d206775696c6442616e6b206661696c6564", + "id": 8905, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27811:44:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_651e518ee5ccfc633fd28c22e6ed219d8cd4ebc33c062c1938ef787232de2e2a", + "typeString": "literal_string \"withdrawal of tokens from guildBank failed\"" + }, + "value": "withdrawal of tokens from guildBank failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_651e518ee5ccfc633fd28c22e6ed219d8cd4ebc33c062c1938ef787232de2e2a", + "typeString": "literal_string \"withdrawal of tokens from guildBank failed\"" + } + ], + "id": 8897, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "27689:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27689:177:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8907, + "nodeType": "ExpressionStatement", + "src": "27689:177:15" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8909, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "27893:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "27893:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 8911, + "name": "sharesToBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8843, + "src": "27905:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8912, + "name": "lootToBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8845, + "src": "27919:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8908, + "name": "Ragequit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7762, + "src": "27884:8:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 8913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27884:46:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8914, + "nodeType": "EmitStatement", + "src": "27879:51:15" + } + ] + }, + "documentation": null, + "id": 8916, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_ragequit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8849, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8841, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 8916, + "src": "26760:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8840, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "26760:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8843, + "name": "sharesToBurn", + "nodeType": "VariableDeclaration", + "scope": 8916, + "src": "26783:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8842, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26783:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8845, + "name": "lootToBurn", + "nodeType": "VariableDeclaration", + "scope": 8916, + "src": "26805:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8844, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26805:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8848, + "name": "tokenList", + "nodeType": "VariableDeclaration", + "scope": 8916, + "src": "26825:25:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 8846, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "26825:6:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 8847, + "length": null, + "nodeType": "ArrayTypeName", + "src": "26825:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage_ptr", + "typeString": "contract IERC20[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "26759:92:15" + }, + "returnParameters": { + "id": 8850, + "nodeType": "ParameterList", + "parameters": [], + "src": "26861:0:15" + }, + "scope": 9115, + "src": "26741:1197:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 8982, + "nodeType": "Block", + "src": "29186:586:15", + "statements": [ + { + "assignments": [ + 8924 + ], + "declarations": [ + { + "constant": false, + "id": 8924, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 8982, + "src": "29197:25:15", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 8923, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7842, + "src": "29197:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8928, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8925, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "29225:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" + } + }, + "id": 8927, + "indexExpression": { + "argumentTypes": null, + "id": 8926, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8918, + "src": "29235:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "29225:21:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "29197:49:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "29265:18:15", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8930, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8924, + "src": "29266:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8931, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 7833, + "src": "29266:14:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 8933, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8932, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29281:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "29266:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c2068617320616c7265616479206265656e2073706f6e736f726564", + "id": 8935, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29285:37:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8ce373ba28507085e66e9df24290b9ef61d72fa05638e1221982de773985e387", + "typeString": "literal_string \"proposal has already been sponsored\"" + }, + "value": "proposal has already been sponsored" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8ce373ba28507085e66e9df24290b9ef61d72fa05638e1221982de773985e387", + "typeString": "literal_string \"proposal has already been sponsored\"" + } + ], + "id": 8929, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "29257:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29257:66:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8937, + "nodeType": "ExpressionStatement", + "src": "29257:66:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "29342:18:15", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8939, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8924, + "src": "29343:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8940, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 7833, + "src": "29343:14:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 8942, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 8941, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29358:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "29343:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c2068617320616c7265616479206265656e2063616e63656c6c6564", + "id": 8944, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29362:37:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ccab9120c6545218f1aaf1342626868c70b7de421d2454350aed40c0c66fbef6", + "typeString": "literal_string \"proposal has already been cancelled\"" + }, + "value": "proposal has already been cancelled" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ccab9120c6545218f1aaf1342626868c70b7de421d2454350aed40c0c66fbef6", + "typeString": "literal_string \"proposal has already been cancelled\"" + } + ], + "id": 8938, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "29334:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29334:66:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8946, + "nodeType": "ExpressionStatement", + "src": "29334:66:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 8952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8948, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "29419:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "29419:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8950, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8924, + "src": "29433:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8951, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "proposer", + "nodeType": "MemberAccess", + "referencedDeclaration": 7809, + "src": "29433:17:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "29419:31:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "736f6c656c79207468652070726f706f7365722063616e2063616e63656c", + "id": 8953, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29452:32:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bfc4d7bf1278b7adc609bbaec85c0d0fbc267775efc64d7b3b6cf53db50d2f68", + "typeString": "literal_string \"solely the proposer can cancel\"" + }, + "value": "solely the proposer can cancel" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_bfc4d7bf1278b7adc609bbaec85c0d0fbc267775efc64d7b3b6cf53db50d2f68", + "typeString": "literal_string \"solely the proposer can cancel\"" + } + ], + "id": 8947, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "29411:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29411:74:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8955, + "nodeType": "ExpressionStatement", + "src": "29411:74:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8956, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8924, + "src": "29498:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8959, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 7833, + "src": "29498:14:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 8960, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 8958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29513:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29498:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 8961, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29518:4:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "29498:24:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8963, + "nodeType": "ExpressionStatement", + "src": "29498:24:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8968, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8924, + "src": "29601:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8969, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "proposer", + "nodeType": "MemberAccess", + "referencedDeclaration": 7809, + "src": "29601:17:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8970, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8924, + "src": "29620:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8971, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tributeOffered", + "nodeType": "MemberAccess", + "referencedDeclaration": 7817, + "src": "29620:23:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8965, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8924, + "src": "29570:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8966, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tributeToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 7819, + "src": "29570:21:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 8967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9661, + "src": "29570:30:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 8972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29570:74:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6661696c656420746f2072657475726e207472696275746520746f2070726f706f736572", + "id": 8973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29659:38:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_282e9801010b515e1b52012b7f89bf34974d755a49d0659dbf82e1edde7cfbdf", + "typeString": "literal_string \"failed to return tribute to proposer\"" + }, + "value": "failed to return tribute to proposer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282e9801010b515e1b52012b7f89bf34974d755a49d0659dbf82e1edde7cfbdf", + "typeString": "literal_string \"failed to return tribute to proposer\"" + } + ], + "id": 8964, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "29548:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29548:160:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8975, + "nodeType": "ExpressionStatement", + "src": "29548:160:15" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8977, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8918, + "src": "29741:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8978, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "29753:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "29753:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 8976, + "name": "CancelProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7768, + "src": "29726:14:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (uint256,address)" + } + }, + "id": 8980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29726:38:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8981, + "nodeType": "EmitStatement", + "src": "29721:43:15" + } + ] + }, + "documentation": null, + "id": 8983, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 8921, + "modifierName": { + "argumentTypes": null, + "id": 8920, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9748, + "src": "29173:12:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "29173:12:15" + } + ], + "name": "cancelProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8919, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8918, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 8983, + "src": "29146:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8917, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29146:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "29145:20:15" + }, + "returnParameters": { + "id": 8922, + "nodeType": "ParameterList", + "parameters": [], + "src": "29186:0:15" + }, + "scope": 9115, + "src": "29122:650:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 8999, + "nodeType": "Block", + "src": "30796:40:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8992, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8985, + "src": "30814:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 8993, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8987, + "src": "30819:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30814:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 8996, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8987, + "src": "30827:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "30814:14:15", + "trueExpression": { + "argumentTypes": null, + "id": 8995, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8985, + "src": "30823:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8991, + "id": 8998, + "nodeType": "Return", + "src": "30807:21:15" + } + ] + }, + "documentation": "*************\r\nGETTER FUNCTIONS\r**************", + "id": 9000, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8988, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8985, + "name": "x", + "nodeType": "VariableDeclaration", + "scope": 9000, + "src": "30742:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8984, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30742:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8987, + "name": "y", + "nodeType": "VariableDeclaration", + "scope": 9000, + "src": "30753:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30753:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "30741:22:15" + }, + "returnParameters": { + "id": 8991, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8990, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9000, + "src": "30787:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8989, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30787:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "30786:9:15" + }, + "scope": 9115, + "src": "30729:107:15", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9013, + "nodeType": "Block", + "src": "30902:68:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9010, + "name": "periodDuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7673, + "src": "30947:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9007, + "name": "summoningTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7683, + "src": "30928:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9005, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10413, + "src": "30920:3:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "30920:7:15", + "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": 9008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30920:22:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9808, + "src": "30920:26:15", + "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": 9011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30920:42:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9004, + "id": 9012, + "nodeType": "Return", + "src": "30913:49:15" + } + ] + }, + "documentation": null, + "id": 9014, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getCurrentPeriod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9001, + "nodeType": "ParameterList", + "parameters": [], + "src": "30869:2:15" + }, + "returnParameters": { + "id": 9004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9003, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9014, + "src": "30893:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9002, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30893:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "30892:9:15" + }, + "scope": 9115, + "src": "30844:126:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9022, + "nodeType": "Block", + "src": "31042:46:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9019, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "31060:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 9020, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "31060:20:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9018, + "id": 9021, + "nodeType": "Return", + "src": "31053:27:15" + } + ] + }, + "documentation": null, + "id": 9023, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getProposalQueueLength", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9015, + "nodeType": "ParameterList", + "parameters": [], + "src": "31009:2:15" + }, + "returnParameters": { + "id": 9018, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9017, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9023, + "src": "31033:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9016, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31033:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "31032:9:15" + }, + "scope": 9115, + "src": "30978:110:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9037, + "nodeType": "Block", + "src": "31179:53:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9032, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "31197:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" + } + }, + "id": 9034, + "indexExpression": { + "argumentTypes": null, + "id": 9033, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9025, + "src": "31207:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "31197:21:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "id": 9035, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 7833, + "src": "31197:27:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "functionReturnParameters": 9031, + "id": 9036, + "nodeType": "Return", + "src": "31190:34:15" + } + ] + }, + "documentation": null, + "id": 9038, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getProposalFlags", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9026, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9025, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 9038, + "src": "31122:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9024, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31122:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "31121:20:15" + }, + "returnParameters": { + "id": 9031, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9030, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9038, + "src": "31163:14:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6]" + }, + "typeName": { + "baseType": { + "id": 9027, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31163:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9029, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 9028, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31168:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "31163:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", + "typeString": "bool[6]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "31162:16:15" + }, + "scope": 9115, + "src": "31096:136:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9062, + "nodeType": "Block", + "src": "31402:169:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9046, + "name": "highestIndexYesVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9040, + "src": "31421:19:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9047, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "31443:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 9048, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "31443:20:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31421:42:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", + "id": 9050, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31465:25:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + }, + "value": "proposal does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + } + ], + "id": 9045, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "31413:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31413:78:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9052, + "nodeType": "ExpressionStatement", + "src": "31413:78:15" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9053, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "31509:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" + } + }, + "id": 9057, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9054, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "31519:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 9056, + "indexExpression": { + "argumentTypes": null, + "id": 9055, + "name": "highestIndexYesVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9040, + "src": "31533:19:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "31519:34:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "31509:45:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "id": 9058, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 7833, + "src": "31509:51:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 9060, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 9059, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31561:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "31509:54:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 9044, + "id": 9061, + "nodeType": "Return", + "src": "31502:61:15" + } + ] + }, + "documentation": null, + "id": 9063, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "canRagequit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9041, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9040, + "name": "highestIndexYesVote", + "nodeType": "VariableDeclaration", + "scope": 9063, + "src": "31346:27:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9039, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31346:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "31345:29:15" + }, + "returnParameters": { + "id": 9044, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9043, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9063, + "src": "31396:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9042, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31396:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "31395:6:15" + }, + "scope": 9115, + "src": "31325:246:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9078, + "nodeType": "Block", + "src": "32439:86:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 9070, + "name": "getCurrentPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9014, + "src": "32457:16:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 9071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32457:18:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9074, + "name": "votingPeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7675, + "src": "32498:18:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9072, + "name": "startingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9065, + "src": "32479:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "32479:18:15", + "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": 9075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32479:38:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "32457:60:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 9069, + "id": 9077, + "nodeType": "Return", + "src": "32450:67:15" + } + ] + }, + "documentation": null, + "id": 9079, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "hasVotingPeriodExpired", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9066, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9065, + "name": "startingPeriod", + "nodeType": "VariableDeclaration", + "scope": 9079, + "src": "32388:22:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9064, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32388:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "32387:24:15" + }, + "returnParameters": { + "id": 9069, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9068, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9079, + "src": "32433:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9067, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32433:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "32432:6:15" + }, + "scope": 9115, + "src": "32356:169:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9113, + "nodeType": "Block", + "src": "32637:251:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9089, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "32656:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 9091, + "indexExpression": { + "argumentTypes": null, + "id": 9090, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9081, + "src": "32664:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "32656:22:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "id": 9092, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exists", + "nodeType": "MemberAccess", + "referencedDeclaration": 7802, + "src": "32656:29:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6d656d62657220646f6573206e6f74206578697374", + "id": 9093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32687:23:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_eeb2dbde81ed918fce84900f40c1838c2cab850a4c637d1ccdd3d5601b174fb4", + "typeString": "literal_string \"member does not exist\"" + }, + "value": "member does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_eeb2dbde81ed918fce84900f40c1838c2cab850a4c637d1ccdd3d5601b174fb4", + "typeString": "literal_string \"member does not exist\"" + } + ], + "id": 9088, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "32648:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32648:63:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9095, + "nodeType": "ExpressionStatement", + "src": "32648:63:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9097, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9083, + "src": "32730:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9098, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "32746:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 9099, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "32746:20:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "32730:36:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", + "id": 9101, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32768:25:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + }, + "value": "proposal does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + } + ], + "id": 9096, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "32722:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32722:72:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9103, + "nodeType": "ExpressionStatement", + "src": "32722:72:15" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9104, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "32812:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" + } + }, + "id": 9108, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9105, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "32822:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 9107, + "indexExpression": { + "argumentTypes": null, + "id": 9106, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9083, + "src": "32836:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "32822:28:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "32812:39:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "id": 9109, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "votesByMember", + "nodeType": "MemberAccess", + "referencedDeclaration": 7841, + "src": "32812:53:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$7796_$", + "typeString": "mapping(address => enum Moloch.Vote)" + } + }, + "id": 9111, + "indexExpression": { + "argumentTypes": null, + "id": 9110, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9081, + "src": "32866:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "32812:68:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "functionReturnParameters": 9087, + "id": 9112, + "nodeType": "Return", + "src": "32805:75:15" + } + ] + }, + "documentation": null, + "id": 9114, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMemberProposalVote", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9084, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9081, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 9114, + "src": "32564:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9080, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32564:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9083, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 9114, + "src": "32587:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9082, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32587:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "32563:46:15" + }, + "returnParameters": { + "id": 9087, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9086, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9114, + "src": "32631:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + }, + "typeName": { + "contractScope": null, + "id": 9085, + "name": "Vote", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7796, + "src": "32631:4:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "32630:6:15" + }, + "scope": 9115, + "src": "32533:355:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 9116, + "src": "157:32734:15" + } + ], + "src": "0:32893:15" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Moloch.sol", + "exportedSymbols": { + "Moloch": [ + 9115 + ] + }, + "id": 9116, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 7660, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:15" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "./oz/SafeMath.sol", + "id": 7661, + "nodeType": "ImportDirective", + "scope": 9116, + "sourceUnit": 9858, + "src": "36:27:15", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", + "file": "./oz/IERC20.sol", + "id": 7662, + "nodeType": "ImportDirective", + "scope": 9116, + "sourceUnit": 9720, + "src": "65:25:15", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol", + "file": "./oz/ReentrancyGuard.sol", + "id": 7663, + "nodeType": "ImportDirective", + "scope": 9116, + "sourceUnit": 9750, + "src": "92:34:15", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol", + "file": "./GuildBank.sol", + "id": 7664, + "nodeType": "ImportDirective", + "scope": 9116, + "sourceUnit": 7659, + "src": "128:25:15", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 7665, + "name": "ReentrancyGuard", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9749, + "src": "176:15:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ReentrancyGuard_$9749", + "typeString": "contract ReentrancyGuard" + } + }, + "id": 7666, + "nodeType": "InheritanceSpecifier", + "src": "176:15:15" + } + ], + "contractDependencies": [ + 7658, + 9749 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 9115, + "linearizedBaseContracts": [ + 9115, + 9749 + ], + "name": "Moloch", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 7669, + "libraryName": { + "contractScope": null, + "id": 7667, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "205:8:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "199:27:15", + "typeName": { + "id": 7668, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "218:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": false, + "id": 7671, + "name": "summoner", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "300:23:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7670, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "300:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7673, + "name": "periodDuration", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "387:29:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7672, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "387:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7675, + "name": "votingPeriodLength", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "485:33:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7674, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "485:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7677, + "name": "gracePeriodLength", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "558:32:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "558:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7679, + "name": "emergencyProcessingWait", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "630:38:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7678, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "630:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7681, + "name": "proposalDeposit", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "777:30:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7680, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "777:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7683, + "name": "summoningTime", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "1128:28:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7682, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1128:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7685, + "name": "depositToken", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "1207:26:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 7684, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "1207:6:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7687, + "name": "guildBank", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "1292:26:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + }, + "typeName": { + "contractScope": null, + "id": 7686, + "name": "GuildBank", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7658, + "src": "1292:9:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": true, + "id": 7692, + "name": "MAX_VOTING_PERIOD_LENGTH", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "1576:50:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1576:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "id": 7691, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 7689, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1620:2:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 7690, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1624:2:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "1620:6:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 7697, + "name": "MAX_GRACE_PERIOD_LENGTH", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "1668:49:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1668:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "id": 7696, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 7694, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1711:2:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 7695, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1715:2:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "1711:6:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 7702, + "name": "MAX_NUMBER_OF_SHARES", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "1988:46:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7698, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1988:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "id": 7701, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "hexValue": "3130", + "id": 7699, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2028:2:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3138", + "id": 7700, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2032:2:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_18_by_1", + "typeString": "int_const 18" + }, + "value": "18" + }, + "src": "2028:6:15", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + } + }, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 7724, + "name": "SubmitProposal", + "nodeType": "EventDefinition", + "parameters": { + "id": 7723, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7704, + "indexed": false, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 7724, + "src": "2174:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7703, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2174:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7706, + "indexed": true, + "name": "delegateKey", + "nodeType": "VariableDeclaration", + "scope": 7724, + "src": "2197:27:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7705, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2197:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7708, + "indexed": true, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 7724, + "src": "2226:29:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7707, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2226:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7710, + "indexed": true, + "name": "applicant", + "nodeType": "VariableDeclaration", + "scope": 7724, + "src": "2257:25:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2257:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7712, + "indexed": false, + "name": "sharesRequested", + "nodeType": "VariableDeclaration", + "scope": 7724, + "src": "2284:23:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7711, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2284:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7714, + "indexed": false, + "name": "lootRequested", + "nodeType": "VariableDeclaration", + "scope": 7724, + "src": "2309:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7713, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2309:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7716, + "indexed": false, + "name": "tributeOffered", + "nodeType": "VariableDeclaration", + "scope": 7724, + "src": "2332:22:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2332:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7718, + "indexed": false, + "name": "tributeToken", + "nodeType": "VariableDeclaration", + "scope": 7724, + "src": "2356:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7717, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2356:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7720, + "indexed": false, + "name": "paymentRequested", + "nodeType": "VariableDeclaration", + "scope": 7724, + "src": "2378:24:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7719, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2378:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7722, + "indexed": false, + "name": "paymentToken", + "nodeType": "VariableDeclaration", + "scope": 7724, + "src": "2404:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7721, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2404:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2173:252:15" + }, + "src": "2153:273:15" + }, + { + "anonymous": false, + "documentation": null, + "id": 7736, + "name": "SponsorProposal", + "nodeType": "EventDefinition", + "parameters": { + "id": 7735, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7726, + "indexed": true, + "name": "delegateKey", + "nodeType": "VariableDeclaration", + "scope": 7736, + "src": "2454:27:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7725, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2454:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7728, + "indexed": true, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 7736, + "src": "2483:29:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7727, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2483:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7730, + "indexed": false, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 7736, + "src": "2514:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7729, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2514:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7732, + "indexed": false, + "name": "proposalQueueIndex", + "nodeType": "VariableDeclaration", + "scope": 7736, + "src": "2537:26:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7731, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2537:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7734, + "indexed": false, + "name": "startingPeriod", + "nodeType": "VariableDeclaration", + "scope": 7736, + "src": "2565:22:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7733, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2565:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2453:135:15" + }, + "src": "2432:157:15" + }, + { + "anonymous": false, + "documentation": null, + "id": 7746, + "name": "SubmitVote", + "nodeType": "EventDefinition", + "parameters": { + "id": 7745, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7738, + "indexed": true, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 7746, + "src": "2612:29:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7737, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2612:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7740, + "indexed": true, + "name": "delegateKey", + "nodeType": "VariableDeclaration", + "scope": 7746, + "src": "2643:27:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7739, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2643:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7742, + "indexed": true, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 7746, + "src": "2672:29:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7741, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2672:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7744, + "indexed": false, + "name": "uintVote", + "nodeType": "VariableDeclaration", + "scope": 7746, + "src": "2703:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 7743, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2703:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2611:107:15" + }, + "src": "2595:124:15" + }, + { + "anonymous": false, + "documentation": null, + "id": 7754, + "name": "ProcessProposal", + "nodeType": "EventDefinition", + "parameters": { + "id": 7753, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7748, + "indexed": true, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 7754, + "src": "2747:29:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7747, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2747:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7750, + "indexed": true, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 7754, + "src": "2778:26:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7749, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2778:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7752, + "indexed": false, + "name": "didPass", + "nodeType": "VariableDeclaration", + "scope": 7754, + "src": "2806:12:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7751, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2806:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2746:73:15" + }, + "src": "2725:95:15" + }, + { + "anonymous": false, + "documentation": null, + "id": 7762, + "name": "Ragequit", + "nodeType": "EventDefinition", + "parameters": { + "id": 7761, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7756, + "indexed": true, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 7762, + "src": "2841:29:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7755, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2841:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7758, + "indexed": false, + "name": "sharesToBurn", + "nodeType": "VariableDeclaration", + "scope": 7762, + "src": "2872:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7757, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2872:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7760, + "indexed": false, + "name": "lootToBurn", + "nodeType": "VariableDeclaration", + "scope": 7762, + "src": "2894:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7759, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2894:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2840:73:15" + }, + "src": "2826:88:15" + }, + { + "anonymous": false, + "documentation": null, + "id": 7768, + "name": "CancelProposal", + "nodeType": "EventDefinition", + "parameters": { + "id": 7767, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7764, + "indexed": true, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 7768, + "src": "2941:29:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7763, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2941:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7766, + "indexed": false, + "name": "applicantAddress", + "nodeType": "VariableDeclaration", + "scope": 7768, + "src": "2972:24:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7765, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2972:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2940:57:15" + }, + "src": "2920:78:15" + }, + { + "anonymous": false, + "documentation": null, + "id": 7774, + "name": "UpdateDelegateKey", + "nodeType": "EventDefinition", + "parameters": { + "id": 7773, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7770, + "indexed": true, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 7774, + "src": "3028:29:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7769, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3028:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7772, + "indexed": false, + "name": "newDelegateKey", + "nodeType": "VariableDeclaration", + "scope": 7774, + "src": "3059:22:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7771, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3059:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3027:55:15" + }, + "src": "3004:79:15" + }, + { + "anonymous": false, + "documentation": null, + "id": 7780, + "name": "SummonComplete", + "nodeType": "EventDefinition", + "parameters": { + "id": 7779, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7776, + "indexed": true, + "name": "summoner", + "nodeType": "VariableDeclaration", + "scope": 7780, + "src": "3110:24:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7775, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3110:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7778, + "indexed": false, + "name": "shares", + "nodeType": "VariableDeclaration", + "scope": 7780, + "src": "3136:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7777, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3136:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3109:42:15" + }, + "src": "3089:63:15" + }, + { + "constant": false, + "id": 7783, + "name": "proposalCount", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "3244:32:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7781, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3244:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 7782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3275:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 7786, + "name": "totalShares", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "3312:30:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7784, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3312:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 7785, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3341:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 7789, + "name": "emergencyWarning", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "3456:36:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7787, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3456:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 7788, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3487:5:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 7792, + "name": "lastEmergencyProposalIndex", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "3555:45:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7790, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3555:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30", + "id": 7791, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3599:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "canonicalName": "Moloch.Vote", + "id": 7796, + "members": [ + { + "id": 7793, + "name": "Null", + "nodeType": "EnumValue", + "src": "3697:4:15" + }, + { + "id": 7794, + "name": "Yes", + "nodeType": "EnumValue", + "src": "3752:3:15" + }, + { + "id": 7795, + "name": "No", + "nodeType": "EnumValue", + "src": "3766:2:15" + } + ], + "name": "Vote", + "nodeType": "EnumDefinition", + "src": "3676:99:15" + }, + { + "canonicalName": "Moloch.Member", + "id": 7805, + "members": [ + { + "constant": false, + "id": 7798, + "name": "delegateKey", + "nodeType": "VariableDeclaration", + "scope": 7805, + "src": "3808:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7797, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3808:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7800, + "name": "shares", + "nodeType": "VariableDeclaration", + "scope": 7805, + "src": "3941:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7799, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3941:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7802, + "name": "exists", + "nodeType": "VariableDeclaration", + "scope": 7805, + "src": "4120:11:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 7801, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "4120:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7804, + "name": "highestIndexYesVote", + "nodeType": "VariableDeclaration", + "scope": 7805, + "src": "4188:27:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7803, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4188:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Member", + "nodeType": "StructDefinition", + "scope": 9115, + "src": "3783:643:15", + "visibility": "public" + }, + { + "canonicalName": "Moloch.Proposal", + "id": 7842, + "members": [ + { + "constant": false, + "id": 7807, + "name": "applicant", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "4461:17:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7806, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4461:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7809, + "name": "proposer", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "4627:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7808, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4627:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7811, + "name": "sponsor", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "4717:15:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7810, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4717:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7813, + "name": "sharesRequested", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "4812:23:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7812, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4812:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7815, + "name": "lootRequested", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "4893:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4893:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7817, + "name": "tributeOffered", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "4975:22:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7816, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4975:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7819, + "name": "tributeToken", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "5047:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 7818, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "5047:6:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7821, + "name": "paymentRequested", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "5113:24:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7820, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5113:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7823, + "name": "paymentToken", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "5189:19:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "typeName": { + "contractScope": null, + "id": 7822, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "5189:6:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7825, + "name": "startingPeriod", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "5255:22:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7824, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5255:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7827, + "name": "yesVotes", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "5346:16:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7826, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5346:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7829, + "name": "noVotes", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "5424:15:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7828, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5424:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7833, + "name": "flags", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "5500:13:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", + "typeString": "bool[6]" + }, + "typeName": { + "baseType": { + "id": 7830, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5500:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 7832, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 7831, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5505:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "5500:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", + "typeString": "bool[6]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7835, + "name": "details", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "5592:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 7834, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "5592:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7837, + "name": "maxTotalSharesAndLootAtYesVote", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "5678:38:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5678:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7841, + "name": "votesByMember", + "nodeType": "VariableDeclaration", + "scope": 7842, + "src": "5803:38:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$7796_$", + "typeString": "mapping(address => enum Moloch.Vote)" + }, + "typeName": { + "id": 7840, + "keyType": { + "id": 7838, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5811:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "5803:24:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$7796_$", + "typeString": "mapping(address => enum Moloch.Vote)" + }, + "valueType": { + "contractScope": null, + "id": 7839, + "name": "Vote", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7796, + "src": "5822:4:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Proposal", + "nodeType": "StructDefinition", + "scope": 9115, + "src": "4434:1460:15", + "visibility": "public" + }, + { + "constant": false, + "id": 7845, + "name": "approvedTokens", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "5957:30:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage", + "typeString": "contract IERC20[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 7843, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "5957:6:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 7844, + "length": null, + "nodeType": "ArrayTypeName", + "src": "5957:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage_ptr", + "typeString": "contract IERC20[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7849, + "name": "members", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "6113:41:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member)" + }, + "typeName": { + "id": 7848, + "keyType": { + "id": 7846, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6121:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "6113:26:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member)" + }, + "valueType": { + "contractScope": null, + "id": 7847, + "name": "Member", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7805, + "src": "6132:6:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7853, + "name": "memberAddressByDelegateKey", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "6161:61:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "typeName": { + "id": 7852, + "keyType": { + "id": 7850, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6169:7:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "6161:27:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + }, + "valueType": { + "id": 7851, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6180:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7857, + "name": "proposals", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "6231:45:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal)" + }, + "typeName": { + "id": 7856, + "keyType": { + "id": 7854, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6239:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "6231:28:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal)" + }, + "valueType": { + "contractScope": null, + "id": 7855, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7842, + "src": "6250:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 7860, + "name": "proposalQueue", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "6285:30:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 7858, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6285:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 7859, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6285:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 7874, + "nodeType": "Block", + "src": "6344:87:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7863, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "6363:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 7866, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7864, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6371:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6371:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6363:19:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "id": 7867, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 7800, + "src": "6363:26:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6392:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6363:30:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6e6f742061206d656d626572", + "id": 7870, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6396:14:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8a38730a0a31747b89b97e72db1b281f9d6fdcc9116c7bee85aba010b162e996", + "typeString": "literal_string \"not a member\"" + }, + "value": "not a member" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a38730a0a31747b89b97e72db1b281f9d6fdcc9116c7bee85aba010b162e996", + "typeString": "literal_string \"not a member\"" + } + ], + "id": 7862, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "6355:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6355:56:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7872, + "nodeType": "ExpressionStatement", + "src": "6355:56:15" + }, + { + "id": 7873, + "nodeType": "PlaceholderStatement", + "src": "6422:1:15" + } + ] + }, + "documentation": null, + "id": 7875, + "name": "onlyMember", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 7861, + "nodeType": "ParameterList", + "parameters": [], + "src": "6344:0:15" + }, + "src": "6324:107:15", + "visibility": "internal" + }, + { + "body": { + "id": 7889, + "nodeType": "Block", + "src": "6464:91:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7884, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7878, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "6483:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 7881, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7879, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6491:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6491:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6483:19:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "id": 7882, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 7800, + "src": "6483:26:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7883, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6512:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6483:30:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6e6f742061207368617265686f6c646572", + "id": 7885, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6515:19:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f04c1891c0a18f803b467b9992e2d2738663e155d08d2aaee274da8a131a0bdb", + "typeString": "literal_string \"not a shareholder\"" + }, + "value": "not a shareholder" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f04c1891c0a18f803b467b9992e2d2738663e155d08d2aaee274da8a131a0bdb", + "typeString": "literal_string \"not a shareholder\"" + } + ], + "id": 7877, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "6475:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6475:60:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7887, + "nodeType": "ExpressionStatement", + "src": "6475:60:15" + }, + { + "id": 7888, + "nodeType": "PlaceholderStatement", + "src": "6546:1:15" + } + ] + }, + "documentation": null, + "id": 7890, + "name": "onlyShareholder", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 7876, + "nodeType": "ParameterList", + "parameters": [], + "src": "6464:0:15" + }, + "src": "6439:116:15", + "visibility": "internal" + }, + { + "body": { + "id": 7906, + "nodeType": "Block", + "src": "6585:116:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7901, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7893, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "6604:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 7898, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7894, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7853, + "src": "6612:26:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 7897, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7895, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "6639:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 7896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6639:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6612:38:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6604:47:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "id": 7899, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 7800, + "src": "6604:54:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6661:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6604:58:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6e6f7420612064656c6567617465", + "id": 7902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6664:16:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4d2048a93053cc7fa7807c657f537fc9d130edf6819e714c97d45589e5ba66dc", + "typeString": "literal_string \"not a delegate\"" + }, + "value": "not a delegate" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4d2048a93053cc7fa7807c657f537fc9d130edf6819e714c97d45589e5ba66dc", + "typeString": "literal_string \"not a delegate\"" + } + ], + "id": 7892, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "6596:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6596:85:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7904, + "nodeType": "ExpressionStatement", + "src": "6596:85:15" + }, + { + "id": 7905, + "nodeType": "PlaceholderStatement", + "src": "6692:1:15" + } + ] + }, + "documentation": null, + "id": 7907, + "name": "onlyDelegate", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 7891, + "nodeType": "ParameterList", + "parameters": [], + "src": "6585:0:15" + }, + "src": "6563:138:15", + "visibility": "internal" + }, + { + "body": { + "id": 8086, + "nodeType": "Block", + "src": "7094:2188:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 7937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7933, + "name": "_summoner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7909, + "src": "7113:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 7935, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7134:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 7934, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7126:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 7936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7126:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "7113:23:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "73756d6d6f6e65722063616e6e6f742062652030", + "id": 7938, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7138:22:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e18bccdb58063a7f6628b2785d4b67ba1d84d6f9ced86e1185ad4b056fddad91", + "typeString": "literal_string \"summoner cannot be 0\"" + }, + "value": "summoner cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e18bccdb58063a7f6628b2785d4b67ba1d84d6f9ced86e1185ad4b056fddad91", + "typeString": "literal_string \"summoner cannot be 0\"" + } + ], + "id": 7932, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7105:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7105:56:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7940, + "nodeType": "ExpressionStatement", + "src": "7105:56:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7944, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7942, + "name": "_periodDuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7915, + "src": "7180:15:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7943, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7198:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7180:19:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f706572696f644475726174696f6e2063616e6e6f742062652030", + "id": 7945, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7201:29:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_dcaa7db0431116123c67314944edc83f1ee2d0251a1b070940664f004c74012d", + "typeString": "literal_string \"_periodDuration cannot be 0\"" + }, + "value": "_periodDuration cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_dcaa7db0431116123c67314944edc83f1ee2d0251a1b070940664f004c74012d", + "typeString": "literal_string \"_periodDuration cannot be 0\"" + } + ], + "id": 7941, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7172:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7946, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7172:59:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7947, + "nodeType": "ExpressionStatement", + "src": "7172:59:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7951, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7949, + "name": "_votingPeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7917, + "src": "7250:19:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7950, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7272:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7250:23:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f766f74696e67506572696f644c656e6774682063616e6e6f742062652030", + "id": 7952, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7275:33:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_90c9559254cdd6a8c5e39e97417540a97cc2c7e6b004410ebb33d7f7769bc53b", + "typeString": "literal_string \"_votingPeriodLength cannot be 0\"" + }, + "value": "_votingPeriodLength cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_90c9559254cdd6a8c5e39e97417540a97cc2c7e6b004410ebb33d7f7769bc53b", + "typeString": "literal_string \"_votingPeriodLength cannot be 0\"" + } + ], + "id": 7948, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7242:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7242:67:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7954, + "nodeType": "ExpressionStatement", + "src": "7242:67:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7956, + "name": "_votingPeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7917, + "src": "7328:19:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 7957, + "name": "MAX_VOTING_PERIOD_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7692, + "src": "7351:24:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7328:47:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f766f74696e67506572696f644c656e6774682065786365656473206c696d6974", + "id": 7959, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7377:35:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7cba4ff2b7c48d54c20d93277dca7b9500525168ffa3f2b94651177b72c45612", + "typeString": "literal_string \"_votingPeriodLength exceeds limit\"" + }, + "value": "_votingPeriodLength exceeds limit" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7cba4ff2b7c48d54c20d93277dca7b9500525168ffa3f2b94651177b72c45612", + "typeString": "literal_string \"_votingPeriodLength exceeds limit\"" + } + ], + "id": 7955, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7320:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7960, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7320:93:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7961, + "nodeType": "ExpressionStatement", + "src": "7320:93:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7965, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7963, + "name": "_gracePeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7919, + "src": "7432:18:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 7964, + "name": "MAX_GRACE_PERIOD_LENGTH", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7697, + "src": "7454:23:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7432:45:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f6772616365506572696f644c656e6774682065786365656473206c696d6974", + "id": 7966, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7479:34:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_94e4c02e557a13b96fee3c87ad3ed501d16c78e01ccadd26d54a03a2773f4e60", + "typeString": "literal_string \"_gracePeriodLength exceeds limit\"" + }, + "value": "_gracePeriodLength exceeds limit" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94e4c02e557a13b96fee3c87ad3ed501d16c78e01ccadd26d54a03a2773f4e60", + "typeString": "literal_string \"_gracePeriodLength exceeds limit\"" + } + ], + "id": 7962, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7424:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7424:90:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7968, + "nodeType": "ExpressionStatement", + "src": "7424:90:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 7970, + "name": "_emergencyProcessingWait", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7921, + "src": "7533:24:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7971, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7560:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7533:28:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f656d657267656e637950726f63657373696e67576169742063616e6e6f742062652030", + "id": 7973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7563:38:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bbc33dc034ca97464527af241134c23d7681bf4b99d8886c6c16474b9fa58717", + "typeString": "literal_string \"_emergencyProcessingWait cannot be 0\"" + }, + "value": "_emergencyProcessingWait cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_bbc33dc034ca97464527af241134c23d7681bf4b99d8886c6c16474b9fa58717", + "typeString": "literal_string \"_emergencyProcessingWait cannot be 0\"" + } + ], + "id": 7969, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7525:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7525:77:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7975, + "nodeType": "ExpressionStatement", + "src": "7525:77:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 7980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 7977, + "name": "_approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7913, + "src": "7988:15:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + } + }, + "id": 7978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "7988:22:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8013:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7988:26:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6e656564206174206c65617374206f6e6520617070726f76656420746f6b656e", + "id": 7981, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8016:34:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c6d3134f6bde8083414251001f93c467973bb02a0dc01b762665902389253170", + "typeString": "literal_string \"need at least one approved token\"" + }, + "value": "need at least one approved token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c6d3134f6bde8083414251001f93c467973bb02a0dc01b762665902389253170", + "typeString": "literal_string \"need at least one approved token\"" + } + ], + "id": 7976, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "7980:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 7982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7980:71:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 7983, + "nodeType": "ExpressionStatement", + "src": "7980:71:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 7986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7984, + "name": "summoner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7671, + "src": "8184:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 7985, + "name": "_summoner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7909, + "src": "8195:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "8184:20:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7987, + "nodeType": "ExpressionStatement", + "src": "8184:20:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 7994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 7988, + "name": "depositToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7685, + "src": "8217:12:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 7990, + "name": "_approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7913, + "src": "8239:15:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + } + }, + "id": 7992, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 7991, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8255:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8239:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 7989, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9719, + "src": "8232:6:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 7993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8232:26:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "src": "8217:41:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 7995, + "nodeType": "ExpressionStatement", + "src": "8217:41:15" + }, + { + "body": { + "id": 8028, + "nodeType": "Block", + "src": "8324:307:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 8014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8008, + "name": "_approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7913, + "src": "8347:15:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + } + }, + "id": 8010, + "indexExpression": { + "argumentTypes": null, + "id": 8009, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7997, + "src": "8363:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8347:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 8012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8377:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 8011, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "8369:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 8013, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8369:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8347:32:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5f617070726f766564546f6b656e2063616e6e6f742062652030", + "id": 8015, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8381:28:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b40b09ae38f1346b8a26ea643f189c8d547e60b5d4d63ceb6e8e43507dd5bc8", + "typeString": "literal_string \"_approvedToken cannot be 0\"" + }, + "value": "_approvedToken cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b40b09ae38f1346b8a26ea643f189c8d547e60b5d4d63ceb6e8e43507dd5bc8", + "typeString": "literal_string \"_approvedToken cannot be 0\"" + } + ], + "id": 8007, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "8339:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8339:71:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8017, + "nodeType": "ExpressionStatement", + "src": "8339:71:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8022, + "name": "_approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7913, + "src": "8599:15:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + } + }, + "id": 8024, + "indexExpression": { + "argumentTypes": null, + "id": 8023, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7997, + "src": "8615:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "8599:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8021, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9719, + "src": "8592:6:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 8025, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8592:26:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + ], + "expression": { + "argumentTypes": null, + "id": 8018, + "name": "approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7845, + "src": "8572:14:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage", + "typeString": "contract IERC20[] storage ref" + } + }, + "id": 8020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8572:19:15", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_IERC20_$9719_$returns$_t_uint256_$", + "typeString": "function (contract IERC20) returns (uint256)" + } + }, + "id": 8026, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8572:47:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8027, + "nodeType": "ExpressionStatement", + "src": "8572:47:15" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8003, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8000, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7997, + "src": "8291:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8001, + "name": "_approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7913, + "src": "8295:15:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + } + }, + "id": 8002, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8295:22:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8291:26:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8029, + "initializationExpression": { + "assignments": [ + 7997 + ], + "declarations": [ + { + "constant": false, + "id": 7997, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 8029, + "src": "8276:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7996, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8276:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 7999, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 7998, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8288:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "8276:13:15" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 8005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "8319:3:15", + "subExpression": { + "argumentTypes": null, + "id": 8004, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7997, + "src": "8319:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8006, + "nodeType": "ExpressionStatement", + "src": "8319:3:15" + }, + "nodeType": "ForStatement", + "src": "8271:360:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8030, + "name": "guildBank", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7687, + "src": "8643:9:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "8655:13:15", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_GuildBank_$7658_$", + "typeString": "function () returns (contract GuildBank)" + }, + "typeName": { + "contractScope": null, + "id": 8031, + "name": "GuildBank", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7658, + "src": "8659:9:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + } + }, + "id": 8033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8655:15:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + }, + "src": "8643:27:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + }, + "id": 8035, + "nodeType": "ExpressionStatement", + "src": "8643:27:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8036, + "name": "periodDuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7673, + "src": "8683:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8037, + "name": "_periodDuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7915, + "src": "8700:15:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8683:32:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8039, + "nodeType": "ExpressionStatement", + "src": "8683:32:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8040, + "name": "votingPeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7675, + "src": "8726:18:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8041, + "name": "_votingPeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7917, + "src": "8747:19:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8726:40:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8043, + "nodeType": "ExpressionStatement", + "src": "8726:40:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8044, + "name": "gracePeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7677, + "src": "8777:17:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8045, + "name": "_gracePeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7919, + "src": "8797:18:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8777:38:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8047, + "nodeType": "ExpressionStatement", + "src": "8777:38:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8048, + "name": "emergencyProcessingWait", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7679, + "src": "8826:23:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8049, + "name": "_emergencyProcessingWait", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7921, + "src": "8852:24:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8826:50:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8051, + "nodeType": "ExpressionStatement", + "src": "8826:50:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8052, + "name": "proposalDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7681, + "src": "8926:15:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8053, + "name": "_proposalDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7925, + "src": "8944:16:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8926:34:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8055, + "nodeType": "ExpressionStatement", + "src": "8926:34:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8056, + "name": "summoningTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7683, + "src": "9065:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8057, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10413, + "src": "9081:3:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9065:19:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8059, + "nodeType": "ExpressionStatement", + "src": "9065:19:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8060, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "9097:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 8062, + "indexExpression": { + "argumentTypes": null, + "id": 8061, + "name": "summoner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7671, + "src": "9105:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9097:17:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8064, + "name": "summoner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7671, + "src": "9124:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "31", + "id": 8065, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9134:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 8066, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9137:4:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 8067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9143:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 8063, + "name": "Member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7805, + "src": "9117:6:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Member_$7805_storage_ptr_$", + "typeString": "type(struct Moloch.Member storage pointer)" + } + }, + "id": 8068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9117:28:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_memory", + "typeString": "struct Moloch.Member memory" + } + }, + "src": "9097:48:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "id": 8070, + "nodeType": "ExpressionStatement", + "src": "9097:48:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8071, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7853, + "src": "9156:26:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 8073, + "indexExpression": { + "argumentTypes": null, + "id": 8072, + "name": "summoner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7671, + "src": "9183:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "9156:36:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8074, + "name": "summoner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7671, + "src": "9195:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "9156:47:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 8076, + "nodeType": "ExpressionStatement", + "src": "9156:47:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8077, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7786, + "src": "9214:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 8078, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9228:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "9214:15:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8080, + "nodeType": "ExpressionStatement", + "src": "9214:15:15" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8082, + "name": "summoner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7671, + "src": "9262:8:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "hexValue": "31", + "id": 8083, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9272:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "id": 8081, + "name": "SummonComplete", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7780, + "src": "9247:14:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 8084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9247:27:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8085, + "nodeType": "EmitStatement", + "src": "9242:32:15" + } + ] + }, + "documentation": null, + "id": 8087, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 7930, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 7909, + "name": "_summoner", + "nodeType": "VariableDeclaration", + "scope": 8087, + "src": "6731:17:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 7908, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6731:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7913, + "name": "_approvedTokens", + "nodeType": "VariableDeclaration", + "scope": 8087, + "src": "6759:33:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1]" + }, + "typeName": { + "baseType": { + "id": 7910, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6759:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 7912, + "length": { + "argumentTypes": null, + "hexValue": "31", + "id": 7911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6767:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "ArrayTypeName", + "src": "6759:10:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_storage_ptr", + "typeString": "address[1]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7915, + "name": "_periodDuration", + "nodeType": "VariableDeclaration", + "scope": 8087, + "src": "6803:23:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7914, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6803:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7917, + "name": "_votingPeriodLength", + "nodeType": "VariableDeclaration", + "scope": 8087, + "src": "6837:27:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7916, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6837:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7919, + "name": "_gracePeriodLength", + "nodeType": "VariableDeclaration", + "scope": 8087, + "src": "6875:26:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7918, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6875:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7921, + "name": "_emergencyProcessingWait", + "nodeType": "VariableDeclaration", + "scope": 8087, + "src": "6912:32:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7920, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6912:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7923, + "name": "_bailoutWait", + "nodeType": "VariableDeclaration", + "scope": 8087, + "src": "6955:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7922, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6955:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7925, + "name": "_proposalDeposit", + "nodeType": "VariableDeclaration", + "scope": 8087, + "src": "6986:24:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7924, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6986:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7927, + "name": "_dilutionBound", + "nodeType": "VariableDeclaration", + "scope": 8087, + "src": "7021:22:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7926, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7021:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 7929, + "name": "_processingReward", + "nodeType": "VariableDeclaration", + "scope": 8087, + "src": "7054:25:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 7928, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7054:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6720:366:15" + }, + "returnParameters": { + "id": 7931, + "nodeType": "ParameterList", + "parameters": [], + "src": "7094:0:15" + }, + "scope": 9115, + "src": "6709:2573:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 8148, + "nodeType": "Block", + "src": "9698:1003:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8111, + "name": "sharesRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8091, + "src": "9717:15:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 8112, + "name": "MAX_NUMBER_OF_SHARES", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7702, + "src": "9736:20:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9717:39:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "746f6f206d616e792073686172657320726571756573746564", + "id": 8114, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9758:27:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_584b3bdfa816bf4fa30756567c0526c04441dc54230f4ba83c195ee6f0a70758", + "typeString": "literal_string \"too many shares requested\"" + }, + "value": "too many shares requested" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_584b3bdfa816bf4fa30756567c0526c04441dc54230f4ba83c195ee6f0a70758", + "typeString": "literal_string \"too many shares requested\"" + } + ], + "id": 8110, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "9709:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8115, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9709:77:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8116, + "nodeType": "ExpressionStatement", + "src": "9709:77:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 8122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8118, + "name": "applicant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8089, + "src": "9970:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 8120, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9991:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 8119, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9983:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 8121, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9983:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "9970:23:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6170706c6963616e742063616e6e6f742062652030", + "id": 8123, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9995:23:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9ab093dd894be784ee3143d9792a50bf0275e1dda1505d8ede42bc26455cf276", + "typeString": "literal_string \"applicant cannot be 0\"" + }, + "value": "applicant cannot be 0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9ab093dd894be784ee3143d9792a50bf0275e1dda1505d8ede42bc26455cf276", + "typeString": "literal_string \"applicant cannot be 0\"" + } + ], + "id": 8117, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "9962:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9962:57:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8125, + "nodeType": "ExpressionStatement", + "src": "9962:57:15" + }, + { + "assignments": [ + 8130 + ], + "declarations": [ + { + "constant": false, + "id": 8130, + "name": "flags", + "nodeType": "VariableDeclaration", + "scope": 8148, + "src": "10359:20:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6]" + }, + "typeName": { + "baseType": { + "id": 8128, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10359:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8129, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 8127, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10364:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "10359:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", + "typeString": "bool[6]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8131, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "10359:20:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8133, + "name": "applicant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8089, + "src": "10476:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8134, + "name": "sharesRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8091, + "src": "10487:15:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8135, + "name": "lootRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8093, + "src": "10504:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8136, + "name": "tributeOffered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8095, + "src": "10519:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8137, + "name": "tributeToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8097, + "src": "10535:12:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8138, + "name": "paymentRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8099, + "src": "10549:16:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8139, + "name": "paymentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8101, + "src": "10567:12:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8140, + "name": "details", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8103, + "src": "10581:7:15", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 8141, + "name": "flags", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8130, + "src": "10590:5:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6] memory" + } + ], + "id": 8132, + "name": "_submitProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8231, + "src": "10460:15:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_array$_t_bool_$6_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,address,uint256,address,string memory,bool[6] memory)" + } + }, + "id": 8142, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10460:136:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8143, + "nodeType": "ExpressionStatement", + "src": "10460:136:15" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8144, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7783, + "src": "10614:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 8145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10630:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "10614:17:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8109, + "id": 8147, + "nodeType": "Return", + "src": "10607:24:15" + } + ] + }, + "documentation": "***************\r\nPROPOSAL FUNCTIONS\r****************", + "id": 8149, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 8106, + "modifierName": { + "argumentTypes": null, + "id": 8105, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9748, + "src": "9656:12:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "9656:12:15" + } + ], + "name": "submitProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8104, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8089, + "name": "applicant", + "nodeType": "VariableDeclaration", + "scope": 8149, + "src": "9396:17:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8088, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9396:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8091, + "name": "sharesRequested", + "nodeType": "VariableDeclaration", + "scope": 8149, + "src": "9424:23:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8090, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9424:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8093, + "name": "lootRequested", + "nodeType": "VariableDeclaration", + "scope": 8149, + "src": "9458:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8092, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9458:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8095, + "name": "tributeOffered", + "nodeType": "VariableDeclaration", + "scope": 8149, + "src": "9490:22:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8094, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9490:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8097, + "name": "tributeToken", + "nodeType": "VariableDeclaration", + "scope": 8149, + "src": "9523:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8096, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9523:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8099, + "name": "paymentRequested", + "nodeType": "VariableDeclaration", + "scope": 8149, + "src": "9554:24:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8098, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9554:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8101, + "name": "paymentToken", + "nodeType": "VariableDeclaration", + "scope": 8149, + "src": "9589:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8100, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9589:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8103, + "name": "details", + "nodeType": "VariableDeclaration", + "scope": 8149, + "src": "9620:21:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 8102, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "9620:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9385:263:15" + }, + "returnParameters": { + "id": 8109, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8108, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 8149, + "src": "9678:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8107, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9678:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9677:20:15" + }, + "scope": 9115, + "src": "9362:1339:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 8230, + "nodeType": "Block", + "src": "12407:984:15", + "statements": [ + { + "assignments": [ + 8173 + ], + "declarations": [ + { + "constant": false, + "id": 8173, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 8230, + "src": "12418:24:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", + "typeString": "struct Moloch.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 8172, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7842, + "src": "12418:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8198, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8175, + "name": "applicant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8151, + "src": "12481:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8176, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "12516:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "12516:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 8179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12559:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 8178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "12551:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 8180, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12551:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 8181, + "name": "sharesRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8153, + "src": "12594:15:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8182, + "name": "lootRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8155, + "src": "12640:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8183, + "name": "tributeOffered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8157, + "src": "12685:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8185, + "name": "tributeToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8159, + "src": "12736:12:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8184, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9719, + "src": "12729:6:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 8186, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12729:20:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + { + "argumentTypes": null, + "id": 8187, + "name": "paymentRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8161, + "src": "12783:16:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8189, + "name": "paymentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8163, + "src": "12836:12:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8188, + "name": "IERC20", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9719, + "src": "12829:6:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", + "typeString": "type(contract IERC20)" + } + }, + "id": 8190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12829:20:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 8191, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12881:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 8192, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12908:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 8193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12934:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "argumentTypes": null, + "id": 8194, + "name": "flags", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8169, + "src": "12958:5:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6] memory" + } + }, + { + "argumentTypes": null, + "id": 8195, + "name": "details", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8165, + "src": "12988:7:15", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 8196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13043:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 8174, + "name": "Proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7842, + "src": "12445:8:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Proposal_$7842_storage_ptr_$", + "typeString": "type(struct Moloch.Proposal storage pointer)" + } + }, + "id": 8197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "applicant", + "proposer", + "sponsor", + "sharesRequested", + "lootRequested", + "tributeOffered", + "tributeToken", + "paymentRequested", + "paymentToken", + "startingPeriod", + "yesVotes", + "noVotes", + "flags", + "details", + "maxTotalSharesAndLootAtYesVote" + ], + "nodeType": "FunctionCall", + "src": "12445:611:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_memory", + "typeString": "struct Moloch.Proposal memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12418:638:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8199, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "13069:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" + } + }, + "id": 8201, + "indexExpression": { + "argumentTypes": null, + "id": 8200, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7783, + "src": "13079:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "13069:24:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8202, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8173, + "src": "13096:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", + "typeString": "struct Moloch.Proposal memory" + } + }, + "src": "13069:35:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "id": 8204, + "nodeType": "ExpressionStatement", + "src": "13069:35:15" + }, + { + "assignments": [ + 8206 + ], + "declarations": [ + { + "constant": false, + "id": 8206, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 8230, + "src": "13115:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8205, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13115:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8211, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8207, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7853, + "src": "13139:26:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 8210, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8208, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "13166:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8209, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13166:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13139:38:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13115:62:15" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8213, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7783, + "src": "13208:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8214, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "13223:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13223:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 8216, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8206, + "src": "13235:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8217, + "name": "applicant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8151, + "src": "13250:9:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8218, + "name": "sharesRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8153, + "src": "13261:15:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8219, + "name": "lootRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8155, + "src": "13278:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8220, + "name": "tributeOffered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8157, + "src": "13293:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8221, + "name": "tributeToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8159, + "src": "13309:12:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8222, + "name": "paymentRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8161, + "src": "13323:16:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8223, + "name": "paymentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8163, + "src": "13341:12:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 8212, + "name": "SubmitProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7724, + "src": "13193:14:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (uint256,address,address,address,uint256,uint256,uint256,address,uint256,address)" + } + }, + "id": 8224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13193:161:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8225, + "nodeType": "EmitStatement", + "src": "13188:166:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8226, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7783, + "src": "13365:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 8227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13382:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "13365:18:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8229, + "nodeType": "ExpressionStatement", + "src": "13365:18:15" + } + ] + }, + "documentation": null, + "id": 8231, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_submitProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8170, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8151, + "name": "applicant", + "nodeType": "VariableDeclaration", + "scope": 8231, + "src": "12114:17:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8150, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12114:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8153, + "name": "sharesRequested", + "nodeType": "VariableDeclaration", + "scope": 8231, + "src": "12142:23:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8152, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12142:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8155, + "name": "lootRequested", + "nodeType": "VariableDeclaration", + "scope": 8231, + "src": "12176:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8154, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12176:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8157, + "name": "tributeOffered", + "nodeType": "VariableDeclaration", + "scope": 8231, + "src": "12208:22:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8156, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12208:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8159, + "name": "tributeToken", + "nodeType": "VariableDeclaration", + "scope": 8231, + "src": "12241:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12241:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8161, + "name": "paymentRequested", + "nodeType": "VariableDeclaration", + "scope": 8231, + "src": "12272:24:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8160, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12272:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8163, + "name": "paymentToken", + "nodeType": "VariableDeclaration", + "scope": 8231, + "src": "12307:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8162, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12307:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8165, + "name": "details", + "nodeType": "VariableDeclaration", + "scope": 8231, + "src": "12338:21:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 8164, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "12338:6:15", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8169, + "name": "flags", + "nodeType": "VariableDeclaration", + "scope": 8231, + "src": "12370:20:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6]" + }, + "typeName": { + "baseType": { + "id": 8166, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12370:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8168, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 8167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12375:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "12370:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", + "typeString": "bool[6]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12103:294:15" + }, + "returnParameters": { + "id": 8171, + "nodeType": "ParameterList", + "parameters": [], + "src": "12407:0:15" + }, + "scope": 9115, + "src": "12079:1312:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 8346, + "nodeType": "Block", + "src": "13477:1932:15", + "statements": [ + { + "assignments": [ + 8241 + ], + "declarations": [ + { + "constant": false, + "id": 8241, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 8346, + "src": "13732:25:15", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 8240, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7842, + "src": "13732:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8245, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8242, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "13760:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" + } + }, + "id": 8244, + "indexExpression": { + "argumentTypes": null, + "id": 8243, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8233, + "src": "13770:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13760:21:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13732:49:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 8252, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8247, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8241, + "src": "13802:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8248, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "proposer", + "nodeType": "MemberAccess", + "referencedDeclaration": 7809, + "src": "13802:17:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 8250, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13831:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 8249, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13823:7:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 8251, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13823:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13802:31:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c206d7573742068617665206265656e2070726f706f736564", + "id": 8253, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13835:34:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ac8dac03073454fa1d404b87251ebaea89a776f599ae35927c3fdc86124e6933", + "typeString": "literal_string \"proposal must have been proposed\"" + }, + "value": "proposal must have been proposed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ac8dac03073454fa1d404b87251ebaea89a776f599ae35927c3fdc86124e6933", + "typeString": "literal_string \"proposal must have been proposed\"" + } + ], + "id": 8246, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "13794:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13794:76:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8255, + "nodeType": "ExpressionStatement", + "src": "13794:76:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "13889:18:15", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8257, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8241, + "src": "13890:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8258, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 7833, + "src": "13890:14:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 8260, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8259, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13905:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13890:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c2068617320616c7265616479206265656e2073706f6e736f726564", + "id": 8262, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13909:37:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8ce373ba28507085e66e9df24290b9ef61d72fa05638e1221982de773985e387", + "typeString": "literal_string \"proposal has already been sponsored\"" + }, + "value": "proposal has already been sponsored" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8ce373ba28507085e66e9df24290b9ef61d72fa05638e1221982de773985e387", + "typeString": "literal_string \"proposal has already been sponsored\"" + } + ], + "id": 8256, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "13881:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13881:66:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8264, + "nodeType": "ExpressionStatement", + "src": "13881:66:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8270, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "13966:18:15", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8266, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8241, + "src": "13967:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8267, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 7833, + "src": "13967:14:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 8269, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 8268, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13982:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13967:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c20686173206265656e2063616e63656c6c6564", + "id": 8271, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13986:29:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_310ff3a9ce641706ee5130d4a11d082239c2f517d2fdbc264a36cda8e36c8cbd", + "typeString": "literal_string \"proposal has been cancelled\"" + }, + "value": "proposal has been cancelled" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_310ff3a9ce641706ee5130d4a11d082239c2f517d2fdbc264a36cda8e36c8cbd", + "typeString": "literal_string \"proposal has been cancelled\"" + } + ], + "id": 8265, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "13958:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13958:58:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8273, + "nodeType": "ExpressionStatement", + "src": "13958:58:15" + }, + { + "assignments": [ + 8275 + ], + "declarations": [ + { + "constant": false, + "id": 8275, + "name": "startingPeriod", + "nodeType": "VariableDeclaration", + "scope": 8346, + "src": "14800:22:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8274, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14800:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8299, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 8297, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14992:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 8277, + "name": "getCurrentPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9014, + "src": "14843:16:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 8278, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14843:18:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8279, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "14876:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 8280, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14876:20:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8281, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14900:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14876:25:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8284, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "14908:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" + } + }, + "id": 8292, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8285, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "14918:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 8291, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 8289, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14957:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8286, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "14932:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 8287, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14932:20:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8288, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "14932:24:15", + "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": 8290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14932:27:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14918:42:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14908:53:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "id": 8293, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "startingPeriod", + "nodeType": "MemberAccess", + "referencedDeclaration": 7825, + "src": "14908:68:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "14876:100:15", + "trueExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8283, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14904:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8276, + "name": "max", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9000, + "src": "14825:3:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 8295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14825:162:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "14825:166:15", + "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": 8298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14825:169:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14800:194:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8300, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8241, + "src": "15007:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8302, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "startingPeriod", + "nodeType": "MemberAccess", + "referencedDeclaration": 7825, + "src": "15007:23:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8303, + "name": "startingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8275, + "src": "15033:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15007:40:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8305, + "nodeType": "ExpressionStatement", + "src": "15007:40:15" + }, + { + "assignments": [ + 8307 + ], + "declarations": [ + { + "constant": false, + "id": 8307, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 8346, + "src": "15060:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8306, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15060:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8312, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8308, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7853, + "src": "15084:26:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 8311, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8309, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "15111:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15111:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15084:38:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15060:62:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8313, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8241, + "src": "15133:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8315, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "sponsor", + "nodeType": "MemberAccess", + "referencedDeclaration": 7811, + "src": "15133:16:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8316, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8307, + "src": "15152:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15133:32:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 8318, + "nodeType": "ExpressionStatement", + "src": "15133:32:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8319, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8241, + "src": "15178:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8322, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 7833, + "src": "15178:14:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 8323, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8321, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15193:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "15178:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 8324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15198:4:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "15178:24:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8326, + "nodeType": "ExpressionStatement", + "src": "15178:24:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8330, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8233, + "src": "15275:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8327, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "15256:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 8329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15256:18:15", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) returns (uint256)" + } + }, + "id": 8331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15256:30:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8332, + "nodeType": "ExpressionStatement", + "src": "15256:30:15" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8334, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "15318:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15318:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 8336, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8307, + "src": "15330:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8337, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8233, + "src": "15345:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 8341, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15382:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8338, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "15357:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 8339, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15357:20:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "15357:24:15", + "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": 8342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15357:27:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8343, + "name": "startingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8275, + "src": "15386:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8333, + "name": "SponsorProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7736, + "src": "15302:15:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256,uint256)" + } + }, + "id": 8344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15302:99:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8345, + "nodeType": "EmitStatement", + "src": "15297:104:15" + } + ] + }, + "documentation": null, + "id": 8347, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 8236, + "modifierName": { + "argumentTypes": null, + "id": 8235, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9748, + "src": "13451:12:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "13451:12:15" + }, + { + "arguments": null, + "id": 8238, + "modifierName": { + "argumentTypes": null, + "id": 8237, + "name": "onlyDelegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7907, + "src": "13464:12:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "13464:12:15" + } + ], + "name": "sponsorProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8233, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 8347, + "src": "13424:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8232, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13424:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13423:20:15" + }, + "returnParameters": { + "id": 8239, + "nodeType": "ParameterList", + "parameters": [], + "src": "13477:0:15" + }, + "scope": 9115, + "src": "13399:2010:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 8354, + "nodeType": "Block", + "src": "15468:39:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8352, + "name": "proposalCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7783, + "src": "15486:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8351, + "id": 8353, + "nodeType": "Return", + "src": "15479:20:15" + } + ] + }, + "documentation": null, + "id": 8355, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8348, + "nodeType": "ParameterList", + "parameters": [], + "src": "15436:2:15" + }, + "returnParameters": { + "id": 8351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8350, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8355, + "src": "15460:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8349, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15460:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15459:9:15" + }, + "scope": 9115, + "src": "15415:92:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 8503, + "nodeType": "Block", + "src": "15613:1701:15", + "statements": [ + { + "assignments": [ + 8367 + ], + "declarations": [ + { + "constant": false, + "id": 8367, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 8503, + "src": "15624:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15624:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8372, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8368, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7853, + "src": "15648:26:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 8371, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8369, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "15675:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8370, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15675:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15648:38:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15624:62:15" + }, + { + "assignments": [ + 8374 + ], + "declarations": [ + { + "constant": false, + "id": 8374, + "name": "member", + "nodeType": "VariableDeclaration", + "scope": 8503, + "src": "15697:21:15", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member" + }, + "typeName": { + "contractScope": null, + "id": 8373, + "name": "Member", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7805, + "src": "15697:6:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8378, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8375, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "15721:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 8377, + "indexExpression": { + "argumentTypes": null, + "id": 8376, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8367, + "src": "15729:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15721:22:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15697:46:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8380, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8357, + "src": "15764:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8381, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "15780:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 8382, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15780:20:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15764:36:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", + "id": 8384, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15802:25:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + }, + "value": "proposal does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + } + ], + "id": 8379, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "15756:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8385, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15756:72:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8386, + "nodeType": "ExpressionStatement", + "src": "15756:72:15" + }, + { + "assignments": [ + 8388 + ], + "declarations": [ + { + "constant": false, + "id": 8388, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 8503, + "src": "15839:25:15", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 8387, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7842, + "src": "15839:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8394, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8389, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "15867:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" + } + }, + "id": 8393, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8390, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "15877:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 8392, + "indexExpression": { + "argumentTypes": null, + "id": 8391, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8357, + "src": "15891:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15877:28:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15867:39:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15839:67:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 8398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8396, + "name": "uintVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8359, + "src": "15927:8:15", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 8397, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15938:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "15927:12:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6d757374206265206c657373207468616e2033", + "id": 8399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15941:21:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_707c6bf11f318d88bf3ce18a41621954ec264b68d584313fba9bb644a8e76020", + "typeString": "literal_string \"must be less than 3\"" + }, + "value": "must be less than 3" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_707c6bf11f318d88bf3ce18a41621954ec264b68d584313fba9bb644a8e76020", + "typeString": "literal_string \"must be less than 3\"" + } + ], + "id": 8395, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "15919:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15919:44:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8401, + "nodeType": "ExpressionStatement", + "src": "15919:44:15" + }, + { + "assignments": [ + 8403 + ], + "declarations": [ + { + "constant": false, + "id": 8403, + "name": "vote", + "nodeType": "VariableDeclaration", + "scope": 8503, + "src": "15974:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + }, + "typeName": { + "contractScope": null, + "id": 8402, + "name": "Vote", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7796, + "src": "15974:4:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8407, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8405, + "name": "uintVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8359, + "src": "15991:8:15", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 8404, + "name": "Vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7796, + "src": "15986:4:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Vote_$7796_$", + "typeString": "type(enum Moloch.Vote)" + } + }, + "id": 8406, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15986:14:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15974:26:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "16121:48:15", + "subExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8410, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8388, + "src": "16145:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8411, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "startingPeriod", + "nodeType": "MemberAccess", + "referencedDeclaration": 7825, + "src": "16145:23:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8409, + "name": "hasVotingPeriodExpired", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9079, + "src": "16122:22:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 8412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16122:47:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c20766f74696e6720706572696f64206861732065787069726564", + "id": 8414, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16171:36:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c0ba1a8fcc742113774789a424c824e010e781c8d7353e4ab7ada35c65566c07", + "typeString": "literal_string \"proposal voting period has expired\"" + }, + "value": "proposal voting period has expired" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c0ba1a8fcc742113774789a424c824e010e781c8d7353e4ab7ada35c65566c07", + "typeString": "literal_string \"proposal voting period has expired\"" + } + ], + "id": 8408, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "16113:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16113:95:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8416, + "nodeType": "ExpressionStatement", + "src": "16113:95:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + }, + "id": 8424, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8418, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8388, + "src": "16227:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8419, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "votesByMember", + "nodeType": "MemberAccess", + "referencedDeclaration": 7841, + "src": "16227:22:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$7796_$", + "typeString": "mapping(address => enum Moloch.Vote)" + } + }, + "id": 8421, + "indexExpression": { + "argumentTypes": null, + "id": 8420, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8367, + "src": "16250:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16227:37:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8422, + "name": "Vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7796, + "src": "16268:4:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Vote_$7796_$", + "typeString": "type(enum Moloch.Vote)" + } + }, + "id": 8423, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Null", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16268:9:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "src": "16227:50:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6d656d6265722068617320616c726561647920766f746564", + "id": 8425, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16279:26:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7343d72c90cb341bd2f3ab7b007b6dc9c32e041eadcc4b701abd38deefeb2299", + "typeString": "literal_string \"member has already voted\"" + }, + "value": "member has already voted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7343d72c90cb341bd2f3ab7b007b6dc9c32e041eadcc4b701abd38deefeb2299", + "typeString": "literal_string \"member has already voted\"" + } + ], + "id": 8417, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "16219:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16219:87:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8427, + "nodeType": "ExpressionStatement", + "src": "16219:87:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 8437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + }, + "id": 8432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8429, + "name": "vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8403, + "src": "16325:4:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8430, + "name": "Vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7796, + "src": "16333:4:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Vote_$7796_$", + "typeString": "type(enum Moloch.Vote)" + } + }, + "id": 8431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Yes", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16333:8:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "src": "16325:16:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + }, + "id": 8436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8433, + "name": "vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8403, + "src": "16345:4:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8434, + "name": "Vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7796, + "src": "16353:4:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Vote_$7796_$", + "typeString": "type(enum Moloch.Vote)" + } + }, + "id": 8435, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "No", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16353:7:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "src": "16345:15:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "16325:35:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "766f7465206d7573742062652065697468657220596573206f72204e6f", + "id": 8438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16362:31:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cdbdf7342fd7207f7fe59a7f11b342501ce75d0d11dd200fffb4af998c12a928", + "typeString": "literal_string \"vote must be either Yes or No\"" + }, + "value": "vote must be either Yes or No" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cdbdf7342fd7207f7fe59a7f11b342501ce75d0d11dd200fffb4af998c12a928", + "typeString": "literal_string \"vote must be either Yes or No\"" + } + ], + "id": 8428, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "16317:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16317:77:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8440, + "nodeType": "ExpressionStatement", + "src": "16317:77:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8447, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8441, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8388, + "src": "16407:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8444, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "votesByMember", + "nodeType": "MemberAccess", + "referencedDeclaration": 7841, + "src": "16407:22:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$7796_$", + "typeString": "mapping(address => enum Moloch.Vote)" + } + }, + "id": 8445, + "indexExpression": { + "argumentTypes": null, + "id": 8443, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8367, + "src": "16430:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "16407:37:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8446, + "name": "vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8403, + "src": "16447:4:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "src": "16407:44:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "id": 8448, + "nodeType": "ExpressionStatement", + "src": "16407:44:15" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + }, + "id": 8452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8449, + "name": "vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8403, + "src": "16468:4:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8450, + "name": "Vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7796, + "src": "16476:4:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Vote_$7796_$", + "typeString": "type(enum Moloch.Vote)" + } + }, + "id": 8451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "Yes", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16476:8:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "src": "16468:16:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + }, + "id": 8480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8477, + "name": "vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8403, + "src": "17129:4:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8478, + "name": "Vote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7796, + "src": "17137:4:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_Vote_$7796_$", + "typeString": "type(enum Moloch.Vote)" + } + }, + "id": 8479, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "No", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "17137:7:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "src": "17129:15:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8493, + "nodeType": "IfStatement", + "src": "17125:102:15", + "trueBody": { + "id": 8492, + "nodeType": "Block", + "src": "17146:81:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8481, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8388, + "src": "17161:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8483, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "noVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 7829, + "src": "17161:16:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8487, + "name": "member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8374, + "src": "17201:6:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member storage pointer" + } + }, + "id": 8488, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 7800, + "src": "17201:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8484, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8388, + "src": "17180:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8485, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "noVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 7829, + "src": "17180:16:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "17180:20:15", + "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": 8489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17180:35:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17161:54:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8491, + "nodeType": "ExpressionStatement", + "src": "17161:54:15" + } + ] + } + }, + "id": 8494, + "nodeType": "IfStatement", + "src": "16464:763:15", + "trueBody": { + "id": 8476, + "nodeType": "Block", + "src": "16486:633:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8453, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8388, + "src": "16501:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8455, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "yesVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 7827, + "src": "16501:17:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8459, + "name": "member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8374, + "src": "16543:6:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member storage pointer" + } + }, + "id": 8460, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 7800, + "src": "16543:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8456, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8388, + "src": "16521:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8457, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "yesVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 7827, + "src": "16521:17:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "16521:21:15", + "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": 8461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16521:36:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16501:56:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8463, + "nodeType": "ExpressionStatement", + "src": "16501:56:15" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8464, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8357, + "src": "16673:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8465, + "name": "member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8374, + "src": "16689:6:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member storage pointer" + } + }, + "id": 8466, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "highestIndexYesVote", + "nodeType": "MemberAccess", + "referencedDeclaration": 7804, + "src": "16689:26:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16673:42:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8475, + "nodeType": "IfStatement", + "src": "16669:125:15", + "trueBody": { + "id": 8474, + "nodeType": "Block", + "src": "16717:77:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8468, + "name": "member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8374, + "src": "16736:6:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member storage pointer" + } + }, + "id": 8470, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "highestIndexYesVote", + "nodeType": "MemberAccess", + "referencedDeclaration": 7804, + "src": "16736:26:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8471, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8357, + "src": "16765:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16736:42:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8473, + "nodeType": "ExpressionStatement", + "src": "16736:42:15" + } + ] + } + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8496, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8357, + "src": "17255:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8497, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "17270:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8498, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "17270:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 8499, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8367, + "src": "17282:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8500, + "name": "uintVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8359, + "src": "17297:8:15", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 8495, + "name": "SubmitVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7746, + "src": "17244:10:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint8_$returns$__$", + "typeString": "function (uint256,address,address,uint8)" + } + }, + "id": 8501, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17244:62:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8502, + "nodeType": "EmitStatement", + "src": "17239:67:15" + } + ] + }, + "documentation": null, + "id": 8504, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 8362, + "modifierName": { + "argumentTypes": null, + "id": 8361, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9748, + "src": "15587:12:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15587:12:15" + }, + { + "arguments": null, + "id": 8364, + "modifierName": { + "argumentTypes": null, + "id": 8363, + "name": "onlyDelegate", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7907, + "src": "15600:12:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15600:12:15" + } + ], + "name": "submitVote", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8360, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8357, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 8504, + "src": "15541:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8356, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15541:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8359, + "name": "uintVote", + "nodeType": "VariableDeclaration", + "scope": 8504, + "src": "15564:14:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8358, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "15564:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15540:39:15" + }, + "returnParameters": { + "id": 8365, + "nodeType": "ParameterList", + "parameters": [], + "src": "15613:0:15" + }, + "scope": 9115, + "src": "15521:1793:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "constant": false, + "id": 8506, + "name": "result", + "nodeType": "VariableDeclaration", + "scope": 9115, + "src": "17320:21:15", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8505, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17320:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 8513, + "nodeType": "Block", + "src": "17399:63:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8511, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8506, + "src": "17417:6:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8510, + "id": 8512, + "nodeType": "Return", + "src": "17410:13:15" + } + ] + }, + "documentation": null, + "id": 8514, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getResult", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8507, + "nodeType": "ParameterList", + "parameters": [], + "src": "17367:2:15" + }, + "returnParameters": { + "id": 8510, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8509, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 8514, + "src": "17391:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8508, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17391:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17390:9:15" + }, + "scope": 9115, + "src": "17348:114:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 8679, + "nodeType": "Block", + "src": "17538:3482:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8522, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8516, + "src": "17580:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8521, + "name": "_validateProposalForProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8765, + "src": "17549:30:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", + "typeString": "function (uint256) view" + } + }, + "id": 8523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17549:45:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8524, + "nodeType": "ExpressionStatement", + "src": "17549:45:15" + }, + { + "assignments": [ + 8526 + ], + "declarations": [ + { + "constant": false, + "id": 8526, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 8679, + "src": "17607:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8525, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17607:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8530, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8527, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "17628:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 8529, + "indexExpression": { + "argumentTypes": null, + "id": 8528, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8516, + "src": "17642:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17628:28:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17607:49:15" + }, + { + "assignments": [ + 8532 + ], + "declarations": [ + { + "constant": false, + "id": 8532, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 8679, + "src": "17667:25:15", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 8531, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7842, + "src": "17667:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8536, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8533, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "17695:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" + } + }, + "id": 8535, + "indexExpression": { + "argumentTypes": null, + "id": 8534, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8526, + "src": "17705:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17695:21:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17667:49:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8543, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8537, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "17824:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8540, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 7833, + "src": "17824:14:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 8541, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 8539, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17839:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17824:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 8542, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17844:4:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "17824:24:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8544, + "nodeType": "ExpressionStatement", + "src": "17824:24:15" + }, + { + "assignments": [ + 8546, + 8548 + ], + "declarations": [ + { + "constant": false, + "id": 8546, + "name": "didPass", + "nodeType": "VariableDeclaration", + "scope": 8679, + "src": "17875:12:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8545, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17875:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8548, + "name": "emergencyProcessing", + "nodeType": "VariableDeclaration", + "scope": 8679, + "src": "17889:24:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8547, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "17889:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8552, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8550, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8516, + "src": "17926:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8549, + "name": "_didPass", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8714, + "src": "17917:8:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$_t_bool_$_t_bool_$", + "typeString": "function (uint256) returns (bool,bool)" + } + }, + "id": 8551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17917:23:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", + "typeString": "tuple(bool,bool)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "17874:66:15" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8555, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "18069:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8556, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sharesRequested", + "nodeType": "MemberAccess", + "referencedDeclaration": 7813, + "src": "18069:24:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8553, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7786, + "src": "18053:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "18053:15:15", + "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": 8557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18053:41:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "id": 8558, + "name": "MAX_NUMBER_OF_SHARES", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7702, + "src": "18097:20:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18053:64:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8565, + "nodeType": "IfStatement", + "src": "18049:112:15", + "trueBody": { + "id": 8564, + "nodeType": "Block", + "src": "18119:42:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8560, + "name": "didPass", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8546, + "src": "18134:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 8561, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18144:5:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "18134:15:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8563, + "nodeType": "ExpressionStatement", + "src": "18134:15:15" + } + ] + } + }, + { + "condition": { + "argumentTypes": null, + "id": 8566, + "name": "didPass", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8546, + "src": "18531:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 8671, + "nodeType": "Block", + "src": "20511:386:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8665, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8663, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8506, + "src": "20526:6:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "32", + "id": 8664, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20533:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "src": "20526:8:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8666, + "nodeType": "ExpressionStatement", + "src": "20526:8:15" + }, + { + "condition": { + "argumentTypes": null, + "id": 8668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "20635:20:15", + "subExpression": { + "argumentTypes": null, + "id": 8667, + "name": "emergencyProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8548, + "src": "20636:19:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8670, + "nodeType": "IfStatement", + "src": "20631:255:15", + "trueBody": { + "id": 8669, + "nodeType": "Block", + "src": "20657:229:15", + "statements": [] + } + } + ] + }, + "id": 8672, + "nodeType": "IfStatement", + "src": "18527:2370:15", + "trueBody": { + "id": 8662, + "nodeType": "Block", + "src": "18540:1965:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8567, + "name": "result", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8506, + "src": "18555:6:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "31", + "id": 8568, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18562:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "18555:8:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8570, + "nodeType": "ExpressionStatement", + "src": "18555:8:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8577, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8571, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "18578:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8574, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 7833, + "src": "18578:14:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 8575, + "indexExpression": { + "argumentTypes": null, + "hexValue": "32", + "id": 8573, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18593:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18578:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 8576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18598:4:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "18578:24:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8578, + "nodeType": "ExpressionStatement", + "src": "18578:24:15" + }, + { + "condition": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8579, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "18724:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 8582, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8580, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "18732:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8581, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 7807, + "src": "18732:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18724:27:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "id": 8583, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exists", + "nodeType": "MemberAccess", + "referencedDeclaration": 7802, + "src": "18724:34:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 8652, + "nodeType": "Block", + "src": "19096:771:15", + "statements": [ + { + "condition": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8601, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "19241:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 8606, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8602, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7853, + "src": "19249:26:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 8605, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8603, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "19276:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 7807, + "src": "19276:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19249:46:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19241:55:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "id": 8607, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exists", + "nodeType": "MemberAccess", + "referencedDeclaration": 7802, + "src": "19241:62:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8629, + "nodeType": "IfStatement", + "src": "19237:349:15", + "trueBody": { + "id": 8628, + "nodeType": "Block", + "src": "19305:281:15", + "statements": [ + { + "assignments": [ + 8609 + ], + "declarations": [ + { + "constant": false, + "id": 8609, + "name": "memberToOverride", + "nodeType": "VariableDeclaration", + "scope": 8628, + "src": "19328:24:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8608, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19328:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8614, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8610, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7853, + "src": "19355:26:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 8613, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8611, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "19382:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8612, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 7807, + "src": "19382:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19355:46:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "19328:73:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8615, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7853, + "src": "19424:26:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 8617, + "indexExpression": { + "argumentTypes": null, + "id": 8616, + "name": "memberToOverride", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8609, + "src": "19451:16:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "19424:44:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8618, + "name": "memberToOverride", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8609, + "src": "19471:16:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19424:63:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 8620, + "nodeType": "ExpressionStatement", + "src": "19424:63:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8626, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8621, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "19510:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 8623, + "indexExpression": { + "argumentTypes": null, + "id": 8622, + "name": "memberToOverride", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8609, + "src": "19518:16:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19510:25:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "id": 8624, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "delegateKey", + "nodeType": "MemberAccess", + "referencedDeclaration": 7798, + "src": "19510:37:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 8625, + "name": "memberToOverride", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8609, + "src": "19550:16:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19510:56:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 8627, + "nodeType": "ExpressionStatement", + "src": "19510:56:15" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 8642, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8630, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "19674:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 8633, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8631, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "19682:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 7807, + "src": "19682:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "19674:27:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8635, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "19711:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8636, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 7807, + "src": "19711:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8637, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "19731:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8638, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sharesRequested", + "nodeType": "MemberAccess", + "referencedDeclaration": 7813, + "src": "19731:24:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "74727565", + "id": 8639, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19757:4:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "argumentTypes": null, + "hexValue": "30", + "id": 8640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19763:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 8634, + "name": "Member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7805, + "src": "19704:6:15", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Member_$7805_storage_ptr_$", + "typeString": "type(struct Moloch.Member storage pointer)" + } + }, + "id": 8641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19704:61:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_memory", + "typeString": "struct Moloch.Member memory" + } + }, + "src": "19674:91:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "id": 8643, + "nodeType": "ExpressionStatement", + "src": "19674:91:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8644, + "name": "memberAddressByDelegateKey", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7853, + "src": "19784:26:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_address_$", + "typeString": "mapping(address => address)" + } + }, + "id": 8647, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8645, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "19811:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8646, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 7807, + "src": "19811:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "19784:46:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8648, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "19833:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8649, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 7807, + "src": "19833:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "19784:67:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 8651, + "nodeType": "ExpressionStatement", + "src": "19784:67:15" + } + ] + }, + "id": 8653, + "nodeType": "IfStatement", + "src": "18720:1147:15", + "trueBody": { + "id": 8600, + "nodeType": "Block", + "src": "18760:330:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 8598, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8584, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "18779:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 8587, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8585, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "18787:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8586, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 7807, + "src": "18787:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18779:27:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "id": 8588, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 7800, + "src": "18779:34:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8595, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "18855:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8596, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sharesRequested", + "nodeType": "MemberAccess", + "referencedDeclaration": 7813, + "src": "18855:24:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8589, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "18816:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 8592, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8590, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "18824:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8591, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "applicant", + "nodeType": "MemberAccess", + "referencedDeclaration": 7807, + "src": "18824:18:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18816:27:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "id": 8593, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 7800, + "src": "18816:34:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "18816:38:15", + "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": 8597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18816:64:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18779:101:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8599, + "nodeType": "ExpressionStatement", + "src": "18779:101:15" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 8660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8654, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7786, + "src": "19922:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8657, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8532, + "src": "19952:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8658, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "sharesRequested", + "nodeType": "MemberAccess", + "referencedDeclaration": 7813, + "src": "19952:24:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8655, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7786, + "src": "19936:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "19936:15:15", + "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": 8659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19936:41:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "19922:55:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8661, + "nodeType": "ExpressionStatement", + "src": "19922:55:15" + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8674, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8516, + "src": "20977:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8675, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8526, + "src": "20992:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8676, + "name": "didPass", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8546, + "src": "21004:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 8673, + "name": "ProcessProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7754, + "src": "20961:15:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_bool_$returns$__$", + "typeString": "function (uint256,uint256,bool)" + } + }, + "id": 8677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20961:51:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8678, + "nodeType": "EmitStatement", + "src": "20956:56:15" + } + ] + }, + "documentation": null, + "id": 8680, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 8519, + "modifierName": { + "argumentTypes": null, + "id": 8518, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9748, + "src": "17525:12:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "17525:12:15" + } + ], + "name": "processProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8517, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8516, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 8680, + "src": "17495:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8515, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17495:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17494:23:15" + }, + "returnParameters": { + "id": 8520, + "nodeType": "ParameterList", + "parameters": [], + "src": "17538:0:15" + }, + "scope": 9115, + "src": "17470:3550:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 8713, + "nodeType": "Block", + "src": "23165:1739:15", + "statements": [ + { + "assignments": [ + 8690 + ], + "declarations": [ + { + "constant": false, + "id": 8690, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 8713, + "src": "23176:24:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", + "typeString": "struct Moloch.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 8689, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7842, + "src": "23176:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8696, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8691, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "23203:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" + } + }, + "id": 8695, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8692, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "23213:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 8694, + "indexExpression": { + "argumentTypes": null, + "id": 8693, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8682, + "src": "23227:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "23213:28:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "23203:39:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23176:66:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8697, + "name": "didPass", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "23255:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8698, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8690, + "src": "23265:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", + "typeString": "struct Moloch.Proposal memory" + } + }, + "id": 8699, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "yesVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 7827, + "src": "23265:17:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8700, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8690, + "src": "23285:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", + "typeString": "struct Moloch.Proposal memory" + } + }, + "id": 8701, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "noVotes", + "nodeType": "MemberAccess", + "referencedDeclaration": 7829, + "src": "23285:16:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "23265:36:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "23255:46:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8704, + "nodeType": "ExpressionStatement", + "src": "23255:46:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8705, + "name": "emergencyProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8687, + "src": "23417:19:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 8706, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23439:5:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "23417:27:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8708, + "nodeType": "ExpressionStatement", + "src": "23417:27:15" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 8709, + "name": "didPass", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8685, + "src": "24867:7:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "id": 8710, + "name": "emergencyProcessing", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8687, + "src": "24876:19:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 8711, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "24866:30:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", + "typeString": "tuple(bool,bool)" + } + }, + "functionReturnParameters": 8688, + "id": 8712, + "nodeType": "Return", + "src": "24859:37:15" + } + ] + }, + "documentation": null, + "id": 8714, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_didPass", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8683, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8682, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 8714, + "src": "23084:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8681, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "23084:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "23083:23:15" + }, + "returnParameters": { + "id": 8688, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8685, + "name": "didPass", + "nodeType": "VariableDeclaration", + "scope": 8714, + "src": "23125:12:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8684, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "23125:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8687, + "name": "emergencyProcessing", + "nodeType": "VariableDeclaration", + "scope": 8714, + "src": "23139:24:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 8686, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "23139:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "23124:40:15" + }, + "scope": 9115, + "src": "23066:1838:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 8764, + "nodeType": "Block", + "src": "24989:546:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8723, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8720, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8716, + "src": "25008:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8721, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "25024:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 8722, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "25024:20:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25008:36:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", + "id": 8724, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25046:25:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + }, + "value": "proposal does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + } + ], + "id": 8719, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "25000:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25000:72:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8726, + "nodeType": "ExpressionStatement", + "src": "25000:72:15" + }, + { + "assignments": [ + 8728 + ], + "declarations": [ + { + "constant": false, + "id": 8728, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 8764, + "src": "25083:24:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", + "typeString": "struct Moloch.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 8727, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7842, + "src": "25083:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8734, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8729, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "25110:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" + } + }, + "id": 8733, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8730, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "25120:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 8732, + "indexExpression": { + "argumentTypes": null, + "id": 8731, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8716, + "src": "25134:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25120:28:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25110:39:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "25083:66:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 8741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8736, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8728, + "src": "25325:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", + "typeString": "struct Moloch.Proposal memory" + } + }, + "id": 8737, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 7833, + "src": "25325:14:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_memory", + "typeString": "bool[6] memory" + } + }, + "id": 8739, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 8738, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25340:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25325:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 8740, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25346:5:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "25325:26:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c2068617320616c7265616479206265656e2070726f636573736564", + "id": 8742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25353:37:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f70ef3e0419e3b9f916dea28b6ea9e7ed2c6d066761e4c360c469298c30b58d3", + "typeString": "literal_string \"proposal has already been processed\"" + }, + "value": "proposal has already been processed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_f70ef3e0419e3b9f916dea28b6ea9e7ed2c6d066761e4c360c469298c30b58d3", + "typeString": "literal_string \"proposal has already been processed\"" + } + ], + "id": 8735, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "25317:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25317:74:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8744, + "nodeType": "ExpressionStatement", + "src": "25317:74:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 8760, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8746, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8716, + "src": "25410:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8747, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25427:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "25410:18:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8749, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "25432:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" + } + }, + "id": 8756, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8750, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "25442:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 8755, + "indexExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 8753, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25474:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "id": 8751, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8716, + "src": "25456:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "25456:17:15", + "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": 8754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25456:20:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25442:35:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25432:46:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "id": 8757, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 7833, + "src": "25432:52:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 8759, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 8758, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25485:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25432:55:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "25410:77:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726576696f75732070726f706f73616c206d7573742062652070726f636573736564", + "id": 8761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25489:37:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_38cd8535d1c8042024c6aab26e03143698df4f39cb508f25654837a140ff5918", + "typeString": "literal_string \"previous proposal must be processed\"" + }, + "value": "previous proposal must be processed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_38cd8535d1c8042024c6aab26e03143698df4f39cb508f25654837a140ff5918", + "typeString": "literal_string \"previous proposal must be processed\"" + } + ], + "id": 8745, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "25402:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25402:125:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8763, + "nodeType": "ExpressionStatement", + "src": "25402:125:15" + } + ] + }, + "documentation": null, + "id": 8765, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_validateProposalForProcessing", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8716, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 8765, + "src": "24952:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8715, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "24952:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "24951:23:15" + }, + "returnParameters": { + "id": 8718, + "nodeType": "ParameterList", + "parameters": [], + "src": "24989:0:15" + }, + "scope": 9115, + "src": "24912:623:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 8784, + "nodeType": "Block", + "src": "26063:82:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8777, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "26084:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "26084:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 8779, + "name": "sharesToBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8767, + "src": "26096:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8780, + "name": "lootToBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8769, + "src": "26110:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8781, + "name": "approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7845, + "src": "26122:14:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage", + "typeString": "contract IERC20[] storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage", + "typeString": "contract IERC20[] storage ref" + } + ], + "id": 8776, + "name": "_ragequit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8916, + "src": "26074:9:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,contract IERC20[] memory)" + } + }, + "id": 8782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "26074:63:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8783, + "nodeType": "ExpressionStatement", + "src": "26074:63:15" + } + ] + }, + "documentation": null, + "id": 8785, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 8772, + "modifierName": { + "argumentTypes": null, + "id": 8771, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9748, + "src": "26039:12:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "26039:12:15" + }, + { + "arguments": null, + "id": 8774, + "modifierName": { + "argumentTypes": null, + "id": 8773, + "name": "onlyMember", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7875, + "src": "26052:10:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "26052:10:15" + } + ], + "name": "ragequit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8770, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8767, + "name": "sharesToBurn", + "nodeType": "VariableDeclaration", + "scope": 8785, + "src": "25990:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8766, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "25990:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8769, + "name": "lootToBurn", + "nodeType": "VariableDeclaration", + "scope": 8785, + "src": "26012:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8768, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26012:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "25989:42:15" + }, + "returnParameters": { + "id": 8775, + "nodeType": "ParameterList", + "parameters": [], + "src": "26063:0:15" + }, + "scope": 9115, + "src": "25972:173:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 8838, + "nodeType": "Block", + "src": "26275:458:15", + "statements": [ + { + "body": { + "id": 8828, + "nodeType": "Block", + "src": "26397:258:15", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8810, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8800, + "src": "26510:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8811, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26514:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "26510:5:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 8827, + "nodeType": "IfStatement", + "src": "26506:138:15", + "trueBody": { + "id": 8826, + "nodeType": "Block", + "src": "26517:127:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + }, + "id": 8822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8814, + "name": "tokenList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8792, + "src": "26544:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[] memory" + } + }, + "id": 8816, + "indexExpression": { + "argumentTypes": null, + "id": 8815, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8800, + "src": "26554:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "26544:12:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8817, + "name": "tokenList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8792, + "src": "26559:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[] memory" + } + }, + "id": 8821, + "indexExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8818, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8800, + "src": "26569:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 8819, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26573:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "26569:5:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "26559:16:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "src": "26544:31:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "746f6b656e206c697374206d75737420626520756e6971756520616e6420696e20617363656e64696e67206f72646572", + "id": 8823, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26577:50:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9965e0bdde37a58094676a2cf75ae70d5454508294df76c3b2e2e525015b1b43", + "typeString": "literal_string \"token list must be unique and in ascending order\"" + }, + "value": "token list must be unique and in ascending order" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9965e0bdde37a58094676a2cf75ae70d5454508294df76c3b2e2e525015b1b43", + "typeString": "literal_string \"token list must be unique and in ascending order\"" + } + ], + "id": 8813, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "26536:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "26536:92:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8825, + "nodeType": "ExpressionStatement", + "src": "26536:92:15" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8806, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8803, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8800, + "src": "26370:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8804, + "name": "tokenList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8792, + "src": "26374:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[] memory" + } + }, + "id": 8805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "26374:16:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26370:20:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8829, + "initializationExpression": { + "assignments": [ + 8800 + ], + "declarations": [ + { + "constant": false, + "id": 8800, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 8829, + "src": "26357:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8799, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26357:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8802, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 8801, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26367:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "26357:11:15" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 8808, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "26392:3:15", + "subExpression": { + "argumentTypes": null, + "id": 8807, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8800, + "src": "26392:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8809, + "nodeType": "ExpressionStatement", + "src": "26392:3:15" + }, + "nodeType": "ForStatement", + "src": "26352:303:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8831, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "26677:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "26677:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 8833, + "name": "sharesToBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8787, + "src": "26689:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8834, + "name": "lootToBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8789, + "src": "26703:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8835, + "name": "tokenList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8792, + "src": "26715:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[] memory" + } + ], + "id": 8830, + "name": "_ragequit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8916, + "src": "26667:9:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,contract IERC20[] memory)" + } + }, + "id": 8836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "26667:58:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8837, + "nodeType": "ExpressionStatement", + "src": "26667:58:15" + } + ] + }, + "documentation": null, + "id": 8839, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 8795, + "modifierName": { + "argumentTypes": null, + "id": 8794, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9748, + "src": "26251:12:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "26251:12:15" + }, + { + "arguments": null, + "id": 8797, + "modifierName": { + "argumentTypes": null, + "id": 8796, + "name": "onlyMember", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7875, + "src": "26264:10:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "26264:10:15" + } + ], + "name": "safeRagequit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8793, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8787, + "name": "sharesToBurn", + "nodeType": "VariableDeclaration", + "scope": 8839, + "src": "26175:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8786, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26175:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8789, + "name": "lootToBurn", + "nodeType": "VariableDeclaration", + "scope": 8839, + "src": "26197:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26197:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8792, + "name": "tokenList", + "nodeType": "VariableDeclaration", + "scope": 8839, + "src": "26217:25:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 8790, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "26217:6:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 8791, + "length": null, + "nodeType": "ArrayTypeName", + "src": "26217:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage_ptr", + "typeString": "contract IERC20[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "26174:69:15" + }, + "returnParameters": { + "id": 8798, + "nodeType": "ParameterList", + "parameters": [], + "src": "26275:0:15" + }, + "scope": 9115, + "src": "26153:580:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 8915, + "nodeType": "Block", + "src": "26861:1077:15", + "statements": [ + { + "assignments": [ + 8852 + ], + "declarations": [ + { + "constant": false, + "id": 8852, + "name": "initialTotalSharesAndLoot", + "nodeType": "VariableDeclaration", + "scope": 8915, + "src": "26872:33:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8851, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26872:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8857, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 8855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26924:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "expression": { + "argumentTypes": null, + "id": 8853, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7786, + "src": "26908:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "26908:15:15", + "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": 8856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "26908:18:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "26872:54:15" + }, + { + "assignments": [ + 8859 + ], + "declarations": [ + { + "constant": false, + "id": 8859, + "name": "member", + "nodeType": "VariableDeclaration", + "scope": 8915, + "src": "26939:21:15", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member" + }, + "typeName": { + "contractScope": null, + "id": 8858, + "name": "Member", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7805, + "src": "26939:6:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8863, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8860, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "26963:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 8862, + "indexExpression": { + "argumentTypes": null, + "id": 8861, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8841, + "src": "26971:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "26963:22:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "26939:46:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8865, + "name": "member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8859, + "src": "27006:6:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member storage pointer" + } + }, + "id": 8866, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 7800, + "src": "27006:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 8867, + "name": "sharesToBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8843, + "src": "27023:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "27006:29:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "696e73756666696369656e7420736861726573", + "id": 8869, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27037:21:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d5ba7a6055332667d0b47802db7f56b8e6983a138e30503682c0b7c57a45190a", + "typeString": "literal_string \"insufficient shares\"" + }, + "value": "insufficient shares" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d5ba7a6055332667d0b47802db7f56b8e6983a138e30503682c0b7c57a45190a", + "typeString": "literal_string \"insufficient shares\"" + } + ], + "id": 8864, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "26998:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "26998:61:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8871, + "nodeType": "ExpressionStatement", + "src": "26998:61:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8874, + "name": "member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8859, + "src": "27160:6:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member storage pointer" + } + }, + "id": 8875, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "highestIndexYesVote", + "nodeType": "MemberAccess", + "referencedDeclaration": 7804, + "src": "27160:26:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8873, + "name": "canRagequit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9063, + "src": "27148:11:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 8876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27148:39:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "63616e6e6f7420726167657175697420756e74696c206869676865737420696e6465782070726f706f73616c206d656d62657220766f74656420594553206f6e2069732070726f636573736564", + "id": 8877, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27189:79:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_11872e0ade1b569d9743310990fb8e15cfb30e6e4c576314224629b74fe37ee9", + "typeString": "literal_string \"cannot ragequit until highest index proposal member voted YES on is processed\"" + }, + "value": "cannot ragequit until highest index proposal member voted YES on is processed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_11872e0ade1b569d9743310990fb8e15cfb30e6e4c576314224629b74fe37ee9", + "typeString": "literal_string \"cannot ragequit until highest index proposal member voted YES on is processed\"" + } + ], + "id": 8872, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "27140:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27140:129:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8879, + "nodeType": "ExpressionStatement", + "src": "27140:129:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8888, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8880, + "name": "member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8859, + "src": "27388:6:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member storage pointer" + } + }, + "id": 8882, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 7800, + "src": "27388:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8886, + "name": "sharesToBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8843, + "src": "27422:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8883, + "name": "member", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8859, + "src": "27404:6:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", + "typeString": "struct Moloch.Member storage pointer" + } + }, + "id": 8884, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "shares", + "nodeType": "MemberAccess", + "referencedDeclaration": 7800, + "src": "27404:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "27404:17:15", + "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": 8887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27404:31:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "27388:47:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8889, + "nodeType": "ExpressionStatement", + "src": "27388:47:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8895, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 8890, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7786, + "src": "27500:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8893, + "name": "sharesToBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8843, + "src": "27530:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 8891, + "name": "totalShares", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7786, + "src": "27514:11:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8892, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "27514:15:15", + "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": 8894, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27514:29:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "27500:43:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8896, + "nodeType": "ExpressionStatement", + "src": "27500:43:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8900, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8841, + "src": "27730:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 8901, + "name": "sharesToBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8843, + "src": "27745:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8902, + "name": "initialTotalSharesAndLoot", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8852, + "src": "27759:25:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8903, + "name": "tokenList", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8848, + "src": "27786:9:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[] memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 8898, + "name": "guildBank", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7687, + "src": "27711:9:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_GuildBank_$7658", + "typeString": "contract GuildBank" + } + }, + "id": 8899, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "withdraw", + "nodeType": "MemberAccess", + "referencedDeclaration": 7580, + "src": "27711:18:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,uint256,uint256,contract IERC20[] memory) external returns (bool)" + } + }, + "id": 8904, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27711:85:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "7769746864726177616c206f6620746f6b656e732066726f6d206775696c6442616e6b206661696c6564", + "id": 8905, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27811:44:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_651e518ee5ccfc633fd28c22e6ed219d8cd4ebc33c062c1938ef787232de2e2a", + "typeString": "literal_string \"withdrawal of tokens from guildBank failed\"" + }, + "value": "withdrawal of tokens from guildBank failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_651e518ee5ccfc633fd28c22e6ed219d8cd4ebc33c062c1938ef787232de2e2a", + "typeString": "literal_string \"withdrawal of tokens from guildBank failed\"" + } + ], + "id": 8897, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "27689:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8906, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27689:177:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8907, + "nodeType": "ExpressionStatement", + "src": "27689:177:15" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8909, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "27893:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8910, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "27893:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 8911, + "name": "sharesToBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8843, + "src": "27905:12:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 8912, + "name": "lootToBurn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8845, + "src": "27919:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 8908, + "name": "Ragequit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7762, + "src": "27884:8:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 8913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27884:46:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8914, + "nodeType": "EmitStatement", + "src": "27879:51:15" + } + ] + }, + "documentation": null, + "id": 8916, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_ragequit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8849, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8841, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 8916, + "src": "26760:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 8840, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "26760:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8843, + "name": "sharesToBurn", + "nodeType": "VariableDeclaration", + "scope": 8916, + "src": "26783:20:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8842, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26783:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8845, + "name": "lootToBurn", + "nodeType": "VariableDeclaration", + "scope": 8916, + "src": "26805:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8844, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "26805:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8848, + "name": "tokenList", + "nodeType": "VariableDeclaration", + "scope": 8916, + "src": "26825:25:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", + "typeString": "contract IERC20[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 8846, + "name": "IERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9719, + "src": "26825:6:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 8847, + "length": null, + "nodeType": "ArrayTypeName", + "src": "26825:8:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage_ptr", + "typeString": "contract IERC20[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "26759:92:15" + }, + "returnParameters": { + "id": 8850, + "nodeType": "ParameterList", + "parameters": [], + "src": "26861:0:15" + }, + "scope": 9115, + "src": "26741:1197:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 8982, + "nodeType": "Block", + "src": "29186:586:15", + "statements": [ + { + "assignments": [ + 8924 + ], + "declarations": [ + { + "constant": false, + "id": 8924, + "name": "proposal", + "nodeType": "VariableDeclaration", + "scope": 8982, + "src": "29197:25:15", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal" + }, + "typeName": { + "contractScope": null, + "id": 8923, + "name": "Proposal", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7842, + "src": "29197:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 8928, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 8925, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "29225:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" + } + }, + "id": 8927, + "indexExpression": { + "argumentTypes": null, + "id": 8926, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8918, + "src": "29235:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "29225:21:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "29197:49:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8934, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "29265:18:15", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8930, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8924, + "src": "29266:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8931, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 7833, + "src": "29266:14:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 8933, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 8932, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29281:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "29266:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c2068617320616c7265616479206265656e2073706f6e736f726564", + "id": 8935, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29285:37:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8ce373ba28507085e66e9df24290b9ef61d72fa05638e1221982de773985e387", + "typeString": "literal_string \"proposal has already been sponsored\"" + }, + "value": "proposal has already been sponsored" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8ce373ba28507085e66e9df24290b9ef61d72fa05638e1221982de773985e387", + "typeString": "literal_string \"proposal has already been sponsored\"" + } + ], + "id": 8929, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "29257:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29257:66:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8937, + "nodeType": "ExpressionStatement", + "src": "29257:66:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "29342:18:15", + "subExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8939, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8924, + "src": "29343:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8940, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 7833, + "src": "29343:14:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 8942, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 8941, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29358:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "29343:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c2068617320616c7265616479206265656e2063616e63656c6c6564", + "id": 8944, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29362:37:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ccab9120c6545218f1aaf1342626868c70b7de421d2454350aed40c0c66fbef6", + "typeString": "literal_string \"proposal has already been cancelled\"" + }, + "value": "proposal has already been cancelled" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ccab9120c6545218f1aaf1342626868c70b7de421d2454350aed40c0c66fbef6", + "typeString": "literal_string \"proposal has already been cancelled\"" + } + ], + "id": 8938, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "29334:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29334:66:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8946, + "nodeType": "ExpressionStatement", + "src": "29334:66:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 8952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8948, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "29419:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8949, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "29419:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8950, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8924, + "src": "29433:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8951, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "proposer", + "nodeType": "MemberAccess", + "referencedDeclaration": 7809, + "src": "29433:17:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "29419:31:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "736f6c656c79207468652070726f706f7365722063616e2063616e63656c", + "id": 8953, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29452:32:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bfc4d7bf1278b7adc609bbaec85c0d0fbc267775efc64d7b3b6cf53db50d2f68", + "typeString": "literal_string \"solely the proposer can cancel\"" + }, + "value": "solely the proposer can cancel" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_bfc4d7bf1278b7adc609bbaec85c0d0fbc267775efc64d7b3b6cf53db50d2f68", + "typeString": "literal_string \"solely the proposer can cancel\"" + } + ], + "id": 8947, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "29411:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8954, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29411:74:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8955, + "nodeType": "ExpressionStatement", + "src": "29411:74:15" + }, + { + "expression": { + "argumentTypes": null, + "id": 8962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8956, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8924, + "src": "29498:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8959, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 7833, + "src": "29498:14:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 8960, + "indexExpression": { + "argumentTypes": null, + "hexValue": "33", + "id": 8958, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29513:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29498:17:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 8961, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29518:4:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "29498:24:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 8963, + "nodeType": "ExpressionStatement", + "src": "29498:24:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8968, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8924, + "src": "29601:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8969, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "proposer", + "nodeType": "MemberAccess", + "referencedDeclaration": 7809, + "src": "29601:17:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8970, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8924, + "src": "29620:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8971, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tributeOffered", + "nodeType": "MemberAccess", + "referencedDeclaration": 7817, + "src": "29620:23:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8965, + "name": "proposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8924, + "src": "29570:8:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", + "typeString": "struct Moloch.Proposal storage pointer" + } + }, + "id": 8966, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tributeToken", + "nodeType": "MemberAccess", + "referencedDeclaration": 7819, + "src": "29570:21:15", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC20_$9719", + "typeString": "contract IERC20" + } + }, + "id": 8967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9661, + "src": "29570:30:15", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 8972, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29570:74:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6661696c656420746f2072657475726e207472696275746520746f2070726f706f736572", + "id": 8973, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29659:38:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_282e9801010b515e1b52012b7f89bf34974d755a49d0659dbf82e1edde7cfbdf", + "typeString": "literal_string \"failed to return tribute to proposer\"" + }, + "value": "failed to return tribute to proposer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282e9801010b515e1b52012b7f89bf34974d755a49d0659dbf82e1edde7cfbdf", + "typeString": "literal_string \"failed to return tribute to proposer\"" + } + ], + "id": 8964, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "29548:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 8974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29548:160:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8975, + "nodeType": "ExpressionStatement", + "src": "29548:160:15" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 8977, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8918, + "src": "29741:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 8978, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "29753:3:15", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 8979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "29753:10:15", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 8976, + "name": "CancelProposal", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7768, + "src": "29726:14:15", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$", + "typeString": "function (uint256,address)" + } + }, + "id": 8980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29726:38:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 8981, + "nodeType": "EmitStatement", + "src": "29721:43:15" + } + ] + }, + "documentation": null, + "id": 8983, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": null, + "id": 8921, + "modifierName": { + "argumentTypes": null, + "id": 8920, + "name": "nonReentrant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9748, + "src": "29173:12:15", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "29173:12:15" + } + ], + "name": "cancelProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8919, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8918, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 8983, + "src": "29146:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8917, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29146:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "29145:20:15" + }, + "returnParameters": { + "id": 8922, + "nodeType": "ParameterList", + "parameters": [], + "src": "29186:0:15" + }, + "scope": 9115, + "src": "29122:650:15", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 8999, + "nodeType": "Block", + "src": "30796:40:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 8994, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 8992, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8985, + "src": "30814:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 8993, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8987, + "src": "30819:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30814:6:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "argumentTypes": null, + "id": 8996, + "name": "y", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8987, + "src": "30827:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 8997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "30814:14:15", + "trueExpression": { + "argumentTypes": null, + "id": 8995, + "name": "x", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 8985, + "src": "30823:1:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 8991, + "id": 8998, + "nodeType": "Return", + "src": "30807:21:15" + } + ] + }, + "documentation": "*************\r\nGETTER FUNCTIONS\r**************", + "id": 9000, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 8988, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8985, + "name": "x", + "nodeType": "VariableDeclaration", + "scope": 9000, + "src": "30742:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8984, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30742:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 8987, + "name": "y", + "nodeType": "VariableDeclaration", + "scope": 9000, + "src": "30753:9:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30753:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "30741:22:15" + }, + "returnParameters": { + "id": 8991, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 8990, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9000, + "src": "30787:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 8989, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30787:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "30786:9:15" + }, + "scope": 9115, + "src": "30729:107:15", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9013, + "nodeType": "Block", + "src": "30902:68:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9010, + "name": "periodDuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7673, + "src": "30947:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9007, + "name": "summoningTime", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7683, + "src": "30928:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9005, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10413, + "src": "30920:3:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9006, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "30920:7:15", + "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": 9008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30920:22:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "div", + "nodeType": "MemberAccess", + "referencedDeclaration": 9808, + "src": "30920:26:15", + "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": 9011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30920:42:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9004, + "id": 9012, + "nodeType": "Return", + "src": "30913:49:15" + } + ] + }, + "documentation": null, + "id": 9014, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getCurrentPeriod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9001, + "nodeType": "ParameterList", + "parameters": [], + "src": "30869:2:15" + }, + "returnParameters": { + "id": 9004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9003, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9014, + "src": "30893:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9002, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30893:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "30892:9:15" + }, + "scope": 9115, + "src": "30844:126:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9022, + "nodeType": "Block", + "src": "31042:46:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9019, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "31060:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 9020, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "31060:20:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9018, + "id": 9021, + "nodeType": "Return", + "src": "31053:27:15" + } + ] + }, + "documentation": null, + "id": 9023, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getProposalQueueLength", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9015, + "nodeType": "ParameterList", + "parameters": [], + "src": "31009:2:15" + }, + "returnParameters": { + "id": 9018, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9017, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9023, + "src": "31033:7:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9016, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31033:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "31032:9:15" + }, + "scope": 9115, + "src": "30978:110:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9037, + "nodeType": "Block", + "src": "31179:53:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9032, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "31197:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" + } + }, + "id": 9034, + "indexExpression": { + "argumentTypes": null, + "id": 9033, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9025, + "src": "31207:10:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "31197:21:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "id": 9035, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 7833, + "src": "31197:27:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "functionReturnParameters": 9031, + "id": 9036, + "nodeType": "Return", + "src": "31190:34:15" + } + ] + }, + "documentation": null, + "id": 9038, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getProposalFlags", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9026, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9025, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 9038, + "src": "31122:18:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9024, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31122:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "31121:20:15" + }, + "returnParameters": { + "id": 9031, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9030, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9038, + "src": "31163:14:15", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", + "typeString": "bool[6]" + }, + "typeName": { + "baseType": { + "id": 9027, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31163:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9029, + "length": { + "argumentTypes": null, + "hexValue": "36", + "id": 9028, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31168:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "nodeType": "ArrayTypeName", + "src": "31163:7:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", + "typeString": "bool[6]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "31162:16:15" + }, + "scope": 9115, + "src": "31096:136:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9062, + "nodeType": "Block", + "src": "31402:169:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9049, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9046, + "name": "highestIndexYesVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9040, + "src": "31421:19:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9047, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "31443:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 9048, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "31443:20:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31421:42:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", + "id": 9050, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31465:25:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + }, + "value": "proposal does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + } + ], + "id": 9045, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "31413:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9051, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31413:78:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9052, + "nodeType": "ExpressionStatement", + "src": "31413:78:15" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9053, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "31509:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" + } + }, + "id": 9057, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9054, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "31519:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 9056, + "indexExpression": { + "argumentTypes": null, + "id": 9055, + "name": "highestIndexYesVote", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9040, + "src": "31533:19:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "31519:34:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "31509:45:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "id": 9058, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "flags", + "nodeType": "MemberAccess", + "referencedDeclaration": 7833, + "src": "31509:51:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bool_$6_storage", + "typeString": "bool[6] storage ref" + } + }, + "id": 9060, + "indexExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 9059, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31561:1:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "31509:54:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 9044, + "id": 9061, + "nodeType": "Return", + "src": "31502:61:15" + } + ] + }, + "documentation": null, + "id": 9063, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "canRagequit", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9041, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9040, + "name": "highestIndexYesVote", + "nodeType": "VariableDeclaration", + "scope": 9063, + "src": "31346:27:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9039, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31346:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "31345:29:15" + }, + "returnParameters": { + "id": 9044, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9043, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9063, + "src": "31396:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9042, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31396:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "31395:6:15" + }, + "scope": 9115, + "src": "31325:246:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9078, + "nodeType": "Block", + "src": "32439:86:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9076, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 9070, + "name": "getCurrentPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9014, + "src": "32457:16:15", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 9071, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32457:18:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9074, + "name": "votingPeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7675, + "src": "32498:18:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 9072, + "name": "startingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9065, + "src": "32479:14:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9073, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "32479:18:15", + "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": 9075, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32479:38:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "32457:60:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 9069, + "id": 9077, + "nodeType": "Return", + "src": "32450:67:15" + } + ] + }, + "documentation": null, + "id": 9079, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "hasVotingPeriodExpired", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9066, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9065, + "name": "startingPeriod", + "nodeType": "VariableDeclaration", + "scope": 9079, + "src": "32388:22:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9064, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32388:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "32387:24:15" + }, + "returnParameters": { + "id": 9069, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9068, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9079, + "src": "32433:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9067, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32433:4:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "32432:6:15" + }, + "scope": 9115, + "src": "32356:169:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9113, + "nodeType": "Block", + "src": "32637:251:15", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9089, + "name": "members", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7849, + "src": "32656:7:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", + "typeString": "mapping(address => struct Moloch.Member storage ref)" + } + }, + "id": 9091, + "indexExpression": { + "argumentTypes": null, + "id": 9090, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9081, + "src": "32664:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "32656:22:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Member_$7805_storage", + "typeString": "struct Moloch.Member storage ref" + } + }, + "id": 9092, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "exists", + "nodeType": "MemberAccess", + "referencedDeclaration": 7802, + "src": "32656:29:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "6d656d62657220646f6573206e6f74206578697374", + "id": 9093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32687:23:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_eeb2dbde81ed918fce84900f40c1838c2cab850a4c637d1ccdd3d5601b174fb4", + "typeString": "literal_string \"member does not exist\"" + }, + "value": "member does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_eeb2dbde81ed918fce84900f40c1838c2cab850a4c637d1ccdd3d5601b174fb4", + "typeString": "literal_string \"member does not exist\"" + } + ], + "id": 9088, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "32648:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32648:63:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9095, + "nodeType": "ExpressionStatement", + "src": "32648:63:15" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9097, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9083, + "src": "32730:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9098, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "32746:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 9099, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "32746:20:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "32730:36:15", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", + "id": 9101, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32768:25:15", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + }, + "value": "proposal does not exist" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", + "typeString": "literal_string \"proposal does not exist\"" + } + ], + "id": 9096, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "32722:7:15", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32722:72:15", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9103, + "nodeType": "ExpressionStatement", + "src": "32722:72:15" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9104, + "name": "proposals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7857, + "src": "32812:9:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", + "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" + } + }, + "id": 9108, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 9105, + "name": "proposalQueue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7860, + "src": "32822:13:15", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage", + "typeString": "uint256[] storage ref" + } + }, + "id": 9107, + "indexExpression": { + "argumentTypes": null, + "id": 9106, + "name": "proposalIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9083, + "src": "32836:13:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "32822:28:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "32812:39:15", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Proposal_$7842_storage", + "typeString": "struct Moloch.Proposal storage ref" + } + }, + "id": 9109, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "votesByMember", + "nodeType": "MemberAccess", + "referencedDeclaration": 7841, + "src": "32812:53:15", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$7796_$", + "typeString": "mapping(address => enum Moloch.Vote)" + } + }, + "id": 9111, + "indexExpression": { + "argumentTypes": null, + "id": 9110, + "name": "memberAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9081, + "src": "32866:13:15", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "32812:68:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "functionReturnParameters": 9087, + "id": 9112, + "nodeType": "Return", + "src": "32805:75:15" + } + ] + }, + "documentation": null, + "id": 9114, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMemberProposalVote", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9084, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9081, + "name": "memberAddress", + "nodeType": "VariableDeclaration", + "scope": 9114, + "src": "32564:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9080, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32564:7:15", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9083, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 9114, + "src": "32587:21:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9082, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32587:7:15", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "32563:46:15" + }, + "returnParameters": { + "id": 9087, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9086, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9114, + "src": "32631:4:15", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + }, + "typeName": { + "contractScope": null, + "id": 9085, + "name": "Vote", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 7796, + "src": "32631:4:15", + "typeDescriptions": { + "typeIdentifier": "t_enum$_Vote_$7796", + "typeString": "enum Moloch.Vote" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "32630:6:15" + }, + "scope": 9115, + "src": "32533:355:15", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 9116, + "src": "157:32734:15" + } + ], + "src": "0:32893:15" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:20.196Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": { + "submitProposal(address,uint256,uint256,uint256,address,uint256,address,string)": { + "notice": "***************\r PROPOSAL FUNCTIONS\r****************" + } + } + } +} \ No newline at end of file diff --git a/src/contracts/MolochSummoner.json b/src/contracts/MolochSummoner.json new file mode 100644 index 0000000..2f24fc1 --- /dev/null +++ b/src/contracts/MolochSummoner.json @@ -0,0 +1,2277 @@ +{ + "contractName": "MolochSummoner", + "abi": [ + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "Molochs", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "M", + "type": "address" + }, + { + "indexed": true, + "name": "_summoner", + "type": "address" + } + ], + "name": "Summoned", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_summoner", + "type": "address" + }, + { + "name": "_approvedTokens", + "type": "address[1]" + }, + { + "name": "_periodDuration", + "type": "uint256" + }, + { + "name": "_votingPeriodLength", + "type": "uint256" + }, + { + "name": "_gracePeriodLength", + "type": "uint256" + }, + { + "name": "_emergencyProcessingWait", + "type": "uint256" + }, + { + "name": "_bailoutWait", + "type": "uint256" + }, + { + "name": "_proposalDeposit", + "type": "uint256" + }, + { + "name": "_dilutionBound", + "type": "uint256" + }, + { + "name": "_processingReward", + "type": "uint256" + } + ], + "name": "summonMoloch", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getMolochCount", + "outputs": [ + { + "name": "MolochCount", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"getMolochCount\",\"outputs\":[{\"name\":\"MolochCount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_summoner\",\"type\":\"address\"},{\"name\":\"_approvedTokens\",\"type\":\"address[1]\"},{\"name\":\"_periodDuration\",\"type\":\"uint256\"},{\"name\":\"_votingPeriodLength\",\"type\":\"uint256\"},{\"name\":\"_gracePeriodLength\",\"type\":\"uint256\"},{\"name\":\"_emergencyProcessingWait\",\"type\":\"uint256\"},{\"name\":\"_bailoutWait\",\"type\":\"uint256\"},{\"name\":\"_proposalDeposit\",\"type\":\"uint256\"},{\"name\":\"_dilutionBound\",\"type\":\"uint256\"},{\"name\":\"_processingReward\",\"type\":\"uint256\"}],\"name\":\"summonMoloch\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"Molochs\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"M\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_summoner\",\"type\":\"address\"}],\"name\":\"Summoned\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/MolochSummoner.sol\":\"MolochSummoner\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol\":{\"keccak256\":\"0xa8ace5b5ac3322c9019470d2a1ad1342ef5d984da3d4818554e703b65ceda667\",\"urls\":[\"bzzr://b38168eab9d05f21a7576958f33878d9d31877a12f1f14bda390f3f4fbdaa2a4\",\"dweb:/ipfs/QmWa9cX9gzUkyM9yVwfhd6FsSeh1jpV62sBzdGJm6jRPRX\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Moloch.sol\":{\"keccak256\":\"0x513f84a2202580d2febaa6ee6322d9e93fee98f8c0ad5b98892a73687d49a0df\",\"urls\":[\"bzzr://ab0c63e6894e94dc4f8d0560000d3be9e20b87081af342d666fb5229d5bccd98\",\"dweb:/ipfs/QmYXkCZAMiX3UG4sKAp7Ro3nvKBKBANbRNWRn8JkWH3Pdc\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/MolochSummoner.sol\":{\"keccak256\":\"0x161581e5519ece741fe5e891d44c50206bff4d36a7d7ed174164f5abff927bed\",\"urls\":[\"bzzr://038ead62734bafe5fafdd09edceac7dae9b705801a017596c1cc604bb83a90db\",\"dweb:/ipfs/QmeFGnqHVwuZqJGr1DsFo7gwwTswJdyUQevWw1FKDvRkR2\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol\":{\"keccak256\":\"0x8d08add2e57d2885eb9cda96d2ce54056015247de9adfea8e13c78bb2d9233f2\",\"urls\":[\"bzzr://24804e36486f935a9e98bf507193d1b160db755edba6c9d124a894aef3741ada\",\"dweb:/ipfs/QmauQVeYbGgqJDNxKAceFj1hFD1gfCfAXNBA8vCh3aGYKA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50613926806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630fe204bd146100465780635abbe0fa1461006057806381fc5959146100e7575b600080fd5b61004e610120565b60408051918252519081900360200190f35b6100e5600480360361014081101561007757600080fd5b60408051602081810183526001600160a01b038535169493840193928301919080840190600190839083908082843760009201919091525091945050813592505060208101359060408101359060608101359060808101359060a08101359060c08101359060e00135610126565b005b610104600480360360208110156100fd57600080fd5b5035610263565b604080516001600160a01b039092168252519081900360200190f35b60015490565b8989898989898989898960405161013c9061028a565b6001600160a01b038b1681526020808201908b9080838360005b8381101561016e578181015183820152602001610156565b505050509050018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019a5050505050505050505050604051809103906000f0801580156101cd573d6000803e3d6000fd5b50600080546001600160a01b039283166001600160a01b0319918216178083556001805480820182559084527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805490921690841617905580546040518d84169391909116917f5d117058594e38d35f98a79b5e9cbcd9fa0597fad786e2826bc4f290a0f5d4a791a350505050505050505050565b6001818154811061027057fe5b6000918252602090912001546001600160a01b0316905081565b61365a806102988339019056fe608060405260006009819055600a819055600b805460ff19169055600c553480156200002a57600080fd5b506040516200365a3803806200365a83398181016040526101408110156200005157600080fd5b50805160408201516060830151608084015160a085015160c086015160e08701516101008801516101208901516000805460ff191660011790559798602001976001600160a01b038a166200010757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73756d6d6f6e65722063616e6e6f742062652030000000000000000000000000604482015290519081900360640190fd5b600088116200017757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5f706572696f644475726174696f6e2063616e6e6f7420626520300000000000604482015290519081900360640190fd5b60008711620001e757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5f766f74696e67506572696f644c656e6774682063616e6e6f74206265203000604482015290519081900360640190fd5b670de0b6b3a76400008711156200024a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180620036156021913960400191505060405180910390fd5b670de0b6b3a7640000861115620002c257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f5f6772616365506572696f644c656e6774682065786365656473206c696d6974604482015290519081900360640190fd5b600085116200031d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180620036366024913960400191505060405180910390fd5b60008054610100600160a81b0319166101006001600160a01b038d160217815589906020020151600780546001600160a01b0319166001600160a01b0390921691909117905560005b60018110156200044e5760008a82600181106200037f57fe5b60200201516001600160a01b03161415620003fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f5f617070726f766564546f6b656e2063616e6e6f742062652030000000000000604482015290519081900360640190fd5b600d8a82600181106200040a57fe5b6020908102919091015182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b03909316929092179091550162000366565b506040516200045d9062000586565b604051809103906000f0801580156200047a573d6000803e3d6000fd5b50600880546001600160a01b03199081166001600160a01b039384161790915560018a815560028a815560038a815560048a9055600588905542600655604080516080810182526000805461010090819004891680845260208085018981528587018a815260608701868152938652600e8352878620965187548d16908e161787559051868b015551978501805460ff19169815159890981790975551929094019190915580548390048716808252600f8552828220805490971617909555600a8490559354845193845293519304909316927f03995a801b13c36325306deef859ef977ce61c6e15a794281bf969d20482522792918290030190a25050505050505050505062000594565b61051880620030fd83390190565b612b5980620005a46000396000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80638b15a6051161011a578063b470aade116100ad578063dacaa9d11161007c578063dacaa9d1146106f4578063de292789146106fc578063e0a8f6f514610704578063e63bc62d14610721578063ec51b0bf1461073e57610206565b8063b470aade146106d4578063b9e2bea0146106dc578063c89039c5146106e4578063da35c664146106ec57610206565b8063a3dc3800116100e9578063a3dc380014610652578063a42afd291461066f578063a44a5e7e14610677578063b2643aab1461067f57610206565b80638b15a605146105ea5780639425a476146105f25780639746d9401461060f57806399653fbe1461062c57610206565b80633b214a741161019d57806363858f2d1161016c57806363858f2d146105c257806365372147146105ca578063797daf70146105d25780637d5b6c72146105da5780638340bbce146105e257610206565b80633b214a7414610483578063402c1794146104a0578063505afd74146104c6578063590f940b146104e257610206565b806315eb349e116101d957806315eb349e146104155780631dafede01461043a5780631e2362ec146104735780633a98ef391461047b57610206565b8063013cf08b1461020b578063044a0ca814610355578063086146d2146103a557806308ae4b0c146103bf575b600080fd5b6102286004803603602081101561022157600080fd5b50356107ed565b604051808f6001600160a01b03166001600160a01b031681526020018e6001600160a01b03166001600160a01b031681526020018d6001600160a01b03166001600160a01b031681526020018c81526020018b81526020018a8152602001896001600160a01b03166001600160a01b03168152602001888152602001876001600160a01b03166001600160a01b0316815260200186815260200185815260200184815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561030d5781810151838201526020016102f5565b50505050905090810190601f16801561033a5780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b6103816004803603604081101561036b57600080fd5b506001600160a01b038135169060200135610950565b6040518082600281111561039157fe5b60ff16815260200191505060405180910390f35b6103ad610a57565b60408051918252519081900360200190f35b6103e5600480360360208110156103d557600080fd5b50356001600160a01b0316610a86565b604080516001600160a01b0390951685526020850193909352901515838301526060830152519081900360800190f35b6104386004803603604081101561042b57600080fd5b5080359060200135610abd565b005b6104576004803603602081101561045057600080fd5b5035610bd3565b604080516001600160a01b039092168252519081900360200190f35b6103ad610bfa565b6103ad610c00565b6103ad6004803603602081101561049957600080fd5b5035610c06565b610457600480360360208110156104b657600080fd5b50356001600160a01b0316610c24565b6104ce610c3f565b604080519115158252519081900360200190f35b6103ad60048036036101008110156104f957600080fd5b6001600160a01b038235811692602081013592604082013592606083013592608081013582169260a08201359260c0830135169190810190610100810160e082013564010000000081111561054d57600080fd5b82018360208201111561055f57600080fd5b8035906020019184600183028401116401000000008311171561058157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c48945050505050565b6103ad610d83565b6103ad610d89565b6103ad610d8f565b6103ad610d95565b6103ad610d9b565b6103ad610da1565b6104ce6004803603602081101561060857600080fd5b5035610da7565b6104386004803603602081101561062557600080fd5b5035610dce565b6104386004803603604081101561064257600080fd5b508035906020013560ff166110f2565b6104ce6004803603602081101561066857600080fd5b50356114f8565b6104576115a1565b6103ad6115b0565b61069c6004803603602081101561069557600080fd5b50356115b6565b604051808260c080838360005b838110156106c15781810151838201526020016106a9565b5050505090500191505060405180910390f35b6103ad611620565b6103ad611626565b61045761162c565b6103ad61163b565b610457611641565b6103ad611655565b6104386004803603602081101561071a57600080fd5b503561165b565b6104386004803603602081101561073757600080fd5b50356118cb565b6104386004803603606081101561075457600080fd5b81359160208101359181019060608101604082013564010000000081111561077b57600080fd5b82018360208201111561078d57600080fd5b803590602001918460208302840111640100000000831117156107af57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611bc7945050505050565b60106020528060005260406000206000915090508060000160009054906101000a90046001600160a01b0316908060010160009054906101000a90046001600160a01b0316908060020160009054906101000a90046001600160a01b0316908060030154908060040154908060050154908060060160009054906101000a90046001600160a01b0316908060070154908060080160009054906101000a90046001600160a01b03169080600901549080600a01549080600b01549080600d018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109405780601f1061091557610100808354040283529160200191610940565b820191906000526020600020905b81548152906001019060200180831161092357829003601f168201915b50505050509080600e015490508e565b6001600160a01b0382166000908152600e602052604081206002015460ff166109b8576040805162461bcd60e51b81526020600482015260156024820152741b595b58995c88191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b6011548210610a08576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6010600060118481548110610a1957fe5b6000918252602080832090910154835282810193909352604091820181206001600160a01b0387168252600f0190925290205460ff16905092915050565b6000610a80600154610a7460065442611d1890919063ffffffff16565b9063ffffffff611d2d16565b90505b90565b600e6020526000908152604090208054600182015460028301546003909301546001600160a01b0390921692909160ff9091169084565b60005460ff16610b02576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600e6020526040902060010154610b5c576040805162461bcd60e51b815260206004820152600c60248201526b3737ba10309036b2b6b132b960a11b604482015290519081900360640190fd5b610bc2338383600d805480602002602001604051908101604052809291908181526020018280548015610bb857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b9a575b5050505050611d4f565b50506000805460ff19166001179055565b600d8181548110610be057fe5b6000918252602090912001546001600160a01b0316905081565b60045481565b600a5481565b60118181548110610c1357fe5b600091825260209091200154905081565b600f602052600090815260409020546001600160a01b031681565b600b5460ff1681565b6000805460ff16610c8e576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19169055670de0b6b3a7640000881115610cf5576040805162461bcd60e51b815260206004820152601960248201527f746f6f206d616e79207368617265732072657175657374656400000000000000604482015290519081900360640190fd5b6001600160a01b038916610d48576040805162461bcd60e51b815260206004820152601560248201527406170706c6963616e742063616e6e6f74206265203605c1b604482015290519081900360640190fd5b610d50612780565b610d618a8a8a8a8a8a8a8a89611f9b565b5050600954600019016000805460ff1916600117905598975050505050505050565b60035481565b60125481565b60115490565b60065481565b60025481565b60055481565b6000610dbe6002548361225c90919063ffffffff16565b610dc6610a57565b101592915050565b60005460ff16610e13576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600f60209081526040808320546001600160a01b03168352600e909152902060010154610e85576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b600081815260106020526040902060018101546001600160a01b0316610ef2576040805162461bcd60e51b815260206004820181905260248201527f70726f706f73616c206d7573742068617665206265656e2070726f706f736564604482015290519081900360640190fd5b600c81015460ff1615610f365760405162461bcd60e51b8152600401808060200182810382526023815260200180612a6a6023913960400191505060405180910390fd5b600c8101546301000000900460ff1615610f97576040805162461bcd60e51b815260206004820152601b60248201527f70726f706f73616c20686173206265656e2063616e63656c6c65640000000000604482015290519081900360640190fd5b600061100c6001611000610fa9610a57565b60115415610ff85760118054601091600091610fcc90600163ffffffff611d1816565b81548110610fd657fe5b9060005260206000200154815260200190815260200160002060090154610ffb565b60005b612275565b9063ffffffff61225c16565b60098301819055336000818152600f60205260408120546002860180546001600160a01b0319166001600160a01b039092169182179055600c8601805460ff19166001908117909155601180548083018255938190527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c689093018890559154939450928392917f2a383a979381335e3eb401ac01dd8083e024ff0256bf5338456ffc0063390bbd9188916110c09190611d18565b604080519283526020830191909152818101879052519081900360600190a350506000805460ff191660011790555050565b60005460ff16611137576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600f60209081526040808320546001600160a01b03168352600e9091529020600101546111a9576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b336000908152600f60209081526040808320546001600160a01b0316808452600e9092529091206011548410611220576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6000601060006011878154811061123357fe5b90600052602060002001548152602001908152602001600020905060038460ff161061129c576040805162461bcd60e51b81526020600482015260136024820152726d757374206265206c657373207468616e203360681b604482015290519081900360640190fd5b60008460ff1660028111156112ad57fe5b90506112bc8260090154610da7565b156112f85760405162461bcd60e51b8152600401808060200182810382526022815260200180612abd6022913960400191505060405180910390fd5b6001600160a01b0384166000908152600f8301602052604081205460ff16600281111561132157fe5b14611373576040805162461bcd60e51b815260206004820152601860248201527f6d656d6265722068617320616c726561647920766f7465640000000000000000604482015290519081900360640190fd5b600181600281111561138157fe5b14806113985750600281600281111561139657fe5b145b6113e9576040805162461bcd60e51b815260206004820152601d60248201527f766f7465206d7573742062652065697468657220596573206f72204e6f000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600f830160205260409020805482919060ff1916600183600281111561141a57fe5b0217905550600181600281111561142d57fe5b141561146a576001830154600a83015461144c9163ffffffff61225c16565b600a830155600383015486111561146557600383018690555b61149d565b600281600281111561147857fe5b141561149d576001830154600b8301546114979163ffffffff61225c16565b600b8301555b6040805160ff8716815290516001600160a01b03861691339189917f29bf0061f2faa9daa482f061b116195432d435536d8af4ae6b3c5dd78223679b919081900360200190a450506000805460ff1916600117905550505050565b601154600090821061154b576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b601060006011848154811061155c57fe5b90600052602060002001548152602001908152602001600020600c0160016006811061158457fe5b602081049091015460ff601f9092166101000a9004169050919050565b6008546001600160a01b031681565b600c5481565b6115be612780565b600082815260106020526040808220815160c081019283905292600c909101916006918390855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116115e5575094979650505050505050565b60015481565b60095490565b6007546001600160a01b031681565b60095481565b60005461010090046001600160a01b031681565b60125490565b60005460ff166116a0576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155818152601060205260409020600c81015460ff16156116fa5760405162461bcd60e51b8152600401808060200182810382526023815260200180612a6a6023913960400191505060405180910390fd5b600c8101546301000000900460ff16156117455760405162461bcd60e51b8152600401808060200182810382526023815260200180612adf6023913960400191505060405180910390fd5b60018101546001600160a01b031633146117a6576040805162461bcd60e51b815260206004820152601e60248201527f736f6c656c79207468652070726f706f7365722063616e2063616e63656c0000604482015290519081900360640190fd5b600c8101805463ff000000191663010000001790556006810154600182015460058301546040805163a9059cbb60e01b81526001600160a01b039384166004820152602481019290925251919092169163a9059cbb9160448083019260209291908290030181600087803b15801561181d57600080fd5b505af1158015611831573d6000803e3d6000fd5b505050506040513d602081101561184757600080fd5b50516118845760405162461bcd60e51b81526004018080602001828103825260248152602001806129f96024913960400191505060405180910390fd5b60408051338152905183917fc215fed6680bb02d323dc3f8b8f85241572607538426059c9232601bd293c3be919081900360200190a250506000805460ff19166001179055565b60005460ff16611910576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff191690556119238161228c565b60006011828154811061193257fe5b600091825260208083209190910154808352601090915260408220600c8101805461ff001916610100179055909250908061196c8561259d565b91509150670de0b6b3a76400006119928460030154600a5461225c90919063ffffffff16565b111561199d57600091505b8115611b74576001601255600c8301805462ff000019166201000017905582546001600160a01b03166000908152600e602052604090206002015460ff1615611a3357600383015483546001600160a01b03166000908152600e6020526040902060010154611a119163ffffffff61225c16565b83546001600160a01b03166000908152600e6020526040902060010155611b55565b82546001600160a01b039081166000908152600f60209081526040808320549093168252600e9052206002015460ff1615611ab75782546001600160a01b039081166000908152600f602090815260408083205490931680835283832080546001600160a01b03199081168317909155600e90925292909120805490911690911790555b6040805160808101825284546001600160a01b0390811680835260038088015460208086019182526001868801818152600060608901818152968152600e8452898120985189549089166001600160a01b0319918216178a559451928901929092555160028801805491151560ff19909216919091179055935195909201949094558754909216808252600f90925292909220805490911690911790555b6003830154600a54611b6c9163ffffffff61225c16565b600a55611b7a565b60026012555b6040805183151581529051859187917f86f74240ecee9e4230d26ff92e17fee978460d9c0f78f5c88b2864c9e7a494279181900360200190a350506000805460ff19166001179055505050565b60005460ff16611c0c576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600e6020526040902060010154611c66576040805162461bcd60e51b815260206004820152600c60248201526b3737ba10309036b2b6b132b960a11b604482015290519081900360640190fd5b60005b8151811015611cf9578015611cf157816001820381518110611c8757fe5b60200260200101516001600160a01b0316828281518110611ca457fe5b60200260200101516001600160a01b031611611cf15760405162461bcd60e51b8152600401808060200182810382526030815260200180612a8d6030913960400191505060405180910390fd5b600101611c69565b50611d0633848484611d4f565b50506000805460ff1916600117905550565b600082821115611d2757600080fd5b50900390565b6000808211611d3b57600080fd5b6000828481611d4657fe5b04949350505050565b600a54600090611d65908263ffffffff61225c16565b6001600160a01b0386166000908152600e60205260409020600181015491925090851115611dd0576040805162461bcd60e51b8152602060048201526013602482015272696e73756666696369656e742073686172657360681b604482015290519081900360640190fd5b611ddd81600301546114f8565b611e185760405162461bcd60e51b815260040180806020018281038252604d8152602001806129ac604d913960600191505060405180910390fd5b6001810154611e2d908663ffffffff611d1816565b6001820155600a54611e45908663ffffffff611d1816565b600a5560085460405163732c8f5760e01b81526001600160a01b03888116600483019081526024830189905260448301869052608060648401908152875160848501528751929094169363732c8f57938b938b9389938b939192909160a401906020808601910280838360005b83811015611eca578181015183820152602001611eb2565b5050505090500195505050505050602060405180830381600087803b158015611ef257600080fd5b505af1158015611f06573d6000803e3d6000fd5b505050506040513d6020811015611f1c57600080fd5b5051611f595760405162461bcd60e51b815260040180806020018281038252602a815260200180612a40602a913960400191505060405180910390fd5b6040805186815260208101869052815133927fcad1a1c68982832d9abc314de8a1e5d5e8c81b0588961e360766736d10c3be1a928290030190a2505050505050565b611fa361279e565b604051806101e001604052808b6001600160a01b03168152602001336001600160a01b0316815260200160006001600160a01b031681526020018a8152602001898152602001888152602001876001600160a01b03168152602001868152602001856001600160a01b03168152602001600081526020016000815260200160008152602001838152602001848152602001600081525090508060106000600954815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060e082015181600701556101008201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c01906006612194929190612847565b506101a082015180516121b191600d8401916020909101906128d9565b506101c09190910151600e90910155336000818152600f60209081526040918290205460095483519081529182018d90528183018c9052606082018b90526001600160a01b038a8116608084015260a083018a905288811660c0840152925190831693928e1692849290917f1facc413faf060d5cc5c8bc12d8fe29e5c530eb98e2475c76733ec749787a7509181900360e00190a45050600980546001019055505050505050505050565b60008282018381101561226e57600080fd5b9392505050565b600081831015612285578161226e565b5090919050565b60115481106122dc576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6122e461279e565b60106000601184815481106122f557fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116123cb57505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815293820193929183018282801561248e5780601f106124635761010080835404028352916020019161248e565b820191906000526020600020905b81548152906001019060200180831161247157829003601f168201915b50505050508152602001600e8201548152505090508061018001516001600681106124b557fe5b6020020151156124f65760405162461bcd60e51b8152600401808060200182810382526023815260200180612b026023913960400191505060405180910390fd5b81158061255e575060106000601161251585600163ffffffff611d1816565b8154811061251f57fe5b90600052602060002001548152602001908152602001600020600c0160016006811061254757fe5b602081049091015460ff601f9092166101000a9004165b6125995760405162461bcd60e51b8152600401808060200182810382526023815260200180612a1d6023913960400191505060405180910390fd5b5050565b6000806125a861279e565b60106000601186815481106125b957fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff16151581526020600192830181810494850194909303909202910180841161268f57505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529382019392918301828280156127525780601f1061272757610100808354040283529160200191612752565b820191906000526020600020905b81548152906001019060200180831161273557829003601f168201915b5050509183525050600e91909101546020909101526101608101516101409091015111946000945092505050565b6040518060c001604052806006906020820280388339509192915050565b60405180610280016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001612833612780565b815260200160608152602001600081525090565b6001830191839082156128c95791602002820160005b8382111561289a57835183826101000a81548160ff021916908315150217905550926020019260010160208160000104928301926001030261285d565b80156128c75782816101000a81549060ff021916905560010160208160000104928301926001030261289a565b505b506128d5929150612953565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061291a57805160ff1916838001178555612947565b82800160010185558215612947579182015b8281111561294757825182559160200191906001019061292c565b506128d5929150612971565b610a8391905b808211156128d557805460ff19168155600101612959565b610a8391905b808211156128d5576000815560010161297756fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c0063616e6e6f7420726167657175697420756e74696c206869676865737420696e6465782070726f706f73616c206d656d62657220766f74656420594553206f6e2069732070726f6365737365646661696c656420746f2072657475726e207472696275746520746f2070726f706f73657270726576696f75732070726f706f73616c206d7573742062652070726f6365737365647769746864726177616c206f6620746f6b656e732066726f6d206775696c6442616e6b206661696c656470726f706f73616c2068617320616c7265616479206265656e2073706f6e736f726564746f6b656e206c697374206d75737420626520756e6971756520616e6420696e20617363656e64696e67206f7264657270726f706f73616c20766f74696e6720706572696f6420686173206578706972656470726f706f73616c2068617320616c7265616479206265656e2063616e63656c6c656470726f706f73616c2068617320616c7265616479206265656e2070726f636573736564a265627a7a72305820ffa2b7b09108c0ac06fc33e0ae4aec417565e7d3add4b822bd5cf908cea7f29864736f6c63430005090032608060405234801561001057600080fd5b50600080546001600160a01b031916331790556104e6806100326000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301e3366714610046578063732c8f57146100905780638da5cb5b1461014f575b600080fd5b61007c6004803603606081101561005c57600080fd5b506001600160a01b03813581169160208101359091169060400135610173565b604080519115158252519081900360200190f35b61007c600480360360808110156100a657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156100dd57600080fd5b8201836020820111156100ef57600080fd5b8035906020019184602083028401116401000000008311171561011157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061026c945050505050565b61015761044e565b604080516001600160a01b039092168252519081900360200190f35b600080546001600160a01b0316331461018b57600080fd5b836001600160a01b0316836001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398846040518082815260200191505060405180910390a3836001600160a01b031663a9059cbb84846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561023657600080fd5b505af115801561024a573d6000803e3d6000fd5b505050506040513d602081101561026057600080fd5b505190505b9392505050565b600080546001600160a01b0316331461028457600080fd5b60005b82518110156104425760006103318483815181106102a157fe5b60200260200101516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156102fe57600080fd5b505afa158015610312573d6000803e3d6000fd5b505050506040513d602081101561032857600080fd5b5051878761045d565b905083828151811061033f57fe5b60200260200101516001600160a01b0316876001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398836040518082815260200191505060405180910390a383828151811061039d57fe5b60200260200101516001600160a01b031663a9059cbb88836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b505050506040513d602081101561042e57600080fd5b505161043957600080fd5b50600101610287565b50600195945050505050565b6000546001600160a01b031681565b60008161046957600080fd5b8361047657506000610265565b8383028385828161048357fe5b04141561049c5782818161049357fe5b04915050610265565b838386816104a657fe5b04029594505050505056fea265627a7a72305820600a90e68081feae486f77ec58352ebe4f959e2362fac128a8d418122da6121464736f6c634300050900325f766f74696e67506572696f644c656e6774682065786365656473206c696d69745f656d657267656e637950726f63657373696e67576169742063616e6e6f742062652030a265627a7a72305820bac60b4c0cd8fd78479456a8f4d0d8f3a0296d9a186c62ffab79e7095a92592a64736f6c63430005090032", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c80630fe204bd146100465780635abbe0fa1461006057806381fc5959146100e7575b600080fd5b61004e610120565b60408051918252519081900360200190f35b6100e5600480360361014081101561007757600080fd5b60408051602081810183526001600160a01b038535169493840193928301919080840190600190839083908082843760009201919091525091945050813592505060208101359060408101359060608101359060808101359060a08101359060c08101359060e00135610126565b005b610104600480360360208110156100fd57600080fd5b5035610263565b604080516001600160a01b039092168252519081900360200190f35b60015490565b8989898989898989898960405161013c9061028a565b6001600160a01b038b1681526020808201908b9080838360005b8381101561016e578181015183820152602001610156565b505050509050018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019a5050505050505050505050604051809103906000f0801580156101cd573d6000803e3d6000fd5b50600080546001600160a01b039283166001600160a01b0319918216178083556001805480820182559084527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805490921690841617905580546040518d84169391909116917f5d117058594e38d35f98a79b5e9cbcd9fa0597fad786e2826bc4f290a0f5d4a791a350505050505050505050565b6001818154811061027057fe5b6000918252602090912001546001600160a01b0316905081565b61365a806102988339019056fe608060405260006009819055600a819055600b805460ff19169055600c553480156200002a57600080fd5b506040516200365a3803806200365a83398181016040526101408110156200005157600080fd5b50805160408201516060830151608084015160a085015160c086015160e08701516101008801516101208901516000805460ff191660011790559798602001976001600160a01b038a166200010757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73756d6d6f6e65722063616e6e6f742062652030000000000000000000000000604482015290519081900360640190fd5b600088116200017757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5f706572696f644475726174696f6e2063616e6e6f7420626520300000000000604482015290519081900360640190fd5b60008711620001e757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5f766f74696e67506572696f644c656e6774682063616e6e6f74206265203000604482015290519081900360640190fd5b670de0b6b3a76400008711156200024a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180620036156021913960400191505060405180910390fd5b670de0b6b3a7640000861115620002c257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f5f6772616365506572696f644c656e6774682065786365656473206c696d6974604482015290519081900360640190fd5b600085116200031d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180620036366024913960400191505060405180910390fd5b60008054610100600160a81b0319166101006001600160a01b038d160217815589906020020151600780546001600160a01b0319166001600160a01b0390921691909117905560005b60018110156200044e5760008a82600181106200037f57fe5b60200201516001600160a01b03161415620003fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f5f617070726f766564546f6b656e2063616e6e6f742062652030000000000000604482015290519081900360640190fd5b600d8a82600181106200040a57fe5b6020908102919091015182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b03909316929092179091550162000366565b506040516200045d9062000586565b604051809103906000f0801580156200047a573d6000803e3d6000fd5b50600880546001600160a01b03199081166001600160a01b039384161790915560018a815560028a815560038a815560048a9055600588905542600655604080516080810182526000805461010090819004891680845260208085018981528587018a815260608701868152938652600e8352878620965187548d16908e161787559051868b015551978501805460ff19169815159890981790975551929094019190915580548390048716808252600f8552828220805490971617909555600a8490559354845193845293519304909316927f03995a801b13c36325306deef859ef977ce61c6e15a794281bf969d20482522792918290030190a25050505050505050505062000594565b61051880620030fd83390190565b612b5980620005a46000396000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80638b15a6051161011a578063b470aade116100ad578063dacaa9d11161007c578063dacaa9d1146106f4578063de292789146106fc578063e0a8f6f514610704578063e63bc62d14610721578063ec51b0bf1461073e57610206565b8063b470aade146106d4578063b9e2bea0146106dc578063c89039c5146106e4578063da35c664146106ec57610206565b8063a3dc3800116100e9578063a3dc380014610652578063a42afd291461066f578063a44a5e7e14610677578063b2643aab1461067f57610206565b80638b15a605146105ea5780639425a476146105f25780639746d9401461060f57806399653fbe1461062c57610206565b80633b214a741161019d57806363858f2d1161016c57806363858f2d146105c257806365372147146105ca578063797daf70146105d25780637d5b6c72146105da5780638340bbce146105e257610206565b80633b214a7414610483578063402c1794146104a0578063505afd74146104c6578063590f940b146104e257610206565b806315eb349e116101d957806315eb349e146104155780631dafede01461043a5780631e2362ec146104735780633a98ef391461047b57610206565b8063013cf08b1461020b578063044a0ca814610355578063086146d2146103a557806308ae4b0c146103bf575b600080fd5b6102286004803603602081101561022157600080fd5b50356107ed565b604051808f6001600160a01b03166001600160a01b031681526020018e6001600160a01b03166001600160a01b031681526020018d6001600160a01b03166001600160a01b031681526020018c81526020018b81526020018a8152602001896001600160a01b03166001600160a01b03168152602001888152602001876001600160a01b03166001600160a01b0316815260200186815260200185815260200184815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561030d5781810151838201526020016102f5565b50505050905090810190601f16801561033a5780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b6103816004803603604081101561036b57600080fd5b506001600160a01b038135169060200135610950565b6040518082600281111561039157fe5b60ff16815260200191505060405180910390f35b6103ad610a57565b60408051918252519081900360200190f35b6103e5600480360360208110156103d557600080fd5b50356001600160a01b0316610a86565b604080516001600160a01b0390951685526020850193909352901515838301526060830152519081900360800190f35b6104386004803603604081101561042b57600080fd5b5080359060200135610abd565b005b6104576004803603602081101561045057600080fd5b5035610bd3565b604080516001600160a01b039092168252519081900360200190f35b6103ad610bfa565b6103ad610c00565b6103ad6004803603602081101561049957600080fd5b5035610c06565b610457600480360360208110156104b657600080fd5b50356001600160a01b0316610c24565b6104ce610c3f565b604080519115158252519081900360200190f35b6103ad60048036036101008110156104f957600080fd5b6001600160a01b038235811692602081013592604082013592606083013592608081013582169260a08201359260c0830135169190810190610100810160e082013564010000000081111561054d57600080fd5b82018360208201111561055f57600080fd5b8035906020019184600183028401116401000000008311171561058157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c48945050505050565b6103ad610d83565b6103ad610d89565b6103ad610d8f565b6103ad610d95565b6103ad610d9b565b6103ad610da1565b6104ce6004803603602081101561060857600080fd5b5035610da7565b6104386004803603602081101561062557600080fd5b5035610dce565b6104386004803603604081101561064257600080fd5b508035906020013560ff166110f2565b6104ce6004803603602081101561066857600080fd5b50356114f8565b6104576115a1565b6103ad6115b0565b61069c6004803603602081101561069557600080fd5b50356115b6565b604051808260c080838360005b838110156106c15781810151838201526020016106a9565b5050505090500191505060405180910390f35b6103ad611620565b6103ad611626565b61045761162c565b6103ad61163b565b610457611641565b6103ad611655565b6104386004803603602081101561071a57600080fd5b503561165b565b6104386004803603602081101561073757600080fd5b50356118cb565b6104386004803603606081101561075457600080fd5b81359160208101359181019060608101604082013564010000000081111561077b57600080fd5b82018360208201111561078d57600080fd5b803590602001918460208302840111640100000000831117156107af57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611bc7945050505050565b60106020528060005260406000206000915090508060000160009054906101000a90046001600160a01b0316908060010160009054906101000a90046001600160a01b0316908060020160009054906101000a90046001600160a01b0316908060030154908060040154908060050154908060060160009054906101000a90046001600160a01b0316908060070154908060080160009054906101000a90046001600160a01b03169080600901549080600a01549080600b01549080600d018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109405780601f1061091557610100808354040283529160200191610940565b820191906000526020600020905b81548152906001019060200180831161092357829003601f168201915b50505050509080600e015490508e565b6001600160a01b0382166000908152600e602052604081206002015460ff166109b8576040805162461bcd60e51b81526020600482015260156024820152741b595b58995c88191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b6011548210610a08576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6010600060118481548110610a1957fe5b6000918252602080832090910154835282810193909352604091820181206001600160a01b0387168252600f0190925290205460ff16905092915050565b6000610a80600154610a7460065442611d1890919063ffffffff16565b9063ffffffff611d2d16565b90505b90565b600e6020526000908152604090208054600182015460028301546003909301546001600160a01b0390921692909160ff9091169084565b60005460ff16610b02576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600e6020526040902060010154610b5c576040805162461bcd60e51b815260206004820152600c60248201526b3737ba10309036b2b6b132b960a11b604482015290519081900360640190fd5b610bc2338383600d805480602002602001604051908101604052809291908181526020018280548015610bb857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b9a575b5050505050611d4f565b50506000805460ff19166001179055565b600d8181548110610be057fe5b6000918252602090912001546001600160a01b0316905081565b60045481565b600a5481565b60118181548110610c1357fe5b600091825260209091200154905081565b600f602052600090815260409020546001600160a01b031681565b600b5460ff1681565b6000805460ff16610c8e576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19169055670de0b6b3a7640000881115610cf5576040805162461bcd60e51b815260206004820152601960248201527f746f6f206d616e79207368617265732072657175657374656400000000000000604482015290519081900360640190fd5b6001600160a01b038916610d48576040805162461bcd60e51b815260206004820152601560248201527406170706c6963616e742063616e6e6f74206265203605c1b604482015290519081900360640190fd5b610d50612780565b610d618a8a8a8a8a8a8a8a89611f9b565b5050600954600019016000805460ff1916600117905598975050505050505050565b60035481565b60125481565b60115490565b60065481565b60025481565b60055481565b6000610dbe6002548361225c90919063ffffffff16565b610dc6610a57565b101592915050565b60005460ff16610e13576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600f60209081526040808320546001600160a01b03168352600e909152902060010154610e85576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b600081815260106020526040902060018101546001600160a01b0316610ef2576040805162461bcd60e51b815260206004820181905260248201527f70726f706f73616c206d7573742068617665206265656e2070726f706f736564604482015290519081900360640190fd5b600c81015460ff1615610f365760405162461bcd60e51b8152600401808060200182810382526023815260200180612a6a6023913960400191505060405180910390fd5b600c8101546301000000900460ff1615610f97576040805162461bcd60e51b815260206004820152601b60248201527f70726f706f73616c20686173206265656e2063616e63656c6c65640000000000604482015290519081900360640190fd5b600061100c6001611000610fa9610a57565b60115415610ff85760118054601091600091610fcc90600163ffffffff611d1816565b81548110610fd657fe5b9060005260206000200154815260200190815260200160002060090154610ffb565b60005b612275565b9063ffffffff61225c16565b60098301819055336000818152600f60205260408120546002860180546001600160a01b0319166001600160a01b039092169182179055600c8601805460ff19166001908117909155601180548083018255938190527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c689093018890559154939450928392917f2a383a979381335e3eb401ac01dd8083e024ff0256bf5338456ffc0063390bbd9188916110c09190611d18565b604080519283526020830191909152818101879052519081900360600190a350506000805460ff191660011790555050565b60005460ff16611137576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600f60209081526040808320546001600160a01b03168352600e9091529020600101546111a9576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b336000908152600f60209081526040808320546001600160a01b0316808452600e9092529091206011548410611220576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6000601060006011878154811061123357fe5b90600052602060002001548152602001908152602001600020905060038460ff161061129c576040805162461bcd60e51b81526020600482015260136024820152726d757374206265206c657373207468616e203360681b604482015290519081900360640190fd5b60008460ff1660028111156112ad57fe5b90506112bc8260090154610da7565b156112f85760405162461bcd60e51b8152600401808060200182810382526022815260200180612abd6022913960400191505060405180910390fd5b6001600160a01b0384166000908152600f8301602052604081205460ff16600281111561132157fe5b14611373576040805162461bcd60e51b815260206004820152601860248201527f6d656d6265722068617320616c726561647920766f7465640000000000000000604482015290519081900360640190fd5b600181600281111561138157fe5b14806113985750600281600281111561139657fe5b145b6113e9576040805162461bcd60e51b815260206004820152601d60248201527f766f7465206d7573742062652065697468657220596573206f72204e6f000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600f830160205260409020805482919060ff1916600183600281111561141a57fe5b0217905550600181600281111561142d57fe5b141561146a576001830154600a83015461144c9163ffffffff61225c16565b600a830155600383015486111561146557600383018690555b61149d565b600281600281111561147857fe5b141561149d576001830154600b8301546114979163ffffffff61225c16565b600b8301555b6040805160ff8716815290516001600160a01b03861691339189917f29bf0061f2faa9daa482f061b116195432d435536d8af4ae6b3c5dd78223679b919081900360200190a450506000805460ff1916600117905550505050565b601154600090821061154b576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b601060006011848154811061155c57fe5b90600052602060002001548152602001908152602001600020600c0160016006811061158457fe5b602081049091015460ff601f9092166101000a9004169050919050565b6008546001600160a01b031681565b600c5481565b6115be612780565b600082815260106020526040808220815160c081019283905292600c909101916006918390855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116115e5575094979650505050505050565b60015481565b60095490565b6007546001600160a01b031681565b60095481565b60005461010090046001600160a01b031681565b60125490565b60005460ff166116a0576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155818152601060205260409020600c81015460ff16156116fa5760405162461bcd60e51b8152600401808060200182810382526023815260200180612a6a6023913960400191505060405180910390fd5b600c8101546301000000900460ff16156117455760405162461bcd60e51b8152600401808060200182810382526023815260200180612adf6023913960400191505060405180910390fd5b60018101546001600160a01b031633146117a6576040805162461bcd60e51b815260206004820152601e60248201527f736f6c656c79207468652070726f706f7365722063616e2063616e63656c0000604482015290519081900360640190fd5b600c8101805463ff000000191663010000001790556006810154600182015460058301546040805163a9059cbb60e01b81526001600160a01b039384166004820152602481019290925251919092169163a9059cbb9160448083019260209291908290030181600087803b15801561181d57600080fd5b505af1158015611831573d6000803e3d6000fd5b505050506040513d602081101561184757600080fd5b50516118845760405162461bcd60e51b81526004018080602001828103825260248152602001806129f96024913960400191505060405180910390fd5b60408051338152905183917fc215fed6680bb02d323dc3f8b8f85241572607538426059c9232601bd293c3be919081900360200190a250506000805460ff19166001179055565b60005460ff16611910576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff191690556119238161228c565b60006011828154811061193257fe5b600091825260208083209190910154808352601090915260408220600c8101805461ff001916610100179055909250908061196c8561259d565b91509150670de0b6b3a76400006119928460030154600a5461225c90919063ffffffff16565b111561199d57600091505b8115611b74576001601255600c8301805462ff000019166201000017905582546001600160a01b03166000908152600e602052604090206002015460ff1615611a3357600383015483546001600160a01b03166000908152600e6020526040902060010154611a119163ffffffff61225c16565b83546001600160a01b03166000908152600e6020526040902060010155611b55565b82546001600160a01b039081166000908152600f60209081526040808320549093168252600e9052206002015460ff1615611ab75782546001600160a01b039081166000908152600f602090815260408083205490931680835283832080546001600160a01b03199081168317909155600e90925292909120805490911690911790555b6040805160808101825284546001600160a01b0390811680835260038088015460208086019182526001868801818152600060608901818152968152600e8452898120985189549089166001600160a01b0319918216178a559451928901929092555160028801805491151560ff19909216919091179055935195909201949094558754909216808252600f90925292909220805490911690911790555b6003830154600a54611b6c9163ffffffff61225c16565b600a55611b7a565b60026012555b6040805183151581529051859187917f86f74240ecee9e4230d26ff92e17fee978460d9c0f78f5c88b2864c9e7a494279181900360200190a350506000805460ff19166001179055505050565b60005460ff16611c0c576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600e6020526040902060010154611c66576040805162461bcd60e51b815260206004820152600c60248201526b3737ba10309036b2b6b132b960a11b604482015290519081900360640190fd5b60005b8151811015611cf9578015611cf157816001820381518110611c8757fe5b60200260200101516001600160a01b0316828281518110611ca457fe5b60200260200101516001600160a01b031611611cf15760405162461bcd60e51b8152600401808060200182810382526030815260200180612a8d6030913960400191505060405180910390fd5b600101611c69565b50611d0633848484611d4f565b50506000805460ff1916600117905550565b600082821115611d2757600080fd5b50900390565b6000808211611d3b57600080fd5b6000828481611d4657fe5b04949350505050565b600a54600090611d65908263ffffffff61225c16565b6001600160a01b0386166000908152600e60205260409020600181015491925090851115611dd0576040805162461bcd60e51b8152602060048201526013602482015272696e73756666696369656e742073686172657360681b604482015290519081900360640190fd5b611ddd81600301546114f8565b611e185760405162461bcd60e51b815260040180806020018281038252604d8152602001806129ac604d913960600191505060405180910390fd5b6001810154611e2d908663ffffffff611d1816565b6001820155600a54611e45908663ffffffff611d1816565b600a5560085460405163732c8f5760e01b81526001600160a01b03888116600483019081526024830189905260448301869052608060648401908152875160848501528751929094169363732c8f57938b938b9389938b939192909160a401906020808601910280838360005b83811015611eca578181015183820152602001611eb2565b5050505090500195505050505050602060405180830381600087803b158015611ef257600080fd5b505af1158015611f06573d6000803e3d6000fd5b505050506040513d6020811015611f1c57600080fd5b5051611f595760405162461bcd60e51b815260040180806020018281038252602a815260200180612a40602a913960400191505060405180910390fd5b6040805186815260208101869052815133927fcad1a1c68982832d9abc314de8a1e5d5e8c81b0588961e360766736d10c3be1a928290030190a2505050505050565b611fa361279e565b604051806101e001604052808b6001600160a01b03168152602001336001600160a01b0316815260200160006001600160a01b031681526020018a8152602001898152602001888152602001876001600160a01b03168152602001868152602001856001600160a01b03168152602001600081526020016000815260200160008152602001838152602001848152602001600081525090508060106000600954815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060e082015181600701556101008201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c01906006612194929190612847565b506101a082015180516121b191600d8401916020909101906128d9565b506101c09190910151600e90910155336000818152600f60209081526040918290205460095483519081529182018d90528183018c9052606082018b90526001600160a01b038a8116608084015260a083018a905288811660c0840152925190831693928e1692849290917f1facc413faf060d5cc5c8bc12d8fe29e5c530eb98e2475c76733ec749787a7509181900360e00190a45050600980546001019055505050505050505050565b60008282018381101561226e57600080fd5b9392505050565b600081831015612285578161226e565b5090919050565b60115481106122dc576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6122e461279e565b60106000601184815481106122f557fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116123cb57505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815293820193929183018282801561248e5780601f106124635761010080835404028352916020019161248e565b820191906000526020600020905b81548152906001019060200180831161247157829003601f168201915b50505050508152602001600e8201548152505090508061018001516001600681106124b557fe5b6020020151156124f65760405162461bcd60e51b8152600401808060200182810382526023815260200180612b026023913960400191505060405180910390fd5b81158061255e575060106000601161251585600163ffffffff611d1816565b8154811061251f57fe5b90600052602060002001548152602001908152602001600020600c0160016006811061254757fe5b602081049091015460ff601f9092166101000a9004165b6125995760405162461bcd60e51b8152600401808060200182810382526023815260200180612a1d6023913960400191505060405180910390fd5b5050565b6000806125a861279e565b60106000601186815481106125b957fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff16151581526020600192830181810494850194909303909202910180841161268f57505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529382019392918301828280156127525780601f1061272757610100808354040283529160200191612752565b820191906000526020600020905b81548152906001019060200180831161273557829003601f168201915b5050509183525050600e91909101546020909101526101608101516101409091015111946000945092505050565b6040518060c001604052806006906020820280388339509192915050565b60405180610280016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001612833612780565b815260200160608152602001600081525090565b6001830191839082156128c95791602002820160005b8382111561289a57835183826101000a81548160ff021916908315150217905550926020019260010160208160000104928301926001030261285d565b80156128c75782816101000a81549060ff021916905560010160208160000104928301926001030261289a565b505b506128d5929150612953565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061291a57805160ff1916838001178555612947565b82800160010185558215612947579182015b8281111561294757825182559160200191906001019061292c565b506128d5929150612971565b610a8391905b808211156128d557805460ff19168155600101612959565b610a8391905b808211156128d5576000815560010161297756fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c0063616e6e6f7420726167657175697420756e74696c206869676865737420696e6465782070726f706f73616c206d656d62657220766f74656420594553206f6e2069732070726f6365737365646661696c656420746f2072657475726e207472696275746520746f2070726f706f73657270726576696f75732070726f706f73616c206d7573742062652070726f6365737365647769746864726177616c206f6620746f6b656e732066726f6d206775696c6442616e6b206661696c656470726f706f73616c2068617320616c7265616479206265656e2073706f6e736f726564746f6b656e206c697374206d75737420626520756e6971756520616e6420696e20617363656e64696e67206f7264657270726f706f73616c20766f74696e6720706572696f6420686173206578706972656470726f706f73616c2068617320616c7265616479206265656e2063616e63656c6c656470726f706f73616c2068617320616c7265616479206265656e2070726f636573736564a265627a7a72305820ffa2b7b09108c0ac06fc33e0ae4aec417565e7d3add4b822bd5cf908cea7f29864736f6c63430005090032608060405234801561001057600080fd5b50600080546001600160a01b031916331790556104e6806100326000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301e3366714610046578063732c8f57146100905780638da5cb5b1461014f575b600080fd5b61007c6004803603606081101561005c57600080fd5b506001600160a01b03813581169160208101359091169060400135610173565b604080519115158252519081900360200190f35b61007c600480360360808110156100a657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156100dd57600080fd5b8201836020820111156100ef57600080fd5b8035906020019184602083028401116401000000008311171561011157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061026c945050505050565b61015761044e565b604080516001600160a01b039092168252519081900360200190f35b600080546001600160a01b0316331461018b57600080fd5b836001600160a01b0316836001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398846040518082815260200191505060405180910390a3836001600160a01b031663a9059cbb84846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561023657600080fd5b505af115801561024a573d6000803e3d6000fd5b505050506040513d602081101561026057600080fd5b505190505b9392505050565b600080546001600160a01b0316331461028457600080fd5b60005b82518110156104425760006103318483815181106102a157fe5b60200260200101516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156102fe57600080fd5b505afa158015610312573d6000803e3d6000fd5b505050506040513d602081101561032857600080fd5b5051878761045d565b905083828151811061033f57fe5b60200260200101516001600160a01b0316876001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398836040518082815260200191505060405180910390a383828151811061039d57fe5b60200260200101516001600160a01b031663a9059cbb88836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b505050506040513d602081101561042e57600080fd5b505161043957600080fd5b50600101610287565b50600195945050505050565b6000546001600160a01b031681565b60008161046957600080fd5b8361047657506000610265565b8383028385828161048357fe5b04141561049c5782818161049357fe5b04915050610265565b838386816104a657fe5b04029594505050505056fea265627a7a72305820600a90e68081feae486f77ec58352ebe4f959e2362fac128a8d418122da6121464736f6c634300050900325f766f74696e67506572696f644c656e6774682065786365656473206c696d69745f656d657267656e637950726f63657373696e67576169742063616e6e6f742062652030a265627a7a72305820bac60b4c0cd8fd78479456a8f4d0d8f3a0296d9a186c62ffab79e7095a92592a64736f6c63430005090032", + "sourceMap": "62:1125:16:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;62:1125:16;;;;;;;", + "deployedSourceMap": "62:1125:16:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;62:1125:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1076:108;;;:::i;:::-;;;;;;;;;;;;;;;;222:846;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;222:846:16;;;;;;;;;-1:-1:-1;;;;;222:846:16;;;;;;;;;;;;;;;;;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;222:846:16;;-1:-1:-1;;222:846:16;;;-1:-1:-1;;222:846:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;120:24;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;120:24:16;;:::i;:::-;;;;-1:-1:-1;;;;;120:24:16;;;;;;;;;;;;;;1076:108;1162:7;:14;1076:108;:::o;222:846::-;663:9;687:15;717;747:19;781:18;814:24;853:12;880:16;911:14;940:17;638:334;;;;;:::i;:::-;-1:-1:-1;;;;;638:334:16;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;638:334:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;634:1:16;:338;;-1:-1:-1;;;;;634:338:16;;;-1:-1:-1;;;;;;634:338:16;;;;;;;;27:10:-1;;23:18;;;45:23;;985:24:16;;;;;;;;;;1006:1;;;985:24;;;1044:1;;1027:31;;;;;;1044:1;;;;;1027:31;;;222:846;;;;;;;;;;:::o;120:24::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;120:24:16;;-1:-1:-1;120:24:16;:::o;62:1125::-;;;;;;;;:::o", + "source": "pragma solidity >=0.5.0 < 0.6.0;\r\n\r\nimport \"./Moloch.sol\";\r\n\r\ncontract MolochSummoner {\r\n\r\n Moloch private M;\r\n\r\n address[] public Molochs;\r\n\r\n event Summoned(address indexed M, address indexed _summoner);\r\n\r\n function summonMoloch(\r\n address _summoner,\r\n address[1] memory _approvedTokens,\r\n uint256 _periodDuration,\r\n uint256 _votingPeriodLength,\r\n uint256 _gracePeriodLength,\r\n uint256 _emergencyProcessingWait,\r\n uint256 _bailoutWait,\r\n uint256 _proposalDeposit,\r\n uint256 _dilutionBound,\r\n uint256 _processingReward\r\n ) public {\r\n\r\n M = new Moloch(\r\n _summoner,\r\n _approvedTokens,\r\n _periodDuration,\r\n _votingPeriodLength,\r\n _gracePeriodLength,\r\n _emergencyProcessingWait,\r\n _bailoutWait,\r\n _proposalDeposit,\r\n _dilutionBound,\r\n _processingReward\r\n );\r\n\r\n Molochs.push(address(M));\r\n\r\n emit Summoned(address(M), _summoner);\r\n\r\n }\r\n\r\n function getMolochCount() public view returns (uint256 MolochCount) {\r\n return Molochs.length;\r\n }\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\MolochSummoner.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/MolochSummoner.sol", + "exportedSymbols": { + "MolochSummoner": [ + 9196 + ] + }, + "id": 9197, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9117, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:16" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Moloch.sol", + "file": "./Moloch.sol", + "id": 9118, + "nodeType": "ImportDirective", + "scope": 9197, + "sourceUnit": 9116, + "src": "36:22:16", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [ + 9115 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 9196, + "linearizedBaseContracts": [ + 9196 + ], + "name": "MolochSummoner", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 9120, + "name": "M", + "nodeType": "VariableDeclaration", + "scope": 9196, + "src": "95:16:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + }, + "typeName": { + "contractScope": null, + "id": 9119, + "name": "Moloch", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9115, + "src": "95:6:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 9123, + "name": "Molochs", + "nodeType": "VariableDeclaration", + "scope": 9196, + "src": "120:24:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 9121, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "120:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 9122, + "length": null, + "nodeType": "ArrayTypeName", + "src": "120:9:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 9129, + "name": "Summoned", + "nodeType": "EventDefinition", + "parameters": { + "id": 9128, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9125, + "indexed": true, + "name": "M", + "nodeType": "VariableDeclaration", + "scope": 9129, + "src": "168:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "168:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9127, + "indexed": true, + "name": "_summoner", + "nodeType": "VariableDeclaration", + "scope": 9129, + "src": "187:25:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9126, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "187:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "167:46:16" + }, + "src": "153:61:16" + }, + { + "body": { + "id": 9185, + "nodeType": "Block", + "src": "621:447:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9154, + "name": "M", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9120, + "src": "634:1:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9157, + "name": "_summoner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9131, + "src": "663:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9158, + "name": "_approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9135, + "src": "687:15:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + } + }, + { + "argumentTypes": null, + "id": 9159, + "name": "_periodDuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9137, + "src": "717:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9160, + "name": "_votingPeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9139, + "src": "747:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9161, + "name": "_gracePeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9141, + "src": "781:18:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9162, + "name": "_emergencyProcessingWait", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9143, + "src": "814:24:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9163, + "name": "_bailoutWait", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9145, + "src": "853:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9164, + "name": "_proposalDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9147, + "src": "880:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9165, + "name": "_dilutionBound", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9149, + "src": "911:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9166, + "name": "_processingReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9151, + "src": "940:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "638:10:16", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_array$_t_address_$1_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_contract$_Moloch_$9115_$", + "typeString": "function (address,address[1] memory,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) returns (contract Moloch)" + }, + "typeName": { + "contractScope": null, + "id": 9155, + "name": "Moloch", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9115, + "src": "642:6:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + } + }, + "id": 9167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "638:334:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + }, + "src": "634:338:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + }, + "id": 9169, + "nodeType": "ExpressionStatement", + "src": "634:338:16" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9174, + "name": "M", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9120, + "src": "1006:1:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + ], + "id": 9173, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "998:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 9175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "998:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 9170, + "name": "Molochs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9123, + "src": "985:7:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 9172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "985:12:16", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) returns (uint256)" + } + }, + "id": 9176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "985:24:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9177, + "nodeType": "ExpressionStatement", + "src": "985:24:16" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9180, + "name": "M", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9120, + "src": "1044:1:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + ], + "id": 9179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1036:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 9181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1036:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9182, + "name": "_summoner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9131, + "src": "1048:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9178, + "name": "Summoned", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9129, + "src": "1027:8:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 9183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1027:31:16", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9184, + "nodeType": "EmitStatement", + "src": "1022:36:16" + } + ] + }, + "documentation": null, + "id": 9186, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "summonMoloch", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9152, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9131, + "name": "_summoner", + "nodeType": "VariableDeclaration", + "scope": 9186, + "src": "254:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9130, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "254:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9135, + "name": "_approvedTokens", + "nodeType": "VariableDeclaration", + "scope": 9186, + "src": "282:33:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1]" + }, + "typeName": { + "baseType": { + "id": 9132, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "282:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 9134, + "length": { + "argumentTypes": null, + "hexValue": "31", + "id": 9133, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "290:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "ArrayTypeName", + "src": "282:10:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_storage_ptr", + "typeString": "address[1]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9137, + "name": "_periodDuration", + "nodeType": "VariableDeclaration", + "scope": 9186, + "src": "326:23:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9136, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "326:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9139, + "name": "_votingPeriodLength", + "nodeType": "VariableDeclaration", + "scope": 9186, + "src": "360:27:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9138, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "360:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9141, + "name": "_gracePeriodLength", + "nodeType": "VariableDeclaration", + "scope": 9186, + "src": "398:26:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9140, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "398:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9143, + "name": "_emergencyProcessingWait", + "nodeType": "VariableDeclaration", + "scope": 9186, + "src": "435:32:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9142, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "435:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9145, + "name": "_bailoutWait", + "nodeType": "VariableDeclaration", + "scope": 9186, + "src": "478:20:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9144, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "478:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9147, + "name": "_proposalDeposit", + "nodeType": "VariableDeclaration", + "scope": 9186, + "src": "509:24:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "509:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9149, + "name": "_dilutionBound", + "nodeType": "VariableDeclaration", + "scope": 9186, + "src": "544:22:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9148, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "544:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9151, + "name": "_processingReward", + "nodeType": "VariableDeclaration", + "scope": 9186, + "src": "577:25:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9150, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "577:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "243:370:16" + }, + "returnParameters": { + "id": 9153, + "nodeType": "ParameterList", + "parameters": [], + "src": "621:0:16" + }, + "scope": 9196, + "src": "222:846:16", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9194, + "nodeType": "Block", + "src": "1144:40:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9191, + "name": "Molochs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9123, + "src": "1162:7:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 9192, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1162:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9190, + "id": 9193, + "nodeType": "Return", + "src": "1155:21:16" + } + ] + }, + "documentation": null, + "id": 9195, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMolochCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9187, + "nodeType": "ParameterList", + "parameters": [], + "src": "1099:2:16" + }, + "returnParameters": { + "id": 9190, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9189, + "name": "MolochCount", + "nodeType": "VariableDeclaration", + "scope": 9195, + "src": "1123:19:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9188, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1123:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1122:21:16" + }, + "scope": 9196, + "src": "1076:108:16", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 9197, + "src": "62:1125:16" + } + ], + "src": "0:1189:16" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/MolochSummoner.sol", + "exportedSymbols": { + "MolochSummoner": [ + 9196 + ] + }, + "id": 9197, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9117, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:16" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Moloch.sol", + "file": "./Moloch.sol", + "id": 9118, + "nodeType": "ImportDirective", + "scope": 9197, + "sourceUnit": 9116, + "src": "36:22:16", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [ + 9115 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 9196, + "linearizedBaseContracts": [ + 9196 + ], + "name": "MolochSummoner", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 9120, + "name": "M", + "nodeType": "VariableDeclaration", + "scope": 9196, + "src": "95:16:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + }, + "typeName": { + "contractScope": null, + "id": 9119, + "name": "Moloch", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9115, + "src": "95:6:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + }, + "value": null, + "visibility": "private" + }, + { + "constant": false, + "id": 9123, + "name": "Molochs", + "nodeType": "VariableDeclaration", + "scope": 9196, + "src": "120:24:16", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 9121, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "120:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 9122, + "length": null, + "nodeType": "ArrayTypeName", + "src": "120:9:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "public" + }, + { + "anonymous": false, + "documentation": null, + "id": 9129, + "name": "Summoned", + "nodeType": "EventDefinition", + "parameters": { + "id": 9128, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9125, + "indexed": true, + "name": "M", + "nodeType": "VariableDeclaration", + "scope": 9129, + "src": "168:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9124, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "168:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9127, + "indexed": true, + "name": "_summoner", + "nodeType": "VariableDeclaration", + "scope": 9129, + "src": "187:25:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9126, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "187:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "167:46:16" + }, + "src": "153:61:16" + }, + { + "body": { + "id": 9185, + "nodeType": "Block", + "src": "621:447:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9154, + "name": "M", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9120, + "src": "634:1:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9157, + "name": "_summoner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9131, + "src": "663:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9158, + "name": "_approvedTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9135, + "src": "687:15:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + } + }, + { + "argumentTypes": null, + "id": 9159, + "name": "_periodDuration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9137, + "src": "717:15:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9160, + "name": "_votingPeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9139, + "src": "747:19:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9161, + "name": "_gracePeriodLength", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9141, + "src": "781:18:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9162, + "name": "_emergencyProcessingWait", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9143, + "src": "814:24:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9163, + "name": "_bailoutWait", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9145, + "src": "853:12:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9164, + "name": "_proposalDeposit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9147, + "src": "880:16:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9165, + "name": "_dilutionBound", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9149, + "src": "911:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9166, + "name": "_processingReward", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9151, + "src": "940:17:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1] memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9156, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "638:10:16", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_array$_t_address_$1_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_contract$_Moloch_$9115_$", + "typeString": "function (address,address[1] memory,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) returns (contract Moloch)" + }, + "typeName": { + "contractScope": null, + "id": 9155, + "name": "Moloch", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9115, + "src": "642:6:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + } + }, + "id": 9167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "638:334:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + }, + "src": "634:338:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + }, + "id": 9169, + "nodeType": "ExpressionStatement", + "src": "634:338:16" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9174, + "name": "M", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9120, + "src": "1006:1:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + ], + "id": 9173, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "998:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 9175, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "998:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "id": 9170, + "name": "Molochs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9123, + "src": "985:7:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 9172, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "985:12:16", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) returns (uint256)" + } + }, + "id": 9176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "985:24:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 9177, + "nodeType": "ExpressionStatement", + "src": "985:24:16" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9180, + "name": "M", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9120, + "src": "1044:1:16", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + ], + "id": 9179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1036:7:16", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 9181, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1036:10:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9182, + "name": "_summoner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9131, + "src": "1048:9:16", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9178, + "name": "Summoned", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9129, + "src": "1027:8:16", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", + "typeString": "function (address,address)" + } + }, + "id": 9183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1027:31:16", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9184, + "nodeType": "EmitStatement", + "src": "1022:36:16" + } + ] + }, + "documentation": null, + "id": 9186, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "summonMoloch", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9152, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9131, + "name": "_summoner", + "nodeType": "VariableDeclaration", + "scope": 9186, + "src": "254:17:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9130, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "254:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9135, + "name": "_approvedTokens", + "nodeType": "VariableDeclaration", + "scope": 9186, + "src": "282:33:16", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_memory_ptr", + "typeString": "address[1]" + }, + "typeName": { + "baseType": { + "id": 9132, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "282:7:16", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 9134, + "length": { + "argumentTypes": null, + "hexValue": "31", + "id": 9133, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "290:1:16", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "nodeType": "ArrayTypeName", + "src": "282:10:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$1_storage_ptr", + "typeString": "address[1]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9137, + "name": "_periodDuration", + "nodeType": "VariableDeclaration", + "scope": 9186, + "src": "326:23:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9136, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "326:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9139, + "name": "_votingPeriodLength", + "nodeType": "VariableDeclaration", + "scope": 9186, + "src": "360:27:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9138, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "360:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9141, + "name": "_gracePeriodLength", + "nodeType": "VariableDeclaration", + "scope": 9186, + "src": "398:26:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9140, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "398:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9143, + "name": "_emergencyProcessingWait", + "nodeType": "VariableDeclaration", + "scope": 9186, + "src": "435:32:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9142, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "435:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9145, + "name": "_bailoutWait", + "nodeType": "VariableDeclaration", + "scope": 9186, + "src": "478:20:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9144, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "478:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9147, + "name": "_proposalDeposit", + "nodeType": "VariableDeclaration", + "scope": 9186, + "src": "509:24:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "509:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9149, + "name": "_dilutionBound", + "nodeType": "VariableDeclaration", + "scope": 9186, + "src": "544:22:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9148, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "544:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9151, + "name": "_processingReward", + "nodeType": "VariableDeclaration", + "scope": 9186, + "src": "577:25:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9150, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "577:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "243:370:16" + }, + "returnParameters": { + "id": 9153, + "nodeType": "ParameterList", + "parameters": [], + "src": "621:0:16" + }, + "scope": 9196, + "src": "222:846:16", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9194, + "nodeType": "Block", + "src": "1144:40:16", + "statements": [ + { + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 9191, + "name": "Molochs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9123, + "src": "1162:7:16", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 9192, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "1162:14:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9190, + "id": 9193, + "nodeType": "Return", + "src": "1155:21:16" + } + ] + }, + "documentation": null, + "id": 9195, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMolochCount", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9187, + "nodeType": "ParameterList", + "parameters": [], + "src": "1099:2:16" + }, + "returnParameters": { + "id": 9190, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9189, + "name": "MolochCount", + "nodeType": "VariableDeclaration", + "scope": 9195, + "src": "1123:19:16", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9188, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1123:7:16", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1122:21:16" + }, + "scope": 9196, + "src": "1076:108:16", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 9197, + "src": "62:1125:16" + } + ], + "src": "0:1189:16" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:20.215Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/contracts/ReentrancyGuard.json b/src/contracts/ReentrancyGuard.json new file mode 100644 index 0000000..a6f61c9 --- /dev/null +++ b/src/contracts/ReentrancyGuard.json @@ -0,0 +1,748 @@ +{ + "contractName": "ReentrancyGuard", + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"details\":\"Contract module that helps prevent reentrant calls to a function.\\r * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\\r available, which can be applied to functions to make sure there are no nested\\r (reentrant) calls to them.\\r * Note that because there is a single `nonReentrant` guard, functions marked as\\r `nonReentrant` may not call one another. This can be worked around by making\\r those functions `private`, and then adding `external` `nonReentrant` entry\\r points to them.\\r * _Since v2.5.0:_ this module is now much more gas efficient, given net gas\\r metering changes introduced in the Istanbul hardfork.\\r\",\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol\":{\"keccak256\":\"0x8d08add2e57d2885eb9cda96d2ce54056015247de9adfea8e13c78bb2d9233f2\",\"urls\":[\"bzzr://24804e36486f935a9e98bf507193d1b160db755edba6c9d124a894aef3741ada\",\"dweb:/ipfs/QmauQVeYbGgqJDNxKAceFj1hFD1gfCfAXNBA8vCh3aGYKA\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity ^0.5.0;\r\n\r\n/**\r\n * @dev Contract module that helps prevent reentrant calls to a function.\r\n *\r\n * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\r\n * available, which can be applied to functions to make sure there are no nested\r\n * (reentrant) calls to them.\r\n *\r\n * Note that because there is a single `nonReentrant` guard, functions marked as\r\n * `nonReentrant` may not call one another. This can be worked around by making\r\n * those functions `private`, and then adding `external` `nonReentrant` entry\r\n * points to them.\r\n *\r\n * _Since v2.5.0:_ this module is now much more gas efficient, given net gas\r\n * metering changes introduced in the Istanbul hardfork.\r\n */\r\ncontract ReentrancyGuard {\r\n bool private _notEntered;\r\n\r\n constructor () internal {\r\n // Storing an initial non-zero value makes deployment a bit more\r\n // expensive, but in exchange the refund on every call to nonReentrant\r\n // will be lower in amount. Since refunds are capped to a percetange of\r\n // the total transaction's gas, it is best to keep them low in cases\r\n // like this one, to increase the likelihood of the full refund coming\r\n // into effect.\r\n _notEntered = true;\r\n }\r\n\r\n /**\r\n * @dev Prevents a contract from calling itself, directly or indirectly.\r\n * Calling a `nonReentrant` function from another `nonReentrant`\r\n * function is not supported. It is possible to prevent this from happening\r\n * by making the `nonReentrant` function external, and make it call a\r\n * `private` function that does the actual work.\r\n */\r\n modifier nonReentrant() {\r\n // On the first call to nonReentrant, _notEntered will be true\r\n require(_notEntered, \"ReentrancyGuard: reentrant call\");\r\n\r\n // Any calls to nonReentrant after this point will fail\r\n _notEntered = false;\r\n\r\n _;\r\n\r\n // By storing the original value once again, a refund is triggered (see\r\n // https://eips.ethereum.org/EIPS/eip-2200)\r\n _notEntered = true;\r\n }\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\oz\\ReentrancyGuard.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol", + "exportedSymbols": { + "ReentrancyGuard": [ + 9749 + ] + }, + "id": 9750, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9721, + "literals": [ + "solidity", + "^", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:21" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@dev Contract module that helps prevent reentrant calls to a function.\r\n\n * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\r\navailable, which can be applied to functions to make sure there are no nested\r\n(reentrant) calls to them.\r\n\n * Note that because there is a single `nonReentrant` guard, functions marked as\r\n`nonReentrant` may not call one another. This can be worked around by making\r\nthose functions `private`, and then adding `external` `nonReentrant` entry\r\npoints to them.\r\n\n * _Since v2.5.0:_ this module is now much more gas efficient, given net gas\r\nmetering changes introduced in the Istanbul hardfork.\r", + "fullyImplemented": true, + "id": 9749, + "linearizedBaseContracts": [ + 9749 + ], + "name": "ReentrancyGuard", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 9723, + "name": "_notEntered", + "nodeType": "VariableDeclaration", + "scope": 9749, + "src": "743:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9722, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "743:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 9730, + "nodeType": "Block", + "src": "800:455:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9726, + "name": "_notEntered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9723, + "src": "1229:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 9727, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1243:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1229:18:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9729, + "nodeType": "ExpressionStatement", + "src": "1229:18:21" + } + ] + }, + "documentation": null, + "id": 9731, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9724, + "nodeType": "ParameterList", + "parameters": [], + "src": "788:2:21" + }, + "returnParameters": { + "id": 9725, + "nodeType": "ParameterList", + "parameters": [], + "src": "800:0:21" + }, + "scope": 9749, + "src": "776:479:21", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9747, + "nodeType": "Block", + "src": "1663:422:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9734, + "name": "_notEntered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9723, + "src": "1754:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5265656e7472616e637947756172643a207265656e7472616e742063616c6c", + "id": 9735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1767:33:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619", + "typeString": "literal_string \"ReentrancyGuard: reentrant call\"" + }, + "value": "ReentrancyGuard: reentrant call" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619", + "typeString": "literal_string \"ReentrancyGuard: reentrant call\"" + } + ], + "id": 9733, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "1746:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1746:55:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9737, + "nodeType": "ExpressionStatement", + "src": "1746:55:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 9740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9738, + "name": "_notEntered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9723, + "src": "1879:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 9739, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1893:5:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "1879:19:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9741, + "nodeType": "ExpressionStatement", + "src": "1879:19:21" + }, + { + "id": 9742, + "nodeType": "PlaceholderStatement", + "src": "1911:1:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 9745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9743, + "name": "_notEntered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9723, + "src": "2059:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 9744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2073:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2059:18:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9746, + "nodeType": "ExpressionStatement", + "src": "2059:18:21" + } + ] + }, + "documentation": "@dev Prevents a contract from calling itself, directly or indirectly.\r\nCalling a `nonReentrant` function from another `nonReentrant`\r\nfunction is not supported. It is possible to prevent this from happening\r\nby making the `nonReentrant` function external, and make it call a\r\n`private` function that does the actual work.\r", + "id": 9748, + "name": "nonReentrant", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 9732, + "nodeType": "ParameterList", + "parameters": [], + "src": "1660:2:21" + }, + "src": "1639:446:21", + "visibility": "internal" + } + ], + "scope": 9750, + "src": "711:1377:21" + } + ], + "src": "0:2090:21" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol", + "exportedSymbols": { + "ReentrancyGuard": [ + 9749 + ] + }, + "id": 9750, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9721, + "literals": [ + "solidity", + "^", + "0.5", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:23:21" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@dev Contract module that helps prevent reentrant calls to a function.\r\n\n * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\r\navailable, which can be applied to functions to make sure there are no nested\r\n(reentrant) calls to them.\r\n\n * Note that because there is a single `nonReentrant` guard, functions marked as\r\n`nonReentrant` may not call one another. This can be worked around by making\r\nthose functions `private`, and then adding `external` `nonReentrant` entry\r\npoints to them.\r\n\n * _Since v2.5.0:_ this module is now much more gas efficient, given net gas\r\nmetering changes introduced in the Istanbul hardfork.\r", + "fullyImplemented": true, + "id": 9749, + "linearizedBaseContracts": [ + 9749 + ], + "name": "ReentrancyGuard", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 9723, + "name": "_notEntered", + "nodeType": "VariableDeclaration", + "scope": 9749, + "src": "743:24:21", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 9722, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "743:4:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "private" + }, + { + "body": { + "id": 9730, + "nodeType": "Block", + "src": "800:455:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9726, + "name": "_notEntered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9723, + "src": "1229:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 9727, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1243:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1229:18:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9729, + "nodeType": "ExpressionStatement", + "src": "1229:18:21" + } + ] + }, + "documentation": null, + "id": 9731, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9724, + "nodeType": "ParameterList", + "parameters": [], + "src": "788:2:21" + }, + "returnParameters": { + "id": 9725, + "nodeType": "ParameterList", + "parameters": [], + "src": "800:0:21" + }, + "scope": 9749, + "src": "776:479:21", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9747, + "nodeType": "Block", + "src": "1663:422:21", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9734, + "name": "_notEntered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9723, + "src": "1754:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "argumentTypes": null, + "hexValue": "5265656e7472616e637947756172643a207265656e7472616e742063616c6c", + "id": 9735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1767:33:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619", + "typeString": "literal_string \"ReentrancyGuard: reentrant call\"" + }, + "value": "ReentrancyGuard: reentrant call" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619", + "typeString": "literal_string \"ReentrancyGuard: reentrant call\"" + } + ], + "id": 9733, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10415, + "src": "1746:7:21", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 9736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1746:55:21", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9737, + "nodeType": "ExpressionStatement", + "src": "1746:55:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 9740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9738, + "name": "_notEntered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9723, + "src": "1879:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 9739, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1893:5:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "1879:19:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9741, + "nodeType": "ExpressionStatement", + "src": "1879:19:21" + }, + { + "id": 9742, + "nodeType": "PlaceholderStatement", + "src": "1911:1:21" + }, + { + "expression": { + "argumentTypes": null, + "id": 9745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9743, + "name": "_notEntered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9723, + "src": "2059:11:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 9744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2073:4:21", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "2059:18:21", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 9746, + "nodeType": "ExpressionStatement", + "src": "2059:18:21" + } + ] + }, + "documentation": "@dev Prevents a contract from calling itself, directly or indirectly.\r\nCalling a `nonReentrant` function from another `nonReentrant`\r\nfunction is not supported. It is possible to prevent this from happening\r\nby making the `nonReentrant` function external, and make it call a\r\n`private` function that does the actual work.\r", + "id": 9748, + "name": "nonReentrant", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 9732, + "nodeType": "ParameterList", + "parameters": [], + "src": "1660:2:21" + }, + "src": "1639:446:21", + "visibility": "internal" + } + ], + "scope": 9750, + "src": "711:1377:21" + } + ], + "src": "0:2090:21" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:20.247Z", + "devdoc": { + "details": "Contract module that helps prevent reentrant calls to a function.\r * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\r available, which can be applied to functions to make sure there are no nested\r (reentrant) calls to them.\r * Note that because there is a single `nonReentrant` guard, functions marked as\r `nonReentrant` may not call one another. This can be worked around by making\r those functions `private`, and then adding `external` `nonReentrant` entry\r points to them.\r * _Since v2.5.0:_ this module is now much more gas efficient, given net gas\r metering changes introduced in the Istanbul hardfork.\r", + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/contracts/SafeMath.json b/src/contracts/SafeMath.json new file mode 100644 index 0000000..054b951 --- /dev/null +++ b/src/contracts/SafeMath.json @@ -0,0 +1,2770 @@ +{ + "contractName": "SafeMath", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", + "bytecode": "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72305820bb4ed536388930bc47842634f46299dba3defa239394779c543d1a543807ce8164736f6c63430005090032", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72305820bb4ed536388930bc47842634f46299dba3defa239394779c543d1a543807ce8164736f6c63430005090032", + "sourceMap": "27:715:22:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", + "deployedSourceMap": "27:715:22:-;;;;;;;;", + "source": "pragma solidity ^0.5.2;\r\n\r\nlibrary SafeMath {\r\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\r\n if (a == 0) {\r\n return 0;\r\n }\r\n\r\n uint256 c = a * b;\r\n require(c / a == b);\r\n\r\n return c;\r\n }\r\n\r\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\r\n\r\n require(b > 0);\r\n uint256 c = a / b;\r\n\r\n return c;\r\n }\r\n\r\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n require(b <= a);\r\n uint256 c = a - b;\r\n\r\n return c;\r\n }\r\n\r\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\r\n uint256 c = a + b;\r\n require(c >= a);\r\n\r\n return c;\r\n }\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\oz\\SafeMath.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "exportedSymbols": { + "SafeMath": [ + 9857 + ] + }, + "id": 9858, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9751, + "literals": [ + "solidity", + "^", + "0.5", + ".2" + ], + "nodeType": "PragmaDirective", + "src": "0:23:22" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 9857, + "linearizedBaseContracts": [ + 9857 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 9783, + "nodeType": "Block", + "src": "118:146:22", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9760, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9753, + "src": "133:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "138:1:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "133:6:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9766, + "nodeType": "IfStatement", + "src": "129:47:22", + "trueBody": { + "id": 9765, + "nodeType": "Block", + "src": "141:35:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9763, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "163:1:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 9759, + "id": 9764, + "nodeType": "Return", + "src": "156:8:22" + } + ] + } + }, + { + "assignments": [ + 9768 + ], + "declarations": [ + { + "constant": false, + "id": 9768, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 9783, + "src": "188:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9767, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "188:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9772, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9769, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9753, + "src": "200:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9770, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9755, + "src": "204:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "200:5:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "188:17:22" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9774, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9768, + "src": "224:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9775, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9753, + "src": "228:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "224:5:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 9777, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9755, + "src": "233:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "224:10:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 9773, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "216:7:22", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 9779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "216:19:22", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9780, + "nodeType": "ExpressionStatement", + "src": "216:19:22" + }, + { + "expression": { + "argumentTypes": null, + "id": 9781, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9768, + "src": "255:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9759, + "id": 9782, + "nodeType": "Return", + "src": "248:8:22" + } + ] + }, + "documentation": null, + "id": 9784, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9756, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9753, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 9784, + "src": "64:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9752, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "64:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9755, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 9784, + "src": "75:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "75:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "63:22:22" + }, + "returnParameters": { + "id": 9759, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9758, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9784, + "src": "109:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9757, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "109:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "108:9:22" + }, + "scope": 9857, + "src": "51:213:22", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9807, + "nodeType": "Block", + "src": "339:84:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9794, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9788, + "src": "360:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9795, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "364:1:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "360:5:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 9793, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "352:7:22", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 9797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "352:14:22", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9798, + "nodeType": "ExpressionStatement", + "src": "352:14:22" + }, + { + "assignments": [ + 9800 + ], + "declarations": [ + { + "constant": false, + "id": 9800, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 9807, + "src": "377:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9799, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "377:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9804, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9801, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9786, + "src": "389:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9802, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9788, + "src": "393:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "389:5:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "377:17:22" + }, + { + "expression": { + "argumentTypes": null, + "id": 9805, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9800, + "src": "414:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9792, + "id": 9806, + "nodeType": "Return", + "src": "407:8:22" + } + ] + }, + "documentation": null, + "id": 9808, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9786, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 9808, + "src": "285:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9785, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "285:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9788, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 9808, + "src": "296:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "296:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "284:22:22" + }, + "returnParameters": { + "id": 9792, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9791, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9808, + "src": "330:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9790, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "330:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "329:9:22" + }, + "scope": 9857, + "src": "272:151:22", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9831, + "nodeType": "Block", + "src": "498:83:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9818, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9812, + "src": "517:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 9819, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9810, + "src": "522:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "517:6:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 9817, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "509:7:22", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 9821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "509:15:22", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9822, + "nodeType": "ExpressionStatement", + "src": "509:15:22" + }, + { + "assignments": [ + 9824 + ], + "declarations": [ + { + "constant": false, + "id": 9824, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 9831, + "src": "535:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9823, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "535:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9828, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9825, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9810, + "src": "547:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 9826, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9812, + "src": "551:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "547:5:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "535:17:22" + }, + { + "expression": { + "argumentTypes": null, + "id": 9829, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9824, + "src": "572:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9816, + "id": 9830, + "nodeType": "Return", + "src": "565:8:22" + } + ] + }, + "documentation": null, + "id": 9832, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9813, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9810, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 9832, + "src": "444:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9809, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "444:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9812, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 9832, + "src": "455:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9811, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "455:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "443:22:22" + }, + "returnParameters": { + "id": 9816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9815, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9832, + "src": "489:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "489:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "488:9:22" + }, + "scope": 9857, + "src": "431:150:22", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9855, + "nodeType": "Block", + "src": "656:83:22", + "statements": [ + { + "assignments": [ + 9842 + ], + "declarations": [ + { + "constant": false, + "id": 9842, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 9855, + "src": "667:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9841, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "667:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9846, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9843, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9834, + "src": "679:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 9844, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9836, + "src": "683:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "679:5:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "667:17:22" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9848, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9842, + "src": "703:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 9849, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9834, + "src": "708:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "703:6:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 9847, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "695:7:22", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 9851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "695:15:22", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9852, + "nodeType": "ExpressionStatement", + "src": "695:15:22" + }, + { + "expression": { + "argumentTypes": null, + "id": 9853, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9842, + "src": "730:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9840, + "id": 9854, + "nodeType": "Return", + "src": "723:8:22" + } + ] + }, + "documentation": null, + "id": 9856, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9837, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9834, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 9856, + "src": "602:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9833, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "602:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9836, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 9856, + "src": "613:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9835, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "613:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "601:22:22" + }, + "returnParameters": { + "id": 9840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9839, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9856, + "src": "647:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9838, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "647:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "646:9:22" + }, + "scope": 9857, + "src": "589:150:22", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 9858, + "src": "27:715:22" + } + ], + "src": "0:744:22" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "exportedSymbols": { + "SafeMath": [ + 9857 + ] + }, + "id": 9858, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9751, + "literals": [ + "solidity", + "^", + "0.5", + ".2" + ], + "nodeType": "PragmaDirective", + "src": "0:23:22" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": null, + "fullyImplemented": true, + "id": 9857, + "linearizedBaseContracts": [ + 9857 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 9783, + "nodeType": "Block", + "src": "118:146:22", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9760, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9753, + "src": "133:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "138:1:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "133:6:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 9766, + "nodeType": "IfStatement", + "src": "129:47:22", + "trueBody": { + "id": 9765, + "nodeType": "Block", + "src": "141:35:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9763, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "163:1:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 9759, + "id": 9764, + "nodeType": "Return", + "src": "156:8:22" + } + ] + } + }, + { + "assignments": [ + 9768 + ], + "declarations": [ + { + "constant": false, + "id": 9768, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 9783, + "src": "188:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9767, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "188:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9772, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9769, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9753, + "src": "200:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "argumentTypes": null, + "id": 9770, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9755, + "src": "204:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "200:5:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "188:17:22" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9774, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9768, + "src": "224:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9775, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9753, + "src": "228:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "224:5:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 9777, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9755, + "src": "233:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "224:10:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 9773, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "216:7:22", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 9779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "216:19:22", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9780, + "nodeType": "ExpressionStatement", + "src": "216:19:22" + }, + { + "expression": { + "argumentTypes": null, + "id": 9781, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9768, + "src": "255:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9759, + "id": 9782, + "nodeType": "Return", + "src": "248:8:22" + } + ] + }, + "documentation": null, + "id": 9784, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9756, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9753, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 9784, + "src": "64:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9752, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "64:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9755, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 9784, + "src": "75:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9754, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "75:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "63:22:22" + }, + "returnParameters": { + "id": 9759, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9758, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9784, + "src": "109:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9757, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "109:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "108:9:22" + }, + "scope": 9857, + "src": "51:213:22", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9807, + "nodeType": "Block", + "src": "339:84:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9794, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9788, + "src": "360:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 9795, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "364:1:22", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "360:5:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 9793, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "352:7:22", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 9797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "352:14:22", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9798, + "nodeType": "ExpressionStatement", + "src": "352:14:22" + }, + { + "assignments": [ + 9800 + ], + "declarations": [ + { + "constant": false, + "id": 9800, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 9807, + "src": "377:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9799, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "377:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9804, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9801, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9786, + "src": "389:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "argumentTypes": null, + "id": 9802, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9788, + "src": "393:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "389:5:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "377:17:22" + }, + { + "expression": { + "argumentTypes": null, + "id": 9805, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9800, + "src": "414:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9792, + "id": 9806, + "nodeType": "Return", + "src": "407:8:22" + } + ] + }, + "documentation": null, + "id": 9808, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9786, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 9808, + "src": "285:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9785, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "285:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9788, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 9808, + "src": "296:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "296:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "284:22:22" + }, + "returnParameters": { + "id": 9792, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9791, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9808, + "src": "330:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9790, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "330:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "329:9:22" + }, + "scope": 9857, + "src": "272:151:22", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9831, + "nodeType": "Block", + "src": "498:83:22", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9818, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9812, + "src": "517:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "id": 9819, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9810, + "src": "522:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "517:6:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 9817, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "509:7:22", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 9821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "509:15:22", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9822, + "nodeType": "ExpressionStatement", + "src": "509:15:22" + }, + { + "assignments": [ + 9824 + ], + "declarations": [ + { + "constant": false, + "id": 9824, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 9831, + "src": "535:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9823, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "535:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9828, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9825, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9810, + "src": "547:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "id": 9826, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9812, + "src": "551:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "547:5:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "535:17:22" + }, + { + "expression": { + "argumentTypes": null, + "id": 9829, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9824, + "src": "572:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9816, + "id": 9830, + "nodeType": "Return", + "src": "565:8:22" + } + ] + }, + "documentation": null, + "id": 9832, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9813, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9810, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 9832, + "src": "444:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9809, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "444:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9812, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 9832, + "src": "455:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9811, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "455:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "443:22:22" + }, + "returnParameters": { + "id": 9816, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9815, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9832, + "src": "489:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9814, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "489:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "488:9:22" + }, + "scope": 9857, + "src": "431:150:22", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 9855, + "nodeType": "Block", + "src": "656:83:22", + "statements": [ + { + "assignments": [ + 9842 + ], + "declarations": [ + { + "constant": false, + "id": 9842, + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 9855, + "src": "667:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9841, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "667:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9846, + "initialValue": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9845, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9843, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9834, + "src": "679:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "argumentTypes": null, + "id": 9844, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9836, + "src": "683:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "679:5:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "667:17:22" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 9850, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 9848, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9842, + "src": "703:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 9849, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9834, + "src": "708:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "703:6:22", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 9847, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "695:7:22", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 9851, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "695:15:22", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9852, + "nodeType": "ExpressionStatement", + "src": "695:15:22" + }, + { + "expression": { + "argumentTypes": null, + "id": 9853, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9842, + "src": "730:1:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 9840, + "id": 9854, + "nodeType": "Return", + "src": "723:8:22" + } + ] + }, + "documentation": null, + "id": 9856, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9837, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9834, + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 9856, + "src": "602:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9833, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "602:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9836, + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 9856, + "src": "613:9:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9835, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "613:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "601:22:22" + }, + "returnParameters": { + "id": 9840, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9839, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9856, + "src": "647:7:22", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9838, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "647:7:22", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "646:9:22" + }, + "scope": 9857, + "src": "589:150:22", + "stateMutability": "pure", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 9858, + "src": "27:715:22" + } + ], + "src": "0:744:22" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:19.775Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/contracts/StandardBounties.json b/src/contracts/StandardBounties.json new file mode 100644 index 0000000..8dd1b65 --- /dev/null +++ b/src/contracts/StandardBounties.json @@ -0,0 +1,54152 @@ +{ + "contractName": "StandardBounties", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "callStarted", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "numBounties", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "owner", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "metaTxRelayer", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + } + ], + "name": "bounties", + "outputs": [ + { + "name": "deadline", + "type": "uint256" + }, + { + "name": "token", + "type": "address" + }, + { + "name": "tokenVersion", + "type": "uint256" + }, + { + "name": "balance", + "type": "uint256" + }, + { + "name": "hasPaidOut", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "", + "type": "uint256" + }, + { + "name": "", + "type": "uint256" + } + ], + "name": "tokenBalances", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_creator", + "type": "address" + }, + { + "indexed": false, + "name": "_issuers", + "type": "address[]" + }, + { + "indexed": false, + "name": "_approvers", + "type": "address[]" + }, + { + "indexed": false, + "name": "_data", + "type": "string" + }, + { + "indexed": false, + "name": "_deadline", + "type": "uint256" + }, + { + "indexed": false, + "name": "_token", + "type": "address" + }, + { + "indexed": false, + "name": "_tokenVersion", + "type": "uint256" + } + ], + "name": "BountyIssued", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_contributionId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_contributor", + "type": "address" + }, + { + "indexed": false, + "name": "_amount", + "type": "uint256" + } + ], + "name": "ContributionAdded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_contributionId", + "type": "uint256" + } + ], + "name": "ContributionRefunded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_issuer", + "type": "address" + }, + { + "indexed": false, + "name": "_contributionIds", + "type": "uint256[]" + } + ], + "name": "ContributionsRefunded", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_issuer", + "type": "address" + }, + { + "indexed": false, + "name": "_amounts", + "type": "uint256[]" + } + ], + "name": "BountyDrained", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_fulfiller", + "type": "address" + }, + { + "indexed": false, + "name": "_data", + "type": "string" + } + ], + "name": "ActionPerformed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_fulfillmentId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_fulfillers", + "type": "address[]" + }, + { + "indexed": false, + "name": "_data", + "type": "string" + }, + { + "indexed": false, + "name": "_submitter", + "type": "address" + } + ], + "name": "BountyFulfilled", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_fulfillmentId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_fulfillers", + "type": "address[]" + }, + { + "indexed": false, + "name": "_data", + "type": "string" + } + ], + "name": "FulfillmentUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_fulfillmentId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_approver", + "type": "address" + }, + { + "indexed": false, + "name": "_tokenAmounts", + "type": "uint256[]" + } + ], + "name": "FulfillmentAccepted", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_changer", + "type": "address" + }, + { + "indexed": false, + "name": "_issuers", + "type": "address[]" + }, + { + "indexed": false, + "name": "_approvers", + "type": "address[]" + }, + { + "indexed": false, + "name": "_data", + "type": "string" + }, + { + "indexed": false, + "name": "_deadline", + "type": "uint256" + } + ], + "name": "BountyChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_changer", + "type": "address" + }, + { + "indexed": false, + "name": "_issuers", + "type": "address[]" + } + ], + "name": "BountyIssuersUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_changer", + "type": "address" + }, + { + "indexed": false, + "name": "_approvers", + "type": "address[]" + } + ], + "name": "BountyApproversUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_changer", + "type": "address" + }, + { + "indexed": false, + "name": "_data", + "type": "string" + } + ], + "name": "BountyDataChanged", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_changer", + "type": "address" + }, + { + "indexed": false, + "name": "_deadline", + "type": "uint256" + } + ], + "name": "BountyDeadlineChanged", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "_relayer", + "type": "address" + } + ], + "name": "setMetaTxRelayer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_issuers", + "type": "address[]" + }, + { + "name": "_approvers", + "type": "address[]" + }, + { + "name": "_data", + "type": "string" + }, + { + "name": "_deadline", + "type": "uint256" + }, + { + "name": "_token", + "type": "address" + }, + { + "name": "_tokenVersion", + "type": "uint256" + } + ], + "name": "issueBounty", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_issuers", + "type": "address[]" + }, + { + "name": "_approvers", + "type": "address[]" + }, + { + "name": "_data", + "type": "string" + }, + { + "name": "_deadline", + "type": "uint256" + }, + { + "name": "_token", + "type": "address" + }, + { + "name": "_tokenVersion", + "type": "uint256" + }, + { + "name": "_depositAmount", + "type": "uint256" + } + ], + "name": "issueAndContribute", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_amount", + "type": "uint256" + } + ], + "name": "contribute", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_contributionId", + "type": "uint256" + } + ], + "name": "refundContribution", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_contributionIds", + "type": "uint256[]" + } + ], + "name": "refundMyContributions", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_contributionIds", + "type": "uint256[]" + } + ], + "name": "refundContributions", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_amounts", + "type": "uint256[]" + } + ], + "name": "drainBounty", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_data", + "type": "string" + } + ], + "name": "performAction", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_fulfillers", + "type": "address[]" + }, + { + "name": "_data", + "type": "string" + } + ], + "name": "fulfillBounty", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_fulfillmentId", + "type": "uint256" + }, + { + "name": "_fulfillers", + "type": "address[]" + }, + { + "name": "_data", + "type": "string" + } + ], + "name": "updateFulfillment", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_fulfillmentId", + "type": "uint256" + }, + { + "name": "_approverId", + "type": "uint256" + }, + { + "name": "_tokenAmounts", + "type": "uint256[]" + } + ], + "name": "acceptFulfillment", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_fulfillers", + "type": "address[]" + }, + { + "name": "_data", + "type": "string" + }, + { + "name": "_approverId", + "type": "uint256" + }, + { + "name": "_tokenAmounts", + "type": "uint256[]" + } + ], + "name": "fulfillAndAccept", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_issuers", + "type": "address[]" + }, + { + "name": "_approvers", + "type": "address[]" + }, + { + "name": "_data", + "type": "string" + }, + { + "name": "_deadline", + "type": "uint256" + } + ], + "name": "changeBounty", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_issuerIdToChange", + "type": "uint256" + }, + { + "name": "_newIssuer", + "type": "address" + } + ], + "name": "changeIssuer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_approverId", + "type": "uint256" + }, + { + "name": "_approver", + "type": "address" + } + ], + "name": "changeApprover", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_issuerIdToChange", + "type": "uint256" + }, + { + "name": "_approverIdToChange", + "type": "uint256" + }, + { + "name": "_issuer", + "type": "address" + } + ], + "name": "changeIssuerAndApprover", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_data", + "type": "string" + } + ], + "name": "changeData", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_deadline", + "type": "uint256" + } + ], + "name": "changeDeadline", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_issuers", + "type": "address[]" + } + ], + "name": "addIssuers", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_sender", + "type": "address" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_approvers", + "type": "address[]" + } + ], + "name": "addApprovers", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "_bountyId", + "type": "uint256" + } + ], + "name": "getBounty", + "outputs": [ + { + "components": [ + { + "name": "issuers", + "type": "address[]" + }, + { + "name": "approvers", + "type": "address[]" + }, + { + "name": "deadline", + "type": "uint256" + }, + { + "name": "token", + "type": "address" + }, + { + "name": "tokenVersion", + "type": "uint256" + }, + { + "name": "balance", + "type": "uint256" + }, + { + "name": "hasPaidOut", + "type": "bool" + }, + { + "components": [ + { + "name": "fulfillers", + "type": "address[]" + }, + { + "name": "submitter", + "type": "address" + } + ], + "name": "fulfillments", + "type": "tuple[]" + }, + { + "components": [ + { + "name": "contributor", + "type": "address" + }, + { + "name": "amount", + "type": "uint256" + }, + { + "name": "refunded", + "type": "bool" + } + ], + "name": "contributions", + "type": "tuple[]" + } + ], + "name": "", + "type": "tuple" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_fulfillmentId\",\"type\":\"uint256\"},{\"name\":\"_approverId\",\"type\":\"uint256\"},{\"name\":\"_tokenAmounts\",\"type\":\"uint256[]\"}],\"name\":\"acceptFulfillment\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_tokenVersion\",\"type\":\"uint256\"},{\"name\":\"_depositAmount\",\"type\":\"uint256\"}],\"name\":\"issueAndContribute\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_approverId\",\"type\":\"uint256\"},{\"name\":\"_approver\",\"type\":\"address\"}],\"name\":\"changeApprover\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"drainBounty\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"string\"}],\"name\":\"performAction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_approvers\",\"type\":\"address[]\"}],\"name\":\"addApprovers\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_tokenVersion\",\"type\":\"uint256\"}],\"name\":\"issueBounty\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_relayer\",\"type\":\"address\"}],\"name\":\"setMetaTxRelayer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"callStarted\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"string\"}],\"name\":\"changeData\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"numBounties\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_contributionId\",\"type\":\"uint256\"}],\"name\":\"refundContribution\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_fulfillers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"}],\"name\":\"fulfillBounty\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_issuerIdToChange\",\"type\":\"uint256\"},{\"name\":\"_newIssuer\",\"type\":\"address\"}],\"name\":\"changeIssuer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_contributionIds\",\"type\":\"uint256[]\"}],\"name\":\"refundContributions\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"contribute\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_deadline\",\"type\":\"uint256\"}],\"name\":\"changeDeadline\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_deadline\",\"type\":\"uint256\"}],\"name\":\"changeBounty\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_issuerIdToChange\",\"type\":\"uint256\"},{\"name\":\"_approverIdToChange\",\"type\":\"uint256\"},{\"name\":\"_issuer\",\"type\":\"address\"}],\"name\":\"changeIssuerAndApprover\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"metaTxRelayer\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_fulfillers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_approverId\",\"type\":\"uint256\"},{\"name\":\"_tokenAmounts\",\"type\":\"uint256[]\"}],\"name\":\"fulfillAndAccept\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_fulfillmentId\",\"type\":\"uint256\"},{\"name\":\"_fulfillers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"}],\"name\":\"updateFulfillment\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_issuers\",\"type\":\"address[]\"}],\"name\":\"addIssuers\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"bounties\",\"outputs\":[{\"name\":\"deadline\",\"type\":\"uint256\"},{\"name\":\"token\",\"type\":\"address\"},{\"name\":\"tokenVersion\",\"type\":\"uint256\"},{\"name\":\"balance\",\"type\":\"uint256\"},{\"name\":\"hasPaidOut\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tokenBalances\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_contributionIds\",\"type\":\"uint256[]\"}],\"name\":\"refundMyContributions\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_bountyId\",\"type\":\"uint256\"}],\"name\":\"getBounty\",\"outputs\":[{\"components\":[{\"name\":\"issuers\",\"type\":\"address[]\"},{\"name\":\"approvers\",\"type\":\"address[]\"},{\"name\":\"deadline\",\"type\":\"uint256\"},{\"name\":\"token\",\"type\":\"address\"},{\"name\":\"tokenVersion\",\"type\":\"uint256\"},{\"name\":\"balance\",\"type\":\"uint256\"},{\"name\":\"hasPaidOut\",\"type\":\"bool\"},{\"components\":[{\"name\":\"fulfillers\",\"type\":\"address[]\"},{\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"fulfillments\",\"type\":\"tuple[]\"},{\"components\":[{\"name\":\"contributor\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"},{\"name\":\"refunded\",\"type\":\"bool\"}],\"name\":\"contributions\",\"type\":\"tuple[]\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_creator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_issuers\",\"type\":\"address[]\"},{\"indexed\":false,\"name\":\"_approvers\",\"type\":\"address[]\"},{\"indexed\":false,\"name\":\"_data\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_deadline\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_tokenVersion\",\"type\":\"uint256\"}],\"name\":\"BountyIssued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_contributionId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_contributor\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"ContributionAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_contributionId\",\"type\":\"uint256\"}],\"name\":\"ContributionRefunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_issuer\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_contributionIds\",\"type\":\"uint256[]\"}],\"name\":\"ContributionsRefunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_issuer\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"BountyDrained\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_fulfiller\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_data\",\"type\":\"string\"}],\"name\":\"ActionPerformed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_fulfillmentId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_fulfillers\",\"type\":\"address[]\"},{\"indexed\":false,\"name\":\"_data\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_submitter\",\"type\":\"address\"}],\"name\":\"BountyFulfilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_fulfillmentId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_fulfillers\",\"type\":\"address[]\"},{\"indexed\":false,\"name\":\"_data\",\"type\":\"string\"}],\"name\":\"FulfillmentUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_fulfillmentId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_approver\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_tokenAmounts\",\"type\":\"uint256[]\"}],\"name\":\"FulfillmentAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_changer\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_issuers\",\"type\":\"address[]\"},{\"indexed\":false,\"name\":\"_approvers\",\"type\":\"address[]\"},{\"indexed\":false,\"name\":\"_data\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_deadline\",\"type\":\"uint256\"}],\"name\":\"BountyChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_changer\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_issuers\",\"type\":\"address[]\"}],\"name\":\"BountyIssuersUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_changer\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_approvers\",\"type\":\"address[]\"}],\"name\":\"BountyApproversUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_changer\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_data\",\"type\":\"string\"}],\"name\":\"BountyDataChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_changer\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_deadline\",\"type\":\"uint256\"}],\"name\":\"BountyDeadlineChanged\",\"type\":\"event\"}],\"devdoc\":{\"author\":\"Mark Beylifn , Gon\\u00e7alo S\\u00e1 , Kevin Owocki , Ricardo Guilherme Schmidt (@3esmit), Matt Garnett , Craig Williams \",\"methods\":{\"addApprovers(address,uint256,uint256,address[])\":{\"params\":{\"_approvers\":\"the array of addresses to add to the list of valid approvers\"}},\"addIssuers(address,uint256,uint256,address[])\":{\"params\":{\"_issuers\":\"the array of addresses to add to the list of valid issuers\"}},\"changeApprover(address,uint256,uint256,uint256,address)\":{\"params\":{\"_approver\":\"the address of the new approver\"}},\"changeBounty(address,uint256,uint256,address[],address[],string,uint256)\":{\"params\":{\"_deadline\":\"the new timestamp which will become the deadline of the bounty\"}},\"changeData(address,uint256,uint256,string)\":{\"params\":{\"_data\":\"the new IPFS hash representing the JSON object storing the details of the bounty (see docs for schema details)\"}},\"changeDeadline(address,uint256,uint256,uint256)\":{\"params\":{\"_deadline\":\"the new timestamp which will become the deadline of the bounty\"}},\"changeIssuer(address,uint256,uint256,uint256,address)\":{\"params\":{\"_newIssuer\":\"the address of the new issuer\"}},\"changeIssuerAndApprover(address,uint256,uint256,uint256,uint256,address)\":{\"params\":{\"_issuer\":\"the address of the new approver\"}},\"contribute(address,uint256,uint256)\":{\"params\":{\"_amount\":\"the amount of tokens being contributed\"}},\"drainBounty(address,uint256,uint256,uint256[])\":{\"params\":{\"_amounts\":\"an array of amounts of tokens to be sent. The length of the array should be 1 if the bounty is in ETH or ERC20 tokens. If it's an ERC721 bounty, the array should be the list of tokenIDs.\"}},\"fulfillBounty(address,uint256,address[],string)\":{\"params\":{\"_data\":\"the IPFS hash corresponding to a JSON object which contains the details of the submission (see docs for schema details)\"}},\"getBounty(uint256)\":{\"return\":\"Returns a tuple for the bounty\"},\"issueAndContribute(address,address[],address[],string,uint256,address,uint256,uint256)\":{\"params\":{\"_depositAmount\":\"the amount of tokens being deposited to the bounty, which will create a new contribution to the bounty\"}},\"issueBounty(address,address[],address[],string,uint256,address,uint256)\":{\"params\":{\"_tokenVersion\":\"the version of the token being used for the bounty (0 for ETH, 20 for ERC20, 721 for ERC721)\"}},\"performAction(address,uint256,string)\":{\"params\":{\"_data\":\"the IPFS hash corresponding to a JSON object which contains the details of the action being performed (see docs for schema details)\"}},\"refundContribution(address,uint256,uint256)\":{\"params\":{\"_contributionId\":\"the index of the contribution being refunded\"}},\"refundContributions(address,uint256,uint256,uint256[])\":{\"params\":{\"_contributionIds\":\"the array of indexes of the contributions being refunded\"}},\"refundMyContributions(address,uint256,uint256[])\":{\"params\":{\"_contributionIds\":\"the array of indexes of the contributions being refunded\"}},\"setMetaTxRelayer(address)\":{\"params\":{\"_relayer\":\"the address of the relayer\"}},\"updateFulfillment(address,uint256,uint256,address[],string)\":{\"params\":{\"_data\":\"the new IPFS hash corresponding to a JSON object which contains the details of the submission (see docs for schema details)\"}}}},\"userdoc\":{\"methods\":{\"acceptFulfillment(address,uint256,uint256,uint256,uint256[])\":{\"notice\":\"being sent to each of the individual fulfillers\"},\"fulfillAndAccept(address,uint256,address[],string,uint256,uint256[])\":{\"notice\":\"being sent to each of the individual fulfillers\"}}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/StandardBounties.sol\":\"StandardBounties\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/StandardBounties.sol\":{\"keccak256\":\"0x456ed28ea1aef4e955403633cf32abd31157ba403d9cb68354c7dc672c5ccabf\",\"urls\":[\"bzzr://d15335b4982aca05664cad86d9c6a2bf810f978a29446cd053d45a737d6714e8\",\"dweb:/ipfs/QmTJ8fyPixSGid17Dk2xF8tBphrrEVTPKNenz3aRn1LFrL\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC20Token.sol\":{\"keccak256\":\"0x3148ace3c8e413e3e8cb9181826bbb7382fe8fd691fbbe398b0f3291c5ac88f6\",\"urls\":[\"bzzr://f6dae48bd61cf187d97f6dd7b1f14c4216ccda99c9173d87ac59465f9d3a030b\",\"dweb:/ipfs/QmbDe5WTm8sWmUWRbKxtWUrSbyS1T5vgkiVscK94RJb6iS\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":{\"keccak256\":\"0x4dd046a190602871aa9743a94149789c1e14b14f609c68d0f34d72e19bd690ce\",\"urls\":[\"bzzr://ea591dfb88f3591fe4344b7e665024c5aa3e8fb758a0409db79b1885a996b825\",\"dweb:/ipfs/QmXrwJ2TTXMWHBQxuLCqrj96gfh5HCHK57JsCEcXJ84t6z\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/Token.sol\":{\"keccak256\":\"0xdee24120ae0fa14b9200dfa97babfa107aaf668b52eeda93ad672260ede4b74c\",\"urls\":[\"bzzr://2144e06fcebb6227647c4362c7075680ea03074e80e51d37cad0b09092ff06a5\",\"dweb:/ipfs/QmYgcfKEH2DT6brtajHvPRdu6my6CRWH86TXmZCMZeGjfK\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50600380546001600160a01b03191633179055613c2b806100326000396000f3fe6080604052600436106101b65760003560e01c80639e64d9bf116100ec578063c22215b81161008a578063dc2f874411610064578063dc2f8744146104a7578063ec41e4cd146104d8578063edba7013146104f8578063ee8c4bbf14610518576101b6565b8063c22215b814610447578063c496045014610467578063c6a8b42b14610487576101b6565b8063aa17aaef116100c6578063aa17aaef146103d2578063b178d768146103f2578063bae3755614610412578063c1107c1114610432576101b6565b80639e64d9bf1461037f578063a071fbd51461039f578063a08f793c146103bf576101b6565b806361cf22131161015957806388db0f521161013357806388db0f52146103085780638da5cb5b1461031d57806393c1ccc91461033f57806397d766651461035f576101b6565b806361cf2213146102a6578063720dc00c146102c65780637ef8213c146102e8576101b6565b80633756f3c8116101955780633756f3c8146102265780634ac4e25a146102465780634daf1bb514610266578063567b3d2e14610286576101b6565b8062f27e38146101bb57806306060ae3146101dd5780632092e25914610206575b600080fd5b3480156101c757600080fd5b506101db6101d636600461308b565b610545565b005b6101f06101eb366004612991565b610735565b6040516101fd9190613768565b60405180910390f35b34801561021257600080fd5b506101db610221366004613023565b610761565b34801561023257600080fd5b506101db610241366004612ad3565b6108af565b34801561025257600080fd5b506101db610261366004612cf4565b610aa1565b34801561027257600080fd5b506101db610281366004612d4e565b610b1d565b34801561029257600080fd5b506101f06102a13660046128b0565b610c8a565b3480156102b257600080fd5b506101db6102c136600461288a565b610dcf565b3480156102d257600080fd5b506102db610e1e565b6040516101fd9190613749565b3480156102f457600080fd5b506101db610303366004612f8a565b610e2e565b34801561031457600080fd5b506101f0610efd565b34801561032957600080fd5b50610332610f03565b6040516101fd91906136dd565b34801561034b57600080fd5b506101db61035a366004612a86565b610f12565b34801561036b57600080fd5b506101db61037a366004612b4b565b611117565b34801561038b57600080fd5b506101db61039a366004613023565b61125b565b3480156103ab57600080fd5b506101db6103ba366004612ad3565b6113ad565b6101db6103cd366004612a86565b61155a565b3480156103de57600080fd5b506101db6103ed366004612fce565b6118ba565b3480156103fe57600080fd5b506101db61040d366004612e26565b61199e565b34801561041e57600080fd5b506101db61042d36600461310a565b611aee565b34801561043e57600080fd5b50610332611ce0565b34801561045357600080fd5b506101db610462366004612bce565b611cef565b34801561047357600080fd5b506101db610482366004612ee7565b611d54565b34801561049357600080fd5b506101db6104a2366004612dba565b611e78565b3480156104b357600080fd5b506104c76104c23660046131a2565b611fc3565b6040516101fd959493929190613941565b3480156104e457600080fd5b506102db6104f33660046131c0565b612002565b34801561050457600080fd5b506101db610513366004612c9a565b612022565b34801561052457600080fd5b506105386105333660046131a2565b612086565b6040516101fd9190613757565b84336001600160a01b038216148061056757506004546001600160a01b031633145b61057057600080fd5b84600054811061057f57600080fd5b6000868152600160205260409020600701548690869081106105a057600080fd5b8888876001600083815260200190815260200160002060010181815481106105c457fe5b6000918252602090912001546001600160a01b038481169116146105e757600080fd5b600454600160a01b900460ff16156105fe57600080fd5b6004805460ff60a01b1916600160a01b17905560008b8152600160208190526040822060068101805460ff191690921790915560070180548c90811061064057fe5b6000918252602090912060029091020180548a519192501461066157600080fd5b60005b81548110156106db5760008a828151811061067b57fe5b602002602001015111156106d3576106d38d83600001838154811061069c57fe5b9060005260206000200160009054906101000a90046001600160a01b03168c84815181106106c657fe5b602002602001015161230e565b600101610664565b507f4d54a229a804a61c5213bec479b1407ce270c57b24fd8299d6ea98b6b2ab05208c8c8f8c60405161071194939291906139d0565b60405180910390a150506004805460ff60a01b191690555050505050505050505050565b6000806107478a8a8a8a8a8a8a610c8a565b90506107548a828561155a565b9998505050505050505050565b84336001600160a01b038216148061078357506004546001600160a01b031633145b61078c57600080fd5b84600054811061079b57600080fd5b6000868152600160205260409020805488918891889190829081106107bc57fe5b6000918252602090912001546001600160a01b038481169116146107df57600080fd5b6000898152600160208190526040909120015489908890811061080157600080fd5b87600160008d81526020019081526020016000206001018a8154811061082357fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055507f43a4e4542993b08827123085341d156186f40b28b6343f301c246a1d5f49d9f78b8d600160008f815260200190815260200160002060010160405161089993929190613822565b60405180910390a1505050505050505050505050565b83336001600160a01b03821614806108d157506004546001600160a01b031633145b6108da57600080fd5b8360005481106108e957600080fd5b60008581526001602052604090208054879187918791908290811061090a57fe5b6000918252602090912001546001600160a01b0384811691161461092d57600080fd5b600454600160a01b900460ff161561094457600080fd5b6004805460ff60a01b1916600160a01b17815560008981526001602052604090200154158061098457506000888152600160205260409020600401546014145b156109df57855160011461099757600080fd5b6000888152600160205260408120600501548751909188916109b557fe5b602002602001015111156109c857600080fd5b6109da888a886000815181106106c657fe5b610a4e565b60005b8651811015610a4c57600260008a81526020019081526020016000206000888381518110610a0c57fe5b60209081029190910181015182528101919091526040016000205460ff16610a3357600080fd5b610a44898b8984815181106106c657fe5b6001016109e2565b505b7fc9db45671da2b4994b84d56a8832d4e0bcc3722230dffce39df6886f9ec2d7d6888a88604051610a81939291906137f5565b60405180910390a150506004805460ff60a01b1916905550505050505050565b82336001600160a01b0382161480610ac357506004546001600160a01b031633145b610acc57600080fd5b826000548110610adb57600080fd5b7fd54885079d7edd9bea77e3f09e83bd65a121db3d3a14892227e0d2cffe73970f848685604051610b0e93929190613906565b60405180910390a15050505050565b83336001600160a01b0382161480610b3f57506004546001600160a01b031633145b610b4857600080fd5b836000548110610b5757600080fd5b600085815260016020526040902054859085908110610b7557600080fd5b600087815260016020526040902080548991899189919082908110610b9657fe5b6000918252602090912001546001600160a01b03848116911614610bb957600080fd5b60005b8851811015610c2c57600160008c8152602001908152602001600020600101898281518110610be757fe5b60209081029190910181015182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b039093169290921790915501610bbc565b507f43a4e4542993b08827123085341d156186f40b28b6343f301c246a1d5f49d9f78a8c600160008e8152602001908152602001600020600101604051610c7593929190613822565b60405180910390a15050505050505050505050565b600087336001600160a01b0382161480610cae57506004546001600160a01b031633145b610cb757600080fd5b821580610cc45750826014145b80610cd05750826102d1145b610cd957600080fd5b600088511180610cea575060008751115b610cf357600080fd5b600080548082526001602090815260409092208a5191929091610d1b918391908d01906125d8565b508851610d3190600183019060208c01906125d8565b5060028101879055600481018590558415610d64576003810180546001600160a01b0319166001600160a01b0388161790555b600054610d7890600163ffffffff6125a816565b6000556040517feea6c8039af43860e84bc876245a0d129d92b942390135da1051b219149c100e90610db99084908e908e908e908e908e908e908e90613776565b60405180910390a1509998505050505050505050565b6003546001600160a01b03163314610de657600080fd5b6004546001600160a01b031615610dfc57600080fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b600454600160a01b900460ff1681565b83336001600160a01b0382161480610e5057506004546001600160a01b031633145b610e5957600080fd5b836000548110610e6857600080fd5b600085815260016020526040902054859085908110610e8657600080fd5b600087815260016020526040902080548991899189919082908110610ea757fe5b6000918252602090912001546001600160a01b03848116911614610eca57600080fd5b7fdc41a74d84036920901cf73075fc7f917d75b1f5dbd7955c12f92033362472338a8c8a604051610c7593929190613906565b60005481565b6003546001600160a01b031681565b82336001600160a01b0382161480610f3457506004546001600160a01b031633145b610f3d57600080fd5b826000548110610f4c57600080fd5b600084815260016020526040902060080154849084908110610f6d57600080fd5b868686600160008381526020019081526020016000206008018181548110610f9157fe5b60009182526020909120600390910201546001600160a01b03848116911614610fb957600080fd5b600089815260016020526040902060060154899060ff1615610fda57600080fd5b60008a815260016020526040902060080180548b918b9182908110610ffb57fe5b600091825260209091206002600390920201015460ff161561101c57600080fd5b600454600160a01b900460ff161561103357600080fd5b6004805460ff60a01b1916600160a01b17905560008c815260016020526040902060020154421161106357600080fd5b60008c815260016020526040812060080180548d90811061108057fe5b600091825260209091206002600390920201908101805460ff191660019081179091558154908201549192506110c1918f916001600160a01b03169061230e565b7ffb1da5cbf027ad18b7c1f786bf81e9920cc0db09d7e299a8e4f3dbb64ce32f018d8d6040516110f292919061398d565b60405180910390a150506004805460ff60a01b19169055505050505050505050505050565b83336001600160a01b038216148061113957506004546001600160a01b031633145b61114257600080fd5b83600054811061115157600080fd5b600085815260016020526040902060020154421061116e57600080fd5b600084511161117c57600080fd5b600085815260016020818152604080842081518083019092528882526001600160a01b038b1682840152600701805493840180825590855293829020815180519294600202909101926111d4928492909101906125d8565b50602091820151600191820180546001600160a01b0319166001600160a01b03909216919091179055600088815291526040908190206007015490517fb9fb09db36801e95ddbb658a96b7ecf81b9b7e105e4a82d8887b1e7eadd45b84925061124b91889160001990910190889088908c90613a4b565b60405180910390a1505050505050565b84336001600160a01b038216148061127d57506004546001600160a01b031633145b61128657600080fd5b84600054811061129557600080fd5b6000868152600160205260409020548690859081106112b357600080fd5b600088815260016020526040902080548a918a918a9190829081106112d457fe5b6000918252602090912001546001600160a01b038481169116146112f757600080fd5b60008b8152600160205260409020548a1080611311575089155b61131a57600080fd5b60008b815260016020526040902080548991908b90811061133757fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055507fc969620b1b90646a0d597289d87dcf90d4cc4e554bddf0c003dfc05954a6d3598b8d600160008f8152602001908152602001600020600001604051610899939291906138be565b83336001600160a01b03821614806113cf57506004546001600160a01b031633145b6113d857600080fd5b8360005481106113e757600080fd5b60008581526001602052604090208054879187918791908290811061140857fe5b6000918252602090912001546001600160a01b0384811691161461142b57600080fd5b600454600160a01b900460ff161561144257600080fd5b6004805460ff60a01b1916600160a01b17905560005b865181101561152657600089815260016020526040902060080154875188908390811061148157fe5b60200260200101511061149357600080fd5b6000600160008b81526020019081526020016000206008018883815181106114b757fe5b6020026020010151815481106114c957fe5b60009182526020909120600390910201600281015490915060ff16156114ee57600080fd5b60028101805460ff1916600190811790915581549082015461151d918c916001600160a01b039091169061230e565b50600101611458565b507fc55c552370ad68c2faed667a8224a8ab373e39368872484a40619b1e884336de888a88604051610a81939291906138eb565b82336001600160a01b038216148061157c57506004546001600160a01b031633145b61158557600080fd5b82600054811061159457600080fd5b600454600160a01b900460ff16156115ab57600080fd5b6004805460ff60a01b1916600160a01b179055826115c857600080fd5b600084815260016020818152604080842081516060810183526001600160a01b038b811682528185018a815293820187815260088401805480890182559089528689209351600390910290930180546001600160a01b03191693909216929092178155925183860155516002909201805460ff19169215159290921790915592879052526004015461169957600084815260016020526040902060050154611676908463ffffffff6125a816565b60008581526001602052604090206005015534831461169457600080fd5b611852565b60008481526001602052604090206004015460141415611791576000848152600160205260409020600501546116d5908463ffffffff6125a816565b60008581526001602052604090206005015534156116f257600080fd5b600084815260016020526040908190206003015490516323b872dd60e01b81526001600160a01b03909116906323b872dd90611736908890309088906004016136eb565b602060405180830381600087803b15801561175057600080fd5b505af1158015611764573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117889190810190613184565b61169457600080fd5b6000848152600160205260409020600401546102d114156101b65760008481526002602090815260408083208684529091529020805460ff1916600117905534156117db57600080fd5b600084815260016020526040908190206003015490516323b872dd60e01b81526001600160a01b03909116906323b872dd9061181f908890309088906004016136eb565b600060405180830381600087803b15801561183957600080fd5b505af115801561184d573d6000803e3d6000fd5b505050505b600084815260016020526040908190206008015490517f7431e5e30247dcb2379eab9b0e60e49038c5ddb5cac27f27a17e950c0220a6939161189e91879160001901908990889061399b565b60405180910390a150506004805460ff60a01b19169055505050565b83336001600160a01b03821614806118dc57506004546001600160a01b031633145b6118e557600080fd5b8360005481106118f457600080fd5b60008581526001602052604090205485908590811061191257600080fd5b60008781526001602052604090208054899189918991908290811061193357fe5b6000918252602090912001546001600160a01b0384811691161461195657600080fd5b60008a81526001602052604090819020600201899055517f946e60a77ecf689f0595d6dcd6cf1537564a1d82472a69a3be00f7e8cb6f8b7d90610c75908c908e908c90613933565b86336001600160a01b03821614806119c057506004546001600160a01b031633145b6119c957600080fd5b60005487106119d757600080fd5b60008781526001602052604090205486106119f157600080fd5b6000878152600160205260409020805487908110611a0b57fe5b6000918252602090912001546001600160a01b03898116911614611a2e57600080fd5b600085511180611a3f575060008451115b611a4857600080fd5b60008781526001602090815260409091208651611a67928801906125d8565b5060008781526001602081815260409092208651611a8d939190920191908701906125d8565b5060008781526001602052604090819020600201839055517f588a0d2c7e36ab3050cd6b8b12441530ae5407613e9f2a62dc10bc43a302ed9c90611adc9089908b90899089908990899061384f565b60405180910390a15050505050505050565b85336001600160a01b0382161480611b1057506004546001600160a01b031633145b611b1957600080fd5b600086815260016020526040902080548891889188919082908110611b3a57fe5b6000918252602090912001546001600160a01b03848116911614611b5d57600080fd5b6000548910611b6b57600080fd5b600089815260016020819052604090912001548610611b8957600080fd5b6000898152600160205260409020548710611ba357600080fd5b6000898152600160205260409020805486919089908110611bc057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555084600160008b81526020019081526020016000206001018781548110611c1057fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b0394909416939093179092558a8152600190915260409081902090517fc969620b1b90646a0d597289d87dcf90d4cc4e554bddf0c003dfc05954a6d35991611c7c918c918e916138be565b60405180910390a17f43a4e4542993b08827123085341d156186f40b28b6343f301c246a1d5f49d9f7898b600160008d8152602001908152602001600020600101604051611ccc93929190613822565b60405180910390a150505050505050505050565b6004546001600160a01b031681565b85336001600160a01b0382161480611d1157506004546001600160a01b031633145b611d1a57600080fd5b611d2687878787611117565b600086815260016020526040902060070154611d4b9088908890600019018686610545565b50505050505050565b84336001600160a01b0382161480611d7657506004546001600160a01b031633145b611d7f57600080fd5b846000548110611d8e57600080fd5b600086815260016020526040902060070154869086908110611daf57600080fd5b888888600160008381526020019081526020016000206007018181548110611dd357fe5b60009182526020909120600160029092020101546001600160a01b03848116911614611dfe57600080fd5b60008b815260016020526040902060070180548a91908c908110611e1e57fe5b90600052602060002090600202016000019080519060200190611e429291906125d8565b507fde0d52ad68b0a792924de426fb3a2f2c1ce908be531894e35d85e533fbb8ec168b8b8b8b6040516108999493929190613a0a565b83336001600160a01b0382161480611e9a57506004546001600160a01b031633145b611ea357600080fd5b836000548110611eb257600080fd5b600085815260016020526040902054859085908110611ed057600080fd5b600087815260016020526040902080548991899189919082908110611ef157fe5b6000918252602090912001546001600160a01b03848116911614611f1457600080fd5b60005b8851811015611f815760008b815260016020526040902089518a9083908110611f3c57fe5b60209081029190910181015182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b039093169290921790915501611f17565b5060008a8152600160205260409081902090517fc969620b1b90646a0d597289d87dcf90d4cc4e554bddf0c003dfc05954a6d35991610c75918d918f916138be565b6001602052600090815260409020600281015460038201546004830154600584015460069094015492936001600160a01b039092169290919060ff1685565b600260209081526000928352604080842090915290825290205460ff1681565b82336001600160a01b038216148061204457506004546001600160a01b031633145b61204d57600080fd5b60005b825181101561207f57612077858585848151811061206a57fe5b6020026020010151610f12565b600101612050565b5050505050565b61208e61263d565b6000828152600160209081526040918290208251815461014093810282018401909452610120810184815290939192849284918401828280156120fa57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116120dc575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561215c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161213e575b5050509183525050600282015460208083019190915260038301546001600160a01b03166040808401919091526004840154606084015260058401546080840152600684015460ff16151560a084015260078401805482518185028101850190935280835260c090940193919290919060009084015b8282101561227957838290600052602060002090600202016040518060400160405290816000820180548060200260200160405190810160405280929190818152602001828054801561224e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612230575b50505091835250506001918201546001600160a01b03166020918201529183529290920191016121d2565b50505050815260200160088201805480602002602001604051908101604052809291908181526020016000905b82821015612300576000848152602090819020604080516060810182526003860290920180546001600160a01b031683526001808201548486015260029091015460ff1615159183019190915290835290920191016122a6565b505050915250909392505050565b6000838152600160205260409020600401546123c0576000811161233157600080fd5b60008381526001602052604090206005015481111561234f57600080fd5b600083815260016020526040902060050154612371908263ffffffff6125c316565b6000848152600160205260408082206005019290925590516001600160a01b0384169183156108fc02918491818181858888f193505050501580156123ba573d6000803e3d6000fd5b506125a3565b600083815260016020526040902060040154601414156124d357600081116123e757600080fd5b60008381526001602052604090206005015481111561240557600080fd5b600083815260016020526040902060050154612427908263ffffffff6125c316565b600084815260016020526040908190206005810192909255600390910154905163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906124739085908590600401613713565b602060405180830381600087803b15801561248d57600080fd5b505af11580156124a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506124c59190810190613184565b6124ce57600080fd5b6125a3565b6000838152600160205260409020600401546102d114156101b657600083815260026020908152604080832084845290915290205460ff1661251457600080fd5b60008381526002602090815260408083208484528252808320805460ff191690558583526001909152908190206003015490516323b872dd60e01b81526001600160a01b03909116906323b872dd906125759030908690869060040161372e565b600060405180830381600087803b15801561258f57600080fd5b505af1158015611d4b573d6000803e3d6000fd5b505050565b6000828201838110156125ba57600080fd5b90505b92915050565b6000828211156125d257600080fd5b50900390565b82805482825590600052602060002090810192821561262d579160200282015b8281111561262d57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906125f8565b50612639929150612694565b5090565b60405180610120016040528060608152602001606081526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160001515815260200160608152602001606081525090565b6126b891905b808211156126395780546001600160a01b031916815560010161269a565b90565b80356125bd81613bbf565b600082601f8301126126d757600080fd5b81356126ea6126e582613ac1565b613a9b565b9150818183526020840193506020810190508385602084028201111561270f57600080fd5b60005b8381101561273b578161272588826126bb565b8452506020928301929190910190600101612712565b5050505092915050565b600082601f83011261275657600080fd5b81356127646126e582613ac1565b9150818183526020840193506020810190508385602084028201111561278957600080fd5b60005b8381101561273b578161279f88826126bb565b845250602092830192919091019060010161278c565b600082601f8301126127c657600080fd5b81356127d46126e582613ac1565b915081818352602084019350602081019050838560208402820111156127f957600080fd5b60005b8381101561273b578161280f888261287f565b84525060209283019291909101906001016127fc565b80516125bd81613bd6565b600082601f83011261284157600080fd5b813561284f6126e582613ae1565b9150808252602083016020830185838301111561286b57600080fd5b612876838284613b5e565b50505092915050565b80356125bd81613bdf565b60006020828403121561289c57600080fd5b60006128a884846126bb565b949350505050565b600080600080600080600060e0888a0312156128cb57600080fd5b60006128d78a8a6126bb565b97505060208801356001600160401b038111156128f357600080fd5b6128ff8a828b01612745565b96505060408801356001600160401b0381111561291b57600080fd5b6129278a828b016126c6565b95505060608801356001600160401b0381111561294357600080fd5b61294f8a828b01612830565b94505060806129608a828b0161287f565b93505060a06129718a828b016126bb565b92505060c06129828a828b0161287f565b91505092959891949750929550565b600080600080600080600080610100898b0312156129ae57600080fd5b60006129ba8b8b6126bb565b98505060208901356001600160401b038111156129d657600080fd5b6129e28b828c01612745565b97505060408901356001600160401b038111156129fe57600080fd5b612a0a8b828c016126c6565b96505060608901356001600160401b03811115612a2657600080fd5b612a328b828c01612830565b9550506080612a438b828c0161287f565b94505060a0612a548b828c016126bb565b93505060c0612a658b828c0161287f565b92505060e0612a768b828c0161287f565b9150509295985092959890939650565b600080600060608486031215612a9b57600080fd5b6000612aa786866126bb565b9350506020612ab88682870161287f565b9250506040612ac98682870161287f565b9150509250925092565b60008060008060808587031215612ae957600080fd5b6000612af587876126bb565b9450506020612b068782880161287f565b9350506040612b178782880161287f565b92505060608501356001600160401b03811115612b3357600080fd5b612b3f878288016127b5565b91505092959194509250565b60008060008060808587031215612b6157600080fd5b6000612b6d87876126bb565b9450506020612b7e8782880161287f565b93505060408501356001600160401b03811115612b9a57600080fd5b612ba687828801612745565b92505060608501356001600160401b03811115612bc257600080fd5b612b3f87828801612830565b60008060008060008060c08789031215612be757600080fd5b6000612bf389896126bb565b9650506020612c0489828a0161287f565b95505060408701356001600160401b03811115612c2057600080fd5b612c2c89828a01612745565b94505060608701356001600160401b03811115612c4857600080fd5b612c5489828a01612830565b9350506080612c6589828a0161287f565b92505060a08701356001600160401b03811115612c8157600080fd5b612c8d89828a016127b5565b9150509295509295509295565b600080600060608486031215612caf57600080fd5b6000612cbb86866126bb565b9350506020612ccc8682870161287f565b92505060408401356001600160401b03811115612ce857600080fd5b612ac9868287016127b5565b600080600060608486031215612d0957600080fd5b6000612d1586866126bb565b9350506020612d268682870161287f565b92505060408401356001600160401b03811115612d4257600080fd5b612ac986828701612830565b60008060008060808587031215612d6457600080fd5b6000612d7087876126bb565b9450506020612d818782880161287f565b9350506040612d928782880161287f565b92505060608501356001600160401b03811115612dae57600080fd5b612b3f878288016126c6565b60008060008060808587031215612dd057600080fd5b6000612ddc87876126bb565b9450506020612ded8782880161287f565b9350506040612dfe8782880161287f565b92505060608501356001600160401b03811115612e1a57600080fd5b612b3f87828801612745565b600080600080600080600060e0888a031215612e4157600080fd5b6000612e4d8a8a6126bb565b9750506020612e5e8a828b0161287f565b9650506040612e6f8a828b0161287f565b95505060608801356001600160401b03811115612e8b57600080fd5b612e978a828b01612745565b94505060808801356001600160401b03811115612eb357600080fd5b612ebf8a828b01612745565b93505060a08801356001600160401b03811115612edb57600080fd5b6129718a828b01612830565b600080600080600060a08688031215612eff57600080fd5b6000612f0b88886126bb565b9550506020612f1c8882890161287f565b9450506040612f2d8882890161287f565b93505060608601356001600160401b03811115612f4957600080fd5b612f5588828901612745565b92505060808601356001600160401b03811115612f7157600080fd5b612f7d88828901612830565b9150509295509295909350565b60008060008060808587031215612fa057600080fd5b6000612fac87876126bb565b9450506020612fbd8782880161287f565b9350506040612ba68782880161287f565b60008060008060808587031215612fe457600080fd5b6000612ff087876126bb565b94505060206130018782880161287f565b93505060406130128782880161287f565b9250506060612b3f8782880161287f565b600080600080600060a0868803121561303b57600080fd5b600061304788886126bb565b95505060206130588882890161287f565b94505060406130698882890161287f565b935050606061307a8882890161287f565b9250506080612f7d888289016126bb565b600080600080600060a086880312156130a357600080fd5b60006130af88886126bb565b95505060206130c08882890161287f565b94505060406130d18882890161287f565b93505060606130e28882890161287f565b92505060808601356001600160401b038111156130fe57600080fd5b612f7d888289016127b5565b60008060008060008060c0878903121561312357600080fd5b600061312f89896126bb565b965050602061314089828a0161287f565b955050604061315189828a0161287f565b945050606061316289828a0161287f565b935050608061317389828a0161287f565b92505060a0612c8d89828a016126bb565b60006020828403121561319657600080fd5b60006128a88484612825565b6000602082840312156131b457600080fd5b60006128a8848461287f565b600080604083850312156131d357600080fd5b60006131df858561287f565b92505060206131f08582860161287f565b9150509250929050565b60006132068383613250565b505060200190565b600061321a8383613662565b505060600190565b600061322e838361369f565b9392505050565b600061320683836136d4565b61324a81613b4d565b82525050565b61324a81613b3d565b600061326482613b1a565b61326e8185613b28565b935061327983613b08565b8060005b838110156132a757815161329188826131fa565b975061329c83613b08565b92505060010161327d565b509495945050505050565b60006132bd82613b1a565b6132c78185613b28565b93506132d283613b08565b8060005b838110156132a75781516132ea88826131fa565b97506132f583613b08565b9250506001016132d6565b600061330b82613b1e565b6133158185613b28565b935061332083613b0e565b8060005b838110156132a75761333582613ba9565b61333f88826131fa565b975061334a83613b22565b925050600101613324565b600061336082613b1a565b61336a8185613b28565b935061337583613b08565b8060005b838110156132a757815161338d88826131fa565b975061339883613b08565b925050600101613379565b60006133ae82613b1a565b6133b88185613b28565b93506133c383613b08565b8060005b838110156132a75781516133db88826131fa565b97506133e683613b08565b9250506001016133c7565b60006133fc82613b1e565b6134068185613b28565b935061341183613b0e565b8060005b838110156132a75761342682613ba9565b61343088826131fa565b975061343b83613b22565b925050600101613415565b600061345182613b1a565b61345b8185613b28565b935061346683613b08565b8060005b838110156132a757815161347e888261320e565b975061348983613b08565b92505060010161346a565b600061349f82613b1a565b6134a98185613b28565b9350836020820285016134bb85613b08565b8060005b858110156134f557848403895281516134d88582613222565b94506134e383613b08565b60209a909a01999250506001016134bf565b5091979650505050505050565b600061350d82613b1a565b6135178185613b28565b935061352283613b08565b8060005b838110156132a757815161353a8882613235565b975061354583613b08565b925050600101613526565b61324a81613b48565b600061356482613b1a565b61356e8185613b28565b935061357e818560208601613b6a565b61358781613bb5565b9093019392505050565b8051610120808452600091908401906135aa82826133a3565b915050602083015184820360208601526135c482826132b2565b91505060408301516135d960408601826136d4565b5060608301516135ec6060860182613250565b5060808301516135ff60808601826136d4565b5060a083015161361260a08601826136d4565b5060c083015161362560c0860182613550565b5060e083015184820360e086015261363d8282613494565b9150506101008301518482036101008601526136598282613446565b95945050505050565b805160608301906136738482613250565b50602082015161368660208501826136d4565b5060408201516136996040850182613550565b50505050565b80516040808452600091908401906136b782826133a3565b91505060208301516136cc6020860182613250565b509392505050565b61324a816126b8565b602081016125bd8284613250565b606081016136f98286613241565b6137066020830185613250565b6128a860408301846136d4565b604081016137218285613241565b61322e60208301846136d4565b6060810161373c8286613250565b6137066020830185613241565b602081016125bd8284613550565b6020808252810161322e8184613591565b602081016125bd82846136d4565b6101008101613785828b6136d4565b613792602083018a613250565b81810360408301526137a48189613355565b905081810360608301526137b88188613259565b905081810360808301526137cc8187613559565b90506137db60a08301866136d4565b6137e860c0830185613250565b61075460e08301846136d4565b6060810161380382866136d4565b6138106020830185613241565b81810360408301526136598184613502565b6060810161383082866136d4565b61383d6020830185613250565b81810360408301526136598184613300565b60c0810161385d82896136d4565b61386a6020830188613250565b818103604083015261387c8187613355565b905081810360608301526138908186613355565b905081810360808301526138a48185613559565b90506138b360a08301846136d4565b979650505050505050565b606081016138cc82866136d4565b6138d96020830185613250565b818103604083015261365981846133f1565b606081016138f982866136d4565b6138106020830185613250565b6060810161391482866136d4565b6139216020830185613250565b81810360408301526136598184613559565b606081016136f982866136d4565b60a0810161394f82886136d4565b61395c6020830187613250565b61396960408301866136d4565b61397660608301856136d4565b6139836080830184613550565b9695505050505050565b6040810161372182856136d4565b608081016139a982876136d4565b6139b660208301866136d4565b6139c36040830185613250565b61365960608301846136d4565b608081016139de82876136d4565b6139eb60208301866136d4565b6139f86040830185613250565b81810360608301526139838184613502565b60808101613a1882876136d4565b613a2560208301866136d4565b8181036040830152613a378185613355565b905081810360608301526139838184613559565b60a08101613a5982886136d4565b613a6660208301876136d4565b8181036040830152613a788186613355565b90508181036060830152613a8c8185613559565b90506139836080830184613250565b6040518181016001600160401b0381118282101715613ab957600080fd5b604052919050565b60006001600160401b03821115613ad757600080fd5b5060209081020190565b60006001600160401b03821115613af757600080fd5b506020601f91909101601f19160190565b60200190565b60009081526020902090565b5190565b5490565b60010190565b90815260200190565b6001600160a01b031690565b60006125bd82613b31565b151590565b60006125bd8260006125bd82613b3d565b82818337506000910152565b60005b83811015613b85578181015183820152602001613b6d565b838111156136995750506000910152565b60006125bd613ba4836126b8565b613b31565b60006125bd8254613b96565b601f01601f191690565b613bc881613b3d565b8114613bd357600080fd5b50565b613bc881613b48565b613bc8816126b856fea365627a7a723058200d43a38c6b7510056a775b9270f98e56edd47d5c9580ff47d8e3e682414f57b56c6578706572696d656e74616cf564736f6c63430005090040", + "deployedBytecode": "0x6080604052600436106101b65760003560e01c80639e64d9bf116100ec578063c22215b81161008a578063dc2f874411610064578063dc2f8744146104a7578063ec41e4cd146104d8578063edba7013146104f8578063ee8c4bbf14610518576101b6565b8063c22215b814610447578063c496045014610467578063c6a8b42b14610487576101b6565b8063aa17aaef116100c6578063aa17aaef146103d2578063b178d768146103f2578063bae3755614610412578063c1107c1114610432576101b6565b80639e64d9bf1461037f578063a071fbd51461039f578063a08f793c146103bf576101b6565b806361cf22131161015957806388db0f521161013357806388db0f52146103085780638da5cb5b1461031d57806393c1ccc91461033f57806397d766651461035f576101b6565b806361cf2213146102a6578063720dc00c146102c65780637ef8213c146102e8576101b6565b80633756f3c8116101955780633756f3c8146102265780634ac4e25a146102465780634daf1bb514610266578063567b3d2e14610286576101b6565b8062f27e38146101bb57806306060ae3146101dd5780632092e25914610206575b600080fd5b3480156101c757600080fd5b506101db6101d636600461308b565b610545565b005b6101f06101eb366004612991565b610735565b6040516101fd9190613768565b60405180910390f35b34801561021257600080fd5b506101db610221366004613023565b610761565b34801561023257600080fd5b506101db610241366004612ad3565b6108af565b34801561025257600080fd5b506101db610261366004612cf4565b610aa1565b34801561027257600080fd5b506101db610281366004612d4e565b610b1d565b34801561029257600080fd5b506101f06102a13660046128b0565b610c8a565b3480156102b257600080fd5b506101db6102c136600461288a565b610dcf565b3480156102d257600080fd5b506102db610e1e565b6040516101fd9190613749565b3480156102f457600080fd5b506101db610303366004612f8a565b610e2e565b34801561031457600080fd5b506101f0610efd565b34801561032957600080fd5b50610332610f03565b6040516101fd91906136dd565b34801561034b57600080fd5b506101db61035a366004612a86565b610f12565b34801561036b57600080fd5b506101db61037a366004612b4b565b611117565b34801561038b57600080fd5b506101db61039a366004613023565b61125b565b3480156103ab57600080fd5b506101db6103ba366004612ad3565b6113ad565b6101db6103cd366004612a86565b61155a565b3480156103de57600080fd5b506101db6103ed366004612fce565b6118ba565b3480156103fe57600080fd5b506101db61040d366004612e26565b61199e565b34801561041e57600080fd5b506101db61042d36600461310a565b611aee565b34801561043e57600080fd5b50610332611ce0565b34801561045357600080fd5b506101db610462366004612bce565b611cef565b34801561047357600080fd5b506101db610482366004612ee7565b611d54565b34801561049357600080fd5b506101db6104a2366004612dba565b611e78565b3480156104b357600080fd5b506104c76104c23660046131a2565b611fc3565b6040516101fd959493929190613941565b3480156104e457600080fd5b506102db6104f33660046131c0565b612002565b34801561050457600080fd5b506101db610513366004612c9a565b612022565b34801561052457600080fd5b506105386105333660046131a2565b612086565b6040516101fd9190613757565b84336001600160a01b038216148061056757506004546001600160a01b031633145b61057057600080fd5b84600054811061057f57600080fd5b6000868152600160205260409020600701548690869081106105a057600080fd5b8888876001600083815260200190815260200160002060010181815481106105c457fe5b6000918252602090912001546001600160a01b038481169116146105e757600080fd5b600454600160a01b900460ff16156105fe57600080fd5b6004805460ff60a01b1916600160a01b17905560008b8152600160208190526040822060068101805460ff191690921790915560070180548c90811061064057fe5b6000918252602090912060029091020180548a519192501461066157600080fd5b60005b81548110156106db5760008a828151811061067b57fe5b602002602001015111156106d3576106d38d83600001838154811061069c57fe5b9060005260206000200160009054906101000a90046001600160a01b03168c84815181106106c657fe5b602002602001015161230e565b600101610664565b507f4d54a229a804a61c5213bec479b1407ce270c57b24fd8299d6ea98b6b2ab05208c8c8f8c60405161071194939291906139d0565b60405180910390a150506004805460ff60a01b191690555050505050505050505050565b6000806107478a8a8a8a8a8a8a610c8a565b90506107548a828561155a565b9998505050505050505050565b84336001600160a01b038216148061078357506004546001600160a01b031633145b61078c57600080fd5b84600054811061079b57600080fd5b6000868152600160205260409020805488918891889190829081106107bc57fe5b6000918252602090912001546001600160a01b038481169116146107df57600080fd5b6000898152600160208190526040909120015489908890811061080157600080fd5b87600160008d81526020019081526020016000206001018a8154811061082357fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055507f43a4e4542993b08827123085341d156186f40b28b6343f301c246a1d5f49d9f78b8d600160008f815260200190815260200160002060010160405161089993929190613822565b60405180910390a1505050505050505050505050565b83336001600160a01b03821614806108d157506004546001600160a01b031633145b6108da57600080fd5b8360005481106108e957600080fd5b60008581526001602052604090208054879187918791908290811061090a57fe5b6000918252602090912001546001600160a01b0384811691161461092d57600080fd5b600454600160a01b900460ff161561094457600080fd5b6004805460ff60a01b1916600160a01b17815560008981526001602052604090200154158061098457506000888152600160205260409020600401546014145b156109df57855160011461099757600080fd5b6000888152600160205260408120600501548751909188916109b557fe5b602002602001015111156109c857600080fd5b6109da888a886000815181106106c657fe5b610a4e565b60005b8651811015610a4c57600260008a81526020019081526020016000206000888381518110610a0c57fe5b60209081029190910181015182528101919091526040016000205460ff16610a3357600080fd5b610a44898b8984815181106106c657fe5b6001016109e2565b505b7fc9db45671da2b4994b84d56a8832d4e0bcc3722230dffce39df6886f9ec2d7d6888a88604051610a81939291906137f5565b60405180910390a150506004805460ff60a01b1916905550505050505050565b82336001600160a01b0382161480610ac357506004546001600160a01b031633145b610acc57600080fd5b826000548110610adb57600080fd5b7fd54885079d7edd9bea77e3f09e83bd65a121db3d3a14892227e0d2cffe73970f848685604051610b0e93929190613906565b60405180910390a15050505050565b83336001600160a01b0382161480610b3f57506004546001600160a01b031633145b610b4857600080fd5b836000548110610b5757600080fd5b600085815260016020526040902054859085908110610b7557600080fd5b600087815260016020526040902080548991899189919082908110610b9657fe5b6000918252602090912001546001600160a01b03848116911614610bb957600080fd5b60005b8851811015610c2c57600160008c8152602001908152602001600020600101898281518110610be757fe5b60209081029190910181015182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b039093169290921790915501610bbc565b507f43a4e4542993b08827123085341d156186f40b28b6343f301c246a1d5f49d9f78a8c600160008e8152602001908152602001600020600101604051610c7593929190613822565b60405180910390a15050505050505050505050565b600087336001600160a01b0382161480610cae57506004546001600160a01b031633145b610cb757600080fd5b821580610cc45750826014145b80610cd05750826102d1145b610cd957600080fd5b600088511180610cea575060008751115b610cf357600080fd5b600080548082526001602090815260409092208a5191929091610d1b918391908d01906125d8565b508851610d3190600183019060208c01906125d8565b5060028101879055600481018590558415610d64576003810180546001600160a01b0319166001600160a01b0388161790555b600054610d7890600163ffffffff6125a816565b6000556040517feea6c8039af43860e84bc876245a0d129d92b942390135da1051b219149c100e90610db99084908e908e908e908e908e908e908e90613776565b60405180910390a1509998505050505050505050565b6003546001600160a01b03163314610de657600080fd5b6004546001600160a01b031615610dfc57600080fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b600454600160a01b900460ff1681565b83336001600160a01b0382161480610e5057506004546001600160a01b031633145b610e5957600080fd5b836000548110610e6857600080fd5b600085815260016020526040902054859085908110610e8657600080fd5b600087815260016020526040902080548991899189919082908110610ea757fe5b6000918252602090912001546001600160a01b03848116911614610eca57600080fd5b7fdc41a74d84036920901cf73075fc7f917d75b1f5dbd7955c12f92033362472338a8c8a604051610c7593929190613906565b60005481565b6003546001600160a01b031681565b82336001600160a01b0382161480610f3457506004546001600160a01b031633145b610f3d57600080fd5b826000548110610f4c57600080fd5b600084815260016020526040902060080154849084908110610f6d57600080fd5b868686600160008381526020019081526020016000206008018181548110610f9157fe5b60009182526020909120600390910201546001600160a01b03848116911614610fb957600080fd5b600089815260016020526040902060060154899060ff1615610fda57600080fd5b60008a815260016020526040902060080180548b918b9182908110610ffb57fe5b600091825260209091206002600390920201015460ff161561101c57600080fd5b600454600160a01b900460ff161561103357600080fd5b6004805460ff60a01b1916600160a01b17905560008c815260016020526040902060020154421161106357600080fd5b60008c815260016020526040812060080180548d90811061108057fe5b600091825260209091206002600390920201908101805460ff191660019081179091558154908201549192506110c1918f916001600160a01b03169061230e565b7ffb1da5cbf027ad18b7c1f786bf81e9920cc0db09d7e299a8e4f3dbb64ce32f018d8d6040516110f292919061398d565b60405180910390a150506004805460ff60a01b19169055505050505050505050505050565b83336001600160a01b038216148061113957506004546001600160a01b031633145b61114257600080fd5b83600054811061115157600080fd5b600085815260016020526040902060020154421061116e57600080fd5b600084511161117c57600080fd5b600085815260016020818152604080842081518083019092528882526001600160a01b038b1682840152600701805493840180825590855293829020815180519294600202909101926111d4928492909101906125d8565b50602091820151600191820180546001600160a01b0319166001600160a01b03909216919091179055600088815291526040908190206007015490517fb9fb09db36801e95ddbb658a96b7ecf81b9b7e105e4a82d8887b1e7eadd45b84925061124b91889160001990910190889088908c90613a4b565b60405180910390a1505050505050565b84336001600160a01b038216148061127d57506004546001600160a01b031633145b61128657600080fd5b84600054811061129557600080fd5b6000868152600160205260409020548690859081106112b357600080fd5b600088815260016020526040902080548a918a918a9190829081106112d457fe5b6000918252602090912001546001600160a01b038481169116146112f757600080fd5b60008b8152600160205260409020548a1080611311575089155b61131a57600080fd5b60008b815260016020526040902080548991908b90811061133757fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055507fc969620b1b90646a0d597289d87dcf90d4cc4e554bddf0c003dfc05954a6d3598b8d600160008f8152602001908152602001600020600001604051610899939291906138be565b83336001600160a01b03821614806113cf57506004546001600160a01b031633145b6113d857600080fd5b8360005481106113e757600080fd5b60008581526001602052604090208054879187918791908290811061140857fe5b6000918252602090912001546001600160a01b0384811691161461142b57600080fd5b600454600160a01b900460ff161561144257600080fd5b6004805460ff60a01b1916600160a01b17905560005b865181101561152657600089815260016020526040902060080154875188908390811061148157fe5b60200260200101511061149357600080fd5b6000600160008b81526020019081526020016000206008018883815181106114b757fe5b6020026020010151815481106114c957fe5b60009182526020909120600390910201600281015490915060ff16156114ee57600080fd5b60028101805460ff1916600190811790915581549082015461151d918c916001600160a01b039091169061230e565b50600101611458565b507fc55c552370ad68c2faed667a8224a8ab373e39368872484a40619b1e884336de888a88604051610a81939291906138eb565b82336001600160a01b038216148061157c57506004546001600160a01b031633145b61158557600080fd5b82600054811061159457600080fd5b600454600160a01b900460ff16156115ab57600080fd5b6004805460ff60a01b1916600160a01b179055826115c857600080fd5b600084815260016020818152604080842081516060810183526001600160a01b038b811682528185018a815293820187815260088401805480890182559089528689209351600390910290930180546001600160a01b03191693909216929092178155925183860155516002909201805460ff19169215159290921790915592879052526004015461169957600084815260016020526040902060050154611676908463ffffffff6125a816565b60008581526001602052604090206005015534831461169457600080fd5b611852565b60008481526001602052604090206004015460141415611791576000848152600160205260409020600501546116d5908463ffffffff6125a816565b60008581526001602052604090206005015534156116f257600080fd5b600084815260016020526040908190206003015490516323b872dd60e01b81526001600160a01b03909116906323b872dd90611736908890309088906004016136eb565b602060405180830381600087803b15801561175057600080fd5b505af1158015611764573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117889190810190613184565b61169457600080fd5b6000848152600160205260409020600401546102d114156101b65760008481526002602090815260408083208684529091529020805460ff1916600117905534156117db57600080fd5b600084815260016020526040908190206003015490516323b872dd60e01b81526001600160a01b03909116906323b872dd9061181f908890309088906004016136eb565b600060405180830381600087803b15801561183957600080fd5b505af115801561184d573d6000803e3d6000fd5b505050505b600084815260016020526040908190206008015490517f7431e5e30247dcb2379eab9b0e60e49038c5ddb5cac27f27a17e950c0220a6939161189e91879160001901908990889061399b565b60405180910390a150506004805460ff60a01b19169055505050565b83336001600160a01b03821614806118dc57506004546001600160a01b031633145b6118e557600080fd5b8360005481106118f457600080fd5b60008581526001602052604090205485908590811061191257600080fd5b60008781526001602052604090208054899189918991908290811061193357fe5b6000918252602090912001546001600160a01b0384811691161461195657600080fd5b60008a81526001602052604090819020600201899055517f946e60a77ecf689f0595d6dcd6cf1537564a1d82472a69a3be00f7e8cb6f8b7d90610c75908c908e908c90613933565b86336001600160a01b03821614806119c057506004546001600160a01b031633145b6119c957600080fd5b60005487106119d757600080fd5b60008781526001602052604090205486106119f157600080fd5b6000878152600160205260409020805487908110611a0b57fe5b6000918252602090912001546001600160a01b03898116911614611a2e57600080fd5b600085511180611a3f575060008451115b611a4857600080fd5b60008781526001602090815260409091208651611a67928801906125d8565b5060008781526001602081815260409092208651611a8d939190920191908701906125d8565b5060008781526001602052604090819020600201839055517f588a0d2c7e36ab3050cd6b8b12441530ae5407613e9f2a62dc10bc43a302ed9c90611adc9089908b90899089908990899061384f565b60405180910390a15050505050505050565b85336001600160a01b0382161480611b1057506004546001600160a01b031633145b611b1957600080fd5b600086815260016020526040902080548891889188919082908110611b3a57fe5b6000918252602090912001546001600160a01b03848116911614611b5d57600080fd5b6000548910611b6b57600080fd5b600089815260016020819052604090912001548610611b8957600080fd5b6000898152600160205260409020548710611ba357600080fd5b6000898152600160205260409020805486919089908110611bc057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555084600160008b81526020019081526020016000206001018781548110611c1057fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b0394909416939093179092558a8152600190915260409081902090517fc969620b1b90646a0d597289d87dcf90d4cc4e554bddf0c003dfc05954a6d35991611c7c918c918e916138be565b60405180910390a17f43a4e4542993b08827123085341d156186f40b28b6343f301c246a1d5f49d9f7898b600160008d8152602001908152602001600020600101604051611ccc93929190613822565b60405180910390a150505050505050505050565b6004546001600160a01b031681565b85336001600160a01b0382161480611d1157506004546001600160a01b031633145b611d1a57600080fd5b611d2687878787611117565b600086815260016020526040902060070154611d4b9088908890600019018686610545565b50505050505050565b84336001600160a01b0382161480611d7657506004546001600160a01b031633145b611d7f57600080fd5b846000548110611d8e57600080fd5b600086815260016020526040902060070154869086908110611daf57600080fd5b888888600160008381526020019081526020016000206007018181548110611dd357fe5b60009182526020909120600160029092020101546001600160a01b03848116911614611dfe57600080fd5b60008b815260016020526040902060070180548a91908c908110611e1e57fe5b90600052602060002090600202016000019080519060200190611e429291906125d8565b507fde0d52ad68b0a792924de426fb3a2f2c1ce908be531894e35d85e533fbb8ec168b8b8b8b6040516108999493929190613a0a565b83336001600160a01b0382161480611e9a57506004546001600160a01b031633145b611ea357600080fd5b836000548110611eb257600080fd5b600085815260016020526040902054859085908110611ed057600080fd5b600087815260016020526040902080548991899189919082908110611ef157fe5b6000918252602090912001546001600160a01b03848116911614611f1457600080fd5b60005b8851811015611f815760008b815260016020526040902089518a9083908110611f3c57fe5b60209081029190910181015182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b039093169290921790915501611f17565b5060008a8152600160205260409081902090517fc969620b1b90646a0d597289d87dcf90d4cc4e554bddf0c003dfc05954a6d35991610c75918d918f916138be565b6001602052600090815260409020600281015460038201546004830154600584015460069094015492936001600160a01b039092169290919060ff1685565b600260209081526000928352604080842090915290825290205460ff1681565b82336001600160a01b038216148061204457506004546001600160a01b031633145b61204d57600080fd5b60005b825181101561207f57612077858585848151811061206a57fe5b6020026020010151610f12565b600101612050565b5050505050565b61208e61263d565b6000828152600160209081526040918290208251815461014093810282018401909452610120810184815290939192849284918401828280156120fa57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116120dc575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561215c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161213e575b5050509183525050600282015460208083019190915260038301546001600160a01b03166040808401919091526004840154606084015260058401546080840152600684015460ff16151560a084015260078401805482518185028101850190935280835260c090940193919290919060009084015b8282101561227957838290600052602060002090600202016040518060400160405290816000820180548060200260200160405190810160405280929190818152602001828054801561224e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612230575b50505091835250506001918201546001600160a01b03166020918201529183529290920191016121d2565b50505050815260200160088201805480602002602001604051908101604052809291908181526020016000905b82821015612300576000848152602090819020604080516060810182526003860290920180546001600160a01b031683526001808201548486015260029091015460ff1615159183019190915290835290920191016122a6565b505050915250909392505050565b6000838152600160205260409020600401546123c0576000811161233157600080fd5b60008381526001602052604090206005015481111561234f57600080fd5b600083815260016020526040902060050154612371908263ffffffff6125c316565b6000848152600160205260408082206005019290925590516001600160a01b0384169183156108fc02918491818181858888f193505050501580156123ba573d6000803e3d6000fd5b506125a3565b600083815260016020526040902060040154601414156124d357600081116123e757600080fd5b60008381526001602052604090206005015481111561240557600080fd5b600083815260016020526040902060050154612427908263ffffffff6125c316565b600084815260016020526040908190206005810192909255600390910154905163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906124739085908590600401613713565b602060405180830381600087803b15801561248d57600080fd5b505af11580156124a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506124c59190810190613184565b6124ce57600080fd5b6125a3565b6000838152600160205260409020600401546102d114156101b657600083815260026020908152604080832084845290915290205460ff1661251457600080fd5b60008381526002602090815260408083208484528252808320805460ff191690558583526001909152908190206003015490516323b872dd60e01b81526001600160a01b03909116906323b872dd906125759030908690869060040161372e565b600060405180830381600087803b15801561258f57600080fd5b505af1158015611d4b573d6000803e3d6000fd5b505050565b6000828201838110156125ba57600080fd5b90505b92915050565b6000828211156125d257600080fd5b50900390565b82805482825590600052602060002090810192821561262d579160200282015b8281111561262d57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906125f8565b50612639929150612694565b5090565b60405180610120016040528060608152602001606081526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160001515815260200160608152602001606081525090565b6126b891905b808211156126395780546001600160a01b031916815560010161269a565b90565b80356125bd81613bbf565b600082601f8301126126d757600080fd5b81356126ea6126e582613ac1565b613a9b565b9150818183526020840193506020810190508385602084028201111561270f57600080fd5b60005b8381101561273b578161272588826126bb565b8452506020928301929190910190600101612712565b5050505092915050565b600082601f83011261275657600080fd5b81356127646126e582613ac1565b9150818183526020840193506020810190508385602084028201111561278957600080fd5b60005b8381101561273b578161279f88826126bb565b845250602092830192919091019060010161278c565b600082601f8301126127c657600080fd5b81356127d46126e582613ac1565b915081818352602084019350602081019050838560208402820111156127f957600080fd5b60005b8381101561273b578161280f888261287f565b84525060209283019291909101906001016127fc565b80516125bd81613bd6565b600082601f83011261284157600080fd5b813561284f6126e582613ae1565b9150808252602083016020830185838301111561286b57600080fd5b612876838284613b5e565b50505092915050565b80356125bd81613bdf565b60006020828403121561289c57600080fd5b60006128a884846126bb565b949350505050565b600080600080600080600060e0888a0312156128cb57600080fd5b60006128d78a8a6126bb565b97505060208801356001600160401b038111156128f357600080fd5b6128ff8a828b01612745565b96505060408801356001600160401b0381111561291b57600080fd5b6129278a828b016126c6565b95505060608801356001600160401b0381111561294357600080fd5b61294f8a828b01612830565b94505060806129608a828b0161287f565b93505060a06129718a828b016126bb565b92505060c06129828a828b0161287f565b91505092959891949750929550565b600080600080600080600080610100898b0312156129ae57600080fd5b60006129ba8b8b6126bb565b98505060208901356001600160401b038111156129d657600080fd5b6129e28b828c01612745565b97505060408901356001600160401b038111156129fe57600080fd5b612a0a8b828c016126c6565b96505060608901356001600160401b03811115612a2657600080fd5b612a328b828c01612830565b9550506080612a438b828c0161287f565b94505060a0612a548b828c016126bb565b93505060c0612a658b828c0161287f565b92505060e0612a768b828c0161287f565b9150509295985092959890939650565b600080600060608486031215612a9b57600080fd5b6000612aa786866126bb565b9350506020612ab88682870161287f565b9250506040612ac98682870161287f565b9150509250925092565b60008060008060808587031215612ae957600080fd5b6000612af587876126bb565b9450506020612b068782880161287f565b9350506040612b178782880161287f565b92505060608501356001600160401b03811115612b3357600080fd5b612b3f878288016127b5565b91505092959194509250565b60008060008060808587031215612b6157600080fd5b6000612b6d87876126bb565b9450506020612b7e8782880161287f565b93505060408501356001600160401b03811115612b9a57600080fd5b612ba687828801612745565b92505060608501356001600160401b03811115612bc257600080fd5b612b3f87828801612830565b60008060008060008060c08789031215612be757600080fd5b6000612bf389896126bb565b9650506020612c0489828a0161287f565b95505060408701356001600160401b03811115612c2057600080fd5b612c2c89828a01612745565b94505060608701356001600160401b03811115612c4857600080fd5b612c5489828a01612830565b9350506080612c6589828a0161287f565b92505060a08701356001600160401b03811115612c8157600080fd5b612c8d89828a016127b5565b9150509295509295509295565b600080600060608486031215612caf57600080fd5b6000612cbb86866126bb565b9350506020612ccc8682870161287f565b92505060408401356001600160401b03811115612ce857600080fd5b612ac9868287016127b5565b600080600060608486031215612d0957600080fd5b6000612d1586866126bb565b9350506020612d268682870161287f565b92505060408401356001600160401b03811115612d4257600080fd5b612ac986828701612830565b60008060008060808587031215612d6457600080fd5b6000612d7087876126bb565b9450506020612d818782880161287f565b9350506040612d928782880161287f565b92505060608501356001600160401b03811115612dae57600080fd5b612b3f878288016126c6565b60008060008060808587031215612dd057600080fd5b6000612ddc87876126bb565b9450506020612ded8782880161287f565b9350506040612dfe8782880161287f565b92505060608501356001600160401b03811115612e1a57600080fd5b612b3f87828801612745565b600080600080600080600060e0888a031215612e4157600080fd5b6000612e4d8a8a6126bb565b9750506020612e5e8a828b0161287f565b9650506040612e6f8a828b0161287f565b95505060608801356001600160401b03811115612e8b57600080fd5b612e978a828b01612745565b94505060808801356001600160401b03811115612eb357600080fd5b612ebf8a828b01612745565b93505060a08801356001600160401b03811115612edb57600080fd5b6129718a828b01612830565b600080600080600060a08688031215612eff57600080fd5b6000612f0b88886126bb565b9550506020612f1c8882890161287f565b9450506040612f2d8882890161287f565b93505060608601356001600160401b03811115612f4957600080fd5b612f5588828901612745565b92505060808601356001600160401b03811115612f7157600080fd5b612f7d88828901612830565b9150509295509295909350565b60008060008060808587031215612fa057600080fd5b6000612fac87876126bb565b9450506020612fbd8782880161287f565b9350506040612ba68782880161287f565b60008060008060808587031215612fe457600080fd5b6000612ff087876126bb565b94505060206130018782880161287f565b93505060406130128782880161287f565b9250506060612b3f8782880161287f565b600080600080600060a0868803121561303b57600080fd5b600061304788886126bb565b95505060206130588882890161287f565b94505060406130698882890161287f565b935050606061307a8882890161287f565b9250506080612f7d888289016126bb565b600080600080600060a086880312156130a357600080fd5b60006130af88886126bb565b95505060206130c08882890161287f565b94505060406130d18882890161287f565b93505060606130e28882890161287f565b92505060808601356001600160401b038111156130fe57600080fd5b612f7d888289016127b5565b60008060008060008060c0878903121561312357600080fd5b600061312f89896126bb565b965050602061314089828a0161287f565b955050604061315189828a0161287f565b945050606061316289828a0161287f565b935050608061317389828a0161287f565b92505060a0612c8d89828a016126bb565b60006020828403121561319657600080fd5b60006128a88484612825565b6000602082840312156131b457600080fd5b60006128a8848461287f565b600080604083850312156131d357600080fd5b60006131df858561287f565b92505060206131f08582860161287f565b9150509250929050565b60006132068383613250565b505060200190565b600061321a8383613662565b505060600190565b600061322e838361369f565b9392505050565b600061320683836136d4565b61324a81613b4d565b82525050565b61324a81613b3d565b600061326482613b1a565b61326e8185613b28565b935061327983613b08565b8060005b838110156132a757815161329188826131fa565b975061329c83613b08565b92505060010161327d565b509495945050505050565b60006132bd82613b1a565b6132c78185613b28565b93506132d283613b08565b8060005b838110156132a75781516132ea88826131fa565b97506132f583613b08565b9250506001016132d6565b600061330b82613b1e565b6133158185613b28565b935061332083613b0e565b8060005b838110156132a75761333582613ba9565b61333f88826131fa565b975061334a83613b22565b925050600101613324565b600061336082613b1a565b61336a8185613b28565b935061337583613b08565b8060005b838110156132a757815161338d88826131fa565b975061339883613b08565b925050600101613379565b60006133ae82613b1a565b6133b88185613b28565b93506133c383613b08565b8060005b838110156132a75781516133db88826131fa565b97506133e683613b08565b9250506001016133c7565b60006133fc82613b1e565b6134068185613b28565b935061341183613b0e565b8060005b838110156132a75761342682613ba9565b61343088826131fa565b975061343b83613b22565b925050600101613415565b600061345182613b1a565b61345b8185613b28565b935061346683613b08565b8060005b838110156132a757815161347e888261320e565b975061348983613b08565b92505060010161346a565b600061349f82613b1a565b6134a98185613b28565b9350836020820285016134bb85613b08565b8060005b858110156134f557848403895281516134d88582613222565b94506134e383613b08565b60209a909a01999250506001016134bf565b5091979650505050505050565b600061350d82613b1a565b6135178185613b28565b935061352283613b08565b8060005b838110156132a757815161353a8882613235565b975061354583613b08565b925050600101613526565b61324a81613b48565b600061356482613b1a565b61356e8185613b28565b935061357e818560208601613b6a565b61358781613bb5565b9093019392505050565b8051610120808452600091908401906135aa82826133a3565b915050602083015184820360208601526135c482826132b2565b91505060408301516135d960408601826136d4565b5060608301516135ec6060860182613250565b5060808301516135ff60808601826136d4565b5060a083015161361260a08601826136d4565b5060c083015161362560c0860182613550565b5060e083015184820360e086015261363d8282613494565b9150506101008301518482036101008601526136598282613446565b95945050505050565b805160608301906136738482613250565b50602082015161368660208501826136d4565b5060408201516136996040850182613550565b50505050565b80516040808452600091908401906136b782826133a3565b91505060208301516136cc6020860182613250565b509392505050565b61324a816126b8565b602081016125bd8284613250565b606081016136f98286613241565b6137066020830185613250565b6128a860408301846136d4565b604081016137218285613241565b61322e60208301846136d4565b6060810161373c8286613250565b6137066020830185613241565b602081016125bd8284613550565b6020808252810161322e8184613591565b602081016125bd82846136d4565b6101008101613785828b6136d4565b613792602083018a613250565b81810360408301526137a48189613355565b905081810360608301526137b88188613259565b905081810360808301526137cc8187613559565b90506137db60a08301866136d4565b6137e860c0830185613250565b61075460e08301846136d4565b6060810161380382866136d4565b6138106020830185613241565b81810360408301526136598184613502565b6060810161383082866136d4565b61383d6020830185613250565b81810360408301526136598184613300565b60c0810161385d82896136d4565b61386a6020830188613250565b818103604083015261387c8187613355565b905081810360608301526138908186613355565b905081810360808301526138a48185613559565b90506138b360a08301846136d4565b979650505050505050565b606081016138cc82866136d4565b6138d96020830185613250565b818103604083015261365981846133f1565b606081016138f982866136d4565b6138106020830185613250565b6060810161391482866136d4565b6139216020830185613250565b81810360408301526136598184613559565b606081016136f982866136d4565b60a0810161394f82886136d4565b61395c6020830187613250565b61396960408301866136d4565b61397660608301856136d4565b6139836080830184613550565b9695505050505050565b6040810161372182856136d4565b608081016139a982876136d4565b6139b660208301866136d4565b6139c36040830185613250565b61365960608301846136d4565b608081016139de82876136d4565b6139eb60208301866136d4565b6139f86040830185613250565b81810360608301526139838184613502565b60808101613a1882876136d4565b613a2560208301866136d4565b8181036040830152613a378185613355565b905081810360608301526139838184613559565b60a08101613a5982886136d4565b613a6660208301876136d4565b8181036040830152613a788186613355565b90508181036060830152613a8c8185613559565b90506139836080830184613250565b6040518181016001600160401b0381118282101715613ab957600080fd5b604052919050565b60006001600160401b03821115613ad757600080fd5b5060209081020190565b60006001600160401b03821115613af757600080fd5b506020601f91909101601f19160190565b60200190565b60009081526020902090565b5190565b5490565b60010190565b90815260200190565b6001600160a01b031690565b60006125bd82613b31565b151590565b60006125bd8260006125bd82613b3d565b82818337506000910152565b60005b83811015613b85578181015183820152602001613b6d565b838111156136995750506000910152565b60006125bd613ba4836126b8565b613b31565b60006125bd8254613b96565b601f01601f191690565b613bc881613b3d565b8114613bd357600080fd5b50565b613bc881613b48565b613bc8816126b856fea365627a7a723058200d43a38c6b7510056a775b9270f98e56edd47d5c9580ff47d8e3e682414f57b56c6578706572696d656e74616cf564736f6c63430005090040", + "sourceMap": "539:35438:5:-;;;5183:149;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5308:5:5;:18;;-1:-1:-1;;;;;;5308:18:5;5316:10;5308:18;;;539:35438;;;;;;", + "deployedSourceMap": "539:35438:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21036:1181;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21036:1181:5;;;;;;;;:::i;:::-;;8149:491;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;27395:487;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;27395:487:5;;;;;;;;:::i;15575:1074::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15575:1074:5;;;;;;;;:::i;17175:311::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17175:311:5;;;;;;;;:::i;32507:513::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;32507:513:5;;;;;;;;:::i;6527:1480::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6527:1480:5;;;;;;;;:::i;5469:267::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5469:267:5;;;;;;;;:::i;2968:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2968:23:5;;;:::i;:::-;;;;;;;;29755:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;29755:458:5;;;;;;;;:::i;2350:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2350:23:5;;;:::i;2719:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2719:20:5;;;:::i;:::-;;;;;;;;11968:850;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11968:850:5;;;;;;;;:::i;18009:819::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18009:819:5;;;;;;;;:::i;26303:577::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;26303:577:5;;;;;;;;:::i;13950:825::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13950:825:5;;;;;;;;:::i;9482:1948::-;;;;;;;;;:::i;30674:414::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;30674:414:5;;;;;;;;:::i;24629:1160::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;24629:1160:5;;;;;;;;:::i;28489:769::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;28489:769:5;;;;;;;;:::i;2824:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2824:28:5;;;:::i;23253:615::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23253:615:5;;;;;;;;:::i;19435:747::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19435:747:5;;;;;;;;:::i;31540:507::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;31540:507:5;;;;;;;;:::i;2445:39::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2445:39:5;;;;;;;;:::i;:::-;;;;;;;;;;;;2527:61;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2527:61:5;;;;;;;;:::i;13202:295::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13202:295:5;;;;;;;;:::i;33179:130::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;33179:130:5;;;;;;;;:::i;:::-;;;;;;;;21036:1181;21221:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;21260:9;3274:11;;3265:6;:20;3257:29;;;;;;3580:19;;;;:8;:19;;;;;:32;;:39;21306:9;;21317:14;;3571:48;;3563:57;;;;;;21349:7;21358:9;21369:11;4664:8;:19;4673:9;4664:19;;;;;;;;;;;:29;;4694:11;4664:42;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4653:53:5;;;4664:42;;4653:53;4645:62;;;;;;3111:11;;-1:-1:-1;;;3111:11:5;;;;3110:12;3102:21;;;;;;3130:11;:18;;-1:-1:-1;;;;3130:18:5;-1:-1:-1;;;3130:18:5;;;;21499:19;;;3144:4;21499:19;;;;;;;:30;;;:37;;-1:-1:-1;;21499:37:5;;;;;;;21579:32;;:48;;21612:14;;21579:48;;;;;;;;;;;;;;;;;;;21668:29;;21644:20;;21579:48;;-1:-1:-1;21644:53:5;21636:62;;;;;;21784:9;21779:261;21803:29;;21799:33;;21779:261;;;21872:1;21853:13;21867:1;21853:16;;;;;;;;;;;;;;:20;21849:184;;;21951:70;21966:9;21977:11;:22;;22000:1;21977:25;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21977:25:5;22004:13;22018:1;22004:16;;;;;;;;;;;;;;21951:14;:70::i;:::-;21834:3;;21779:261;;;;22051:160;22071:9;22112:14;22158:7;22197:13;22051:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;3163:11:5;:19;;-1:-1:-1;;;;3163:19:5;;;-1:-1:-1;;;;;;;;;;;21036:1181:5:o;8149:491::-;8439:4;8455:13;8471:83;8483:7;8492:8;8502:10;8514:5;8521:9;8532:6;8540:13;8471:11;:83::i;:::-;8455:99;;8563:45;8574:7;8583:8;8593:14;8563:10;:45::i;:::-;8625:8;8149:491;-1:-1:-1;;;;;;;;;8149:491:5:o;27395:487::-;27572:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;27611:9;3274:11;;3265:6;:20;3257:29;;;;;;4062:19;;;;:8;:19;;;;;:38;;27638:7;;27647:9;;27658;;4062:19;27658:9;;4062:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4051:49:5;;;4062:38;;4051:49;4043:58;;;;;;3899:19;;;;:8;:19;;;;;;;;:29;:36;27701:9;;27712:11;;3890:45;;3882:54;;;;;;27780:9;27735:8;:19;27744:9;27735:19;;;;;;;;;;;:29;;27765:11;27735:42;;;;;;;;;;;;;;;;:54;;;;;-1:-1:-1;;;;;27735:54:5;;;;;-1:-1:-1;;;;;27735:54:5;;;;;;27803:73;27826:9;27837:7;27846:8;:19;27855:9;27846:19;;;;;;;;;;;:29;;27803:73;;;;;;;;;;;;;;;;;4106:1;;3293;;;5135;27395:487;;;;;;:::o;15575:1074::-;15729:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;15768:9;3274:11;;3265:6;:20;3257:29;;;;;;4062:19;;;;:8;:19;;;;;:38;;15795:7;;15804:9;;15815;;4062:19;15815:9;;4062:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4051:49:5;;;4062:38;;4051:49;4043:58;;;;;;3111:11;;-1:-1:-1;;;3111:11:5;;;;3110:12;3102:21;;;;;;3130:11;:18;;-1:-1:-1;;;;3130:18:5;-1:-1:-1;;;3130:18:5;;;;15860:19;;;3144:4;15860:19;;;;;:32;;:37;;:79;;-1:-1:-1;15901:19:5;;;;:8;:19;;;;;:32;;;15937:2;15901:38;15860:79;15856:731;;;15957:8;:15;15976:1;15957:20;15949:29;;;;;;16068:19;;;;:8;:19;;;;;:27;;;16053:11;;16068:27;;16053:8;;:11;;;;;;;;;;:42;;16045:51;;;;;;16200:47;16215:9;16226:7;16235:8;16244:1;16235:11;;;;;;;16200:47;15856:731;;;16324:6;16319:261;16340:8;:15;16336:1;:19;16319:261;;;16380:13;:24;16394:9;16380:24;;;;;;;;;;;:37;16405:8;16414:1;16405:11;;;;;;;;;;;;;;;;;;;16380:37;;;;;;;;;;-1:-1:-1;16380:37:5;;;;16372:46;;;;;;16523:47;16538:9;16549:7;16558:8;16567:1;16558:11;;;;;;;16523:47;16357:3;;16319:261;;;;15856:731;16600:43;16614:9;16625:7;16634:8;16600:43;;;;;;;;;;;;;;;;;-1:-1:-1;;3163:11:5;:19;;-1:-1:-1;;;;3163:19:5;;;-1:-1:-1;;;;;;;15575:1074:5:o;17175:311::-;17299:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;17338:9;3274:11;;3265:6;:20;3257:29;;;;;;17364:42;17380:9;17391:7;17400:5;17364:42;;;;;;;;;;;;;;;;;5135:1;17175:311;;;;:::o;32507:513::-;32659:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;32698:9;3274:11;;3265:6;:20;3257:29;;;;;;3741:19;;;;:8;:19;;;;;:34;32739:9;;32750;;3732:43;;3724:52;;;;;;4062:19;;;;:8;:19;;;;;:38;;32777:7;;32786:9;;32797;;4062:19;32797:9;;4062:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4051:49:5;;;4062:38;;4051:49;4043:58;;;;;;32823:6;32818:110;32839:10;:17;32835:1;:21;32818:110;;;32871:8;:19;32880:9;32871:19;;;;;;;;;;;:29;;32906:10;32917:1;32906:13;;;;;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;-1:-1;32871:49:5;;;;;;;;;;;;-1:-1:-1;;;;;;32871:49:5;-1:-1:-1;;;;;32871:49:5;;;;;;;;;;32858:3;32818:110;;;;32941:73;32964:9;32975:7;32984:8;:19;32993:9;32984:19;;;;;;;;;;;:29;;32941:73;;;;;;;;;;;;;;;;;3783:1;;;3293;;5135;32507:513;;;;;:::o;6527:1480::-;6800:4;6777:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;6824:18;;;:41;;;6846:13;6863:2;6846:19;6824:41;:65;;;;6869:13;6886:3;6869:20;6824:65;6816:74;;;;;;6989:1;6971:8;:15;:19;:44;;;;7014:1;6994:10;:17;:21;6971:44;6963:53;;;;;;7100:13;7116:11;;7240:18;;;:8;:18;;;;;;;;7265:28;;7116:11;;7240:18;;7265:28;;7240:18;;7265:28;;;;;:::i;:::-;-1:-1:-1;7300:32:5;;;;:19;;;;:32;;;;;:::i;:::-;-1:-1:-1;7339:18:5;;;:30;;;7376:22;;;:38;;;7427:18;;7423:64;;7455:15;;;:24;;-1:-1:-1;;;;;;7455:24:5;-1:-1:-1;;;;;7455:24:5;;;;;7423:64;7509:11;;:18;;7525:1;7509:18;:15;:18;:::i;:::-;7495:11;:32;7615:360;;;;;;7628:8;;7661:7;;7693:8;;7726:10;;7761:5;;7896:9;;7930:6;;7961:13;;7615:360;;;;;;;;;;-1:-1:-1;7992:8:5;6527:1480;-1:-1:-1;;;;;;;;;6527:1480:5:o;5469:267::-;5559:5;;-1:-1:-1;;;;;5559:5:5;5545:10;:19;5537:28;;;;;;5619:13;;-1:-1:-1;;;;;5619:13:5;:27;5611:36;;;;;;5706:13;:24;;-1:-1:-1;;;;;;5706:24:5;-1:-1:-1;;;;;5706:24:5;;;;;;;;;;5469:267::o;2968:23::-;;;-1:-1:-1;;;2968:23:5;;;;;:::o;29755:458::-;29897:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;29936:9;3274:11;;3265:6;:20;3257:29;;;;;;3741:19;;;;:8;:19;;;;;:34;29977:9;;29988;;3732:43;;3724:52;;;;;;4062:19;;;;:8;:19;;;;;:38;;30015:7;;30024:9;;30035;;4062:19;30035:9;;4062:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4051:49:5;;;4062:38;;4051:49;4043:58;;;;;;30061:44;30079:9;30090:7;30099:5;30061:44;;;;;;;;;2350:23;;;;:::o;2719:20::-;;;-1:-1:-1;;;;;2719:20:5;;:::o;11968:850::-;12098:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;12137:9;3274:11;;3265:6;:20;3257:29;;;;;;3413:19;;;;:8;:19;;;;;:33;;:40;12184:9;;12195:15;;3404:49;;3396:58;;;;;;12233:7;12242:9;12253:15;4465:8;:19;4474:9;4465:19;;;;;;;;;;;:33;;4499:15;4465:50;;;;;;;;;;;;;;;;;;;;;:62;-1:-1:-1;;;;;4441:86:5;;;4465:62;;4441:86;4433:95;;;;;;4788:19;;;;:8;:19;;;;;:30;;;12286:9;;4788:30;;4787:31;4779:40;;;;;;4931:19;;;;:8;:19;;;;;:33;;:50;;12317:9;;12328:15;;;;4931:50;;;;;;;;;;;;;;:59;:50;;;;;:59;;;;4930:60;4922:69;;;;;;3111:11;;-1:-1:-1;;;3111:11:5;;;;3110:12;3102:21;;;;;;3130:11;:18;;-1:-1:-1;;;;3130:18:5;-1:-1:-1;;;3130:18:5;;;;12389:19;;;3144:4;12389:19;;;;;:28;;;12383:3;:34;12375:43;;;;;;12491:33;12527:19;;;:8;:19;;;;;:33;;:50;;12561:15;;12527:50;;;;;;;;;;;;;;12586:21;12527:50;;;;;12586:21;;;:28;;-1:-1:-1;;12586:28:5;12610:4;12586:28;;;;;;12649:24;;12675:19;;;;12527:50;;-1:-1:-1;12623:72:5;;12638:9;;-1:-1:-1;;;;;12649:24:5;;12623:14;:72::i;:::-;12764:48;12785:9;12796:15;12764:48;;;;;;;;;;;;;;;;-1:-1:-1;;3163:11:5;:19;;-1:-1:-1;;;;3163:19:5;;;-1:-1:-1;;;;;;;;;;;;11968:850:5:o;18009:819::-;18177:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;18216:9;3274:11;;3265:6;:20;3257:29;;;;;;18251:19;;;;:8;:19;;;;;:28;;;18245:3;:34;18237:43;;;;;;18379:1;18358:11;:18;:22;18350:31;;;;;;18456:19;;;;:8;:19;;;;;;;;18494:33;;;;;;;;;;;-1:-1:-1;;;;;18494:33:5;;;;;;18456:32;;27:10:-1;;23:18;;;45:23;;;18456:72:5;;;;;;;;;;;18494:33;;18456:72;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;18456:72:5;;;;;;;;;;;-1:-1:-1;;;;;;18456:72:5;-1:-1:-1;;;;;18456:72:5;;;;;;;;;-1:-1:-1;18596:19:5;;;;;;;;;;:32;;:39;18542:280;;;;-1:-1:-1;18542:280:5;;18596:19;;-1:-1:-1;;18596:43:5;;;;18668:11;;18707:5;;18814:7;;18542:280;;;;;;;;;;5135:1;18009:819;;;;;:::o;26303:577::-;26483:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;26522:9;3274:11;;3265:6;:20;3257:29;;;;;;3741:19;;;;:8;:19;;;;;:34;26563:9;;26574:17;;3732:43;;3724:52;;;;;;4062:19;;;;:8;:19;;;;;:38;;26609:7;;26618:9;;26629;;4062:19;26629:9;;4062:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4051:49:5;;;4062:38;;4051:49;4043:58;;;;;;26670:19;;;;:8;:19;;;;;:34;26658:46;;;:64;;-1:-1:-1;26708:14:5;;26658:64;26650:73;;;;;;26732:19;;;;:8;:19;;;;;:46;;26781:10;;26732:19;26760:17;;26732:46;;;;;;;;;;;;;;:59;;;;;-1:-1:-1;;;;;26732:59:5;;;;;-1:-1:-1;;;;;26732:59:5;;;;;;26805:69;26826:9;26837:7;26846:8;:19;26855:9;26846:19;;;;;;;;;;;:27;;26805:69;;;;;;;;;13950:825;14112:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;14151:9;3274:11;;3265:6;:20;3257:29;;;;;;4062:19;;;;:8;:19;;;;;:38;;14178:7;;14187:9;;14198;;4062:19;14198:9;;4062:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4051:49:5;;;4062:38;;4051:49;4043:58;;;;;;3111:11;;-1:-1:-1;;;3111:11:5;;;;3110:12;3102:21;;;;;;3130:11;:18;;-1:-1:-1;;;;3130:18:5;-1:-1:-1;;;3130:18:5;;;;14239:458;14260:16;:23;14256:1;:27;14239:458;;;14328:19;;;;:8;:19;;;;;:33;;:40;14306:19;;:16;;14323:1;;14306:19;;;;;;;;;;;;:62;14298:71;;;;;;14380:33;14416:8;:19;14425:9;14416:19;;;;;;;;;;;:33;;14450:16;14467:1;14450:19;;;;;;;;;;;;;;14416:54;;;;;;;;;;;;;;;;;;;;;14490:21;;;;14416:54;;-1:-1:-1;14490:21:5;;14489:22;14481:31;;;;;;14523:21;;;:28;;-1:-1:-1;;14523:28:5;14547:4;14523:28;;;;;;14588:24;;14614:19;;;;14562:72;;14577:9;;-1:-1:-1;;;;;14588:24:5;;;;14562:14;:72::i;:::-;-1:-1:-1;14285:3:5;;14239:458;;;;14710:59;14732:9;14743:7;14752:16;14710:59;;;;;;;;;9482:1948;9617:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;9656:9;3274:11;;3265:6;:20;3257:29;;;;;;3111:11;;-1:-1:-1;;;3111:11:5;;;;3110:12;3102:21;;;;;;3130:11;:18;;-1:-1:-1;;;;3130:18:5;-1:-1:-1;;;3130:18:5;;;9705:11;9697:20;;;;;;9781:19;;;;:8;:19;;;;;;;;9828:37;;;;;;;-1:-1:-1;;;;;9828:37:5;;;;;;;;;;;;;;;;;9781:33;;;27:10:-1;;23:18;;;45:23;;9781:85:5;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9781:85:5;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9781:85:5;;;;;;;;;;;9918:19;;;;;:32;;;9914:1295;;9997:19;;;;:8;:19;;;;;:27;;;:40;;10029:7;9997:40;:31;:40;:::i;:::-;9967:19;;;;:8;:19;;;;;:27;;:70;10096:9;:20;;10088:29;;;;;;9914:1295;;;10135:19;;;;:8;:19;;;;;:32;;;10171:2;10135:38;10131:1078;;;10215:19;;;;:8;:19;;;;;:27;;;:40;;10247:7;10215:40;:31;:40;:::i;:::-;10185:19;;;;:8;:19;;;;;:27;;:70;10314:9;:14;10306:23;;;;;;10451:19;;;;:8;:19;;;;;;;:25;;;10440:215;;-1:-1:-1;;;10440:215:5;;-1:-1:-1;;;;;10451:25:5;;;;10440:50;;:215;;10491:7;;10574:4;;10647:7;;10440:215;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10440:215:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10440:215:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;10440:215:5;;;;;;;;;10432:224;;;;;10131:1078;10674:19;;;;:8;:19;;;;;:32;;;10710:3;10674:39;10670:539;;;10723:24;;;;:13;:24;;;;;;;;:33;;;;;;;;:40;;-1:-1:-1;;10723:40:5;10759:4;10723:40;;;10835:9;:14;10827:23;;;;;;10970:19;;;;:8;:19;;;;;;;:25;;;10953:217;;-1:-1:-1;;;10953:217:5;;-1:-1:-1;;;;;10970:25:5;;;;10953:56;;:217;;11010:7;;11091:4;;11162:7;;10953:217;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10953:217:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10953:217:5;;;;10670:539;11279:19;;;;11322:1;11279:19;;;;;;;:33;;:40;11222:202;;;;;;11240:9;;-1:-1:-1;;11279:44:5;;11379:7;;11416;;11222:202;;;;;;;;;;-1:-1:-1;;3163:11:5;:19;;-1:-1:-1;;;;3163:19:5;;;-1:-1:-1;;;9482:1948:5:o;30674:414::-;30817:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;30856:9;3274:11;;3265:6;:20;3257:29;;;;;;3741:19;;;;:8;:19;;;;;:34;30897:9;;30908;;3732:43;;3724:52;;;;;;4062:19;;;;:8;:19;;;;;:38;;30935:7;;30944:9;;30955;;4062:19;30955:9;;4062:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4051:49:5;;;4062:38;;4051:49;4043:58;;;;;;30976:19;;;;:8;:19;;;;;;;:28;;:40;;;31030:52;;;;;30985:9;;31063:7;;31007:9;;31030:52;;24629:1160;24876:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;24915:11;;24903:9;:23;24895:32;;;;;;25040:19;;;;:8;:19;;;;;:34;25028:46;;25020:55;;;;;;25187:19;;;;:8;:19;;;;;:38;;25215:9;;25187:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25176:49:5;;;25187:38;;25176:49;25168:58;;;;;;25333:1;25315:8;:15;:19;:44;;;;25358:1;25338:10;:17;:21;25315:44;25307:53;;;;;;25444:19;;;;:8;:19;;;;;;;;:38;;;;;;;;:::i;:::-;-1:-1:-1;25489:19:5;;;;:8;:19;;;;;;;;:42;;;;:29;;;;;:42;;;;;:::i;:::-;-1:-1:-1;25538:19:5;;;;:8;:19;;;;;;;:28;;:40;;;25590:193;;;;;25547:9;;25639:7;;25672:8;;25706:10;;25742:5;;25569:9;;25590:193;;;;;;;;;;24629:1160;;;;;;;;:::o;28489:769::-;28710:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;4062:19;;;;:8;:19;;;;;:38;;28735:7;;28744:9;;28755;;4062:19;28755:9;;4062:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4051:49:5;;;4062:38;;4051:49;4043:58;;;;;;28796:11;;28784:9;:23;28776:32;;;;;;28845:19;;;;:8;:19;;;;;;;;:29;:36;28823:58;;28815:67;;;;;;28917:19;;;;:8;:19;;;;;:34;28897:54;;28889:63;;;;;;28961:19;;;;:8;:19;;;;;:46;;29010:7;;28961:19;28989:17;;28961:46;;;;;;;;;;;;;;:56;;;;;-1:-1:-1;;;;;28961:56:5;;;;;-1:-1:-1;;;;;28961:56:5;;;;;;29077:7;29024:8;:19;29033:9;29024:19;;;;;;;;;;;:29;;29054:19;29024:50;;;;;;;;;;;;;;;;;;;;:60;;-1:-1:-1;;;;;;29024:60:5;-1:-1:-1;;;;;29024:60:5;;;;;;;;;;;29139:19;;;-1:-1:-1;29139:19:5;;;;;;;;29098:69;;;;;;29139:19;;29130:7;;29098:69;;;;;;;;;;29179:73;29202:9;29213:7;29222:8;:19;29231:9;29222:19;;;;;;;;;;;:29;;29179:73;;;;;;;;;;;;;;;;;5135:1;;;28489:769;;;;;;;:::o;2824:28::-;;;-1:-1:-1;;;;;2824:28:5;;:::o;23253:615::-;23480:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;23561:53;23575:7;23584:9;23595:11;23608:5;23561:13;:53::i;:::-;23744:19;;;;23786:1;23744:19;;;;;:32;;:39;23660:202;;23678:7;;23710:9;;-1:-1:-1;;23744:43:5;23812:11;23848:13;23660:17;:202::i;:::-;23253:615;;;;;;;:::o;19435:747::-;19618:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;19655:9;3274:11;;3265:6;:20;3257:29;;;;;;3580:19;;;;:8;:19;;;;;:32;;:39;19699:9;;19710:14;;3571:48;;3563:57;;;;;;19743:7;19752:9;19763:14;4254:8;:19;4263:9;4254:19;;;;;;;;;;;:32;;4287:14;4254:48;;;;;;;;;;;;;;;;:58;:48;;;;;:58;;-1:-1:-1;;;;;4230:82:5;;;4254:58;;4230:82;4222:91;;;;;;19865:19;;;;:8;:19;;;;;:32;;:48;;19927:11;;19865:32;19898:14;;19865:48;;;;;;;;;;;;;;;;:59;;:73;;;;;;;;;;;;:::i;:::-;;19950:152;19969:9;20009:14;20054:11;20096:5;19950:152;;;;;;;;;;31540:507;31696:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;31735:9;3274:11;;3265:6;:20;3257:29;;;;;;3741:19;;;;:8;:19;;;;;:34;31776:9;;31787;;3732:43;;3724:52;;;;;;4062:19;;;;:8;:19;;;;;:38;;31814:7;;31823:9;;31834;;4062:19;31834:9;;4062:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4051:49:5;;;4062:38;;4051:49;4043:58;;;;;;31860:6;31855:104;31876:8;:15;31872:1;:19;31855:104;;;31906:19;;;;:8;:19;;;;;31939:11;;:8;;31948:1;;31939:11;;;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;-1:-1;31906:45:5;;;;;;;;;;;;-1:-1:-1;;;;;;31906:45:5;-1:-1:-1;;;;;31906:45:5;;;;;;;;;;31893:3;31855:104;;;-1:-1:-1;32013:19:5;;;;:8;:19;;;;;;;31972:69;;;;;;31993:9;;32004:7;;31972:69;;2445:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2445:39:5;;;;;;;;;;:::o;2527:61::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13202:295::-;13345:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;13369:6;13364:128;13385:16;:23;13381:1;:27;13364:128;;;13425:59;13444:7;13453:9;13464:16;13481:1;13464:19;;;;;;;;;;;;;;13425:18;:59::i;:::-;13410:3;;13364:128;;;;13202:295;;;;:::o;33179:130::-;33252:13;;:::i;:::-;33284:19;;;;:8;:19;;;;;;;;;33277:26;;;;;;;;;;;;;;;;;;;;;;;33284:19;;33277:26;;33284:19;;33277:26;;33284:19;33277:26;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33277:26:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33277:26:5;;;;;;;;;;;;;;;;-1:-1:-1;;;33277:26:5;;;-1:-1:-1;;33277:26:5;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33277:26:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;33277:26:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33277:26:5;;;;;;;;;;;;;;;;-1:-1:-1;;;33277:26:5;;;-1:-1:-1;;33277:26:5;;;;;-1:-1:-1;;;;;33277:26:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33277:26:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;33277:26:5;;-1:-1:-1;33277:26:5;;33179:130;-1:-1:-1;;;33179:130:5:o;33317:1193::-;33420:19;;;;:8;:19;;;;;:32;;;33416:1089;;33485:1;33475:7;:11;33467:20;;;;;;33537:19;;;;:8;:19;;;;;:27;;;:38;-1:-1:-1;33537:38:5;33529:47;;;;;;33617:19;;;;:8;:19;;;;;:27;;;:40;;33649:7;33617:40;:31;:40;:::i;:::-;33587:19;;;;:8;:19;;;;;;:27;;:70;;;;33668:21;;-1:-1:-1;;;;;33668:12:5;;;:21;;;;;33681:7;;33668:21;33587:19;33668:21;33681:7;33668:12;:21;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33668:21:5;33416:1089;;;33707:19;;;;:8;:19;;;;;:32;;;33743:2;33707:38;33703:802;;;33773:1;33763:7;:11;33755:20;;;;;;33825:19;;;;:8;:19;;;;;:27;;;:38;-1:-1:-1;33825:38:5;33817:47;;;;;;33905:19;;;;:8;:19;;;;;:27;;;:40;;33937:7;33905:40;:31;:40;:::i;:::-;33875:19;;;;:8;:19;;;;;;;:27;;;:70;;;;33975:25;;;;;33964:60;;-1:-1:-1;;;33964:60:5;;-1:-1:-1;;;;;33975:25:5;;;;33964:46;;:60;;34011:3;;34016:7;;33964:60;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33964:60:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33964:60:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;33964:60:5;;;;;;;;;33956:69;;;;;;33703:802;;;34043:19;;;;:8;:19;;;;;:32;;;34079:3;34043:39;34039:466;;;34100:24;;;;:13;:24;;;;;;;;:33;;;;;;;;;;;34092:42;;;;;;34181:5;34145:24;;;:13;:24;;;;;;;;:33;;;;;;;;:41;;-1:-1:-1;;34145:41:5;;;34270:19;;;34145:41;34270:19;;;;;;;:25;;;34253:213;;-1:-1:-1;;;34253:213:5;;-1:-1:-1;;;;;34270:25:5;;;;34253:56;;:213;;34318:4;;34389:3;;34170:7;;34253:213;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34253:213:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;34039:466:5;33317:1193;;;:::o;589:150:22:-;647:7;679:5;;;703:6;;;;695:15;;;;;;730:1;-1:-1:-1;589:150:22;;;;;:::o;431:::-;489:7;522:1;517;:6;;509:15;;;;;;-1:-1:-1;547:5:22;;;431:150::o;539:35438:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;539:35438:5;-1:-1:-1;;;;;539:35438:5;;;;;;;;;;;-1:-1:-1;539:35438:5;;;;;;;-1:-1:-1;539:35438:5;;;-1:-1:-1;539:35438:5;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;539:35438:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;539:35438:5;;;;;;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;313:707;;430:3;423:4;415:6;411:17;407:27;397:2;;448:1;445;438:12;397:2;485:6;472:20;507:80;522:64;579:6;522:64;;;507:80;;;498:89;;604:5;629:6;622:5;615:21;659:4;651:6;647:17;637:27;;681:4;676:3;672:14;665:21;;734:6;781:3;773:4;765:6;761:17;756:3;752:27;749:36;746:2;;;798:1;795;788:12;746:2;823:1;808:206;833:6;830:1;827:13;808:206;;;891:3;913:37;946:3;934:10;913:37;;;901:50;;-1:-1;974:4;965:14;;;;993;;;;;855:1;848:9;808:206;;;812:14;390:630;;;;;;;;1054:731;;1179:3;1172:4;1164:6;1160:17;1156:27;1146:2;;1197:1;1194;1187:12;1146:2;1234:6;1221:20;1256:88;1271:72;1336:6;1271:72;;1256:88;1247:97;;1361:5;1386:6;1379:5;1372:21;1416:4;1408:6;1404:17;1394:27;;1438:4;1433:3;1429:14;1422:21;;1491:6;1538:3;1530:4;1522:6;1518:17;1513:3;1509:27;1506:36;1503:2;;;1555:1;1552;1545:12;1503:2;1580:1;1565:214;1590:6;1587:1;1584:13;1565:214;;;1648:3;1670:45;1711:3;1699:10;1670:45;;;1658:58;;-1:-1;1739:4;1730:14;;;;1758;;;;;1612:1;1605:9;1565:214;;1811:707;;1928:3;1921:4;1913:6;1909:17;1905:27;1895:2;;1946:1;1943;1936:12;1895:2;1983:6;1970:20;2005:80;2020:64;2077:6;2020:64;;2005:80;1996:89;;2102:5;2127:6;2120:5;2113:21;2157:4;2149:6;2145:17;2135:27;;2179:4;2174:3;2170:14;2163:21;;2232:6;2279:3;2271:4;2263:6;2259:17;2254:3;2250:27;2247:36;2244:2;;;2296:1;2293;2286:12;2244:2;2321:1;2306:206;2331:6;2328:1;2325:13;2306:206;;;2389:3;2411:37;2444:3;2432:10;2411:37;;;2399:50;;-1:-1;2472:4;2463:14;;;;2491;;;;;2353:1;2346:9;2306:206;;2526:128;2601:13;;2619:30;2601:13;2619:30;;2662:442;;2764:3;2757:4;2749:6;2745:17;2741:27;2731:2;;2782:1;2779;2772:12;2731:2;2819:6;2806:20;2841:65;2856:49;2898:6;2856:49;;2841:65;2832:74;;2926:6;2919:5;2912:21;2962:4;2954:6;2950:17;2995:4;2988:5;2984:16;3030:3;3021:6;3016:3;3012:16;3009:25;3006:2;;;3047:1;3044;3037:12;3006:2;3057:41;3091:6;3086:3;3081;3057:41;;;2724:380;;;;;;;;3112:130;3179:20;;3204:33;3179:20;3204:33;;3249:241;;3353:2;3341:9;3332:7;3328:23;3324:32;3321:2;;;3369:1;3366;3359:12;3321:2;3404:1;3421:53;3466:7;3446:9;3421:53;;;3411:63;3315:175;-1:-1;;;;3315:175;3497:1405;;;;;;;;3779:3;3767:9;3758:7;3754:23;3750:33;3747:2;;;3796:1;3793;3786:12;3747:2;3831:1;3848:61;3901:7;3881:9;3848:61;;;3838:71;;3810:105;3974:2;3963:9;3959:18;3946:32;-1:-1;;;;;3990:6;3987:30;3984:2;;;4030:1;4027;4020:12;3984:2;4050:86;4128:7;4119:6;4108:9;4104:22;4050:86;;;4040:96;;3925:217;4201:2;4190:9;4186:18;4173:32;-1:-1;;;;;4217:6;4214:30;4211:2;;;4257:1;4254;4247:12;4211:2;4277:78;4347:7;4338:6;4327:9;4323:22;4277:78;;;4267:88;;4152:209;4420:2;4409:9;4405:18;4392:32;-1:-1;;;;;4436:6;4433:30;4430:2;;;4476:1;4473;4466:12;4430:2;4496:63;4551:7;4542:6;4531:9;4527:22;4496:63;;;4486:73;;4371:194;4596:3;4615:53;4660:7;4651:6;4640:9;4636:22;4615:53;;;4605:63;;4575:99;4705:3;4724:53;4769:7;4760:6;4749:9;4745:22;4724:53;;;4714:63;;4684:99;4814:3;4833:53;4878:7;4869:6;4858:9;4854:22;4833:53;;;4823:63;;4793:99;3741:1161;;;;;;;;;;;4909:1531;;;;;;;;;5208:3;5196:9;5187:7;5183:23;5179:33;5176:2;;;5225:1;5222;5215:12;5176:2;5260:1;5277:61;5330:7;5310:9;5277:61;;;5267:71;;5239:105;5403:2;5392:9;5388:18;5375:32;-1:-1;;;;;5419:6;5416:30;5413:2;;;5459:1;5456;5449:12;5413:2;5479:86;5557:7;5548:6;5537:9;5533:22;5479:86;;;5469:96;;5354:217;5630:2;5619:9;5615:18;5602:32;-1:-1;;;;;5646:6;5643:30;5640:2;;;5686:1;5683;5676:12;5640:2;5706:78;5776:7;5767:6;5756:9;5752:22;5706:78;;;5696:88;;5581:209;5849:2;5838:9;5834:18;5821:32;-1:-1;;;;;5865:6;5862:30;5859:2;;;5905:1;5902;5895:12;5859:2;5925:63;5980:7;5971:6;5960:9;5956:22;5925:63;;;5915:73;;5800:194;6025:3;6044:53;6089:7;6080:6;6069:9;6065:22;6044:53;;;6034:63;;6004:99;6134:3;6153:53;6198:7;6189:6;6178:9;6174:22;6153:53;;;6143:63;;6113:99;6243:3;6262:53;6307:7;6298:6;6287:9;6283:22;6262:53;;;6252:63;;6222:99;6352:3;6371:53;6416:7;6407:6;6396:9;6392:22;6371:53;;;6361:63;;6331:99;5170:1270;;;;;;;;;;;;6447:507;;;;6593:2;6581:9;6572:7;6568:23;6564:32;6561:2;;;6609:1;6606;6599:12;6561:2;6644:1;6661:61;6714:7;6694:9;6661:61;;;6651:71;;6623:105;6759:2;6777:53;6822:7;6813:6;6802:9;6798:22;6777:53;;;6767:63;;6738:98;6867:2;6885:53;6930:7;6921:6;6910:9;6906:22;6885:53;;;6875:63;;6846:98;6555:399;;;;;;6961:769;;;;;7149:3;7137:9;7128:7;7124:23;7120:33;7117:2;;;7166:1;7163;7156:12;7117:2;7201:1;7218:61;7271:7;7251:9;7218:61;;;7208:71;;7180:105;7316:2;7334:53;7379:7;7370:6;7359:9;7355:22;7334:53;;;7324:63;;7295:98;7424:2;7442:53;7487:7;7478:6;7467:9;7463:22;7442:53;;;7432:63;;7403:98;7560:2;7549:9;7545:18;7532:32;-1:-1;;;;;7576:6;7573:30;7570:2;;;7616:1;7613;7606:12;7570:2;7636:78;7706:7;7697:6;7686:9;7682:22;7636:78;;;7626:88;;7511:209;7111:619;;;;;;;;7737:875;;;;;7935:3;7923:9;7914:7;7910:23;7906:33;7903:2;;;7952:1;7949;7942:12;7903:2;7987:1;8004:53;8049:7;8029:9;8004:53;;;7994:63;;7966:97;8094:2;8112:53;8157:7;8148:6;8137:9;8133:22;8112:53;;;8102:63;;8073:98;8230:2;8219:9;8215:18;8202:32;-1:-1;;;;;8246:6;8243:30;8240:2;;;8286:1;8283;8276:12;8240:2;8306:86;8384:7;8375:6;8364:9;8360:22;8306:86;;;8296:96;;8181:217;8457:2;8446:9;8442:18;8429:32;-1:-1;;;;;8473:6;8470:30;8467:2;;;8513:1;8510;8503:12;8467:2;8533:63;8588:7;8579:6;8568:9;8564:22;8533:63;;8619:1263;;;;;;;8876:3;8864:9;8855:7;8851:23;8847:33;8844:2;;;8893:1;8890;8883:12;8844:2;8928:1;8945:53;8990:7;8970:9;8945:53;;;8935:63;;8907:97;9035:2;9053:53;9098:7;9089:6;9078:9;9074:22;9053:53;;;9043:63;;9014:98;9171:2;9160:9;9156:18;9143:32;-1:-1;;;;;9187:6;9184:30;9181:2;;;9227:1;9224;9217:12;9181:2;9247:86;9325:7;9316:6;9305:9;9301:22;9247:86;;;9237:96;;9122:217;9398:2;9387:9;9383:18;9370:32;-1:-1;;;;;9414:6;9411:30;9408:2;;;9454:1;9451;9444:12;9408:2;9474:63;9529:7;9520:6;9509:9;9505:22;9474:63;;;9464:73;;9349:194;9574:3;9593:53;9638:7;9629:6;9618:9;9614:22;9593:53;;;9583:63;;9553:99;9711:3;9700:9;9696:19;9683:33;-1:-1;;;;;9728:6;9725:30;9722:2;;;9768:1;9765;9758:12;9722:2;9788:78;9858:7;9849:6;9838:9;9834:22;9788:78;;;9778:88;;9662:210;8838:1044;;;;;;;;;9889:627;;;;10052:2;10040:9;10031:7;10027:23;10023:32;10020:2;;;10068:1;10065;10058:12;10020:2;10103:1;10120:53;10165:7;10145:9;10120:53;;;10110:63;;10082:97;10210:2;10228:53;10273:7;10264:6;10253:9;10249:22;10228:53;;;10218:63;;10189:98;10346:2;10335:9;10331:18;10318:32;-1:-1;;;;;10362:6;10359:30;10356:2;;;10402:1;10399;10392:12;10356:2;10422:78;10492:7;10483:6;10472:9;10468:22;10422:78;;10523:597;;;;10671:2;10659:9;10650:7;10646:23;10642:32;10639:2;;;10687:1;10684;10677:12;10639:2;10722:1;10739:53;10784:7;10764:9;10739:53;;;10729:63;;10701:97;10829:2;10847:53;10892:7;10883:6;10872:9;10868:22;10847:53;;;10837:63;;10808:98;10965:2;10954:9;10950:18;10937:32;-1:-1;;;;;10981:6;10978:30;10975:2;;;11021:1;11018;11011:12;10975:2;11041:63;11096:7;11087:6;11076:9;11072:22;11041:63;;11625:753;;;;;11805:3;11793:9;11784:7;11780:23;11776:33;11773:2;;;11822:1;11819;11812:12;11773:2;11857:1;11874:53;11919:7;11899:9;11874:53;;;11864:63;;11836:97;11964:2;11982:53;12027:7;12018:6;12007:9;12003:22;11982:53;;;11972:63;;11943:98;12072:2;12090:53;12135:7;12126:6;12115:9;12111:22;12090:53;;;12080:63;;12051:98;12208:2;12197:9;12193:18;12180:32;-1:-1;;;;;12224:6;12221:30;12218:2;;;12264:1;12261;12254:12;12218:2;12284:78;12354:7;12345:6;12334:9;12330:22;12284:78;;12385:769;;;;;12573:3;12561:9;12552:7;12548:23;12544:33;12541:2;;;12590:1;12587;12580:12;12541:2;12625:1;12642:53;12687:7;12667:9;12642:53;;;12632:63;;12604:97;12732:2;12750:53;12795:7;12786:6;12775:9;12771:22;12750:53;;;12740:63;;12711:98;12840:2;12858:53;12903:7;12894:6;12883:9;12879:22;12858:53;;;12848:63;;12819:98;12976:2;12965:9;12961:18;12948:32;-1:-1;;;;;12992:6;12989:30;12986:2;;;13032:1;13029;13022:12;12986:2;13052:86;13130:7;13121:6;13110:9;13106:22;13052:86;;13161:1405;;;;;;;;13443:3;13431:9;13422:7;13418:23;13414:33;13411:2;;;13460:1;13457;13450:12;13411:2;13495:1;13512:53;13557:7;13537:9;13512:53;;;13502:63;;13474:97;13602:2;13620:53;13665:7;13656:6;13645:9;13641:22;13620:53;;;13610:63;;13581:98;13710:2;13728:53;13773:7;13764:6;13753:9;13749:22;13728:53;;;13718:63;;13689:98;13846:2;13835:9;13831:18;13818:32;-1:-1;;;;;13862:6;13859:30;13856:2;;;13902:1;13899;13892:12;13856:2;13922:86;14000:7;13991:6;13980:9;13976:22;13922:86;;;13912:96;;13797:217;14073:3;14062:9;14058:19;14045:33;-1:-1;;;;;14090:6;14087:30;14084:2;;;14130:1;14127;14120:12;14084:2;14150:86;14228:7;14219:6;14208:9;14204:22;14150:86;;;14140:96;;14024:218;14301:3;14290:9;14286:19;14273:33;-1:-1;;;;;14318:6;14315:30;14312:2;;;14358:1;14355;14348:12;14312:2;14378:63;14433:7;14424:6;14413:9;14409:22;14378:63;;14573:1001;;;;;;14788:3;14776:9;14767:7;14763:23;14759:33;14756:2;;;14805:1;14802;14795:12;14756:2;14840:1;14857:53;14902:7;14882:9;14857:53;;;14847:63;;14819:97;14947:2;14965:53;15010:7;15001:6;14990:9;14986:22;14965:53;;;14955:63;;14926:98;15055:2;15073:53;15118:7;15109:6;15098:9;15094:22;15073:53;;;15063:63;;15034:98;15191:2;15180:9;15176:18;15163:32;-1:-1;;;;;15207:6;15204:30;15201:2;;;15247:1;15244;15237:12;15201:2;15267:86;15345:7;15336:6;15325:9;15321:22;15267:86;;;15257:96;;15142:217;15418:3;15407:9;15403:19;15390:33;-1:-1;;;;;15435:6;15432:30;15429:2;;;15475:1;15472;15465:12;15429:2;15495:63;15550:7;15541:6;15530:9;15526:22;15495:63;;;15485:73;;15369:195;14750:824;;;;;;;;;16341:723;;;;;16506:3;16494:9;16485:7;16481:23;16477:33;16474:2;;;16523:1;16520;16513:12;16474:2;16558:1;16575:53;16620:7;16600:9;16575:53;;;16565:63;;16537:97;16665:2;16683:53;16728:7;16719:6;16708:9;16704:22;16683:53;;;16673:63;;16644:98;16773:2;16791:53;16836:7;16827:6;16816:9;16812:22;16791:53;;17071:617;;;;;17226:3;17214:9;17205:7;17201:23;17197:33;17194:2;;;17243:1;17240;17233:12;17194:2;17278:1;17295:53;17340:7;17320:9;17295:53;;;17285:63;;17257:97;17385:2;17403:53;17448:7;17439:6;17428:9;17424:22;17403:53;;;17393:63;;17364:98;17493:2;17511:53;17556:7;17547:6;17536:9;17532:22;17511:53;;;17501:63;;17472:98;17601:2;17619:53;17664:7;17655:6;17644:9;17640:22;17619:53;;17695:759;;;;;;17875:3;17863:9;17854:7;17850:23;17846:33;17843:2;;;17892:1;17889;17882:12;17843:2;17927:1;17944:53;17989:7;17969:9;17944:53;;;17934:63;;17906:97;18034:2;18052:53;18097:7;18088:6;18077:9;18073:22;18052:53;;;18042:63;;18013:98;18142:2;18160:53;18205:7;18196:6;18185:9;18181:22;18160:53;;;18150:63;;18121:98;18250:2;18268:53;18313:7;18304:6;18293:9;18289:22;18268:53;;;18258:63;;18229:98;18358:3;18377:61;18430:7;18421:6;18410:9;18406:22;18377:61;;18461:879;;;;;;18658:3;18646:9;18637:7;18633:23;18629:33;18626:2;;;18675:1;18672;18665:12;18626:2;18710:1;18727:53;18772:7;18752:9;18727:53;;;18717:63;;18689:97;18817:2;18835:53;18880:7;18871:6;18860:9;18856:22;18835:53;;;18825:63;;18796:98;18925:2;18943:53;18988:7;18979:6;18968:9;18964:22;18943:53;;;18933:63;;18904:98;19033:2;19051:53;19096:7;19087:6;19076:9;19072:22;19051:53;;;19041:63;;19012:98;19169:3;19158:9;19154:19;19141:33;-1:-1;;;;;19186:6;19183:30;19180:2;;;19226:1;19223;19216:12;19180:2;19246:78;19316:7;19307:6;19296:9;19292:22;19246:78;;19347:885;;;;;;;19544:3;19532:9;19523:7;19519:23;19515:33;19512:2;;;19561:1;19558;19551:12;19512:2;19596:1;19613:53;19658:7;19638:9;19613:53;;;19603:63;;19575:97;19703:2;19721:53;19766:7;19757:6;19746:9;19742:22;19721:53;;;19711:63;;19682:98;19811:2;19829:53;19874:7;19865:6;19854:9;19850:22;19829:53;;;19819:63;;19790:98;19919:2;19937:53;19982:7;19973:6;19962:9;19958:22;19937:53;;;19927:63;;19898:98;20027:3;20046:53;20091:7;20082:6;20071:9;20067:22;20046:53;;;20036:63;;20006:99;20136:3;20155:61;20208:7;20199:6;20188:9;20184:22;20155:61;;20239:257;;20351:2;20339:9;20330:7;20326:23;20322:32;20319:2;;;20367:1;20364;20357:12;20319:2;20402:1;20419:61;20472:7;20452:9;20419:61;;20503:241;;20607:2;20595:9;20586:7;20582:23;20578:32;20575:2;;;20623:1;20620;20613:12;20575:2;20658:1;20675:53;20720:7;20700:9;20675:53;;20751:366;;;20872:2;20860:9;20851:7;20847:23;20843:32;20840:2;;;20888:1;20885;20878:12;20840:2;20923:1;20940:53;20985:7;20965:9;20940:53;;;20930:63;;20902:97;21030:2;21048:53;21093:7;21084:6;21073:9;21069:22;21048:53;;;21038:63;;21009:98;20834:283;;;;;;21125:205;;21228:62;21286:3;21278:6;21228:62;;;-1:-1;;21319:4;21310:14;;21221:109;21521:281;;21660:102;21758:3;21750:6;21660:102;;;-1:-1;;21791:4;21782:14;;21653:149;21811:257;;21962:100;22058:3;22050:6;21962:100;;;21948:114;21941:127;-1:-1;;;21941:127;22077:173;;22164:46;22206:3;22198:6;22164:46;;22258:142;22349:45;22388:5;22349:45;;;22344:3;22337:58;22331:69;;;22407:127;22496:32;22522:5;22496:32;;22946:690;;23091:54;23139:5;23091:54;;;23158:86;23237:6;23232:3;23158:86;;;23151:93;;23265:56;23315:5;23265:56;;;23341:7;23369:1;23354:260;23379:6;23376:1;23373:13;23354:260;;;23446:6;23440:13;23467:63;23526:3;23511:13;23467:63;;;23460:70;;23547:60;23600:6;23547:60;;;23537:70;-1:-1;;23401:1;23394:9;23354:260;;;-1:-1;23627:3;;23070:566;-1:-1;;;;;23070:566;23675:654;;23806:50;23850:5;23806:50;;;23869:76;23938:6;23933:3;23869:76;;;23862:83;;23966:52;24012:5;23966:52;;;24038:7;24066:1;24051:256;24076:6;24073:1;24070:13;24051:256;;;24143:6;24137:13;24164:63;24223:3;24208:13;24164:63;;;24157:70;;24244:56;24293:6;24244:56;;;24234:66;-1:-1;;24098:1;24091:9;24051:256;;24368:709;;24510:51;24555:5;24510:51;;;24574:86;24653:6;24648:3;24574:86;;;24567:93;;24681:53;24728:5;24681:53;;;24754:7;24782:1;24767:288;24792:6;24789:1;24786:13;24767:288;;;24853:44;24890:6;24853:44;;;24911:63;24970:3;24955:13;24911:63;;;24904:70;;24991:57;25041:6;24991:57;;;24981:67;-1:-1;;24814:1;24807:9;24767:288;;25132:754;;25293:62;25349:5;25293:62;;;25368:94;25455:6;25450:3;25368:94;;;25361:101;;25483:64;25541:5;25483:64;;;25567:7;25595:1;25580:284;25605:6;25602:1;25599:13;25580:284;;;25672:6;25666:13;25693:79;25768:3;25753:13;25693:79;;;25686:86;;25789:68;25850:6;25789:68;;;25779:78;-1:-1;;25627:1;25620:9;25580:284;;25941:718;;26088:58;26140:5;26088:58;;;26159:84;26236:6;26231:3;26159:84;;;26152:91;;26264:60;26318:5;26264:60;;;26344:7;26372:1;26357:280;26382:6;26379:1;26376:13;26357:280;;;26449:6;26443:13;26470:79;26545:3;26530:13;26470:79;;;26463:86;;26566:64;26623:6;26566:64;;;26556:74;-1:-1;;26404:1;26397:9;26357:280;;26714:781;;26872:59;26925:5;26872:59;;;26944:94;27031:6;27026:3;26944:94;;;26937:101;;27059:61;27114:5;27059:61;;;27140:7;27168:1;27153:320;27178:6;27175:1;27172:13;27153:320;;;27239:52;27284:6;27239:52;;;27305:79;27380:3;27365:13;27305:79;;;27298:86;;27401:65;27459:6;27401:65;;;27391:75;-1:-1;;27200:1;27193:9;27153:320;;27592:862;;27775:76;27845:5;27775:76;;;27864:102;27959:6;27954:3;27864:102;;;27857:109;;27987:78;28059:5;27987:78;;;28085:7;28113:1;28098:334;28123:6;28120:1;28117:13;28098:334;;;28190:6;28184:13;28211:115;28322:3;28307:13;28211:115;;;28204:122;;28343:82;28418:6;28343:82;;;28333:92;-1:-1;;28145:1;28138:9;28098:334;;28549:1012;;28730:75;28799:5;28730:75;;;28818:101;28912:6;28907:3;28818:101;;;28811:108;;28942:3;28984:4;28976:6;28972:17;28967:3;28963:27;29011:77;29082:5;29011:77;;;29108:7;29136:1;29121:401;29146:6;29143:1;29140:13;29121:401;;;29208:9;29202:4;29198:20;29193:3;29186:33;29253:6;29247:13;29275:114;29384:4;29369:13;29275:114;;;29267:122;;29406:81;29480:6;29406:81;;;29510:4;29501:14;;;;;29396:91;-1:-1;;29168:1;29161:9;29121:401;;;-1:-1;29535:4;;28709:852;-1:-1;;;;;;;28709:852;29600:690;;29745:54;29793:5;29745:54;;;29812:86;29891:6;29886:3;29812:86;;;29805:93;;29919:56;29969:5;29919:56;;;29995:7;30023:1;30008:260;30033:6;30030:1;30027:13;30008:260;;;30100:6;30094:13;30121:63;30180:3;30165:13;30121:63;;;30114:70;;30201:60;30254:6;30201:60;;;30191:70;-1:-1;;30055:1;30048:9;30008:260;;30298:94;30365:21;30380:5;30365:21;;30510:347;;30622:39;30655:5;30622:39;;;30673:71;30737:6;30732:3;30673:71;;;30666:78;;30749:52;30794:6;30789:3;30782:4;30775:5;30771:16;30749:52;;;30822:29;30844:6;30822:29;;;30813:39;;;;30602:255;-1:-1;;;30602:255;30935:2139;31154:22;;31084:5;31189:37;;;30935:2139;;31075:15;;;;31241:115;31075:15;31154:22;31241:115;;;31233:123;;31105:263;31446:4;31439:5;31435:16;31429:23;31498:3;31492:4;31488:14;31481:4;31476:3;31472:14;31465:38;31518:99;31612:4;31598:12;31518:99;;;31510:107;;31378:251;31706:4;31699:5;31695:16;31689:23;31718:63;31775:4;31770:3;31766:14;31752:12;31718:63;;;31639:148;31861:4;31854:5;31850:16;31844:23;31873:63;31930:4;31925:3;31921:14;31907:12;31873:63;;;31797:145;32023:4;32016:5;32012:16;32006:23;32035:63;32092:4;32087:3;32083:14;32069:12;32035:63;;;31952:152;32180:4;32173:5;32169:16;32163:23;32192:63;32249:4;32244:3;32240:14;32226:12;32192:63;;;32114:147;32340:4;32333:5;32329:16;32323:23;32352:57;32403:4;32398:3;32394:14;32380:12;32352:57;;;32271:144;32496:4;32489:5;32485:16;32479:23;32548:3;32542:4;32538:14;32531:4;32526:3;32522:14;32515:38;32568:149;32712:4;32698:12;32568:149;;;32560:157;;32425:304;32811:5;32804;32800:17;32794:24;32865:3;32859:4;32855:14;32847:5;32842:3;32838:15;32831:39;32885:151;33031:4;33017:12;32885:151;;;32877:159;31057:2017;-1:-1;;;;;31057:2017;33164:647;33376:22;;33303:4;33294:14;;;33404:78;33298:3;33376:22;33404:78;;;33323:165;33563:4;33556:5;33552:16;33546:23;33575:63;33632:4;33627:3;33623:14;33609:12;33575:63;;;33498:146;33721:4;33714:5;33710:16;33704:23;33733:57;33784:4;33779:3;33775:14;33761:12;33733:57;;;33654:142;33276:535;;;;33899:616;34116:22;;34044:4;34151:37;;;33899:616;;34035:14;;;;34203:115;34035:14;34116:22;34203:115;;;34195:123;;34064:266;34408:4;34401:5;34397:16;34391:23;34420:63;34477:4;34472:3;34468:14;34454:12;34420:63;;;-1:-1;34506:4;34017:498;-1:-1;;;34017:498;34522:103;34595:24;34613:5;34595:24;;34752:213;34870:2;34855:18;;34884:71;34859:9;34928:6;34884:71;;34972:451;35154:2;35139:18;;35168:79;35143:9;35220:6;35168:79;;;35258:72;35326:2;35315:9;35311:18;35302:6;35258:72;;;35341;35409:2;35398:9;35394:18;35385:6;35341:72;;35430:340;35584:2;35569:18;;35598:79;35573:9;35650:6;35598:79;;;35688:72;35756:2;35745:9;35741:18;35732:6;35688:72;;35777:451;35959:2;35944:18;;35973:71;35948:9;36017:6;35973:71;;;36055:80;36131:2;36120:9;36116:18;36107:6;36055:80;;36235:201;36347:2;36332:18;;36361:65;36336:9;36399:6;36361:65;;36443:357;36609:2;36623:47;;;36594:18;;36684:106;36594:18;36776:6;36684:106;;36807:213;36925:2;36910:18;;36939:71;36914:9;36983:6;36939:71;;37027:1443;37493:3;37478:19;;37508:71;37482:9;37552:6;37508:71;;;37590:88;37674:2;37663:9;37659:18;37650:6;37590:88;;;37726:9;37720:4;37716:20;37711:2;37700:9;37696:18;37689:48;37751:124;37870:4;37861:6;37751:124;;;37743:132;;37923:9;37917:4;37913:20;37908:2;37897:9;37893:18;37886:48;37948:108;38051:4;38042:6;37948:108;;;37940:116;;38105:9;38099:4;38095:20;38089:3;38078:9;38074:19;38067:49;38130:78;38203:4;38194:6;38130:78;;;38122:86;;38219:73;38287:3;38276:9;38272:19;38263:6;38219:73;;;38303;38371:3;38360:9;38356:19;38347:6;38303:73;;;38387;38455:3;38444:9;38440:19;38431:6;38387:73;;38477:599;38709:2;38694:18;;38723:71;38698:9;38767:6;38723:71;;;38805:80;38881:2;38870:9;38866:18;38857:6;38805:80;;;38933:9;38927:4;38923:20;38918:2;38907:9;38903:18;38896:48;38958:108;39061:4;39052:6;38958:108;;39083:577;39304:2;39289:18;;39318:71;39293:9;39362:6;39318:71;;;39400:72;39468:2;39457:9;39453:18;39444:6;39400:72;;;39520:9;39514:4;39510:20;39505:2;39494:9;39490:18;39483:48;39545:105;39645:4;39636:6;39545:105;;39667:1219;40077:3;40062:19;;40092:71;40066:9;40136:6;40092:71;;;40174:72;40242:2;40231:9;40227:18;40218:6;40174:72;;;40294:9;40288:4;40284:20;40279:2;40268:9;40264:18;40257:48;40319:124;40438:4;40429:6;40319:124;;;40311:132;;40491:9;40485:4;40481:20;40476:2;40465:9;40461:18;40454:48;40516:124;40635:4;40626:6;40516:124;;;40508:132;;40689:9;40683:4;40679:20;40673:3;40662:9;40658:19;40651:49;40714:78;40787:4;40778:6;40714:78;;;40706:86;;40803:73;40871:3;40860:9;40856:19;40847:6;40803:73;;;40048:838;;;;;;;;;;40893:609;41130:2;41115:18;;41144:71;41119:9;41188:6;41144:71;;;41226:72;41294:2;41283:9;41279:18;41270:6;41226:72;;;41346:9;41340:4;41336:20;41331:2;41320:9;41316:18;41309:48;41371:121;41487:4;41478:6;41371:121;;41509:583;41733:2;41718:18;;41747:71;41722:9;41791:6;41747:71;;;41829:72;41897:2;41886:9;41882:18;41873:6;41829:72;;42099:523;42293:2;42278:18;;42307:71;42282:9;42351:6;42307:71;;;42389:72;42457:2;42446:9;42442:18;42433:6;42389:72;;;42509:9;42503:4;42499:20;42494:2;42483:9;42479:18;42472:48;42534:78;42607:4;42598:6;42534:78;;42629:435;42803:2;42788:18;;42817:71;42792:9;42861:6;42817:71;;43071:647;43295:3;43280:19;;43310:71;43284:9;43354:6;43310:71;;;43392:72;43460:2;43449:9;43445:18;43436:6;43392:72;;;43475;43543:2;43532:9;43528:18;43519:6;43475:72;;;43558;43626:2;43615:9;43611:18;43602:6;43558:72;;;43641:67;43703:3;43692:9;43688:19;43679:6;43641:67;;;43266:452;;;;;;;;;43725:324;43871:2;43856:18;;43885:71;43860:9;43929:6;43885:71;;44056:579;44274:3;44259:19;;44289:71;44263:9;44333:6;44289:71;;;44371:72;44439:2;44428:9;44424:18;44415:6;44371:72;;;44454:88;44538:2;44527:9;44523:18;44514:6;44454:88;;;44553:72;44621:2;44610:9;44606:18;44597:6;44553:72;;44642:695;44894:3;44879:19;;44909:71;44883:9;44953:6;44909:71;;;44991:72;45059:2;45048:9;45044:18;45035:6;44991:72;;;45074;45142:2;45131:9;45127:18;45118:6;45074:72;;;45194:9;45188:4;45184:20;45179:2;45168:9;45164:18;45157:48;45219:108;45322:4;45313:6;45219:108;;45344:815;45632:3;45617:19;;45647:71;45621:9;45691:6;45647:71;;;45729:72;45797:2;45786:9;45782:18;45773:6;45729:72;;;45849:9;45843:4;45839:20;45834:2;45823:9;45819:18;45812:48;45874:124;45993:4;45984:6;45874:124;;;45866:132;;46046:9;46040:4;46036:20;46031:2;46020:9;46016:18;46009:48;46071:78;46144:4;46135:6;46071:78;;46166:927;46482:3;46467:19;;46497:71;46471:9;46541:6;46497:71;;;46579:72;46647:2;46636:9;46632:18;46623:6;46579:72;;;46699:9;46693:4;46689:20;46684:2;46673:9;46669:18;46662:48;46724:124;46843:4;46834:6;46724:124;;;46716:132;;46896:9;46890:4;46886:20;46881:2;46870:9;46866:18;46859:48;46921:78;46994:4;46985:6;46921:78;;;46913:86;;47010:73;47078:3;47067:9;47063:19;47054:6;47010:73;;47100:256;47162:2;47156:9;47188:17;;;-1:-1;;;;;47248:34;;47284:22;;;47245:62;47242:2;;;47320:1;47317;47310:12;47242:2;47336;47329:22;47140:216;;-1:-1;47140:216;47363:304;;-1:-1;;;;;47514:6;47511:30;47508:2;;;47554:1;47551;47544:12;47508:2;-1:-1;47589:4;47577:17;;;47642:15;;47445:222;48304:322;;-1:-1;;;;;48440:6;48437:30;48434:2;;;48480:1;48477;48470:12;48434:2;-1:-1;48611:4;48547;48524:17;;;;-1:-1;;48520:33;48601:15;;48371:255;48633:147;48753:4;48744:14;;48701:79;48945:173;;49055:14;;;49097:4;49084:18;;;49014:104;50158:133;50257:12;;50228:63;50442:141;50548:12;;50513:70;51876:102;51971:1;51962:11;;51948:30;52733:168;52841:19;;;52890:4;52881:14;;52834:67;54240:134;-1:-1;;;;;54315:54;;54298:76;54530:91;;54592:24;54610:5;54592:24;;54734:85;54800:13;54793:21;;54776:43;55033:129;;55120:37;55151:5;55169:121;55248:37;55279:5;55248:37;;55413:145;55494:6;55489:3;55484;55471:30;-1:-1;55550:1;55532:16;;55525:27;55464:94;55567:268;55632:1;55639:101;55653:6;55650:1;55647:13;55639:101;;;55720:11;;;55714:18;55701:11;;;55694:39;55675:2;55668:10;55639:101;;;55755:6;55752:1;55749:13;55746:2;;;-1:-1;;55820:1;55802:16;;55795:27;55616:219;55843:176;;55933:81;55964:49;56002:10;55964:49;;;55933:81;;56225:138;;56301:57;56352:4;56346:11;56301:57;;56531:97;56619:2;56599:14;-1:-1;;56595:28;;56579:49;56761:117;56830:24;56848:5;56830:24;;;56823:5;56820:35;56810:2;;56869:1;56866;56859:12;56810:2;56804:74;;57025:111;57091:21;57106:5;57091:21;;57143:117;57212:24;57230:5;57212:24;", + "source": "pragma solidity >=0.5.0 < 0.6.0;\r\npragma experimental ABIEncoderV2;\r\n\r\nimport \"./inherited/ERC20Token.sol\";\r\nimport \"./inherited/ERC721Basic.sol\";\r\n\r\n\r\n/// @title StandardBounties\r\n/// @dev A contract for issuing bounties on Ethereum paying in ETH, ERC20, or ERC721 tokens\r\n/// @author Mark Beylifn , Gonçalo Sá , Kevin Owocki , Ricardo Guilherme Schmidt (@3esmit), Matt Garnett , Craig Williams \r\ncontract StandardBounties {\r\n\r\n using SafeMath for uint256;\r\n\r\n /*\r\n * Structs\r\n */\r\n\r\n struct Bounty {\r\n address payable[] issuers; // An array of individuals who have complete control over the bounty, and can edit any of its parameters\r\n address[] approvers; // An array of individuals who are allowed to accept the fulfillments for a particular bounty\r\n uint deadline; // The Unix timestamp before which all submissions must be made, and after which refunds may be processed\r\n address token; // The address of the token associated with the bounty (should be disregarded if the tokenVersion is 0)\r\n uint tokenVersion; // The version of the token being used for the bounty (0 for ETH, 20 for ERC20, 721 for ERC721)\r\n uint balance; // The number of tokens which the bounty is able to pay out or refund\r\n bool hasPaidOut; // A boolean storing whether or not the bounty has paid out at least once, meaning refunds are no longer allowed\r\n Fulfillment[] fulfillments; // An array of Fulfillments which store the various submissions which have been made to the bounty\r\n Contribution[] contributions; // An array of Contributions which store the contributions which have been made to the bounty\r\n }\r\n\r\n struct Fulfillment {\r\n address payable[] fulfillers; // An array of addresses who should receive payouts for a given submission\r\n address submitter; // The address of the individual who submitted the fulfillment, who is able to update the submission as needed\r\n }\r\n\r\n struct Contribution {\r\n address payable contributor; // The address of the individual who contributed\r\n uint amount; // The amount of tokens the user contributed\r\n bool refunded; // A boolean storing whether or not the contribution has been refunded yet\r\n }\r\n\r\n /*\r\n * Storage\r\n */\r\n\r\n uint public numBounties; // An integer storing the total number of bounties in the contract\r\n mapping(uint => Bounty) public bounties; // A mapping of bountyIDs to bounties\r\n mapping (uint => mapping (uint => bool)) public tokenBalances; // A mapping of bountyIds to tokenIds to booleans, storing whether a given bounty has a given ERC721 token in its balance\r\n\r\n\r\n address public owner; // The address of the individual who's allowed to set the metaTxRelayer address\r\n address public metaTxRelayer; // The address of the meta transaction relayer whose _sender is automatically trusted for all contract calls\r\n\r\n bool public callStarted; // Ensures mutex for the entire contract\r\n\r\n /*\r\n * Modifiers\r\n */\r\n\r\n modifier callNotStarted(){\r\n require(!callStarted);\r\n callStarted = true;\r\n _;\r\n callStarted = false;\r\n }\r\n\r\n modifier validateBountyArrayIndex(\r\n uint _index)\r\n {\r\n require(_index < numBounties);\r\n _;\r\n }\r\n\r\n modifier validateContributionArrayIndex(\r\n uint _bountyId,\r\n uint _index)\r\n {\r\n require(_index < bounties[_bountyId].contributions.length);\r\n _;\r\n }\r\n\r\n modifier validateFulfillmentArrayIndex(\r\n uint _bountyId,\r\n uint _index)\r\n {\r\n require(_index < bounties[_bountyId].fulfillments.length);\r\n _;\r\n }\r\n\r\n modifier validateIssuerArrayIndex(\r\n uint _bountyId,\r\n uint _index)\r\n {\r\n require(_index < bounties[_bountyId].issuers.length);\r\n _;\r\n }\r\n\r\n modifier validateApproverArrayIndex(\r\n uint _bountyId,\r\n uint _index)\r\n {\r\n require(_index < bounties[_bountyId].approvers.length);\r\n _;\r\n }\r\n\r\n modifier onlyIssuer(\r\n address _sender,\r\n uint _bountyId,\r\n uint _issuerId)\r\n {\r\n require(_sender == bounties[_bountyId].issuers[_issuerId]);\r\n _;\r\n }\r\n\r\n modifier onlySubmitter(\r\n address _sender,\r\n uint _bountyId,\r\n uint _fulfillmentId)\r\n {\r\n require(_sender ==\r\n bounties[_bountyId].fulfillments[_fulfillmentId].submitter);\r\n _;\r\n }\r\n\r\n modifier onlyContributor(\r\n address _sender,\r\n uint _bountyId,\r\n uint _contributionId)\r\n {\r\n require(_sender ==\r\n bounties[_bountyId].contributions[_contributionId].contributor);\r\n _;\r\n }\r\n\r\n modifier isApprover(\r\n address _sender,\r\n uint _bountyId,\r\n uint _approverId)\r\n {\r\n require(_sender == bounties[_bountyId].approvers[_approverId]);\r\n _;\r\n }\r\n\r\n modifier hasNotPaid(\r\n uint _bountyId)\r\n {\r\n require(!bounties[_bountyId].hasPaidOut);\r\n _;\r\n }\r\n\r\n modifier hasNotRefunded(\r\n uint _bountyId,\r\n uint _contributionId)\r\n {\r\n require(!bounties[_bountyId].contributions[_contributionId].refunded);\r\n _;\r\n }\r\n\r\n modifier senderIsValid(\r\n address _sender)\r\n {\r\n require(msg.sender == _sender || msg.sender == metaTxRelayer);\r\n _;\r\n }\r\n\r\n /*\r\n * Public functions\r\n */\r\n\r\n constructor() public {\r\n // The owner of the contract is automatically designated to be the deployer of the contract\r\n owner = msg.sender;\r\n }\r\n\r\n /// @dev setMetaTxRelayer(): Sets the address of the meta transaction relayer\r\n /// @param _relayer the address of the relayer\r\n function setMetaTxRelayer(address _relayer)\r\n external\r\n {\r\n require(msg.sender == owner); // Checks that only the owner can call\r\n require(metaTxRelayer == address(0)); // Ensures the meta tx relayer can only be set once\r\n metaTxRelayer = _relayer;\r\n }\r\n\r\n /// @dev issueBounty(): creates a new bounty\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _issuers the array of addresses who will be the issuers of the bounty\r\n /// @param _approvers the array of addresses who will be the approvers of the bounty\r\n /// @param _data the IPFS hash representing the JSON object storing the details of the bounty (see docs for schema details)\r\n /// @param _deadline the timestamp which will become the deadline of the bounty\r\n /// @param _token the address of the token which will be used for the bounty\r\n /// @param _tokenVersion the version of the token being used for the bounty (0 for ETH, 20 for ERC20, 721 for ERC721)\r\n function issueBounty(\r\n address payable _sender,\r\n address payable[] memory _issuers,\r\n address[] memory _approvers,\r\n string memory _data,\r\n uint _deadline,\r\n address _token,\r\n uint _tokenVersion)\r\n public\r\n senderIsValid(_sender)\r\n returns (uint)\r\n {\r\n require(_tokenVersion == 0 || _tokenVersion == 20 || _tokenVersion == 721); // Ensures a bounty can only be issued with a valid token version\r\n require(_issuers.length > 0 || _approvers.length > 0); // Ensures there's at least 1 issuer or approver, so funds don't get stuck\r\n\r\n uint bountyId = numBounties; // The next bounty's index will always equal the number of existing bounties\r\n\r\n Bounty storage newBounty = bounties[bountyId];\r\n newBounty.issuers = _issuers;\r\n newBounty.approvers = _approvers;\r\n newBounty.deadline = _deadline;\r\n newBounty.tokenVersion = _tokenVersion;\r\n\r\n if (_tokenVersion != 0){\r\n newBounty.token = _token;\r\n }\r\n\r\n numBounties = numBounties.add(1); // Increments the number of bounties, since a new one has just been added\r\n\r\n emit BountyIssued(bountyId,\r\n _sender,\r\n _issuers,\r\n _approvers,\r\n _data, // Instead of storing the string on-chain, it is emitted within the event for easy off-chain consumption\r\n _deadline,\r\n _token,\r\n _tokenVersion);\r\n\r\n return (bountyId);\r\n }\r\n\r\n /// @param _depositAmount the amount of tokens being deposited to the bounty, which will create a new contribution to the bounty\r\n\r\n\r\n function issueAndContribute(\r\n address payable _sender,\r\n address payable[] memory _issuers,\r\n address[] memory _approvers,\r\n string memory _data,\r\n uint _deadline,\r\n address _token,\r\n uint _tokenVersion,\r\n uint _depositAmount)\r\n public\r\n payable\r\n returns(uint)\r\n {\r\n uint bountyId = issueBounty(_sender, _issuers, _approvers, _data, _deadline, _token, _tokenVersion);\r\n\r\n contribute(_sender, bountyId, _depositAmount);\r\n\r\n return (bountyId);\r\n }\r\n\r\n\r\n /// @dev contribute(): Allows users to contribute tokens to a given bounty.\r\n /// Contributing merits no privelages to administer the\r\n /// funds in the bounty or accept submissions. Contributions\r\n /// are refundable but only on the condition that the deadline\r\n /// has elapsed, and the bounty has not yet paid out any funds.\r\n /// All funds deposited in a bounty are at the mercy of a\r\n /// bounty's issuers and approvers, so please be careful!\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _amount the amount of tokens being contributed\r\n function contribute(\r\n address payable _sender,\r\n uint _bountyId,\r\n uint _amount)\r\n public\r\n payable\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n callNotStarted\r\n {\r\n require(_amount > 0); // Contributions of 0 tokens or token ID 0 should fail\r\n\r\n bounties[_bountyId].contributions.push(\r\n Contribution(_sender, _amount, false)); // Adds the contribution to the bounty\r\n\r\n if (bounties[_bountyId].tokenVersion == 0){\r\n\r\n bounties[_bountyId].balance = bounties[_bountyId].balance.add(_amount); // Increments the balance of the bounty\r\n\r\n require(msg.value == _amount);\r\n } else if (bounties[_bountyId].tokenVersion == 20){\r\n\r\n bounties[_bountyId].balance = bounties[_bountyId].balance.add(_amount); // Increments the balance of the bounty\r\n\r\n require(msg.value == 0); // Ensures users don't accidentally send ETH alongside a token contribution, locking up funds\r\n require(ERC20Token(bounties[_bountyId].token).transferFrom(_sender,\r\n address(this),\r\n _amount));\r\n } else if (bounties[_bountyId].tokenVersion == 721){\r\n tokenBalances[_bountyId][_amount] = true; // Adds the 721 token to the balance of the bounty\r\n\r\n\r\n require(msg.value == 0); // Ensures users don't accidentally send ETH alongside a token contribution, locking up funds\r\n ERC721BasicToken(bounties[_bountyId].token).transferFrom(_sender,\r\n address(this),\r\n _amount);\r\n } else {\r\n revert();\r\n }\r\n\r\n emit ContributionAdded(_bountyId,\r\n bounties[_bountyId].contributions.length - 1, // The new contributionId\r\n _sender,\r\n _amount);\r\n }\r\n\r\n /// @dev refundContribution(): Allows users to refund the contributions they've\r\n /// made to a particular bounty, but only if the bounty\r\n /// has not yet paid out, and the deadline has elapsed.\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _contributionId the index of the contribution being refunded\r\n function refundContribution(\r\n address _sender,\r\n uint _bountyId,\r\n uint _contributionId)\r\n public\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n validateContributionArrayIndex(_bountyId, _contributionId)\r\n onlyContributor(_sender, _bountyId, _contributionId)\r\n hasNotPaid(_bountyId)\r\n hasNotRefunded(_bountyId, _contributionId)\r\n callNotStarted\r\n {\r\n require(now > bounties[_bountyId].deadline); // Refunds may only be processed after the deadline has elapsed\r\n\r\n Contribution storage contribution = bounties[_bountyId].contributions[_contributionId];\r\n\r\n contribution.refunded = true;\r\n\r\n transferTokens(_bountyId, contribution.contributor, contribution.amount); // Performs the disbursal of tokens to the contributor\r\n\r\n emit ContributionRefunded(_bountyId, _contributionId);\r\n }\r\n\r\n /// @dev refundMyContributions(): Allows users to refund their contributions in bulk\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _contributionIds the array of indexes of the contributions being refunded\r\n function refundMyContributions(\r\n address _sender,\r\n uint _bountyId,\r\n uint[] memory _contributionIds)\r\n public\r\n senderIsValid(_sender)\r\n {\r\n for (uint i = 0; i < _contributionIds.length; i++){\r\n refundContribution(_sender, _bountyId, _contributionIds[i]);\r\n }\r\n }\r\n\r\n /// @dev refundContributions(): Allows users to refund their contributions in bulk\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _issuerId the index of the issuer who is making the call\r\n /// @param _contributionIds the array of indexes of the contributions being refunded\r\n function refundContributions(\r\n address _sender,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint[] memory _contributionIds)\r\n public\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n onlyIssuer(_sender, _bountyId, _issuerId)\r\n callNotStarted\r\n {\r\n for (uint i = 0; i < _contributionIds.length; i++){\r\n require(_contributionIds[i] < bounties[_bountyId].contributions.length);\r\n\r\n Contribution storage contribution = bounties[_bountyId].contributions[_contributionIds[i]];\r\n\r\n require(!contribution.refunded);\r\n\r\n contribution.refunded = true;\r\n\r\n transferTokens(_bountyId, contribution.contributor, contribution.amount); // Performs the disbursal of tokens to the contributor\r\n }\r\n\r\n emit ContributionsRefunded(_bountyId, _sender, _contributionIds);\r\n }\r\n\r\n /// @dev drainBounty(): Allows an issuer to drain the funds from the bounty\r\n /// @notice when using this function, if an issuer doesn't drain the entire balance, some users may be able to refund their contributions, while others may not (which is unfair to them). Please use it wisely, only when necessary\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _issuerId the index of the issuer who is making the call\r\n /// @param _amounts an array of amounts of tokens to be sent. The length of the array should be 1 if the bounty is in ETH or ERC20 tokens. If it's an ERC721 bounty, the array should be the list of tokenIDs.\r\n function drainBounty(\r\n address payable _sender,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint[] memory _amounts)\r\n public\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n onlyIssuer(_sender, _bountyId, _issuerId)\r\n callNotStarted\r\n {\r\n if (bounties[_bountyId].tokenVersion == 0 || bounties[_bountyId].tokenVersion == 20){\r\n require(_amounts.length == 1); // ensures there's only 1 amount of tokens to be returned\r\n require(_amounts[0] <= bounties[_bountyId].balance); // ensures an issuer doesn't try to drain the bounty of more tokens than their balance permits\r\n transferTokens(_bountyId, _sender, _amounts[0]); // Performs the draining of tokens to the issuer\r\n } else {\r\n for (uint i = 0; i < _amounts.length; i++){\r\n require(tokenBalances[_bountyId][_amounts[i]]);// ensures an issuer doesn't try to drain the bounty of a token it doesn't have in its balance\r\n transferTokens(_bountyId, _sender, _amounts[i]);\r\n }\r\n }\r\n\r\n emit BountyDrained(_bountyId, _sender, _amounts);\r\n }\r\n\r\n /// @dev performAction(): Allows users to perform any generalized action\r\n /// associated with a particular bounty, such as applying for it\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _data the IPFS hash corresponding to a JSON object which contains the details of the action being performed (see docs for schema details)\r\n function performAction(\r\n address _sender,\r\n uint _bountyId,\r\n string memory _data)\r\n public\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n {\r\n emit ActionPerformed(_bountyId, _sender, _data); // The _data string is emitted in an event for easy off-chain consumption\r\n }\r\n\r\n /// @dev fulfillBounty(): Allows users to fulfill the bounty to get paid out\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _fulfillers the array of addresses which will receive payouts for the submission\r\n /// @param _data the IPFS hash corresponding to a JSON object which contains the details of the submission (see docs for schema details)\r\n function fulfillBounty(\r\n address _sender,\r\n uint _bountyId,\r\n address payable[] memory _fulfillers,\r\n string memory _data)\r\n public\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n {\r\n require(now < bounties[_bountyId].deadline); // Submissions are only allowed to be made before the deadline\r\n require(_fulfillers.length > 0); // Submissions with no fulfillers would mean no one gets paid out\r\n\r\n bounties[_bountyId].fulfillments.push(Fulfillment(_fulfillers, _sender));\r\n\r\n emit BountyFulfilled(_bountyId,\r\n (bounties[_bountyId].fulfillments.length - 1),\r\n _fulfillers,\r\n _data, // The _data string is emitted in an event for easy off-chain consumption\r\n _sender);\r\n }\r\n\r\n /// @dev updateFulfillment(): Allows the submitter of a fulfillment to update their submission\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _fulfillmentId the index of the fulfillment\r\n /// @param _fulfillers the new array of addresses which will receive payouts for the submission\r\n /// @param _data the new IPFS hash corresponding to a JSON object which contains the details of the submission (see docs for schema details)\r\n function updateFulfillment(\r\n address _sender,\r\n uint _bountyId,\r\n uint _fulfillmentId,\r\n address payable[] memory _fulfillers,\r\n string memory _data)\r\n public\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n validateFulfillmentArrayIndex(_bountyId, _fulfillmentId)\r\n onlySubmitter(_sender, _bountyId, _fulfillmentId) // Only the original submitter of a fulfillment may update their submission\r\n {\r\n bounties[_bountyId].fulfillments[_fulfillmentId].fulfillers = _fulfillers;\r\n emit FulfillmentUpdated(_bountyId,\r\n _fulfillmentId,\r\n _fulfillers,\r\n _data); // The _data string is emitted in an event for easy off-chain consumption\r\n }\r\n\r\n /// @dev acceptFulfillment(): Allows any of the approvers to accept a given submission\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _fulfillmentId the index of the fulfillment to be accepted\r\n /// @param _approverId the index of the approver which is making the call\r\n /// @param _tokenAmounts the array of token amounts which will be paid to the\r\n /// fulfillers, whose length should equal the length of the\r\n /// _fulfillers array of the submission. If the bounty pays\r\n /// in ERC721 tokens, then these should be the token IDs\r\n /// being sent to each of the individual fulfillers\r\n function acceptFulfillment(\r\n address _sender,\r\n uint _bountyId,\r\n uint _fulfillmentId,\r\n uint _approverId,\r\n uint[] memory _tokenAmounts)\r\n public\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n validateFulfillmentArrayIndex(_bountyId, _fulfillmentId)\r\n isApprover(_sender, _bountyId, _approverId)\r\n callNotStarted\r\n {\r\n // now that the bounty has paid out at least once, refunds are no longer possible\r\n bounties[_bountyId].hasPaidOut = true;\r\n\r\n Fulfillment storage fulfillment = bounties[_bountyId].fulfillments[_fulfillmentId];\r\n\r\n require(_tokenAmounts.length == fulfillment.fulfillers.length); // Each fulfiller should get paid some amount of tokens (this can be 0)\r\n\r\n for (uint256 i = 0; i < fulfillment.fulfillers.length; i++){\r\n if (_tokenAmounts[i] > 0){\r\n // for each fulfiller associated with the submission\r\n transferTokens(_bountyId, fulfillment.fulfillers[i], _tokenAmounts[i]);\r\n }\r\n }\r\n emit FulfillmentAccepted(_bountyId,\r\n _fulfillmentId,\r\n _sender,\r\n _tokenAmounts);\r\n }\r\n\r\n /// @dev fulfillAndAccept(): Allows any of the approvers to fulfill and accept a submission simultaneously\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _fulfillers the array of addresses which will receive payouts for the submission\r\n /// @param _data the IPFS hash corresponding to a JSON object which contains the details of the submission (see docs for schema details)\r\n /// @param _approverId the index of the approver which is making the call\r\n /// @param _tokenAmounts the array of token amounts which will be paid to the\r\n /// fulfillers, whose length should equal the length of the\r\n /// _fulfillers array of the submission. If the bounty pays\r\n /// in ERC721 tokens, then these should be the token IDs\r\n /// being sent to each of the individual fulfillers\r\n function fulfillAndAccept(\r\n address _sender,\r\n uint _bountyId,\r\n address payable[] memory _fulfillers,\r\n string memory _data,\r\n uint _approverId,\r\n uint[] memory _tokenAmounts)\r\n public\r\n senderIsValid(_sender)\r\n {\r\n // first fulfills the bounty on behalf of the fulfillers\r\n fulfillBounty(_sender, _bountyId, _fulfillers, _data);\r\n\r\n // then accepts the fulfillment\r\n acceptFulfillment(_sender,\r\n _bountyId,\r\n bounties[_bountyId].fulfillments.length - 1,\r\n _approverId,\r\n _tokenAmounts);\r\n }\r\n\r\n\r\n\r\n /// @dev changeBounty(): Allows any of the issuers to change the bounty\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _issuerId the index of the issuer who is calling the function\r\n /// @param _issuers the new array of addresses who will be the issuers of the bounty\r\n /// @param _approvers the new array of addresses who will be the approvers of the bounty\r\n /// @param _data the new IPFS hash representing the JSON object storing the details of the bounty (see docs for schema details)\r\n /// @param _deadline the new timestamp which will become the deadline of the bounty\r\n function changeBounty(\r\n address _sender,\r\n uint _bountyId,\r\n uint _issuerId,\r\n address payable[] memory _issuers,\r\n address payable[] memory _approvers,\r\n string memory _data,\r\n uint _deadline)\r\n public\r\n senderIsValid(_sender)\r\n {\r\n require(_bountyId < numBounties); // makes the validateBountyArrayIndex modifier in-line to avoid stack too deep errors\r\n require(_issuerId < bounties[_bountyId].issuers.length); // makes the validateIssuerArrayIndex modifier in-line to avoid stack too deep errors\r\n require(_sender == bounties[_bountyId].issuers[_issuerId]); // makes the onlyIssuer modifier in-line to avoid stack too deep errors\r\n\r\n require(_issuers.length > 0 || _approvers.length > 0); // Ensures there's at least 1 issuer or approver, so funds don't get stuck\r\n\r\n bounties[_bountyId].issuers = _issuers;\r\n bounties[_bountyId].approvers = _approvers;\r\n bounties[_bountyId].deadline = _deadline;\r\n emit BountyChanged(_bountyId,\r\n _sender,\r\n _issuers,\r\n _approvers,\r\n _data,\r\n _deadline);\r\n }\r\n\r\n /// @dev changeIssuer(): Allows any of the issuers to change a particular issuer of the bounty\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _issuerId the index of the issuer who is calling the function\r\n /// @param _issuerIdToChange the index of the issuer who is being changed\r\n /// @param _newIssuer the address of the new issuer\r\n function changeIssuer(\r\n address _sender,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint _issuerIdToChange,\r\n address payable _newIssuer)\r\n public\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n validateIssuerArrayIndex(_bountyId, _issuerIdToChange)\r\n onlyIssuer(_sender, _bountyId, _issuerId)\r\n {\r\n require(_issuerId < bounties[_bountyId].issuers.length || _issuerId == 0);\r\n\r\n bounties[_bountyId].issuers[_issuerIdToChange] = _newIssuer;\r\n\r\n emit BountyIssuersUpdated(_bountyId, _sender, bounties[_bountyId].issuers);\r\n }\r\n\r\n /// @dev changeApprover(): Allows any of the issuers to change a particular approver of the bounty\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _issuerId the index of the issuer who is calling the function\r\n /// @param _approverId the index of the approver who is being changed\r\n /// @param _approver the address of the new approver\r\n function changeApprover(\r\n address _sender,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint _approverId,\r\n address payable _approver)\r\n external\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n onlyIssuer(_sender, _bountyId, _issuerId)\r\n validateApproverArrayIndex(_bountyId, _approverId)\r\n {\r\n bounties[_bountyId].approvers[_approverId] = _approver;\r\n\r\n emit BountyApproversUpdated(_bountyId, _sender, bounties[_bountyId].approvers);\r\n }\r\n\r\n /// @dev changeIssuerAndApprover(): Allows any of the issuers to change a particular approver of the bounty\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _issuerId the index of the issuer who is calling the function\r\n /// @param _issuerIdToChange the index of the issuer who is being changed\r\n /// @param _approverIdToChange the index of the approver who is being changed\r\n /// @param _issuer the address of the new approver\r\n function changeIssuerAndApprover(\r\n address _sender,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint _issuerIdToChange,\r\n uint _approverIdToChange,\r\n address payable _issuer)\r\n external\r\n senderIsValid(_sender)\r\n onlyIssuer(_sender, _bountyId, _issuerId)\r\n {\r\n require(_bountyId < numBounties);\r\n require(_approverIdToChange < bounties[_bountyId].approvers.length);\r\n require(_issuerIdToChange < bounties[_bountyId].issuers.length);\r\n\r\n bounties[_bountyId].issuers[_issuerIdToChange] = _issuer;\r\n bounties[_bountyId].approvers[_approverIdToChange] = _issuer;\r\n\r\n emit BountyIssuersUpdated(_bountyId, _sender, bounties[_bountyId].issuers);\r\n emit BountyApproversUpdated(_bountyId, _sender, bounties[_bountyId].approvers);\r\n }\r\n\r\n /// @dev changeData(): Allows any of the issuers to change the data the bounty\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _issuerId the index of the issuer who is calling the function\r\n /// @param _data the new IPFS hash representing the JSON object storing the details of the bounty (see docs for schema details)\r\n function changeData(\r\n address _sender,\r\n uint _bountyId,\r\n uint _issuerId,\r\n string memory _data)\r\n public\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n validateIssuerArrayIndex(_bountyId, _issuerId)\r\n onlyIssuer(_sender, _bountyId, _issuerId)\r\n {\r\n emit BountyDataChanged(_bountyId, _sender, _data); // The new _data is emitted within an event rather than being stored on-chain for minimized gas costs\r\n }\r\n\r\n /// @dev changeDeadline(): Allows any of the issuers to change the deadline the bounty\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _issuerId the index of the issuer who is calling the function\r\n /// @param _deadline the new timestamp which will become the deadline of the bounty\r\n function changeDeadline(\r\n address _sender,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint _deadline)\r\n external\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n validateIssuerArrayIndex(_bountyId, _issuerId)\r\n onlyIssuer(_sender, _bountyId, _issuerId)\r\n {\r\n bounties[_bountyId].deadline = _deadline;\r\n\r\n emit BountyDeadlineChanged(_bountyId, _sender, _deadline);\r\n }\r\n\r\n /// @dev addIssuers(): Allows any of the issuers to add more issuers to the bounty\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _issuerId the index of the issuer who is calling the function\r\n /// @param _issuers the array of addresses to add to the list of valid issuers\r\n function addIssuers(\r\n address _sender,\r\n uint _bountyId,\r\n uint _issuerId,\r\n address payable[] memory _issuers)\r\n public\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n validateIssuerArrayIndex(_bountyId, _issuerId)\r\n onlyIssuer(_sender, _bountyId, _issuerId)\r\n {\r\n for (uint i = 0; i < _issuers.length; i++){\r\n bounties[_bountyId].issuers.push(_issuers[i]);\r\n }\r\n\r\n emit BountyIssuersUpdated(_bountyId, _sender, bounties[_bountyId].issuers);\r\n }\r\n\r\n /// @dev addApprovers(): Allows any of the issuers to add more approvers to the bounty\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _issuerId the index of the issuer who is calling the function\r\n /// @param _approvers the array of addresses to add to the list of valid approvers\r\n function addApprovers(\r\n address _sender,\r\n uint _bountyId,\r\n uint _issuerId,\r\n address[] memory _approvers)\r\n public\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n validateIssuerArrayIndex(_bountyId, _issuerId)\r\n onlyIssuer(_sender, _bountyId, _issuerId)\r\n {\r\n for (uint i = 0; i < _approvers.length; i++){\r\n bounties[_bountyId].approvers.push(_approvers[i]);\r\n }\r\n\r\n emit BountyApproversUpdated(_bountyId, _sender, bounties[_bountyId].approvers);\r\n }\r\n\r\n /// @dev getBounty(): Returns the details of the bounty\r\n /// @param _bountyId the index of the bounty\r\n /// @return Returns a tuple for the bounty\r\n function getBounty(uint _bountyId)\r\n external\r\n view\r\n returns (Bounty memory)\r\n {\r\n return bounties[_bountyId];\r\n }\r\n\r\n\r\n function transferTokens(uint _bountyId, address payable _to, uint _amount)\r\n internal\r\n {\r\n if (bounties[_bountyId].tokenVersion == 0){\r\n require(_amount > 0); // Sending 0 tokens should throw\r\n require(bounties[_bountyId].balance >= _amount);\r\n\r\n bounties[_bountyId].balance = bounties[_bountyId].balance.sub(_amount);\r\n\r\n _to.transfer(_amount);\r\n } else if (bounties[_bountyId].tokenVersion == 20){\r\n require(_amount > 0); // Sending 0 tokens should throw\r\n require(bounties[_bountyId].balance >= _amount);\r\n\r\n bounties[_bountyId].balance = bounties[_bountyId].balance.sub(_amount);\r\n\r\n require(ERC20Token(bounties[_bountyId].token).transfer(_to, _amount));\r\n } else if (bounties[_bountyId].tokenVersion == 721){\r\n require(tokenBalances[_bountyId][_amount]);\r\n\r\n tokenBalances[_bountyId][_amount] = false; // Removes the 721 token from the balance of the bounty\r\n\r\n ERC721BasicToken(bounties[_bountyId].token).transferFrom(address(this),\r\n _to,\r\n _amount);\r\n } else {\r\n revert();\r\n }\r\n }\r\n\r\n /*\r\n * Events\r\n */\r\n\r\n event BountyIssued(uint _bountyId, address payable _creator, address payable[] _issuers, address[] _approvers, string _data, uint _deadline, address _token, uint _tokenVersion);\r\n event ContributionAdded(uint _bountyId, uint _contributionId, address payable _contributor, uint _amount);\r\n event ContributionRefunded(uint _bountyId, uint _contributionId);\r\n event ContributionsRefunded(uint _bountyId, address _issuer, uint[] _contributionIds);\r\n event BountyDrained(uint _bountyId, address _issuer, uint[] _amounts);\r\n event ActionPerformed(uint _bountyId, address _fulfiller, string _data);\r\n event BountyFulfilled(uint _bountyId, uint _fulfillmentId, address payable[] _fulfillers, string _data, address _submitter);\r\n event FulfillmentUpdated(uint _bountyId, uint _fulfillmentId, address payable[] _fulfillers, string _data);\r\n event FulfillmentAccepted(uint _bountyId, uint _fulfillmentId, address _approver, uint[] _tokenAmounts);\r\n event BountyChanged(uint _bountyId, address _changer, address payable[] _issuers, address payable[] _approvers, string _data, uint _deadline);\r\n event BountyIssuersUpdated(uint _bountyId, address _changer, address payable[] _issuers);\r\n event BountyApproversUpdated(uint _bountyId, address _changer, address[] _approvers);\r\n event BountyDataChanged(uint _bountyId, address _changer, string _data);\r\n event BountyDeadlineChanged(uint _bountyId, address _changer, uint _deadline);\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\StandardBounties.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/StandardBounties.sol", + "exportedSymbols": { + "StandardBounties": [ + 4512 + ] + }, + "id": 4513, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2507, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:5" + }, + { + "id": 2508, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "34:33:5" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC20Token.sol", + "file": "./inherited/ERC20Token.sol", + "id": 2509, + "nodeType": "ImportDirective", + "scope": 4513, + "sourceUnit": 4990, + "src": "71:36:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", + "file": "./inherited/ERC721Basic.sol", + "id": 2510, + "nodeType": "ImportDirective", + "scope": 4513, + "sourceUnit": 5798, + "src": "109:37:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@author Mark Beylifn , Gonçalo Sá , Kevin Owocki , Ricardo Guilherme Schmidt (@3esmit), Matt Garnett , Craig Williams ", + "fullyImplemented": true, + "id": 4512, + "linearizedBaseContracts": [ + 4512 + ], + "name": "StandardBounties", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2513, + "libraryName": { + "contractScope": null, + "id": 2511, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "578:8:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "572:27:5", + "typeName": { + "id": 2512, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "591:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "canonicalName": "StandardBounties.Bounty", + "id": 2536, + "members": [ + { + "constant": false, + "id": 2516, + "name": "issuers", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "655:25:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 2514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "655:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 2515, + "length": null, + "nodeType": "ArrayTypeName", + "src": "655:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2519, + "name": "approvers", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "792:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2517, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "792:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2518, + "length": null, + "nodeType": "ArrayTypeName", + "src": "792:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2521, + "name": "deadline", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "912:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2520, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "912:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2523, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "1038:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2522, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1038:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2525, + "name": "tokenVersion", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "1162:17:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2524, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1162:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2527, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "1282:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2526, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1282:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2529, + "name": "hasPaidOut", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "1371:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2528, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1371:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2532, + "name": "fulfillments", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "1506:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage_ptr", + "typeString": "struct StandardBounties.Fulfillment[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 2530, + "name": "Fulfillment", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2542, + "src": "1506:11:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fulfillment_$2542_storage_ptr", + "typeString": "struct StandardBounties.Fulfillment" + } + }, + "id": 2531, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1506:13:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage_ptr", + "typeString": "struct StandardBounties.Fulfillment[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2535, + "name": "contributions", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "1638:28:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage_ptr", + "typeString": "struct StandardBounties.Contribution[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 2533, + "name": "Contribution", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2549, + "src": "1638:12:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", + "typeString": "struct StandardBounties.Contribution" + } + }, + "id": 2534, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1638:14:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage_ptr", + "typeString": "struct StandardBounties.Contribution[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Bounty", + "nodeType": "StructDefinition", + "scope": 4512, + "src": "634:1132:5", + "visibility": "public" + }, + { + "canonicalName": "StandardBounties.Fulfillment", + "id": 2542, + "members": [ + { + "constant": false, + "id": 2539, + "name": "fulfillers", + "nodeType": "VariableDeclaration", + "scope": 2542, + "src": "1798:28:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 2537, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1798:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 2538, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1798:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2541, + "name": "submitter", + "nodeType": "VariableDeclaration", + "scope": 2542, + "src": "1908:17:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2540, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1908:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Fulfillment", + "nodeType": "StructDefinition", + "scope": 4512, + "src": "1772:270:5", + "visibility": "public" + }, + { + "canonicalName": "StandardBounties.Contribution", + "id": 2549, + "members": [ + { + "constant": false, + "id": 2544, + "name": "contributor", + "nodeType": "VariableDeclaration", + "scope": 2549, + "src": "2075:27:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 2543, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2075:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2546, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 2549, + "src": "2158:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2545, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2158:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2548, + "name": "refunded", + "nodeType": "VariableDeclaration", + "scope": 2549, + "src": "2221:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2547, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2221:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Contribution", + "nodeType": "StructDefinition", + "scope": 4512, + "src": "2048:267:5", + "visibility": "public" + }, + { + "constant": false, + "id": 2551, + "name": "numBounties", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "2350:23:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2550, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2350:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2555, + "name": "bounties", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "2445:39:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty)" + }, + "typeName": { + "id": 2554, + "keyType": { + "id": 2552, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2453:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2445:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty)" + }, + "valueType": { + "contractScope": null, + "id": 2553, + "name": "Bounty", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2536, + "src": "2461:6:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", + "typeString": "struct StandardBounties.Bounty" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2561, + "name": "tokenBalances", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "2527:61:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => bool))" + }, + "typeName": { + "id": 2560, + "keyType": { + "id": 2556, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2536:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2527:40:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => bool))" + }, + "valueType": { + "id": 2559, + "keyType": { + "id": 2557, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2553:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2544:22:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + }, + "valueType": { + "id": 2558, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2561:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2563, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "2719:20:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2562, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2719:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2565, + "name": "metaTxRelayer", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "2824:28:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2564, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2824:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2567, + "name": "callStarted", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "2968:23:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2566, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2968:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 2583, + "nodeType": "Block", + "src": "3095:93:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3110:12:5", + "subExpression": { + "argumentTypes": null, + "id": 2570, + "name": "callStarted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2567, + "src": "3111:11:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2569, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "3102:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3102:21:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2573, + "nodeType": "ExpressionStatement", + "src": "3102:21:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 2576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2574, + "name": "callStarted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2567, + "src": "3130:11:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 2575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3144:4:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "3130:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2577, + "nodeType": "ExpressionStatement", + "src": "3130:18:5" + }, + { + "id": 2578, + "nodeType": "PlaceholderStatement", + "src": "3155:1:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 2581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2579, + "name": "callStarted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2567, + "src": "3163:11:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 2580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3177:5:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "3163:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2582, + "nodeType": "ExpressionStatement", + "src": "3163:19:5" + } + ] + }, + "documentation": null, + "id": 2584, + "name": "callNotStarted", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2568, + "nodeType": "ParameterList", + "parameters": [], + "src": "3093:2:5" + }, + "src": "3070:118:5", + "visibility": "internal" + }, + { + "body": { + "id": 2595, + "nodeType": "Block", + "src": "3250:50:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2589, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2586, + "src": "3265:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 2590, + "name": "numBounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2551, + "src": "3274:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3265:20:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2588, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "3257:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3257:29:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2593, + "nodeType": "ExpressionStatement", + "src": "3257:29:5" + }, + { + "id": 2594, + "nodeType": "PlaceholderStatement", + "src": "3293:1:5" + } + ] + }, + "documentation": null, + "id": 2596, + "name": "validateBountyArrayIndex", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2586, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 2596, + "src": "3234:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2585, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3234:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3227:19:5" + }, + "src": "3194:106:5", + "visibility": "internal" + }, + { + "body": { + "id": 2613, + "nodeType": "Block", + "src": "3389:79:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2603, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "3404:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2604, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "3413:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 2606, + "indexExpression": { + "argumentTypes": null, + "id": 2605, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2598, + "src": "3422:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3413:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 2607, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributions", + "nodeType": "MemberAccess", + "referencedDeclaration": 2535, + "src": "3413:33:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", + "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" + } + }, + "id": 2608, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3413:40:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3404:49:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2602, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "3396:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3396:58:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2611, + "nodeType": "ExpressionStatement", + "src": "3396:58:5" + }, + { + "id": 2612, + "nodeType": "PlaceholderStatement", + "src": "3461:1:5" + } + ] + }, + "documentation": null, + "id": 2614, + "name": "validateContributionArrayIndex", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2598, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2614, + "src": "3352:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2597, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3352:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2600, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 2614, + "src": "3373:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2599, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3373:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3345:40:5" + }, + "src": "3306:162:5", + "visibility": "internal" + }, + { + "body": { + "id": 2631, + "nodeType": "Block", + "src": "3556:78:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2621, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2618, + "src": "3571:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2622, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "3580:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 2624, + "indexExpression": { + "argumentTypes": null, + "id": 2623, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "3589:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3580:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 2625, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fulfillments", + "nodeType": "MemberAccess", + "referencedDeclaration": 2532, + "src": "3580:32:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", + "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" + } + }, + "id": 2626, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3580:39:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3571:48:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2620, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "3563:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3563:57:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2629, + "nodeType": "ExpressionStatement", + "src": "3563:57:5" + }, + { + "id": 2630, + "nodeType": "PlaceholderStatement", + "src": "3627:1:5" + } + ] + }, + "documentation": null, + "id": 2632, + "name": "validateFulfillmentArrayIndex", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2619, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2616, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2632, + "src": "3519:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2615, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3519:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2618, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 2632, + "src": "3540:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2617, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3540:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3512:40:5" + }, + "src": "3474:160:5", + "visibility": "internal" + }, + { + "body": { + "id": 2649, + "nodeType": "Block", + "src": "3717:73:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2639, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2636, + "src": "3732:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2640, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "3741:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 2642, + "indexExpression": { + "argumentTypes": null, + "id": 2641, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2634, + "src": "3750:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3741:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 2643, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "3741:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 2644, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3741:34:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3732:43:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2638, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "3724:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3724:52:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2647, + "nodeType": "ExpressionStatement", + "src": "3724:52:5" + }, + { + "id": 2648, + "nodeType": "PlaceholderStatement", + "src": "3783:1:5" + } + ] + }, + "documentation": null, + "id": 2650, + "name": "validateIssuerArrayIndex", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2634, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2650, + "src": "3680:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2633, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3680:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2636, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 2650, + "src": "3701:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2635, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3701:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3673:40:5" + }, + "src": "3640:150:5", + "visibility": "internal" + }, + { + "body": { + "id": 2667, + "nodeType": "Block", + "src": "3875:75:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2657, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2654, + "src": "3890:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2658, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "3899:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 2660, + "indexExpression": { + "argumentTypes": null, + "id": 2659, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2652, + "src": "3908:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3899:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 2661, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "approvers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2519, + "src": "3899:29:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2662, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3899:36:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3890:45:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2656, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "3882:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3882:54:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2665, + "nodeType": "ExpressionStatement", + "src": "3882:54:5" + }, + { + "id": 2666, + "nodeType": "PlaceholderStatement", + "src": "3943:1:5" + } + ] + }, + "documentation": null, + "id": 2668, + "name": "validateApproverArrayIndex", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2655, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2652, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2668, + "src": "3838:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2651, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3838:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2654, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 2668, + "src": "3859:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2653, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3859:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3831:40:5" + }, + "src": "3796:154:5", + "visibility": "internal" + }, + { + "body": { + "id": 2688, + "nodeType": "Block", + "src": "4038:75:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2677, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2670, + "src": "4051:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2678, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "4062:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 2680, + "indexExpression": { + "argumentTypes": null, + "id": 2679, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2672, + "src": "4071:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4062:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 2681, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "4062:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 2683, + "indexExpression": { + "argumentTypes": null, + "id": 2682, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2674, + "src": "4090:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4062:38:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "4051:49:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2676, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4043:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4043:58:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2686, + "nodeType": "ExpressionStatement", + "src": "4043:58:5" + }, + { + "id": 2687, + "nodeType": "PlaceholderStatement", + "src": "4106:1:5" + } + ] + }, + "documentation": null, + "id": 2689, + "name": "onlyIssuer", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2670, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 2689, + "src": "3980:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2669, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3980:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2672, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2689, + "src": "4000:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2671, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4000:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2674, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 2689, + "src": "4019:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2673, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4019:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3975:59:5" + }, + "src": "3956:157:5", + "visibility": "internal" + }, + { + "body": { + "id": 2710, + "nodeType": "Block", + "src": "4215:112:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2698, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2691, + "src": "4230:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2699, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "4254:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 2701, + "indexExpression": { + "argumentTypes": null, + "id": 2700, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2693, + "src": "4263:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4254:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 2702, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fulfillments", + "nodeType": "MemberAccess", + "referencedDeclaration": 2532, + "src": "4254:32:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", + "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" + } + }, + "id": 2704, + "indexExpression": { + "argumentTypes": null, + "id": 2703, + "name": "_fulfillmentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2695, + "src": "4287:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4254:48:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fulfillment_$2542_storage", + "typeString": "struct StandardBounties.Fulfillment storage ref" + } + }, + "id": 2705, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "submitter", + "nodeType": "MemberAccess", + "referencedDeclaration": 2541, + "src": "4254:58:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4230:82:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2697, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4222:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4222:91:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2708, + "nodeType": "ExpressionStatement", + "src": "4222:91:5" + }, + { + "id": 2709, + "nodeType": "PlaceholderStatement", + "src": "4320:1:5" + } + ] + }, + "documentation": null, + "id": 2711, + "name": "onlySubmitter", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2696, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2691, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 2711, + "src": "4148:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2690, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4148:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2693, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2711, + "src": "4170:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2692, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4170:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2695, + "name": "_fulfillmentId", + "nodeType": "VariableDeclaration", + "scope": 2711, + "src": "4191:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2694, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4191:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4141:70:5" + }, + "src": "4119:208:5", + "visibility": "internal" + }, + { + "body": { + "id": 2732, + "nodeType": "Block", + "src": "4426:116:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2720, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2713, + "src": "4441:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2721, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "4465:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 2723, + "indexExpression": { + "argumentTypes": null, + "id": 2722, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2715, + "src": "4474:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4465:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 2724, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributions", + "nodeType": "MemberAccess", + "referencedDeclaration": 2535, + "src": "4465:33:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", + "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" + } + }, + "id": 2726, + "indexExpression": { + "argumentTypes": null, + "id": 2725, + "name": "_contributionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2717, + "src": "4499:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4465:50:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage", + "typeString": "struct StandardBounties.Contribution storage ref" + } + }, + "id": 2727, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributor", + "nodeType": "MemberAccess", + "referencedDeclaration": 2544, + "src": "4465:62:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "4441:86:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2719, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4433:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4433:95:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2730, + "nodeType": "ExpressionStatement", + "src": "4433:95:5" + }, + { + "id": 2731, + "nodeType": "PlaceholderStatement", + "src": "4535:1:5" + } + ] + }, + "documentation": null, + "id": 2733, + "name": "onlyContributor", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2718, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2713, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 2733, + "src": "4362:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2712, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4362:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2715, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2733, + "src": "4382:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2714, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4382:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2717, + "name": "_contributionId", + "nodeType": "VariableDeclaration", + "scope": 2733, + "src": "4401:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2716, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4401:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4357:65:5" + }, + "src": "4333:209:5", + "visibility": "internal" + }, + { + "body": { + "id": 2753, + "nodeType": "Block", + "src": "4638:83:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2742, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2735, + "src": "4653:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2743, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "4664:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 2745, + "indexExpression": { + "argumentTypes": null, + "id": 2744, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2737, + "src": "4673:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4664:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 2746, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "approvers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2519, + "src": "4664:29:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2748, + "indexExpression": { + "argumentTypes": null, + "id": 2747, + "name": "_approverId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "4694:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4664:42:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4653:53:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2741, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4645:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4645:62:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2751, + "nodeType": "ExpressionStatement", + "src": "4645:62:5" + }, + { + "id": 2752, + "nodeType": "PlaceholderStatement", + "src": "4714:1:5" + } + ] + }, + "documentation": null, + "id": 2754, + "name": "isApprover", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2740, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2735, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 2754, + "src": "4574:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2734, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4574:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2737, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2754, + "src": "4596:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2736, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4596:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2739, + "name": "_approverId", + "nodeType": "VariableDeclaration", + "scope": 2754, + "src": "4617:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2738, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4617:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4567:67:5" + }, + "src": "4548:173:5", + "visibility": "internal" + }, + { + "body": { + "id": 2767, + "nodeType": "Block", + "src": "4772:61:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4787:31:5", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2759, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "4788:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 2761, + "indexExpression": { + "argumentTypes": null, + "id": 2760, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2756, + "src": "4797:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4788:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 2762, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "hasPaidOut", + "nodeType": "MemberAccess", + "referencedDeclaration": 2529, + "src": "4788:30:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2758, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4779:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4779:40:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2765, + "nodeType": "ExpressionStatement", + "src": "4779:40:5" + }, + { + "id": 2766, + "nodeType": "PlaceholderStatement", + "src": "4826:1:5" + } + ] + }, + "documentation": null, + "id": 2768, + "name": "hasNotPaid", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2757, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2756, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2768, + "src": "4753:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2755, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4753:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4746:22:5" + }, + "src": "4727:106:5", + "visibility": "internal" + }, + { + "body": { + "id": 2786, + "nodeType": "Block", + "src": "4915:90:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4930:60:5", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2775, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "4931:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 2777, + "indexExpression": { + "argumentTypes": null, + "id": 2776, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2770, + "src": "4940:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4931:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 2778, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributions", + "nodeType": "MemberAccess", + "referencedDeclaration": 2535, + "src": "4931:33:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", + "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" + } + }, + "id": 2780, + "indexExpression": { + "argumentTypes": null, + "id": 2779, + "name": "_contributionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2772, + "src": "4965:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4931:50:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage", + "typeString": "struct StandardBounties.Contribution storage ref" + } + }, + "id": 2781, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "refunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 2548, + "src": "4931:59:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2774, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4922:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4922:69:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2784, + "nodeType": "ExpressionStatement", + "src": "4922:69:5" + }, + { + "id": 2785, + "nodeType": "PlaceholderStatement", + "src": "4998:1:5" + } + ] + }, + "documentation": null, + "id": 2787, + "name": "hasNotRefunded", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2773, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2770, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2787, + "src": "4869:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2769, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4869:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2772, + "name": "_contributionId", + "nodeType": "VariableDeclaration", + "scope": 2787, + "src": "4890:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2771, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4890:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4862:49:5" + }, + "src": "4839:166:5", + "visibility": "internal" + }, + { + "body": { + "id": 2804, + "nodeType": "Block", + "src": "5060:82:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2792, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "5075:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5075:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2794, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2789, + "src": "5089:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5075:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2796, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "5100:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5100:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2798, + "name": "metaTxRelayer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2565, + "src": "5114:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5100:27:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5075:52:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2791, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "5067:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5067:61:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2802, + "nodeType": "ExpressionStatement", + "src": "5067:61:5" + }, + { + "id": 2803, + "nodeType": "PlaceholderStatement", + "src": "5135:1:5" + } + ] + }, + "documentation": null, + "id": 2805, + "name": "senderIsValid", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2789, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 2805, + "src": "5040:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2788, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5040:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5033:23:5" + }, + "src": "5011:131:5", + "visibility": "internal" + }, + { + "body": { + "id": 2813, + "nodeType": "Block", + "src": "5204:128:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2808, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2563, + "src": "5308:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2809, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "5316:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5316:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "5308:18:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2812, + "nodeType": "ExpressionStatement", + "src": "5308:18:5" + } + ] + }, + "documentation": null, + "id": 2814, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2806, + "nodeType": "ParameterList", + "parameters": [], + "src": "5194:2:5" + }, + "returnParameters": { + "id": 2807, + "nodeType": "ParameterList", + "parameters": [], + "src": "5204:0:5" + }, + "scope": 4512, + "src": "5183:149:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2838, + "nodeType": "Block", + "src": "5530:206:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2820, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "5545:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5545:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2822, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2563, + "src": "5559:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5545:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2819, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "5537:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5537:28:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2825, + "nodeType": "ExpressionStatement", + "src": "5537:28:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2827, + "name": "metaTxRelayer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2565, + "src": "5619:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5644:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2828, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5636:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5636:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "5619:27:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2826, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "5611:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5611:36:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2833, + "nodeType": "ExpressionStatement", + "src": "5611:36:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 2836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2834, + "name": "metaTxRelayer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2565, + "src": "5706:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2835, + "name": "_relayer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2816, + "src": "5722:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5706:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2837, + "nodeType": "ExpressionStatement", + "src": "5706:24:5" + } + ] + }, + "documentation": "@param _relayer the address of the relayer", + "id": 2839, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setMetaTxRelayer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2817, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2816, + "name": "_relayer", + "nodeType": "VariableDeclaration", + "scope": 2839, + "src": "5495:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2815, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5495:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5494:18:5" + }, + "returnParameters": { + "id": 2818, + "nodeType": "ParameterList", + "parameters": [], + "src": "5530:0:5" + }, + "scope": 4512, + "src": "5469:267:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 2955, + "nodeType": "Block", + "src": "6809:1198:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2864, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2855, + "src": "6824:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2865, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6841:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6824:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2867, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2855, + "src": "6846:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3230", + "id": 2868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6863:2:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "src": "6846:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6824:41:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2871, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2855, + "src": "6869:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "373231", + "id": 2872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6886:3:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_721_by_1", + "typeString": "int_const 721" + }, + "value": "721" + }, + "src": "6869:20:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6824:65:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2863, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "6816:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6816:74:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2876, + "nodeType": "ExpressionStatement", + "src": "6816:74:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2878, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2844, + "src": "6971:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + "id": 2879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6971:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6989:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6971:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2882, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2847, + "src": "6994:10:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 2883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6994:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7014:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6994:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6971:44:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2877, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "6963:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6963:53:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2888, + "nodeType": "ExpressionStatement", + "src": "6963:53:5" + }, + { + "assignments": [ + 2890 + ], + "declarations": [ + { + "constant": false, + "id": 2890, + "name": "bountyId", + "nodeType": "VariableDeclaration", + "scope": 2955, + "src": "7100:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2889, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7100:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2892, + "initialValue": { + "argumentTypes": null, + "id": 2891, + "name": "numBounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2551, + "src": "7116:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7100:27:5" + }, + { + "assignments": [ + 2894 + ], + "declarations": [ + { + "constant": false, + "id": 2894, + "name": "newBounty", + "nodeType": "VariableDeclaration", + "scope": 2955, + "src": "7213:24:5", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", + "typeString": "struct StandardBounties.Bounty" + }, + "typeName": { + "contractScope": null, + "id": 2893, + "name": "Bounty", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2536, + "src": "7213:6:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", + "typeString": "struct StandardBounties.Bounty" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2898, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2895, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "7240:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 2897, + "indexExpression": { + "argumentTypes": null, + "id": 2896, + "name": "bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2890, + "src": "7249:8:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7240:18:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7213:45:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 2903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2899, + "name": "newBounty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2894, + "src": "7265:9:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", + "typeString": "struct StandardBounties.Bounty storage pointer" + } + }, + "id": 2901, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "7265:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2902, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2844, + "src": "7285:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + "src": "7265:28:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 2904, + "nodeType": "ExpressionStatement", + "src": "7265:28:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 2909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2905, + "name": "newBounty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2894, + "src": "7300:9:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", + "typeString": "struct StandardBounties.Bounty storage pointer" + } + }, + "id": 2907, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "approvers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2519, + "src": "7300:19:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2908, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2847, + "src": "7322:10:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "src": "7300:32:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2910, + "nodeType": "ExpressionStatement", + "src": "7300:32:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 2915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2911, + "name": "newBounty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2894, + "src": "7339:9:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", + "typeString": "struct StandardBounties.Bounty storage pointer" + } + }, + "id": 2913, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "deadline", + "nodeType": "MemberAccess", + "referencedDeclaration": 2521, + "src": "7339:18:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2914, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2851, + "src": "7360:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7339:30:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2916, + "nodeType": "ExpressionStatement", + "src": "7339:30:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 2921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2917, + "name": "newBounty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2894, + "src": "7376:9:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", + "typeString": "struct StandardBounties.Bounty storage pointer" + } + }, + "id": 2919, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "tokenVersion", + "nodeType": "MemberAccess", + "referencedDeclaration": 2525, + "src": "7376:22:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2920, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2855, + "src": "7401:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7376:38:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2922, + "nodeType": "ExpressionStatement", + "src": "7376:38:5" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2923, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2855, + "src": "7427:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7444:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7427:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2933, + "nodeType": "IfStatement", + "src": "7423:64:5", + "trueBody": { + "id": 2932, + "nodeType": "Block", + "src": "7446:41:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2926, + "name": "newBounty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2894, + "src": "7455:9:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", + "typeString": "struct StandardBounties.Bounty storage pointer" + } + }, + "id": 2928, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 2523, + "src": "7455:15:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2929, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2853, + "src": "7473:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7455:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2931, + "nodeType": "ExpressionStatement", + "src": "7455:24:5" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 2939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2934, + "name": "numBounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2551, + "src": "7495:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 2937, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7525:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "id": 2935, + "name": "numBounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2551, + "src": "7509:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "7509:15:5", + "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": 2938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7509:18:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7495:32:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2940, + "nodeType": "ExpressionStatement", + "src": "7495:32:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2942, + "name": "bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2890, + "src": "7628:8:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2943, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2841, + "src": "7661:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 2944, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2844, + "src": "7693:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 2945, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2847, + "src": "7726:10:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 2946, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2849, + "src": "7761:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 2947, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2851, + "src": "7896:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2948, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2853, + "src": "7930:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2949, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2855, + "src": "7961:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2941, + "name": "BountyIssued", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4384, + "src": "7615:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (uint256,address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256)" + } + }, + "id": 2950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7615:360:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2951, + "nodeType": "EmitStatement", + "src": "7610:365:5" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 2952, + "name": "bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2890, + "src": "7992:8:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2953, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7991:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2862, + "id": 2954, + "nodeType": "Return", + "src": "7984:17:5" + } + ] + }, + "documentation": "@param _tokenVersion the version of the token being used for the bounty (0 for ETH, 20 for ERC20, 721 for ERC721)", + "id": 2956, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 2858, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2841, + "src": "6777:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2859, + "modifierName": { + "argumentTypes": null, + "id": 2857, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "6763:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "6763:22:5" + } + ], + "name": "issueBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2856, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2841, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 2956, + "src": "6554:23:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 2840, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6554:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2844, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 2956, + "src": "6584:33:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 2842, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6584:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 2843, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6584:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2847, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 2956, + "src": "6624:27:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6624:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2846, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6624:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2849, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 2956, + "src": "6658:19:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2848, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6658:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2851, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 2956, + "src": "6684:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2850, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6684:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2853, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 2956, + "src": "6705:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2852, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6705:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2855, + "name": "_tokenVersion", + "nodeType": "VariableDeclaration", + "scope": 2956, + "src": "6726:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2854, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6726:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6547:198:5" + }, + "returnParameters": { + "id": 2862, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2861, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2956, + "src": "6800:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2860, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6800:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6799:6:5" + }, + "scope": 4512, + "src": "6527:1480:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3000, + "nodeType": "Block", + "src": "8448:192:5", + "statements": [ + { + "assignments": [ + 2980 + ], + "declarations": [ + { + "constant": false, + "id": 2980, + "name": "bountyId", + "nodeType": "VariableDeclaration", + "scope": 3000, + "src": "8455:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2979, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8455:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2990, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2982, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2958, + "src": "8483:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 2983, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2961, + "src": "8492:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 2984, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2964, + "src": "8502:10:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 2985, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2966, + "src": "8514:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 2986, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2968, + "src": "8521:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2987, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2970, + "src": "8532:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2988, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2972, + "src": "8540:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2981, + "name": "issueBounty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2956, + "src": "8471:11:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256) returns (uint256)" + } + }, + "id": 2989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8471:83:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8455:99:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2992, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2958, + "src": "8574:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 2993, + "name": "bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2980, + "src": "8583:8:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2994, + "name": "_depositAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2974, + "src": "8593:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2991, + "name": "contribute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3163, + "src": "8563:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address payable,uint256,uint256)" + } + }, + "id": 2995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8563:45:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2996, + "nodeType": "ExpressionStatement", + "src": "8563:45:5" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 2997, + "name": "bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2980, + "src": "8625:8:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2998, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8624:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2978, + "id": 2999, + "nodeType": "Return", + "src": "8617:17:5" + } + ] + }, + "documentation": "@param _depositAmount the amount of tokens being deposited to the bounty, which will create a new contribution to the bounty", + "id": 3001, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "issueAndContribute", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2975, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2958, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3001, + "src": "8183:23:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 2957, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8183:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2961, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 3001, + "src": "8213:33:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 2959, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8213:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 2960, + "length": null, + "nodeType": "ArrayTypeName", + "src": "8213:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2964, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 3001, + "src": "8253:27:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2962, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8253:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2963, + "length": null, + "nodeType": "ArrayTypeName", + "src": "8253:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2966, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3001, + "src": "8287:19:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2965, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8287:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2968, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 3001, + "src": "8313:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2967, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8313:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2970, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 3001, + "src": "8334:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2969, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8334:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2972, + "name": "_tokenVersion", + "nodeType": "VariableDeclaration", + "scope": 3001, + "src": "8355:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2971, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8355:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2974, + "name": "_depositAmount", + "nodeType": "VariableDeclaration", + "scope": 3001, + "src": "8380:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2973, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8380:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8176:224:5" + }, + "returnParameters": { + "id": 2978, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2977, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3001, + "src": "8439:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2976, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8439:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8438:6:5" + }, + "scope": 4512, + "src": "8149:491:5", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3162, + "nodeType": "Block", + "src": "9690:1740:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3019, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3007, + "src": "9705:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9715:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9705:11:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3018, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9697:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9697:20:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3023, + "nodeType": "ExpressionStatement", + "src": "9697:20:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3030, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9841:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 3031, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3007, + "src": "9850:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 3032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9859:5:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3029, + "name": "Contribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "9828:12:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Contribution_$2549_storage_ptr_$", + "typeString": "type(struct StandardBounties.Contribution storage pointer)" + } + }, + "id": 3033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9828:37:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_memory", + "typeString": "struct StandardBounties.Contribution memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Contribution_$2549_memory", + "typeString": "struct StandardBounties.Contribution memory" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3024, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "9781:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3026, + "indexExpression": { + "argumentTypes": null, + "id": 3025, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "9790:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9781:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3027, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributions", + "nodeType": "MemberAccess", + "referencedDeclaration": 2535, + "src": "9781:33:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", + "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" + } + }, + "id": 3028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9781:38:5", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Contribution_$2549_storage_$returns$_t_uint256_$", + "typeString": "function (struct StandardBounties.Contribution storage ref) returns (uint256)" + } + }, + "id": 3034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9781:85:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3035, + "nodeType": "ExpressionStatement", + "src": "9781:85:5" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3036, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "9918:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3038, + "indexExpression": { + "argumentTypes": null, + "id": 3037, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "9927:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9918:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3039, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenVersion", + "nodeType": "MemberAccess", + "referencedDeclaration": 2525, + "src": "9918:32:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9954:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9918:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3063, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "10135:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3065, + "indexExpression": { + "argumentTypes": null, + "id": 3064, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "10144:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10135:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3066, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenVersion", + "nodeType": "MemberAccess", + "referencedDeclaration": 2525, + "src": "10135:32:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3230", + "id": 3067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10171:2:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "src": "10135:38:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3106, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "10674:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3108, + "indexExpression": { + "argumentTypes": null, + "id": 3107, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "10683:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10674:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3109, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenVersion", + "nodeType": "MemberAccess", + "referencedDeclaration": 2525, + "src": "10674:32:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "373231", + "id": 3110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10710:3:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_721_by_1", + "typeString": "int_const 721" + }, + "value": "721" + }, + "src": "10674:39:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3145, + "nodeType": "Block", + "src": "11184:25:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3142, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10416, + 10417 + ], + "referencedDeclaration": 10416, + "src": "11193:6:5", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11193:8:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3144, + "nodeType": "ExpressionStatement", + "src": "11193:8:5" + } + ] + }, + "id": 3146, + "nodeType": "IfStatement", + "src": "10670:539:5", + "trueBody": { + "id": 3141, + "nodeType": "Block", + "src": "10714:464:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3112, + "name": "tokenBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2561, + "src": "10723:13:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => bool))" + } + }, + "id": 3115, + "indexExpression": { + "argumentTypes": null, + "id": 3113, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "10737:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10723:24:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 3116, + "indexExpression": { + "argumentTypes": null, + "id": 3114, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3007, + "src": "10748:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10723:33:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3117, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10759:4:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "10723:40:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3119, + "nodeType": "ExpressionStatement", + "src": "10723:40:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3121, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10835:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10835:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3123, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10848:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10835:14:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3120, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10827:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10827:23:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3126, + "nodeType": "ExpressionStatement", + "src": "10827:23:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3134, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "11010:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3136, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10465, + "src": "11091:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + ], + "id": 3135, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11083:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11083:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3138, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3007, + "src": "11162:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3128, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "10970:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3130, + "indexExpression": { + "argumentTypes": null, + "id": 3129, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "10979:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10970:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3131, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 2523, + "src": "10970:25:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3127, + "name": "ERC721BasicToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5764, + "src": "10953:16:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721BasicToken_$5764_$", + "typeString": "type(contract ERC721BasicToken)" + } + }, + "id": 3132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10953:43:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", + "typeString": "contract ERC721BasicToken" + } + }, + "id": 3133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 5485, + "src": "10953:56:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 3139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10953:217:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3140, + "nodeType": "ExpressionStatement", + "src": "10953:217:5" + } + ] + } + }, + "id": 3147, + "nodeType": "IfStatement", + "src": "10131:1078:5", + "trueBody": { + "id": 3105, + "nodeType": "Block", + "src": "10174:490:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3069, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "10185:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3071, + "indexExpression": { + "argumentTypes": null, + "id": 3070, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "10194:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10185:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3072, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "10185:27:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3078, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3007, + "src": "10247:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3073, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "10215:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3075, + "indexExpression": { + "argumentTypes": null, + "id": 3074, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "10224:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10215:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3076, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "10215:27:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "10215:31:5", + "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": 3079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10215:40:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10185:70:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3081, + "nodeType": "ExpressionStatement", + "src": "10185:70:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3083, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10314:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10314:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3085, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10327:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10314:14:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3082, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10306:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10306:23:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3088, + "nodeType": "ExpressionStatement", + "src": "10306:23:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3097, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10491:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3099, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10465, + "src": "10574:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + ], + "id": 3098, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10566:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10566:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3101, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3007, + "src": "10647:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3091, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "10451:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3093, + "indexExpression": { + "argumentTypes": null, + "id": 3092, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "10460:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10451:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3094, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 2523, + "src": "10451:25:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3090, + "name": "ERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4989, + "src": "10440:10:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Token_$4989_$", + "typeString": "type(contract ERC20Token)" + } + }, + "id": 3095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10440:37:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Token_$4989", + "typeString": "contract ERC20Token" + } + }, + "id": 3096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 4922, + "src": "10440:50:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 3102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10440:215:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3089, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10432:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10432:224:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3104, + "nodeType": "ExpressionStatement", + "src": "10432:224:5" + } + ] + } + }, + "id": 3148, + "nodeType": "IfStatement", + "src": "9914:1295:5", + "trueBody": { + "id": 3062, + "nodeType": "Block", + "src": "9956:169:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3042, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "9967:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3044, + "indexExpression": { + "argumentTypes": null, + "id": 3043, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "9976:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9967:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3045, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "9967:27:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3051, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3007, + "src": "10029:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3046, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "9997:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3048, + "indexExpression": { + "argumentTypes": null, + "id": 3047, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "10006:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9997:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3049, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "9997:27:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "9997:31:5", + "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": 3052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9997:40:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9967:70:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3054, + "nodeType": "ExpressionStatement", + "src": "9967:70:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3056, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10096:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10096:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 3058, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3007, + "src": "10109:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10096:20:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3055, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10088:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10088:29:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3061, + "nodeType": "ExpressionStatement", + "src": "10088:29:5" + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3150, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "11240:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3151, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "11279:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3153, + "indexExpression": { + "argumentTypes": null, + "id": 3152, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "11288:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11279:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3154, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributions", + "nodeType": "MemberAccess", + "referencedDeclaration": 2535, + "src": "11279:33:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", + "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" + } + }, + "id": 3155, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11279:40:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 3156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11322:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11279:44:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3158, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "11379:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 3159, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3007, + "src": "11416:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3149, + "name": "ContributionAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4394, + "src": "11222:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_address_payable_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256,address payable,uint256)" + } + }, + "id": 3160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11222:202:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3161, + "nodeType": "EmitStatement", + "src": "11217:207:5" + } + ] + }, + "documentation": "@param _amount the amount of tokens being contributed", + "id": 3163, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3010, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9617:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 3011, + "modifierName": { + "argumentTypes": null, + "id": 3009, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "9603:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "9603:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3013, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "9656:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3014, + "modifierName": { + "argumentTypes": null, + "id": 3012, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "9631:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "9631:35:5" + }, + { + "arguments": null, + "id": 3016, + "modifierName": { + "argumentTypes": null, + "id": 3015, + "name": "callNotStarted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2584, + "src": "9672:14:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "9672:14:5" + } + ], + "name": "contribute", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3008, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3003, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3163, + "src": "9508:23:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 3002, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9508:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3005, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3163, + "src": "9538:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3004, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9538:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3007, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 3163, + "src": "9559:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3006, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9559:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9501:71:5" + }, + "returnParameters": { + "id": 3017, + "nodeType": "ParameterList", + "parameters": [], + "src": "9690:0:5" + }, + "scope": 4512, + "src": "9482:1948:5", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3233, + "nodeType": "Block", + "src": "12368:450:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3197, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10413, + "src": "12383:3:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3198, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "12389:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3200, + "indexExpression": { + "argumentTypes": null, + "id": 3199, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3167, + "src": "12398:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12389:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3201, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "deadline", + "nodeType": "MemberAccess", + "referencedDeclaration": 2521, + "src": "12389:28:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12383:34:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3196, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "12375:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12375:43:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3204, + "nodeType": "ExpressionStatement", + "src": "12375:43:5" + }, + { + "assignments": [ + 3206 + ], + "declarations": [ + { + "constant": false, + "id": 3206, + "name": "contribution", + "nodeType": "VariableDeclaration", + "scope": 3233, + "src": "12491:33:5", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", + "typeString": "struct StandardBounties.Contribution" + }, + "typeName": { + "contractScope": null, + "id": 3205, + "name": "Contribution", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2549, + "src": "12491:12:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", + "typeString": "struct StandardBounties.Contribution" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3213, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3207, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "12527:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3209, + "indexExpression": { + "argumentTypes": null, + "id": 3208, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3167, + "src": "12536:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12527:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3210, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributions", + "nodeType": "MemberAccess", + "referencedDeclaration": 2535, + "src": "12527:33:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", + "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" + } + }, + "id": 3212, + "indexExpression": { + "argumentTypes": null, + "id": 3211, + "name": "_contributionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3169, + "src": "12561:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12527:50:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage", + "typeString": "struct StandardBounties.Contribution storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12491:86:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3214, + "name": "contribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3206, + "src": "12586:12:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", + "typeString": "struct StandardBounties.Contribution storage pointer" + } + }, + "id": 3216, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "refunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 2548, + "src": "12586:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3217, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12610:4:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "12586:28:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3219, + "nodeType": "ExpressionStatement", + "src": "12586:28:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3221, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3167, + "src": "12638:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3222, + "name": "contribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3206, + "src": "12649:12:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", + "typeString": "struct StandardBounties.Contribution storage pointer" + } + }, + "id": 3223, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributor", + "nodeType": "MemberAccess", + "referencedDeclaration": 2544, + "src": "12649:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3224, + "name": "contribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3206, + "src": "12675:12:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", + "typeString": "struct StandardBounties.Contribution storage pointer" + } + }, + "id": 3225, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2546, + "src": "12675:19:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3220, + "name": "transferTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4364, + "src": "12623:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_payable_$_t_uint256_$returns$__$", + "typeString": "function (uint256,address payable,uint256)" + } + }, + "id": 3226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12623:72:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3227, + "nodeType": "ExpressionStatement", + "src": "12623:72:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3229, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3167, + "src": "12785:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3230, + "name": "_contributionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3169, + "src": "12796:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3228, + "name": "ContributionRefunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4400, + "src": "12764:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 3231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12764:48:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3232, + "nodeType": "EmitStatement", + "src": "12759:53:5" + } + ] + }, + "documentation": "@param _contributionId the index of the contribution being refunded", + "id": 3234, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3172, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3165, + "src": "12098:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3173, + "modifierName": { + "argumentTypes": null, + "id": 3171, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "12084:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12084:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3175, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3167, + "src": "12137:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3176, + "modifierName": { + "argumentTypes": null, + "id": 3174, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "12112:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12112:35:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3178, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3167, + "src": "12184:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3179, + "name": "_contributionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3169, + "src": "12195:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3180, + "modifierName": { + "argumentTypes": null, + "id": 3177, + "name": "validateContributionArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "12153:30:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12153:58:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3182, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3165, + "src": "12233:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3183, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3167, + "src": "12242:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3184, + "name": "_contributionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3169, + "src": "12253:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3185, + "modifierName": { + "argumentTypes": null, + "id": 3181, + "name": "onlyContributor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2733, + "src": "12217:15:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", + "typeString": "modifier (address,uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12217:52:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3187, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3167, + "src": "12286:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3188, + "modifierName": { + "argumentTypes": null, + "id": 3186, + "name": "hasNotPaid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2768, + "src": "12275:10:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12275:21:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3190, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3167, + "src": "12317:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3191, + "name": "_contributionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3169, + "src": "12328:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3192, + "modifierName": { + "argumentTypes": null, + "id": 3189, + "name": "hasNotRefunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2787, + "src": "12302:14:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12302:42:5" + }, + { + "arguments": null, + "id": 3194, + "modifierName": { + "argumentTypes": null, + "id": 3193, + "name": "callNotStarted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2584, + "src": "12350:14:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "12350:14:5" + } + ], + "name": "refundContribution", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3170, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3165, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3234, + "src": "12002:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3164, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12002:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3167, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3234, + "src": "12024:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3166, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12024:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3169, + "name": "_contributionId", + "nodeType": "VariableDeclaration", + "scope": 3234, + "src": "12045:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3168, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12045:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11995:71:5" + }, + "returnParameters": { + "id": 3195, + "nodeType": "ParameterList", + "parameters": [], + "src": "12368:0:5" + }, + "scope": 4512, + "src": "11968:850:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3268, + "nodeType": "Block", + "src": "13357:140:5", + "statements": [ + { + "body": { + "id": 3266, + "nodeType": "Block", + "src": "13414:78:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3259, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3236, + "src": "13444:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3260, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3238, + "src": "13453:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3261, + "name": "_contributionIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3241, + "src": "13464:16:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3263, + "indexExpression": { + "argumentTypes": null, + "id": 3262, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3248, + "src": "13481:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13464:19:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3258, + "name": "refundContribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3234, + "src": "13425:18:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 3264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13425:59:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3265, + "nodeType": "ExpressionStatement", + "src": "13425:59:5" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3251, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3248, + "src": "13381:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3252, + "name": "_contributionIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3241, + "src": "13385:16:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13385:23:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13381:27:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3267, + "initializationExpression": { + "assignments": [ + 3248 + ], + "declarations": [ + { + "constant": false, + "id": 3248, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 3267, + "src": "13369:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3247, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "13369:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3250, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 3249, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13378:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "13369:10:5" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 3256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "13410:3:5", + "subExpression": { + "argumentTypes": null, + "id": 3255, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3248, + "src": "13410:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3257, + "nodeType": "ExpressionStatement", + "src": "13410:3:5" + }, + "nodeType": "ForStatement", + "src": "13364:128:5" + } + ] + }, + "documentation": "@param _contributionIds the array of indexes of the contributions being refunded", + "id": 3269, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3244, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3236, + "src": "13345:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3245, + "modifierName": { + "argumentTypes": null, + "id": 3243, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "13331:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "13331:22:5" + } + ], + "name": "refundMyContributions", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3242, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3236, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3269, + "src": "13239:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3235, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13239:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3238, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3269, + "src": "13261:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3237, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "13261:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3241, + "name": "_contributionIds", + "nodeType": "VariableDeclaration", + "scope": 3269, + "src": "13282:30:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 3239, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "13282:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3240, + "length": null, + "nodeType": "ArrayTypeName", + "src": "13282:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13232:81:5" + }, + "returnParameters": { + "id": 3246, + "nodeType": "ParameterList", + "parameters": [], + "src": "13357:0:5" + }, + "scope": 4512, + "src": "13202:295:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3356, + "nodeType": "Block", + "src": "14232:543:5", + "statements": [ + { + "body": { + "id": 3348, + "nodeType": "Block", + "src": "14289:408:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3306, + "name": "_contributionIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3278, + "src": "14306:16:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3308, + "indexExpression": { + "argumentTypes": null, + "id": 3307, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3295, + "src": "14323:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14306:19:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3309, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "14328:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3311, + "indexExpression": { + "argumentTypes": null, + "id": 3310, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3273, + "src": "14337:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14328:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3312, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributions", + "nodeType": "MemberAccess", + "referencedDeclaration": 2535, + "src": "14328:33:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", + "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" + } + }, + "id": 3313, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14328:40:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14306:62:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3305, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "14298:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14298:71:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3316, + "nodeType": "ExpressionStatement", + "src": "14298:71:5" + }, + { + "assignments": [ + 3318 + ], + "declarations": [ + { + "constant": false, + "id": 3318, + "name": "contribution", + "nodeType": "VariableDeclaration", + "scope": 3348, + "src": "14380:33:5", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", + "typeString": "struct StandardBounties.Contribution" + }, + "typeName": { + "contractScope": null, + "id": 3317, + "name": "Contribution", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2549, + "src": "14380:12:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", + "typeString": "struct StandardBounties.Contribution" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3327, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3319, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "14416:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3321, + "indexExpression": { + "argumentTypes": null, + "id": 3320, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3273, + "src": "14425:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14416:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3322, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributions", + "nodeType": "MemberAccess", + "referencedDeclaration": 2535, + "src": "14416:33:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", + "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" + } + }, + "id": 3326, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3323, + "name": "_contributionIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3278, + "src": "14450:16:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3325, + "indexExpression": { + "argumentTypes": null, + "id": 3324, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3295, + "src": "14467:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14450:19:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14416:54:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage", + "typeString": "struct StandardBounties.Contribution storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14380:90:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "14489:22:5", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3329, + "name": "contribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3318, + "src": "14490:12:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", + "typeString": "struct StandardBounties.Contribution storage pointer" + } + }, + "id": 3330, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "refunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 2548, + "src": "14490:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3328, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "14481:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14481:31:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3333, + "nodeType": "ExpressionStatement", + "src": "14481:31:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3334, + "name": "contribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3318, + "src": "14523:12:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", + "typeString": "struct StandardBounties.Contribution storage pointer" + } + }, + "id": 3336, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "refunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 2548, + "src": "14523:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14547:4:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "14523:28:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3339, + "nodeType": "ExpressionStatement", + "src": "14523:28:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3341, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3273, + "src": "14577:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3342, + "name": "contribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3318, + "src": "14588:12:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", + "typeString": "struct StandardBounties.Contribution storage pointer" + } + }, + "id": 3343, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributor", + "nodeType": "MemberAccess", + "referencedDeclaration": 2544, + "src": "14588:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3344, + "name": "contribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3318, + "src": "14614:12:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", + "typeString": "struct StandardBounties.Contribution storage pointer" + } + }, + "id": 3345, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2546, + "src": "14614:19:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3340, + "name": "transferTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4364, + "src": "14562:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_payable_$_t_uint256_$returns$__$", + "typeString": "function (uint256,address payable,uint256)" + } + }, + "id": 3346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14562:72:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3347, + "nodeType": "ExpressionStatement", + "src": "14562:72:5" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3298, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3295, + "src": "14256:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3299, + "name": "_contributionIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3278, + "src": "14260:16:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14260:23:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14256:27:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3349, + "initializationExpression": { + "assignments": [ + 3295 + ], + "declarations": [ + { + "constant": false, + "id": 3295, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 3349, + "src": "14244:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3294, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14244:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3297, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 3296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14253:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "14244:10:5" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 3303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "14285:3:5", + "subExpression": { + "argumentTypes": null, + "id": 3302, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3295, + "src": "14285:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3304, + "nodeType": "ExpressionStatement", + "src": "14285:3:5" + }, + "nodeType": "ForStatement", + "src": "14239:458:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3351, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3273, + "src": "14732:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3352, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3271, + "src": "14743:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3353, + "name": "_contributionIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3278, + "src": "14752:16:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 3350, + "name": "ContributionsRefunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4409, + "src": "14710:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,uint256[] memory)" + } + }, + "id": 3354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14710:59:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3355, + "nodeType": "EmitStatement", + "src": "14705:64:5" + } + ] + }, + "documentation": "@param _contributionIds the array of indexes of the contributions being refunded", + "id": 3357, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3281, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3271, + "src": "14112:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3282, + "modifierName": { + "argumentTypes": null, + "id": 3280, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "14098:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "14098:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3284, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3273, + "src": "14151:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3285, + "modifierName": { + "argumentTypes": null, + "id": 3283, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "14126:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "14126:35:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3287, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3271, + "src": "14178:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3288, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3273, + "src": "14187:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3289, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3275, + "src": "14198:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3290, + "modifierName": { + "argumentTypes": null, + "id": 3286, + "name": "onlyIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "14167:10:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", + "typeString": "modifier (address,uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "14167:41:5" + }, + { + "arguments": null, + "id": 3292, + "modifierName": { + "argumentTypes": null, + "id": 3291, + "name": "callNotStarted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2584, + "src": "14214:14:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "14214:14:5" + } + ], + "name": "refundContributions", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3279, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3271, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "13985:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3270, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13985:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3273, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "14007:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3272, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14007:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3275, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "14028:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3274, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14028:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3278, + "name": "_contributionIds", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "14049:30:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 3276, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14049:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3277, + "length": null, + "nodeType": "ArrayTypeName", + "src": "14049:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13978:102:5" + }, + "returnParameters": { + "id": 3293, + "nodeType": "ParameterList", + "parameters": [], + "src": "14232:0:5" + }, + "scope": 4512, + "src": "13950:825:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3461, + "nodeType": "Block", + "src": "15849:800:5", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3382, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "15860:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3384, + "indexExpression": { + "argumentTypes": null, + "id": 3383, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3361, + "src": "15869:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15860:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3385, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenVersion", + "nodeType": "MemberAccess", + "referencedDeclaration": 2525, + "src": "15860:32:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3386, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15896:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15860:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3388, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "15901:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3390, + "indexExpression": { + "argumentTypes": null, + "id": 3389, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3361, + "src": "15910:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15901:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3391, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenVersion", + "nodeType": "MemberAccess", + "referencedDeclaration": 2525, + "src": "15901:32:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3230", + "id": 3392, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15937:2:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "src": "15901:38:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15860:79:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3453, + "nodeType": "Block", + "src": "16310:277:5", + "statements": [ + { + "body": { + "id": 3451, + "nodeType": "Block", + "src": "16361:219:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3434, + "name": "tokenBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2561, + "src": "16380:13:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => bool))" + } + }, + "id": 3436, + "indexExpression": { + "argumentTypes": null, + "id": 3435, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3361, + "src": "16394:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16380:24:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 3440, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3437, + "name": "_amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3366, + "src": "16405:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3439, + "indexExpression": { + "argumentTypes": null, + "id": 3438, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3423, + "src": "16414:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16405:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16380:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3433, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "16372:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16372:46:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3442, + "nodeType": "ExpressionStatement", + "src": "16372:46:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3444, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3361, + "src": "16538:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3445, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3359, + "src": "16549:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3446, + "name": "_amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3366, + "src": "16558:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3448, + "indexExpression": { + "argumentTypes": null, + "id": 3447, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3423, + "src": "16567:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16558:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3443, + "name": "transferTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4364, + "src": "16523:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_payable_$_t_uint256_$returns$__$", + "typeString": "function (uint256,address payable,uint256)" + } + }, + "id": 3449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16523:47:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3450, + "nodeType": "ExpressionStatement", + "src": "16523:47:5" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3426, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3423, + "src": "16336:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3427, + "name": "_amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3366, + "src": "16340:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16340:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16336:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3452, + "initializationExpression": { + "assignments": [ + 3423 + ], + "declarations": [ + { + "constant": false, + "id": 3423, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 3452, + "src": "16324:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3422, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "16324:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3425, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 3424, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16333:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "16324:10:5" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 3431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "16357:3:5", + "subExpression": { + "argumentTypes": null, + "id": 3430, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3423, + "src": "16357:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3432, + "nodeType": "ExpressionStatement", + "src": "16357:3:5" + }, + "nodeType": "ForStatement", + "src": "16319:261:5" + } + ] + }, + "id": 3454, + "nodeType": "IfStatement", + "src": "15856:731:5", + "trueBody": { + "id": 3421, + "nodeType": "Block", + "src": "15940:364:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3396, + "name": "_amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3366, + "src": "15957:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15957:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 3398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15976:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "15957:20:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3395, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "15949:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15949:29:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3401, + "nodeType": "ExpressionStatement", + "src": "15949:29:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3403, + "name": "_amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3366, + "src": "16053:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3405, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3404, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16062:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16053:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3406, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "16068:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3408, + "indexExpression": { + "argumentTypes": null, + "id": 3407, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3361, + "src": "16077:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16068:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3409, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "16068:27:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16053:42:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3402, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "16045:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16045:51:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3412, + "nodeType": "ExpressionStatement", + "src": "16045:51:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3414, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3361, + "src": "16215:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3415, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3359, + "src": "16226:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3416, + "name": "_amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3366, + "src": "16235:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3418, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3417, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16244:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16235:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3413, + "name": "transferTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4364, + "src": "16200:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_payable_$_t_uint256_$returns$__$", + "typeString": "function (uint256,address payable,uint256)" + } + }, + "id": 3419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16200:47:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3420, + "nodeType": "ExpressionStatement", + "src": "16200:47:5" + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3456, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3361, + "src": "16614:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3457, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3359, + "src": "16625:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 3458, + "name": "_amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3366, + "src": "16634:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 3455, + "name": "BountyDrained", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4418, + "src": "16600:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,uint256[] memory)" + } + }, + "id": 3459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16600:43:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3460, + "nodeType": "EmitStatement", + "src": "16595:48:5" + } + ] + }, + "documentation": "@param _amounts an array of amounts of tokens to be sent. The length of the array should be 1 if the bounty is in ETH or ERC20 tokens. If it's an ERC721 bounty, the array should be the list of tokenIDs.", + "id": 3462, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3369, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3359, + "src": "15729:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 3370, + "modifierName": { + "argumentTypes": null, + "id": 3368, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "15715:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "15715:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3372, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3361, + "src": "15768:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3373, + "modifierName": { + "argumentTypes": null, + "id": 3371, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "15743:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "15743:35:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3375, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3359, + "src": "15795:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 3376, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3361, + "src": "15804:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3377, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3363, + "src": "15815:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3378, + "modifierName": { + "argumentTypes": null, + "id": 3374, + "name": "onlyIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "15784:10:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", + "typeString": "modifier (address,uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "15784:41:5" + }, + { + "arguments": null, + "id": 3380, + "modifierName": { + "argumentTypes": null, + "id": 3379, + "name": "callNotStarted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2584, + "src": "15831:14:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15831:14:5" + } + ], + "name": "drainBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3367, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3359, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "15602:23:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 3358, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15602:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3361, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "15632:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3360, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15632:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3363, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "15653:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3362, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15653:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3366, + "name": "_amounts", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "15674:22:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 3364, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15674:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3365, + "length": null, + "nodeType": "ArrayTypeName", + "src": "15674:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15595:102:5" + }, + "returnParameters": { + "id": 3381, + "nodeType": "ParameterList", + "parameters": [], + "src": "15849:0:5" + }, + "scope": 4512, + "src": "15575:1074:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3483, + "nodeType": "Block", + "src": "17352:134:5", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3478, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3466, + "src": "17380:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3479, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3464, + "src": "17391:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3480, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3468, + "src": "17400:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3477, + "name": "ActionPerformed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4426, + "src": "17364:15:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,string memory)" + } + }, + "id": 3481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17364:42:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3482, + "nodeType": "EmitStatement", + "src": "17359:47:5" + } + ] + }, + "documentation": "@param _data the IPFS hash corresponding to a JSON object which contains the details of the action being performed (see docs for schema details)", + "id": 3484, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3471, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3464, + "src": "17299:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3472, + "modifierName": { + "argumentTypes": null, + "id": 3470, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "17285:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "17285:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3474, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3466, + "src": "17338:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3475, + "modifierName": { + "argumentTypes": null, + "id": 3473, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "17313:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "17313:35:5" + } + ], + "name": "performAction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3469, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3464, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3484, + "src": "17204:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3463, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17204:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3466, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3484, + "src": "17226:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3465, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17226:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3468, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3484, + "src": "17247:19:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3467, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17247:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17197:70:5" + }, + "returnParameters": { + "id": 3476, + "nodeType": "ParameterList", + "parameters": [], + "src": "17352:0:5" + }, + "scope": 4512, + "src": "17175:311:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3544, + "nodeType": "Block", + "src": "18230:598:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3503, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10413, + "src": "18245:3:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3504, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "18251:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3506, + "indexExpression": { + "argumentTypes": null, + "id": 3505, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3488, + "src": "18260:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18251:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3507, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "deadline", + "nodeType": "MemberAccess", + "referencedDeclaration": 2521, + "src": "18251:28:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18245:34:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3502, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "18237:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18237:43:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3510, + "nodeType": "ExpressionStatement", + "src": "18237:43:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3512, + "name": "_fulfillers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3491, + "src": "18358:11:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + "id": 3513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18358:18:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3514, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18379:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18358:22:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3511, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "18350:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18350:31:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3517, + "nodeType": "ExpressionStatement", + "src": "18350:31:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3524, + "name": "_fulfillers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3491, + "src": "18506:11:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 3525, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "18519:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3523, + "name": "Fulfillment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2542, + "src": "18494:11:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Fulfillment_$2542_storage_ptr_$", + "typeString": "type(struct StandardBounties.Fulfillment storage pointer)" + } + }, + "id": 3526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18494:33:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fulfillment_$2542_memory", + "typeString": "struct StandardBounties.Fulfillment memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Fulfillment_$2542_memory", + "typeString": "struct StandardBounties.Fulfillment memory" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3518, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "18456:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3520, + "indexExpression": { + "argumentTypes": null, + "id": 3519, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3488, + "src": "18465:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18456:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3521, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fulfillments", + "nodeType": "MemberAccess", + "referencedDeclaration": 2532, + "src": "18456:32:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", + "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" + } + }, + "id": 3522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18456:37:5", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Fulfillment_$2542_storage_$returns$_t_uint256_$", + "typeString": "function (struct StandardBounties.Fulfillment storage ref) returns (uint256)" + } + }, + "id": 3527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18456:72:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3528, + "nodeType": "ExpressionStatement", + "src": "18456:72:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3530, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3488, + "src": "18558:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3531, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "18596:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3533, + "indexExpression": { + "argumentTypes": null, + "id": 3532, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3488, + "src": "18605:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18596:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3534, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fulfillments", + "nodeType": "MemberAccess", + "referencedDeclaration": 2532, + "src": "18596:32:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", + "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" + } + }, + "id": 3535, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18596:39:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 3536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18638:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "18596:43:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3538, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "18595:45:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3539, + "name": "_fulfillers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3491, + "src": "18668:11:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 3540, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3493, + "src": "18707:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 3541, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "18814:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3529, + "name": "BountyFulfilled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4439, + "src": "18542:15:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_address_$returns$__$", + "typeString": "function (uint256,uint256,address payable[] memory,string memory,address)" + } + }, + "id": 3542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18542:280:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3543, + "nodeType": "EmitStatement", + "src": "18537:285:5" + } + ] + }, + "documentation": "@param _data the IPFS hash corresponding to a JSON object which contains the details of the submission (see docs for schema details)", + "id": 3545, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3496, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "18177:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3497, + "modifierName": { + "argumentTypes": null, + "id": 3495, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "18163:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "18163:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3499, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3488, + "src": "18216:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3500, + "modifierName": { + "argumentTypes": null, + "id": 3498, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "18191:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "18191:35:5" + } + ], + "name": "fulfillBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3486, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3545, + "src": "18038:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3485, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18038:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3488, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3545, + "src": "18060:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3487, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18060:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3491, + "name": "_fulfillers", + "nodeType": "VariableDeclaration", + "scope": 3545, + "src": "18081:37:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 3489, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18081:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 3490, + "length": null, + "nodeType": "ArrayTypeName", + "src": "18081:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3493, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3545, + "src": "18125:19:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3492, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "18125:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18031:114:5" + }, + "returnParameters": { + "id": 3501, + "nodeType": "ParameterList", + "parameters": [], + "src": "18230:0:5" + }, + "scope": 4512, + "src": "18009:819:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3591, + "nodeType": "Block", + "src": "19858:324:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3574, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "19865:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3576, + "indexExpression": { + "argumentTypes": null, + "id": 3575, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "19874:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19865:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3577, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fulfillments", + "nodeType": "MemberAccess", + "referencedDeclaration": 2532, + "src": "19865:32:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", + "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" + } + }, + "id": 3579, + "indexExpression": { + "argumentTypes": null, + "id": 3578, + "name": "_fulfillmentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3551, + "src": "19898:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19865:48:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fulfillment_$2542_storage", + "typeString": "struct StandardBounties.Fulfillment storage ref" + } + }, + "id": 3580, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "fulfillers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2539, + "src": "19865:59:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3581, + "name": "_fulfillers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3554, + "src": "19927:11:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + "src": "19865:73:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 3583, + "nodeType": "ExpressionStatement", + "src": "19865:73:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3585, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "19969:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3586, + "name": "_fulfillmentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3551, + "src": "20009:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3587, + "name": "_fulfillers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3554, + "src": "20054:11:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 3588, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3556, + "src": "20096:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3584, + "name": "FulfillmentUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4450, + "src": "19950:18:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,uint256,address payable[] memory,string memory)" + } + }, + "id": 3589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19950:152:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3590, + "nodeType": "EmitStatement", + "src": "19945:157:5" + } + ] + }, + "documentation": "@param _data the new IPFS hash corresponding to a JSON object which contains the details of the submission (see docs for schema details)", + "id": 3592, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3559, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3547, + "src": "19618:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3560, + "modifierName": { + "argumentTypes": null, + "id": 3558, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "19604:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "19604:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3562, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "19655:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3563, + "modifierName": { + "argumentTypes": null, + "id": 3561, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "19630:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "19630:35:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3565, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "19699:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3566, + "name": "_fulfillmentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3551, + "src": "19710:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3567, + "modifierName": { + "argumentTypes": null, + "id": 3564, + "name": "validateFulfillmentArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2632, + "src": "19669:29:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "19669:56:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3569, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3547, + "src": "19743:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3570, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "19752:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3571, + "name": "_fulfillmentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3551, + "src": "19763:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3572, + "modifierName": { + "argumentTypes": null, + "id": 3568, + "name": "onlySubmitter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2711, + "src": "19729:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", + "typeString": "modifier (address,uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "19729:49:5" + } + ], + "name": "updateFulfillment", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3557, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3547, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3592, + "src": "19466:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3546, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19466:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3549, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3592, + "src": "19486:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3548, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "19486:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3551, + "name": "_fulfillmentId", + "nodeType": "VariableDeclaration", + "scope": 3592, + "src": "19505:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3550, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "19505:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3554, + "name": "_fulfillers", + "nodeType": "VariableDeclaration", + "scope": 3592, + "src": "19529:36:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 3552, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19529:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 3553, + "length": null, + "nodeType": "ArrayTypeName", + "src": "19529:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3556, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3592, + "src": "19570:19:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3555, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "19570:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19461:129:5" + }, + "returnParameters": { + "id": 3573, + "nodeType": "ParameterList", + "parameters": [], + "src": "19858:0:5" + }, + "scope": 4512, + "src": "19435:747:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3687, + "nodeType": "Block", + "src": "21405:812:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3623, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "21499:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3625, + "indexExpression": { + "argumentTypes": null, + "id": 3624, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3596, + "src": "21508:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21499:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3626, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "hasPaidOut", + "nodeType": "MemberAccess", + "referencedDeclaration": 2529, + "src": "21499:30:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21532:4:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "21499:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3629, + "nodeType": "ExpressionStatement", + "src": "21499:37:5" + }, + { + "assignments": [ + 3631 + ], + "declarations": [ + { + "constant": false, + "id": 3631, + "name": "fulfillment", + "nodeType": "VariableDeclaration", + "scope": 3687, + "src": "21545:31:5", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fulfillment_$2542_storage_ptr", + "typeString": "struct StandardBounties.Fulfillment" + }, + "typeName": { + "contractScope": null, + "id": 3630, + "name": "Fulfillment", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2542, + "src": "21545:11:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fulfillment_$2542_storage_ptr", + "typeString": "struct StandardBounties.Fulfillment" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3638, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3632, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "21579:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3634, + "indexExpression": { + "argumentTypes": null, + "id": 3633, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3596, + "src": "21588:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21579:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3635, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fulfillments", + "nodeType": "MemberAccess", + "referencedDeclaration": 2532, + "src": "21579:32:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", + "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" + } + }, + "id": 3637, + "indexExpression": { + "argumentTypes": null, + "id": 3636, + "name": "_fulfillmentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3598, + "src": "21612:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21579:48:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fulfillment_$2542_storage", + "typeString": "struct StandardBounties.Fulfillment storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21545:82:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3640, + "name": "_tokenAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3603, + "src": "21644:13:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "21644:20:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3642, + "name": "fulfillment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3631, + "src": "21668:11:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fulfillment_$2542_storage_ptr", + "typeString": "struct StandardBounties.Fulfillment storage pointer" + } + }, + "id": 3643, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fulfillers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2539, + "src": "21668:22:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 3644, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "21668:29:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "21644:53:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3639, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "21636:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21636:62:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3647, + "nodeType": "ExpressionStatement", + "src": "21636:62:5" + }, + { + "body": { + "id": 3678, + "nodeType": "Block", + "src": "21838:202:5", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3660, + "name": "_tokenAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3603, + "src": "21853:13:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3662, + "indexExpression": { + "argumentTypes": null, + "id": 3661, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3649, + "src": "21867:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21853:16:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21872:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "21853:20:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3677, + "nodeType": "IfStatement", + "src": "21849:184:5", + "trueBody": { + "id": 3676, + "nodeType": "Block", + "src": "21874:159:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3666, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3596, + "src": "21966:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3667, + "name": "fulfillment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3631, + "src": "21977:11:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fulfillment_$2542_storage_ptr", + "typeString": "struct StandardBounties.Fulfillment storage pointer" + } + }, + "id": 3668, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fulfillers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2539, + "src": "21977:22:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 3670, + "indexExpression": { + "argumentTypes": null, + "id": 3669, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3649, + "src": "22000:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21977:25:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3671, + "name": "_tokenAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3603, + "src": "22004:13:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3673, + "indexExpression": { + "argumentTypes": null, + "id": 3672, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3649, + "src": "22018:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "22004:16:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3665, + "name": "transferTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4364, + "src": "21951:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_payable_$_t_uint256_$returns$__$", + "typeString": "function (uint256,address payable,uint256)" + } + }, + "id": 3674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21951:70:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3675, + "nodeType": "ExpressionStatement", + "src": "21951:70:5" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3652, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3649, + "src": "21799:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3653, + "name": "fulfillment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3631, + "src": "21803:11:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fulfillment_$2542_storage_ptr", + "typeString": "struct StandardBounties.Fulfillment storage pointer" + } + }, + "id": 3654, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fulfillers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2539, + "src": "21803:22:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 3655, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "21803:29:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "21799:33:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3679, + "initializationExpression": { + "assignments": [ + 3649 + ], + "declarations": [ + { + "constant": false, + "id": 3649, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 3679, + "src": "21784:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3648, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21784:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3651, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 3650, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21796:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "21784:13:5" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 3658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "21834:3:5", + "subExpression": { + "argumentTypes": null, + "id": 3657, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3649, + "src": "21834:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3659, + "nodeType": "ExpressionStatement", + "src": "21834:3:5" + }, + "nodeType": "ForStatement", + "src": "21779:261:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3681, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3596, + "src": "22071:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3682, + "name": "_fulfillmentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3598, + "src": "22112:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3683, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3594, + "src": "22158:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3684, + "name": "_tokenAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3603, + "src": "22197:13:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 3680, + "name": "FulfillmentAccepted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4461, + "src": "22051:19:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint256,uint256,address,uint256[] memory)" + } + }, + "id": 3685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22051:160:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3686, + "nodeType": "EmitStatement", + "src": "22046:165:5" + } + ] + }, + "documentation": "being sent to each of the individual fulfillers", + "id": 3688, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3606, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3594, + "src": "21221:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3607, + "modifierName": { + "argumentTypes": null, + "id": 3605, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "21207:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "21207:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3609, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3596, + "src": "21260:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3610, + "modifierName": { + "argumentTypes": null, + "id": 3608, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "21235:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "21235:35:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3612, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3596, + "src": "21306:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3613, + "name": "_fulfillmentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3598, + "src": "21317:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3614, + "modifierName": { + "argumentTypes": null, + "id": 3611, + "name": "validateFulfillmentArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2632, + "src": "21276:29:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "21276:56:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3616, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3594, + "src": "21349:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3617, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3596, + "src": "21358:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3618, + "name": "_approverId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "21369:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3619, + "modifierName": { + "argumentTypes": null, + "id": 3615, + "name": "isApprover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2754, + "src": "21338:10:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", + "typeString": "modifier (address,uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "21338:43:5" + }, + { + "arguments": null, + "id": 3621, + "modifierName": { + "argumentTypes": null, + "id": 3620, + "name": "callNotStarted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2584, + "src": "21387:14:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "21387:14:5" + } + ], + "name": "acceptFulfillment", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3604, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3594, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3688, + "src": "21069:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3593, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21069:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3596, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3688, + "src": "21091:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3595, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "21091:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3598, + "name": "_fulfillmentId", + "nodeType": "VariableDeclaration", + "scope": 3688, + "src": "21112:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3597, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "21112:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3600, + "name": "_approverId", + "nodeType": "VariableDeclaration", + "scope": 3688, + "src": "21138:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3599, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "21138:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3603, + "name": "_tokenAmounts", + "nodeType": "VariableDeclaration", + "scope": 3688, + "src": "21161:27:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 3601, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "21161:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3602, + "length": null, + "nodeType": "ArrayTypeName", + "src": "21161:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "21062:127:5" + }, + "returnParameters": { + "id": 3622, + "nodeType": "ParameterList", + "parameters": [], + "src": "21405:0:5" + }, + "scope": 4512, + "src": "21036:1181:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3729, + "nodeType": "Block", + "src": "23492:376:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3709, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3690, + "src": "23575:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3710, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3692, + "src": "23584:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3711, + "name": "_fulfillers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3695, + "src": "23595:11:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 3712, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3697, + "src": "23608:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3708, + "name": "fulfillBounty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "23561:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,address payable[] memory,string memory)" + } + }, + "id": 3713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23561:53:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3714, + "nodeType": "ExpressionStatement", + "src": "23561:53:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3716, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3690, + "src": "23678:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3717, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3692, + "src": "23710:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3718, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "23744:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3720, + "indexExpression": { + "argumentTypes": null, + "id": 3719, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3692, + "src": "23753:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "23744:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3721, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fulfillments", + "nodeType": "MemberAccess", + "referencedDeclaration": 2532, + "src": "23744:32:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", + "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" + } + }, + "id": 3722, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "23744:39:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 3723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23786:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "23744:43:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3725, + "name": "_approverId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3699, + "src": "23812:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3726, + "name": "_tokenAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3702, + "src": "23848:13:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 3715, + "name": "acceptFulfillment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3688, + "src": "23660:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,uint256[] memory)" + } + }, + "id": 3727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23660:202:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3728, + "nodeType": "ExpressionStatement", + "src": "23660:202:5" + } + ] + }, + "documentation": "being sent to each of the individual fulfillers", + "id": 3730, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3705, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3690, + "src": "23480:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3706, + "modifierName": { + "argumentTypes": null, + "id": 3704, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "23466:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "23466:22:5" + } + ], + "name": "fulfillAndAccept", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3703, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3690, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3730, + "src": "23285:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3689, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23285:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3692, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3730, + "src": "23307:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3691, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "23307:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3695, + "name": "_fulfillers", + "nodeType": "VariableDeclaration", + "scope": 3730, + "src": "23328:36:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 3693, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23328:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 3694, + "length": null, + "nodeType": "ArrayTypeName", + "src": "23328:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3697, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3730, + "src": "23371:19:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3696, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "23371:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3699, + "name": "_approverId", + "nodeType": "VariableDeclaration", + "scope": 3730, + "src": "23397:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3698, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "23397:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3702, + "name": "_tokenAmounts", + "nodeType": "VariableDeclaration", + "scope": 3730, + "src": "23420:27:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 3700, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "23420:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3701, + "length": null, + "nodeType": "ArrayTypeName", + "src": "23420:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "23278:170:5" + }, + "returnParameters": { + "id": 3707, + "nodeType": "ParameterList", + "parameters": [], + "src": "23492:0:5" + }, + "scope": 4512, + "src": "23253:615:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3821, + "nodeType": "Block", + "src": "24888:901:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3753, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3734, + "src": "24903:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 3754, + "name": "numBounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2551, + "src": "24915:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24903:23:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3752, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "24895:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24895:32:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3757, + "nodeType": "ExpressionStatement", + "src": "24895:32:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3759, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3736, + "src": "25028:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3760, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "25040:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3762, + "indexExpression": { + "argumentTypes": null, + "id": 3761, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3734, + "src": "25049:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25040:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3763, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "25040:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 3764, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "25040:34:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25028:46:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3758, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "25020:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25020:55:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3767, + "nodeType": "ExpressionStatement", + "src": "25020:55:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3769, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3732, + "src": "25176:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3770, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "25187:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3772, + "indexExpression": { + "argumentTypes": null, + "id": 3771, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3734, + "src": "25196:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25187:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3773, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "25187:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 3775, + "indexExpression": { + "argumentTypes": null, + "id": 3774, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3736, + "src": "25215:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25187:38:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "25176:49:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3768, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "25168:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25168:58:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3778, + "nodeType": "ExpressionStatement", + "src": "25168:58:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3780, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3739, + "src": "25315:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + "id": 3781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "25315:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25333:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "25315:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3784, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3742, + "src": "25338:10:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + "id": 3785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "25338:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3786, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25358:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "25338:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "25315:44:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3779, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "25307:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25307:53:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3790, + "nodeType": "ExpressionStatement", + "src": "25307:53:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3791, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "25444:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3793, + "indexExpression": { + "argumentTypes": null, + "id": 3792, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3734, + "src": "25453:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25444:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3794, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "25444:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3795, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3739, + "src": "25474:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + "src": "25444:38:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 3797, + "nodeType": "ExpressionStatement", + "src": "25444:38:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3798, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "25489:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3800, + "indexExpression": { + "argumentTypes": null, + "id": 3799, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3734, + "src": "25498:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25489:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3801, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "approvers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2519, + "src": "25489:29:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3802, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3742, + "src": "25521:10:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + "src": "25489:42:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3804, + "nodeType": "ExpressionStatement", + "src": "25489:42:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3805, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "25538:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3807, + "indexExpression": { + "argumentTypes": null, + "id": 3806, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3734, + "src": "25547:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25538:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3808, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "deadline", + "nodeType": "MemberAccess", + "referencedDeclaration": 2521, + "src": "25538:28:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3809, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "25569:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25538:40:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3811, + "nodeType": "ExpressionStatement", + "src": "25538:40:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3813, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3734, + "src": "25604:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3814, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3732, + "src": "25639:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3815, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3739, + "src": "25672:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 3816, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3742, + "src": "25706:10:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 3817, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3744, + "src": "25742:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 3818, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "25773:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3812, + "name": "BountyChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4477, + "src": "25590:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (uint256,address,address payable[] memory,address payable[] memory,string memory,uint256)" + } + }, + "id": 3819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25590:193:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3820, + "nodeType": "EmitStatement", + "src": "25585:198:5" + } + ] + }, + "documentation": "@param _deadline the new timestamp which will become the deadline of the bounty", + "id": 3822, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3749, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3732, + "src": "24876:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3750, + "modifierName": { + "argumentTypes": null, + "id": 3748, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "24862:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "24862:22:5" + } + ], + "name": "changeBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3732, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3822, + "src": "24657:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3731, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24657:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3734, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3822, + "src": "24679:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3733, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "24679:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3736, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 3822, + "src": "24700:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3735, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "24700:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3739, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 3822, + "src": "24721:33:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 3737, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24721:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 3738, + "length": null, + "nodeType": "ArrayTypeName", + "src": "24721:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3742, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 3822, + "src": "24761:35:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 3740, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24761:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 3741, + "length": null, + "nodeType": "ArrayTypeName", + "src": "24761:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3744, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3822, + "src": "24803:19:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3743, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "24803:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3746, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 3822, + "src": "24829:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3745, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "24829:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "24650:194:5" + }, + "returnParameters": { + "id": 3751, + "nodeType": "ParameterList", + "parameters": [], + "src": "24888:0:5" + }, + "scope": 4512, + "src": "24629:1160:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3882, + "nodeType": "Block", + "src": "26643:237:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3851, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "26658:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3852, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "26670:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3854, + "indexExpression": { + "argumentTypes": null, + "id": 3853, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3826, + "src": "26679:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "26670:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3855, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "26670:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 3856, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "26670:34:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26658:46:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3858, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "26708:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3859, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26721:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "26708:14:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "26658:64:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3850, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "26650:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "26650:73:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3863, + "nodeType": "ExpressionStatement", + "src": "26650:73:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3864, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "26732:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3866, + "indexExpression": { + "argumentTypes": null, + "id": 3865, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3826, + "src": "26741:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "26732:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3867, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "26732:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 3869, + "indexExpression": { + "argumentTypes": null, + "id": 3868, + "name": "_issuerIdToChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3830, + "src": "26760:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "26732:46:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3870, + "name": "_newIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3832, + "src": "26781:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "26732:59:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 3872, + "nodeType": "ExpressionStatement", + "src": "26732:59:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3874, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3826, + "src": "26826:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3875, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3824, + "src": "26837:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3876, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "26846:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3878, + "indexExpression": { + "argumentTypes": null, + "id": 3877, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3826, + "src": "26855:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "26846:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3879, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "26846:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + ], + "id": 3873, + "name": "BountyIssuersUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4486, + "src": "26805:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_payable_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,address payable[] memory)" + } + }, + "id": 3880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "26805:69:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3881, + "nodeType": "EmitStatement", + "src": "26800:74:5" + } + ] + }, + "documentation": "@param _newIssuer the address of the new issuer", + "id": 3883, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3835, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3824, + "src": "26483:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3836, + "modifierName": { + "argumentTypes": null, + "id": 3834, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "26469:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "26469:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3838, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3826, + "src": "26522:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3839, + "modifierName": { + "argumentTypes": null, + "id": 3837, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "26497:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "26497:35:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3841, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3826, + "src": "26563:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3842, + "name": "_issuerIdToChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3830, + "src": "26574:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3843, + "modifierName": { + "argumentTypes": null, + "id": 3840, + "name": "validateIssuerArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2650, + "src": "26538:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "26538:54:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3845, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3824, + "src": "26609:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3846, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3826, + "src": "26618:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3847, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "26629:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3848, + "modifierName": { + "argumentTypes": null, + "id": 3844, + "name": "onlyIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "26598:10:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", + "typeString": "modifier (address,uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "26598:41:5" + } + ], + "name": "changeIssuer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3833, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3824, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3883, + "src": "26331:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3823, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "26331:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3826, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3883, + "src": "26353:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3825, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "26353:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3828, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 3883, + "src": "26374:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3827, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "26374:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3830, + "name": "_issuerIdToChange", + "nodeType": "VariableDeclaration", + "scope": 3883, + "src": "26395:22:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3829, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "26395:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3832, + "name": "_newIssuer", + "nodeType": "VariableDeclaration", + "scope": 3883, + "src": "26424:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 3831, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "26424:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "26324:127:5" + }, + "returnParameters": { + "id": 3849, + "nodeType": "ParameterList", + "parameters": [], + "src": "26643:0:5" + }, + "scope": 4512, + "src": "26303:577:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3929, + "nodeType": "Block", + "src": "27728:154:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3911, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "27735:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3913, + "indexExpression": { + "argumentTypes": null, + "id": 3912, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3887, + "src": "27744:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "27735:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3914, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "approvers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2519, + "src": "27735:29:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3916, + "indexExpression": { + "argumentTypes": null, + "id": 3915, + "name": "_approverId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3891, + "src": "27765:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "27735:42:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3917, + "name": "_approver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3893, + "src": "27780:9:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "27735:54:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3919, + "nodeType": "ExpressionStatement", + "src": "27735:54:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3921, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3887, + "src": "27826:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3922, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3885, + "src": "27837:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3923, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "27846:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3925, + "indexExpression": { + "argumentTypes": null, + "id": 3924, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3887, + "src": "27855:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "27846:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3926, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "approvers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2519, + "src": "27846:29:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + ], + "id": 3920, + "name": "BountyApproversUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4495, + "src": "27803:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,address[] memory)" + } + }, + "id": 3927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27803:73:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3928, + "nodeType": "EmitStatement", + "src": "27798:78:5" + } + ] + }, + "documentation": "@param _approver the address of the new approver", + "id": 3930, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3896, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3885, + "src": "27572:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3897, + "modifierName": { + "argumentTypes": null, + "id": 3895, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "27558:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "27558:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3899, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3887, + "src": "27611:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3900, + "modifierName": { + "argumentTypes": null, + "id": 3898, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "27586:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "27586:35:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3902, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3885, + "src": "27638:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3903, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3887, + "src": "27647:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3904, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3889, + "src": "27658:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3905, + "modifierName": { + "argumentTypes": null, + "id": 3901, + "name": "onlyIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "27627:10:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", + "typeString": "modifier (address,uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "27627:41:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3907, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3887, + "src": "27701:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3908, + "name": "_approverId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3891, + "src": "27712:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3909, + "modifierName": { + "argumentTypes": null, + "id": 3906, + "name": "validateApproverArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2668, + "src": "27674:26:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "27674:50:5" + } + ], + "name": "changeApprover", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3894, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3885, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3930, + "src": "27425:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3884, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "27425:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3887, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3930, + "src": "27447:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3886, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "27447:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3889, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 3930, + "src": "27468:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3888, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "27468:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3891, + "name": "_approverId", + "nodeType": "VariableDeclaration", + "scope": 3930, + "src": "27489:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3890, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "27489:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3893, + "name": "_approver", + "nodeType": "VariableDeclaration", + "scope": 3930, + "src": "27512:25:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 3892, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "27512:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "27418:120:5" + }, + "returnParameters": { + "id": 3910, + "nodeType": "ParameterList", + "parameters": [], + "src": "27728:0:5" + }, + "scope": 4512, + "src": "27395:487:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 4015, + "nodeType": "Block", + "src": "28769:489:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3954, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "28784:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 3955, + "name": "numBounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2551, + "src": "28796:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "28784:23:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3953, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "28776:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "28776:32:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3958, + "nodeType": "ExpressionStatement", + "src": "28776:32:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3960, + "name": "_approverIdToChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3940, + "src": "28823:19:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3961, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "28845:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3963, + "indexExpression": { + "argumentTypes": null, + "id": 3962, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "28854:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28845:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3964, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "approvers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2519, + "src": "28845:29:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3965, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "28845:36:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "28823:58:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3959, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "28815:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "28815:67:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3968, + "nodeType": "ExpressionStatement", + "src": "28815:67:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3970, + "name": "_issuerIdToChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3938, + "src": "28897:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3971, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "28917:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3973, + "indexExpression": { + "argumentTypes": null, + "id": 3972, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "28926:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28917:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3974, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "28917:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 3975, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "28917:34:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "28897:54:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3969, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "28889:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "28889:63:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3978, + "nodeType": "ExpressionStatement", + "src": "28889:63:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3979, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "28961:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3981, + "indexExpression": { + "argumentTypes": null, + "id": 3980, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "28970:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28961:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3982, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "28961:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 3984, + "indexExpression": { + "argumentTypes": null, + "id": 3983, + "name": "_issuerIdToChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3938, + "src": "28989:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "28961:46:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3985, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3942, + "src": "29010:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "28961:56:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 3987, + "nodeType": "ExpressionStatement", + "src": "28961:56:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3988, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "29024:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3990, + "indexExpression": { + "argumentTypes": null, + "id": 3989, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "29033:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "29024:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3991, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "approvers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2519, + "src": "29024:29:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3993, + "indexExpression": { + "argumentTypes": null, + "id": 3992, + "name": "_approverIdToChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3940, + "src": "29054:19:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29024:50:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3994, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3942, + "src": "29077:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "29024:60:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3996, + "nodeType": "ExpressionStatement", + "src": "29024:60:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3998, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "29119:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3999, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3932, + "src": "29130:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4000, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "29139:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4002, + "indexExpression": { + "argumentTypes": null, + "id": 4001, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "29148:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "29139:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4003, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "29139:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + ], + "id": 3997, + "name": "BountyIssuersUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4486, + "src": "29098:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_payable_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,address payable[] memory)" + } + }, + "id": 4004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29098:69:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4005, + "nodeType": "EmitStatement", + "src": "29093:74:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4007, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "29202:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4008, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3932, + "src": "29213:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4009, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "29222:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4011, + "indexExpression": { + "argumentTypes": null, + "id": 4010, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "29231:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "29222:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4012, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "approvers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2519, + "src": "29222:29:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + ], + "id": 4006, + "name": "BountyApproversUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4495, + "src": "29179:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,address[] memory)" + } + }, + "id": 4013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29179:73:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4014, + "nodeType": "EmitStatement", + "src": "29174:78:5" + } + ] + }, + "documentation": "@param _issuer the address of the new approver", + "id": 4016, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3945, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3932, + "src": "28710:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3946, + "modifierName": { + "argumentTypes": null, + "id": 3944, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "28696:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "28696:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3948, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3932, + "src": "28735:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3949, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "28744:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3950, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3936, + "src": "28755:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3951, + "modifierName": { + "argumentTypes": null, + "id": 3947, + "name": "onlyIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "28724:10:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", + "typeString": "modifier (address,uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "28724:41:5" + } + ], + "name": "changeIssuerAndApprover", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3943, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3932, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 4016, + "src": "28528:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3931, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "28528:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3934, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4016, + "src": "28550:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3933, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "28550:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3936, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4016, + "src": "28571:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3935, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "28571:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3938, + "name": "_issuerIdToChange", + "nodeType": "VariableDeclaration", + "scope": 4016, + "src": "28592:22:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3937, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "28592:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3940, + "name": "_approverIdToChange", + "nodeType": "VariableDeclaration", + "scope": 4016, + "src": "28621:24:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3939, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "28621:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3942, + "name": "_issuer", + "nodeType": "VariableDeclaration", + "scope": 4016, + "src": "28652:23:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 3941, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "28652:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "28521:155:5" + }, + "returnParameters": { + "id": 3952, + "nodeType": "ParameterList", + "parameters": [], + "src": "28769:0:5" + }, + "scope": 4512, + "src": "28489:769:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 4048, + "nodeType": "Block", + "src": "30049:164:5", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4043, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4020, + "src": "30079:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4044, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4018, + "src": "30090:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4045, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4024, + "src": "30099:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 4042, + "name": "BountyDataChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4503, + "src": "30061:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,string memory)" + } + }, + "id": 4046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30061:44:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4047, + "nodeType": "EmitStatement", + "src": "30056:49:5" + } + ] + }, + "documentation": "@param _data the new IPFS hash representing the JSON object storing the details of the bounty (see docs for schema details)", + "id": 4049, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 4027, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4018, + "src": "29897:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 4028, + "modifierName": { + "argumentTypes": null, + "id": 4026, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "29883:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "29883:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 4030, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4020, + "src": "29936:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4031, + "modifierName": { + "argumentTypes": null, + "id": 4029, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "29911:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "29911:35:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 4033, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4020, + "src": "29977:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4034, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4022, + "src": "29988:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4035, + "modifierName": { + "argumentTypes": null, + "id": 4032, + "name": "validateIssuerArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2650, + "src": "29952:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "29952:46:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 4037, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4018, + "src": "30015:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4038, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4020, + "src": "30024:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4039, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4022, + "src": "30035:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4040, + "modifierName": { + "argumentTypes": null, + "id": 4036, + "name": "onlyIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "30004:10:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", + "typeString": "modifier (address,uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "30004:41:5" + } + ], + "name": "changeData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4025, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4018, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 4049, + "src": "29781:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4017, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "29781:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4020, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4049, + "src": "29803:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4019, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "29803:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4022, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4049, + "src": "29824:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4021, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "29824:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4024, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4049, + "src": "29845:19:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4023, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "29845:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "29774:91:5" + }, + "returnParameters": { + "id": 4041, + "nodeType": "ParameterList", + "parameters": [], + "src": "30049:0:5" + }, + "scope": 4512, + "src": "29755:458:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4088, + "nodeType": "Block", + "src": "30969:119:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4075, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "30976:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4077, + "indexExpression": { + "argumentTypes": null, + "id": 4076, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "30985:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "30976:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4078, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "deadline", + "nodeType": "MemberAccess", + "referencedDeclaration": 2521, + "src": "30976:28:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4079, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4057, + "src": "31007:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30976:40:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4081, + "nodeType": "ExpressionStatement", + "src": "30976:40:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4083, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "31052:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4084, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4051, + "src": "31063:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4085, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4057, + "src": "31072:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4082, + "name": "BountyDeadlineChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4511, + "src": "31030:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (uint256,address,uint256)" + } + }, + "id": 4086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31030:52:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4087, + "nodeType": "EmitStatement", + "src": "31025:57:5" + } + ] + }, + "documentation": "@param _deadline the new timestamp which will become the deadline of the bounty", + "id": 4089, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 4060, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4051, + "src": "30817:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 4061, + "modifierName": { + "argumentTypes": null, + "id": 4059, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "30803:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "30803:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 4063, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "30856:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4064, + "modifierName": { + "argumentTypes": null, + "id": 4062, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "30831:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "30831:35:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 4066, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "30897:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4067, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4055, + "src": "30908:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4068, + "modifierName": { + "argumentTypes": null, + "id": 4065, + "name": "validateIssuerArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2650, + "src": "30872:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "30872:46:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 4070, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4051, + "src": "30935:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4071, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "30944:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4072, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4055, + "src": "30955:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4073, + "modifierName": { + "argumentTypes": null, + "id": 4069, + "name": "onlyIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "30924:10:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", + "typeString": "modifier (address,uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "30924:41:5" + } + ], + "name": "changeDeadline", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4058, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4051, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 4089, + "src": "30704:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4050, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "30704:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4053, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4089, + "src": "30726:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4052, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "30726:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4055, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4089, + "src": "30747:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4054, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "30747:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4057, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 4089, + "src": "30768:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4056, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "30768:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "30697:86:5" + }, + "returnParameters": { + "id": 4074, + "nodeType": "ParameterList", + "parameters": [], + "src": "30969:0:5" + }, + "scope": 4512, + "src": "30674:414:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 4148, + "nodeType": "Block", + "src": "31848:199:5", + "statements": [ + { + "body": { + "id": 4137, + "nodeType": "Block", + "src": "31897:62:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4132, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4098, + "src": "31939:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + "id": 4134, + "indexExpression": { + "argumentTypes": null, + "id": 4133, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4117, + "src": "31948:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "31939:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4127, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "31906:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4129, + "indexExpression": { + "argumentTypes": null, + "id": 4128, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4093, + "src": "31915:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "31906:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4130, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "31906:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 4131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "31906:32:5", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_payable_$returns$_t_uint256_$", + "typeString": "function (address payable) returns (uint256)" + } + }, + "id": 4135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31906:45:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4136, + "nodeType": "ExpressionStatement", + "src": "31906:45:5" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4120, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4117, + "src": "31872:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4121, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4098, + "src": "31876:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + "id": 4122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "31876:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31872:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4138, + "initializationExpression": { + "assignments": [ + 4117 + ], + "declarations": [ + { + "constant": false, + "id": 4117, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 4138, + "src": "31860:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4116, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "31860:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4119, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 4118, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31869:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "31860:10:5" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 4125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "31893:3:5", + "subExpression": { + "argumentTypes": null, + "id": 4124, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4117, + "src": "31893:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4126, + "nodeType": "ExpressionStatement", + "src": "31893:3:5" + }, + "nodeType": "ForStatement", + "src": "31855:104:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4140, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4093, + "src": "31993:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4141, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4091, + "src": "32004:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4142, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "32013:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4144, + "indexExpression": { + "argumentTypes": null, + "id": 4143, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4093, + "src": "32022:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "32013:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4145, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "32013:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + ], + "id": 4139, + "name": "BountyIssuersUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4486, + "src": "31972:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_payable_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,address payable[] memory)" + } + }, + "id": 4146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31972:69:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4147, + "nodeType": "EmitStatement", + "src": "31967:74:5" + } + ] + }, + "documentation": "@param _issuers the array of addresses to add to the list of valid issuers", + "id": 4149, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 4101, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4091, + "src": "31696:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 4102, + "modifierName": { + "argumentTypes": null, + "id": 4100, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "31682:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "31682:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 4104, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4093, + "src": "31735:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4105, + "modifierName": { + "argumentTypes": null, + "id": 4103, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "31710:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "31710:35:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 4107, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4093, + "src": "31776:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4108, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4095, + "src": "31787:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4109, + "modifierName": { + "argumentTypes": null, + "id": 4106, + "name": "validateIssuerArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2650, + "src": "31751:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "31751:46:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 4111, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4091, + "src": "31814:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4112, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4093, + "src": "31823:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4113, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4095, + "src": "31834:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4114, + "modifierName": { + "argumentTypes": null, + "id": 4110, + "name": "onlyIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "31803:10:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", + "typeString": "modifier (address,uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "31803:41:5" + } + ], + "name": "addIssuers", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4099, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4091, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 4149, + "src": "31566:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4090, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "31566:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4093, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4149, + "src": "31588:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4092, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "31588:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4095, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4149, + "src": "31609:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4094, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "31609:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4098, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 4149, + "src": "31630:33:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4096, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "31630:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4097, + "length": null, + "nodeType": "ArrayTypeName", + "src": "31630:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "31559:105:5" + }, + "returnParameters": { + "id": 4115, + "nodeType": "ParameterList", + "parameters": [], + "src": "31848:0:5" + }, + "scope": 4512, + "src": "31540:507:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4208, + "nodeType": "Block", + "src": "32811:209:5", + "statements": [ + { + "body": { + "id": 4197, + "nodeType": "Block", + "src": "32862:66:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4192, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4158, + "src": "32906:10:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 4194, + "indexExpression": { + "argumentTypes": null, + "id": 4193, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4177, + "src": "32917:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "32906:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4187, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "32871:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4189, + "indexExpression": { + "argumentTypes": null, + "id": 4188, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4153, + "src": "32880:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "32871:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4190, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "approvers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2519, + "src": "32871:29:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 4191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "32871:34:5", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) returns (uint256)" + } + }, + "id": 4195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32871:49:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4196, + "nodeType": "ExpressionStatement", + "src": "32871:49:5" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4180, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4177, + "src": "32835:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4181, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4158, + "src": "32839:10:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 4182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "32839:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "32835:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4198, + "initializationExpression": { + "assignments": [ + 4177 + ], + "declarations": [ + { + "constant": false, + "id": 4177, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 4198, + "src": "32823:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4176, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "32823:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4179, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 4178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32832:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "32823:10:5" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 4185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "32858:3:5", + "subExpression": { + "argumentTypes": null, + "id": 4184, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4177, + "src": "32858:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4186, + "nodeType": "ExpressionStatement", + "src": "32858:3:5" + }, + "nodeType": "ForStatement", + "src": "32818:110:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4200, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4153, + "src": "32964:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4201, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4151, + "src": "32975:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4202, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "32984:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4204, + "indexExpression": { + "argumentTypes": null, + "id": 4203, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4153, + "src": "32993:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "32984:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4205, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "approvers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2519, + "src": "32984:29:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + ], + "id": 4199, + "name": "BountyApproversUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4495, + "src": "32941:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,address[] memory)" + } + }, + "id": 4206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32941:73:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4207, + "nodeType": "EmitStatement", + "src": "32936:78:5" + } + ] + }, + "documentation": "@param _approvers the array of addresses to add to the list of valid approvers", + "id": 4209, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 4161, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4151, + "src": "32659:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 4162, + "modifierName": { + "argumentTypes": null, + "id": 4160, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "32645:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "32645:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 4164, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4153, + "src": "32698:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4165, + "modifierName": { + "argumentTypes": null, + "id": 4163, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "32673:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "32673:35:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 4167, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4153, + "src": "32739:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4168, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4155, + "src": "32750:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4169, + "modifierName": { + "argumentTypes": null, + "id": 4166, + "name": "validateIssuerArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2650, + "src": "32714:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "32714:46:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 4171, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4151, + "src": "32777:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4172, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4153, + "src": "32786:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4173, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4155, + "src": "32797:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4174, + "modifierName": { + "argumentTypes": null, + "id": 4170, + "name": "onlyIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "32766:10:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", + "typeString": "modifier (address,uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "32766:41:5" + } + ], + "name": "addApprovers", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4159, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4151, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 4209, + "src": "32535:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4150, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32535:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4153, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4209, + "src": "32557:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4152, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "32557:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4155, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4209, + "src": "32578:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4154, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "32578:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4158, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 4209, + "src": "32599:27:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32599:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4157, + "length": null, + "nodeType": "ArrayTypeName", + "src": "32599:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "32528:99:5" + }, + "returnParameters": { + "id": 4175, + "nodeType": "ParameterList", + "parameters": [], + "src": "32811:0:5" + }, + "scope": 4512, + "src": "32507:513:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4220, + "nodeType": "Block", + "src": "33270:39:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4216, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "33284:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4218, + "indexExpression": { + "argumentTypes": null, + "id": 4217, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4211, + "src": "33293:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33284:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "functionReturnParameters": 4215, + "id": 4219, + "nodeType": "Return", + "src": "33277:26:5" + } + ] + }, + "documentation": "@return Returns a tuple for the bounty", + "id": 4221, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4212, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4211, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4221, + "src": "33198:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4210, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "33198:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "33197:16:5" + }, + "returnParameters": { + "id": 4215, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4214, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4221, + "src": "33252:13:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_memory_ptr", + "typeString": "struct StandardBounties.Bounty" + }, + "typeName": { + "contractScope": null, + "id": 4213, + "name": "Bounty", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2536, + "src": "33252:6:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", + "typeString": "struct StandardBounties.Bounty" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "33251:15:5" + }, + "scope": 4512, + "src": "33179:130:5", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 4363, + "nodeType": "Block", + "src": "33409:1101:5", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4230, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "33420:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4232, + "indexExpression": { + "argumentTypes": null, + "id": 4231, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "33429:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33420:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4233, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenVersion", + "nodeType": "MemberAccess", + "referencedDeclaration": 2525, + "src": "33420:32:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4234, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "33456:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "33420:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4271, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "33707:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4273, + "indexExpression": { + "argumentTypes": null, + "id": 4272, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "33716:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33707:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4274, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenVersion", + "nodeType": "MemberAccess", + "referencedDeclaration": 2525, + "src": "33707:32:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3230", + "id": 4275, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "33743:2:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "src": "33707:38:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4319, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "34043:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4321, + "indexExpression": { + "argumentTypes": null, + "id": 4320, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "34052:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "34043:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4322, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenVersion", + "nodeType": "MemberAccess", + "referencedDeclaration": 2525, + "src": "34043:32:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "373231", + "id": 4323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "34079:3:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_721_by_1", + "typeString": "int_const 721" + }, + "value": "721" + }, + "src": "34043:39:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 4359, + "nodeType": "Block", + "src": "34480:25:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4356, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10416, + 10417 + ], + "referencedDeclaration": 10416, + "src": "34489:6:5", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 4357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34489:8:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4358, + "nodeType": "ExpressionStatement", + "src": "34489:8:5" + } + ] + }, + "id": 4360, + "nodeType": "IfStatement", + "src": "34039:466:5", + "trueBody": { + "id": 4355, + "nodeType": "Block", + "src": "34083:391:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4326, + "name": "tokenBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2561, + "src": "34100:13:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => bool))" + } + }, + "id": 4328, + "indexExpression": { + "argumentTypes": null, + "id": 4327, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "34114:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "34100:24:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 4330, + "indexExpression": { + "argumentTypes": null, + "id": 4329, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4227, + "src": "34125:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "34100:33:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4325, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "34092:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34092:42:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4332, + "nodeType": "ExpressionStatement", + "src": "34092:42:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 4339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4333, + "name": "tokenBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2561, + "src": "34145:13:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => bool))" + } + }, + "id": 4336, + "indexExpression": { + "argumentTypes": null, + "id": 4334, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "34159:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "34145:24:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 4337, + "indexExpression": { + "argumentTypes": null, + "id": 4335, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4227, + "src": "34170:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "34145:33:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 4338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "34181:5:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "34145:41:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4340, + "nodeType": "ExpressionStatement", + "src": "34145:41:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4349, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10465, + "src": "34318:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + ], + "id": 4348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34310:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 4350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34310:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4351, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4225, + "src": "34389:3:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 4352, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4227, + "src": "34458:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4342, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "34270:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4344, + "indexExpression": { + "argumentTypes": null, + "id": 4343, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "34279:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "34270:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4345, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 2523, + "src": "34270:25:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4341, + "name": "ERC721BasicToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5764, + "src": "34253:16:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721BasicToken_$5764_$", + "typeString": "type(contract ERC721BasicToken)" + } + }, + "id": 4346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34253:43:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", + "typeString": "contract ERC721BasicToken" + } + }, + "id": 4347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 5485, + "src": "34253:56:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 4353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34253:213:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4354, + "nodeType": "ExpressionStatement", + "src": "34253:213:5" + } + ] + } + }, + "id": 4361, + "nodeType": "IfStatement", + "src": "33703:802:5", + "trueBody": { + "id": 4318, + "nodeType": "Block", + "src": "33746:287:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4278, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4227, + "src": "33763:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "33773:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "33763:11:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4277, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "33755:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33755:20:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4282, + "nodeType": "ExpressionStatement", + "src": "33755:20:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4284, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "33825:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4286, + "indexExpression": { + "argumentTypes": null, + "id": 4285, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "33834:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33825:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4287, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "33825:27:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4288, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4227, + "src": "33856:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "33825:38:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4283, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "33817:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33817:47:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4291, + "nodeType": "ExpressionStatement", + "src": "33817:47:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 4303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4292, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "33875:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4294, + "indexExpression": { + "argumentTypes": null, + "id": 4293, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "33884:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33875:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4295, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "33875:27:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4301, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4227, + "src": "33937:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4296, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "33905:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4298, + "indexExpression": { + "argumentTypes": null, + "id": 4297, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "33914:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33905:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4299, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "33905:27:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "33905:31:5", + "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": 4302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33905:40:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "33875:70:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4304, + "nodeType": "ExpressionStatement", + "src": "33875:70:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4313, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4225, + "src": "34011:3:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 4314, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4227, + "src": "34016:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4307, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "33975:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4309, + "indexExpression": { + "argumentTypes": null, + "id": 4308, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "33984:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33975:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4310, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 2523, + "src": "33975:25:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4306, + "name": "ERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4989, + "src": "33964:10:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Token_$4989_$", + "typeString": "type(contract ERC20Token)" + } + }, + "id": 4311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33964:37:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Token_$4989", + "typeString": "contract ERC20Token" + } + }, + "id": 4312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 4858, + "src": "33964:46:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 4315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33964:60:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4305, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "33956:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33956:69:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4317, + "nodeType": "ExpressionStatement", + "src": "33956:69:5" + } + ] + } + }, + "id": 4362, + "nodeType": "IfStatement", + "src": "33416:1089:5", + "trueBody": { + "id": 4270, + "nodeType": "Block", + "src": "33458:239:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4237, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4227, + "src": "33475:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4238, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "33485:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "33475:11:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4236, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "33467:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33467:20:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4241, + "nodeType": "ExpressionStatement", + "src": "33467:20:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4243, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "33537:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4245, + "indexExpression": { + "argumentTypes": null, + "id": 4244, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "33546:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33537:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4246, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "33537:27:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4247, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4227, + "src": "33568:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "33537:38:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4242, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "33529:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33529:47:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4250, + "nodeType": "ExpressionStatement", + "src": "33529:47:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 4262, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4251, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "33587:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4253, + "indexExpression": { + "argumentTypes": null, + "id": 4252, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "33596:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33587:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4254, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "33587:27:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4260, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4227, + "src": "33649:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4255, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "33617:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4257, + "indexExpression": { + "argumentTypes": null, + "id": 4256, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "33626:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33617:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4258, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "33617:27:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "33617:31:5", + "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": 4261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33617:40:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "33587:70:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4263, + "nodeType": "ExpressionStatement", + "src": "33587:70:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4267, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4227, + "src": "33681:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4264, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4225, + "src": "33668:3:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "33668:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 4268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33668:21:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4269, + "nodeType": "ExpressionStatement", + "src": "33668:21:5" + } + ] + } + } + ] + }, + "documentation": null, + "id": 4364, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4228, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4223, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4364, + "src": "33341:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4222, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "33341:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4225, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 4364, + "src": "33357:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 4224, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33357:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4227, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 4364, + "src": "33378:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4226, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "33378:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "33340:51:5" + }, + "returnParameters": { + "id": 4229, + "nodeType": "ParameterList", + "parameters": [], + "src": "33409:0:5" + }, + "scope": 4512, + "src": "33317:1193:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 4384, + "name": "BountyIssued", + "nodeType": "EventDefinition", + "parameters": { + "id": 4383, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4366, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4384, + "src": "34563:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4365, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "34563:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4368, + "indexed": false, + "name": "_creator", + "nodeType": "VariableDeclaration", + "scope": 4384, + "src": "34579:24:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 4367, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "34579:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4371, + "indexed": false, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 4384, + "src": "34605:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4369, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "34605:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4370, + "length": null, + "nodeType": "ArrayTypeName", + "src": "34605:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4374, + "indexed": false, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 4384, + "src": "34633:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4372, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "34633:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4373, + "length": null, + "nodeType": "ArrayTypeName", + "src": "34633:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4376, + "indexed": false, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4384, + "src": "34655:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4375, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "34655:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4378, + "indexed": false, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 4384, + "src": "34669:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4377, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "34669:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4380, + "indexed": false, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 4384, + "src": "34685:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4379, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "34685:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4382, + "indexed": false, + "name": "_tokenVersion", + "nodeType": "VariableDeclaration", + "scope": 4384, + "src": "34701:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4381, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "34701:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "34562:158:5" + }, + "src": "34544:177:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4394, + "name": "ContributionAdded", + "nodeType": "EventDefinition", + "parameters": { + "id": 4393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4386, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4394, + "src": "34749:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4385, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "34749:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4388, + "indexed": false, + "name": "_contributionId", + "nodeType": "VariableDeclaration", + "scope": 4394, + "src": "34765:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4387, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "34765:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4390, + "indexed": false, + "name": "_contributor", + "nodeType": "VariableDeclaration", + "scope": 4394, + "src": "34787:28:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 4389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "34787:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4392, + "indexed": false, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 4394, + "src": "34817:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4391, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "34817:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "34748:82:5" + }, + "src": "34725:106:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4400, + "name": "ContributionRefunded", + "nodeType": "EventDefinition", + "parameters": { + "id": 4399, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4396, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4400, + "src": "34862:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4395, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "34862:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4398, + "indexed": false, + "name": "_contributionId", + "nodeType": "VariableDeclaration", + "scope": 4400, + "src": "34878:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4397, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "34878:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "34861:38:5" + }, + "src": "34835:65:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4409, + "name": "ContributionsRefunded", + "nodeType": "EventDefinition", + "parameters": { + "id": 4408, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4402, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4409, + "src": "34932:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4401, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "34932:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4404, + "indexed": false, + "name": "_issuer", + "nodeType": "VariableDeclaration", + "scope": 4409, + "src": "34948:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4403, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "34948:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4407, + "indexed": false, + "name": "_contributionIds", + "nodeType": "VariableDeclaration", + "scope": 4409, + "src": "34965:23:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4405, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "34965:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4406, + "length": null, + "nodeType": "ArrayTypeName", + "src": "34965:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "34931:58:5" + }, + "src": "34904:86:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4418, + "name": "BountyDrained", + "nodeType": "EventDefinition", + "parameters": { + "id": 4417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4411, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4418, + "src": "35014:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4410, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35014:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4413, + "indexed": false, + "name": "_issuer", + "nodeType": "VariableDeclaration", + "scope": 4418, + "src": "35030:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4412, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35030:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4416, + "indexed": false, + "name": "_amounts", + "nodeType": "VariableDeclaration", + "scope": 4418, + "src": "35047:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4414, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35047:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4415, + "length": null, + "nodeType": "ArrayTypeName", + "src": "35047:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "35013:50:5" + }, + "src": "34994:70:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4426, + "name": "ActionPerformed", + "nodeType": "EventDefinition", + "parameters": { + "id": 4425, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4420, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4426, + "src": "35090:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4419, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35090:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4422, + "indexed": false, + "name": "_fulfiller", + "nodeType": "VariableDeclaration", + "scope": 4426, + "src": "35106:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4421, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35106:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4424, + "indexed": false, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4426, + "src": "35126:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4423, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "35126:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "35089:50:5" + }, + "src": "35068:72:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4439, + "name": "BountyFulfilled", + "nodeType": "EventDefinition", + "parameters": { + "id": 4438, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4428, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4439, + "src": "35166:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4427, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35166:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4430, + "indexed": false, + "name": "_fulfillmentId", + "nodeType": "VariableDeclaration", + "scope": 4439, + "src": "35182:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4429, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35182:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4433, + "indexed": false, + "name": "_fulfillers", + "nodeType": "VariableDeclaration", + "scope": 4439, + "src": "35203:29:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4431, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35203:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4432, + "length": null, + "nodeType": "ArrayTypeName", + "src": "35203:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4435, + "indexed": false, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4439, + "src": "35234:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4434, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "35234:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4437, + "indexed": false, + "name": "_submitter", + "nodeType": "VariableDeclaration", + "scope": 4439, + "src": "35248:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4436, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35248:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "35165:102:5" + }, + "src": "35144:124:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4450, + "name": "FulfillmentUpdated", + "nodeType": "EventDefinition", + "parameters": { + "id": 4449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4441, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4450, + "src": "35297:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4440, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35297:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4443, + "indexed": false, + "name": "_fulfillmentId", + "nodeType": "VariableDeclaration", + "scope": 4450, + "src": "35313:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4442, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35313:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4446, + "indexed": false, + "name": "_fulfillers", + "nodeType": "VariableDeclaration", + "scope": 4450, + "src": "35334:29:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4444, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35334:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4445, + "length": null, + "nodeType": "ArrayTypeName", + "src": "35334:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4448, + "indexed": false, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4450, + "src": "35365:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4447, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "35365:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "35296:82:5" + }, + "src": "35272:107:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4461, + "name": "FulfillmentAccepted", + "nodeType": "EventDefinition", + "parameters": { + "id": 4460, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4452, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4461, + "src": "35409:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4451, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35409:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4454, + "indexed": false, + "name": "_fulfillmentId", + "nodeType": "VariableDeclaration", + "scope": 4461, + "src": "35425:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4453, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35425:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4456, + "indexed": false, + "name": "_approver", + "nodeType": "VariableDeclaration", + "scope": 4461, + "src": "35447:17:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4455, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35447:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4459, + "indexed": false, + "name": "_tokenAmounts", + "nodeType": "VariableDeclaration", + "scope": 4461, + "src": "35466:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4457, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35466:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4458, + "length": null, + "nodeType": "ArrayTypeName", + "src": "35466:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "35408:79:5" + }, + "src": "35383:105:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4477, + "name": "BountyChanged", + "nodeType": "EventDefinition", + "parameters": { + "id": 4476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4463, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4477, + "src": "35512:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4462, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35512:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4465, + "indexed": false, + "name": "_changer", + "nodeType": "VariableDeclaration", + "scope": 4477, + "src": "35528:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35528:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4468, + "indexed": false, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 4477, + "src": "35546:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4466, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35546:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4467, + "length": null, + "nodeType": "ArrayTypeName", + "src": "35546:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4471, + "indexed": false, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 4477, + "src": "35574:28:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4469, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35574:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4470, + "length": null, + "nodeType": "ArrayTypeName", + "src": "35574:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4473, + "indexed": false, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4477, + "src": "35604:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4472, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "35604:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4475, + "indexed": false, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 4477, + "src": "35618:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4474, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35618:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "35511:122:5" + }, + "src": "35492:142:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4486, + "name": "BountyIssuersUpdated", + "nodeType": "EventDefinition", + "parameters": { + "id": 4485, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4479, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4486, + "src": "35665:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4478, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35665:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4481, + "indexed": false, + "name": "_changer", + "nodeType": "VariableDeclaration", + "scope": 4486, + "src": "35681:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4480, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35681:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4484, + "indexed": false, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 4486, + "src": "35699:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35699:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4483, + "length": null, + "nodeType": "ArrayTypeName", + "src": "35699:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "35664:62:5" + }, + "src": "35638:89:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4495, + "name": "BountyApproversUpdated", + "nodeType": "EventDefinition", + "parameters": { + "id": 4494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4488, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4495, + "src": "35760:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4487, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35760:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4490, + "indexed": false, + "name": "_changer", + "nodeType": "VariableDeclaration", + "scope": 4495, + "src": "35776:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4489, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35776:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4493, + "indexed": false, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 4495, + "src": "35794:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4491, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35794:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4492, + "length": null, + "nodeType": "ArrayTypeName", + "src": "35794:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "35759:56:5" + }, + "src": "35731:85:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4503, + "name": "BountyDataChanged", + "nodeType": "EventDefinition", + "parameters": { + "id": 4502, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4497, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4503, + "src": "35844:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4496, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35844:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4499, + "indexed": false, + "name": "_changer", + "nodeType": "VariableDeclaration", + "scope": 4503, + "src": "35860:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35860:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4501, + "indexed": false, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4503, + "src": "35878:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4500, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "35878:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "35843:48:5" + }, + "src": "35820:72:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4511, + "name": "BountyDeadlineChanged", + "nodeType": "EventDefinition", + "parameters": { + "id": 4510, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4505, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4511, + "src": "35924:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4504, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35924:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4507, + "indexed": false, + "name": "_changer", + "nodeType": "VariableDeclaration", + "scope": 4511, + "src": "35940:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35940:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4509, + "indexed": false, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 4511, + "src": "35958:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4508, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35958:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "35923:50:5" + }, + "src": "35896:78:5" + } + ], + "scope": 4513, + "src": "539:35438:5" + } + ], + "src": "0:35979:5" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/StandardBounties.sol", + "exportedSymbols": { + "StandardBounties": [ + 4512 + ] + }, + "id": 4513, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 2507, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:5" + }, + { + "id": 2508, + "literals": [ + "experimental", + "ABIEncoderV2" + ], + "nodeType": "PragmaDirective", + "src": "34:33:5" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC20Token.sol", + "file": "./inherited/ERC20Token.sol", + "id": 2509, + "nodeType": "ImportDirective", + "scope": 4513, + "sourceUnit": 4990, + "src": "71:36:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", + "file": "./inherited/ERC721Basic.sol", + "id": 2510, + "nodeType": "ImportDirective", + "scope": 4513, + "sourceUnit": 5798, + "src": "109:37:5", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@author Mark Beylifn , Gonçalo Sá , Kevin Owocki , Ricardo Guilherme Schmidt (@3esmit), Matt Garnett , Craig Williams ", + "fullyImplemented": true, + "id": 4512, + "linearizedBaseContracts": [ + 4512 + ], + "name": "StandardBounties", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2513, + "libraryName": { + "contractScope": null, + "id": 2511, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "578:8:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "572:27:5", + "typeName": { + "id": 2512, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "591:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "canonicalName": "StandardBounties.Bounty", + "id": 2536, + "members": [ + { + "constant": false, + "id": 2516, + "name": "issuers", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "655:25:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 2514, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "655:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 2515, + "length": null, + "nodeType": "ArrayTypeName", + "src": "655:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2519, + "name": "approvers", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "792:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2517, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "792:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2518, + "length": null, + "nodeType": "ArrayTypeName", + "src": "792:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2521, + "name": "deadline", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "912:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2520, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "912:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2523, + "name": "token", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "1038:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2522, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1038:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2525, + "name": "tokenVersion", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "1162:17:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2524, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1162:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2527, + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "1282:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2526, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1282:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2529, + "name": "hasPaidOut", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "1371:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2528, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1371:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2532, + "name": "fulfillments", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "1506:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage_ptr", + "typeString": "struct StandardBounties.Fulfillment[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 2530, + "name": "Fulfillment", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2542, + "src": "1506:11:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fulfillment_$2542_storage_ptr", + "typeString": "struct StandardBounties.Fulfillment" + } + }, + "id": 2531, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1506:13:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage_ptr", + "typeString": "struct StandardBounties.Fulfillment[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2535, + "name": "contributions", + "nodeType": "VariableDeclaration", + "scope": 2536, + "src": "1638:28:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage_ptr", + "typeString": "struct StandardBounties.Contribution[]" + }, + "typeName": { + "baseType": { + "contractScope": null, + "id": 2533, + "name": "Contribution", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2549, + "src": "1638:12:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", + "typeString": "struct StandardBounties.Contribution" + } + }, + "id": 2534, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1638:14:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage_ptr", + "typeString": "struct StandardBounties.Contribution[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Bounty", + "nodeType": "StructDefinition", + "scope": 4512, + "src": "634:1132:5", + "visibility": "public" + }, + { + "canonicalName": "StandardBounties.Fulfillment", + "id": 2542, + "members": [ + { + "constant": false, + "id": 2539, + "name": "fulfillers", + "nodeType": "VariableDeclaration", + "scope": 2542, + "src": "1798:28:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 2537, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1798:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 2538, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1798:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2541, + "name": "submitter", + "nodeType": "VariableDeclaration", + "scope": 2542, + "src": "1908:17:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2540, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1908:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Fulfillment", + "nodeType": "StructDefinition", + "scope": 4512, + "src": "1772:270:5", + "visibility": "public" + }, + { + "canonicalName": "StandardBounties.Contribution", + "id": 2549, + "members": [ + { + "constant": false, + "id": 2544, + "name": "contributor", + "nodeType": "VariableDeclaration", + "scope": 2549, + "src": "2075:27:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 2543, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2075:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2546, + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 2549, + "src": "2158:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2545, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2158:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2548, + "name": "refunded", + "nodeType": "VariableDeclaration", + "scope": 2549, + "src": "2221:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2547, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2221:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "name": "Contribution", + "nodeType": "StructDefinition", + "scope": 4512, + "src": "2048:267:5", + "visibility": "public" + }, + { + "constant": false, + "id": 2551, + "name": "numBounties", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "2350:23:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2550, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2350:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2555, + "name": "bounties", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "2445:39:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty)" + }, + "typeName": { + "id": 2554, + "keyType": { + "id": 2552, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2453:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2445:23:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty)" + }, + "valueType": { + "contractScope": null, + "id": 2553, + "name": "Bounty", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2536, + "src": "2461:6:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", + "typeString": "struct StandardBounties.Bounty" + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2561, + "name": "tokenBalances", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "2527:61:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => bool))" + }, + "typeName": { + "id": 2560, + "keyType": { + "id": 2556, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2536:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2527:40:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => bool))" + }, + "valueType": { + "id": 2559, + "keyType": { + "id": 2557, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2553:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "2544:22:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + }, + "valueType": { + "id": 2558, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2561:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2563, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "2719:20:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2562, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2719:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2565, + "name": "metaTxRelayer", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "2824:28:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2564, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2824:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "public" + }, + { + "constant": false, + "id": 2567, + "name": "callStarted", + "nodeType": "VariableDeclaration", + "scope": 4512, + "src": "2968:23:5", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2566, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2968:4:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 2583, + "nodeType": "Block", + "src": "3095:93:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "3110:12:5", + "subExpression": { + "argumentTypes": null, + "id": 2570, + "name": "callStarted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2567, + "src": "3111:11:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2569, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "3102:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3102:21:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2573, + "nodeType": "ExpressionStatement", + "src": "3102:21:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 2576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2574, + "name": "callStarted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2567, + "src": "3130:11:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 2575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3144:4:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "3130:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2577, + "nodeType": "ExpressionStatement", + "src": "3130:18:5" + }, + { + "id": 2578, + "nodeType": "PlaceholderStatement", + "src": "3155:1:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 2581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2579, + "name": "callStarted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2567, + "src": "3163:11:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 2580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3177:5:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "3163:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2582, + "nodeType": "ExpressionStatement", + "src": "3163:19:5" + } + ] + }, + "documentation": null, + "id": 2584, + "name": "callNotStarted", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2568, + "nodeType": "ParameterList", + "parameters": [], + "src": "3093:2:5" + }, + "src": "3070:118:5", + "visibility": "internal" + }, + { + "body": { + "id": 2595, + "nodeType": "Block", + "src": "3250:50:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2589, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2586, + "src": "3265:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 2590, + "name": "numBounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2551, + "src": "3274:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3265:20:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2588, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "3257:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3257:29:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2593, + "nodeType": "ExpressionStatement", + "src": "3257:29:5" + }, + { + "id": 2594, + "nodeType": "PlaceholderStatement", + "src": "3293:1:5" + } + ] + }, + "documentation": null, + "id": 2596, + "name": "validateBountyArrayIndex", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2586, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 2596, + "src": "3234:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2585, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3234:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3227:19:5" + }, + "src": "3194:106:5", + "visibility": "internal" + }, + { + "body": { + "id": 2613, + "nodeType": "Block", + "src": "3389:79:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2603, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "3404:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2604, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "3413:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 2606, + "indexExpression": { + "argumentTypes": null, + "id": 2605, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2598, + "src": "3422:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3413:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 2607, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributions", + "nodeType": "MemberAccess", + "referencedDeclaration": 2535, + "src": "3413:33:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", + "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" + } + }, + "id": 2608, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3413:40:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3404:49:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2602, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "3396:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3396:58:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2611, + "nodeType": "ExpressionStatement", + "src": "3396:58:5" + }, + { + "id": 2612, + "nodeType": "PlaceholderStatement", + "src": "3461:1:5" + } + ] + }, + "documentation": null, + "id": 2614, + "name": "validateContributionArrayIndex", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2598, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2614, + "src": "3352:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2597, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3352:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2600, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 2614, + "src": "3373:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2599, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3373:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3345:40:5" + }, + "src": "3306:162:5", + "visibility": "internal" + }, + { + "body": { + "id": 2631, + "nodeType": "Block", + "src": "3556:78:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2627, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2621, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2618, + "src": "3571:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2622, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "3580:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 2624, + "indexExpression": { + "argumentTypes": null, + "id": 2623, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "3589:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3580:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 2625, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fulfillments", + "nodeType": "MemberAccess", + "referencedDeclaration": 2532, + "src": "3580:32:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", + "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" + } + }, + "id": 2626, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3580:39:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3571:48:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2620, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "3563:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3563:57:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2629, + "nodeType": "ExpressionStatement", + "src": "3563:57:5" + }, + { + "id": 2630, + "nodeType": "PlaceholderStatement", + "src": "3627:1:5" + } + ] + }, + "documentation": null, + "id": 2632, + "name": "validateFulfillmentArrayIndex", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2619, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2616, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2632, + "src": "3519:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2615, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3519:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2618, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 2632, + "src": "3540:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2617, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3540:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3512:40:5" + }, + "src": "3474:160:5", + "visibility": "internal" + }, + { + "body": { + "id": 2649, + "nodeType": "Block", + "src": "3717:73:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2639, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2636, + "src": "3732:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2640, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "3741:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 2642, + "indexExpression": { + "argumentTypes": null, + "id": 2641, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2634, + "src": "3750:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3741:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 2643, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "3741:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 2644, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3741:34:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3732:43:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2638, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "3724:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3724:52:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2647, + "nodeType": "ExpressionStatement", + "src": "3724:52:5" + }, + { + "id": 2648, + "nodeType": "PlaceholderStatement", + "src": "3783:1:5" + } + ] + }, + "documentation": null, + "id": 2650, + "name": "validateIssuerArrayIndex", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2634, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2650, + "src": "3680:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2633, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3680:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2636, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 2650, + "src": "3701:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2635, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3701:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3673:40:5" + }, + "src": "3640:150:5", + "visibility": "internal" + }, + { + "body": { + "id": 2667, + "nodeType": "Block", + "src": "3875:75:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2657, + "name": "_index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2654, + "src": "3890:6:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2658, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "3899:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 2660, + "indexExpression": { + "argumentTypes": null, + "id": 2659, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2652, + "src": "3908:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3899:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 2661, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "approvers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2519, + "src": "3899:29:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2662, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "3899:36:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3890:45:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2656, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "3882:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3882:54:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2665, + "nodeType": "ExpressionStatement", + "src": "3882:54:5" + }, + { + "id": 2666, + "nodeType": "PlaceholderStatement", + "src": "3943:1:5" + } + ] + }, + "documentation": null, + "id": 2668, + "name": "validateApproverArrayIndex", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2655, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2652, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2668, + "src": "3838:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2651, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3838:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2654, + "name": "_index", + "nodeType": "VariableDeclaration", + "scope": 2668, + "src": "3859:11:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2653, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3859:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3831:40:5" + }, + "src": "3796:154:5", + "visibility": "internal" + }, + { + "body": { + "id": 2688, + "nodeType": "Block", + "src": "4038:75:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2677, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2670, + "src": "4051:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2678, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "4062:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 2680, + "indexExpression": { + "argumentTypes": null, + "id": 2679, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2672, + "src": "4071:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4062:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 2681, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "4062:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 2683, + "indexExpression": { + "argumentTypes": null, + "id": 2682, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2674, + "src": "4090:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4062:38:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "4051:49:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2676, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4043:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4043:58:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2686, + "nodeType": "ExpressionStatement", + "src": "4043:58:5" + }, + { + "id": 2687, + "nodeType": "PlaceholderStatement", + "src": "4106:1:5" + } + ] + }, + "documentation": null, + "id": 2689, + "name": "onlyIssuer", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2670, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 2689, + "src": "3980:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2669, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3980:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2672, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2689, + "src": "4000:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2671, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4000:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2674, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 2689, + "src": "4019:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2673, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4019:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3975:59:5" + }, + "src": "3956:157:5", + "visibility": "internal" + }, + { + "body": { + "id": 2710, + "nodeType": "Block", + "src": "4215:112:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2698, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2691, + "src": "4230:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2699, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "4254:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 2701, + "indexExpression": { + "argumentTypes": null, + "id": 2700, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2693, + "src": "4263:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4254:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 2702, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fulfillments", + "nodeType": "MemberAccess", + "referencedDeclaration": 2532, + "src": "4254:32:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", + "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" + } + }, + "id": 2704, + "indexExpression": { + "argumentTypes": null, + "id": 2703, + "name": "_fulfillmentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2695, + "src": "4287:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4254:48:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fulfillment_$2542_storage", + "typeString": "struct StandardBounties.Fulfillment storage ref" + } + }, + "id": 2705, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "submitter", + "nodeType": "MemberAccess", + "referencedDeclaration": 2541, + "src": "4254:58:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4230:82:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2697, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4222:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2707, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4222:91:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2708, + "nodeType": "ExpressionStatement", + "src": "4222:91:5" + }, + { + "id": 2709, + "nodeType": "PlaceholderStatement", + "src": "4320:1:5" + } + ] + }, + "documentation": null, + "id": 2711, + "name": "onlySubmitter", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2696, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2691, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 2711, + "src": "4148:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2690, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4148:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2693, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2711, + "src": "4170:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2692, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4170:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2695, + "name": "_fulfillmentId", + "nodeType": "VariableDeclaration", + "scope": 2711, + "src": "4191:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2694, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4191:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4141:70:5" + }, + "src": "4119:208:5", + "visibility": "internal" + }, + { + "body": { + "id": 2732, + "nodeType": "Block", + "src": "4426:116:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2720, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2713, + "src": "4441:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2721, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "4465:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 2723, + "indexExpression": { + "argumentTypes": null, + "id": 2722, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2715, + "src": "4474:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4465:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 2724, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributions", + "nodeType": "MemberAccess", + "referencedDeclaration": 2535, + "src": "4465:33:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", + "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" + } + }, + "id": 2726, + "indexExpression": { + "argumentTypes": null, + "id": 2725, + "name": "_contributionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2717, + "src": "4499:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4465:50:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage", + "typeString": "struct StandardBounties.Contribution storage ref" + } + }, + "id": 2727, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributor", + "nodeType": "MemberAccess", + "referencedDeclaration": 2544, + "src": "4465:62:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "4441:86:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2719, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4433:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4433:95:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2730, + "nodeType": "ExpressionStatement", + "src": "4433:95:5" + }, + { + "id": 2731, + "nodeType": "PlaceholderStatement", + "src": "4535:1:5" + } + ] + }, + "documentation": null, + "id": 2733, + "name": "onlyContributor", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2718, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2713, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 2733, + "src": "4362:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2712, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4362:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2715, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2733, + "src": "4382:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2714, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4382:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2717, + "name": "_contributionId", + "nodeType": "VariableDeclaration", + "scope": 2733, + "src": "4401:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2716, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4401:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4357:65:5" + }, + "src": "4333:209:5", + "visibility": "internal" + }, + { + "body": { + "id": 2753, + "nodeType": "Block", + "src": "4638:83:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2749, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2742, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2735, + "src": "4653:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2743, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "4664:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 2745, + "indexExpression": { + "argumentTypes": null, + "id": 2744, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2737, + "src": "4673:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4664:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 2746, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "approvers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2519, + "src": "4664:29:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2748, + "indexExpression": { + "argumentTypes": null, + "id": 2747, + "name": "_approverId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "4694:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4664:42:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "4653:53:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2741, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4645:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4645:62:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2751, + "nodeType": "ExpressionStatement", + "src": "4645:62:5" + }, + { + "id": 2752, + "nodeType": "PlaceholderStatement", + "src": "4714:1:5" + } + ] + }, + "documentation": null, + "id": 2754, + "name": "isApprover", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2740, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2735, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 2754, + "src": "4574:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2734, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4574:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2737, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2754, + "src": "4596:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2736, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4596:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2739, + "name": "_approverId", + "nodeType": "VariableDeclaration", + "scope": 2754, + "src": "4617:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2738, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4617:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4567:67:5" + }, + "src": "4548:173:5", + "visibility": "internal" + }, + { + "body": { + "id": 2767, + "nodeType": "Block", + "src": "4772:61:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4787:31:5", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2759, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "4788:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 2761, + "indexExpression": { + "argumentTypes": null, + "id": 2760, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2756, + "src": "4797:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4788:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 2762, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "hasPaidOut", + "nodeType": "MemberAccess", + "referencedDeclaration": 2529, + "src": "4788:30:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2758, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4779:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4779:40:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2765, + "nodeType": "ExpressionStatement", + "src": "4779:40:5" + }, + { + "id": 2766, + "nodeType": "PlaceholderStatement", + "src": "4826:1:5" + } + ] + }, + "documentation": null, + "id": 2768, + "name": "hasNotPaid", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2757, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2756, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2768, + "src": "4753:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2755, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4753:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4746:22:5" + }, + "src": "4727:106:5", + "visibility": "internal" + }, + { + "body": { + "id": 2786, + "nodeType": "Block", + "src": "4915:90:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "4930:60:5", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2775, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "4931:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 2777, + "indexExpression": { + "argumentTypes": null, + "id": 2776, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2770, + "src": "4940:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4931:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 2778, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributions", + "nodeType": "MemberAccess", + "referencedDeclaration": 2535, + "src": "4931:33:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", + "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" + } + }, + "id": 2780, + "indexExpression": { + "argumentTypes": null, + "id": 2779, + "name": "_contributionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2772, + "src": "4965:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4931:50:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage", + "typeString": "struct StandardBounties.Contribution storage ref" + } + }, + "id": 2781, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "refunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 2548, + "src": "4931:59:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2774, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4922:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4922:69:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2784, + "nodeType": "ExpressionStatement", + "src": "4922:69:5" + }, + { + "id": 2785, + "nodeType": "PlaceholderStatement", + "src": "4998:1:5" + } + ] + }, + "documentation": null, + "id": 2787, + "name": "hasNotRefunded", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2773, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2770, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 2787, + "src": "4869:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2769, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4869:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2772, + "name": "_contributionId", + "nodeType": "VariableDeclaration", + "scope": 2787, + "src": "4890:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2771, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4890:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4862:49:5" + }, + "src": "4839:166:5", + "visibility": "internal" + }, + { + "body": { + "id": 2804, + "nodeType": "Block", + "src": "5060:82:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2800, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2792, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "5075:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5075:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2794, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2789, + "src": "5089:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5075:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2796, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "5100:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5100:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2798, + "name": "metaTxRelayer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2565, + "src": "5114:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5100:27:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5075:52:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2791, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "5067:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5067:61:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2802, + "nodeType": "ExpressionStatement", + "src": "5067:61:5" + }, + { + "id": 2803, + "nodeType": "PlaceholderStatement", + "src": "5135:1:5" + } + ] + }, + "documentation": null, + "id": 2805, + "name": "senderIsValid", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 2790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2789, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 2805, + "src": "5040:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2788, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5040:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5033:23:5" + }, + "src": "5011:131:5", + "visibility": "internal" + }, + { + "body": { + "id": 2813, + "nodeType": "Block", + "src": "5204:128:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2811, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2808, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2563, + "src": "5308:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2809, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "5316:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5316:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "5308:18:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2812, + "nodeType": "ExpressionStatement", + "src": "5308:18:5" + } + ] + }, + "documentation": null, + "id": 2814, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2806, + "nodeType": "ParameterList", + "parameters": [], + "src": "5194:2:5" + }, + "returnParameters": { + "id": 2807, + "nodeType": "ParameterList", + "parameters": [], + "src": "5204:0:5" + }, + "scope": 4512, + "src": "5183:149:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 2838, + "nodeType": "Block", + "src": "5530:206:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2823, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2820, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "5545:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 2821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "5545:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 2822, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2563, + "src": "5559:5:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5545:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2819, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "5537:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5537:28:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2825, + "nodeType": "ExpressionStatement", + "src": "5537:28:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2827, + "name": "metaTxRelayer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2565, + "src": "5619:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 2829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5644:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2828, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5636:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 2830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5636:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "5619:27:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2826, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "5611:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2832, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5611:36:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2833, + "nodeType": "ExpressionStatement", + "src": "5611:36:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 2836, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2834, + "name": "metaTxRelayer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2565, + "src": "5706:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2835, + "name": "_relayer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2816, + "src": "5722:8:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "5706:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2837, + "nodeType": "ExpressionStatement", + "src": "5706:24:5" + } + ] + }, + "documentation": "@param _relayer the address of the relayer", + "id": 2839, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setMetaTxRelayer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2817, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2816, + "name": "_relayer", + "nodeType": "VariableDeclaration", + "scope": 2839, + "src": "5495:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2815, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5495:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5494:18:5" + }, + "returnParameters": { + "id": 2818, + "nodeType": "ParameterList", + "parameters": [], + "src": "5530:0:5" + }, + "scope": 4512, + "src": "5469:267:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 2955, + "nodeType": "Block", + "src": "6809:1198:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2866, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2864, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2855, + "src": "6824:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2865, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6841:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6824:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2867, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2855, + "src": "6846:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3230", + "id": 2868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6863:2:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "src": "6846:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6824:41:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2873, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2871, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2855, + "src": "6869:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "373231", + "id": 2872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6886:3:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_721_by_1", + "typeString": "int_const 721" + }, + "value": "721" + }, + "src": "6869:20:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6824:65:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2863, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "6816:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6816:74:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2876, + "nodeType": "ExpressionStatement", + "src": "6816:74:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2886, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2878, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2844, + "src": "6971:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + "id": 2879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6971:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6989:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6971:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2882, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2847, + "src": "6994:10:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 2883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "6994:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7014:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6994:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6971:44:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2877, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "6963:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 2887, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6963:53:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2888, + "nodeType": "ExpressionStatement", + "src": "6963:53:5" + }, + { + "assignments": [ + 2890 + ], + "declarations": [ + { + "constant": false, + "id": 2890, + "name": "bountyId", + "nodeType": "VariableDeclaration", + "scope": 2955, + "src": "7100:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2889, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7100:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2892, + "initialValue": { + "argumentTypes": null, + "id": 2891, + "name": "numBounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2551, + "src": "7116:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7100:27:5" + }, + { + "assignments": [ + 2894 + ], + "declarations": [ + { + "constant": false, + "id": 2894, + "name": "newBounty", + "nodeType": "VariableDeclaration", + "scope": 2955, + "src": "7213:24:5", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", + "typeString": "struct StandardBounties.Bounty" + }, + "typeName": { + "contractScope": null, + "id": 2893, + "name": "Bounty", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2536, + "src": "7213:6:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", + "typeString": "struct StandardBounties.Bounty" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2898, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 2895, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "7240:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 2897, + "indexExpression": { + "argumentTypes": null, + "id": 2896, + "name": "bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2890, + "src": "7249:8:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7240:18:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7213:45:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 2903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2899, + "name": "newBounty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2894, + "src": "7265:9:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", + "typeString": "struct StandardBounties.Bounty storage pointer" + } + }, + "id": 2901, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "7265:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2902, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2844, + "src": "7285:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + "src": "7265:28:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 2904, + "nodeType": "ExpressionStatement", + "src": "7265:28:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 2909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2905, + "name": "newBounty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2894, + "src": "7300:9:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", + "typeString": "struct StandardBounties.Bounty storage pointer" + } + }, + "id": 2907, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "approvers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2519, + "src": "7300:19:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2908, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2847, + "src": "7322:10:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "src": "7300:32:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 2910, + "nodeType": "ExpressionStatement", + "src": "7300:32:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 2915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2911, + "name": "newBounty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2894, + "src": "7339:9:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", + "typeString": "struct StandardBounties.Bounty storage pointer" + } + }, + "id": 2913, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "deadline", + "nodeType": "MemberAccess", + "referencedDeclaration": 2521, + "src": "7339:18:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2914, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2851, + "src": "7360:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7339:30:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2916, + "nodeType": "ExpressionStatement", + "src": "7339:30:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 2921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2917, + "name": "newBounty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2894, + "src": "7376:9:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", + "typeString": "struct StandardBounties.Bounty storage pointer" + } + }, + "id": 2919, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "tokenVersion", + "nodeType": "MemberAccess", + "referencedDeclaration": 2525, + "src": "7376:22:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2920, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2855, + "src": "7401:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7376:38:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2922, + "nodeType": "ExpressionStatement", + "src": "7376:38:5" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2925, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 2923, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2855, + "src": "7427:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 2924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7444:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7427:18:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 2933, + "nodeType": "IfStatement", + "src": "7423:64:5", + "trueBody": { + "id": 2932, + "nodeType": "Block", + "src": "7446:41:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 2930, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 2926, + "name": "newBounty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2894, + "src": "7455:9:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", + "typeString": "struct StandardBounties.Bounty storage pointer" + } + }, + "id": 2928, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 2523, + "src": "7455:15:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 2929, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2853, + "src": "7473:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "7455:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2931, + "nodeType": "ExpressionStatement", + "src": "7455:24:5" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "id": 2939, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 2934, + "name": "numBounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2551, + "src": "7495:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 2937, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7525:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "id": 2935, + "name": "numBounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2551, + "src": "7509:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "7509:15:5", + "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": 2938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7509:18:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7495:32:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2940, + "nodeType": "ExpressionStatement", + "src": "7495:32:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2942, + "name": "bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2890, + "src": "7628:8:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2943, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2841, + "src": "7661:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 2944, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2844, + "src": "7693:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 2945, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2847, + "src": "7726:10:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 2946, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2849, + "src": "7761:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 2947, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2851, + "src": "7896:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2948, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2853, + "src": "7930:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2949, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2855, + "src": "7961:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2941, + "name": "BountyIssued", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4384, + "src": "7615:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (uint256,address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256)" + } + }, + "id": 2950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7615:360:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2951, + "nodeType": "EmitStatement", + "src": "7610:365:5" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 2952, + "name": "bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2890, + "src": "7992:8:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2953, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7991:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2862, + "id": 2954, + "nodeType": "Return", + "src": "7984:17:5" + } + ] + }, + "documentation": "@param _tokenVersion the version of the token being used for the bounty (0 for ETH, 20 for ERC20, 721 for ERC721)", + "id": 2956, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 2858, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2841, + "src": "6777:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2859, + "modifierName": { + "argumentTypes": null, + "id": 2857, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "6763:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "6763:22:5" + } + ], + "name": "issueBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2856, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2841, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 2956, + "src": "6554:23:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 2840, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6554:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2844, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 2956, + "src": "6584:33:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 2842, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6584:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 2843, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6584:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2847, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 2956, + "src": "6624:27:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2845, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6624:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2846, + "length": null, + "nodeType": "ArrayTypeName", + "src": "6624:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2849, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 2956, + "src": "6658:19:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2848, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6658:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2851, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 2956, + "src": "6684:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2850, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6684:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2853, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 2956, + "src": "6705:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2852, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6705:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2855, + "name": "_tokenVersion", + "nodeType": "VariableDeclaration", + "scope": 2956, + "src": "6726:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2854, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6726:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6547:198:5" + }, + "returnParameters": { + "id": 2862, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2861, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2956, + "src": "6800:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2860, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6800:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6799:6:5" + }, + "scope": 4512, + "src": "6527:1480:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3000, + "nodeType": "Block", + "src": "8448:192:5", + "statements": [ + { + "assignments": [ + 2980 + ], + "declarations": [ + { + "constant": false, + "id": 2980, + "name": "bountyId", + "nodeType": "VariableDeclaration", + "scope": 3000, + "src": "8455:13:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2979, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8455:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 2990, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2982, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2958, + "src": "8483:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 2983, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2961, + "src": "8492:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 2984, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2964, + "src": "8502:10:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + { + "argumentTypes": null, + "id": 2985, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2966, + "src": "8514:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 2986, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2968, + "src": "8521:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2987, + "name": "_token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2970, + "src": "8532:6:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 2988, + "name": "_tokenVersion", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2972, + "src": "8540:13:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2981, + "name": "issueBounty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2956, + "src": "8471:11:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256) returns (uint256)" + } + }, + "id": 2989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8471:83:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8455:99:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 2992, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2958, + "src": "8574:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 2993, + "name": "bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2980, + "src": "8583:8:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 2994, + "name": "_depositAmount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2974, + "src": "8593:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2991, + "name": "contribute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3163, + "src": "8563:10:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address payable,uint256,uint256)" + } + }, + "id": 2995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8563:45:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2996, + "nodeType": "ExpressionStatement", + "src": "8563:45:5" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "id": 2997, + "name": "bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2980, + "src": "8625:8:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 2998, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8624:10:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2978, + "id": 2999, + "nodeType": "Return", + "src": "8617:17:5" + } + ] + }, + "documentation": "@param _depositAmount the amount of tokens being deposited to the bounty, which will create a new contribution to the bounty", + "id": 3001, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "issueAndContribute", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2975, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2958, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3001, + "src": "8183:23:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 2957, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8183:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2961, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 3001, + "src": "8213:33:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 2959, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8213:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 2960, + "length": null, + "nodeType": "ArrayTypeName", + "src": "8213:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2964, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 3001, + "src": "8253:27:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 2962, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8253:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 2963, + "length": null, + "nodeType": "ArrayTypeName", + "src": "8253:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2966, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3001, + "src": "8287:19:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2965, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "8287:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2968, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 3001, + "src": "8313:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2967, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8313:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2970, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 3001, + "src": "8334:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2969, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8334:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2972, + "name": "_tokenVersion", + "nodeType": "VariableDeclaration", + "scope": 3001, + "src": "8355:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2971, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8355:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 2974, + "name": "_depositAmount", + "nodeType": "VariableDeclaration", + "scope": 3001, + "src": "8380:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2973, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8380:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8176:224:5" + }, + "returnParameters": { + "id": 2978, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2977, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3001, + "src": "8439:4:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2976, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8439:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8438:6:5" + }, + "scope": 4512, + "src": "8149:491:5", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3162, + "nodeType": "Block", + "src": "9690:1740:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3019, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3007, + "src": "9705:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3020, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9715:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9705:11:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3018, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9697:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9697:20:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3023, + "nodeType": "ExpressionStatement", + "src": "9697:20:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3030, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9841:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 3031, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3007, + "src": "9850:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 3032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9859:5:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3029, + "name": "Contribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2549, + "src": "9828:12:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Contribution_$2549_storage_ptr_$", + "typeString": "type(struct StandardBounties.Contribution storage pointer)" + } + }, + "id": 3033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9828:37:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_memory", + "typeString": "struct StandardBounties.Contribution memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Contribution_$2549_memory", + "typeString": "struct StandardBounties.Contribution memory" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3024, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "9781:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3026, + "indexExpression": { + "argumentTypes": null, + "id": 3025, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "9790:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9781:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3027, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributions", + "nodeType": "MemberAccess", + "referencedDeclaration": 2535, + "src": "9781:33:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", + "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" + } + }, + "id": 3028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9781:38:5", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Contribution_$2549_storage_$returns$_t_uint256_$", + "typeString": "function (struct StandardBounties.Contribution storage ref) returns (uint256)" + } + }, + "id": 3034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9781:85:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3035, + "nodeType": "ExpressionStatement", + "src": "9781:85:5" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3041, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3036, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "9918:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3038, + "indexExpression": { + "argumentTypes": null, + "id": 3037, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "9927:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9918:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3039, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenVersion", + "nodeType": "MemberAccess", + "referencedDeclaration": 2525, + "src": "9918:32:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3040, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9954:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9918:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3063, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "10135:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3065, + "indexExpression": { + "argumentTypes": null, + "id": 3064, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "10144:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10135:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3066, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenVersion", + "nodeType": "MemberAccess", + "referencedDeclaration": 2525, + "src": "10135:32:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3230", + "id": 3067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10171:2:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "src": "10135:38:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3106, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "10674:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3108, + "indexExpression": { + "argumentTypes": null, + "id": 3107, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "10683:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10674:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3109, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenVersion", + "nodeType": "MemberAccess", + "referencedDeclaration": 2525, + "src": "10674:32:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "373231", + "id": 3110, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10710:3:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_721_by_1", + "typeString": "int_const 721" + }, + "value": "721" + }, + "src": "10674:39:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3145, + "nodeType": "Block", + "src": "11184:25:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3142, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10416, + 10417 + ], + "referencedDeclaration": 10416, + "src": "11193:6:5", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11193:8:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3144, + "nodeType": "ExpressionStatement", + "src": "11193:8:5" + } + ] + }, + "id": 3146, + "nodeType": "IfStatement", + "src": "10670:539:5", + "trueBody": { + "id": 3141, + "nodeType": "Block", + "src": "10714:464:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3112, + "name": "tokenBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2561, + "src": "10723:13:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => bool))" + } + }, + "id": 3115, + "indexExpression": { + "argumentTypes": null, + "id": 3113, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "10737:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10723:24:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 3116, + "indexExpression": { + "argumentTypes": null, + "id": 3114, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3007, + "src": "10748:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10723:33:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3117, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10759:4:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "10723:40:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3119, + "nodeType": "ExpressionStatement", + "src": "10723:40:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3121, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10835:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10835:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3123, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10848:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10835:14:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3120, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10827:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10827:23:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3126, + "nodeType": "ExpressionStatement", + "src": "10827:23:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3134, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "11010:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3136, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10465, + "src": "11091:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + ], + "id": 3135, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "11083:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11083:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3138, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3007, + "src": "11162:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3128, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "10970:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3130, + "indexExpression": { + "argumentTypes": null, + "id": 3129, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "10979:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10970:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3131, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 2523, + "src": "10970:25:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3127, + "name": "ERC721BasicToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5764, + "src": "10953:16:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721BasicToken_$5764_$", + "typeString": "type(contract ERC721BasicToken)" + } + }, + "id": 3132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10953:43:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", + "typeString": "contract ERC721BasicToken" + } + }, + "id": 3133, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 5485, + "src": "10953:56:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 3139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10953:217:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3140, + "nodeType": "ExpressionStatement", + "src": "10953:217:5" + } + ] + } + }, + "id": 3147, + "nodeType": "IfStatement", + "src": "10131:1078:5", + "trueBody": { + "id": 3105, + "nodeType": "Block", + "src": "10174:490:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3069, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "10185:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3071, + "indexExpression": { + "argumentTypes": null, + "id": 3070, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "10194:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10185:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3072, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "10185:27:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3078, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3007, + "src": "10247:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3073, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "10215:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3075, + "indexExpression": { + "argumentTypes": null, + "id": 3074, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "10224:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10215:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3076, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "10215:27:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "10215:31:5", + "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": 3079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10215:40:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10185:70:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3081, + "nodeType": "ExpressionStatement", + "src": "10185:70:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3083, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10314:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3084, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10314:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3085, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10327:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "10314:14:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3082, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10306:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10306:23:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3088, + "nodeType": "ExpressionStatement", + "src": "10306:23:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3097, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "10491:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3099, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10465, + "src": "10574:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + ], + "id": 3098, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10566:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 3100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10566:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3101, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3007, + "src": "10647:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3091, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "10451:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3093, + "indexExpression": { + "argumentTypes": null, + "id": 3092, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "10460:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10451:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3094, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 2523, + "src": "10451:25:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3090, + "name": "ERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4989, + "src": "10440:10:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Token_$4989_$", + "typeString": "type(contract ERC20Token)" + } + }, + "id": 3095, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10440:37:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Token_$4989", + "typeString": "contract ERC20Token" + } + }, + "id": 3096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 4922, + "src": "10440:50:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,address,uint256) external returns (bool)" + } + }, + "id": 3102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10440:215:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3089, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10432:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10432:224:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3104, + "nodeType": "ExpressionStatement", + "src": "10432:224:5" + } + ] + } + }, + "id": 3148, + "nodeType": "IfStatement", + "src": "9914:1295:5", + "trueBody": { + "id": 3062, + "nodeType": "Block", + "src": "9956:169:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3042, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "9967:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3044, + "indexExpression": { + "argumentTypes": null, + "id": 3043, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "9976:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9967:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3045, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "9967:27:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3051, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3007, + "src": "10029:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3046, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "9997:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3048, + "indexExpression": { + "argumentTypes": null, + "id": 3047, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "10006:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9997:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3049, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "9997:27:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "9997:31:5", + "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": 3052, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9997:40:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9967:70:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3054, + "nodeType": "ExpressionStatement", + "src": "9967:70:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3056, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10096:3:5", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3057, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10096:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 3058, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3007, + "src": "10109:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10096:20:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3055, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10088:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10088:29:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3061, + "nodeType": "ExpressionStatement", + "src": "10088:29:5" + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3150, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "11240:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3157, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3151, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "11279:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3153, + "indexExpression": { + "argumentTypes": null, + "id": 3152, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "11288:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11279:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3154, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributions", + "nodeType": "MemberAccess", + "referencedDeclaration": 2535, + "src": "11279:33:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", + "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" + } + }, + "id": 3155, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11279:40:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 3156, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11322:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "11279:44:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3158, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "11379:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 3159, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3007, + "src": "11416:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3149, + "name": "ContributionAdded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4394, + "src": "11222:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_address_payable_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256,address payable,uint256)" + } + }, + "id": 3160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11222:202:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3161, + "nodeType": "EmitStatement", + "src": "11217:207:5" + } + ] + }, + "documentation": "@param _amount the amount of tokens being contributed", + "id": 3163, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3010, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3003, + "src": "9617:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 3011, + "modifierName": { + "argumentTypes": null, + "id": 3009, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "9603:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "9603:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3013, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3005, + "src": "9656:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3014, + "modifierName": { + "argumentTypes": null, + "id": 3012, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "9631:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "9631:35:5" + }, + { + "arguments": null, + "id": 3016, + "modifierName": { + "argumentTypes": null, + "id": 3015, + "name": "callNotStarted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2584, + "src": "9672:14:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "9672:14:5" + } + ], + "name": "contribute", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3008, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3003, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3163, + "src": "9508:23:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 3002, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9508:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3005, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3163, + "src": "9538:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3004, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9538:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3007, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 3163, + "src": "9559:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3006, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9559:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9501:71:5" + }, + "returnParameters": { + "id": 3017, + "nodeType": "ParameterList", + "parameters": [], + "src": "9690:0:5" + }, + "scope": 4512, + "src": "9482:1948:5", + "stateMutability": "payable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3233, + "nodeType": "Block", + "src": "12368:450:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3197, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10413, + "src": "12383:3:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3198, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "12389:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3200, + "indexExpression": { + "argumentTypes": null, + "id": 3199, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3167, + "src": "12398:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12389:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3201, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "deadline", + "nodeType": "MemberAccess", + "referencedDeclaration": 2521, + "src": "12389:28:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12383:34:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3196, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "12375:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12375:43:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3204, + "nodeType": "ExpressionStatement", + "src": "12375:43:5" + }, + { + "assignments": [ + 3206 + ], + "declarations": [ + { + "constant": false, + "id": 3206, + "name": "contribution", + "nodeType": "VariableDeclaration", + "scope": 3233, + "src": "12491:33:5", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", + "typeString": "struct StandardBounties.Contribution" + }, + "typeName": { + "contractScope": null, + "id": 3205, + "name": "Contribution", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2549, + "src": "12491:12:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", + "typeString": "struct StandardBounties.Contribution" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3213, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3207, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "12527:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3209, + "indexExpression": { + "argumentTypes": null, + "id": 3208, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3167, + "src": "12536:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12527:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3210, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributions", + "nodeType": "MemberAccess", + "referencedDeclaration": 2535, + "src": "12527:33:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", + "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" + } + }, + "id": 3212, + "indexExpression": { + "argumentTypes": null, + "id": 3211, + "name": "_contributionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3169, + "src": "12561:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12527:50:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage", + "typeString": "struct StandardBounties.Contribution storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12491:86:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3214, + "name": "contribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3206, + "src": "12586:12:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", + "typeString": "struct StandardBounties.Contribution storage pointer" + } + }, + "id": 3216, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "refunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 2548, + "src": "12586:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3217, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12610:4:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "12586:28:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3219, + "nodeType": "ExpressionStatement", + "src": "12586:28:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3221, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3167, + "src": "12638:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3222, + "name": "contribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3206, + "src": "12649:12:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", + "typeString": "struct StandardBounties.Contribution storage pointer" + } + }, + "id": 3223, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributor", + "nodeType": "MemberAccess", + "referencedDeclaration": 2544, + "src": "12649:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3224, + "name": "contribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3206, + "src": "12675:12:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", + "typeString": "struct StandardBounties.Contribution storage pointer" + } + }, + "id": 3225, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2546, + "src": "12675:19:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3220, + "name": "transferTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4364, + "src": "12623:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_payable_$_t_uint256_$returns$__$", + "typeString": "function (uint256,address payable,uint256)" + } + }, + "id": 3226, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12623:72:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3227, + "nodeType": "ExpressionStatement", + "src": "12623:72:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3229, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3167, + "src": "12785:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3230, + "name": "_contributionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3169, + "src": "12796:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3228, + "name": "ContributionRefunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4400, + "src": "12764:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 3231, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12764:48:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3232, + "nodeType": "EmitStatement", + "src": "12759:53:5" + } + ] + }, + "documentation": "@param _contributionId the index of the contribution being refunded", + "id": 3234, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3172, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3165, + "src": "12098:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3173, + "modifierName": { + "argumentTypes": null, + "id": 3171, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "12084:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12084:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3175, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3167, + "src": "12137:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3176, + "modifierName": { + "argumentTypes": null, + "id": 3174, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "12112:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12112:35:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3178, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3167, + "src": "12184:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3179, + "name": "_contributionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3169, + "src": "12195:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3180, + "modifierName": { + "argumentTypes": null, + "id": 3177, + "name": "validateContributionArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "12153:30:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12153:58:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3182, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3165, + "src": "12233:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3183, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3167, + "src": "12242:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3184, + "name": "_contributionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3169, + "src": "12253:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3185, + "modifierName": { + "argumentTypes": null, + "id": 3181, + "name": "onlyContributor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2733, + "src": "12217:15:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", + "typeString": "modifier (address,uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12217:52:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3187, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3167, + "src": "12286:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3188, + "modifierName": { + "argumentTypes": null, + "id": 3186, + "name": "hasNotPaid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2768, + "src": "12275:10:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12275:21:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3190, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3167, + "src": "12317:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3191, + "name": "_contributionId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3169, + "src": "12328:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3192, + "modifierName": { + "argumentTypes": null, + "id": 3189, + "name": "hasNotRefunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2787, + "src": "12302:14:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12302:42:5" + }, + { + "arguments": null, + "id": 3194, + "modifierName": { + "argumentTypes": null, + "id": 3193, + "name": "callNotStarted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2584, + "src": "12350:14:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "12350:14:5" + } + ], + "name": "refundContribution", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3170, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3165, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3234, + "src": "12002:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3164, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12002:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3167, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3234, + "src": "12024:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3166, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12024:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3169, + "name": "_contributionId", + "nodeType": "VariableDeclaration", + "scope": 3234, + "src": "12045:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3168, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "12045:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11995:71:5" + }, + "returnParameters": { + "id": 3195, + "nodeType": "ParameterList", + "parameters": [], + "src": "12368:0:5" + }, + "scope": 4512, + "src": "11968:850:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3268, + "nodeType": "Block", + "src": "13357:140:5", + "statements": [ + { + "body": { + "id": 3266, + "nodeType": "Block", + "src": "13414:78:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3259, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3236, + "src": "13444:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3260, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3238, + "src": "13453:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3261, + "name": "_contributionIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3241, + "src": "13464:16:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3263, + "indexExpression": { + "argumentTypes": null, + "id": 3262, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3248, + "src": "13481:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "13464:19:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3258, + "name": "refundContribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3234, + "src": "13425:18:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 3264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13425:59:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3265, + "nodeType": "ExpressionStatement", + "src": "13425:59:5" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3254, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3251, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3248, + "src": "13381:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3252, + "name": "_contributionIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3241, + "src": "13385:16:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "13385:23:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13381:27:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3267, + "initializationExpression": { + "assignments": [ + 3248 + ], + "declarations": [ + { + "constant": false, + "id": 3248, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 3267, + "src": "13369:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3247, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "13369:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3250, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 3249, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13378:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "13369:10:5" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 3256, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "13410:3:5", + "subExpression": { + "argumentTypes": null, + "id": 3255, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3248, + "src": "13410:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3257, + "nodeType": "ExpressionStatement", + "src": "13410:3:5" + }, + "nodeType": "ForStatement", + "src": "13364:128:5" + } + ] + }, + "documentation": "@param _contributionIds the array of indexes of the contributions being refunded", + "id": 3269, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3244, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3236, + "src": "13345:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3245, + "modifierName": { + "argumentTypes": null, + "id": 3243, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "13331:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "13331:22:5" + } + ], + "name": "refundMyContributions", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3242, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3236, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3269, + "src": "13239:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3235, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13239:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3238, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3269, + "src": "13261:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3237, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "13261:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3241, + "name": "_contributionIds", + "nodeType": "VariableDeclaration", + "scope": 3269, + "src": "13282:30:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 3239, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "13282:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3240, + "length": null, + "nodeType": "ArrayTypeName", + "src": "13282:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13232:81:5" + }, + "returnParameters": { + "id": 3246, + "nodeType": "ParameterList", + "parameters": [], + "src": "13357:0:5" + }, + "scope": 4512, + "src": "13202:295:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3356, + "nodeType": "Block", + "src": "14232:543:5", + "statements": [ + { + "body": { + "id": 3348, + "nodeType": "Block", + "src": "14289:408:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3306, + "name": "_contributionIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3278, + "src": "14306:16:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3308, + "indexExpression": { + "argumentTypes": null, + "id": 3307, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3295, + "src": "14323:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14306:19:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3309, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "14328:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3311, + "indexExpression": { + "argumentTypes": null, + "id": 3310, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3273, + "src": "14337:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14328:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3312, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributions", + "nodeType": "MemberAccess", + "referencedDeclaration": 2535, + "src": "14328:33:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", + "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" + } + }, + "id": 3313, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14328:40:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14306:62:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3305, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "14298:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14298:71:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3316, + "nodeType": "ExpressionStatement", + "src": "14298:71:5" + }, + { + "assignments": [ + 3318 + ], + "declarations": [ + { + "constant": false, + "id": 3318, + "name": "contribution", + "nodeType": "VariableDeclaration", + "scope": 3348, + "src": "14380:33:5", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", + "typeString": "struct StandardBounties.Contribution" + }, + "typeName": { + "contractScope": null, + "id": 3317, + "name": "Contribution", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2549, + "src": "14380:12:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", + "typeString": "struct StandardBounties.Contribution" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3327, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3319, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "14416:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3321, + "indexExpression": { + "argumentTypes": null, + "id": 3320, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3273, + "src": "14425:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14416:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3322, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributions", + "nodeType": "MemberAccess", + "referencedDeclaration": 2535, + "src": "14416:33:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", + "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" + } + }, + "id": 3326, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3323, + "name": "_contributionIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3278, + "src": "14450:16:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3325, + "indexExpression": { + "argumentTypes": null, + "id": 3324, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3295, + "src": "14467:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14450:19:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "14416:54:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage", + "typeString": "struct StandardBounties.Contribution storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14380:90:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "14489:22:5", + "subExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3329, + "name": "contribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3318, + "src": "14490:12:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", + "typeString": "struct StandardBounties.Contribution storage pointer" + } + }, + "id": 3330, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "refunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 2548, + "src": "14490:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3328, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "14481:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14481:31:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3333, + "nodeType": "ExpressionStatement", + "src": "14481:31:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3334, + "name": "contribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3318, + "src": "14523:12:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", + "typeString": "struct StandardBounties.Contribution storage pointer" + } + }, + "id": 3336, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "refunded", + "nodeType": "MemberAccess", + "referencedDeclaration": 2548, + "src": "14523:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14547:4:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "14523:28:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3339, + "nodeType": "ExpressionStatement", + "src": "14523:28:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3341, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3273, + "src": "14577:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3342, + "name": "contribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3318, + "src": "14588:12:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", + "typeString": "struct StandardBounties.Contribution storage pointer" + } + }, + "id": 3343, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contributor", + "nodeType": "MemberAccess", + "referencedDeclaration": 2544, + "src": "14588:24:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3344, + "name": "contribution", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3318, + "src": "14614:12:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", + "typeString": "struct StandardBounties.Contribution storage pointer" + } + }, + "id": 3345, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "amount", + "nodeType": "MemberAccess", + "referencedDeclaration": 2546, + "src": "14614:19:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3340, + "name": "transferTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4364, + "src": "14562:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_payable_$_t_uint256_$returns$__$", + "typeString": "function (uint256,address payable,uint256)" + } + }, + "id": 3346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14562:72:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3347, + "nodeType": "ExpressionStatement", + "src": "14562:72:5" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3298, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3295, + "src": "14256:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3299, + "name": "_contributionIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3278, + "src": "14260:16:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "14260:23:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14256:27:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3349, + "initializationExpression": { + "assignments": [ + 3295 + ], + "declarations": [ + { + "constant": false, + "id": 3295, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 3349, + "src": "14244:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3294, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14244:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3297, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 3296, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14253:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "14244:10:5" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 3303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "14285:3:5", + "subExpression": { + "argumentTypes": null, + "id": 3302, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3295, + "src": "14285:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3304, + "nodeType": "ExpressionStatement", + "src": "14285:3:5" + }, + "nodeType": "ForStatement", + "src": "14239:458:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3351, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3273, + "src": "14732:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3352, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3271, + "src": "14743:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3353, + "name": "_contributionIds", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3278, + "src": "14752:16:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 3350, + "name": "ContributionsRefunded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4409, + "src": "14710:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,uint256[] memory)" + } + }, + "id": 3354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14710:59:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3355, + "nodeType": "EmitStatement", + "src": "14705:64:5" + } + ] + }, + "documentation": "@param _contributionIds the array of indexes of the contributions being refunded", + "id": 3357, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3281, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3271, + "src": "14112:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3282, + "modifierName": { + "argumentTypes": null, + "id": 3280, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "14098:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "14098:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3284, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3273, + "src": "14151:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3285, + "modifierName": { + "argumentTypes": null, + "id": 3283, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "14126:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "14126:35:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3287, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3271, + "src": "14178:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3288, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3273, + "src": "14187:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3289, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3275, + "src": "14198:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3290, + "modifierName": { + "argumentTypes": null, + "id": 3286, + "name": "onlyIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "14167:10:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", + "typeString": "modifier (address,uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "14167:41:5" + }, + { + "arguments": null, + "id": 3292, + "modifierName": { + "argumentTypes": null, + "id": 3291, + "name": "callNotStarted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2584, + "src": "14214:14:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "14214:14:5" + } + ], + "name": "refundContributions", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3279, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3271, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "13985:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3270, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13985:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3273, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "14007:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3272, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14007:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3275, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "14028:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3274, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14028:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3278, + "name": "_contributionIds", + "nodeType": "VariableDeclaration", + "scope": 3357, + "src": "14049:30:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 3276, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "14049:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3277, + "length": null, + "nodeType": "ArrayTypeName", + "src": "14049:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13978:102:5" + }, + "returnParameters": { + "id": 3293, + "nodeType": "ParameterList", + "parameters": [], + "src": "14232:0:5" + }, + "scope": 4512, + "src": "13950:825:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3461, + "nodeType": "Block", + "src": "15849:800:5", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3382, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "15860:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3384, + "indexExpression": { + "argumentTypes": null, + "id": 3383, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3361, + "src": "15869:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15860:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3385, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenVersion", + "nodeType": "MemberAccess", + "referencedDeclaration": 2525, + "src": "15860:32:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3386, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15896:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15860:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3388, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "15901:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3390, + "indexExpression": { + "argumentTypes": null, + "id": 3389, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3361, + "src": "15910:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "15901:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3391, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenVersion", + "nodeType": "MemberAccess", + "referencedDeclaration": 2525, + "src": "15901:32:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3230", + "id": 3392, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15937:2:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "src": "15901:38:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15860:79:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 3453, + "nodeType": "Block", + "src": "16310:277:5", + "statements": [ + { + "body": { + "id": 3451, + "nodeType": "Block", + "src": "16361:219:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3434, + "name": "tokenBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2561, + "src": "16380:13:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => bool))" + } + }, + "id": 3436, + "indexExpression": { + "argumentTypes": null, + "id": 3435, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3361, + "src": "16394:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16380:24:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 3440, + "indexExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3437, + "name": "_amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3366, + "src": "16405:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3439, + "indexExpression": { + "argumentTypes": null, + "id": 3438, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3423, + "src": "16414:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16405:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16380:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3433, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "16372:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16372:46:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3442, + "nodeType": "ExpressionStatement", + "src": "16372:46:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3444, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3361, + "src": "16538:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3445, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3359, + "src": "16549:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3446, + "name": "_amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3366, + "src": "16558:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3448, + "indexExpression": { + "argumentTypes": null, + "id": 3447, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3423, + "src": "16567:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16558:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3443, + "name": "transferTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4364, + "src": "16523:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_payable_$_t_uint256_$returns$__$", + "typeString": "function (uint256,address payable,uint256)" + } + }, + "id": 3449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16523:47:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3450, + "nodeType": "ExpressionStatement", + "src": "16523:47:5" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3426, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3423, + "src": "16336:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3427, + "name": "_amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3366, + "src": "16340:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "16340:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16336:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3452, + "initializationExpression": { + "assignments": [ + 3423 + ], + "declarations": [ + { + "constant": false, + "id": 3423, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 3452, + "src": "16324:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3422, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "16324:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3425, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 3424, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16333:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "16324:10:5" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 3431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "16357:3:5", + "subExpression": { + "argumentTypes": null, + "id": 3430, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3423, + "src": "16357:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3432, + "nodeType": "ExpressionStatement", + "src": "16357:3:5" + }, + "nodeType": "ForStatement", + "src": "16319:261:5" + } + ] + }, + "id": 3454, + "nodeType": "IfStatement", + "src": "15856:731:5", + "trueBody": { + "id": 3421, + "nodeType": "Block", + "src": "15940:364:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3396, + "name": "_amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3366, + "src": "15957:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3397, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "15957:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 3398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15976:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "15957:20:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3395, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "15949:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15949:29:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3401, + "nodeType": "ExpressionStatement", + "src": "15949:29:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3410, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3403, + "name": "_amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3366, + "src": "16053:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3405, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3404, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16062:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16053:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3406, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "16068:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3408, + "indexExpression": { + "argumentTypes": null, + "id": 3407, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3361, + "src": "16077:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16068:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3409, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "16068:27:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16053:42:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3402, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "16045:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16045:51:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3412, + "nodeType": "ExpressionStatement", + "src": "16045:51:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3414, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3361, + "src": "16215:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3415, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3359, + "src": "16226:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3416, + "name": "_amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3366, + "src": "16235:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3418, + "indexExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3417, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16244:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "16235:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3413, + "name": "transferTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4364, + "src": "16200:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_payable_$_t_uint256_$returns$__$", + "typeString": "function (uint256,address payable,uint256)" + } + }, + "id": 3419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16200:47:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3420, + "nodeType": "ExpressionStatement", + "src": "16200:47:5" + } + ] + } + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3456, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3361, + "src": "16614:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3457, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3359, + "src": "16625:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 3458, + "name": "_amounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3366, + "src": "16634:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 3455, + "name": "BountyDrained", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4418, + "src": "16600:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,uint256[] memory)" + } + }, + "id": 3459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16600:43:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3460, + "nodeType": "EmitStatement", + "src": "16595:48:5" + } + ] + }, + "documentation": "@param _amounts an array of amounts of tokens to be sent. The length of the array should be 1 if the bounty is in ETH or ERC20 tokens. If it's an ERC721 bounty, the array should be the list of tokenIDs.", + "id": 3462, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3369, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3359, + "src": "15729:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 3370, + "modifierName": { + "argumentTypes": null, + "id": 3368, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "15715:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "15715:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3372, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3361, + "src": "15768:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3373, + "modifierName": { + "argumentTypes": null, + "id": 3371, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "15743:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "15743:35:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3375, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3359, + "src": "15795:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 3376, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3361, + "src": "15804:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3377, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3363, + "src": "15815:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3378, + "modifierName": { + "argumentTypes": null, + "id": 3374, + "name": "onlyIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "15784:10:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", + "typeString": "modifier (address,uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "15784:41:5" + }, + { + "arguments": null, + "id": 3380, + "modifierName": { + "argumentTypes": null, + "id": 3379, + "name": "callNotStarted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2584, + "src": "15831:14:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "15831:14:5" + } + ], + "name": "drainBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3367, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3359, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "15602:23:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 3358, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15602:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3361, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "15632:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3360, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15632:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3363, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "15653:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3362, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15653:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3366, + "name": "_amounts", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "15674:22:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 3364, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "15674:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3365, + "length": null, + "nodeType": "ArrayTypeName", + "src": "15674:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15595:102:5" + }, + "returnParameters": { + "id": 3381, + "nodeType": "ParameterList", + "parameters": [], + "src": "15849:0:5" + }, + "scope": 4512, + "src": "15575:1074:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3483, + "nodeType": "Block", + "src": "17352:134:5", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3478, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3466, + "src": "17380:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3479, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3464, + "src": "17391:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3480, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3468, + "src": "17400:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3477, + "name": "ActionPerformed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4426, + "src": "17364:15:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,string memory)" + } + }, + "id": 3481, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17364:42:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3482, + "nodeType": "EmitStatement", + "src": "17359:47:5" + } + ] + }, + "documentation": "@param _data the IPFS hash corresponding to a JSON object which contains the details of the action being performed (see docs for schema details)", + "id": 3484, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3471, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3464, + "src": "17299:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3472, + "modifierName": { + "argumentTypes": null, + "id": 3470, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "17285:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "17285:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3474, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3466, + "src": "17338:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3475, + "modifierName": { + "argumentTypes": null, + "id": 3473, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "17313:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "17313:35:5" + } + ], + "name": "performAction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3469, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3464, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3484, + "src": "17204:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3463, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17204:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3466, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3484, + "src": "17226:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3465, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "17226:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3468, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3484, + "src": "17247:19:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3467, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17247:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17197:70:5" + }, + "returnParameters": { + "id": 3476, + "nodeType": "ParameterList", + "parameters": [], + "src": "17352:0:5" + }, + "scope": 4512, + "src": "17175:311:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3544, + "nodeType": "Block", + "src": "18230:598:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3503, + "name": "now", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10413, + "src": "18245:3:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3504, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "18251:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3506, + "indexExpression": { + "argumentTypes": null, + "id": 3505, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3488, + "src": "18260:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18251:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3507, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "deadline", + "nodeType": "MemberAccess", + "referencedDeclaration": 2521, + "src": "18251:28:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18245:34:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3502, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "18237:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18237:43:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3510, + "nodeType": "ExpressionStatement", + "src": "18237:43:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3512, + "name": "_fulfillers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3491, + "src": "18358:11:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + "id": 3513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18358:18:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3514, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18379:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "18358:22:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3511, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "18350:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18350:31:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3517, + "nodeType": "ExpressionStatement", + "src": "18350:31:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3524, + "name": "_fulfillers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3491, + "src": "18506:11:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 3525, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "18519:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3523, + "name": "Fulfillment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2542, + "src": "18494:11:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_Fulfillment_$2542_storage_ptr_$", + "typeString": "type(struct StandardBounties.Fulfillment storage pointer)" + } + }, + "id": 3526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18494:33:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fulfillment_$2542_memory", + "typeString": "struct StandardBounties.Fulfillment memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Fulfillment_$2542_memory", + "typeString": "struct StandardBounties.Fulfillment memory" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3518, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "18456:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3520, + "indexExpression": { + "argumentTypes": null, + "id": 3519, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3488, + "src": "18465:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18456:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3521, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fulfillments", + "nodeType": "MemberAccess", + "referencedDeclaration": 2532, + "src": "18456:32:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", + "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" + } + }, + "id": 3522, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18456:37:5", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Fulfillment_$2542_storage_$returns$_t_uint256_$", + "typeString": "function (struct StandardBounties.Fulfillment storage ref) returns (uint256)" + } + }, + "id": 3527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18456:72:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3528, + "nodeType": "ExpressionStatement", + "src": "18456:72:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3530, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3488, + "src": "18558:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3531, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "18596:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3533, + "indexExpression": { + "argumentTypes": null, + "id": 3532, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3488, + "src": "18605:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18596:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3534, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fulfillments", + "nodeType": "MemberAccess", + "referencedDeclaration": 2532, + "src": "18596:32:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", + "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" + } + }, + "id": 3535, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "18596:39:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 3536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18638:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "18596:43:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3538, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "18595:45:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3539, + "name": "_fulfillers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3491, + "src": "18668:11:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 3540, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3493, + "src": "18707:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 3541, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "18814:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3529, + "name": "BountyFulfilled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4439, + "src": "18542:15:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_address_$returns$__$", + "typeString": "function (uint256,uint256,address payable[] memory,string memory,address)" + } + }, + "id": 3542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18542:280:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3543, + "nodeType": "EmitStatement", + "src": "18537:285:5" + } + ] + }, + "documentation": "@param _data the IPFS hash corresponding to a JSON object which contains the details of the submission (see docs for schema details)", + "id": 3545, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3496, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "18177:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3497, + "modifierName": { + "argumentTypes": null, + "id": 3495, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "18163:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "18163:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3499, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3488, + "src": "18216:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3500, + "modifierName": { + "argumentTypes": null, + "id": 3498, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "18191:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "18191:35:5" + } + ], + "name": "fulfillBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3486, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3545, + "src": "18038:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3485, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18038:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3488, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3545, + "src": "18060:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3487, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "18060:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3491, + "name": "_fulfillers", + "nodeType": "VariableDeclaration", + "scope": 3545, + "src": "18081:37:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 3489, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18081:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 3490, + "length": null, + "nodeType": "ArrayTypeName", + "src": "18081:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3493, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3545, + "src": "18125:19:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3492, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "18125:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18031:114:5" + }, + "returnParameters": { + "id": 3501, + "nodeType": "ParameterList", + "parameters": [], + "src": "18230:0:5" + }, + "scope": 4512, + "src": "18009:819:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3591, + "nodeType": "Block", + "src": "19858:324:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3582, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3574, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "19865:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3576, + "indexExpression": { + "argumentTypes": null, + "id": 3575, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "19874:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19865:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3577, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fulfillments", + "nodeType": "MemberAccess", + "referencedDeclaration": 2532, + "src": "19865:32:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", + "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" + } + }, + "id": 3579, + "indexExpression": { + "argumentTypes": null, + "id": 3578, + "name": "_fulfillmentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3551, + "src": "19898:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "19865:48:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fulfillment_$2542_storage", + "typeString": "struct StandardBounties.Fulfillment storage ref" + } + }, + "id": 3580, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "fulfillers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2539, + "src": "19865:59:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3581, + "name": "_fulfillers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3554, + "src": "19927:11:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + "src": "19865:73:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 3583, + "nodeType": "ExpressionStatement", + "src": "19865:73:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3585, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "19969:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3586, + "name": "_fulfillmentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3551, + "src": "20009:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3587, + "name": "_fulfillers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3554, + "src": "20054:11:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 3588, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3556, + "src": "20096:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3584, + "name": "FulfillmentUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4450, + "src": "19950:18:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,uint256,address payable[] memory,string memory)" + } + }, + "id": 3589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19950:152:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3590, + "nodeType": "EmitStatement", + "src": "19945:157:5" + } + ] + }, + "documentation": "@param _data the new IPFS hash corresponding to a JSON object which contains the details of the submission (see docs for schema details)", + "id": 3592, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3559, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3547, + "src": "19618:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3560, + "modifierName": { + "argumentTypes": null, + "id": 3558, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "19604:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "19604:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3562, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "19655:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3563, + "modifierName": { + "argumentTypes": null, + "id": 3561, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "19630:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "19630:35:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3565, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "19699:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3566, + "name": "_fulfillmentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3551, + "src": "19710:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3567, + "modifierName": { + "argumentTypes": null, + "id": 3564, + "name": "validateFulfillmentArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2632, + "src": "19669:29:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "19669:56:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3569, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3547, + "src": "19743:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3570, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3549, + "src": "19752:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3571, + "name": "_fulfillmentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3551, + "src": "19763:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3572, + "modifierName": { + "argumentTypes": null, + "id": 3568, + "name": "onlySubmitter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2711, + "src": "19729:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", + "typeString": "modifier (address,uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "19729:49:5" + } + ], + "name": "updateFulfillment", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3557, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3547, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3592, + "src": "19466:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3546, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19466:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3549, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3592, + "src": "19486:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3548, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "19486:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3551, + "name": "_fulfillmentId", + "nodeType": "VariableDeclaration", + "scope": 3592, + "src": "19505:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3550, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "19505:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3554, + "name": "_fulfillers", + "nodeType": "VariableDeclaration", + "scope": 3592, + "src": "19529:36:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 3552, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19529:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 3553, + "length": null, + "nodeType": "ArrayTypeName", + "src": "19529:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3556, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3592, + "src": "19570:19:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3555, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "19570:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19461:129:5" + }, + "returnParameters": { + "id": 3573, + "nodeType": "ParameterList", + "parameters": [], + "src": "19858:0:5" + }, + "scope": 4512, + "src": "19435:747:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3687, + "nodeType": "Block", + "src": "21405:812:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3628, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3623, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "21499:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3625, + "indexExpression": { + "argumentTypes": null, + "id": 3624, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3596, + "src": "21508:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21499:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3626, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "hasPaidOut", + "nodeType": "MemberAccess", + "referencedDeclaration": 2529, + "src": "21499:30:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 3627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21532:4:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "21499:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3629, + "nodeType": "ExpressionStatement", + "src": "21499:37:5" + }, + { + "assignments": [ + 3631 + ], + "declarations": [ + { + "constant": false, + "id": 3631, + "name": "fulfillment", + "nodeType": "VariableDeclaration", + "scope": 3687, + "src": "21545:31:5", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fulfillment_$2542_storage_ptr", + "typeString": "struct StandardBounties.Fulfillment" + }, + "typeName": { + "contractScope": null, + "id": 3630, + "name": "Fulfillment", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2542, + "src": "21545:11:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fulfillment_$2542_storage_ptr", + "typeString": "struct StandardBounties.Fulfillment" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3638, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3632, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "21579:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3634, + "indexExpression": { + "argumentTypes": null, + "id": 3633, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3596, + "src": "21588:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21579:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3635, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fulfillments", + "nodeType": "MemberAccess", + "referencedDeclaration": 2532, + "src": "21579:32:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", + "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" + } + }, + "id": 3637, + "indexExpression": { + "argumentTypes": null, + "id": 3636, + "name": "_fulfillmentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3598, + "src": "21612:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21579:48:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fulfillment_$2542_storage", + "typeString": "struct StandardBounties.Fulfillment storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21545:82:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3640, + "name": "_tokenAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3603, + "src": "21644:13:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "21644:20:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3642, + "name": "fulfillment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3631, + "src": "21668:11:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fulfillment_$2542_storage_ptr", + "typeString": "struct StandardBounties.Fulfillment storage pointer" + } + }, + "id": 3643, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fulfillers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2539, + "src": "21668:22:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 3644, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "21668:29:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "21644:53:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3639, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "21636:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3646, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21636:62:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3647, + "nodeType": "ExpressionStatement", + "src": "21636:62:5" + }, + { + "body": { + "id": 3678, + "nodeType": "Block", + "src": "21838:202:5", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3664, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3660, + "name": "_tokenAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3603, + "src": "21853:13:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3662, + "indexExpression": { + "argumentTypes": null, + "id": 3661, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3649, + "src": "21867:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21853:16:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3663, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21872:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "21853:20:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 3677, + "nodeType": "IfStatement", + "src": "21849:184:5", + "trueBody": { + "id": 3676, + "nodeType": "Block", + "src": "21874:159:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3666, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3596, + "src": "21966:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3667, + "name": "fulfillment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3631, + "src": "21977:11:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fulfillment_$2542_storage_ptr", + "typeString": "struct StandardBounties.Fulfillment storage pointer" + } + }, + "id": 3668, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fulfillers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2539, + "src": "21977:22:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 3670, + "indexExpression": { + "argumentTypes": null, + "id": 3669, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3649, + "src": "22000:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21977:25:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3671, + "name": "_tokenAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3603, + "src": "22004:13:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + }, + "id": 3673, + "indexExpression": { + "argumentTypes": null, + "id": 3672, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3649, + "src": "22018:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "22004:16:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3665, + "name": "transferTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4364, + "src": "21951:14:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_payable_$_t_uint256_$returns$__$", + "typeString": "function (uint256,address payable,uint256)" + } + }, + "id": 3674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21951:70:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3675, + "nodeType": "ExpressionStatement", + "src": "21951:70:5" + } + ] + } + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3656, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3652, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3649, + "src": "21799:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3653, + "name": "fulfillment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3631, + "src": "21803:11:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Fulfillment_$2542_storage_ptr", + "typeString": "struct StandardBounties.Fulfillment storage pointer" + } + }, + "id": 3654, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fulfillers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2539, + "src": "21803:22:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 3655, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "21803:29:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "21799:33:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3679, + "initializationExpression": { + "assignments": [ + 3649 + ], + "declarations": [ + { + "constant": false, + "id": 3649, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 3679, + "src": "21784:9:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3648, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "21784:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 3651, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 3650, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21796:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "21784:13:5" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 3658, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "21834:3:5", + "subExpression": { + "argumentTypes": null, + "id": 3657, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3649, + "src": "21834:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3659, + "nodeType": "ExpressionStatement", + "src": "21834:3:5" + }, + "nodeType": "ForStatement", + "src": "21779:261:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3681, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3596, + "src": "22071:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3682, + "name": "_fulfillmentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3598, + "src": "22112:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3683, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3594, + "src": "22158:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3684, + "name": "_tokenAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3603, + "src": "22197:13:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 3680, + "name": "FulfillmentAccepted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4461, + "src": "22051:19:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint256,uint256,address,uint256[] memory)" + } + }, + "id": 3685, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22051:160:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3686, + "nodeType": "EmitStatement", + "src": "22046:165:5" + } + ] + }, + "documentation": "being sent to each of the individual fulfillers", + "id": 3688, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3606, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3594, + "src": "21221:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3607, + "modifierName": { + "argumentTypes": null, + "id": 3605, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "21207:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "21207:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3609, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3596, + "src": "21260:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3610, + "modifierName": { + "argumentTypes": null, + "id": 3608, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "21235:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "21235:35:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3612, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3596, + "src": "21306:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3613, + "name": "_fulfillmentId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3598, + "src": "21317:14:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3614, + "modifierName": { + "argumentTypes": null, + "id": 3611, + "name": "validateFulfillmentArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2632, + "src": "21276:29:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "21276:56:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3616, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3594, + "src": "21349:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3617, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3596, + "src": "21358:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3618, + "name": "_approverId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3600, + "src": "21369:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3619, + "modifierName": { + "argumentTypes": null, + "id": 3615, + "name": "isApprover", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2754, + "src": "21338:10:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", + "typeString": "modifier (address,uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "21338:43:5" + }, + { + "arguments": null, + "id": 3621, + "modifierName": { + "argumentTypes": null, + "id": 3620, + "name": "callNotStarted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2584, + "src": "21387:14:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "21387:14:5" + } + ], + "name": "acceptFulfillment", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3604, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3594, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3688, + "src": "21069:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3593, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21069:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3596, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3688, + "src": "21091:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3595, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "21091:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3598, + "name": "_fulfillmentId", + "nodeType": "VariableDeclaration", + "scope": 3688, + "src": "21112:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3597, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "21112:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3600, + "name": "_approverId", + "nodeType": "VariableDeclaration", + "scope": 3688, + "src": "21138:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3599, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "21138:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3603, + "name": "_tokenAmounts", + "nodeType": "VariableDeclaration", + "scope": 3688, + "src": "21161:27:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 3601, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "21161:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3602, + "length": null, + "nodeType": "ArrayTypeName", + "src": "21161:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "21062:127:5" + }, + "returnParameters": { + "id": 3622, + "nodeType": "ParameterList", + "parameters": [], + "src": "21405:0:5" + }, + "scope": 4512, + "src": "21036:1181:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3729, + "nodeType": "Block", + "src": "23492:376:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3709, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3690, + "src": "23575:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3710, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3692, + "src": "23584:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3711, + "name": "_fulfillers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3695, + "src": "23595:11:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 3712, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3697, + "src": "23608:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 3708, + "name": "fulfillBounty", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3545, + "src": "23561:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,address payable[] memory,string memory)" + } + }, + "id": 3713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23561:53:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3714, + "nodeType": "ExpressionStatement", + "src": "23561:53:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3716, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3690, + "src": "23678:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3717, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3692, + "src": "23710:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3718, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "23744:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3720, + "indexExpression": { + "argumentTypes": null, + "id": 3719, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3692, + "src": "23753:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "23744:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3721, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "fulfillments", + "nodeType": "MemberAccess", + "referencedDeclaration": 2532, + "src": "23744:32:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", + "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" + } + }, + "id": 3722, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "23744:39:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "argumentTypes": null, + "hexValue": "31", + "id": 3723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23786:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "23744:43:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3725, + "name": "_approverId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3699, + "src": "23812:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3726, + "name": "_tokenAmounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3702, + "src": "23848:13:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[] memory" + } + ], + "id": 3715, + "name": "acceptFulfillment", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3688, + "src": "23660:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,uint256,uint256,uint256[] memory)" + } + }, + "id": 3727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23660:202:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3728, + "nodeType": "ExpressionStatement", + "src": "23660:202:5" + } + ] + }, + "documentation": "being sent to each of the individual fulfillers", + "id": 3730, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3705, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3690, + "src": "23480:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3706, + "modifierName": { + "argumentTypes": null, + "id": 3704, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "23466:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "23466:22:5" + } + ], + "name": "fulfillAndAccept", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3703, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3690, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3730, + "src": "23285:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3689, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23285:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3692, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3730, + "src": "23307:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3691, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "23307:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3695, + "name": "_fulfillers", + "nodeType": "VariableDeclaration", + "scope": 3730, + "src": "23328:36:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 3693, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23328:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 3694, + "length": null, + "nodeType": "ArrayTypeName", + "src": "23328:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3697, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3730, + "src": "23371:19:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3696, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "23371:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3699, + "name": "_approverId", + "nodeType": "VariableDeclaration", + "scope": 3730, + "src": "23397:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3698, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "23397:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3702, + "name": "_tokenAmounts", + "nodeType": "VariableDeclaration", + "scope": 3730, + "src": "23420:27:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 3700, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "23420:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3701, + "length": null, + "nodeType": "ArrayTypeName", + "src": "23420:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "23278:170:5" + }, + "returnParameters": { + "id": 3707, + "nodeType": "ParameterList", + "parameters": [], + "src": "23492:0:5" + }, + "scope": 4512, + "src": "23253:615:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3821, + "nodeType": "Block", + "src": "24888:901:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3753, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3734, + "src": "24903:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 3754, + "name": "numBounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2551, + "src": "24915:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "24903:23:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3752, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "24895:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24895:32:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3757, + "nodeType": "ExpressionStatement", + "src": "24895:32:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3765, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3759, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3736, + "src": "25028:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3760, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "25040:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3762, + "indexExpression": { + "argumentTypes": null, + "id": 3761, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3734, + "src": "25049:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25040:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3763, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "25040:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 3764, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "25040:34:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25028:46:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3758, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "25020:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25020:55:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3767, + "nodeType": "ExpressionStatement", + "src": "25020:55:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3776, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3769, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3732, + "src": "25176:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3770, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "25187:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3772, + "indexExpression": { + "argumentTypes": null, + "id": 3771, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3734, + "src": "25196:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25187:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3773, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "25187:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 3775, + "indexExpression": { + "argumentTypes": null, + "id": 3774, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3736, + "src": "25215:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25187:38:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "25176:49:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3768, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "25168:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25168:58:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3778, + "nodeType": "ExpressionStatement", + "src": "25168:58:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3780, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3739, + "src": "25315:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + "id": 3781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "25315:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25333:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "25315:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 3784, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3742, + "src": "25338:10:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + "id": 3785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "25338:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3786, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25358:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "25338:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "25315:44:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3779, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "25307:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25307:53:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3790, + "nodeType": "ExpressionStatement", + "src": "25307:53:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3796, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3791, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "25444:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3793, + "indexExpression": { + "argumentTypes": null, + "id": 3792, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3734, + "src": "25453:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25444:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3794, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "25444:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3795, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3739, + "src": "25474:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + "src": "25444:38:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 3797, + "nodeType": "ExpressionStatement", + "src": "25444:38:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3798, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "25489:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3800, + "indexExpression": { + "argumentTypes": null, + "id": 3799, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3734, + "src": "25498:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25489:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3801, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "approvers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2519, + "src": "25489:29:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3802, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3742, + "src": "25521:10:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + "src": "25489:42:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3804, + "nodeType": "ExpressionStatement", + "src": "25489:42:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3810, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3805, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "25538:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3807, + "indexExpression": { + "argumentTypes": null, + "id": 3806, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3734, + "src": "25547:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "25538:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3808, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "deadline", + "nodeType": "MemberAccess", + "referencedDeclaration": 2521, + "src": "25538:28:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3809, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "25569:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "25538:40:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3811, + "nodeType": "ExpressionStatement", + "src": "25538:40:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3813, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3734, + "src": "25604:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3814, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3732, + "src": "25639:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3815, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3739, + "src": "25672:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 3816, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3742, + "src": "25706:10:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + { + "argumentTypes": null, + "id": 3817, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3744, + "src": "25742:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "argumentTypes": null, + "id": 3818, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3746, + "src": "25773:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3812, + "name": "BountyChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4477, + "src": "25590:13:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$__$", + "typeString": "function (uint256,address,address payable[] memory,address payable[] memory,string memory,uint256)" + } + }, + "id": 3819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25590:193:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3820, + "nodeType": "EmitStatement", + "src": "25585:198:5" + } + ] + }, + "documentation": "@param _deadline the new timestamp which will become the deadline of the bounty", + "id": 3822, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3749, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3732, + "src": "24876:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3750, + "modifierName": { + "argumentTypes": null, + "id": 3748, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "24862:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "24862:22:5" + } + ], + "name": "changeBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3732, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3822, + "src": "24657:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3731, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24657:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3734, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3822, + "src": "24679:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3733, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "24679:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3736, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 3822, + "src": "24700:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3735, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "24700:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3739, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 3822, + "src": "24721:33:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 3737, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24721:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 3738, + "length": null, + "nodeType": "ArrayTypeName", + "src": "24721:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3742, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 3822, + "src": "24761:35:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 3740, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24761:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 3741, + "length": null, + "nodeType": "ArrayTypeName", + "src": "24761:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3744, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3822, + "src": "24803:19:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3743, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "24803:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3746, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 3822, + "src": "24829:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3745, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "24829:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "24650:194:5" + }, + "returnParameters": { + "id": 3751, + "nodeType": "ParameterList", + "parameters": [], + "src": "24888:0:5" + }, + "scope": 4512, + "src": "24629:1160:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3882, + "nodeType": "Block", + "src": "26643:237:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3857, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3851, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "26658:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3852, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "26670:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3854, + "indexExpression": { + "argumentTypes": null, + "id": 3853, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3826, + "src": "26679:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "26670:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3855, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "26670:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 3856, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "26670:34:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "26658:46:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3860, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3858, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "26708:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 3859, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "26721:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "26708:14:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "26658:64:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3850, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "26650:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "26650:73:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3863, + "nodeType": "ExpressionStatement", + "src": "26650:73:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3864, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "26732:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3866, + "indexExpression": { + "argumentTypes": null, + "id": 3865, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3826, + "src": "26741:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "26732:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3867, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "26732:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 3869, + "indexExpression": { + "argumentTypes": null, + "id": 3868, + "name": "_issuerIdToChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3830, + "src": "26760:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "26732:46:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3870, + "name": "_newIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3832, + "src": "26781:10:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "26732:59:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 3872, + "nodeType": "ExpressionStatement", + "src": "26732:59:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3874, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3826, + "src": "26826:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3875, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3824, + "src": "26837:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3876, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "26846:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3878, + "indexExpression": { + "argumentTypes": null, + "id": 3877, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3826, + "src": "26855:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "26846:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3879, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "26846:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + ], + "id": 3873, + "name": "BountyIssuersUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4486, + "src": "26805:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_payable_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,address payable[] memory)" + } + }, + "id": 3880, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "26805:69:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3881, + "nodeType": "EmitStatement", + "src": "26800:74:5" + } + ] + }, + "documentation": "@param _newIssuer the address of the new issuer", + "id": 3883, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3835, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3824, + "src": "26483:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3836, + "modifierName": { + "argumentTypes": null, + "id": 3834, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "26469:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "26469:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3838, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3826, + "src": "26522:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3839, + "modifierName": { + "argumentTypes": null, + "id": 3837, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "26497:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "26497:35:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3841, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3826, + "src": "26563:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3842, + "name": "_issuerIdToChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3830, + "src": "26574:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3843, + "modifierName": { + "argumentTypes": null, + "id": 3840, + "name": "validateIssuerArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2650, + "src": "26538:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "26538:54:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3845, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3824, + "src": "26609:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3846, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3826, + "src": "26618:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3847, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3828, + "src": "26629:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3848, + "modifierName": { + "argumentTypes": null, + "id": 3844, + "name": "onlyIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "26598:10:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", + "typeString": "modifier (address,uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "26598:41:5" + } + ], + "name": "changeIssuer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3833, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3824, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3883, + "src": "26331:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3823, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "26331:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3826, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3883, + "src": "26353:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3825, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "26353:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3828, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 3883, + "src": "26374:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3827, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "26374:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3830, + "name": "_issuerIdToChange", + "nodeType": "VariableDeclaration", + "scope": 3883, + "src": "26395:22:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3829, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "26395:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3832, + "name": "_newIssuer", + "nodeType": "VariableDeclaration", + "scope": 3883, + "src": "26424:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 3831, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "26424:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "26324:127:5" + }, + "returnParameters": { + "id": 3849, + "nodeType": "ParameterList", + "parameters": [], + "src": "26643:0:5" + }, + "scope": 4512, + "src": "26303:577:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 3929, + "nodeType": "Block", + "src": "27728:154:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 3918, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3911, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "27735:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3913, + "indexExpression": { + "argumentTypes": null, + "id": 3912, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3887, + "src": "27744:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "27735:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3914, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "approvers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2519, + "src": "27735:29:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3916, + "indexExpression": { + "argumentTypes": null, + "id": 3915, + "name": "_approverId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3891, + "src": "27765:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "27735:42:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3917, + "name": "_approver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3893, + "src": "27780:9:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "27735:54:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3919, + "nodeType": "ExpressionStatement", + "src": "27735:54:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3921, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3887, + "src": "27826:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3922, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3885, + "src": "27837:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3923, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "27846:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3925, + "indexExpression": { + "argumentTypes": null, + "id": 3924, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3887, + "src": "27855:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "27846:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3926, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "approvers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2519, + "src": "27846:29:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + ], + "id": 3920, + "name": "BountyApproversUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4495, + "src": "27803:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,address[] memory)" + } + }, + "id": 3927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27803:73:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3928, + "nodeType": "EmitStatement", + "src": "27798:78:5" + } + ] + }, + "documentation": "@param _approver the address of the new approver", + "id": 3930, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3896, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3885, + "src": "27572:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3897, + "modifierName": { + "argumentTypes": null, + "id": 3895, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "27558:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "27558:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3899, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3887, + "src": "27611:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3900, + "modifierName": { + "argumentTypes": null, + "id": 3898, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "27586:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "27586:35:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3902, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3885, + "src": "27638:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3903, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3887, + "src": "27647:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3904, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3889, + "src": "27658:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3905, + "modifierName": { + "argumentTypes": null, + "id": 3901, + "name": "onlyIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "27627:10:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", + "typeString": "modifier (address,uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "27627:41:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3907, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3887, + "src": "27701:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3908, + "name": "_approverId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3891, + "src": "27712:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3909, + "modifierName": { + "argumentTypes": null, + "id": 3906, + "name": "validateApproverArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2668, + "src": "27674:26:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "27674:50:5" + } + ], + "name": "changeApprover", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3894, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3885, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 3930, + "src": "27425:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3884, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "27425:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3887, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 3930, + "src": "27447:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3886, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "27447:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3889, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 3930, + "src": "27468:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3888, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "27468:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3891, + "name": "_approverId", + "nodeType": "VariableDeclaration", + "scope": 3930, + "src": "27489:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3890, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "27489:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3893, + "name": "_approver", + "nodeType": "VariableDeclaration", + "scope": 3930, + "src": "27512:25:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 3892, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "27512:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "27418:120:5" + }, + "returnParameters": { + "id": 3910, + "nodeType": "ParameterList", + "parameters": [], + "src": "27728:0:5" + }, + "scope": 4512, + "src": "27395:487:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 4015, + "nodeType": "Block", + "src": "28769:489:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3956, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3954, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "28784:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "id": 3955, + "name": "numBounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2551, + "src": "28796:11:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "28784:23:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3953, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "28776:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "28776:32:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3958, + "nodeType": "ExpressionStatement", + "src": "28776:32:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3960, + "name": "_approverIdToChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3940, + "src": "28823:19:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3961, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "28845:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3963, + "indexExpression": { + "argumentTypes": null, + "id": 3962, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "28854:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28845:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3964, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "approvers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2519, + "src": "28845:29:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3965, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "28845:36:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "28823:58:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3959, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "28815:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "28815:67:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3968, + "nodeType": "ExpressionStatement", + "src": "28815:67:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 3970, + "name": "_issuerIdToChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3938, + "src": "28897:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3971, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "28917:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3973, + "indexExpression": { + "argumentTypes": null, + "id": 3972, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "28926:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28917:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3974, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "28917:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 3975, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "28917:34:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "28897:54:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 3969, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "28889:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 3977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "28889:63:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3978, + "nodeType": "ExpressionStatement", + "src": "28889:63:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3979, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "28961:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3981, + "indexExpression": { + "argumentTypes": null, + "id": 3980, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "28970:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28961:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3982, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "28961:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 3984, + "indexExpression": { + "argumentTypes": null, + "id": 3983, + "name": "_issuerIdToChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3938, + "src": "28989:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "28961:46:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3985, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3942, + "src": "29010:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "28961:56:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 3987, + "nodeType": "ExpressionStatement", + "src": "28961:56:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 3995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 3988, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "29024:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 3990, + "indexExpression": { + "argumentTypes": null, + "id": 3989, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "29033:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "29024:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 3991, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "approvers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2519, + "src": "29024:29:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 3993, + "indexExpression": { + "argumentTypes": null, + "id": 3992, + "name": "_approverIdToChange", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3940, + "src": "29054:19:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29024:50:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 3994, + "name": "_issuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3942, + "src": "29077:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "29024:60:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3996, + "nodeType": "ExpressionStatement", + "src": "29024:60:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 3998, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "29119:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3999, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3932, + "src": "29130:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4000, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "29139:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4002, + "indexExpression": { + "argumentTypes": null, + "id": 4001, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "29148:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "29139:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4003, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "29139:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + ], + "id": 3997, + "name": "BountyIssuersUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4486, + "src": "29098:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_payable_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,address payable[] memory)" + } + }, + "id": 4004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29098:69:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4005, + "nodeType": "EmitStatement", + "src": "29093:74:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4007, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "29202:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4008, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3932, + "src": "29213:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4009, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "29222:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4011, + "indexExpression": { + "argumentTypes": null, + "id": 4010, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "29231:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "29222:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4012, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "approvers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2519, + "src": "29222:29:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + ], + "id": 4006, + "name": "BountyApproversUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4495, + "src": "29179:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,address[] memory)" + } + }, + "id": 4013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29179:73:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4014, + "nodeType": "EmitStatement", + "src": "29174:78:5" + } + ] + }, + "documentation": "@param _issuer the address of the new approver", + "id": 4016, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 3945, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3932, + "src": "28710:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 3946, + "modifierName": { + "argumentTypes": null, + "id": 3944, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "28696:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "28696:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 3948, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3932, + "src": "28735:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 3949, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3934, + "src": "28744:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 3950, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3936, + "src": "28755:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 3951, + "modifierName": { + "argumentTypes": null, + "id": 3947, + "name": "onlyIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "28724:10:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", + "typeString": "modifier (address,uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "28724:41:5" + } + ], + "name": "changeIssuerAndApprover", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3943, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3932, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 4016, + "src": "28528:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3931, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "28528:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3934, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4016, + "src": "28550:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3933, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "28550:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3936, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4016, + "src": "28571:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3935, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "28571:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3938, + "name": "_issuerIdToChange", + "nodeType": "VariableDeclaration", + "scope": 4016, + "src": "28592:22:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3937, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "28592:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3940, + "name": "_approverIdToChange", + "nodeType": "VariableDeclaration", + "scope": 4016, + "src": "28621:24:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3939, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "28621:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 3942, + "name": "_issuer", + "nodeType": "VariableDeclaration", + "scope": 4016, + "src": "28652:23:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 3941, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "28652:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "28521:155:5" + }, + "returnParameters": { + "id": 3952, + "nodeType": "ParameterList", + "parameters": [], + "src": "28769:0:5" + }, + "scope": 4512, + "src": "28489:769:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 4048, + "nodeType": "Block", + "src": "30049:164:5", + "statements": [ + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4043, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4020, + "src": "30079:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4044, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4018, + "src": "30090:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4045, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4024, + "src": "30099:5:5", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 4042, + "name": "BountyDataChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4503, + "src": "30061:17:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,string memory)" + } + }, + "id": 4046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30061:44:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4047, + "nodeType": "EmitStatement", + "src": "30056:49:5" + } + ] + }, + "documentation": "@param _data the new IPFS hash representing the JSON object storing the details of the bounty (see docs for schema details)", + "id": 4049, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 4027, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4018, + "src": "29897:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 4028, + "modifierName": { + "argumentTypes": null, + "id": 4026, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "29883:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "29883:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 4030, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4020, + "src": "29936:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4031, + "modifierName": { + "argumentTypes": null, + "id": 4029, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "29911:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "29911:35:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 4033, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4020, + "src": "29977:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4034, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4022, + "src": "29988:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4035, + "modifierName": { + "argumentTypes": null, + "id": 4032, + "name": "validateIssuerArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2650, + "src": "29952:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "29952:46:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 4037, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4018, + "src": "30015:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4038, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4020, + "src": "30024:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4039, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4022, + "src": "30035:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4040, + "modifierName": { + "argumentTypes": null, + "id": 4036, + "name": "onlyIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "30004:10:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", + "typeString": "modifier (address,uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "30004:41:5" + } + ], + "name": "changeData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4025, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4018, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 4049, + "src": "29781:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4017, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "29781:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4020, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4049, + "src": "29803:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4019, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "29803:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4022, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4049, + "src": "29824:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4021, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "29824:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4024, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4049, + "src": "29845:19:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4023, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "29845:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "29774:91:5" + }, + "returnParameters": { + "id": 4041, + "nodeType": "ParameterList", + "parameters": [], + "src": "30049:0:5" + }, + "scope": 4512, + "src": "29755:458:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4088, + "nodeType": "Block", + "src": "30969:119:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 4080, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4075, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "30976:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4077, + "indexExpression": { + "argumentTypes": null, + "id": 4076, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "30985:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "30976:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4078, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "deadline", + "nodeType": "MemberAccess", + "referencedDeclaration": 2521, + "src": "30976:28:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 4079, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4057, + "src": "31007:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30976:40:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4081, + "nodeType": "ExpressionStatement", + "src": "30976:40:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4083, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "31052:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4084, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4051, + "src": "31063:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4085, + "name": "_deadline", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4057, + "src": "31072:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 4082, + "name": "BountyDeadlineChanged", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4511, + "src": "31030:21:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (uint256,address,uint256)" + } + }, + "id": 4086, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31030:52:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4087, + "nodeType": "EmitStatement", + "src": "31025:57:5" + } + ] + }, + "documentation": "@param _deadline the new timestamp which will become the deadline of the bounty", + "id": 4089, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 4060, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4051, + "src": "30817:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 4061, + "modifierName": { + "argumentTypes": null, + "id": 4059, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "30803:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "30803:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 4063, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "30856:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4064, + "modifierName": { + "argumentTypes": null, + "id": 4062, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "30831:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "30831:35:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 4066, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "30897:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4067, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4055, + "src": "30908:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4068, + "modifierName": { + "argumentTypes": null, + "id": 4065, + "name": "validateIssuerArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2650, + "src": "30872:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "30872:46:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 4070, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4051, + "src": "30935:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4071, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4053, + "src": "30944:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4072, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4055, + "src": "30955:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4073, + "modifierName": { + "argumentTypes": null, + "id": 4069, + "name": "onlyIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "30924:10:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", + "typeString": "modifier (address,uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "30924:41:5" + } + ], + "name": "changeDeadline", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4058, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4051, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 4089, + "src": "30704:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4050, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "30704:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4053, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4089, + "src": "30726:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4052, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "30726:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4055, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4089, + "src": "30747:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4054, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "30747:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4057, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 4089, + "src": "30768:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4056, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "30768:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "30697:86:5" + }, + "returnParameters": { + "id": 4074, + "nodeType": "ParameterList", + "parameters": [], + "src": "30969:0:5" + }, + "scope": 4512, + "src": "30674:414:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 4148, + "nodeType": "Block", + "src": "31848:199:5", + "statements": [ + { + "body": { + "id": 4137, + "nodeType": "Block", + "src": "31897:62:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4132, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4098, + "src": "31939:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + "id": 4134, + "indexExpression": { + "argumentTypes": null, + "id": 4133, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4117, + "src": "31948:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "31939:11:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4127, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "31906:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4129, + "indexExpression": { + "argumentTypes": null, + "id": 4128, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4093, + "src": "31915:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "31906:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4130, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "31906:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + }, + "id": 4131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "31906:32:5", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_payable_$returns$_t_uint256_$", + "typeString": "function (address payable) returns (uint256)" + } + }, + "id": 4135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31906:45:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4136, + "nodeType": "ExpressionStatement", + "src": "31906:45:5" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4120, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4117, + "src": "31872:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4121, + "name": "_issuers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4098, + "src": "31876:8:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[] memory" + } + }, + "id": 4122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "31876:15:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "31872:19:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4138, + "initializationExpression": { + "assignments": [ + 4117 + ], + "declarations": [ + { + "constant": false, + "id": 4117, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 4138, + "src": "31860:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4116, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "31860:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4119, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 4118, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "31869:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "31860:10:5" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 4125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "31893:3:5", + "subExpression": { + "argumentTypes": null, + "id": 4124, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4117, + "src": "31893:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4126, + "nodeType": "ExpressionStatement", + "src": "31893:3:5" + }, + "nodeType": "ForStatement", + "src": "31855:104:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4140, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4093, + "src": "31993:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4141, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4091, + "src": "32004:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4142, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "32013:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4144, + "indexExpression": { + "argumentTypes": null, + "id": 4143, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4093, + "src": "32022:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "32013:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4145, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "issuers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2516, + "src": "32013:27:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", + "typeString": "address payable[] storage ref" + } + ], + "id": 4139, + "name": "BountyIssuersUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4486, + "src": "31972:20:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_payable_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,address payable[] memory)" + } + }, + "id": 4146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31972:69:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4147, + "nodeType": "EmitStatement", + "src": "31967:74:5" + } + ] + }, + "documentation": "@param _issuers the array of addresses to add to the list of valid issuers", + "id": 4149, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 4101, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4091, + "src": "31696:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 4102, + "modifierName": { + "argumentTypes": null, + "id": 4100, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "31682:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "31682:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 4104, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4093, + "src": "31735:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4105, + "modifierName": { + "argumentTypes": null, + "id": 4103, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "31710:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "31710:35:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 4107, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4093, + "src": "31776:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4108, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4095, + "src": "31787:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4109, + "modifierName": { + "argumentTypes": null, + "id": 4106, + "name": "validateIssuerArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2650, + "src": "31751:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "31751:46:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 4111, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4091, + "src": "31814:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4112, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4093, + "src": "31823:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4113, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4095, + "src": "31834:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4114, + "modifierName": { + "argumentTypes": null, + "id": 4110, + "name": "onlyIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "31803:10:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", + "typeString": "modifier (address,uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "31803:41:5" + } + ], + "name": "addIssuers", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4099, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4091, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 4149, + "src": "31566:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4090, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "31566:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4093, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4149, + "src": "31588:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4092, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "31588:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4095, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4149, + "src": "31609:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4094, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "31609:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4098, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 4149, + "src": "31630:33:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4096, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "31630:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4097, + "length": null, + "nodeType": "ArrayTypeName", + "src": "31630:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "31559:105:5" + }, + "returnParameters": { + "id": 4115, + "nodeType": "ParameterList", + "parameters": [], + "src": "31848:0:5" + }, + "scope": 4512, + "src": "31540:507:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4208, + "nodeType": "Block", + "src": "32811:209:5", + "statements": [ + { + "body": { + "id": 4197, + "nodeType": "Block", + "src": "32862:66:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4192, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4158, + "src": "32906:10:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 4194, + "indexExpression": { + "argumentTypes": null, + "id": 4193, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4177, + "src": "32917:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "32906:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4187, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "32871:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4189, + "indexExpression": { + "argumentTypes": null, + "id": 4188, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4153, + "src": "32880:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "32871:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4190, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "approvers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2519, + "src": "32871:29:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + }, + "id": 4191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "32871:34:5", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) returns (uint256)" + } + }, + "id": 4195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32871:49:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4196, + "nodeType": "ExpressionStatement", + "src": "32871:49:5" + } + ] + }, + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4180, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4177, + "src": "32835:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 4181, + "name": "_approvers", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4158, + "src": "32839:10:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[] memory" + } + }, + "id": 4182, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "32839:17:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "32835:21:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4198, + "initializationExpression": { + "assignments": [ + 4177 + ], + "declarations": [ + { + "constant": false, + "id": 4177, + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 4198, + "src": "32823:6:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4176, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "32823:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 4179, + "initialValue": { + "argumentTypes": null, + "hexValue": "30", + "id": 4178, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "32832:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "32823:10:5" + }, + "loopExpression": { + "expression": { + "argumentTypes": null, + "id": 4185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "32858:3:5", + "subExpression": { + "argumentTypes": null, + "id": 4184, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4177, + "src": "32858:1:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4186, + "nodeType": "ExpressionStatement", + "src": "32858:3:5" + }, + "nodeType": "ForStatement", + "src": "32818:110:5" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4200, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4153, + "src": "32964:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4201, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4151, + "src": "32975:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4202, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "32984:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4204, + "indexExpression": { + "argumentTypes": null, + "id": 4203, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4153, + "src": "32993:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "32984:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4205, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "approvers", + "nodeType": "MemberAccess", + "referencedDeclaration": 2519, + "src": "32984:29:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_array$_t_address_$dyn_storage", + "typeString": "address[] storage ref" + } + ], + "id": 4199, + "name": "BountyApproversUpdated", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4495, + "src": "32941:22:5", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", + "typeString": "function (uint256,address,address[] memory)" + } + }, + "id": 4206, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32941:73:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4207, + "nodeType": "EmitStatement", + "src": "32936:78:5" + } + ] + }, + "documentation": "@param _approvers the array of addresses to add to the list of valid approvers", + "id": 4209, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 4161, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4151, + "src": "32659:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 4162, + "modifierName": { + "argumentTypes": null, + "id": 4160, + "name": "senderIsValid", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2805, + "src": "32645:13:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$", + "typeString": "modifier (address)" + } + }, + "nodeType": "ModifierInvocation", + "src": "32645:22:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 4164, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4153, + "src": "32698:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4165, + "modifierName": { + "argumentTypes": null, + "id": 4163, + "name": "validateBountyArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "32673:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "32673:35:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 4167, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4153, + "src": "32739:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4168, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4155, + "src": "32750:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4169, + "modifierName": { + "argumentTypes": null, + "id": 4166, + "name": "validateIssuerArrayIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2650, + "src": "32714:24:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", + "typeString": "modifier (uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "32714:46:5" + }, + { + "arguments": [ + { + "argumentTypes": null, + "id": 4171, + "name": "_sender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4151, + "src": "32777:7:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4172, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4153, + "src": "32786:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 4173, + "name": "_issuerId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4155, + "src": "32797:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 4174, + "modifierName": { + "argumentTypes": null, + "id": 4170, + "name": "onlyIssuer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "32766:10:5", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", + "typeString": "modifier (address,uint256,uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "32766:41:5" + } + ], + "name": "addApprovers", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4159, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4151, + "name": "_sender", + "nodeType": "VariableDeclaration", + "scope": 4209, + "src": "32535:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4150, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32535:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4153, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4209, + "src": "32557:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4152, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "32557:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4155, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4209, + "src": "32578:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4154, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "32578:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4158, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 4209, + "src": "32599:27:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32599:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4157, + "length": null, + "nodeType": "ArrayTypeName", + "src": "32599:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "32528:99:5" + }, + "returnParameters": { + "id": 4175, + "nodeType": "ParameterList", + "parameters": [], + "src": "32811:0:5" + }, + "scope": 4512, + "src": "32507:513:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 4220, + "nodeType": "Block", + "src": "33270:39:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4216, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "33284:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4218, + "indexExpression": { + "argumentTypes": null, + "id": 4217, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4211, + "src": "33293:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33284:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "functionReturnParameters": 4215, + "id": 4219, + "nodeType": "Return", + "src": "33277:26:5" + } + ] + }, + "documentation": "@return Returns a tuple for the bounty", + "id": 4221, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4212, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4211, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4221, + "src": "33198:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4210, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "33198:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "33197:16:5" + }, + "returnParameters": { + "id": 4215, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4214, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4221, + "src": "33252:13:5", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_memory_ptr", + "typeString": "struct StandardBounties.Bounty" + }, + "typeName": { + "contractScope": null, + "id": 4213, + "name": "Bounty", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2536, + "src": "33252:6:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", + "typeString": "struct StandardBounties.Bounty" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "33251:15:5" + }, + "scope": 4512, + "src": "33179:130:5", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 4363, + "nodeType": "Block", + "src": "33409:1101:5", + "statements": [ + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4230, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "33420:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4232, + "indexExpression": { + "argumentTypes": null, + "id": 4231, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "33429:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33420:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4233, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenVersion", + "nodeType": "MemberAccess", + "referencedDeclaration": 2525, + "src": "33420:32:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4234, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "33456:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "33420:37:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4276, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4271, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "33707:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4273, + "indexExpression": { + "argumentTypes": null, + "id": 4272, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "33716:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33707:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4274, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenVersion", + "nodeType": "MemberAccess", + "referencedDeclaration": 2525, + "src": "33707:32:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "3230", + "id": 4275, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "33743:2:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_20_by_1", + "typeString": "int_const 20" + }, + "value": "20" + }, + "src": "33707:38:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4319, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "34043:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4321, + "indexExpression": { + "argumentTypes": null, + "id": 4320, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "34052:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "34043:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4322, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "tokenVersion", + "nodeType": "MemberAccess", + "referencedDeclaration": 2525, + "src": "34043:32:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "hexValue": "373231", + "id": 4323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "34079:3:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_721_by_1", + "typeString": "int_const 721" + }, + "value": "721" + }, + "src": "34043:39:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 4359, + "nodeType": "Block", + "src": "34480:25:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 4356, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10416, + 10417 + ], + "referencedDeclaration": 10416, + "src": "34489:6:5", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 4357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34489:8:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4358, + "nodeType": "ExpressionStatement", + "src": "34489:8:5" + } + ] + }, + "id": 4360, + "nodeType": "IfStatement", + "src": "34039:466:5", + "trueBody": { + "id": 4355, + "nodeType": "Block", + "src": "34083:391:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4326, + "name": "tokenBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2561, + "src": "34100:13:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => bool))" + } + }, + "id": 4328, + "indexExpression": { + "argumentTypes": null, + "id": 4327, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "34114:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "34100:24:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 4330, + "indexExpression": { + "argumentTypes": null, + "id": 4329, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4227, + "src": "34125:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "34100:33:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4325, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "34092:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34092:42:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4332, + "nodeType": "ExpressionStatement", + "src": "34092:42:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 4339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4333, + "name": "tokenBalances", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2561, + "src": "34145:13:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", + "typeString": "mapping(uint256 => mapping(uint256 => bool))" + } + }, + "id": 4336, + "indexExpression": { + "argumentTypes": null, + "id": 4334, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "34159:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "34145:24:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", + "typeString": "mapping(uint256 => bool)" + } + }, + "id": 4337, + "indexExpression": { + "argumentTypes": null, + "id": 4335, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4227, + "src": "34170:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "34145:33:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 4338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "34181:5:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "34145:41:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 4340, + "nodeType": "ExpressionStatement", + "src": "34145:41:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4349, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10465, + "src": "34318:4:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_StandardBounties_$4512", + "typeString": "contract StandardBounties" + } + ], + "id": 4348, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34310:7:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 4350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34310:13:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 4351, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4225, + "src": "34389:3:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 4352, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4227, + "src": "34458:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4342, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "34270:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4344, + "indexExpression": { + "argumentTypes": null, + "id": 4343, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "34279:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "34270:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4345, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 2523, + "src": "34270:25:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4341, + "name": "ERC721BasicToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5764, + "src": "34253:16:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721BasicToken_$5764_$", + "typeString": "type(contract ERC721BasicToken)" + } + }, + "id": 4346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34253:43:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", + "typeString": "contract ERC721BasicToken" + } + }, + "id": 4347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transferFrom", + "nodeType": "MemberAccess", + "referencedDeclaration": 5485, + "src": "34253:56:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256) external" + } + }, + "id": 4353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34253:213:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4354, + "nodeType": "ExpressionStatement", + "src": "34253:213:5" + } + ] + } + }, + "id": 4361, + "nodeType": "IfStatement", + "src": "33703:802:5", + "trueBody": { + "id": 4318, + "nodeType": "Block", + "src": "33746:287:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4278, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4227, + "src": "33763:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4279, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "33773:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "33763:11:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4277, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "33755:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33755:20:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4282, + "nodeType": "ExpressionStatement", + "src": "33755:20:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4289, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4284, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "33825:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4286, + "indexExpression": { + "argumentTypes": null, + "id": 4285, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "33834:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33825:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4287, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "33825:27:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4288, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4227, + "src": "33856:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "33825:38:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4283, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "33817:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4290, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33817:47:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4291, + "nodeType": "ExpressionStatement", + "src": "33817:47:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 4303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4292, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "33875:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4294, + "indexExpression": { + "argumentTypes": null, + "id": 4293, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "33884:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33875:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4295, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "33875:27:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4301, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4227, + "src": "33937:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4296, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "33905:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4298, + "indexExpression": { + "argumentTypes": null, + "id": 4297, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "33914:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33905:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4299, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "33905:27:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "33905:31:5", + "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": 4302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33905:40:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "33875:70:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4304, + "nodeType": "ExpressionStatement", + "src": "33875:70:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4313, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4225, + "src": "34011:3:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 4314, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4227, + "src": "34016:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4307, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "33975:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4309, + "indexExpression": { + "argumentTypes": null, + "id": 4308, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "33984:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33975:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4310, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "token", + "nodeType": "MemberAccess", + "referencedDeclaration": 2523, + "src": "33975:25:5", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 4306, + "name": "ERC20Token", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4989, + "src": "33964:10:5", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC20Token_$4989_$", + "typeString": "type(contract ERC20Token)" + } + }, + "id": 4311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33964:37:5", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20Token_$4989", + "typeString": "contract ERC20Token" + } + }, + "id": 4312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 4858, + "src": "33964:46:5", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) external returns (bool)" + } + }, + "id": 4315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33964:60:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4305, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "33956:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4316, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33956:69:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4317, + "nodeType": "ExpressionStatement", + "src": "33956:69:5" + } + ] + } + }, + "id": 4362, + "nodeType": "IfStatement", + "src": "33416:1089:5", + "trueBody": { + "id": 4270, + "nodeType": "Block", + "src": "33458:239:5", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 4237, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4227, + "src": "33475:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 4238, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "33485:1:5", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "33475:11:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4236, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "33467:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33467:20:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4241, + "nodeType": "ExpressionStatement", + "src": "33467:20:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 4248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4243, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "33537:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4245, + "indexExpression": { + "argumentTypes": null, + "id": 4244, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "33546:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33537:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4246, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "33537:27:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "argumentTypes": null, + "id": 4247, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4227, + "src": "33568:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "33537:38:5", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 4242, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "33529:7:5", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 4249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33529:47:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4250, + "nodeType": "ExpressionStatement", + "src": "33529:47:5" + }, + { + "expression": { + "argumentTypes": null, + "id": 4262, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4251, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "33587:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4253, + "indexExpression": { + "argumentTypes": null, + "id": 4252, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "33596:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33587:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4254, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "33587:27:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4260, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4227, + "src": "33649:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 4255, + "name": "bounties", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2555, + "src": "33617:8:5", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", + "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" + } + }, + "id": 4257, + "indexExpression": { + "argumentTypes": null, + "id": 4256, + "name": "_bountyId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4223, + "src": "33626:9:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "33617:19:5", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bounty_$2536_storage", + "typeString": "struct StandardBounties.Bounty storage ref" + } + }, + "id": 4258, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "referencedDeclaration": 2527, + "src": "33617:27:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "33617:31:5", + "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": 4261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33617:40:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "33587:70:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4263, + "nodeType": "ExpressionStatement", + "src": "33587:70:5" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 4267, + "name": "_amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4227, + "src": "33681:7:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 4264, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4225, + "src": "33668:3:5", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "33668:12:5", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 4268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33668:21:5", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 4269, + "nodeType": "ExpressionStatement", + "src": "33668:21:5" + } + ] + } + } + ] + }, + "documentation": null, + "id": 4364, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferTokens", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4228, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4223, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4364, + "src": "33341:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4222, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "33341:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4225, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 4364, + "src": "33357:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 4224, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33357:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4227, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 4364, + "src": "33378:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4226, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "33378:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "33340:51:5" + }, + "returnParameters": { + "id": 4229, + "nodeType": "ParameterList", + "parameters": [], + "src": "33409:0:5" + }, + "scope": 4512, + "src": "33317:1193:5", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "anonymous": false, + "documentation": null, + "id": 4384, + "name": "BountyIssued", + "nodeType": "EventDefinition", + "parameters": { + "id": 4383, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4366, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4384, + "src": "34563:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4365, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "34563:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4368, + "indexed": false, + "name": "_creator", + "nodeType": "VariableDeclaration", + "scope": 4384, + "src": "34579:24:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 4367, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "34579:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4371, + "indexed": false, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 4384, + "src": "34605:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4369, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "34605:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4370, + "length": null, + "nodeType": "ArrayTypeName", + "src": "34605:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4374, + "indexed": false, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 4384, + "src": "34633:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4372, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "34633:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4373, + "length": null, + "nodeType": "ArrayTypeName", + "src": "34633:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4376, + "indexed": false, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4384, + "src": "34655:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4375, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "34655:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4378, + "indexed": false, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 4384, + "src": "34669:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4377, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "34669:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4380, + "indexed": false, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 4384, + "src": "34685:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4379, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "34685:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4382, + "indexed": false, + "name": "_tokenVersion", + "nodeType": "VariableDeclaration", + "scope": 4384, + "src": "34701:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4381, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "34701:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "34562:158:5" + }, + "src": "34544:177:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4394, + "name": "ContributionAdded", + "nodeType": "EventDefinition", + "parameters": { + "id": 4393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4386, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4394, + "src": "34749:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4385, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "34749:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4388, + "indexed": false, + "name": "_contributionId", + "nodeType": "VariableDeclaration", + "scope": 4394, + "src": "34765:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4387, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "34765:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4390, + "indexed": false, + "name": "_contributor", + "nodeType": "VariableDeclaration", + "scope": 4394, + "src": "34787:28:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 4389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "34787:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4392, + "indexed": false, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 4394, + "src": "34817:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4391, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "34817:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "34748:82:5" + }, + "src": "34725:106:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4400, + "name": "ContributionRefunded", + "nodeType": "EventDefinition", + "parameters": { + "id": 4399, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4396, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4400, + "src": "34862:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4395, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "34862:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4398, + "indexed": false, + "name": "_contributionId", + "nodeType": "VariableDeclaration", + "scope": 4400, + "src": "34878:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4397, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "34878:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "34861:38:5" + }, + "src": "34835:65:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4409, + "name": "ContributionsRefunded", + "nodeType": "EventDefinition", + "parameters": { + "id": 4408, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4402, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4409, + "src": "34932:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4401, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "34932:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4404, + "indexed": false, + "name": "_issuer", + "nodeType": "VariableDeclaration", + "scope": 4409, + "src": "34948:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4403, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "34948:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4407, + "indexed": false, + "name": "_contributionIds", + "nodeType": "VariableDeclaration", + "scope": 4409, + "src": "34965:23:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4405, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "34965:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4406, + "length": null, + "nodeType": "ArrayTypeName", + "src": "34965:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "34931:58:5" + }, + "src": "34904:86:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4418, + "name": "BountyDrained", + "nodeType": "EventDefinition", + "parameters": { + "id": 4417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4411, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4418, + "src": "35014:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4410, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35014:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4413, + "indexed": false, + "name": "_issuer", + "nodeType": "VariableDeclaration", + "scope": 4418, + "src": "35030:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4412, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35030:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4416, + "indexed": false, + "name": "_amounts", + "nodeType": "VariableDeclaration", + "scope": 4418, + "src": "35047:15:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4414, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35047:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4415, + "length": null, + "nodeType": "ArrayTypeName", + "src": "35047:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "35013:50:5" + }, + "src": "34994:70:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4426, + "name": "ActionPerformed", + "nodeType": "EventDefinition", + "parameters": { + "id": 4425, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4420, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4426, + "src": "35090:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4419, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35090:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4422, + "indexed": false, + "name": "_fulfiller", + "nodeType": "VariableDeclaration", + "scope": 4426, + "src": "35106:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4421, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35106:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4424, + "indexed": false, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4426, + "src": "35126:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4423, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "35126:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "35089:50:5" + }, + "src": "35068:72:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4439, + "name": "BountyFulfilled", + "nodeType": "EventDefinition", + "parameters": { + "id": 4438, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4428, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4439, + "src": "35166:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4427, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35166:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4430, + "indexed": false, + "name": "_fulfillmentId", + "nodeType": "VariableDeclaration", + "scope": 4439, + "src": "35182:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4429, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35182:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4433, + "indexed": false, + "name": "_fulfillers", + "nodeType": "VariableDeclaration", + "scope": 4439, + "src": "35203:29:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4431, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35203:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4432, + "length": null, + "nodeType": "ArrayTypeName", + "src": "35203:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4435, + "indexed": false, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4439, + "src": "35234:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4434, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "35234:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4437, + "indexed": false, + "name": "_submitter", + "nodeType": "VariableDeclaration", + "scope": 4439, + "src": "35248:18:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4436, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35248:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "35165:102:5" + }, + "src": "35144:124:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4450, + "name": "FulfillmentUpdated", + "nodeType": "EventDefinition", + "parameters": { + "id": 4449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4441, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4450, + "src": "35297:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4440, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35297:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4443, + "indexed": false, + "name": "_fulfillmentId", + "nodeType": "VariableDeclaration", + "scope": 4450, + "src": "35313:19:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4442, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35313:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4446, + "indexed": false, + "name": "_fulfillers", + "nodeType": "VariableDeclaration", + "scope": 4450, + "src": "35334:29:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4444, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35334:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4445, + "length": null, + "nodeType": "ArrayTypeName", + "src": "35334:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4448, + "indexed": false, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4450, + "src": "35365:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4447, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "35365:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "35296:82:5" + }, + "src": "35272:107:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4461, + "name": "FulfillmentAccepted", + "nodeType": "EventDefinition", + "parameters": { + "id": 4460, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4452, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4461, + "src": "35409:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4451, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35409:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4454, + "indexed": false, + "name": "_fulfillmentId", + "nodeType": "VariableDeclaration", + "scope": 4461, + "src": "35425:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4453, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35425:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4456, + "indexed": false, + "name": "_approver", + "nodeType": "VariableDeclaration", + "scope": 4461, + "src": "35447:17:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4455, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35447:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4459, + "indexed": false, + "name": "_tokenAmounts", + "nodeType": "VariableDeclaration", + "scope": 4461, + "src": "35466:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4457, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35466:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4458, + "length": null, + "nodeType": "ArrayTypeName", + "src": "35466:6:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "35408:79:5" + }, + "src": "35383:105:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4477, + "name": "BountyChanged", + "nodeType": "EventDefinition", + "parameters": { + "id": 4476, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4463, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4477, + "src": "35512:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4462, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35512:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4465, + "indexed": false, + "name": "_changer", + "nodeType": "VariableDeclaration", + "scope": 4477, + "src": "35528:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35528:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4468, + "indexed": false, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 4477, + "src": "35546:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4466, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35546:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4467, + "length": null, + "nodeType": "ArrayTypeName", + "src": "35546:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4471, + "indexed": false, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 4477, + "src": "35574:28:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4469, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35574:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4470, + "length": null, + "nodeType": "ArrayTypeName", + "src": "35574:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4473, + "indexed": false, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4477, + "src": "35604:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4472, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "35604:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4475, + "indexed": false, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 4477, + "src": "35618:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4474, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35618:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "35511:122:5" + }, + "src": "35492:142:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4486, + "name": "BountyIssuersUpdated", + "nodeType": "EventDefinition", + "parameters": { + "id": 4485, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4479, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4486, + "src": "35665:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4478, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35665:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4481, + "indexed": false, + "name": "_changer", + "nodeType": "VariableDeclaration", + "scope": 4486, + "src": "35681:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4480, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35681:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4484, + "indexed": false, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 4486, + "src": "35699:26:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4482, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35699:15:5", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4483, + "length": null, + "nodeType": "ArrayTypeName", + "src": "35699:17:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "35664:62:5" + }, + "src": "35638:89:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4495, + "name": "BountyApproversUpdated", + "nodeType": "EventDefinition", + "parameters": { + "id": 4494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4488, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4495, + "src": "35760:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4487, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35760:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4490, + "indexed": false, + "name": "_changer", + "nodeType": "VariableDeclaration", + "scope": 4495, + "src": "35776:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4489, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35776:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4493, + "indexed": false, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 4495, + "src": "35794:20:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4491, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35794:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4492, + "length": null, + "nodeType": "ArrayTypeName", + "src": "35794:9:5", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "35759:56:5" + }, + "src": "35731:85:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4503, + "name": "BountyDataChanged", + "nodeType": "EventDefinition", + "parameters": { + "id": 4502, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4497, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4503, + "src": "35844:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4496, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35844:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4499, + "indexed": false, + "name": "_changer", + "nodeType": "VariableDeclaration", + "scope": 4503, + "src": "35860:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4498, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35860:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4501, + "indexed": false, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4503, + "src": "35878:12:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4500, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "35878:6:5", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "35843:48:5" + }, + "src": "35820:72:5" + }, + { + "anonymous": false, + "documentation": null, + "id": 4511, + "name": "BountyDeadlineChanged", + "nodeType": "EventDefinition", + "parameters": { + "id": 4510, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4505, + "indexed": false, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4511, + "src": "35924:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4504, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35924:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4507, + "indexed": false, + "name": "_changer", + "nodeType": "VariableDeclaration", + "scope": 4511, + "src": "35940:16:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "35940:7:5", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4509, + "indexed": false, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 4511, + "src": "35958:14:5", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4508, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "35958:4:5", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "35923:50:5" + }, + "src": "35896:78:5" + } + ], + "scope": 4513, + "src": "539:35438:5" + } + ], + "src": "0:35979:5" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": { + "10": { + "events": { + "0xeea6c8039af43860e84bc876245a0d129d92b942390135da1051b219149c100e": { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_creator", + "type": "address" + }, + { + "indexed": false, + "name": "_issuers", + "type": "address[]" + }, + { + "indexed": false, + "name": "_approvers", + "type": "address[]" + }, + { + "indexed": false, + "name": "_data", + "type": "string" + }, + { + "indexed": false, + "name": "_deadline", + "type": "uint256" + }, + { + "indexed": false, + "name": "_token", + "type": "address" + }, + { + "indexed": false, + "name": "_tokenVersion", + "type": "uint256" + } + ], + "name": "BountyIssued", + "type": "event" + }, + "0x7431e5e30247dcb2379eab9b0e60e49038c5ddb5cac27f27a17e950c0220a693": { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_contributionId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_contributor", + "type": "address" + }, + { + "indexed": false, + "name": "_amount", + "type": "uint256" + } + ], + "name": "ContributionAdded", + "type": "event" + }, + "0xfb1da5cbf027ad18b7c1f786bf81e9920cc0db09d7e299a8e4f3dbb64ce32f01": { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_contributionId", + "type": "uint256" + } + ], + "name": "ContributionRefunded", + "type": "event" + }, + "0xc55c552370ad68c2faed667a8224a8ab373e39368872484a40619b1e884336de": { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_issuer", + "type": "address" + }, + { + "indexed": false, + "name": "_contributionIds", + "type": "uint256[]" + } + ], + "name": "ContributionsRefunded", + "type": "event" + }, + "0xc9db45671da2b4994b84d56a8832d4e0bcc3722230dffce39df6886f9ec2d7d6": { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_issuer", + "type": "address" + }, + { + "indexed": false, + "name": "_amounts", + "type": "uint256[]" + } + ], + "name": "BountyDrained", + "type": "event" + }, + "0xd54885079d7edd9bea77e3f09e83bd65a121db3d3a14892227e0d2cffe73970f": { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_fulfiller", + "type": "address" + }, + { + "indexed": false, + "name": "_data", + "type": "string" + } + ], + "name": "ActionPerformed", + "type": "event" + }, + "0xb9fb09db36801e95ddbb658a96b7ecf81b9b7e105e4a82d8887b1e7eadd45b84": { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_fulfillmentId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_fulfillers", + "type": "address[]" + }, + { + "indexed": false, + "name": "_data", + "type": "string" + }, + { + "indexed": false, + "name": "_submitter", + "type": "address" + } + ], + "name": "BountyFulfilled", + "type": "event" + }, + "0xde0d52ad68b0a792924de426fb3a2f2c1ce908be531894e35d85e533fbb8ec16": { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_fulfillmentId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_fulfillers", + "type": "address[]" + }, + { + "indexed": false, + "name": "_data", + "type": "string" + } + ], + "name": "FulfillmentUpdated", + "type": "event" + }, + "0x4d54a229a804a61c5213bec479b1407ce270c57b24fd8299d6ea98b6b2ab0520": { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_fulfillmentId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_approver", + "type": "address" + }, + { + "indexed": false, + "name": "_tokenAmounts", + "type": "uint256[]" + } + ], + "name": "FulfillmentAccepted", + "type": "event" + }, + "0x588a0d2c7e36ab3050cd6b8b12441530ae5407613e9f2a62dc10bc43a302ed9c": { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_changer", + "type": "address" + }, + { + "indexed": false, + "name": "_issuers", + "type": "address[]" + }, + { + "indexed": false, + "name": "_approvers", + "type": "address[]" + }, + { + "indexed": false, + "name": "_data", + "type": "string" + }, + { + "indexed": false, + "name": "_deadline", + "type": "uint256" + } + ], + "name": "BountyChanged", + "type": "event" + }, + "0xc969620b1b90646a0d597289d87dcf90d4cc4e554bddf0c003dfc05954a6d359": { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_changer", + "type": "address" + }, + { + "indexed": false, + "name": "_issuers", + "type": "address[]" + } + ], + "name": "BountyIssuersUpdated", + "type": "event" + }, + "0x43a4e4542993b08827123085341d156186f40b28b6343f301c246a1d5f49d9f7": { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_changer", + "type": "address" + }, + { + "indexed": false, + "name": "_approvers", + "type": "address[]" + } + ], + "name": "BountyApproversUpdated", + "type": "event" + }, + "0xdc41a74d84036920901cf73075fc7f917d75b1f5dbd7955c12f9203336247233": { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_changer", + "type": "address" + }, + { + "indexed": false, + "name": "_data", + "type": "string" + } + ], + "name": "BountyDataChanged", + "type": "event" + }, + "0x946e60a77ecf689f0595d6dcd6cf1537564a1d82472a69a3be00f7e8cb6f8b7d": { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "_bountyId", + "type": "uint256" + }, + { + "indexed": false, + "name": "_changer", + "type": "address" + }, + { + "indexed": false, + "name": "_deadline", + "type": "uint256" + } + ], + "name": "BountyDeadlineChanged", + "type": "event" + } + }, + "links": {}, + "address": "0x4d2dF7C984A72b3F0EB133C9FEf6D45d46280EC2", + "transactionHash": "0x5900d3a7dbfc0028306350f46fe603cb0ea4f3a0b78d5afc9564d78704ea23ad" + } + }, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:31.074Z", + "networkType": "ethereum", + "devdoc": { + "author": "Mark Beylifn , Gonçalo Sá , Kevin Owocki , Ricardo Guilherme Schmidt (@3esmit), Matt Garnett , Craig Williams ", + "methods": { + "addApprovers(address,uint256,uint256,address[])": { + "params": { + "_approvers": "the array of addresses to add to the list of valid approvers" + } + }, + "addIssuers(address,uint256,uint256,address[])": { + "params": { + "_issuers": "the array of addresses to add to the list of valid issuers" + } + }, + "changeApprover(address,uint256,uint256,uint256,address)": { + "params": { + "_approver": "the address of the new approver" + } + }, + "changeBounty(address,uint256,uint256,address[],address[],string,uint256)": { + "params": { + "_deadline": "the new timestamp which will become the deadline of the bounty" + } + }, + "changeData(address,uint256,uint256,string)": { + "params": { + "_data": "the new IPFS hash representing the JSON object storing the details of the bounty (see docs for schema details)" + } + }, + "changeDeadline(address,uint256,uint256,uint256)": { + "params": { + "_deadline": "the new timestamp which will become the deadline of the bounty" + } + }, + "changeIssuer(address,uint256,uint256,uint256,address)": { + "params": { + "_newIssuer": "the address of the new issuer" + } + }, + "changeIssuerAndApprover(address,uint256,uint256,uint256,uint256,address)": { + "params": { + "_issuer": "the address of the new approver" + } + }, + "contribute(address,uint256,uint256)": { + "params": { + "_amount": "the amount of tokens being contributed" + } + }, + "drainBounty(address,uint256,uint256,uint256[])": { + "params": { + "_amounts": "an array of amounts of tokens to be sent. The length of the array should be 1 if the bounty is in ETH or ERC20 tokens. If it's an ERC721 bounty, the array should be the list of tokenIDs." + } + }, + "fulfillBounty(address,uint256,address[],string)": { + "params": { + "_data": "the IPFS hash corresponding to a JSON object which contains the details of the submission (see docs for schema details)" + } + }, + "getBounty(uint256)": { + "return": "Returns a tuple for the bounty" + }, + "issueAndContribute(address,address[],address[],string,uint256,address,uint256,uint256)": { + "params": { + "_depositAmount": "the amount of tokens being deposited to the bounty, which will create a new contribution to the bounty" + } + }, + "issueBounty(address,address[],address[],string,uint256,address,uint256)": { + "params": { + "_tokenVersion": "the version of the token being used for the bounty (0 for ETH, 20 for ERC20, 721 for ERC721)" + } + }, + "performAction(address,uint256,string)": { + "params": { + "_data": "the IPFS hash corresponding to a JSON object which contains the details of the action being performed (see docs for schema details)" + } + }, + "refundContribution(address,uint256,uint256)": { + "params": { + "_contributionId": "the index of the contribution being refunded" + } + }, + "refundContributions(address,uint256,uint256,uint256[])": { + "params": { + "_contributionIds": "the array of indexes of the contributions being refunded" + } + }, + "refundMyContributions(address,uint256,uint256[])": { + "params": { + "_contributionIds": "the array of indexes of the contributions being refunded" + } + }, + "setMetaTxRelayer(address)": { + "params": { + "_relayer": "the address of the relayer" + } + }, + "updateFulfillment(address,uint256,uint256,address[],string)": { + "params": { + "_data": "the new IPFS hash corresponding to a JSON object which contains the details of the submission (see docs for schema details)" + } + } + } + }, + "userdoc": { + "methods": { + "acceptFulfillment(address,uint256,uint256,uint256,uint256[])": { + "notice": "being sent to each of the individual fulfillers" + }, + "fulfillAndAccept(address,uint256,address[],string,uint256,uint256[])": { + "notice": "being sent to each of the individual fulfillers" + } + } + } +} \ No newline at end of file diff --git a/src/contracts/Submitter.json b/src/contracts/Submitter.json new file mode 100644 index 0000000..03017e8 --- /dev/null +++ b/src/contracts/Submitter.json @@ -0,0 +1,1678 @@ +{ + "contractName": "Submitter", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "moloch", + "outputs": [ + { + "name": "", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "molochAddress", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "name": "proposalId", + "type": "uint256" + } + ], + "name": "Submit", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "applicant", + "type": "address" + }, + { + "name": "sharesRequested", + "type": "uint256" + }, + { + "name": "lootRequested", + "type": "uint256" + }, + { + "name": "tributeOffered", + "type": "uint256" + }, + { + "name": "tributeToken", + "type": "address" + }, + { + "name": "paymentRequested", + "type": "uint256" + }, + { + "name": "paymentToken", + "type": "address" + }, + { + "name": "details", + "type": "string" + } + ], + "name": "submitProposal", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"applicant\",\"type\":\"address\"},{\"name\":\"sharesRequested\",\"type\":\"uint256\"},{\"name\":\"lootRequested\",\"type\":\"uint256\"},{\"name\":\"tributeOffered\",\"type\":\"uint256\"},{\"name\":\"tributeToken\",\"type\":\"address\"},{\"name\":\"paymentRequested\",\"type\":\"uint256\"},{\"name\":\"paymentToken\",\"type\":\"address\"},{\"name\":\"details\",\"type\":\"string\"}],\"name\":\"submitProposal\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"moloch\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"molochAddress\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"Submit\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/test-helpers/Submitter.sol\":\"Submitter\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol\":{\"keccak256\":\"0xa8ace5b5ac3322c9019470d2a1ad1342ef5d984da3d4818554e703b65ceda667\",\"urls\":[\"bzzr://b38168eab9d05f21a7576958f33878d9d31877a12f1f14bda390f3f4fbdaa2a4\",\"dweb:/ipfs/QmWa9cX9gzUkyM9yVwfhd6FsSeh1jpV62sBzdGJm6jRPRX\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Moloch.sol\":{\"keccak256\":\"0x513f84a2202580d2febaa6ee6322d9e93fee98f8c0ad5b98892a73687d49a0df\",\"urls\":[\"bzzr://ab0c63e6894e94dc4f8d0560000d3be9e20b87081af342d666fb5229d5bccd98\",\"dweb:/ipfs/QmYXkCZAMiX3UG4sKAp7Ro3nvKBKBANbRNWRn8JkWH3Pdc\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol\":{\"keccak256\":\"0x8d08add2e57d2885eb9cda96d2ce54056015247de9adfea8e13c78bb2d9233f2\",\"urls\":[\"bzzr://24804e36486f935a9e98bf507193d1b160db755edba6c9d124a894aef3741ada\",\"dweb:/ipfs/QmauQVeYbGgqJDNxKAceFj1hFD1gfCfAXNBA8vCh3aGYKA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/test-helpers/Submitter.sol\":{\"keccak256\":\"0xc77855263a3e4d4574bc2c7334c323dc28ce1a438d0ffc37b54cf5710b0dcef7\",\"urls\":[\"bzzr://48b5abfb004016f23f11c9f727cdff7968256295cd7d03ac24e9bf2abec7a78d\",\"dweb:/ipfs/QmZ5A7g2o2w4AVuZU4HquaefaRtUN17rrxyTy1pQK8zQiR\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b506040516103843803806103848339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b031990921691909117905561031f806100656000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063590f940b1461003b578063623d9ac91461011d575b600080fd5b61011b600480360361010081101561005257600080fd5b6001600160a01b038235811692602081013592604082013592606083013592608081013582169260a08201359260c0830135169190810190610100810160e08201356401000000008111156100a657600080fd5b8201836020820111156100b857600080fd5b803590602001918460018302840111640100000000831117156100da57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610141945050505050565b005b6101256102db565b604080516001600160a01b039092168252519081900360200190f35b60008060009054906101000a90046001600160a01b03166001600160a01b031663590f940b8a8a8a8a8a8a8a8a6040518963ffffffff1660e01b815260040180896001600160a01b03166001600160a01b03168152602001888152602001878152602001868152602001856001600160a01b03166001600160a01b03168152602001848152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561021a578181015183820152602001610202565b50505050905090810190601f1680156102475780820380516001836020036101000a031916815260200191505b509950505050505050505050602060405180830381600087803b15801561026d57600080fd5b505af1158015610281573d6000803e3d6000fd5b505050506040513d602081101561029757600080fd5b50516040805182815290519192507f08324b3d745b914e3abd4ffbfead91e3b78391a98c173202129215ab933adfbe919081900360200190a1505050505050505050565b6000546001600160a01b03168156fea265627a7a723058202e11ecbb3ce8c19d008ca616d8c38560668e81d3a1f73caba9b39e100af2046b64736f6c63430005090032", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063590f940b1461003b578063623d9ac91461011d575b600080fd5b61011b600480360361010081101561005257600080fd5b6001600160a01b038235811692602081013592604082013592606083013592608081013582169260a08201359260c0830135169190810190610100810160e08201356401000000008111156100a657600080fd5b8201836020820111156100b857600080fd5b803590602001918460018302840111640100000000831117156100da57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610141945050505050565b005b6101256102db565b604080516001600160a01b039092168252519081900360200190f35b60008060009054906101000a90046001600160a01b03166001600160a01b031663590f940b8a8a8a8a8a8a8a8a6040518963ffffffff1660e01b815260040180896001600160a01b03166001600160a01b03168152602001888152602001878152602001868152602001856001600160a01b03166001600160a01b03168152602001848152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561021a578181015183820152602001610202565b50505050905090810190601f1680156102475780820380516001836020036101000a031916815260200191505b509950505050505050505050602060405180830381600087803b15801561026d57600080fd5b505af1158015610281573d6000803e3d6000fd5b505050506040513d602081101561029757600080fd5b50516040805182815290519192507f08324b3d745b914e3abd4ffbfead91e3b78391a98c173202129215ab933adfbe919081900360200190a1505050505050505050565b6000546001600160a01b03168156fea265627a7a723058202e11ecbb3ce8c19d008ca616d8c38560668e81d3a1f73caba9b39e100af2046b64736f6c63430005090032", + "sourceMap": "123:1299:23:-;;;244:85;8:9:-1;5:2;;;30:1;27;20:12;5:2;244:85:23;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;244:85:23;293:6;:30;;-1:-1:-1;;;;;293:30:23;;;-1:-1:-1;;;;;;293:30:23;;;;;;;;;123:1299;;;;;;", + "deployedSourceMap": "123:1299:23:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;123:1299:23;;;;;;;;;;;;;;;;;;;;;;;;335:524;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;335:524:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;335:524:23;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;335:524:23;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;335:524:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;335:524:23;;-1:-1:-1;335:524:23;;-1:-1:-1;;;;;335:524:23:i;:::-;;188:20;;;:::i;:::-;;;;-1:-1:-1;;;;;188:20:23;;;;;;;;;;;;;;335:524;602:18;623:6;;;;;;;;;-1:-1:-1;;;;;623:6:23;-1:-1:-1;;;;;623:21:23;;653:9;671:15;695:13;717:14;740:12;761:16;786:12;807:7;623:198;;;;;;;;;;;;;-1:-1:-1;;;;;623:198:23;-1:-1:-1;;;;;623:198:23;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;623:198:23;-1:-1:-1;;;;;623:198:23;;;;;;;;;;;-1:-1:-1;;;;;623:198:23;-1:-1:-1;;;;;623:198:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;623:198:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;623:198:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;623:198:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;623:198:23;835:18;;;;;;;;623:198;;-1:-1:-1;835:18:23;;;;;;623:198;835:18;;;335:524;;;;;;;;;:::o;188:20::-;;;-1:-1:-1;;;;;188:20:23;;:::o", + "source": "// helper for testing moloch.submitProposal return value\r\n\r\npragma solidity >=0.5.0 < 0.6.0;\r\n\r\nimport \"../Moloch.sol\";\r\n\r\ncontract Submitter {\r\n\r\n event Submit(uint256 proposalId);\r\n\r\n Moloch public moloch; // moloch contract reference\r\n\r\n constructor(address molochAddress) public {\r\n moloch = Moloch(molochAddress);\r\n }\r\n\r\n function submitProposal(\r\n address applicant,\r\n uint256 sharesRequested,\r\n uint256 lootRequested,\r\n uint256 tributeOffered,\r\n address tributeToken,\r\n uint256 paymentRequested,\r\n address paymentToken,\r\n string memory details\r\n ) public {\r\n uint256 proposalId = moloch.submitProposal(\r\n applicant,\r\n sharesRequested,\r\n lootRequested,\r\n tributeOffered,\r\n tributeToken,\r\n paymentRequested,\r\n paymentToken,\r\n details\r\n );\r\n\r\n emit Submit(proposalId);\r\n }\r\n\r\n // function submitWhitelistProposal(\r\n // address tokenToWhitelist,\r\n // string memory details\r\n // ) public {\r\n // uint256 proposalId = moloch.submitWhitelistProposal(\r\n // tokenToWhitelist,\r\n // details\r\n // );\r\n\r\n // emit Submit(proposalId);\r\n // }\r\n\r\n // function submitGuildKickProposal(\r\n // address memberToKick,\r\n // string memory details\r\n // ) public {\r\n // uint256 proposalId = moloch.submitGuildKickProposal(\r\n // memberToKick,\r\n // details\r\n // );\r\n\r\n // emit Submit(proposalId);\r\n // }\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\test-helpers\\Submitter.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/test-helpers/Submitter.sol", + "exportedSymbols": { + "Submitter": [ + 9917 + ] + }, + "id": 9918, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9859, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "60:32:23" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Moloch.sol", + "file": "../Moloch.sol", + "id": 9860, + "nodeType": "ImportDirective", + "scope": 9918, + "sourceUnit": 9116, + "src": "96:23:23", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 9917, + "linearizedBaseContracts": [ + 9917 + ], + "name": "Submitter", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 9864, + "name": "Submit", + "nodeType": "EventDefinition", + "parameters": { + "id": 9863, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9862, + "indexed": false, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 9864, + "src": "162:18:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "162:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "161:20:23" + }, + "src": "149:33:23" + }, + { + "constant": false, + "id": 9866, + "name": "moloch", + "nodeType": "VariableDeclaration", + "scope": 9917, + "src": "188:20:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + }, + "typeName": { + "contractScope": null, + "id": 9865, + "name": "Moloch", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9115, + "src": "188:6:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 9877, + "nodeType": "Block", + "src": "286:43:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9871, + "name": "moloch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9866, + "src": "293:6:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9873, + "name": "molochAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9868, + "src": "309:13:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9872, + "name": "Moloch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9115, + "src": "302:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Moloch_$9115_$", + "typeString": "type(contract Moloch)" + } + }, + "id": 9874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "302:21:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + }, + "src": "293:30:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + }, + "id": 9876, + "nodeType": "ExpressionStatement", + "src": "293:30:23" + } + ] + }, + "documentation": null, + "id": 9878, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9869, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9868, + "name": "molochAddress", + "nodeType": "VariableDeclaration", + "scope": 9878, + "src": "256:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9867, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "256:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "255:23:23" + }, + "returnParameters": { + "id": 9870, + "nodeType": "ParameterList", + "parameters": [], + "src": "286:0:23" + }, + "scope": 9917, + "src": "244:85:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9915, + "nodeType": "Block", + "src": "595:264:23", + "statements": [ + { + "assignments": [ + 9898 + ], + "declarations": [ + { + "constant": false, + "id": 9898, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 9915, + "src": "602:18:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9897, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "602:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9910, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9901, + "name": "applicant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9880, + "src": "653:9:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9902, + "name": "sharesRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9882, + "src": "671:15:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9903, + "name": "lootRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9884, + "src": "695:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9904, + "name": "tributeOffered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9886, + "src": "717:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9905, + "name": "tributeToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9888, + "src": "740:12:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9906, + "name": "paymentRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9890, + "src": "761:16:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9907, + "name": "paymentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9892, + "src": "786:12:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9908, + "name": "details", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9894, + "src": "807:7:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 9899, + "name": "moloch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9866, + "src": "623:6:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + }, + "id": 9900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "submitProposal", + "nodeType": "MemberAccess", + "referencedDeclaration": 8149, + "src": "623:21:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (address,uint256,uint256,uint256,address,uint256,address,string memory) external returns (uint256)" + } + }, + "id": 9909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "623:198:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "602:219:23" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9912, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9898, + "src": "842:10:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9911, + "name": "Submit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9864, + "src": "835:6:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 9913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "835:18:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9914, + "nodeType": "EmitStatement", + "src": "830:23:23" + } + ] + }, + "documentation": null, + "id": 9916, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "submitProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9880, + "name": "applicant", + "nodeType": "VariableDeclaration", + "scope": 9916, + "src": "365:17:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9879, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "365:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9882, + "name": "sharesRequested", + "nodeType": "VariableDeclaration", + "scope": 9916, + "src": "389:23:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9881, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "389:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9884, + "name": "lootRequested", + "nodeType": "VariableDeclaration", + "scope": 9916, + "src": "419:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9883, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "419:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9886, + "name": "tributeOffered", + "nodeType": "VariableDeclaration", + "scope": 9916, + "src": "447:22:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9885, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "447:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9888, + "name": "tributeToken", + "nodeType": "VariableDeclaration", + "scope": 9916, + "src": "476:20:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9887, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "476:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9890, + "name": "paymentRequested", + "nodeType": "VariableDeclaration", + "scope": 9916, + "src": "503:24:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9889, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "503:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9892, + "name": "paymentToken", + "nodeType": "VariableDeclaration", + "scope": 9916, + "src": "534:20:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9891, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "534:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9894, + "name": "details", + "nodeType": "VariableDeclaration", + "scope": 9916, + "src": "561:21:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9893, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "561:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "358:229:23" + }, + "returnParameters": { + "id": 9896, + "nodeType": "ParameterList", + "parameters": [], + "src": "595:0:23" + }, + "scope": 9917, + "src": "335:524:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 9918, + "src": "123:1299:23" + } + ], + "src": "60:1364:23" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/test-helpers/Submitter.sol", + "exportedSymbols": { + "Submitter": [ + 9917 + ] + }, + "id": 9918, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9859, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "60:32:23" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Moloch.sol", + "file": "../Moloch.sol", + "id": 9860, + "nodeType": "ImportDirective", + "scope": 9918, + "sourceUnit": 9116, + "src": "96:23:23", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 9917, + "linearizedBaseContracts": [ + 9917 + ], + "name": "Submitter", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 9864, + "name": "Submit", + "nodeType": "EventDefinition", + "parameters": { + "id": 9863, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9862, + "indexed": false, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 9864, + "src": "162:18:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "162:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "161:20:23" + }, + "src": "149:33:23" + }, + { + "constant": false, + "id": 9866, + "name": "moloch", + "nodeType": "VariableDeclaration", + "scope": 9917, + "src": "188:20:23", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + }, + "typeName": { + "contractScope": null, + "id": 9865, + "name": "Moloch", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9115, + "src": "188:6:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 9877, + "nodeType": "Block", + "src": "286:43:23", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 9875, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 9871, + "name": "moloch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9866, + "src": "293:6:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9873, + "name": "molochAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9868, + "src": "309:13:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 9872, + "name": "Moloch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9115, + "src": "302:6:23", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Moloch_$9115_$", + "typeString": "type(contract Moloch)" + } + }, + "id": 9874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "302:21:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + }, + "src": "293:30:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + }, + "id": 9876, + "nodeType": "ExpressionStatement", + "src": "293:30:23" + } + ] + }, + "documentation": null, + "id": 9878, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9869, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9868, + "name": "molochAddress", + "nodeType": "VariableDeclaration", + "scope": 9878, + "src": "256:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9867, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "256:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "255:23:23" + }, + "returnParameters": { + "id": 9870, + "nodeType": "ParameterList", + "parameters": [], + "src": "286:0:23" + }, + "scope": 9917, + "src": "244:85:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 9915, + "nodeType": "Block", + "src": "595:264:23", + "statements": [ + { + "assignments": [ + 9898 + ], + "declarations": [ + { + "constant": false, + "id": 9898, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 9915, + "src": "602:18:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9897, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "602:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 9910, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9901, + "name": "applicant", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9880, + "src": "653:9:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9902, + "name": "sharesRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9882, + "src": "671:15:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9903, + "name": "lootRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9884, + "src": "695:13:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9904, + "name": "tributeOffered", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9886, + "src": "717:14:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9905, + "name": "tributeToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9888, + "src": "740:12:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9906, + "name": "paymentRequested", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9890, + "src": "761:16:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 9907, + "name": "paymentToken", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9892, + "src": "786:12:23", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 9908, + "name": "details", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9894, + "src": "807:7:23", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "argumentTypes": null, + "id": 9899, + "name": "moloch", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9866, + "src": "623:6:23", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Moloch_$9115", + "typeString": "contract Moloch" + } + }, + "id": 9900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "submitProposal", + "nodeType": "MemberAccess", + "referencedDeclaration": 8149, + "src": "623:21:23", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$_t_uint256_$", + "typeString": "function (address,uint256,uint256,uint256,address,uint256,address,string memory) external returns (uint256)" + } + }, + "id": 9909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "623:198:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "602:219:23" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 9912, + "name": "proposalId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9898, + "src": "842:10:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 9911, + "name": "Submit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9864, + "src": "835:6:23", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 9913, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "835:18:23", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 9914, + "nodeType": "EmitStatement", + "src": "830:23:23" + } + ] + }, + "documentation": null, + "id": 9916, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "submitProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9895, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9880, + "name": "applicant", + "nodeType": "VariableDeclaration", + "scope": 9916, + "src": "365:17:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9879, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "365:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9882, + "name": "sharesRequested", + "nodeType": "VariableDeclaration", + "scope": 9916, + "src": "389:23:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9881, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "389:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9884, + "name": "lootRequested", + "nodeType": "VariableDeclaration", + "scope": 9916, + "src": "419:21:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9883, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "419:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9886, + "name": "tributeOffered", + "nodeType": "VariableDeclaration", + "scope": 9916, + "src": "447:22:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9885, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "447:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9888, + "name": "tributeToken", + "nodeType": "VariableDeclaration", + "scope": 9916, + "src": "476:20:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9887, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "476:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9890, + "name": "paymentRequested", + "nodeType": "VariableDeclaration", + "scope": 9916, + "src": "503:24:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9889, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "503:7:23", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9892, + "name": "paymentToken", + "nodeType": "VariableDeclaration", + "scope": 9916, + "src": "534:20:23", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9891, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "534:7:23", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9894, + "name": "details", + "nodeType": "VariableDeclaration", + "scope": 9916, + "src": "561:21:23", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9893, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "561:6:23", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "358:229:23" + }, + "returnParameters": { + "id": 9896, + "nodeType": "ParameterList", + "parameters": [], + "src": "595:0:23" + }, + "scope": 9917, + "src": "335:524:23", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 9918, + "src": "123:1299:23" + } + ], + "src": "60:1364:23" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:20.253Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/contracts/SupportsInterfaceWithLookup.json b/src/contracts/SupportsInterfaceWithLookup.json new file mode 100644 index 0000000..efb51ab --- /dev/null +++ b/src/contracts/SupportsInterfaceWithLookup.json @@ -0,0 +1,21232 @@ +{ + "contractName": "SupportsInterfaceWithLookup", + "abi": [ + { + "constant": true, + "inputs": [], + "name": "InterfaceId_ERC165", + "outputs": [ + { + "name": "", + "type": "bytes4" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "constant": true, + "inputs": [ + { + "name": "_interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"_interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"InterfaceId_ERC165\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"author\":\"Matt Condon (@shrugs)\\r\",\"details\":\"Implements ERC165 using a lookup table.\\r\",\"methods\":{\"constructor\":{\"details\":\"A contract implementing SupportsInterfaceWithLookup\\r implement ERC165 itself\\r\"},\"supportsInterface(bytes4)\":{\"details\":\"implement supportsInterface(bytes4) using a lookup table\\r\"}},\"title\":\"SupportsInterfaceWithLookup\\r\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":\"SupportsInterfaceWithLookup\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":{\"keccak256\":\"0x4dd046a190602871aa9743a94149789c1e14b14f609c68d0f34d72e19bd690ce\",\"urls\":[\"bzzr://ea591dfb88f3591fe4344b7e665024c5aa3e8fb758a0409db79b1885a996b825\",\"dweb:/ipfs/QmXrwJ2TTXMWHBQxuLCqrj96gfh5HCHK57JsCEcXJ84t6z\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b506100437f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b0361004816565b6100b4565b7fffffffff00000000000000000000000000000000000000000000000000000000808216141561007757600080fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152602081905260409020805460ff19166001179055565b60f1806100c26000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806301ffc9a714603757806319fa8f5014606f575b600080fd5b605b60048036036020811015604b57600080fd5b50356001600160e01b0319166092565b604080519115158252519081900360200190f35b607560b1565b604080516001600160e01b03199092168252519081900360200190f35b6001600160e01b03191660009081526020819052604090205460ff1690565b6301ffc9a760e01b8156fea265627a7a723058208756e5d29fd71fa13b44e82e07fb175852d952aa017fa03ecbc98c77b2d2a1e964736f6c63430005090032", + "deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060325760003560e01c806301ffc9a714603757806319fa8f5014606f575b600080fd5b605b60048036036020811015604b57600080fd5b50356001600160e01b0319166092565b604080519115158252519081900360200190f35b607560b1565b604080516001600160e01b03199092168252519081900360200190f35b6001600160e01b03191660009081526020819052604090205460ff1690565b6301ffc9a760e01b8156fea265627a7a723058208756e5d29fd71fa13b44e82e07fb175852d952aa017fa03ecbc98c77b2d2a1e964736f6c63430005090032", + "sourceMap": "3156:1008:8:-;;;3609:80;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3645:38:8;3664:18;-1:-1:-1;;;;;3645:18:8;:38;:::i;:::-;3156:1008;;4000:161;4081:26;;;;;;4073:35;;;;;;4115:33;;:19;:33;;;;;;;;;;:40;;-1:-1:-1;;4115:40:8;4151:4;4115:40;;;4000:161::o;3156:1008::-;;;;;;;", + "deployedSourceMap": "3156:1008:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3156:1008:8;;;;;;;;;;;;;;;;;;;;;;;;3777:148;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3777:148:8;-1:-1:-1;;;;;;3777:148:8;;:::i;:::-;;;;;;;;;;;;;;;;;;3208:54;;;:::i;:::-;;;;-1:-1:-1;;;;;;3208:54:8;;;;;;;;;;;;;;3777:148;-1:-1:-1;;;;;;3886:33:8;3863:4;3886:33;;;;;;;;;;;;;;3777:148::o;3208:54::-;-1:-1:-1;;;3208:54:8;:::o", + "source": "pragma solidity >=0.5.0 < 0.6.0;\r\nimport '../../dao/oz/SafeMath.sol';\r\n\r\n/**\r\n * @title SafeMath\r\n * @dev Math operations with safety checks that throw on error\r\n */\r\n//library SafeMath {\r\n//\r\n// /**\r\n// * @dev Multiplies two numbers, throws on overflow.\r\n// */\r\n// function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// // Gas optimization: this is cheaper than asserting 'a' not being zero, but the\r\n// // benefit is lost if 'b' is also tested.\r\n// // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\r\n// if (a == 0) {\r\n// return 0;\r\n// }\r\n//\r\n// c = a * b;\r\n// assert(c / a == b);\r\n// return c;\r\n// }\r\n//\r\n// /**\r\n// * @dev Integer division of two numbers, truncating the quotient.\r\n// */\r\n// function div(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// // assert(b > 0); // Solidity automatically throws when dividing by 0\r\n// // uint256 c = a / b;\r\n// // assert(a == b * c + a % b); // There is no case in which this doesn't hold\r\n// return a / b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).\r\n// */\r\n// function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// assert(b <= a);\r\n// return a - b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Adds two numbers, throws on overflow.\r\n// */\r\n// function add(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// c = a + b;\r\n// assert(c >= a);\r\n// return c;\r\n// }\r\n//}\r\n\r\n/**\r\n * Utility library of inline functions on addresses\r\n */\r\nlibrary AddressUtils {\r\n\r\n /**\r\n * Returns whether the target address is a contract\r\n * @dev This function will return false if invoked during the constructor of a contract,\r\n * as the code is not actually created until after the constructor finishes.\r\n * @param addr address to check\r\n * @return whether the target address is a contract\r\n */\r\n function isContract(address addr) internal view returns (bool) {\r\n uint256 size;\r\n // XXX Currently there is no better way to check if there is a contract in an address\r\n // than to check the size of the code at that address.\r\n // See https://ethereum.stackexchange.com/a/14016/36603\r\n // for more details about how this works.\r\n // TODO Check this again before the Serenity release, because all addresses will be\r\n // contracts then.\r\n // solium-disable-next-line security/no-inline-assembly\r\n assembly { size := extcodesize(addr) }\r\n return size > 0;\r\n }\r\n\r\n}\r\n\r\n/**\r\n * @title ERC165\r\n * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r\n */\r\ninterface ERC165 {\r\n\r\n /**\r\n * @notice Query if a contract implements an interface\r\n * @param _interfaceId The interface identifier, as specified in ERC-165\r\n * @dev Interface identification is specified in ERC-165. This function\r\n * uses less than 30,000 gas.\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool);\r\n}\r\n\r\n\r\n/**\r\n * @title SupportsInterfaceWithLookup\r\n * @author Matt Condon (@shrugs)\r\n * @dev Implements ERC165 using a lookup table.\r\n */\r\ncontract SupportsInterfaceWithLookup is ERC165 {\r\n bytes4 public constant InterfaceId_ERC165 = 0x01ffc9a7;\r\n /**\r\n * 0x01ffc9a7 ===\r\n * bytes4(keccak256('supportsInterface(bytes4)'))\r\n */\r\n\r\n /**\r\n * @dev a mapping of interface id to whether or not it's supported\r\n */\r\n mapping(bytes4 => bool) internal supportedInterfaces;\r\n\r\n /**\r\n * @dev A contract implementing SupportsInterfaceWithLookup\r\n * implement ERC165 itself\r\n */\r\n constructor()\r\n public\r\n {\r\n _registerInterface(InterfaceId_ERC165);\r\n }\r\n\r\n /**\r\n * @dev implement supportsInterface(bytes4) using a lookup table\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool)\r\n {\r\n return supportedInterfaces[_interfaceId];\r\n }\r\n\r\n /**\r\n * @dev private method for registering an interface\r\n */\r\n function _registerInterface(bytes4 _interfaceId)\r\n internal\r\n {\r\n require(_interfaceId != 0xffffffff);\r\n supportedInterfaces[_interfaceId] = true;\r\n }\r\n}\r\n\r\n/**\r\n * @title ERC721 token receiver interface\r\n * @dev Interface for any contract that wants to support safeTransfers\r\n * from ERC721 asset contracts.\r\n */\r\ncontract ERC721Receiver {\r\n /**\r\n * @dev Magic value to be returned upon successful reception of an NFT\r\n * Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`,\r\n * which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n */\r\n bytes4 internal constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n /**\r\n * @notice Handle the receipt of an NFT\r\n * @dev The ERC721 smart contract calls this function on the recipient\r\n * after a `safetransfer`. This function MAY throw to revert and reject the\r\n * transfer. This function MUST use 50,000 gas or less. Return of other\r\n * than the magic value MUST result in the transaction being reverted.\r\n * Note: the contract address is always the message sender.\r\n * @param _from The sending address\r\n * @param _tokenId The NFT identifier which is being transfered\r\n * @param _data Additional data with no specified format\r\n * @return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n */\r\n function onERC721Received(\r\n address _from,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n returns(bytes4);\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic interface\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721Basic is ERC165 {\r\n event Transfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n );\r\n event Approval(\r\n address _owner,\r\n address _approved,\r\n uint256 _tokenId\r\n );\r\n event ApprovalForAll(\r\n address _owner,\r\n address _operator,\r\n bool _approved\r\n );\r\n\r\n function balanceOf(address _owner) public view returns (uint256 _balance);\r\n function ownerOf(uint256 _tokenId) public view returns (address _owner);\r\n function exists(uint256 _tokenId) public view returns (bool _exists);\r\n\r\n function approve(address _to, uint256 _tokenId) public;\r\n function getApproved(uint256 _tokenId)\r\n public view returns (address _operator);\r\n\r\n function setApprovalForAll(address _operator, bool _approved) public;\r\n function isApprovedForAll(address _owner, address _operator)\r\n public view returns (bool);\r\n\r\n function transferFrom(address _from, address _to, uint256 _tokenId) public;\r\n function safeTransferFrom(address _from, address _to, uint256 _tokenId)\r\n public;\r\n\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public;\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic implementation\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721BasicToken is SupportsInterfaceWithLookup, ERC721Basic {\r\n\r\n bytes4 private constant InterfaceId_ERC721 = 0x80ac58cd;\r\n /*\r\n * 0x80ac58cd ===\r\n * bytes4(keccak256('balanceOf(address)')) ^\r\n * bytes4(keccak256('ownerOf(uint256)')) ^\r\n * bytes4(keccak256('approve(address,uint256)')) ^\r\n * bytes4(keccak256('getApproved(uint256)')) ^\r\n * bytes4(keccak256('setApprovalForAll(address,bool)')) ^\r\n * bytes4(keccak256('isApprovedForAll(address,address)')) ^\r\n * bytes4(keccak256('transferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)'))\r\n */\r\n\r\n bytes4 private constant InterfaceId_ERC721Exists = 0x4f558e79;\r\n /*\r\n * 0x4f558e79 ===\r\n * bytes4(keccak256('exists(uint256)'))\r\n */\r\n\r\n using SafeMath for uint256;\r\n using AddressUtils for address;\r\n\r\n // Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n // which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n bytes4 private constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n // Mapping from token ID to owner\r\n mapping (uint256 => address) internal tokenOwner;\r\n\r\n // Mapping from token ID to approved address\r\n mapping (uint256 => address) internal tokenApprovals;\r\n\r\n // Mapping from owner to number of owned token\r\n mapping (address => uint256) internal ownedTokensCount;\r\n\r\n // Mapping from owner to operator approvals\r\n mapping (address => mapping (address => bool)) internal operatorApprovals;\r\n\r\n\r\n uint public testint;\r\n /**\r\n * @dev Guarantees msg.sender is owner of the given token\r\n * @param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r\n */\r\n modifier onlyOwnerOf(uint256 _tokenId) {\r\n require(ownerOf(_tokenId) == msg.sender);\r\n _;\r\n }\r\n\r\n /**\r\n * @dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n * @param _tokenId uint256 ID of the token to validate\r\n */\r\n modifier canTransfer(uint256 _tokenId) {\r\n require(isApprovedOrOwner(msg.sender, _tokenId));\r\n _;\r\n }\r\n\r\n constructor()\r\n public\r\n {\r\n // register the supported interfaces to conform to ERC721 via ERC165\r\n _registerInterface(InterfaceId_ERC721);\r\n _registerInterface(InterfaceId_ERC721Exists);\r\n }\r\n\r\n /**\r\n * @dev Gets the balance of the specified address\r\n * @param _owner address to query the balance of\r\n * @return uint256 representing the amount owned by the passed address\r\n */\r\n function balanceOf(address _owner) public view returns (uint256) {\r\n require(_owner != address(0));\r\n return ownedTokensCount[_owner];\r\n }\r\n\r\n /**\r\n * @dev Gets the owner of the specified token ID\r\n * @param _tokenId uint256 ID of the token to query the owner of\r\n * @return owner address currently marked as the owner of the given token ID\r\n */\r\n function ownerOf(uint256 _tokenId) public view returns (address) {\r\n address owner = tokenOwner[_tokenId];\r\n require(owner != address(0));\r\n return owner;\r\n }\r\n\r\n /**\r\n * @dev Returns whether the specified token exists\r\n * @param _tokenId uint256 ID of the token to query the existence of\r\n * @return whether the token exists\r\n */\r\n function exists(uint256 _tokenId) public view returns (bool) {\r\n address owner = tokenOwner[_tokenId];\r\n return owner != address(0);\r\n }\r\n\r\n /**\r\n * @dev Approves another address to transfer the given token ID\r\n * The zero address indicates there is no approved address.\r\n * There can only be one approved address per token at a given time.\r\n * Can only be called by the token owner or an approved operator.\r\n * @param _to address to be approved for the given token ID\r\n * @param _tokenId uint256 ID of the token to be approved\r\n */\r\n function approve(address _to, uint256 _tokenId) public {\r\n address owner = ownerOf(_tokenId);\r\n require(_to != owner);\r\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender));\r\n\r\n tokenApprovals[_tokenId] = _to;\r\n emit Approval(owner, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Gets the approved address for a token ID, or zero if no address set\r\n * @param _tokenId uint256 ID of the token to query the approval of\r\n * @return address currently approved for the given token ID\r\n */\r\n function getApproved(uint256 _tokenId) public view returns (address) {\r\n return tokenApprovals[_tokenId];\r\n }\r\n\r\n /**\r\n * @dev Sets or unsets the approval of a given operator\r\n * An operator is allowed to transfer all tokens of the sender on their behalf\r\n * @param _to operator address to set the approval\r\n * @param _approved representing the status of the approval to be set\r\n */\r\n function setApprovalForAll(address _to, bool _approved) public {\r\n require(_to != msg.sender);\r\n operatorApprovals[msg.sender][_to] = _approved;\r\n emit ApprovalForAll(msg.sender, _to, _approved);\r\n }\r\n\r\n /**\r\n * @dev Tells whether an operator is approved by a given owner\r\n * @param _owner owner address which you want to query the approval of\r\n * @param _operator operator address which you want to query the approval of\r\n * @return bool whether the given operator is approved by the given owner\r\n */\r\n function isApprovedForAll(\r\n address _owner,\r\n address _operator\r\n )\r\n public\r\n view\r\n returns (bool)\r\n {\r\n return operatorApprovals[_owner][_operator];\r\n }\r\n\r\n /**\r\n * @dev Transfers the ownership of a given token ID to another address\r\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function transferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n require(_from != address(0));\r\n require(_to != address(0));\r\n\r\n clearApproval(_from, _tokenId);\r\n removeTokenFrom(_from, _tokenId);\r\n addTokenTo(_to, _tokenId);\r\n\r\n emit Transfer(_from, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n *\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n // solium-disable-next-line arg-overflow\r\n safeTransferFrom(_from, _to, _tokenId, \"\");\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes data to send along with a safe transfer check\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n transferFrom(_from, _to, _tokenId);\r\n // solium-disable-next-line arg-overflow\r\n require(checkAndCallSafeTransfer(_from, _to, _tokenId, _data));\r\n }\r\n\r\n /**\r\n * @dev Returns whether the given spender can transfer a given token ID\r\n * @param _spender address of the spender to query\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @return bool whether the msg.sender is approved for the given token ID,\r\n * is an operator of the owner, or is the owner of the token\r\n */\r\n function isApprovedOrOwner(\r\n address _spender,\r\n uint256 _tokenId\r\n )\r\n internal\r\n view\r\n returns (bool)\r\n {\r\n address owner = ownerOf(_tokenId);\r\n // Disable solium check because of\r\n // https://github.com/duaraghav8/Solium/issues/175\r\n // solium-disable-next-line operator-whitespace\r\n return (\r\n _spender == owner ||\r\n getApproved(_tokenId) == _spender ||\r\n isApprovedForAll(owner, _spender)\r\n );\r\n }\r\n\r\n /**\r\n * @dev Internal function to mint a new token\r\n * Reverts if the given token ID already exists\r\n * @param _to The address that will own the minted token\r\n * @param _tokenId uint256 ID of the token to be minted by the msg.sender\r\n */\r\n function _mint(address _to, uint256 _tokenId) internal {\r\n require(_to != address(0));\r\n addTokenTo(_to, _tokenId);\r\n emit Transfer(address(0), _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to burn a specific token\r\n * Reverts if the token does not exist\r\n * @param _tokenId uint256 ID of the token being burned by the msg.sender\r\n */\r\n function _burn(address _owner, uint256 _tokenId) internal {\r\n clearApproval(_owner, _tokenId);\r\n removeTokenFrom(_owner, _tokenId);\r\n emit Transfer(_owner, address(0), _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to clear current approval of a given token ID\r\n * Reverts if the given address is not indeed the owner of the token\r\n * @param _owner owner of the token\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function clearApproval(address _owner, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _owner);\r\n if (tokenApprovals[_tokenId] != address(0)) {\r\n tokenApprovals[_tokenId] = address(0);\r\n }\r\n }\r\n\r\n /**\r\n * @dev Internal function to add a token ID to the list of a given address\r\n * @param _to address representing the new owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r\n */\r\n function addTokenTo(address _to, uint256 _tokenId) internal {\r\n require(tokenOwner[_tokenId] == address(0));\r\n tokenOwner[_tokenId] = _to;\r\n ownedTokensCount[_to] = ownedTokensCount[_to].add(1);\r\n }\r\n\r\n /**\r\n * @dev Internal function to remove a token ID from the list of a given address\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r\n */\r\n function removeTokenFrom(address _from, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _from);\r\n ownedTokensCount[_from] = ownedTokensCount[_from].sub(1);\r\n tokenOwner[_tokenId] = address(0);\r\n }\r\n\r\n /**\r\n * @dev Internal function to invoke `onERC721Received` on a target address\r\n * The call is not executed if the target address is not a contract\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _to target address that will receive the tokens\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes optional data to send along with the call\r\n * @return whether the call correctly returned the expected magic value\r\n */\r\n function checkAndCallSafeTransfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n internal\r\n returns (bool)\r\n {\r\n if (!_to.isContract()) {\r\n return true;\r\n }\r\n bytes4 retval = ERC721Receiver(_to).onERC721Received(\r\n _from, _tokenId, _data);\r\n return (retval == ERC721_RECEIVED);\r\n }\r\n}\r\n\r\ncontract ERC721BasicTokenMock is ERC721BasicToken {\r\n function mint(address _to, uint256 _tokenId) public {\r\n super._mint(_to, _tokenId);\r\n }\r\n\r\n function burn(uint256 _tokenId) public {\r\n super._burn(ownerOf(_tokenId), _tokenId);\r\n }\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\inherited\\ERC721Basic.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", + "exportedSymbols": { + "AddressUtils": [ + 5009 + ], + "ERC165": [ + 5017 + ], + "ERC721Basic": [ + 5187 + ], + "ERC721BasicToken": [ + 5764 + ], + "ERC721BasicTokenMock": [ + 5797 + ], + "ERC721Receiver": [ + 5080 + ], + "SupportsInterfaceWithLookup": [ + 5065 + ] + }, + "id": 5798, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4991, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:8" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "../../dao/oz/SafeMath.sol", + "id": 4992, + "nodeType": "ImportDirective", + "scope": 5798, + "sourceUnit": 9858, + "src": "34:35:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "Utility library of inline functions on addresses\r", + "fullyImplemented": true, + "id": 5009, + "linearizedBaseContracts": [ + 5009 + ], + "name": "AddressUtils", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5007, + "nodeType": "Block", + "src": "2012:524:8", + "statements": [ + { + "assignments": [ + 5000 + ], + "declarations": [ + { + "constant": false, + "id": 5000, + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 5007, + "src": "2019:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2019:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5001, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "2019:12:8" + }, + { + "externalReferences": [ + { + "size": { + "declaration": 5000, + "isOffset": false, + "isSlot": false, + "src": "2482:4:8", + "valueSize": 1 + } + }, + { + "addr": { + "declaration": 4994, + "isOffset": false, + "isSlot": false, + "src": "2502:4:8", + "valueSize": 1 + } + } + ], + "id": 5002, + "nodeType": "InlineAssembly", + "operations": "{ size := extcodesize(addr) }", + "src": "2471:38:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5003, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5000, + "src": "2522:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5004, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2529:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2522:8:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4998, + "id": 5006, + "nodeType": "Return", + "src": "2515:15:8" + } + ] + }, + "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", + "id": 5008, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4994, + "name": "addr", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "1969:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1969:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1968:14:8" + }, + "returnParameters": { + "id": 4998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4997, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "2006:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4996, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2006:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2005:6:8" + }, + "scope": 5009, + "src": "1949:587:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "1590:951:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", + "fullyImplemented": false, + "id": 5017, + "linearizedBaseContracts": [ + 5017 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", + "id": 5016, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5012, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5011, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "2950:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5010, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2950:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2949:21:8" + }, + "returnParameters": { + "id": 5015, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5014, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "3009:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5013, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3009:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3008:6:8" + }, + "scope": 5017, + "src": "2923:92:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 5798, + "src": "2643:375:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5018, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "3196:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5019, + "nodeType": "InheritanceSpecifier", + "src": "3196:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", + "fullyImplemented": true, + "id": 5065, + "linearizedBaseContracts": [ + 5065, + 5017 + ], + "name": "SupportsInterfaceWithLookup", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5022, + "name": "InterfaceId_ERC165", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3208:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5020, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3208:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783031666663396137", + "id": 5021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3252:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 5026, + "name": "supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3443:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 5025, + "keyType": { + "id": 5023, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3451:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "3443:23:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 5024, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3461:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 5033, + "nodeType": "Block", + "src": "3638:51:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5030, + "name": "InterfaceId_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5022, + "src": "3664:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5029, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "3645:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3645:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5032, + "nodeType": "ExpressionStatement", + "src": "3645:38:8" + } + ] + }, + "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", + "id": 5034, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5027, + "nodeType": "ParameterList", + "parameters": [], + "src": "3620:2:8" + }, + "returnParameters": { + "id": 5028, + "nodeType": "ParameterList", + "parameters": [], + "src": "3638:0:8" + }, + "scope": 5065, + "src": "3609:80:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5045, + "nodeType": "Block", + "src": "3872:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5041, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "3886:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5043, + "indexExpression": { + "argumentTypes": null, + "id": 5042, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5036, + "src": "3906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3886:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5040, + "id": 5044, + "nodeType": "Return", + "src": "3879:40:8" + } + ] + }, + "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", + "id": 5046, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5037, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5036, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3804:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5035, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3804:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3803:21:8" + }, + "returnParameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5039, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3863:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5038, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3863:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3862:6:8" + }, + "scope": 5065, + "src": "3777:148:8", + "stateMutability": "view", + "superFunction": 5016, + "visibility": "external" + }, + { + "body": { + "id": 5063, + "nodeType": "Block", + "src": "4066:95:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5052, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4081:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30786666666666666666", + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4097:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "4081:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5051, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4073:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4073:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5056, + "nodeType": "ExpressionStatement", + "src": "4073:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5057, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "4115:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5059, + "indexExpression": { + "argumentTypes": null, + "id": 5058, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4135:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4115:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4151:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4115:40:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5062, + "nodeType": "ExpressionStatement", + "src": "4115:40:8" + } + ] + }, + "documentation": "@dev private method for registering an interface\r", + "id": 5064, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5048, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5064, + "src": "4028:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5047, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4028:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4027:21:8" + }, + "returnParameters": { + "id": 5050, + "nodeType": "ParameterList", + "parameters": [], + "src": "4066:0:8" + }, + "scope": 5065, + "src": "4000:161:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "3156:1008:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", + "fullyImplemented": false, + "id": 5080, + "linearizedBaseContracts": [ + 5080 + ], + "name": "ERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5068, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5080, + "src": "4607:53:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5066, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4607:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4650:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "internal" + }, + { + "body": null, + "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", + "id": 5079, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5070, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5364:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5069, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5364:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5072, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5384:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5384:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5074, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5407:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5073, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5407:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5357:73:8" + }, + "returnParameters": { + "id": 5078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5077, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5456:6:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5076, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "5456:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5455:8:8" + }, + "scope": 5080, + "src": "5332:132:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "4326:1141:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5081, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "5641:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5082, + "nodeType": "InheritanceSpecifier", + "src": "5641:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": false, + "id": 5187, + "linearizedBaseContracts": [ + 5187, + 5017 + ], + "name": "ERC721Basic", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5090, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5084, + "indexed": false, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5674:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5083, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5674:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5086, + "indexed": false, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5695:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5695:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5088, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5714:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5087, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5714:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5667:69:8" + }, + "src": "5653:84:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5098, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5092, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5762:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5091, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5762:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5094, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5784:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5784:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5096, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5809:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5809:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5755:76:8" + }, + "src": "5741:91:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5106, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 5105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5100, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5863:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5099, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5863:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5102, + "indexed": false, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5885:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5101, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5885:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5104, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5910:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5103, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5910:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5856:73:8" + }, + "src": "5836:94:8" + }, + { + "body": null, + "documentation": null, + "id": 5113, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5109, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5108, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5955:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5955:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5954:16:8" + }, + "returnParameters": { + "id": 5112, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5111, + "name": "_balance", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5992:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5110, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5992:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5991:18:8" + }, + "scope": 5187, + "src": "5936:74:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5120, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5115, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6031:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6030:18:8" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5118, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6070:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6070:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6069:16:8" + }, + "scope": 5187, + "src": "6014:72:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5127, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5122, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6106:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5121, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6106:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6105:18:8" + }, + "returnParameters": { + "id": 5126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5125, + "name": "_exists", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6145:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5124, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6145:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6144:14:8" + }, + "scope": 5187, + "src": "6090:69:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5134, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5129, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6182:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6182:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5131, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6195:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6195:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6181:31:8" + }, + "returnParameters": { + "id": 5133, + "nodeType": "ParameterList", + "parameters": [], + "src": "6219:0:8" + }, + "scope": 5187, + "src": "6165:55:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5141, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5136, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6245:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6245:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6244:18:8" + }, + "returnParameters": { + "id": 5140, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5139, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6289:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6289:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6288:19:8" + }, + "scope": 5187, + "src": "6224:84:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5148, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5143, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6341:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6341:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5145, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6360:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5144, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6360:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6340:35:8" + }, + "returnParameters": { + "id": 5147, + "nodeType": "ParameterList", + "parameters": [], + "src": "6382:0:8" + }, + "scope": 5187, + "src": "6314:69:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5157, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5153, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5150, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6413:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5149, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6413:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5152, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6429:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5151, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6429:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6412:35:8" + }, + "returnParameters": { + "id": 5156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5155, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6474:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5154, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6474:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6473:6:8" + }, + "scope": 5187, + "src": "6387:93:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5166, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5164, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5159, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6508:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6508:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5161, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6523:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6523:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5163, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6536:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5162, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6536:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6507:46:8" + }, + "returnParameters": { + "id": 5165, + "nodeType": "ParameterList", + "parameters": [], + "src": "6560:0:8" + }, + "scope": 5187, + "src": "6486:75:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5175, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5173, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5168, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6591:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5167, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6591:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5170, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6606:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5169, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6606:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5172, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6619:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5171, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6619:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6590:46:8" + }, + "returnParameters": { + "id": 5174, + "nodeType": "ParameterList", + "parameters": [], + "src": "6648:0:8" + }, + "scope": 5187, + "src": "6565:84:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5186, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5184, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5177, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6687:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5176, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6687:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5179, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6707:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5178, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6707:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5181, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6725:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5180, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6725:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5183, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6748:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5182, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6748:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6680:91:8" + }, + "returnParameters": { + "id": 5185, + "nodeType": "ParameterList", + "parameters": [], + "src": "6783:0:8" + }, + "scope": 5187, + "src": "6655:129:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "5617:1170:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5188, + "name": "SupportsInterfaceWithLookup", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5065, + "src": "6971:27:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", + "typeString": "contract SupportsInterfaceWithLookup" + } + }, + "id": 5189, + "nodeType": "InheritanceSpecifier", + "src": "6971:27:8" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5190, + "name": "ERC721Basic", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5187, + "src": "7000:11:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Basic_$5187", + "typeString": "contract ERC721Basic" + } + }, + "id": 5191, + "nodeType": "InheritanceSpecifier", + "src": "7000:11:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": true, + "id": 5764, + "linearizedBaseContracts": [ + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5194, + "name": "InterfaceId_ERC721", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7019:55:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5192, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7019:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783830616335386364", + "id": 5193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7064:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 5197, + "name": "InterfaceId_ERC721Exists", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7668:61:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5195, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7668:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783466353538653739", + "id": 5196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7719:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1331007097_by_1", + "typeString": "int_const 1331007097" + }, + "value": "0x4f558e79" + }, + "visibility": "private" + }, + { + "id": 5200, + "libraryName": { + "contractScope": null, + "id": 5198, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "7821:8:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "7815:27:8", + "typeName": { + "id": 5199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7834:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5203, + "libraryName": { + "contractScope": null, + "id": 5201, + "name": "AddressUtils", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5009, + "src": "7852:12:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddressUtils_$5009", + "typeString": "library AddressUtils" + } + }, + "nodeType": "UsingForDirective", + "src": "7846:31:8", + "typeName": { + "id": 5202, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7869:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "constant": true, + "id": 5206, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8044:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5204, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8044:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8086:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 5210, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8140:48:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5209, + "keyType": { + "id": 5207, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8149:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8140:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5208, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8160:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5214, + "name": "tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8243:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5213, + "keyType": { + "id": 5211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8252:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8243:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8263:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5218, + "name": "ownedTokensCount", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8352:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5217, + "keyType": { + "id": 5215, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8361:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8352:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8372:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5224, + "name": "operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8460:73:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 5223, + "keyType": { + "id": 5219, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8469:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8460:46:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 5222, + "keyType": { + "id": 5220, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8489:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8480:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 5221, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8500:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5226, + "name": "testint", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8542:19:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5225, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 5240, + "nodeType": "Block", + "src": "8774:61:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5232, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5228, + "src": "8797:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5231, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "8789:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8789:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5234, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "8810:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8810:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8789:31:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5230, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "8781:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8781:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5238, + "nodeType": "ExpressionStatement", + "src": "8781:40:8" + }, + { + "id": 5239, + "nodeType": "PlaceholderStatement", + "src": "8828:1:8" + } + ] + }, + "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", + "id": 5241, + "name": "onlyOwnerOf", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5228, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5241, + "src": "8756:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5227, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8756:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8755:18:8" + }, + "src": "8735:100:8", + "visibility": "internal" + }, + { + "body": { + "id": 5254, + "nodeType": "Block", + "src": "9041:69:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5247, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "9074:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9074:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5249, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5243, + "src": "9086:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5246, + "name": "isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5567, + "src": "9056:17:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 5250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9056:39:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5245, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9048:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9048:48:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5252, + "nodeType": "ExpressionStatement", + "src": "9048:48:8" + }, + { + "id": 5253, + "nodeType": "PlaceholderStatement", + "src": "9103:1:8" + } + ] + }, + "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", + "id": 5255, + "name": "canTransfer", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5244, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5243, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5255, + "src": "9023:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5242, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9022:18:8" + }, + "src": "9002:108:8", + "visibility": "internal" + }, + { + "body": { + "id": 5266, + "nodeType": "Block", + "src": "9145:176:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5259, + "name": "InterfaceId_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "9245:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5258, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9226:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9226:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5261, + "nodeType": "ExpressionStatement", + "src": "9226:38:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5263, + "name": "InterfaceId_ERC721Exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5197, + "src": "9290:24:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5262, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9271:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9271:44:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5265, + "nodeType": "ExpressionStatement", + "src": "9271:44:8" + } + ] + }, + "documentation": null, + "id": 5267, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5256, + "nodeType": "ParameterList", + "parameters": [], + "src": "9127:2:8" + }, + "returnParameters": { + "id": 5257, + "nodeType": "ParameterList", + "parameters": [], + "src": "9145:0:8" + }, + "scope": 5764, + "src": "9116:205:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5286, + "nodeType": "Block", + "src": "9585:80:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5275, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9600:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5277, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9618:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9610:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9610:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "9600:20:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5274, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9592:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9592:29:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5281, + "nodeType": "ExpressionStatement", + "src": "9592:29:8" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5282, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "9635:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5284, + "indexExpression": { + "argumentTypes": null, + "id": 5283, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9652:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9635:24:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5273, + "id": 5285, + "nodeType": "Return", + "src": "9628:31:8" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", + "id": 5287, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5269, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9539:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9539:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9538:16:8" + }, + "returnParameters": { + "id": 5273, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5272, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9576:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5271, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9576:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9575:9:8" + }, + "scope": 5764, + "src": "9520:145:8", + "stateMutability": "view", + "superFunction": 5113, + "visibility": "public" + }, + { + "body": { + "id": 5310, + "nodeType": "Block", + "src": "9950:103:8", + "statements": [ + { + "assignments": [ + 5295 + ], + "declarations": [ + { + "constant": false, + "id": 5295, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5310, + "src": "9957:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5294, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9957:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5299, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5296, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "9973:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5298, + "indexExpression": { + "argumentTypes": null, + "id": 5297, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5289, + "src": "9984:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9973:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9957:36:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5301, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10008:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10025:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10017:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10017:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10008:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5300, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10000:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5307, + "nodeType": "ExpressionStatement", + "src": "10000:28:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5308, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10042:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5293, + "id": 5309, + "nodeType": "Return", + "src": "10035:12:8" + } + ] + }, + "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", + "id": 5311, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5289, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9902:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9902:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9901:18:8" + }, + "returnParameters": { + "id": 5293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5292, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9941:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9941:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9940:9:8" + }, + "scope": 5764, + "src": "9885:168:8", + "stateMutability": "view", + "superFunction": 5120, + "visibility": "public" + }, + { + "body": { + "id": 5330, + "nodeType": "Block", + "src": "10299:82:8", + "statements": [ + { + "assignments": [ + 5319 + ], + "declarations": [ + { + "constant": false, + "id": 5319, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5330, + "src": "10306:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5318, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10306:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5323, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5320, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "10322:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5322, + "indexExpression": { + "argumentTypes": null, + "id": 5321, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5313, + "src": "10333:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10322:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10306:36:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5324, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5319, + "src": "10356:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10373:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10365:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10365:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10356:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5317, + "id": 5329, + "nodeType": "Return", + "src": "10349:26:8" + } + ] + }, + "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", + "id": 5331, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5313, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10254:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10254:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10253:18:8" + }, + "returnParameters": { + "id": 5317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5316, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10293:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5315, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10293:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10292:6:8" + }, + "scope": 5764, + "src": "10238:143:8", + "stateMutability": "view", + "superFunction": 5127, + "visibility": "public" + }, + { + "body": { + "id": 5375, + "nodeType": "Block", + "src": "10851:229:8", + "statements": [ + { + "assignments": [ + 5339 + ], + "declarations": [ + { + "constant": false, + "id": 5339, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5375, + "src": "10858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5343, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5341, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "10882:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5340, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "10874:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10874:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10858:33:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5345, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "10906:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 5346, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10913:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5344, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10898:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10898:21:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5349, + "nodeType": "ExpressionStatement", + "src": "10898:21:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5351, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10934:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10934:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5353, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10948:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10934:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5356, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10974:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5357, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10981:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10981:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 5355, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "10957:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10957:35:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10934:58:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5350, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10926:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10926:67:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5362, + "nodeType": "ExpressionStatement", + "src": "10926:67:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5363, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11002:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5365, + "indexExpression": { + "argumentTypes": null, + "id": 5364, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11017:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11002:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5366, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11029:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11002:30:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5368, + "nodeType": "ExpressionStatement", + "src": "11002:30:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5370, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "11053:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5371, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11060:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5372, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11065:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5369, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5098, + "src": "11044:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11044:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5374, + "nodeType": "EmitStatement", + "src": "11039:35:8" + } + ] + }, + "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", + "id": 5376, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5336, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5333, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10813:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10813:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5335, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10826:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5334, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10826:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10812:31:8" + }, + "returnParameters": { + "id": 5337, + "nodeType": "ParameterList", + "parameters": [], + "src": "10851:0:8" + }, + "scope": 5764, + "src": "10796:284:8", + "stateMutability": "nonpayable", + "superFunction": 5134, + "visibility": "public" + }, + { + "body": { + "id": 5387, + "nodeType": "Block", + "src": "11383:44:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5383, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11397:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5385, + "indexExpression": { + "argumentTypes": null, + "id": 5384, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5378, + "src": "11412:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11397:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5382, + "id": 5386, + "nodeType": "Return", + "src": "11390:31:8" + } + ] + }, + "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", + "id": 5388, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5378, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11335:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5377, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11335:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11334:18:8" + }, + "returnParameters": { + "id": 5382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5381, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11374:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11374:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11373:9:8" + }, + "scope": 5764, + "src": "11314:113:8", + "stateMutability": "view", + "superFunction": 5141, + "visibility": "public" + }, + { + "body": { + "id": 5418, + "nodeType": "Block", + "src": "11778:146:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5396, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11793:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5397, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11800:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11800:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "11793:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5395, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "11785:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11785:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "11785:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5402, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "11818:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5406, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5403, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11836:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11836:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11818:29:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5407, + "indexExpression": { + "argumentTypes": null, + "id": 5405, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11848:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11818:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11855:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11818:46:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5410, + "nodeType": "ExpressionStatement", + "src": "11818:46:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5412, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11891:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11891:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5414, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11903:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5415, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11908:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5411, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5106, + "src": "11876:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 5416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11876:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5417, + "nodeType": "EmitStatement", + "src": "11871:47:8" + } + ] + }, + "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", + "id": 5419, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5390, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11742:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11742:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5392, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11755:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11755:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11741:29:8" + }, + "returnParameters": { + "id": 5394, + "nodeType": "ParameterList", + "parameters": [], + "src": "11778:0:8" + }, + "scope": 5764, + "src": "11715:209:8", + "stateMutability": "nonpayable", + "superFunction": 5148, + "visibility": "public" + }, + { + "body": { + "id": 5434, + "nodeType": "Block", + "src": "12362:56:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5428, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "12376:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5430, + "indexExpression": { + "argumentTypes": null, + "id": 5429, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5421, + "src": "12394:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5432, + "indexExpression": { + "argumentTypes": null, + "id": 5431, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "12402:9:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:36:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5427, + "id": 5433, + "nodeType": "Return", + "src": "12369:43:8" + } + ] + }, + "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", + "id": 5435, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5421, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12273:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5420, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12273:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5423, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12294:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5422, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12294:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12266:50:8" + }, + "returnParameters": { + "id": 5427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5426, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12353:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5425, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12353:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12352:6:8" + }, + "scope": 5764, + "src": "12241:177:8", + "stateMutability": "view", + "superFunction": 5157, + "visibility": "public" + }, + { + "body": { + "id": 5484, + "nodeType": "Block", + "src": "12976:228:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5448, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "12991:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13008:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13000:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "12991:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5447, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "12983:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12983:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5454, + "nodeType": "ExpressionStatement", + "src": "12983:28:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5456, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13026:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13041:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13033:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13033:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13026:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5455, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "13018:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13018:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5462, + "nodeType": "ExpressionStatement", + "src": "13018:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5464, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13067:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5465, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13074:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5463, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "13053:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13053:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5467, + "nodeType": "ExpressionStatement", + "src": "13053:30:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5469, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13106:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5470, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13113:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5468, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "13090:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13090:32:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5472, + "nodeType": "ExpressionStatement", + "src": "13090:32:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5474, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13140:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5475, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13145:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5473, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "13129:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13129:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5477, + "nodeType": "ExpressionStatement", + "src": "13129:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5479, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13177:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5480, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13184:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5481, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13189:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5478, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "13168:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13168:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5483, + "nodeType": "EmitStatement", + "src": "13163:35:8" + } + ] + }, + "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5485, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5444, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "12963:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5445, + "modifierName": { + "argumentTypes": null, + "id": 5443, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "12951:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12951:21:8" + } + ], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5442, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5437, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12874:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5436, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12874:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5439, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12894:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12894:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5441, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12912:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5440, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12912:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12867:66:8" + }, + "returnParameters": { + "id": 5446, + "nodeType": "ParameterList", + "parameters": [], + "src": "12976:0:8" + }, + "scope": 5764, + "src": "12846:358:8", + "stateMutability": "nonpayable", + "superFunction": 5166, + "visibility": "public" + }, + { + "body": { + "id": 5504, + "nodeType": "Block", + "src": "13960:101:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5498, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5487, + "src": "14030:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5499, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5489, + "src": "14037:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5500, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "14042:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 5501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14052:2:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 5497, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5505, + 5535 + ], + "referencedDeclaration": 5535, + "src": "14013:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 5502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14013:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5503, + "nodeType": "ExpressionStatement", + "src": "14013:42:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5505, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5494, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "13947:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5495, + "modifierName": { + "argumentTypes": null, + "id": 5493, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "13935:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "13935:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5487, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5486, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5489, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13878:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13878:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5491, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13896:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13896:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13851:66:8" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [], + "src": "13960:0:8" + }, + "scope": 5764, + "src": "13826:235:8", + "stateMutability": "nonpayable", + "superFunction": 5175, + "visibility": "public" + }, + { + "body": { + "id": 5534, + "nodeType": "Block", + "src": "14908:162:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5520, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "14928:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5521, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "14935:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5522, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14940:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5519, + "name": "transferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5485 + ], + "referencedDeclaration": 5485, + "src": "14915:12:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14915:34:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5524, + "nodeType": "ExpressionStatement", + "src": "14915:34:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5527, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "15035:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5528, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "15042:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5529, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "15047:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5530, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5513, + "src": "15057:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5526, + "name": "checkAndCallSafeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5763, + "src": "15010:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 5531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15010:53:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5525, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "15002:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15002:62:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5533, + "nodeType": "ExpressionStatement", + "src": "15002:62:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", + "id": 5535, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5516, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14895:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5517, + "modifierName": { + "argumentTypes": null, + "id": 5515, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "14883:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "14883:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5514, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5507, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14781:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14781:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5509, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14801:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14801:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5511, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14819:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14819:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5513, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14842:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5512, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14842:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14774:91:8" + }, + "returnParameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [], + "src": "14908:0:8" + }, + "scope": 5764, + "src": "14749:321:8", + "stateMutability": "nonpayable", + "superFunction": 5186, + "visibility": "public" + }, + { + "body": { + "id": 5566, + "nodeType": "Block", + "src": "15551:330:8", + "statements": [ + { + "assignments": [ + 5545 + ], + "declarations": [ + { + "constant": false, + "id": 5545, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5566, + "src": "15558:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15558:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5549, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5547, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15582:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5546, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "15574:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15574:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15558:33:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5550, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15763:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5551, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15775:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15763:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5554, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15803:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5553, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5388 + ], + "referencedDeclaration": 5388, + "src": "15791:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15791:21:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5556, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15816:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15791:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:61:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5560, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15852:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5561, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15859:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5559, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "15835:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15835:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:105:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5564, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15754:121:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5543, + "id": 5565, + "nodeType": "Return", + "src": "15747:128:8" + } + ] + }, + "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", + "id": 5567, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5540, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5537, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15459:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5536, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15459:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5539, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15482:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5538, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15482:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15452:51:8" + }, + "returnParameters": { + "id": 5543, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5542, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15542:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5541, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15541:6:8" + }, + "scope": 5764, + "src": "15426:455:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5595, + "nodeType": "Block", + "src": "16193:118:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5575, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16208:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16223:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16215:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16215:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "16208:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5574, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "16200:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16200:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5581, + "nodeType": "ExpressionStatement", + "src": "16200:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5583, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16244:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5584, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16249:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5582, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "16233:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16233:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5586, + "nodeType": "ExpressionStatement", + "src": "16233:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16287:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16279:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16279:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5591, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16291:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5592, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16296:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5587, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16270:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16270:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5594, + "nodeType": "EmitStatement", + "src": "16265:40:8" + } + ] + }, + "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", + "id": 5596, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5569, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16153:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5568, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16153:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5571, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16166:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5570, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16166:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16152:31:8" + }, + "returnParameters": { + "id": 5573, + "nodeType": "ParameterList", + "parameters": [], + "src": "16193:0:8" + }, + "scope": 5764, + "src": "16138:173:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5621, + "nodeType": "Block", + "src": "16562:134:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5604, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16583:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5605, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16591:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5603, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "16569:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16569:31:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5607, + "nodeType": "ExpressionStatement", + "src": "16569:31:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5609, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16623:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5610, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16631:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5608, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "16607:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16607:33:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5612, + "nodeType": "ExpressionStatement", + "src": "16607:33:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5614, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16661:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16677:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16669:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16669:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5618, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16681:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5613, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16652:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16652:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5620, + "nodeType": "EmitStatement", + "src": "16647:43:8" + } + ] + }, + "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", + "id": 5622, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5598, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16519:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16519:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5600, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16535:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5599, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16535:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16518:34:8" + }, + "returnParameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [], + "src": "16562:0:8" + }, + "scope": 5764, + "src": "16504:192:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5654, + "nodeType": "Block", + "src": "17032:153:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5631, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17055:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5630, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "17047:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17047:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5633, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5624, + "src": "17068:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17047:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5629, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17039:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17039:36:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5636, + "nodeType": "ExpressionStatement", + "src": "17039:36:8" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5637, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17086:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5639, + "indexExpression": { + "argumentTypes": null, + "id": 5638, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17101:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17086:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17122:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17114:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17114:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17086:38:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5653, + "nodeType": "IfStatement", + "src": "17082:98:8", + "trueBody": { + "id": 5652, + "nodeType": "Block", + "src": "17126:54:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5644, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17135:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5646, + "indexExpression": { + "argumentTypes": null, + "id": 5645, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17150:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17135:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5648, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17170:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17162:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17162:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17135:37:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5651, + "nodeType": "ExpressionStatement", + "src": "17135:37:8" + } + ] + } + } + ] + }, + "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5655, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "clearApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5624, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "16989:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5623, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16989:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5626, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "17005:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5625, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17005:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16988:34:8" + }, + "returnParameters": { + "id": 5628, + "nodeType": "ParameterList", + "parameters": [], + "src": "17032:0:8" + }, + "scope": 5764, + "src": "16966:219:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5689, + "nodeType": "Block", + "src": "17515:148:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5663, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17530:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5665, + "indexExpression": { + "argumentTypes": null, + "id": 5664, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17541:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17530:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17562:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17554:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17554:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17530:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5662, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17522:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17522:43:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5671, + "nodeType": "ExpressionStatement", + "src": "17522:43:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5672, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17572:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5674, + "indexExpression": { + "argumentTypes": null, + "id": 5673, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17583:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17572:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5675, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17595:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17572:26:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5677, + "nodeType": "ExpressionStatement", + "src": "17572:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5678, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17605:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5680, + "indexExpression": { + "argumentTypes": null, + "id": 5679, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17622:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17605:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17655:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5681, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17629:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5683, + "indexExpression": { + "argumentTypes": null, + "id": 5682, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17646:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17629:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "17629:25:8", + "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": 5686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17629:28:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17605:52:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5688, + "nodeType": "ExpressionStatement", + "src": "17605:52:8" + } + ] + }, + "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", + "id": 5690, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addTokenTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5657, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17475:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17475:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5659, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17488:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17488:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17474:31:8" + }, + "returnParameters": { + "id": 5661, + "nodeType": "ParameterList", + "parameters": [], + "src": "17515:0:8" + }, + "scope": 5764, + "src": "17455:208:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5724, + "nodeType": "Block", + "src": "18016:151:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5699, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18039:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5698, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "18031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18031:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5701, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18052:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "18031:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5697, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "18023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18023:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5704, + "nodeType": "ExpressionStatement", + "src": "18023:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5705, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18065:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5707, + "indexExpression": { + "argumentTypes": null, + "id": 5706, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18082:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18065:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18119:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5708, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18091:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5710, + "indexExpression": { + "argumentTypes": null, + "id": 5709, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18108:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18091:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "18091:27:8", + "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": 5713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18091:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18065:56:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5715, + "nodeType": "ExpressionStatement", + "src": "18065:56:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5716, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "18128:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5718, + "indexExpression": { + "argumentTypes": null, + "id": 5717, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18139:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18128:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18159:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18151:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18151:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "18128:33:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5723, + "nodeType": "ExpressionStatement", + "src": "18128:33:8" + } + ] + }, + "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", + "id": 5725, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeTokenFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5692, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17974:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5691, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17974:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5694, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17989:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17989:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17973:33:8" + }, + "returnParameters": { + "id": 5696, + "nodeType": "ParameterList", + "parameters": [], + "src": "18016:0:8" + }, + "scope": 5764, + "src": "17949:218:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5762, + "nodeType": "Block", + "src": "18846:195:8", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "18857:17:8", + "subExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5738, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18858:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 5008, + "src": "18858:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18858:16:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5745, + "nodeType": "IfStatement", + "src": "18853:51:8", + "trueBody": { + "id": 5744, + "nodeType": "Block", + "src": "18876:28:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18892:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5737, + "id": 5743, + "nodeType": "Return", + "src": "18885:11:8" + } + ] + } + }, + { + "assignments": [ + 5747 + ], + "declarations": [ + { + "constant": false, + "id": 5747, + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 5762, + "src": "18910:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5746, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "18910:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5756, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5752, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5727, + "src": "18971:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5753, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5731, + "src": "18978:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5754, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5733, + "src": "18988:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5749, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18941:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5748, + "name": "ERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "18926:14:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", + "typeString": "type(contract ERC721Receiver)" + } + }, + "id": 5750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:19:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Receiver_$5080", + "typeString": "contract ERC721Receiver" + } + }, + "id": 5751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 5079, + "src": "18926:36:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 5755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:68:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18910:84:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5757, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5747, + "src": "19009:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5758, + "name": "ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5206, + "src": "19019:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "19009:25:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5760, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19008:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5737, + "id": 5761, + "nodeType": "Return", + "src": "19001:34:8" + } + ] + }, + "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", + "id": 5763, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "checkAndCallSafeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5727, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18724:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5726, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18724:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5729, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18744:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18744:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5731, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18762:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5730, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18762:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5733, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18785:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5732, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18785:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18717:91:8" + }, + "returnParameters": { + "id": 5737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5736, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18837:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5735, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18837:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18836:6:8" + }, + "scope": 5764, + "src": "18684:357:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "6942:12102:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5765, + "name": "ERC721BasicToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5764, + "src": "19081:16:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", + "typeString": "contract ERC721BasicToken" + } + }, + "id": 5766, + "nodeType": "InheritanceSpecifier", + "src": "19081:16:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187, + 5764 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5797, + "linearizedBaseContracts": [ + 5797, + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicTokenMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5780, + "nodeType": "Block", + "src": "19155:39:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5776, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5768, + "src": "19174:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5777, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5770, + "src": "19179:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5773, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19162:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 5596, + "src": "19162:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19162:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5779, + "nodeType": "ExpressionStatement", + "src": "19162:26:8" + } + ] + }, + "documentation": null, + "id": 5781, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19117:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19117:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19130:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19130:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19116:31:8" + }, + "returnParameters": { + "id": 5772, + "nodeType": "ParameterList", + "parameters": [], + "src": "19155:0:8" + }, + "scope": 5797, + "src": "19103:91:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5795, + "nodeType": "Block", + "src": "19239:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5790, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19266:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5789, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "19258:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19258:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5792, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19277:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5786, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19246:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 5622, + "src": "19246:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19246:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5794, + "nodeType": "ExpressionStatement", + "src": "19246:40:8" + } + ] + }, + "documentation": null, + "id": 5796, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5783, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5796, + "src": "19214:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5782, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19214:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19213:18:8" + }, + "returnParameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [], + "src": "19239:0:8" + }, + "scope": 5797, + "src": "19200:92:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "19048:247:8" + } + ], + "src": "0:19297:8" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", + "exportedSymbols": { + "AddressUtils": [ + 5009 + ], + "ERC165": [ + 5017 + ], + "ERC721Basic": [ + 5187 + ], + "ERC721BasicToken": [ + 5764 + ], + "ERC721BasicTokenMock": [ + 5797 + ], + "ERC721Receiver": [ + 5080 + ], + "SupportsInterfaceWithLookup": [ + 5065 + ] + }, + "id": 5798, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4991, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:8" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", + "file": "../../dao/oz/SafeMath.sol", + "id": 4992, + "nodeType": "ImportDirective", + "scope": 5798, + "sourceUnit": 9858, + "src": "34:35:8", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": "Utility library of inline functions on addresses\r", + "fullyImplemented": true, + "id": 5009, + "linearizedBaseContracts": [ + 5009 + ], + "name": "AddressUtils", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5007, + "nodeType": "Block", + "src": "2012:524:8", + "statements": [ + { + "assignments": [ + 5000 + ], + "declarations": [ + { + "constant": false, + "id": 5000, + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 5007, + "src": "2019:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2019:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5001, + "initialValue": null, + "nodeType": "VariableDeclarationStatement", + "src": "2019:12:8" + }, + { + "externalReferences": [ + { + "size": { + "declaration": 5000, + "isOffset": false, + "isSlot": false, + "src": "2482:4:8", + "valueSize": 1 + } + }, + { + "addr": { + "declaration": 4994, + "isOffset": false, + "isSlot": false, + "src": "2502:4:8", + "valueSize": 1 + } + } + ], + "id": 5002, + "nodeType": "InlineAssembly", + "operations": "{ size := extcodesize(addr) }", + "src": "2471:38:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 5005, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5003, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5000, + "src": "2522:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30", + "id": 5004, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2529:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "2522:8:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 4998, + "id": 5006, + "nodeType": "Return", + "src": "2515:15:8" + } + ] + }, + "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", + "id": 5008, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4995, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4994, + "name": "addr", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "1969:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4993, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1969:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1968:14:8" + }, + "returnParameters": { + "id": 4998, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4997, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5008, + "src": "2006:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 4996, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2006:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2005:6:8" + }, + "scope": 5009, + "src": "1949:587:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "1590:951:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", + "fullyImplemented": false, + "id": 5017, + "linearizedBaseContracts": [ + 5017 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", + "id": 5016, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5012, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5011, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "2950:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5010, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "2950:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2949:21:8" + }, + "returnParameters": { + "id": 5015, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5014, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5016, + "src": "3009:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5013, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3009:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3008:6:8" + }, + "scope": 5017, + "src": "2923:92:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 5798, + "src": "2643:375:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5018, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "3196:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5019, + "nodeType": "InheritanceSpecifier", + "src": "3196:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", + "fullyImplemented": true, + "id": 5065, + "linearizedBaseContracts": [ + 5065, + 5017 + ], + "name": "SupportsInterfaceWithLookup", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5022, + "name": "InterfaceId_ERC165", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3208:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5020, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3208:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783031666663396137", + "id": 5021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3252:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 5026, + "name": "supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 5065, + "src": "3443:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 5025, + "keyType": { + "id": 5023, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3451:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "3443:23:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 5024, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3461:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "body": { + "id": 5033, + "nodeType": "Block", + "src": "3638:51:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5030, + "name": "InterfaceId_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5022, + "src": "3664:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5029, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "3645:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3645:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5032, + "nodeType": "ExpressionStatement", + "src": "3645:38:8" + } + ] + }, + "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", + "id": 5034, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5027, + "nodeType": "ParameterList", + "parameters": [], + "src": "3620:2:8" + }, + "returnParameters": { + "id": 5028, + "nodeType": "ParameterList", + "parameters": [], + "src": "3638:0:8" + }, + "scope": 5065, + "src": "3609:80:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5045, + "nodeType": "Block", + "src": "3872:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5041, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "3886:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5043, + "indexExpression": { + "argumentTypes": null, + "id": 5042, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5036, + "src": "3906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3886:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5040, + "id": 5044, + "nodeType": "Return", + "src": "3879:40:8" + } + ] + }, + "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", + "id": 5046, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5037, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5036, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3804:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5035, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "3804:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3803:21:8" + }, + "returnParameters": { + "id": 5040, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5039, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5046, + "src": "3863:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5038, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "3863:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3862:6:8" + }, + "scope": 5065, + "src": "3777:148:8", + "stateMutability": "view", + "superFunction": 5016, + "visibility": "external" + }, + { + "body": { + "id": 5063, + "nodeType": "Block", + "src": "4066:95:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5052, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4081:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "hexValue": "30786666666666666666", + "id": 5053, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4097:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "4081:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5051, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "4073:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4073:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5056, + "nodeType": "ExpressionStatement", + "src": "4073:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5057, + "name": "supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5026, + "src": "4115:19:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 5059, + "indexExpression": { + "argumentTypes": null, + "id": 5058, + "name": "_interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5048, + "src": "4135:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4115:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5060, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4151:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "4115:40:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5062, + "nodeType": "ExpressionStatement", + "src": "4115:40:8" + } + ] + }, + "documentation": "@dev private method for registering an interface\r", + "id": 5064, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5048, + "name": "_interfaceId", + "nodeType": "VariableDeclaration", + "scope": 5064, + "src": "4028:19:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5047, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4028:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "4027:21:8" + }, + "returnParameters": { + "id": 5050, + "nodeType": "ParameterList", + "parameters": [], + "src": "4066:0:8" + }, + "scope": 5065, + "src": "4000:161:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "3156:1008:8" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", + "fullyImplemented": false, + "id": 5080, + "linearizedBaseContracts": [ + 5080 + ], + "name": "ERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5068, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5080, + "src": "4607:53:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5066, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "4607:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4650:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "internal" + }, + { + "body": null, + "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", + "id": 5079, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5070, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5364:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5069, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5364:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5072, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5384:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5384:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5074, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5407:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5073, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "5407:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5357:73:8" + }, + "returnParameters": { + "id": 5078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5077, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5079, + "src": "5456:6:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5076, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "5456:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5455:8:8" + }, + "scope": 5080, + "src": "5332:132:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "4326:1141:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5081, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5017, + "src": "5641:6:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$5017", + "typeString": "contract ERC165" + } + }, + "id": 5082, + "nodeType": "InheritanceSpecifier", + "src": "5641:6:8" + } + ], + "contractDependencies": [ + 5017 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": false, + "id": 5187, + "linearizedBaseContracts": [ + 5187, + 5017 + ], + "name": "ERC721Basic", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": null, + "id": 5090, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 5089, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5084, + "indexed": false, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5674:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5083, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5674:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5086, + "indexed": false, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5695:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5085, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5695:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5088, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5090, + "src": "5714:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5087, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5714:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5667:69:8" + }, + "src": "5653:84:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5098, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 5097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5092, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5762:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5091, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5762:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5094, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5784:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5093, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5784:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5096, + "indexed": false, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5098, + "src": "5809:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5809:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5755:76:8" + }, + "src": "5741:91:8" + }, + { + "anonymous": false, + "documentation": null, + "id": 5106, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 5105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5100, + "indexed": false, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5863:15:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5099, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5863:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5102, + "indexed": false, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5885:18:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5101, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5885:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5104, + "indexed": false, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5106, + "src": "5910:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5103, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5910:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5856:73:8" + }, + "src": "5836:94:8" + }, + { + "body": null, + "documentation": null, + "id": 5113, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5109, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5108, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5955:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5107, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5955:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5954:16:8" + }, + "returnParameters": { + "id": 5112, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5111, + "name": "_balance", + "nodeType": "VariableDeclaration", + "scope": 5113, + "src": "5992:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5110, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5992:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "5991:18:8" + }, + "scope": 5187, + "src": "5936:74:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5120, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5115, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6031:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6030:18:8" + }, + "returnParameters": { + "id": 5119, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5118, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5120, + "src": "6070:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5117, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6070:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6069:16:8" + }, + "scope": 5187, + "src": "6014:72:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5127, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5123, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5122, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6106:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5121, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6106:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6105:18:8" + }, + "returnParameters": { + "id": 5126, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5125, + "name": "_exists", + "nodeType": "VariableDeclaration", + "scope": 5127, + "src": "6145:12:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5124, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6145:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6144:14:8" + }, + "scope": 5187, + "src": "6090:69:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5134, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5132, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5129, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6182:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5128, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6182:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5131, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5134, + "src": "6195:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5130, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6195:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6181:31:8" + }, + "returnParameters": { + "id": 5133, + "nodeType": "ParameterList", + "parameters": [], + "src": "6219:0:8" + }, + "scope": 5187, + "src": "6165:55:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5141, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5137, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5136, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6245:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5135, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6245:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6244:18:8" + }, + "returnParameters": { + "id": 5140, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5139, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5141, + "src": "6289:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5138, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6289:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6288:19:8" + }, + "scope": 5187, + "src": "6224:84:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5148, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5146, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5143, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6341:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5142, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6341:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5145, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5148, + "src": "6360:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5144, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6360:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6340:35:8" + }, + "returnParameters": { + "id": 5147, + "nodeType": "ParameterList", + "parameters": [], + "src": "6382:0:8" + }, + "scope": 5187, + "src": "6314:69:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5157, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5153, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5150, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6413:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5149, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6413:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5152, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6429:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5151, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6429:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6412:35:8" + }, + "returnParameters": { + "id": 5156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5155, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5157, + "src": "6474:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5154, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "6474:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6473:6:8" + }, + "scope": 5187, + "src": "6387:93:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5166, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5164, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5159, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6508:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5158, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6508:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5161, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6523:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5160, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6523:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5163, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5166, + "src": "6536:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5162, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6536:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6507:46:8" + }, + "returnParameters": { + "id": 5165, + "nodeType": "ParameterList", + "parameters": [], + "src": "6560:0:8" + }, + "scope": 5187, + "src": "6486:75:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5175, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5173, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5168, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6591:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5167, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6591:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5170, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6606:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5169, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6606:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5172, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5175, + "src": "6619:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5171, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6619:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6590:46:8" + }, + "returnParameters": { + "id": 5174, + "nodeType": "ParameterList", + "parameters": [], + "src": "6648:0:8" + }, + "scope": 5187, + "src": "6565:84:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": null, + "documentation": null, + "id": 5186, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5184, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5177, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6687:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5176, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6687:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5179, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6707:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5178, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6707:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5181, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6725:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5180, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6725:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5183, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5186, + "src": "6748:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5182, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6748:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "6680:91:8" + }, + "returnParameters": { + "id": 5185, + "nodeType": "ParameterList", + "parameters": [], + "src": "6783:0:8" + }, + "scope": 5187, + "src": "6655:129:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "5617:1170:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5188, + "name": "SupportsInterfaceWithLookup", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5065, + "src": "6971:27:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", + "typeString": "contract SupportsInterfaceWithLookup" + } + }, + "id": 5189, + "nodeType": "InheritanceSpecifier", + "src": "6971:27:8" + }, + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5190, + "name": "ERC721Basic", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5187, + "src": "7000:11:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Basic_$5187", + "typeString": "contract ERC721Basic" + } + }, + "id": 5191, + "nodeType": "InheritanceSpecifier", + "src": "7000:11:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187 + ], + "contractKind": "contract", + "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", + "fullyImplemented": true, + "id": 5764, + "linearizedBaseContracts": [ + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicToken", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 5194, + "name": "InterfaceId_ERC721", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7019:55:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5192, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7019:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783830616335386364", + "id": 5193, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7064:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 5197, + "name": "InterfaceId_ERC721Exists", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "7668:61:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5195, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "7668:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30783466353538653739", + "id": 5196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7719:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1331007097_by_1", + "typeString": "int_const 1331007097" + }, + "value": "0x4f558e79" + }, + "visibility": "private" + }, + { + "id": 5200, + "libraryName": { + "contractScope": null, + "id": 5198, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9857, + "src": "7821:8:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$9857", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "7815:27:8", + "typeName": { + "id": 5199, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7834:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 5203, + "libraryName": { + "contractScope": null, + "id": 5201, + "name": "AddressUtils", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5009, + "src": "7852:12:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_AddressUtils_$5009", + "typeString": "library AddressUtils" + } + }, + "nodeType": "UsingForDirective", + "src": "7846:31:8", + "typeName": { + "id": 5202, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7869:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "constant": true, + "id": 5206, + "name": "ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8044:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5204, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8044:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "30786630623965356261", + "id": 5205, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8086:10:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_4038714810_by_1", + "typeString": "int_const 4038714810" + }, + "value": "0xf0b9e5ba" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 5210, + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8140:48:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5209, + "keyType": { + "id": 5207, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8149:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8140:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5208, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8160:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5214, + "name": "tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8243:52:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 5213, + "keyType": { + "id": 5211, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8252:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "8243:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 5212, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8263:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5218, + "name": "ownedTokensCount", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8352:54:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 5217, + "keyType": { + "id": 5215, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8361:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8352:28:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 5216, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8372:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5224, + "name": "operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8460:73:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 5223, + "keyType": { + "id": 5219, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8469:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8460:46:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 5222, + "keyType": { + "id": 5220, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8489:7:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "8480:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 5221, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8500:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5226, + "name": "testint", + "nodeType": "VariableDeclaration", + "scope": 5764, + "src": "8542:19:8", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5225, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "public" + }, + { + "body": { + "id": 5240, + "nodeType": "Block", + "src": "8774:61:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5236, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5232, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5228, + "src": "8797:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5231, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "8789:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8789:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5234, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "8810:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5235, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "8810:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "8789:31:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5230, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "8781:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5237, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8781:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5238, + "nodeType": "ExpressionStatement", + "src": "8781:40:8" + }, + { + "id": 5239, + "nodeType": "PlaceholderStatement", + "src": "8828:1:8" + } + ] + }, + "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", + "id": 5241, + "name": "onlyOwnerOf", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5229, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5228, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5241, + "src": "8756:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5227, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8756:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "8755:18:8" + }, + "src": "8735:100:8", + "visibility": "internal" + }, + { + "body": { + "id": 5254, + "nodeType": "Block", + "src": "9041:69:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5247, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "9074:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "9074:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5249, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5243, + "src": "9086:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5246, + "name": "isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5567, + "src": "9056:17:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 5250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9056:39:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5245, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9048:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9048:48:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5252, + "nodeType": "ExpressionStatement", + "src": "9048:48:8" + }, + { + "id": 5253, + "nodeType": "PlaceholderStatement", + "src": "9103:1:8" + } + ] + }, + "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", + "id": 5255, + "name": "canTransfer", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 5244, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5243, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5255, + "src": "9023:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5242, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9022:18:8" + }, + "src": "9002:108:8", + "visibility": "internal" + }, + { + "body": { + "id": 5266, + "nodeType": "Block", + "src": "9145:176:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5259, + "name": "InterfaceId_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5194, + "src": "9245:18:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5258, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9226:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9226:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5261, + "nodeType": "ExpressionStatement", + "src": "9226:38:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5263, + "name": "InterfaceId_ERC721Exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5197, + "src": "9290:24:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 5262, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5064, + "src": "9271:18:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 5264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9271:44:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5265, + "nodeType": "ExpressionStatement", + "src": "9271:44:8" + } + ] + }, + "documentation": null, + "id": 5267, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5256, + "nodeType": "ParameterList", + "parameters": [], + "src": "9127:2:8" + }, + "returnParameters": { + "id": 5257, + "nodeType": "ParameterList", + "parameters": [], + "src": "9145:0:8" + }, + "scope": 5764, + "src": "9116:205:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5286, + "nodeType": "Block", + "src": "9585:80:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5275, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9600:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5277, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9618:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "9610:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9610:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "9600:20:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5274, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "9592:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9592:29:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5281, + "nodeType": "ExpressionStatement", + "src": "9592:29:8" + }, + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5282, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "9635:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5284, + "indexExpression": { + "argumentTypes": null, + "id": 5283, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5269, + "src": "9652:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9635:24:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 5273, + "id": 5285, + "nodeType": "Return", + "src": "9628:31:8" + } + ] + }, + "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", + "id": 5287, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5270, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5269, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9539:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5268, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9539:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9538:16:8" + }, + "returnParameters": { + "id": 5273, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5272, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5287, + "src": "9576:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5271, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9576:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9575:9:8" + }, + "scope": 5764, + "src": "9520:145:8", + "stateMutability": "view", + "superFunction": 5113, + "visibility": "public" + }, + { + "body": { + "id": 5310, + "nodeType": "Block", + "src": "9950:103:8", + "statements": [ + { + "assignments": [ + 5295 + ], + "declarations": [ + { + "constant": false, + "id": 5295, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5310, + "src": "9957:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5294, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9957:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5299, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5296, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "9973:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5298, + "indexExpression": { + "argumentTypes": null, + "id": 5297, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5289, + "src": "9984:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "9973:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9957:36:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5301, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10008:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5303, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10025:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5302, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10017:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10017:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10008:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5300, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10000:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5307, + "nodeType": "ExpressionStatement", + "src": "10000:28:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5308, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5295, + "src": "10042:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5293, + "id": 5309, + "nodeType": "Return", + "src": "10035:12:8" + } + ] + }, + "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", + "id": 5311, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5290, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5289, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9902:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5288, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "9902:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9901:18:8" + }, + "returnParameters": { + "id": 5293, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5292, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5311, + "src": "9941:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "9941:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "9940:9:8" + }, + "scope": 5764, + "src": "9885:168:8", + "stateMutability": "view", + "superFunction": 5120, + "visibility": "public" + }, + { + "body": { + "id": 5330, + "nodeType": "Block", + "src": "10299:82:8", + "statements": [ + { + "assignments": [ + 5319 + ], + "declarations": [ + { + "constant": false, + "id": 5319, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5330, + "src": "10306:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5318, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10306:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5323, + "initialValue": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5320, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "10322:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5322, + "indexExpression": { + "argumentTypes": null, + "id": 5321, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5313, + "src": "10333:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10322:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10306:36:8" + }, + { + "expression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5324, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5319, + "src": "10356:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10373:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5325, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "10365:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5327, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10365:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "10356:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5317, + "id": 5329, + "nodeType": "Return", + "src": "10349:26:8" + } + ] + }, + "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", + "id": 5331, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5313, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10254:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5312, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10254:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10253:18:8" + }, + "returnParameters": { + "id": 5317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5316, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5331, + "src": "10293:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5315, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "10293:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10292:6:8" + }, + "scope": 5764, + "src": "10238:143:8", + "stateMutability": "view", + "superFunction": 5127, + "visibility": "public" + }, + { + "body": { + "id": 5375, + "nodeType": "Block", + "src": "10851:229:8", + "statements": [ + { + "assignments": [ + 5339 + ], + "declarations": [ + { + "constant": false, + "id": 5339, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5375, + "src": "10858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5338, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5343, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5341, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "10882:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5340, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "10874:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10874:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "10858:33:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5345, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "10906:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "id": 5346, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10913:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10906:12:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5344, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10898:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10898:21:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5349, + "nodeType": "ExpressionStatement", + "src": "10898:21:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5351, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10934:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5352, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10934:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5353, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10948:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "10934:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5356, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "10974:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5357, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "10981:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "10981:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "id": 5355, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "10957:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10957:35:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "10934:58:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5350, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "10926:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10926:67:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5362, + "nodeType": "ExpressionStatement", + "src": "10926:67:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5363, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11002:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5365, + "indexExpression": { + "argumentTypes": null, + "id": 5364, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11017:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11002:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5366, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11029:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "11002:30:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5368, + "nodeType": "ExpressionStatement", + "src": "11002:30:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5370, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5339, + "src": "11053:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5371, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5333, + "src": "11060:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5372, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5335, + "src": "11065:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5369, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5098, + "src": "11044:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11044:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5374, + "nodeType": "EmitStatement", + "src": "11039:35:8" + } + ] + }, + "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", + "id": 5376, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5336, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5333, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10813:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5332, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "10813:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5335, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5376, + "src": "10826:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5334, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "10826:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "10812:31:8" + }, + "returnParameters": { + "id": 5337, + "nodeType": "ParameterList", + "parameters": [], + "src": "10851:0:8" + }, + "scope": 5764, + "src": "10796:284:8", + "stateMutability": "nonpayable", + "superFunction": 5134, + "visibility": "public" + }, + { + "body": { + "id": 5387, + "nodeType": "Block", + "src": "11383:44:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5383, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "11397:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5385, + "indexExpression": { + "argumentTypes": null, + "id": 5384, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5378, + "src": "11412:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11397:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 5382, + "id": 5386, + "nodeType": "Return", + "src": "11390:31:8" + } + ] + }, + "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", + "id": 5388, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5379, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5378, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11335:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5377, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11335:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11334:18:8" + }, + "returnParameters": { + "id": 5382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5381, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5388, + "src": "11374:7:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5380, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11374:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11373:9:8" + }, + "scope": 5764, + "src": "11314:113:8", + "stateMutability": "view", + "superFunction": 5141, + "visibility": "public" + }, + { + "body": { + "id": 5418, + "nodeType": "Block", + "src": "11778:146:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5399, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5396, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11793:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5397, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11800:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11800:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "11793:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5395, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "11785:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5400, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11785:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5401, + "nodeType": "ExpressionStatement", + "src": "11785:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5402, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "11818:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5406, + "indexExpression": { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5403, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11836:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5404, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11836:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "11818:29:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5407, + "indexExpression": { + "argumentTypes": null, + "id": 5405, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11848:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "11818:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5408, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11855:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "11818:46:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 5410, + "nodeType": "ExpressionStatement", + "src": "11818:46:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 5412, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "11891:3:8", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 5413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "11891:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5414, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5390, + "src": "11903:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5415, + "name": "_approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5392, + "src": "11908:9:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5411, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5106, + "src": "11876:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 5416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "11876:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5417, + "nodeType": "EmitStatement", + "src": "11871:47:8" + } + ] + }, + "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", + "id": 5419, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5393, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5390, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11742:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5389, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "11742:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5392, + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 5419, + "src": "11755:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11755:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "11741:29:8" + }, + "returnParameters": { + "id": 5394, + "nodeType": "ParameterList", + "parameters": [], + "src": "11778:0:8" + }, + "scope": 5764, + "src": "11715:209:8", + "stateMutability": "nonpayable", + "superFunction": 5148, + "visibility": "public" + }, + { + "body": { + "id": 5434, + "nodeType": "Block", + "src": "12362:56:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5428, + "name": "operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5224, + "src": "12376:17:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 5430, + "indexExpression": { + "argumentTypes": null, + "id": 5429, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5421, + "src": "12394:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:25:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 5432, + "indexExpression": { + "argumentTypes": null, + "id": 5431, + "name": "_operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5423, + "src": "12402:9:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "12376:36:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5427, + "id": 5433, + "nodeType": "Return", + "src": "12369:43:8" + } + ] + }, + "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", + "id": 5435, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5421, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12273:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5420, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12273:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5423, + "name": "_operator", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12294:17:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5422, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12294:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12266:50:8" + }, + "returnParameters": { + "id": 5427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5426, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5435, + "src": "12353:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5425, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12353:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12352:6:8" + }, + "scope": 5764, + "src": "12241:177:8", + "stateMutability": "view", + "superFunction": 5157, + "visibility": "public" + }, + { + "body": { + "id": 5484, + "nodeType": "Block", + "src": "12976:228:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5448, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "12991:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13008:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13000:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13000:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "12991:19:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5447, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "12983:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "12983:28:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5454, + "nodeType": "ExpressionStatement", + "src": "12983:28:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5456, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13026:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5458, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13041:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5457, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "13033:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5459, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13033:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "13026:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5455, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "13018:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13018:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5462, + "nodeType": "ExpressionStatement", + "src": "13018:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5464, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13067:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5465, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13074:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5463, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "13053:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5466, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13053:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5467, + "nodeType": "ExpressionStatement", + "src": "13053:30:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5469, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13106:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5470, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13113:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5468, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "13090:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13090:32:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5472, + "nodeType": "ExpressionStatement", + "src": "13090:32:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5474, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13140:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5475, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13145:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5473, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "13129:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13129:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5477, + "nodeType": "ExpressionStatement", + "src": "13129:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5479, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5437, + "src": "13177:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5480, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5439, + "src": "13184:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5481, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "13189:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5478, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "13168:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5482, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13168:30:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5483, + "nodeType": "EmitStatement", + "src": "13163:35:8" + } + ] + }, + "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5485, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5444, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5441, + "src": "12963:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5445, + "modifierName": { + "argumentTypes": null, + "id": 5443, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "12951:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "12951:21:8" + } + ], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5442, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5437, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12874:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5436, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12874:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5439, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12894:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5438, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "12894:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5441, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5485, + "src": "12912:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5440, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12912:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "12867:66:8" + }, + "returnParameters": { + "id": 5446, + "nodeType": "ParameterList", + "parameters": [], + "src": "12976:0:8" + }, + "scope": 5764, + "src": "12846:358:8", + "stateMutability": "nonpayable", + "superFunction": 5166, + "visibility": "public" + }, + { + "body": { + "id": 5504, + "nodeType": "Block", + "src": "13960:101:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5498, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5487, + "src": "14030:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5499, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5489, + "src": "14037:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5500, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "14042:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "hexValue": "", + "id": 5501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14052:2:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 5497, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5505, + 5535 + ], + "referencedDeclaration": 5535, + "src": "14013:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 5502, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14013:42:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5503, + "nodeType": "ExpressionStatement", + "src": "14013:42:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5505, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5494, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5491, + "src": "13947:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5495, + "modifierName": { + "argumentTypes": null, + "id": 5493, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "13935:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "13935:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5492, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5487, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13858:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5486, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13858:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5489, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13878:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "13878:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5491, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5505, + "src": "13896:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5490, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13896:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "13851:66:8" + }, + "returnParameters": { + "id": 5496, + "nodeType": "ParameterList", + "parameters": [], + "src": "13960:0:8" + }, + "scope": 5764, + "src": "13826:235:8", + "stateMutability": "nonpayable", + "superFunction": 5175, + "visibility": "public" + }, + { + "body": { + "id": 5534, + "nodeType": "Block", + "src": "14908:162:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5520, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "14928:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5521, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "14935:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5522, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14940:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5519, + "name": "transferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5485 + ], + "referencedDeclaration": 5485, + "src": "14915:12:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14915:34:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5524, + "nodeType": "ExpressionStatement", + "src": "14915:34:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5527, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5507, + "src": "15035:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5528, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5509, + "src": "15042:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5529, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "15047:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5530, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5513, + "src": "15057:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 5526, + "name": "checkAndCallSafeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5763, + "src": "15010:24:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 5531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15010:53:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5525, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "15002:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15002:62:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5533, + "nodeType": "ExpressionStatement", + "src": "15002:62:8" + } + ] + }, + "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", + "id": 5535, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [ + { + "argumentTypes": null, + "id": 5516, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5511, + "src": "14895:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 5517, + "modifierName": { + "argumentTypes": null, + "id": 5515, + "name": "canTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5255, + "src": "14883:11:8", + "typeDescriptions": { + "typeIdentifier": "t_modifier$_t_uint256_$", + "typeString": "modifier (uint256)" + } + }, + "nodeType": "ModifierInvocation", + "src": "14883:21:8" + } + ], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5514, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5507, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14781:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5506, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14781:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5509, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14801:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5508, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "14801:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5511, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14819:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5510, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14819:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5513, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5535, + "src": "14842:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5512, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "14842:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "14774:91:8" + }, + "returnParameters": { + "id": 5518, + "nodeType": "ParameterList", + "parameters": [], + "src": "14908:0:8" + }, + "scope": 5764, + "src": "14749:321:8", + "stateMutability": "nonpayable", + "superFunction": 5186, + "visibility": "public" + }, + { + "body": { + "id": 5566, + "nodeType": "Block", + "src": "15551:330:8", + "statements": [ + { + "assignments": [ + 5545 + ], + "declarations": [ + { + "constant": false, + "id": 5545, + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 5566, + "src": "15558:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5544, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15558:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5549, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5547, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15582:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5546, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "15574:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15574:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "15558:33:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5563, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 5558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5552, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5550, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15763:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5551, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15775:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15763:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5557, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5554, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5539, + "src": "15803:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5553, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5388 + ], + "referencedDeclaration": 5388, + "src": "15791:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15791:21:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5556, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15816:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "15791:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:61:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5560, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5545, + "src": "15852:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5561, + "name": "_spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5537, + "src": "15859:8:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5559, + "name": "isApprovedForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5435 + ], + "referencedDeclaration": 5435, + "src": "15835:16:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 5562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15835:33:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "15763:105:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5564, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "15754:121:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5543, + "id": 5565, + "nodeType": "Return", + "src": "15747:128:8" + } + ] + }, + "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", + "id": 5567, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5540, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5537, + "name": "_spender", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15459:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5536, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "15459:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5539, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15482:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5538, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15482:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15452:51:8" + }, + "returnParameters": { + "id": 5543, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5542, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5567, + "src": "15542:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5541, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "15542:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "15541:6:8" + }, + "scope": 5764, + "src": "15426:455:8", + "stateMutability": "view", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5595, + "nodeType": "Block", + "src": "16193:118:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5575, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16208:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16223:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5576, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16215:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16215:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "16208:17:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5574, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "16200:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16200:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5581, + "nodeType": "ExpressionStatement", + "src": "16200:26:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5583, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16244:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5584, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16249:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5582, + "name": "addTokenTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5690, + "src": "16233:10:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16233:25:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5586, + "nodeType": "ExpressionStatement", + "src": "16233:25:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5589, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16287:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5588, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16279:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5590, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16279:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5591, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5569, + "src": "16291:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5592, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5571, + "src": "16296:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5587, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16270:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5593, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16270:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5594, + "nodeType": "EmitStatement", + "src": "16265:40:8" + } + ] + }, + "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", + "id": 5596, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5572, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5569, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16153:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5568, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16153:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5571, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5596, + "src": "16166:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5570, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16166:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16152:31:8" + }, + "returnParameters": { + "id": 5573, + "nodeType": "ParameterList", + "parameters": [], + "src": "16193:0:8" + }, + "scope": 5764, + "src": "16138:173:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5621, + "nodeType": "Block", + "src": "16562:134:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5604, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16583:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5605, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16591:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5603, + "name": "clearApproval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5655, + "src": "16569:13:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16569:31:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5607, + "nodeType": "ExpressionStatement", + "src": "16569:31:8" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5609, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16623:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5610, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16631:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5608, + "name": "removeTokenFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5725, + "src": "16607:15:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5611, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16607:33:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5612, + "nodeType": "ExpressionStatement", + "src": "16607:33:8" + }, + { + "eventCall": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5614, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5598, + "src": "16661:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5616, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16677:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5615, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "16669:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5617, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16669:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 5618, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5600, + "src": "16681:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5613, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5090, + "src": "16652:8:8", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 5619, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16652:38:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5620, + "nodeType": "EmitStatement", + "src": "16647:43:8" + } + ] + }, + "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", + "id": 5622, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5598, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16519:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16519:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5600, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5622, + "src": "16535:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5599, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16535:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16518:34:8" + }, + "returnParameters": { + "id": 5602, + "nodeType": "ParameterList", + "parameters": [], + "src": "16562:0:8" + }, + "scope": 5764, + "src": "16504:192:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5654, + "nodeType": "Block", + "src": "17032:153:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5631, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17055:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5630, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "17047:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5632, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17047:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5633, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5624, + "src": "17068:6:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17047:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5629, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17039:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17039:36:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5636, + "nodeType": "ExpressionStatement", + "src": "17039:36:8" + }, + { + "condition": { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5637, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17086:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5639, + "indexExpression": { + "argumentTypes": null, + "id": 5638, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17101:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17086:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5641, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17122:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5640, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17114:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5642, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17114:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17086:38:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5653, + "nodeType": "IfStatement", + "src": "17082:98:8", + "trueBody": { + "id": 5652, + "nodeType": "Block", + "src": "17126:54:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 5650, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5644, + "name": "tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5214, + "src": "17135:14:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5646, + "indexExpression": { + "argumentTypes": null, + "id": 5645, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5626, + "src": "17150:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17135:24:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5648, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17170:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17162:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5649, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17162:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17135:37:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5651, + "nodeType": "ExpressionStatement", + "src": "17135:37:8" + } + ] + } + } + ] + }, + "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", + "id": 5655, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "clearApproval", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5624, + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "16989:14:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5623, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "16989:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5626, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5655, + "src": "17005:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5625, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17005:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "16988:34:8" + }, + "returnParameters": { + "id": 5628, + "nodeType": "ParameterList", + "parameters": [], + "src": "17032:0:8" + }, + "scope": 5764, + "src": "16966:219:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5689, + "nodeType": "Block", + "src": "17515:148:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5663, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17530:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5665, + "indexExpression": { + "argumentTypes": null, + "id": 5664, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17541:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17530:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5667, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17562:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "17554:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17554:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "17530:34:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5662, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "17522:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17522:43:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5671, + "nodeType": "ExpressionStatement", + "src": "17522:43:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5676, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5672, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "17572:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5674, + "indexExpression": { + "argumentTypes": null, + "id": 5673, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5659, + "src": "17583:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17572:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 5675, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17595:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "17572:26:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5677, + "nodeType": "ExpressionStatement", + "src": "17572:26:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5678, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17605:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5680, + "indexExpression": { + "argumentTypes": null, + "id": 5679, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17622:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "17605:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5685, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17655:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5681, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "17629:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5683, + "indexExpression": { + "argumentTypes": null, + "id": 5682, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5657, + "src": "17646:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "17629:21:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 9856, + "src": "17629:25:8", + "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": 5686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17629:28:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17605:52:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5688, + "nodeType": "ExpressionStatement", + "src": "17605:52:8" + } + ] + }, + "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", + "id": 5690, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "addTokenTo", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5657, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17475:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17475:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5659, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5690, + "src": "17488:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5658, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17488:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17474:31:8" + }, + "returnParameters": { + "id": 5661, + "nodeType": "ParameterList", + "parameters": [], + "src": "17515:0:8" + }, + "scope": 5764, + "src": "17455:208:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5724, + "nodeType": "Block", + "src": "18016:151:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 5702, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5699, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18039:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5698, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "18031:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5700, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18031:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5701, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18052:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "18031:26:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 5697, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "18023:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 5703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18023:35:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5704, + "nodeType": "ExpressionStatement", + "src": "18023:35:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5714, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5705, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18065:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5707, + "indexExpression": { + "argumentTypes": null, + "id": 5706, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18082:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18065:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "31", + "id": 5712, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18119:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + } + ], + "expression": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5708, + "name": "ownedTokensCount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5218, + "src": "18091:16:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 5710, + "indexExpression": { + "argumentTypes": null, + "id": 5709, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5692, + "src": "18108:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "18091:23:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sub", + "nodeType": "MemberAccess", + "referencedDeclaration": 9832, + "src": "18091:27:8", + "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": 5713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18091:30:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "18065:56:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 5715, + "nodeType": "ExpressionStatement", + "src": "18065:56:8" + }, + { + "expression": { + "argumentTypes": null, + "id": 5722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "baseExpression": { + "argumentTypes": null, + "id": 5716, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5210, + "src": "18128:10:8", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 5718, + "indexExpression": { + "argumentTypes": null, + "id": 5717, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5694, + "src": "18139:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "18128:20:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "hexValue": "30", + "id": 5720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18159:1:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 5719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "18151:7:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": "address" + }, + "id": 5721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18151:10:8", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "18128:33:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5723, + "nodeType": "ExpressionStatement", + "src": "18128:33:8" + } + ] + }, + "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", + "id": 5725, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "removeTokenFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5695, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5692, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17974:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5691, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "17974:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5694, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5725, + "src": "17989:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5693, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17989:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "17973:33:8" + }, + "returnParameters": { + "id": 5696, + "nodeType": "ParameterList", + "parameters": [], + "src": "18016:0:8" + }, + "scope": 5764, + "src": "17949:218:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + }, + { + "body": { + "id": 5762, + "nodeType": "Block", + "src": "18846:195:8", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 5741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "18857:17:8", + "subExpression": { + "argumentTypes": null, + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "argumentTypes": null, + "id": 5738, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18858:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 5739, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 5008, + "src": "18858:14:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 5740, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18858:16:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 5745, + "nodeType": "IfStatement", + "src": "18853:51:8", + "trueBody": { + "id": 5744, + "nodeType": "Block", + "src": "18876:28:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 5742, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "18892:4:8", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 5737, + "id": 5743, + "nodeType": "Return", + "src": "18885:11:8" + } + ] + } + }, + { + "assignments": [ + 5747 + ], + "declarations": [ + { + "constant": false, + "id": 5747, + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 5762, + "src": "18910:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 5746, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "18910:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": null, + "visibility": "internal" + } + ], + "id": 5756, + "initialValue": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5752, + "name": "_from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5727, + "src": "18971:5:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5753, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5731, + "src": "18978:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "argumentTypes": null, + "id": 5754, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5733, + "src": "18988:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5749, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5729, + "src": "18941:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 5748, + "name": "ERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5080, + "src": "18926:14:8", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", + "typeString": "type(contract ERC721Receiver)" + } + }, + "id": 5750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:19:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721Receiver_$5080", + "typeString": "contract ERC721Receiver" + } + }, + "id": 5751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 5079, + "src": "18926:36:8", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 5755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "18926:68:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "18910:84:8" + }, + { + "expression": { + "argumentTypes": null, + "components": [ + { + "argumentTypes": null, + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 5759, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "argumentTypes": null, + "id": 5757, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5747, + "src": "19009:6:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "argumentTypes": null, + "id": 5758, + "name": "ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5206, + "src": "19019:15:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "19009:25:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 5760, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "19008:27:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 5737, + "id": 5761, + "nodeType": "Return", + "src": "19001:34:8" + } + ] + }, + "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", + "id": 5763, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "checkAndCallSafeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5734, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5727, + "name": "_from", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18724:13:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5726, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18724:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5729, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18744:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18744:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5731, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18762:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5730, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18762:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5733, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18785:18:8", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 5732, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "18785:5:8", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18717:91:8" + }, + "returnParameters": { + "id": 5737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5736, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 5763, + "src": "18837:4:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 5735, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18837:4:8", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "18836:6:8" + }, + "scope": 5764, + "src": "18684:357:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "internal" + } + ], + "scope": 5798, + "src": "6942:12102:8" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 5765, + "name": "ERC721BasicToken", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 5764, + "src": "19081:16:8", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", + "typeString": "contract ERC721BasicToken" + } + }, + "id": 5766, + "nodeType": "InheritanceSpecifier", + "src": "19081:16:8" + } + ], + "contractDependencies": [ + 5017, + 5065, + 5187, + 5764 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 5797, + "linearizedBaseContracts": [ + 5797, + 5764, + 5187, + 5065, + 5017 + ], + "name": "ERC721BasicTokenMock", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 5780, + "nodeType": "Block", + "src": "19155:39:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5776, + "name": "_to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5768, + "src": "19174:3:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5777, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5770, + "src": "19179:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5773, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19162:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5775, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 5596, + "src": "19162:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19162:26:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5779, + "nodeType": "ExpressionStatement", + "src": "19162:26:8" + } + ] + }, + "documentation": null, + "id": 5781, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5771, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5768, + "name": "_to", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19117:11:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 5767, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19117:7:8", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 5770, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5781, + "src": "19130:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5769, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19130:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19116:31:8" + }, + "returnParameters": { + "id": 5772, + "nodeType": "ParameterList", + "parameters": [], + "src": "19155:0:8" + }, + "scope": 5797, + "src": "19103:91:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 5795, + "nodeType": "Block", + "src": "19239:53:8", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 5790, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19266:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 5789, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 5311 + ], + "referencedDeclaration": 5311, + "src": "19258:7:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 5791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19258:17:8", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 5792, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 5783, + "src": "19277:8:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 5786, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10464, + "src": "19246:5:8", + "typeDescriptions": { + "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", + "typeString": "contract super ERC721BasicTokenMock" + } + }, + "id": 5788, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "_burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 5622, + "src": "19246:11:8", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 5793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "19246:40:8", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 5794, + "nodeType": "ExpressionStatement", + "src": "19246:40:8" + } + ] + }, + "documentation": null, + "id": 5796, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 5784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 5783, + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 5796, + "src": "19214:16:8", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 5782, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "19214:7:8", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "19213:18:8" + }, + "returnParameters": { + "id": 5785, + "nodeType": "ParameterList", + "parameters": [], + "src": "19239:0:8" + }, + "scope": 5797, + "src": "19200:92:8", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + } + ], + "scope": 5798, + "src": "19048:247:8" + } + ], + "src": "0:19297:8" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:20.084Z", + "devdoc": { + "author": "Matt Condon (@shrugs)\r", + "details": "Implements ERC165 using a lookup table.\r", + "methods": { + "constructor": { + "details": "A contract implementing SupportsInterfaceWithLookup\r implement ERC165 itself\r" + }, + "supportsInterface(bytes4)": { + "details": "implement supportsInterface(bytes4) using a lookup table\r" + } + }, + "title": "SupportsInterfaceWithLookup\r" + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/contracts/Token.json b/src/contracts/Token.json new file mode 100644 index 0000000..a17adfa --- /dev/null +++ b/src/contracts/Token.json @@ -0,0 +1,2050 @@ +{ + "contractName": "Token", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "from", + "type": "address" + }, + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "addedValue", + "type": "uint256" + } + ], + "name": "increaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "spender", + "type": "address" + }, + { + "name": "subtractedValue", + "type": "uint256" + } + ], + "name": "decreaseAllowance", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "name": "owner", + "type": "address" + }, + { + "name": "spender", + "type": "address" + } + ], + "name": "allowance", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "name": "supply", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "name": "enabled", + "type": "bool" + } + ], + "name": "updateTransfersEnabled", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "enabled", + "type": "bool" + } + ], + "name": "updateTransfersReturningFalse", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "to", + "type": "address" + }, + { + "name": "value", + "type": "uint256" + } + ], + "name": "transfer", + "outputs": [ + { + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"updateTransfersReturningFalse\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"updateTransfersEnabled\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"supply\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"details\":\"Function to check the amount of tokens that an owner allowed to a spender.\\r\",\"params\":{\"owner\":\"address The address which owns the funds.\\r\",\"spender\":\"address The address which will spend the funds.\\r\"},\"return\":\"A uint256 specifying the amount of tokens still available for the spender.\\r\"},\"approve(address,uint256)\":{\"details\":\"Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\\r Beware that changing an allowance with this method brings the risk that someone may use both the old\\r and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\\r race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\\r https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\r\",\"params\":{\"spender\":\"The address which will spend the funds.\\r\",\"value\":\"The amount of tokens to be spent.\\r\"}},\"balanceOf(address)\":{\"details\":\"Gets the balance of the specified address.\\r\",\"params\":{\"owner\":\"The address to query the balance of.\\r\"},\"return\":\"An uint256 representing the amount owned by the passed address.\\r\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Decrease the amount of tokens that an owner allowed to a spender.\\r approve should be called when allowed_[_spender] == 0. To decrement\\r allowed value is better to use this function to avoid 2 calls (and wait until\\r the first transaction is mined)\\r From MonolithDAO Token.sol\\r Emits an Approval event.\\r\",\"params\":{\"spender\":\"The address which will spend the funds.\\r\",\"subtractedValue\":\"The amount of tokens to decrease the allowance by.\\r\"}},\"increaseAllowance(address,uint256)\":{\"details\":\"Increase the amount of tokens that an owner allowed to a spender.\\r approve should be called when allowed_[_spender] == 0. To increment\\r allowed value is better to use this function to avoid 2 calls (and wait until\\r the first transaction is mined)\\r From MonolithDAO Token.sol\\r Emits an Approval event.\\r\",\"params\":{\"addedValue\":\"The amount of tokens to increase the allowance by.\\r\",\"spender\":\"The address which will spend the funds.\\r\"}},\"totalSupply()\":{\"details\":\"Total number of tokens in existence\\r\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfer tokens from one address to another.\\r Note that while this function emits an Approval event, this is not required as per the specification,\\r and other compliant implementations may not emit the event.\\r\",\"params\":{\"from\":\"address The address which you want to send tokens from\\r\",\"to\":\"address The address which you want to transfer to\\r\",\"value\":\"uint256 the amount of tokens to be transferred\\r\"}}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/Token.sol\":\"Token\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol\":{\"keccak256\":\"0x83d94afc84930834148f8e00b2b2b624be5e2a910aeb9f508b6e3252648b304a\",\"urls\":[\"bzzr://074edfefdd7f638d059397b8b72e70605bb8eba1e750d8d512d86a5d8abaf966\",\"dweb:/ipfs/QmTPEnc9wjRf7jZ1xzh68sAjusFY5XHCTLpy79yCtCuWrA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/Token.sol\":{\"keccak256\":\"0x638fbdd82646940a426b324c00733959a03492957fc734cc6556626d3d520f96\",\"urls\":[\"bzzr://89de5853571616e3b642c3e6b412cef7094a1dda61c72ee4126dbbb3a593c5c2\",\"dweb:/ipfs/QmUoyxdsv3eYvpKKCqtK9eWQDD3bqT5wcWtJ8oxeLLsP6c\"]}},\"version\":1}", + "bytecode": "0x60806040526003805461ff001960ff1990911660011716905534801561002457600080fd5b506040516106dd3803806106dd8339818101604052602081101561004757600080fd5b505161005c33826001600160e01b0361006216565b5061012d565b6001600160a01b03821661007557600080fd5b61008e8160025461011460201b61054d1790919060201c565b6002556001600160a01b038216600090815260208181526040909120546100be91839061054d610114821b17901c565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008282018381101561012657600080fd5b9392505050565b6105a18061013c6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063a457c2d711610066578063a457c2d714610185578063a9059cbb146101b1578063b43c36ec146101dd578063d34a2161146101fe578063dd62ed3e1461021d5761009e565b8063095ea7b3146100a357806318160ddd146100e357806323b872dd146100fd578063395093511461013357806370a082311461015f575b600080fd5b6100cf600480360360408110156100b957600080fd5b506001600160a01b03813516906020013561024b565b604080519115158252519081900360200190f35b6100eb610262565b60408051918252519081900360200190f35b6100cf6004803603606081101561011357600080fd5b506001600160a01b03813581169160208101359091169060400135610268565b6100cf6004803603604081101561014957600080fd5b506001600160a01b0381351690602001356102bf565b6100eb6004803603602081101561017557600080fd5b50356001600160a01b03166102fb565b6100cf6004803603604081101561019b57600080fd5b506001600160a01b038135169060200135610316565b6100cf600480360360408110156101c757600080fd5b506001600160a01b038135169060200135610352565b6101fc600480360360208110156101f357600080fd5b5035151561038d565b005b6101fc6004803603602081101561021457600080fd5b503515156103a7565b6100eb6004803603604081101561023357600080fd5b506001600160a01b03813581169160200135166103ba565b60006102583384846103e5565b5060015b92915050565b60025490565b600061027584848461046d565b6001600160a01b0384166000908152600160209081526040808320338085529252909120546102b59186916102b0908663ffffffff61053816565b6103e5565b5060019392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102589185906102b0908663ffffffff61054d16565b6001600160a01b031660009081526020819052604090205490565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102589185906102b0908663ffffffff61053816565b600354600090610100900460ff161561036d5750600061025c565b60035460ff1661037c57600080fd5b610386838361055f565b9392505050565b600380549115156101000261ff0019909216919091179055565b6003805460ff1916911515919091179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0382166103f857600080fd5b6001600160a01b03831661040b57600080fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03821661048057600080fd5b6001600160a01b0383166000908152602081905260409020546104a9908263ffffffff61053816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546104de908263ffffffff61054d16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282111561054757600080fd5b50900390565b60008282018381101561038657600080fd5b600061025833848461046d56fea265627a7a723058209d11020aec77b6ad378aeda4e612077e5657dfe7c46059ff69d41b339a7b468b64736f6c63430005090032", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c8063a457c2d711610066578063a457c2d714610185578063a9059cbb146101b1578063b43c36ec146101dd578063d34a2161146101fe578063dd62ed3e1461021d5761009e565b8063095ea7b3146100a357806318160ddd146100e357806323b872dd146100fd578063395093511461013357806370a082311461015f575b600080fd5b6100cf600480360360408110156100b957600080fd5b506001600160a01b03813516906020013561024b565b604080519115158252519081900360200190f35b6100eb610262565b60408051918252519081900360200190f35b6100cf6004803603606081101561011357600080fd5b506001600160a01b03813581169160208101359091169060400135610268565b6100cf6004803603604081101561014957600080fd5b506001600160a01b0381351690602001356102bf565b6100eb6004803603602081101561017557600080fd5b50356001600160a01b03166102fb565b6100cf6004803603604081101561019b57600080fd5b506001600160a01b038135169060200135610316565b6100cf600480360360408110156101c757600080fd5b506001600160a01b038135169060200135610352565b6101fc600480360360208110156101f357600080fd5b5035151561038d565b005b6101fc6004803603602081101561021457600080fd5b503515156103a7565b6100eb6004803603604081101561023357600080fd5b506001600160a01b03813581169160200135166103ba565b60006102583384846103e5565b5060015b92915050565b60025490565b600061027584848461046d565b6001600160a01b0384166000908152600160209081526040808320338085529252909120546102b59186916102b0908663ffffffff61053816565b6103e5565b5060019392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102589185906102b0908663ffffffff61054d16565b6001600160a01b031660009081526020819052604090205490565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102589185906102b0908663ffffffff61053816565b600354600090610100900460ff161561036d5750600061025c565b60035460ff1661037c57600080fd5b610386838361055f565b9392505050565b600380549115156101000261ff0019909216919091179055565b6003805460ff1916911515919091179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0382166103f857600080fd5b6001600160a01b03831661040b57600080fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03821661048057600080fd5b6001600160a01b0383166000908152602081905260409020546104a9908263ffffffff61053816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546104de908263ffffffff61054d16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282111561054757600080fd5b50900390565b60008282018381101561038657600080fd5b600061025833848461046d56fea265627a7a723058209d11020aec77b6ad378aeda4e612077e5657dfe7c46059ff69d41b339a7b468b64736f6c63430005090032", + "sourceMap": "65:663:25:-;;;96:28;;;-1:-1:-1;;;;96:28:25;;;120:4;96:28;131:36;;;176:79;5:2:-1;;;;30:1;27;20:12;5:2;176:79:25;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;176:79:25;222:25;228:10;176:79;-1:-1:-1;;;;;222:5:25;:25;:::i;:::-;176:79;65:663;;5948:269:19;-1:-1:-1;;;;;6023:21:19;;6015:30;;;;;;6073:23;6090:5;6073:12;;:16;;;;;;:23;;;;:::i;:::-;6058:12;:38;-1:-1:-1;;;;;6128:18:19;;:9;:18;;;;;;;;;;;;:29;;6151:5;;6128:22;;;;;:29;;:::i;:::-;-1:-1:-1;;;;;6107:18:19;;:9;:18;;;;;;;;;;;:50;;;;6173:36;;;;;;;6107:18;;:9;;6173:36;;;;;;;;;;5948:269;;:::o;589:150:22:-;647:7;679:5;;;703:6;;;;695:15;;;;;;730:1;589:150;-1:-1:-1;;;589:150:22:o;65:663:25:-;;;;;;;", + "deployedSourceMap": "65:663:25:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;65:663:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2807:148:19;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2807:148:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;958:91;;;:::i;:::-;;;;;;;;;;;;;;;;3428:228;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3428:228:19;;;;;;;;;;;;;;;;;:::i;4171:203::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4171:203:19;;;;;;;;:::i;1269:106::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1269:106:19;-1:-1:-1;;;;;1269:106:19;;:::i;4894:213::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4894:213:19;;;;;;;;:::i;493:232:25:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;493:232:25;;;;;;;;:::i;371:114::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;371:114:25;;;;:::i;:::-;;263:100;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;263:100:25;;;;:::i;1714:131:19:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1714:131:19;;;;;;;;;;:::i;2807:148::-;2872:4;2889:36;2898:10;2910:7;2919:5;2889:8;:36::i;:::-;-1:-1:-1;2943:4:19;2807:148;;;;;:::o;958:91::-;1029:12;;958:91;:::o;3428:228::-;3507:4;3524:26;3534:4;3540:2;3544:5;3524:9;:26::i;:::-;-1:-1:-1;;;;;3588:14:19;;;;;;:8;:14;;;;;;;;3576:10;3588:26;;;;;;;;;3561:65;;3570:4;;3588:37;;3619:5;3588:37;:30;:37;:::i;:::-;3561:8;:65::i;:::-;-1:-1:-1;3644:4:19;3428:228;;;;;:::o;4171:203::-;4277:10;4251:4;4298:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;4298:29:19;;;;;;;;;;4251:4;;4268:76;;4289:7;;4298:45;;4332:10;4298:45;:33;:45;:::i;1269:106::-;-1:-1:-1;;;;;1351:16:19;1324:7;1351:16;;;;;;;;;;;;1269:106::o;4894:213::-;5005:10;4979:4;5026:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;5026:29:19;;;;;;;;;;4979:4;;4996:81;;5017:7;;5026:50;;5060:15;5026:50;:33;:50;:::i;493:232:25:-;575:23;;554:4;;575:23;;;;;571:68;;;-1:-1:-1;622:5:25;615:12;;571:68;657:16;;;;649:25;;;;;;692;707:2;711:5;692:14;:25::i;:::-;685:32;493:232;-1:-1:-1;;;493:232:25:o;371:114::-;444:23;:33;;;;;;;-1:-1:-1;;444:33:25;;;;;;;;;371:114::o;263:100::-;329:16;:26;;-1:-1:-1;;329:26:25;;;;;;;;;;263:100::o;1714:131:19:-;-1:-1:-1;;;;;1813:15:19;;;1786:7;1813:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;1714:131::o;6993:254::-;-1:-1:-1;;;;;7086:21:19;;7078:30;;;;;;-1:-1:-1;;;;;7127:19:19;;7119:28;;;;;;-1:-1:-1;;;;;7160:15:19;;;;;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;:32;;;7208:31;;;;;;;;;;;;;;;;;6993:254;;;:::o;5334:262::-;-1:-1:-1;;;;;5422:16:19;;5414:25;;;;;;-1:-1:-1;;;;;5470:15:19;;:9;:15;;;;;;;;;;;:26;;5490:5;5470:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;5452:15:19;;;:9;:15;;;;;;;;;;;:44;;;;5523:13;;;;;;;:24;;5541:5;5523:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;5507:13:19;;;:9;:13;;;;;;;;;;;;:40;;;;5563:25;;;;;;;5507:13;;5563:25;;;;;;;;;;;;;5334:262;;;:::o;431:150:22:-;489:7;522:1;517;:6;;509:15;;;;;;-1:-1:-1;547:5:22;;;431:150::o;589:::-;647:7;679:5;;;703:6;;;;695:15;;;;;2020:140:19;2081:4;2098:32;2108:10;2120:2;2124:5;2098:9;:32::i", + "source": "pragma solidity >=0.5.0 < 0.6.0;\r\n\r\nimport \"../oz/ERC20.sol\";\r\n\r\ncontract Token is ERC20 {\r\n bool transfersEnabled = true;\r\n bool transfersReturningFalse = false;\r\n\r\n constructor(uint256 supply) public {\r\n _mint(msg.sender, supply);\r\n }\r\n\r\n function updateTransfersEnabled(bool enabled) external {\r\n transfersEnabled = enabled;\r\n }\r\n\r\n function updateTransfersReturningFalse(bool enabled) external {\r\n transfersReturningFalse = enabled;\r\n }\r\n\r\n function transfer(address to, uint256 value) public returns (bool) {\r\n if (transfersReturningFalse) {\r\n return false;\r\n }\r\n require(transfersEnabled);\r\n return super.transfer(to, value);\r\n }\r\n}\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\tokens\\Token.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/Token.sol", + "exportedSymbols": { + "Token": [ + 10396 + ] + }, + "id": 10397, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 10329, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:25" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol", + "file": "../oz/ERC20.sol", + "id": 10330, + "nodeType": "ImportDirective", + "scope": 10397, + "sourceUnit": 9651, + "src": "36:25:25", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10331, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9650, + "src": "83:5:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9650", + "typeString": "contract ERC20" + } + }, + "id": 10332, + "nodeType": "InheritanceSpecifier", + "src": "83:5:25" + } + ], + "contractDependencies": [ + 9650, + 9719 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 10396, + "linearizedBaseContracts": [ + 10396, + 9650, + 9719 + ], + "name": "Token", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 10335, + "name": "transfersEnabled", + "nodeType": "VariableDeclaration", + "scope": 10396, + "src": "96:28:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10333, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "96:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 10334, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "120:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10338, + "name": "transfersReturningFalse", + "nodeType": "VariableDeclaration", + "scope": 10396, + "src": "131:36:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10336, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "131:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 10337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "162:5:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "visibility": "internal" + }, + { + "body": { + "id": 10349, + "nodeType": "Block", + "src": "211:44:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10344, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "228:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "228:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 10346, + "name": "supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10340, + "src": "240:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10343, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9539, + "src": "222:5:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 10347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "222:25:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10348, + "nodeType": "ExpressionStatement", + "src": "222:25:25" + } + ] + }, + "documentation": null, + "id": 10350, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10341, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10340, + "name": "supply", + "nodeType": "VariableDeclaration", + "scope": 10350, + "src": "188:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10339, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "188:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "187:16:25" + }, + "returnParameters": { + "id": 10342, + "nodeType": "ParameterList", + "parameters": [], + "src": "211:0:25" + }, + "scope": 10396, + "src": "176:79:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 10359, + "nodeType": "Block", + "src": "318:45:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10355, + "name": "transfersEnabled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10335, + "src": "329:16:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10356, + "name": "enabled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10352, + "src": "348:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "329:26:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10358, + "nodeType": "ExpressionStatement", + "src": "329:26:25" + } + ] + }, + "documentation": null, + "id": 10360, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "updateTransfersEnabled", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10353, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10352, + "name": "enabled", + "nodeType": "VariableDeclaration", + "scope": 10360, + "src": "295:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10351, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "295:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "294:14:25" + }, + "returnParameters": { + "id": 10354, + "nodeType": "ParameterList", + "parameters": [], + "src": "318:0:25" + }, + "scope": 10396, + "src": "263:100:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 10369, + "nodeType": "Block", + "src": "433:52:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10365, + "name": "transfersReturningFalse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10338, + "src": "444:23:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10366, + "name": "enabled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10362, + "src": "470:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "444:33:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10368, + "nodeType": "ExpressionStatement", + "src": "444:33:25" + } + ] + }, + "documentation": null, + "id": 10370, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "updateTransfersReturningFalse", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10363, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10362, + "name": "enabled", + "nodeType": "VariableDeclaration", + "scope": 10370, + "src": "410:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10361, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "410:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "409:14:25" + }, + "returnParameters": { + "id": 10364, + "nodeType": "ParameterList", + "parameters": [], + "src": "433:0:25" + }, + "scope": 10396, + "src": "371:114:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 10394, + "nodeType": "Block", + "src": "560:165:25", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 10379, + "name": "transfersReturningFalse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10338, + "src": "575:23:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 10383, + "nodeType": "IfStatement", + "src": "571:68:25", + "trueBody": { + "id": 10382, + "nodeType": "Block", + "src": "600:39:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 10380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "622:5:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 10378, + "id": 10381, + "nodeType": "Return", + "src": "615:12:25" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10385, + "name": "transfersEnabled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10335, + "src": "657:16:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10384, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "649:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 10386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "649:25:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10387, + "nodeType": "ExpressionStatement", + "src": "649:25:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10390, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10372, + "src": "707:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10391, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10374, + "src": "711:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10388, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10494, + "src": "692:5:25", + "typeDescriptions": { + "typeIdentifier": "t_super$_Token_$10396", + "typeString": "contract super Token" + } + }, + "id": 10389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9343, + "src": "692:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" + } + }, + "id": 10392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "692:25:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 10378, + "id": 10393, + "nodeType": "Return", + "src": "685:32:25" + } + ] + }, + "documentation": null, + "id": 10395, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10372, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 10395, + "src": "511:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10371, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "511:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10374, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 10395, + "src": "523:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "523:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "510:27:25" + }, + "returnParameters": { + "id": 10378, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10377, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10395, + "src": "554:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10376, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "554:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "553:6:25" + }, + "scope": 10396, + "src": "493:232:25", + "stateMutability": "nonpayable", + "superFunction": 9343, + "visibility": "public" + } + ], + "scope": 10397, + "src": "65:663:25" + } + ], + "src": "0:730:25" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/Token.sol", + "exportedSymbols": { + "Token": [ + 10396 + ] + }, + "id": 10397, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 10329, + "literals": [ + "solidity", + ">=", + "0.5", + ".0", + "<", + "0.6", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:32:25" + }, + { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol", + "file": "../oz/ERC20.sol", + "id": 10330, + "nodeType": "ImportDirective", + "scope": 10397, + "sourceUnit": 9651, + "src": "36:25:25", + "symbolAliases": [], + "unitAlias": "" + }, + { + "baseContracts": [ + { + "arguments": null, + "baseName": { + "contractScope": null, + "id": 10331, + "name": "ERC20", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 9650, + "src": "83:5:25", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC20_$9650", + "typeString": "contract ERC20" + } + }, + "id": 10332, + "nodeType": "InheritanceSpecifier", + "src": "83:5:25" + } + ], + "contractDependencies": [ + 9650, + 9719 + ], + "contractKind": "contract", + "documentation": null, + "fullyImplemented": true, + "id": 10396, + "linearizedBaseContracts": [ + 10396, + 9650, + 9719 + ], + "name": "Token", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "id": 10335, + "name": "transfersEnabled", + "nodeType": "VariableDeclaration", + "scope": 10396, + "src": "96:28:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10333, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "96:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "74727565", + "id": 10334, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "120:4:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 10338, + "name": "transfersReturningFalse", + "nodeType": "VariableDeclaration", + "scope": 10396, + "src": "131:36:25", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10336, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "131:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 10337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "162:5:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "visibility": "internal" + }, + { + "body": { + "id": 10349, + "nodeType": "Block", + "src": "211:44:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "expression": { + "argumentTypes": null, + "id": 10344, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10411, + "src": "228:3:25", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 10345, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "referencedDeclaration": null, + "src": "228:10:25", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "argumentTypes": null, + "id": 10346, + "name": "supply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10340, + "src": "240:6:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 10343, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9539, + "src": "222:5:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 10347, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "222:25:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10348, + "nodeType": "ExpressionStatement", + "src": "222:25:25" + } + ] + }, + "documentation": null, + "id": 10350, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10341, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10340, + "name": "supply", + "nodeType": "VariableDeclaration", + "scope": 10350, + "src": "188:14:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10339, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "188:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "187:16:25" + }, + "returnParameters": { + "id": 10342, + "nodeType": "ParameterList", + "parameters": [], + "src": "211:0:25" + }, + "scope": 10396, + "src": "176:79:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "public" + }, + { + "body": { + "id": 10359, + "nodeType": "Block", + "src": "318:45:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10355, + "name": "transfersEnabled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10335, + "src": "329:16:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10356, + "name": "enabled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10352, + "src": "348:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "329:26:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10358, + "nodeType": "ExpressionStatement", + "src": "329:26:25" + } + ] + }, + "documentation": null, + "id": 10360, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "updateTransfersEnabled", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10353, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10352, + "name": "enabled", + "nodeType": "VariableDeclaration", + "scope": 10360, + "src": "295:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10351, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "295:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "294:14:25" + }, + "returnParameters": { + "id": 10354, + "nodeType": "ParameterList", + "parameters": [], + "src": "318:0:25" + }, + "scope": 10396, + "src": "263:100:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 10369, + "nodeType": "Block", + "src": "433:52:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "id": 10367, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "argumentTypes": null, + "id": 10365, + "name": "transfersReturningFalse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10338, + "src": "444:23:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "argumentTypes": null, + "id": 10366, + "name": "enabled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10362, + "src": "470:7:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "444:33:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 10368, + "nodeType": "ExpressionStatement", + "src": "444:33:25" + } + ] + }, + "documentation": null, + "id": 10370, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "updateTransfersReturningFalse", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10363, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10362, + "name": "enabled", + "nodeType": "VariableDeclaration", + "scope": 10370, + "src": "410:12:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10361, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "410:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "409:14:25" + }, + "returnParameters": { + "id": 10364, + "nodeType": "ParameterList", + "parameters": [], + "src": "433:0:25" + }, + "scope": 10396, + "src": "371:114:25", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": { + "id": 10394, + "nodeType": "Block", + "src": "560:165:25", + "statements": [ + { + "condition": { + "argumentTypes": null, + "id": 10379, + "name": "transfersReturningFalse", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10338, + "src": "575:23:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": null, + "id": 10383, + "nodeType": "IfStatement", + "src": "571:68:25", + "trueBody": { + "id": 10382, + "nodeType": "Block", + "src": "600:39:25", + "statements": [ + { + "expression": { + "argumentTypes": null, + "hexValue": "66616c7365", + "id": 10380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "622:5:25", + "subdenomination": null, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 10378, + "id": 10381, + "nodeType": "Return", + "src": "615:12:25" + } + ] + } + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10385, + "name": "transfersEnabled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10335, + "src": "657:16:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 10384, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 10414, + 10415 + ], + "referencedDeclaration": 10414, + "src": "649:7:25", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 10386, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "649:25:25", + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 10387, + "nodeType": "ExpressionStatement", + "src": "649:25:25" + }, + { + "expression": { + "argumentTypes": null, + "arguments": [ + { + "argumentTypes": null, + "id": 10390, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10372, + "src": "707:2:25", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "argumentTypes": null, + "id": 10391, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10374, + "src": "711:5:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "argumentTypes": null, + "id": 10388, + "name": "super", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 10494, + "src": "692:5:25", + "typeDescriptions": { + "typeIdentifier": "t_super$_Token_$10396", + "typeString": "contract super Token" + } + }, + "id": 10389, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "referencedDeclaration": 9343, + "src": "692:14:25", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) returns (bool)" + } + }, + "id": 10392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "692:25:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 10378, + "id": 10393, + "nodeType": "Return", + "src": "685:32:25" + } + ] + }, + "documentation": null, + "id": 10395, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 10375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10372, + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 10395, + "src": "511:10:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 10371, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "511:7:25", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 10374, + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 10395, + "src": "523:13:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "523:7:25", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "510:27:25" + }, + "returnParameters": { + "id": 10378, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 10377, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 10395, + "src": "554:4:25", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 10376, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "554:4:25", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "553:6:25" + }, + "scope": 10396, + "src": "493:232:25", + "stateMutability": "nonpayable", + "superFunction": 9343, + "visibility": "public" + } + ], + "scope": 10397, + "src": "65:663:25" + } + ], + "src": "0:730:25" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": { + "10": { + "events": { + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "from", + "type": "address" + }, + { + "indexed": true, + "name": "to", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "name": "spender", + "type": "address" + }, + { + "indexed": false, + "name": "value", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + } + }, + "links": {}, + "address": "0xeD1D3391FAfd8dB75864a40074E2E690F48CE7db", + "transactionHash": "0x0efe35f06f94f71e8e13ff9145ee3062ab7c55b7726c7acaf81aaa90bc09d3d0" + } + }, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:31.215Z", + "networkType": "ethereum", + "devdoc": { + "methods": { + "allowance(address,address)": { + "details": "Function to check the amount of tokens that an owner allowed to a spender.\r", + "params": { + "owner": "address The address which owns the funds.\r", + "spender": "address The address which will spend the funds.\r" + }, + "return": "A uint256 specifying the amount of tokens still available for the spender.\r" + }, + "approve(address,uint256)": { + "details": "Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\r Beware that changing an allowance with this method brings the risk that someone may use both the old\r and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\r race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\r https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\r", + "params": { + "spender": "The address which will spend the funds.\r", + "value": "The amount of tokens to be spent.\r" + } + }, + "balanceOf(address)": { + "details": "Gets the balance of the specified address.\r", + "params": { + "owner": "The address to query the balance of.\r" + }, + "return": "An uint256 representing the amount owned by the passed address.\r" + }, + "decreaseAllowance(address,uint256)": { + "details": "Decrease the amount of tokens that an owner allowed to a spender.\r approve should be called when allowed_[_spender] == 0. To decrement\r allowed value is better to use this function to avoid 2 calls (and wait until\r the first transaction is mined)\r From MonolithDAO Token.sol\r Emits an Approval event.\r", + "params": { + "spender": "The address which will spend the funds.\r", + "subtractedValue": "The amount of tokens to decrease the allowance by.\r" + } + }, + "increaseAllowance(address,uint256)": { + "details": "Increase the amount of tokens that an owner allowed to a spender.\r approve should be called when allowed_[_spender] == 0. To increment\r allowed value is better to use this function to avoid 2 calls (and wait until\r the first transaction is mined)\r From MonolithDAO Token.sol\r Emits an Approval event.\r", + "params": { + "addedValue": "The amount of tokens to increase the allowance by.\r", + "spender": "The address which will spend the funds.\r" + } + }, + "totalSupply()": { + "details": "Total number of tokens in existence\r" + }, + "transferFrom(address,address,uint256)": { + "details": "Transfer tokens from one address to another.\r Note that while this function emits an Approval event, this is not required as per the specification,\r and other compliant implementations may not emit the event.\r", + "params": { + "from": "address The address which you want to send tokens from\r", + "to": "address The address which you want to transfer to\r", + "value": "uint256 the amount of tokens to be transferred\r" + } + } + } + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/contracts/iBountiesMetaTxRelayer.json b/src/contracts/iBountiesMetaTxRelayer.json new file mode 100644 index 0000000..3a76d81 --- /dev/null +++ b/src/contracts/iBountiesMetaTxRelayer.json @@ -0,0 +1,7827 @@ +{ + "contractName": "iBountiesMetaTxRelayer", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "signature", + "type": "bytes" + }, + { + "name": "_issuers", + "type": "address[]" + }, + { + "name": "_approvers", + "type": "address[]" + }, + { + "name": "_data", + "type": "string" + }, + { + "name": "_deadline", + "type": "uint256" + }, + { + "name": "_token", + "type": "address" + }, + { + "name": "_tokenVersion", + "type": "uint256" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaIssueBounty", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "signature", + "type": "bytes" + }, + { + "name": "_issuers", + "type": "address[]" + }, + { + "name": "_approvers", + "type": "address[]" + }, + { + "name": "_data", + "type": "string" + }, + { + "name": "_deadline", + "type": "uint256" + }, + { + "name": "_token", + "type": "address" + }, + { + "name": "_tokenVersion", + "type": "uint256" + }, + { + "name": "_depositAmount", + "type": "uint256" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaIssueAndContribute", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_amount", + "type": "uint256" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaContribute", + "outputs": [], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_contributionId", + "type": "uint256" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaRefundContribution", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_contributionIds", + "type": "uint256[]" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaRefundMyContributions", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_contributionIds", + "type": "uint256[]" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaRefundContributions", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_amounts", + "type": "uint256[]" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaDrainBounty", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_data", + "type": "string" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaPerformAction", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_fulfillers", + "type": "address[]" + }, + { + "name": "_data", + "type": "string" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaFulfillBounty", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_fulfillmentId", + "type": "uint256" + }, + { + "name": "_fulfillers", + "type": "address[]" + }, + { + "name": "_data", + "type": "string" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaUpdateFulfillment", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_fulfillmentId", + "type": "uint256" + }, + { + "name": "_approverId", + "type": "uint256" + }, + { + "name": "_tokenAmounts", + "type": "uint256[]" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaAcceptFulfillment", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_fulfillers", + "type": "address[]" + }, + { + "name": "_data", + "type": "string" + }, + { + "name": "_approverId", + "type": "uint256" + }, + { + "name": "_tokenAmounts", + "type": "uint256[]" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaFulfillAndAccept", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_issuers", + "type": "address[]" + }, + { + "name": "_approvers", + "type": "address[]" + }, + { + "name": "_data", + "type": "string" + }, + { + "name": "_deadline", + "type": "uint256" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaChangeBounty", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_approvers", + "type": "address[]" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaAddApprovers", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_issuers", + "type": "address[]" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaAddIssuers", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_deadline", + "type": "uint256" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaChangeDeadline", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_data", + "type": "string" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaChangeData", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_approverId", + "type": "uint256" + }, + { + "name": "_approver", + "type": "address" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaChangeApprover", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "_signature", + "type": "bytes" + }, + { + "name": "_bountyId", + "type": "uint256" + }, + { + "name": "_issuerId", + "type": "uint256" + }, + { + "name": "_issuerIdToChange", + "type": "uint256" + }, + { + "name": "_newIssuer", + "type": "address" + }, + { + "name": "_nonce", + "type": "uint256" + } + ], + "name": "metaChangeIssuer", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_fulfillers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_approverId\",\"type\":\"uint256\"},{\"name\":\"_tokenAmounts\",\"type\":\"uint256[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaFulfillAndAccept\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_fulfillmentId\",\"type\":\"uint256\"},{\"name\":\"_fulfillers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaUpdateFulfillment\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaChangeData\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaChangeDeadline\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaChangeBounty\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaContribute\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaPerformAction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_contributionIds\",\"type\":\"uint256[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaRefundMyContributions\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_fulfillmentId\",\"type\":\"uint256\"},{\"name\":\"_approverId\",\"type\":\"uint256\"},{\"name\":\"_tokenAmounts\",\"type\":\"uint256[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaAcceptFulfillment\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaAddApprovers\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_contributionId\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaRefundContribution\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_approverId\",\"type\":\"uint256\"},{\"name\":\"_approver\",\"type\":\"address\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaChangeApprover\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_amounts\",\"type\":\"uint256[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaDrainBounty\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"signature\",\"type\":\"bytes\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_tokenVersion\",\"type\":\"uint256\"},{\"name\":\"_depositAmount\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaIssueAndContribute\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaAddIssuers\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_issuerIdToChange\",\"type\":\"uint256\"},{\"name\":\"_newIssuer\",\"type\":\"address\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaChangeIssuer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"signature\",\"type\":\"bytes\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_tokenVersion\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaIssueBounty\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_fulfillers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaFulfillBounty\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_contributionIds\",\"type\":\"uint256[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaRefundContributions\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/iBountiesMetaTxRelayer.sol\":\"iBountiesMetaTxRelayer\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/iBountiesMetaTxRelayer.sol\":{\"keccak256\":\"0x2c7a62683ee97ced4a5d82a5d24524d49e4e0ff8a8c7a4586e6450e590e6f917\",\"urls\":[\"bzzr://b01b873559523fad3de083f16b2d265f41de56a4b2d8d13955ec5c6e79a0d53f\",\"dweb:/ipfs/QmUkBDYA6czW2yFAypaw6EwreqN3795GYaG8PsYh2w5SC3\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity >0.5.0<=0.7.0;\r\n\r\ninterface iBountiesMetaTxRelayer {\r\n\r\n // function storeValue(uint value) external;\r\n // function getValues() external view returns(uint);\r\n\r\n function metaIssueBounty(\r\n bytes calldata signature,\r\n address payable[] calldata _issuers,\r\n address[] calldata _approvers,\r\n string calldata _data,\r\n uint _deadline,\r\n address _token,\r\n uint _tokenVersion,\r\n uint _nonce)\r\n external\r\n returns (uint);\r\n\r\n function metaIssueAndContribute(\r\n bytes calldata signature,\r\n address payable[] calldata _issuers,\r\n address[] calldata _approvers,\r\n string calldata _data,\r\n uint _deadline,\r\n address _token,\r\n uint _tokenVersion,\r\n uint _depositAmount,\r\n uint _nonce)\r\n external\r\n payable\r\n returns (uint);\r\n\r\n function metaContribute(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _amount,\r\n uint _nonce)\r\n external\r\n payable;\r\n\r\n function metaRefundContribution(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _contributionId,\r\n uint _nonce)\r\n external;\r\n\r\n function metaRefundMyContributions(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint[] calldata _contributionIds,\r\n uint _nonce)\r\n external;\r\n\r\n function metaRefundContributions(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint[] calldata _contributionIds,\r\n uint _nonce)\r\n external;\r\n\r\n function metaDrainBounty(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint[] calldata _amounts,\r\n uint _nonce)\r\n external;\r\n\r\n function metaPerformAction(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n string calldata _data,\r\n uint256 _nonce)\r\n external;\r\n\r\n function metaFulfillBounty(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n address payable[] calldata _fulfillers,\r\n string calldata _data,\r\n uint256 _nonce)\r\n external;\r\n\r\n function metaUpdateFulfillment(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _fulfillmentId,\r\n address payable[] calldata _fulfillers,\r\n string calldata _data,\r\n uint256 _nonce)\r\n external;\r\n\r\n function metaAcceptFulfillment(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _fulfillmentId,\r\n uint _approverId,\r\n uint[] calldata _tokenAmounts,\r\n uint256 _nonce)\r\n external;\r\n\r\n function metaFulfillAndAccept(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n address payable[] calldata _fulfillers,\r\n string calldata _data,\r\n uint _approverId,\r\n uint[] calldata _tokenAmounts,\r\n uint256 _nonce)\r\n external;\r\n\r\n function metaChangeBounty(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n address payable[] calldata _issuers,\r\n address payable[] calldata _approvers,\r\n string calldata _data,\r\n uint _deadline,\r\n uint256 _nonce)\r\n external;\r\n\r\n function metaAddApprovers(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n address[] calldata _approvers,\r\n uint256 _nonce)\r\n external;\r\n\r\n function metaAddIssuers(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n address payable[] calldata _issuers,\r\n uint256 _nonce)\r\n external;\r\n\r\n function metaChangeDeadline(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint _deadline,\r\n uint256 _nonce)\r\n external;\r\n\r\n function metaChangeData(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n string calldata _data,\r\n uint256 _nonce)\r\n external;\r\n\r\n function metaChangeApprover(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint _approverId,\r\n address payable _approver,\r\n uint256 _nonce)\r\n external;\r\n\r\n function metaChangeIssuer(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint _issuerIdToChange,\r\n address payable _newIssuer,\r\n uint256 _nonce)\r\n external;\r\n\r\n\r\n\r\n\r\n\r\n}", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\iBountiesMetaTxRelayer.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/iBountiesMetaTxRelayer.sol", + "exportedSymbols": { + "iBountiesMetaTxRelayer": [ + 4806 + ] + }, + "id": 4807, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4514, + "literals": [ + "solidity", + ">", + "0.5", + ".0", + "<=", + "0.7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:30:6" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4806, + "linearizedBaseContracts": [ + 4806 + ], + "name": "iBountiesMetaTxRelayer", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 4537, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaIssueBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4533, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4516, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 4537, + "src": "210:24:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4515, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "210:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4519, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 4537, + "src": "241:35:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4517, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "241:15:6", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4518, + "length": null, + "nodeType": "ArrayTypeName", + "src": "241:17:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4522, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 4537, + "src": "283:29:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4520, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "283:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4521, + "length": null, + "nodeType": "ArrayTypeName", + "src": "283:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4524, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4537, + "src": "319:21:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4523, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "319:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4526, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 4537, + "src": "347:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4525, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "347:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4528, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 4537, + "src": "368:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4527, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "368:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4530, + "name": "_tokenVersion", + "nodeType": "VariableDeclaration", + "scope": 4537, + "src": "389:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4529, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "389:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4532, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4537, + "src": "414:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4531, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "414:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "203:223:6" + }, + "returnParameters": { + "id": 4536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4535, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4537, + "src": "455:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4534, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "455:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "454:6:6" + }, + "scope": 4806, + "src": "179:282:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4562, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaIssueAndContribute", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4539, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "507:24:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4538, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "507:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4542, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "538:35:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4540, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "538:15:6", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4541, + "length": null, + "nodeType": "ArrayTypeName", + "src": "538:17:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4545, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "580:29:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4543, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "580:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4544, + "length": null, + "nodeType": "ArrayTypeName", + "src": "580:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4547, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "616:21:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4546, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "616:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4549, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "644:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4548, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "644:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4551, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "665:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4550, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "665:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4553, + "name": "_tokenVersion", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "686:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4552, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "686:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4555, + "name": "_depositAmount", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "711:19:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4554, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "711:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4557, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "737:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4556, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "737:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "500:249:6" + }, + "returnParameters": { + "id": 4561, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4560, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "791:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4559, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "791:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "790:6:6" + }, + "scope": 4806, + "src": "469:328:6", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4573, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaContribute", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4564, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4573, + "src": "837:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4563, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "837:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4566, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4573, + "src": "869:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4565, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "869:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4568, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 4573, + "src": "890:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4567, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "890:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4570, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4573, + "src": "909:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4569, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "909:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "830:91:6" + }, + "returnParameters": { + "id": 4572, + "nodeType": "ParameterList", + "parameters": [], + "src": "948:0:6" + }, + "scope": 4806, + "src": "807:142:6", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4584, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaRefundContribution", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4582, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4575, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4584, + "src": "997:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4574, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "997:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4577, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4584, + "src": "1029:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4576, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1029:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4579, + "name": "_contributionId", + "nodeType": "VariableDeclaration", + "scope": 4584, + "src": "1050:20:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4578, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1050:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4581, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4584, + "src": "1077:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4580, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1077:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "990:99:6" + }, + "returnParameters": { + "id": 4583, + "nodeType": "ParameterList", + "parameters": [], + "src": "1103:0:6" + }, + "scope": 4806, + "src": "959:145:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4596, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaRefundMyContributions", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4594, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4586, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4596, + "src": "1155:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4585, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1155:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4588, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4596, + "src": "1187:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4587, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1187:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4591, + "name": "_contributionIds", + "nodeType": "VariableDeclaration", + "scope": 4596, + "src": "1208:32:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4589, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1208:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4590, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1208:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4593, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4596, + "src": "1247:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4592, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1247:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1148:111:6" + }, + "returnParameters": { + "id": 4595, + "nodeType": "ParameterList", + "parameters": [], + "src": "1273:0:6" + }, + "scope": 4806, + "src": "1114:160:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4610, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaRefundContributions", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4598, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4610, + "src": "1323:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4597, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1323:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4600, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4610, + "src": "1355:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4599, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1355:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4602, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4610, + "src": "1376:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4601, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1376:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4605, + "name": "_contributionIds", + "nodeType": "VariableDeclaration", + "scope": 4610, + "src": "1397:32:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4603, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1397:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4604, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1397:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4607, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4610, + "src": "1436:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4606, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1436:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1316:132:6" + }, + "returnParameters": { + "id": 4609, + "nodeType": "ParameterList", + "parameters": [], + "src": "1462:0:6" + }, + "scope": 4806, + "src": "1284:179:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4624, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaDrainBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4622, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4612, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4624, + "src": "1504:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4611, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1504:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4614, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4624, + "src": "1536:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4613, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1536:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4616, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4624, + "src": "1557:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4615, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1557:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4619, + "name": "_amounts", + "nodeType": "VariableDeclaration", + "scope": 4624, + "src": "1578:24:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4617, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1578:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4618, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1578:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4621, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4624, + "src": "1609:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4620, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1609:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1497:124:6" + }, + "returnParameters": { + "id": 4623, + "nodeType": "ParameterList", + "parameters": [], + "src": "1635:0:6" + }, + "scope": 4806, + "src": "1473:163:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4635, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaPerformAction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4633, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4626, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4635, + "src": "1679:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4625, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1679:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4628, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4635, + "src": "1711:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4627, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1711:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4630, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4635, + "src": "1732:21:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4629, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1732:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4632, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4635, + "src": "1760:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4631, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1760:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1672:103:6" + }, + "returnParameters": { + "id": 4634, + "nodeType": "ParameterList", + "parameters": [], + "src": "1789:0:6" + }, + "scope": 4806, + "src": "1646:144:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4649, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaFulfillBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4647, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4637, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4649, + "src": "1833:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4636, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1833:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4639, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4649, + "src": "1865:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4638, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1865:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4642, + "name": "_fulfillers", + "nodeType": "VariableDeclaration", + "scope": 4649, + "src": "1886:39:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4640, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1886:15:6", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4641, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1886:17:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4644, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4649, + "src": "1932:21:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4643, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1932:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4646, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4649, + "src": "1960:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4645, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1960:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1826:149:6" + }, + "returnParameters": { + "id": 4648, + "nodeType": "ParameterList", + "parameters": [], + "src": "1989:0:6" + }, + "scope": 4806, + "src": "1800:190:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4665, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaUpdateFulfillment", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4651, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4665, + "src": "2037:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4650, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2037:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4653, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4665, + "src": "2069:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4652, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2069:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4655, + "name": "_fulfillmentId", + "nodeType": "VariableDeclaration", + "scope": 4665, + "src": "2090:19:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4654, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2090:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4658, + "name": "_fulfillers", + "nodeType": "VariableDeclaration", + "scope": 4665, + "src": "2116:39:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2116:15:6", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4657, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2116:17:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4660, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4665, + "src": "2162:21:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4659, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2162:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4662, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4665, + "src": "2190:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4661, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2190:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2030:175:6" + }, + "returnParameters": { + "id": 4664, + "nodeType": "ParameterList", + "parameters": [], + "src": "2219:0:6" + }, + "scope": 4806, + "src": "2000:220:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4681, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaAcceptFulfillment", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4679, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4667, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4681, + "src": "2267:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4666, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2267:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4669, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4681, + "src": "2299:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4668, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2299:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4671, + "name": "_fulfillmentId", + "nodeType": "VariableDeclaration", + "scope": 4681, + "src": "2320:19:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4670, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2320:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4673, + "name": "_approverId", + "nodeType": "VariableDeclaration", + "scope": 4681, + "src": "2346:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4672, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2346:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4676, + "name": "_tokenAmounts", + "nodeType": "VariableDeclaration", + "scope": 4681, + "src": "2369:29:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4674, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2369:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4675, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2369:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4678, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4681, + "src": "2405:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4677, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2405:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2260:160:6" + }, + "returnParameters": { + "id": 4680, + "nodeType": "ParameterList", + "parameters": [], + "src": "2434:0:6" + }, + "scope": 4806, + "src": "2230:205:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4700, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaFulfillAndAccept", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4698, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4683, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4700, + "src": "2481:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4682, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2481:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4685, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4700, + "src": "2513:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4684, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2513:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4688, + "name": "_fulfillers", + "nodeType": "VariableDeclaration", + "scope": 4700, + "src": "2534:38:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4686, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2534:15:6", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4687, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2534:17:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4690, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4700, + "src": "2579:21:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4689, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2579:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4692, + "name": "_approverId", + "nodeType": "VariableDeclaration", + "scope": 4700, + "src": "2607:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4691, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2607:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4695, + "name": "_tokenAmounts", + "nodeType": "VariableDeclaration", + "scope": 4700, + "src": "2630:29:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4693, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2630:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4694, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2630:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4697, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4700, + "src": "2666:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2666:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2474:207:6" + }, + "returnParameters": { + "id": 4699, + "nodeType": "ParameterList", + "parameters": [], + "src": "2695:0:6" + }, + "scope": 4806, + "src": "2445:251:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4721, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaChangeBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4719, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4702, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "2738:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4701, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2738:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4704, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "2770:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4703, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2770:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4706, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "2791:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4705, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2791:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4709, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "2812:35:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4707, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2812:15:6", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4708, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2812:17:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4712, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "2854:37:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4710, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2854:15:6", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4711, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2854:17:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4714, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "2898:21:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4713, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2898:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4716, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "2926:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4715, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2926:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4718, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "2947:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2947:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2731:231:6" + }, + "returnParameters": { + "id": 4720, + "nodeType": "ParameterList", + "parameters": [], + "src": "2976:0:6" + }, + "scope": 4806, + "src": "2706:271:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4735, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaAddApprovers", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4733, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4723, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4735, + "src": "3019:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4722, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3019:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4725, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4735, + "src": "3051:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4724, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3051:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4727, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4735, + "src": "3072:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4726, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3072:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4730, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 4735, + "src": "3093:29:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3093:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4729, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3093:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4732, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4735, + "src": "3129:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4731, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3129:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3012:132:6" + }, + "returnParameters": { + "id": 4734, + "nodeType": "ParameterList", + "parameters": [], + "src": "3158:0:6" + }, + "scope": 4806, + "src": "2987:172:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4749, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaAddIssuers", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4737, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4749, + "src": "3199:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4736, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3199:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4739, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4749, + "src": "3231:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4738, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3231:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4741, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4749, + "src": "3252:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4740, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3252:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4744, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 4749, + "src": "3273:35:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4742, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3273:15:6", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4743, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3273:17:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4746, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4749, + "src": "3315:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4745, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3315:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3192:138:6" + }, + "returnParameters": { + "id": 4748, + "nodeType": "ParameterList", + "parameters": [], + "src": "3344:0:6" + }, + "scope": 4806, + "src": "3169:176:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4762, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaChangeDeadline", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4751, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4762, + "src": "3389:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4750, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3389:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4753, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4762, + "src": "3421:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4752, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3421:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4755, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4762, + "src": "3442:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4754, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3442:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4757, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 4762, + "src": "3463:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4756, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3463:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4759, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4762, + "src": "3485:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4758, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3485:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3382:118:6" + }, + "returnParameters": { + "id": 4761, + "nodeType": "ParameterList", + "parameters": [], + "src": "3514:0:6" + }, + "scope": 4806, + "src": "3355:160:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4775, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaChangeData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4773, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4764, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4775, + "src": "3555:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4763, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3555:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4766, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4775, + "src": "3587:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4765, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3587:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4768, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4775, + "src": "3608:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4767, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3608:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4770, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4775, + "src": "3629:21:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4769, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3629:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4772, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4775, + "src": "3657:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4771, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3657:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3548:124:6" + }, + "returnParameters": { + "id": 4774, + "nodeType": "ParameterList", + "parameters": [], + "src": "3686:0:6" + }, + "scope": 4806, + "src": "3525:162:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4790, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaChangeApprover", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4788, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4777, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4790, + "src": "3731:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4776, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3731:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4779, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4790, + "src": "3763:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4778, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3763:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4781, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4790, + "src": "3784:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4780, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3784:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4783, + "name": "_approverId", + "nodeType": "VariableDeclaration", + "scope": 4790, + "src": "3805:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4782, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3805:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4785, + "name": "_approver", + "nodeType": "VariableDeclaration", + "scope": 4790, + "src": "3828:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 4784, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3828:15:6", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4787, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4790, + "src": "3860:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4786, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3860:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3724:151:6" + }, + "returnParameters": { + "id": 4789, + "nodeType": "ParameterList", + "parameters": [], + "src": "3889:0:6" + }, + "scope": 4806, + "src": "3697:193:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4805, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaChangeIssuer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4792, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4805, + "src": "3932:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4791, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3932:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4794, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4805, + "src": "3964:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4793, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3964:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4796, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4805, + "src": "3985:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4795, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3985:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4798, + "name": "_issuerIdToChange", + "nodeType": "VariableDeclaration", + "scope": 4805, + "src": "4006:22:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4797, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4006:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4800, + "name": "_newIssuer", + "nodeType": "VariableDeclaration", + "scope": 4805, + "src": "4035:26:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 4799, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4035:15:6", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4802, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4805, + "src": "4068:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4801, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4068:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3925:158:6" + }, + "returnParameters": { + "id": 4804, + "nodeType": "ParameterList", + "parameters": [], + "src": "4097:0:6" + }, + "scope": 4806, + "src": "3900:198:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 4807, + "src": "34:4077:6" + } + ], + "src": "0:4111:6" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/iBountiesMetaTxRelayer.sol", + "exportedSymbols": { + "iBountiesMetaTxRelayer": [ + 4806 + ] + }, + "id": 4807, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 4514, + "literals": [ + "solidity", + ">", + "0.5", + ".0", + "<=", + "0.7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:30:6" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 4806, + "linearizedBaseContracts": [ + 4806 + ], + "name": "iBountiesMetaTxRelayer", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 4537, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaIssueBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4533, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4516, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 4537, + "src": "210:24:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4515, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "210:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4519, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 4537, + "src": "241:35:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4517, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "241:15:6", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4518, + "length": null, + "nodeType": "ArrayTypeName", + "src": "241:17:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4522, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 4537, + "src": "283:29:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4520, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "283:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4521, + "length": null, + "nodeType": "ArrayTypeName", + "src": "283:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4524, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4537, + "src": "319:21:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4523, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "319:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4526, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 4537, + "src": "347:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4525, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "347:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4528, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 4537, + "src": "368:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4527, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "368:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4530, + "name": "_tokenVersion", + "nodeType": "VariableDeclaration", + "scope": 4537, + "src": "389:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4529, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "389:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4532, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4537, + "src": "414:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4531, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "414:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "203:223:6" + }, + "returnParameters": { + "id": 4536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4535, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4537, + "src": "455:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4534, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "455:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "454:6:6" + }, + "scope": 4806, + "src": "179:282:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4562, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaIssueAndContribute", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4558, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4539, + "name": "signature", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "507:24:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4538, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "507:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4542, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "538:35:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4540, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "538:15:6", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4541, + "length": null, + "nodeType": "ArrayTypeName", + "src": "538:17:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4545, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "580:29:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4543, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "580:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4544, + "length": null, + "nodeType": "ArrayTypeName", + "src": "580:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4547, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "616:21:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4546, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "616:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4549, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "644:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4548, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "644:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4551, + "name": "_token", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "665:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 4550, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "665:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4553, + "name": "_tokenVersion", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "686:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4552, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "686:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4555, + "name": "_depositAmount", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "711:19:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4554, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "711:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4557, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "737:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4556, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "737:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "500:249:6" + }, + "returnParameters": { + "id": 4561, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4560, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 4562, + "src": "791:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4559, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "791:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "790:6:6" + }, + "scope": 4806, + "src": "469:328:6", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4573, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaContribute", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4564, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4573, + "src": "837:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4563, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "837:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4566, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4573, + "src": "869:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4565, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "869:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4568, + "name": "_amount", + "nodeType": "VariableDeclaration", + "scope": 4573, + "src": "890:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4567, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "890:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4570, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4573, + "src": "909:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4569, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "909:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "830:91:6" + }, + "returnParameters": { + "id": 4572, + "nodeType": "ParameterList", + "parameters": [], + "src": "948:0:6" + }, + "scope": 4806, + "src": "807:142:6", + "stateMutability": "payable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4584, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaRefundContribution", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4582, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4575, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4584, + "src": "997:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4574, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "997:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4577, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4584, + "src": "1029:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4576, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1029:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4579, + "name": "_contributionId", + "nodeType": "VariableDeclaration", + "scope": 4584, + "src": "1050:20:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4578, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1050:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4581, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4584, + "src": "1077:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4580, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1077:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "990:99:6" + }, + "returnParameters": { + "id": 4583, + "nodeType": "ParameterList", + "parameters": [], + "src": "1103:0:6" + }, + "scope": 4806, + "src": "959:145:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4596, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaRefundMyContributions", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4594, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4586, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4596, + "src": "1155:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4585, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1155:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4588, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4596, + "src": "1187:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4587, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1187:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4591, + "name": "_contributionIds", + "nodeType": "VariableDeclaration", + "scope": 4596, + "src": "1208:32:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4589, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1208:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4590, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1208:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4593, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4596, + "src": "1247:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4592, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1247:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1148:111:6" + }, + "returnParameters": { + "id": 4595, + "nodeType": "ParameterList", + "parameters": [], + "src": "1273:0:6" + }, + "scope": 4806, + "src": "1114:160:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4610, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaRefundContributions", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4608, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4598, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4610, + "src": "1323:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4597, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1323:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4600, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4610, + "src": "1355:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4599, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1355:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4602, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4610, + "src": "1376:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4601, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1376:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4605, + "name": "_contributionIds", + "nodeType": "VariableDeclaration", + "scope": 4610, + "src": "1397:32:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4603, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1397:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4604, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1397:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4607, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4610, + "src": "1436:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4606, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1436:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1316:132:6" + }, + "returnParameters": { + "id": 4609, + "nodeType": "ParameterList", + "parameters": [], + "src": "1462:0:6" + }, + "scope": 4806, + "src": "1284:179:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4624, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaDrainBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4622, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4612, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4624, + "src": "1504:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4611, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1504:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4614, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4624, + "src": "1536:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4613, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1536:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4616, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4624, + "src": "1557:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4615, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1557:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4619, + "name": "_amounts", + "nodeType": "VariableDeclaration", + "scope": 4624, + "src": "1578:24:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4617, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1578:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4618, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1578:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4621, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4624, + "src": "1609:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4620, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1609:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1497:124:6" + }, + "returnParameters": { + "id": 4623, + "nodeType": "ParameterList", + "parameters": [], + "src": "1635:0:6" + }, + "scope": 4806, + "src": "1473:163:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4635, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaPerformAction", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4633, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4626, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4635, + "src": "1679:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4625, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1679:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4628, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4635, + "src": "1711:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4627, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1711:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4630, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4635, + "src": "1732:21:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4629, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1732:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4632, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4635, + "src": "1760:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4631, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1760:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1672:103:6" + }, + "returnParameters": { + "id": 4634, + "nodeType": "ParameterList", + "parameters": [], + "src": "1789:0:6" + }, + "scope": 4806, + "src": "1646:144:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4649, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaFulfillBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4647, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4637, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4649, + "src": "1833:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4636, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "1833:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4639, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4649, + "src": "1865:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4638, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1865:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4642, + "name": "_fulfillers", + "nodeType": "VariableDeclaration", + "scope": 4649, + "src": "1886:39:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4640, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1886:15:6", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4641, + "length": null, + "nodeType": "ArrayTypeName", + "src": "1886:17:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4644, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4649, + "src": "1932:21:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4643, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1932:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4646, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4649, + "src": "1960:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4645, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1960:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "1826:149:6" + }, + "returnParameters": { + "id": 4648, + "nodeType": "ParameterList", + "parameters": [], + "src": "1989:0:6" + }, + "scope": 4806, + "src": "1800:190:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4665, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaUpdateFulfillment", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4651, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4665, + "src": "2037:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4650, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2037:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4653, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4665, + "src": "2069:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4652, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2069:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4655, + "name": "_fulfillmentId", + "nodeType": "VariableDeclaration", + "scope": 4665, + "src": "2090:19:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4654, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2090:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4658, + "name": "_fulfillers", + "nodeType": "VariableDeclaration", + "scope": 4665, + "src": "2116:39:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2116:15:6", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4657, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2116:17:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4660, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4665, + "src": "2162:21:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4659, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2162:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4662, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4665, + "src": "2190:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4661, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2190:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2030:175:6" + }, + "returnParameters": { + "id": 4664, + "nodeType": "ParameterList", + "parameters": [], + "src": "2219:0:6" + }, + "scope": 4806, + "src": "2000:220:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4681, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaAcceptFulfillment", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4679, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4667, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4681, + "src": "2267:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4666, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2267:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4669, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4681, + "src": "2299:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4668, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2299:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4671, + "name": "_fulfillmentId", + "nodeType": "VariableDeclaration", + "scope": 4681, + "src": "2320:19:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4670, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2320:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4673, + "name": "_approverId", + "nodeType": "VariableDeclaration", + "scope": 4681, + "src": "2346:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4672, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2346:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4676, + "name": "_tokenAmounts", + "nodeType": "VariableDeclaration", + "scope": 4681, + "src": "2369:29:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4674, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2369:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4675, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2369:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4678, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4681, + "src": "2405:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4677, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2405:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2260:160:6" + }, + "returnParameters": { + "id": 4680, + "nodeType": "ParameterList", + "parameters": [], + "src": "2434:0:6" + }, + "scope": 4806, + "src": "2230:205:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4700, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaFulfillAndAccept", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4698, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4683, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4700, + "src": "2481:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4682, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2481:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4685, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4700, + "src": "2513:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4684, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2513:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4688, + "name": "_fulfillers", + "nodeType": "VariableDeclaration", + "scope": 4700, + "src": "2534:38:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4686, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2534:15:6", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4687, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2534:17:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4690, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4700, + "src": "2579:21:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4689, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2579:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4692, + "name": "_approverId", + "nodeType": "VariableDeclaration", + "scope": 4700, + "src": "2607:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4691, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2607:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4695, + "name": "_tokenAmounts", + "nodeType": "VariableDeclaration", + "scope": 4700, + "src": "2630:29:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", + "typeString": "uint256[]" + }, + "typeName": { + "baseType": { + "id": 4693, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2630:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 4694, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2630:6:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", + "typeString": "uint256[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4697, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4700, + "src": "2666:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4696, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2666:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2474:207:6" + }, + "returnParameters": { + "id": 4699, + "nodeType": "ParameterList", + "parameters": [], + "src": "2695:0:6" + }, + "scope": 4806, + "src": "2445:251:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4721, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaChangeBounty", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4719, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4702, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "2738:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4701, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "2738:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4704, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "2770:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4703, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2770:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4706, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "2791:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4705, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2791:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4709, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "2812:35:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4707, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2812:15:6", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4708, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2812:17:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4712, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "2854:37:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4710, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2854:15:6", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4711, + "length": null, + "nodeType": "ArrayTypeName", + "src": "2854:17:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4714, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "2898:21:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4713, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2898:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4716, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "2926:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4715, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2926:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4718, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4721, + "src": "2947:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2947:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "2731:231:6" + }, + "returnParameters": { + "id": 4720, + "nodeType": "ParameterList", + "parameters": [], + "src": "2976:0:6" + }, + "scope": 4806, + "src": "2706:271:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4735, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaAddApprovers", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4733, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4723, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4735, + "src": "3019:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4722, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3019:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4725, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4735, + "src": "3051:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4724, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3051:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4727, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4735, + "src": "3072:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4726, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3072:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4730, + "name": "_approvers", + "nodeType": "VariableDeclaration", + "scope": 4735, + "src": "3093:29:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", + "typeString": "address[]" + }, + "typeName": { + "baseType": { + "id": 4728, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3093:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 4729, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3093:9:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", + "typeString": "address[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4732, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4735, + "src": "3129:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4731, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3129:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3012:132:6" + }, + "returnParameters": { + "id": 4734, + "nodeType": "ParameterList", + "parameters": [], + "src": "3158:0:6" + }, + "scope": 4806, + "src": "2987:172:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4749, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaAddIssuers", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4747, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4737, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4749, + "src": "3199:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4736, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3199:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4739, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4749, + "src": "3231:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4738, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3231:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4741, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4749, + "src": "3252:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4740, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3252:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4744, + "name": "_issuers", + "nodeType": "VariableDeclaration", + "scope": 4749, + "src": "3273:35:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", + "typeString": "address payable[]" + }, + "typeName": { + "baseType": { + "id": 4742, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3273:15:6", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 4743, + "length": null, + "nodeType": "ArrayTypeName", + "src": "3273:17:6", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", + "typeString": "address payable[]" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4746, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4749, + "src": "3315:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4745, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3315:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3192:138:6" + }, + "returnParameters": { + "id": 4748, + "nodeType": "ParameterList", + "parameters": [], + "src": "3344:0:6" + }, + "scope": 4806, + "src": "3169:176:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4762, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaChangeDeadline", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4760, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4751, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4762, + "src": "3389:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4750, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3389:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4753, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4762, + "src": "3421:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4752, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3421:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4755, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4762, + "src": "3442:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4754, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3442:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4757, + "name": "_deadline", + "nodeType": "VariableDeclaration", + "scope": 4762, + "src": "3463:15:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4756, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3463:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4759, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4762, + "src": "3485:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4758, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3485:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3382:118:6" + }, + "returnParameters": { + "id": 4761, + "nodeType": "ParameterList", + "parameters": [], + "src": "3514:0:6" + }, + "scope": 4806, + "src": "3355:160:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4775, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaChangeData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4773, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4764, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4775, + "src": "3555:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4763, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3555:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4766, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4775, + "src": "3587:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4765, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3587:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4768, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4775, + "src": "3608:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4767, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3608:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4770, + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 4775, + "src": "3629:21:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 4769, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "3629:6:6", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4772, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4775, + "src": "3657:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4771, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3657:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3548:124:6" + }, + "returnParameters": { + "id": 4774, + "nodeType": "ParameterList", + "parameters": [], + "src": "3686:0:6" + }, + "scope": 4806, + "src": "3525:162:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4790, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaChangeApprover", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4788, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4777, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4790, + "src": "3731:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4776, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3731:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4779, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4790, + "src": "3763:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4778, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3763:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4781, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4790, + "src": "3784:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4780, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3784:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4783, + "name": "_approverId", + "nodeType": "VariableDeclaration", + "scope": 4790, + "src": "3805:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4782, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3805:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4785, + "name": "_approver", + "nodeType": "VariableDeclaration", + "scope": 4790, + "src": "3828:25:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 4784, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3828:15:6", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4787, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4790, + "src": "3860:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4786, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3860:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3724:151:6" + }, + "returnParameters": { + "id": 4789, + "nodeType": "ParameterList", + "parameters": [], + "src": "3889:0:6" + }, + "scope": 4806, + "src": "3697:193:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 4805, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "metaChangeIssuer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 4803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 4792, + "name": "_signature", + "nodeType": "VariableDeclaration", + "scope": 4805, + "src": "3932:25:6", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 4791, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "3932:5:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4794, + "name": "_bountyId", + "nodeType": "VariableDeclaration", + "scope": 4805, + "src": "3964:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4793, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3964:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4796, + "name": "_issuerId", + "nodeType": "VariableDeclaration", + "scope": 4805, + "src": "3985:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4795, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3985:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4798, + "name": "_issuerIdToChange", + "nodeType": "VariableDeclaration", + "scope": 4805, + "src": "4006:22:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4797, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4006:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4800, + "name": "_newIssuer", + "nodeType": "VariableDeclaration", + "scope": 4805, + "src": "4035:26:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 4799, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4035:15:6", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 4802, + "name": "_nonce", + "nodeType": "VariableDeclaration", + "scope": 4805, + "src": "4068:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 4801, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4068:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "3925:158:6" + }, + "returnParameters": { + "id": 4804, + "nodeType": "ParameterList", + "parameters": [], + "src": "4097:0:6" + }, + "scope": 4806, + "src": "3900:198:6", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 4807, + "src": "34:4077:6" + } + ], + "src": "0:4111:6" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:19.923Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/contracts/iGovernance.json b/src/contracts/iGovernance.json new file mode 100644 index 0000000..a888244 --- /dev/null +++ b/src/contracts/iGovernance.json @@ -0,0 +1,1417 @@ +{ + "contractName": "iGovernance", + "abi": [ + { + "constant": false, + "inputs": [ + { + "name": "applicant", + "type": "address" + }, + { + "name": "sharesRequested", + "type": "uint256" + }, + { + "name": "lootRequested", + "type": "uint256" + }, + { + "name": "tributeOffered", + "type": "uint256" + }, + { + "name": "tributeToken", + "type": "address" + }, + { + "name": "paymentRequested", + "type": "uint256" + }, + { + "name": "paymentToken", + "type": "address" + }, + { + "name": "details", + "type": "string" + } + ], + "name": "submitProposal", + "outputs": [ + { + "name": "proposalId", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "proposalId", + "type": "uint256" + } + ], + "name": "sponsorProposal", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getProposal", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getProposalQueueLength", + "outputs": [ + { + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "proposalIndex", + "type": "uint256" + }, + { + "name": "uintVote", + "type": "uint8" + } + ], + "name": "submitVote", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "name": "proposalIndex", + "type": "uint256" + } + ], + "name": "processProposal", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"applicant\",\"type\":\"address\"},{\"name\":\"sharesRequested\",\"type\":\"uint256\"},{\"name\":\"lootRequested\",\"type\":\"uint256\"},{\"name\":\"tributeOffered\",\"type\":\"uint256\"},{\"name\":\"tributeToken\",\"type\":\"address\"},{\"name\":\"paymentRequested\",\"type\":\"uint256\"},{\"name\":\"paymentToken\",\"type\":\"address\"},{\"name\":\"details\",\"type\":\"string\"}],\"name\":\"submitProposal\",\"outputs\":[{\"name\":\"proposalId\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getProposalQueueLength\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"sponsorProposal\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"name\":\"uintVote\",\"type\":\"uint8\"}],\"name\":\"submitVote\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getProposal\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"proposalIndex\",\"type\":\"uint256\"}],\"name\":\"processProposal\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/iGovernance.sol\":\"iGovernance\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/iGovernance.sol\":{\"keccak256\":\"0x2e3ecc4629568c30886c401376a98f196c7d8dafbf1dbce95296e0ca553cb85f\",\"urls\":[\"bzzr://a69865ec2501d5c618498843782e9c014b0903e4a6dc79511303fc5c53372534\",\"dweb:/ipfs/QmWX6FLo2pNaQQXfyVebLSc2VAi4yJNqiVLNSMUcouVyZa\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "sourceMap": "", + "deployedSourceMap": "", + "source": "pragma solidity >0.5.0<=0.7.0;\r\n\r\ninterface iGovernance {\r\n\r\n // function storeValue(uint value) external;\r\n // function getValues() external view returns(uint);\r\n\r\n function submitProposal(address applicant, uint256 sharesRequested, uint256 lootRequested, uint256 tributeOffered, address tributeToken, \r\n \t\t\t\t\t\t uint256 paymentRequested, address paymentToken, string calldata details) external returns (uint256 proposalId);\r\n function sponsorProposal(uint256 proposalId) external returns (uint256);\r\n function getProposal () external view returns(uint256);\r\n function getProposalQueueLength() external view returns (uint256);\r\n function submitVote(uint256 proposalIndex, uint8 uintVote) external;\r\n function processProposal(uint256 proposalIndex) external;\r\n\r\n}\r\n\r\n", + "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\iGovernance.sol", + "ast": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/iGovernance.sol", + "exportedSymbols": { + "iGovernance": [ + 9267 + ] + }, + "id": 9268, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9216, + "literals": [ + "solidity", + ">", + "0.5", + ".0", + "<=", + "0.7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:30:18" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 9267, + "linearizedBaseContracts": [ + 9267 + ], + "name": "iGovernance", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 9237, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "submitProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9233, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9218, + "name": "applicant", + "nodeType": "VariableDeclaration", + "scope": 9237, + "src": "193:17:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9217, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "193:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9220, + "name": "sharesRequested", + "nodeType": "VariableDeclaration", + "scope": 9237, + "src": "212:23:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9219, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "212:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9222, + "name": "lootRequested", + "nodeType": "VariableDeclaration", + "scope": 9237, + "src": "237:21:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9221, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "237:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9224, + "name": "tributeOffered", + "nodeType": "VariableDeclaration", + "scope": 9237, + "src": "260:22:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9223, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "260:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9226, + "name": "tributeToken", + "nodeType": "VariableDeclaration", + "scope": 9237, + "src": "284:20:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9225, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "284:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9228, + "name": "paymentRequested", + "nodeType": "VariableDeclaration", + "scope": 9237, + "src": "318:24:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9227, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "318:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9230, + "name": "paymentToken", + "nodeType": "VariableDeclaration", + "scope": 9237, + "src": "344:20:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9229, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "344:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9232, + "name": "details", + "nodeType": "VariableDeclaration", + "scope": 9237, + "src": "366:23:18", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9231, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "366:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "192:198:18" + }, + "returnParameters": { + "id": 9236, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9235, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 9237, + "src": "409:18:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9234, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "409:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "408:20:18" + }, + "scope": 9267, + "src": "169:260:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 9244, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "sponsorProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9240, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9239, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 9244, + "src": "458:18:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9238, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "458:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "457:20:18" + }, + "returnParameters": { + "id": 9243, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9242, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9244, + "src": "497:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "497:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "496:9:18" + }, + "scope": 9267, + "src": "433:73:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 9249, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9245, + "nodeType": "ParameterList", + "parameters": [], + "src": "531:2:18" + }, + "returnParameters": { + "id": 9248, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9247, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9249, + "src": "557:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9246, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "557:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "556:9:18" + }, + "scope": 9267, + "src": "510:56:18", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 9254, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getProposalQueueLength", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9250, + "nodeType": "ParameterList", + "parameters": [], + "src": "601:2:18" + }, + "returnParameters": { + "id": 9253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9252, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9254, + "src": "627:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "627:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "626:9:18" + }, + "scope": 9267, + "src": "570:66:18", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 9261, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "submitVote", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9259, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9256, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 9261, + "src": "660:21:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9255, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "660:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9258, + "name": "uintVote", + "nodeType": "VariableDeclaration", + "scope": 9261, + "src": "683:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9257, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "683:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "659:39:18" + }, + "returnParameters": { + "id": 9260, + "nodeType": "ParameterList", + "parameters": [], + "src": "707:0:18" + }, + "scope": 9267, + "src": "640:68:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 9266, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "processProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9264, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9263, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 9266, + "src": "737:21:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9262, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "737:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "736:23:18" + }, + "returnParameters": { + "id": 9265, + "nodeType": "ParameterList", + "parameters": [], + "src": "768:0:18" + }, + "scope": 9267, + "src": "712:57:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 9268, + "src": "34:740:18" + } + ], + "src": "0:778:18" + }, + "legacyAST": { + "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/iGovernance.sol", + "exportedSymbols": { + "iGovernance": [ + 9267 + ] + }, + "id": 9268, + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 9216, + "literals": [ + "solidity", + ">", + "0.5", + ".0", + "<=", + "0.7", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "0:30:18" + }, + { + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": null, + "fullyImplemented": false, + "id": 9267, + "linearizedBaseContracts": [ + 9267 + ], + "name": "iGovernance", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": null, + "documentation": null, + "id": 9237, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "submitProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9233, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9218, + "name": "applicant", + "nodeType": "VariableDeclaration", + "scope": 9237, + "src": "193:17:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9217, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "193:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9220, + "name": "sharesRequested", + "nodeType": "VariableDeclaration", + "scope": 9237, + "src": "212:23:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9219, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "212:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9222, + "name": "lootRequested", + "nodeType": "VariableDeclaration", + "scope": 9237, + "src": "237:21:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9221, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "237:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9224, + "name": "tributeOffered", + "nodeType": "VariableDeclaration", + "scope": 9237, + "src": "260:22:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9223, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "260:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9226, + "name": "tributeToken", + "nodeType": "VariableDeclaration", + "scope": 9237, + "src": "284:20:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9225, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "284:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9228, + "name": "paymentRequested", + "nodeType": "VariableDeclaration", + "scope": 9237, + "src": "318:24:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9227, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "318:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9230, + "name": "paymentToken", + "nodeType": "VariableDeclaration", + "scope": 9237, + "src": "344:20:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 9229, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "344:7:18", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9232, + "name": "details", + "nodeType": "VariableDeclaration", + "scope": 9237, + "src": "366:23:18", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string" + }, + "typeName": { + "id": 9231, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "366:6:18", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "192:198:18" + }, + "returnParameters": { + "id": 9236, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9235, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 9237, + "src": "409:18:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9234, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "409:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "408:20:18" + }, + "scope": 9267, + "src": "169:260:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 9244, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "sponsorProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9240, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9239, + "name": "proposalId", + "nodeType": "VariableDeclaration", + "scope": 9244, + "src": "458:18:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9238, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "458:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "457:20:18" + }, + "returnParameters": { + "id": 9243, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9242, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9244, + "src": "497:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9241, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "497:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "496:9:18" + }, + "scope": 9267, + "src": "433:73:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 9249, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9245, + "nodeType": "ParameterList", + "parameters": [], + "src": "531:2:18" + }, + "returnParameters": { + "id": 9248, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9247, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9249, + "src": "557:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9246, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "557:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "556:9:18" + }, + "scope": 9267, + "src": "510:56:18", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 9254, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getProposalQueueLength", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9250, + "nodeType": "ParameterList", + "parameters": [], + "src": "601:2:18" + }, + "returnParameters": { + "id": 9253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9252, + "name": "", + "nodeType": "VariableDeclaration", + "scope": 9254, + "src": "627:7:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "627:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "626:9:18" + }, + "scope": 9267, + "src": "570:66:18", + "stateMutability": "view", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 9261, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "submitVote", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9259, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9256, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 9261, + "src": "660:21:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9255, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "660:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + }, + { + "constant": false, + "id": 9258, + "name": "uintVote", + "nodeType": "VariableDeclaration", + "scope": 9261, + "src": "683:14:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 9257, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "683:5:18", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "659:39:18" + }, + "returnParameters": { + "id": 9260, + "nodeType": "ParameterList", + "parameters": [], + "src": "707:0:18" + }, + "scope": 9267, + "src": "640:68:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + }, + { + "body": null, + "documentation": null, + "id": 9266, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "processProposal", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 9264, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 9263, + "name": "proposalIndex", + "nodeType": "VariableDeclaration", + "scope": 9266, + "src": "737:21:18", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 9262, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "737:7:18", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": null, + "visibility": "internal" + } + ], + "src": "736:23:18" + }, + "returnParameters": { + "id": 9265, + "nodeType": "ParameterList", + "parameters": [], + "src": "768:0:18" + }, + "scope": 9267, + "src": "712:57:18", + "stateMutability": "nonpayable", + "superFunction": null, + "visibility": "external" + } + ], + "scope": 9268, + "src": "34:740:18" + } + ], + "src": "0:778:18" + }, + "compiler": { + "name": "solc", + "version": "0.5.9+commit.e560f70d.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.0.23", + "updatedAt": "2020-06-02T13:56:20.219Z", + "devdoc": { + "methods": {} + }, + "userdoc": { + "methods": {} + } +} \ No newline at end of file diff --git a/src/hooks/useProjectCreation.js b/src/hooks/useProjectCreation.js new file mode 100644 index 0000000..cacd976 --- /dev/null +++ b/src/hooks/useProjectCreation.js @@ -0,0 +1,36 @@ +/* eslint-disable */ +import React, { useEffect, useState, useCallback } from 'react' +import { useContract } from '../web3-contracts' + +import { useActivity } from '../components/Activity/ActivityProvider' + +import ProjectCreation from '../contracts/GitFundedGrantFactory.json' + +const GAS_LIMIT = 1200000 + +// Project creation contract +function useProjectCreationContract() { + return useContract( + ProjectCreation.networks['10'].address, + ProjectCreation.abi + ) +} + +export function useProjectCreationActions() { + const { addActivity } = useActivity() + const projectCreationContract = useProjectCreationContract() + + const create = useCallback( + (id, name, budget) => { + return addActivity( + projectCreationContract.newProject(id, name, budget, { + gasLimit: GAS_LIMIT, + }), + 'newProject', + { name: name, budget: budget } + ) + }, + [addActivity, projectCreationContract] + ) + return { create } +} From 874c87e7d529809d04de1fea63a656f08b002730 Mon Sep 17 00:00:00 2001 From: Koshik Raj Date: Wed, 3 Jun 2020 13:49:52 +0530 Subject: [PATCH 02/18] adds ABI files to gitignore --- .gitignore | 5 + src/contracts/AddressUtils.json | 21183 ------ src/contracts/BountiesMetaTxRelayer.json | 43751 ------------- src/contracts/ClaimsToken.json | 10929 ---- src/contracts/ClaimsTokenERC20Extension.json | 10976 ---- src/contracts/Counter.json | 1882 - src/contracts/DAOFactory.json | 2699 - src/contracts/ERC165.json | 21215 ------ src/contracts/ERC20.json | 10555 --- src/contracts/ERC20Detailed.json | 10699 --- src/contracts/ERC20Token.json | 4804 -- src/contracts/ERC721Basic.json | 21486 ------ src/contracts/ERC721BasicToken.json | 21588 ------ src/contracts/ERC721BasicTokenMock.json | 21612 ------ src/contracts/ERC721Receiver.json | 21226 ------ src/contracts/GitFundedGrant.json | 19761 ------ src/contracts/GitFundedGrantFactory.json | 3197 - src/contracts/Governance.json | 34664 ---------- src/contracts/GuildBank.json | 4823 -- src/contracts/HumanStandardToken.json | 5733 -- src/contracts/IClaimsToken.json | 10542 --- src/contracts/IERC20.json | 1864 - src/contracts/Migrations.json | 1393 - src/contracts/Moloch.json | 40539 ------------ src/contracts/MolochSummoner.json | 2277 - src/contracts/ReentrancyGuard.json | 748 - src/contracts/SafeMath.json | 2770 - src/contracts/StandardBounties.json | 54152 ---------------- src/contracts/Submitter.json | 1678 - .../SupportsInterfaceWithLookup.json | 21232 ------ src/contracts/TodoList.json | 2027 - src/contracts/Token.json | 2050 - src/contracts/iBountiesMetaTxRelayer.json | 7827 --- src/contracts/iGovernance.json | 1417 - 34 files changed, 5 insertions(+), 443299 deletions(-) delete mode 100644 src/contracts/AddressUtils.json delete mode 100644 src/contracts/BountiesMetaTxRelayer.json delete mode 100644 src/contracts/ClaimsToken.json delete mode 100644 src/contracts/ClaimsTokenERC20Extension.json delete mode 100644 src/contracts/Counter.json delete mode 100644 src/contracts/DAOFactory.json delete mode 100644 src/contracts/ERC165.json delete mode 100644 src/contracts/ERC20.json delete mode 100644 src/contracts/ERC20Detailed.json delete mode 100644 src/contracts/ERC20Token.json delete mode 100644 src/contracts/ERC721Basic.json delete mode 100644 src/contracts/ERC721BasicToken.json delete mode 100644 src/contracts/ERC721BasicTokenMock.json delete mode 100644 src/contracts/ERC721Receiver.json delete mode 100644 src/contracts/GitFundedGrant.json delete mode 100644 src/contracts/GitFundedGrantFactory.json delete mode 100644 src/contracts/Governance.json delete mode 100644 src/contracts/GuildBank.json delete mode 100644 src/contracts/HumanStandardToken.json delete mode 100644 src/contracts/IClaimsToken.json delete mode 100644 src/contracts/IERC20.json delete mode 100644 src/contracts/Migrations.json delete mode 100644 src/contracts/Moloch.json delete mode 100644 src/contracts/MolochSummoner.json delete mode 100644 src/contracts/ReentrancyGuard.json delete mode 100644 src/contracts/SafeMath.json delete mode 100644 src/contracts/StandardBounties.json delete mode 100644 src/contracts/Submitter.json delete mode 100644 src/contracts/SupportsInterfaceWithLookup.json delete mode 100644 src/contracts/TodoList.json delete mode 100644 src/contracts/Token.json delete mode 100644 src/contracts/iBountiesMetaTxRelayer.json delete mode 100644 src/contracts/iGovernance.json diff --git a/.gitignore b/.gitignore index df7fe48..50ce186 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,8 @@ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. +# ABI files +/src/contracts + # dependencies /node_modules /.pnp @@ -23,3 +26,5 @@ yarn-debug.log* debug.log* yarn-error.log* package-lock.json + + diff --git a/src/contracts/AddressUtils.json b/src/contracts/AddressUtils.json deleted file mode 100644 index d928452..0000000 --- a/src/contracts/AddressUtils.json +++ /dev/null @@ -1,21183 +0,0 @@ -{ - "contractName": "AddressUtils", - "abi": [], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{},\"notice\":\"Utility library of inline functions on addresses\\r\"}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":\"AddressUtils\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":{\"keccak256\":\"0x4dd046a190602871aa9743a94149789c1e14b14f609c68d0f34d72e19bd690ce\",\"urls\":[\"bzzr://ea591dfb88f3591fe4344b7e665024c5aa3e8fb758a0409db79b1885a996b825\",\"dweb:/ipfs/QmXrwJ2TTXMWHBQxuLCqrj96gfh5HCHK57JsCEcXJ84t6z\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", - "bytecode": "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a7230582022c4d302cceb7dddfd281b7f1d557b59ec6b4c9388851d940b332a6c529d3d0c64736f6c63430005090032", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a7230582022c4d302cceb7dddfd281b7f1d557b59ec6b4c9388851d940b332a6c529d3d0c64736f6c63430005090032", - "sourceMap": "1590:951:8:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", - "deployedSourceMap": "1590:951:8:-;;;;;;;;", - "source": "pragma solidity >=0.5.0 < 0.6.0;\r\nimport '../../dao/oz/SafeMath.sol';\r\n\r\n/**\r\n * @title SafeMath\r\n * @dev Math operations with safety checks that throw on error\r\n */\r\n//library SafeMath {\r\n//\r\n// /**\r\n// * @dev Multiplies two numbers, throws on overflow.\r\n// */\r\n// function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// // Gas optimization: this is cheaper than asserting 'a' not being zero, but the\r\n// // benefit is lost if 'b' is also tested.\r\n// // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\r\n// if (a == 0) {\r\n// return 0;\r\n// }\r\n//\r\n// c = a * b;\r\n// assert(c / a == b);\r\n// return c;\r\n// }\r\n//\r\n// /**\r\n// * @dev Integer division of two numbers, truncating the quotient.\r\n// */\r\n// function div(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// // assert(b > 0); // Solidity automatically throws when dividing by 0\r\n// // uint256 c = a / b;\r\n// // assert(a == b * c + a % b); // There is no case in which this doesn't hold\r\n// return a / b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).\r\n// */\r\n// function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// assert(b <= a);\r\n// return a - b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Adds two numbers, throws on overflow.\r\n// */\r\n// function add(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// c = a + b;\r\n// assert(c >= a);\r\n// return c;\r\n// }\r\n//}\r\n\r\n/**\r\n * Utility library of inline functions on addresses\r\n */\r\nlibrary AddressUtils {\r\n\r\n /**\r\n * Returns whether the target address is a contract\r\n * @dev This function will return false if invoked during the constructor of a contract,\r\n * as the code is not actually created until after the constructor finishes.\r\n * @param addr address to check\r\n * @return whether the target address is a contract\r\n */\r\n function isContract(address addr) internal view returns (bool) {\r\n uint256 size;\r\n // XXX Currently there is no better way to check if there is a contract in an address\r\n // than to check the size of the code at that address.\r\n // See https://ethereum.stackexchange.com/a/14016/36603\r\n // for more details about how this works.\r\n // TODO Check this again before the Serenity release, because all addresses will be\r\n // contracts then.\r\n // solium-disable-next-line security/no-inline-assembly\r\n assembly { size := extcodesize(addr) }\r\n return size > 0;\r\n }\r\n\r\n}\r\n\r\n/**\r\n * @title ERC165\r\n * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r\n */\r\ninterface ERC165 {\r\n\r\n /**\r\n * @notice Query if a contract implements an interface\r\n * @param _interfaceId The interface identifier, as specified in ERC-165\r\n * @dev Interface identification is specified in ERC-165. This function\r\n * uses less than 30,000 gas.\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool);\r\n}\r\n\r\n\r\n/**\r\n * @title SupportsInterfaceWithLookup\r\n * @author Matt Condon (@shrugs)\r\n * @dev Implements ERC165 using a lookup table.\r\n */\r\ncontract SupportsInterfaceWithLookup is ERC165 {\r\n bytes4 public constant InterfaceId_ERC165 = 0x01ffc9a7;\r\n /**\r\n * 0x01ffc9a7 ===\r\n * bytes4(keccak256('supportsInterface(bytes4)'))\r\n */\r\n\r\n /**\r\n * @dev a mapping of interface id to whether or not it's supported\r\n */\r\n mapping(bytes4 => bool) internal supportedInterfaces;\r\n\r\n /**\r\n * @dev A contract implementing SupportsInterfaceWithLookup\r\n * implement ERC165 itself\r\n */\r\n constructor()\r\n public\r\n {\r\n _registerInterface(InterfaceId_ERC165);\r\n }\r\n\r\n /**\r\n * @dev implement supportsInterface(bytes4) using a lookup table\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool)\r\n {\r\n return supportedInterfaces[_interfaceId];\r\n }\r\n\r\n /**\r\n * @dev private method for registering an interface\r\n */\r\n function _registerInterface(bytes4 _interfaceId)\r\n internal\r\n {\r\n require(_interfaceId != 0xffffffff);\r\n supportedInterfaces[_interfaceId] = true;\r\n }\r\n}\r\n\r\n/**\r\n * @title ERC721 token receiver interface\r\n * @dev Interface for any contract that wants to support safeTransfers\r\n * from ERC721 asset contracts.\r\n */\r\ncontract ERC721Receiver {\r\n /**\r\n * @dev Magic value to be returned upon successful reception of an NFT\r\n * Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`,\r\n * which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n */\r\n bytes4 internal constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n /**\r\n * @notice Handle the receipt of an NFT\r\n * @dev The ERC721 smart contract calls this function on the recipient\r\n * after a `safetransfer`. This function MAY throw to revert and reject the\r\n * transfer. This function MUST use 50,000 gas or less. Return of other\r\n * than the magic value MUST result in the transaction being reverted.\r\n * Note: the contract address is always the message sender.\r\n * @param _from The sending address\r\n * @param _tokenId The NFT identifier which is being transfered\r\n * @param _data Additional data with no specified format\r\n * @return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n */\r\n function onERC721Received(\r\n address _from,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n returns(bytes4);\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic interface\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721Basic is ERC165 {\r\n event Transfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n );\r\n event Approval(\r\n address _owner,\r\n address _approved,\r\n uint256 _tokenId\r\n );\r\n event ApprovalForAll(\r\n address _owner,\r\n address _operator,\r\n bool _approved\r\n );\r\n\r\n function balanceOf(address _owner) public view returns (uint256 _balance);\r\n function ownerOf(uint256 _tokenId) public view returns (address _owner);\r\n function exists(uint256 _tokenId) public view returns (bool _exists);\r\n\r\n function approve(address _to, uint256 _tokenId) public;\r\n function getApproved(uint256 _tokenId)\r\n public view returns (address _operator);\r\n\r\n function setApprovalForAll(address _operator, bool _approved) public;\r\n function isApprovedForAll(address _owner, address _operator)\r\n public view returns (bool);\r\n\r\n function transferFrom(address _from, address _to, uint256 _tokenId) public;\r\n function safeTransferFrom(address _from, address _to, uint256 _tokenId)\r\n public;\r\n\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public;\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic implementation\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721BasicToken is SupportsInterfaceWithLookup, ERC721Basic {\r\n\r\n bytes4 private constant InterfaceId_ERC721 = 0x80ac58cd;\r\n /*\r\n * 0x80ac58cd ===\r\n * bytes4(keccak256('balanceOf(address)')) ^\r\n * bytes4(keccak256('ownerOf(uint256)')) ^\r\n * bytes4(keccak256('approve(address,uint256)')) ^\r\n * bytes4(keccak256('getApproved(uint256)')) ^\r\n * bytes4(keccak256('setApprovalForAll(address,bool)')) ^\r\n * bytes4(keccak256('isApprovedForAll(address,address)')) ^\r\n * bytes4(keccak256('transferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)'))\r\n */\r\n\r\n bytes4 private constant InterfaceId_ERC721Exists = 0x4f558e79;\r\n /*\r\n * 0x4f558e79 ===\r\n * bytes4(keccak256('exists(uint256)'))\r\n */\r\n\r\n using SafeMath for uint256;\r\n using AddressUtils for address;\r\n\r\n // Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n // which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n bytes4 private constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n // Mapping from token ID to owner\r\n mapping (uint256 => address) internal tokenOwner;\r\n\r\n // Mapping from token ID to approved address\r\n mapping (uint256 => address) internal tokenApprovals;\r\n\r\n // Mapping from owner to number of owned token\r\n mapping (address => uint256) internal ownedTokensCount;\r\n\r\n // Mapping from owner to operator approvals\r\n mapping (address => mapping (address => bool)) internal operatorApprovals;\r\n\r\n\r\n uint public testint;\r\n /**\r\n * @dev Guarantees msg.sender is owner of the given token\r\n * @param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r\n */\r\n modifier onlyOwnerOf(uint256 _tokenId) {\r\n require(ownerOf(_tokenId) == msg.sender);\r\n _;\r\n }\r\n\r\n /**\r\n * @dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n * @param _tokenId uint256 ID of the token to validate\r\n */\r\n modifier canTransfer(uint256 _tokenId) {\r\n require(isApprovedOrOwner(msg.sender, _tokenId));\r\n _;\r\n }\r\n\r\n constructor()\r\n public\r\n {\r\n // register the supported interfaces to conform to ERC721 via ERC165\r\n _registerInterface(InterfaceId_ERC721);\r\n _registerInterface(InterfaceId_ERC721Exists);\r\n }\r\n\r\n /**\r\n * @dev Gets the balance of the specified address\r\n * @param _owner address to query the balance of\r\n * @return uint256 representing the amount owned by the passed address\r\n */\r\n function balanceOf(address _owner) public view returns (uint256) {\r\n require(_owner != address(0));\r\n return ownedTokensCount[_owner];\r\n }\r\n\r\n /**\r\n * @dev Gets the owner of the specified token ID\r\n * @param _tokenId uint256 ID of the token to query the owner of\r\n * @return owner address currently marked as the owner of the given token ID\r\n */\r\n function ownerOf(uint256 _tokenId) public view returns (address) {\r\n address owner = tokenOwner[_tokenId];\r\n require(owner != address(0));\r\n return owner;\r\n }\r\n\r\n /**\r\n * @dev Returns whether the specified token exists\r\n * @param _tokenId uint256 ID of the token to query the existence of\r\n * @return whether the token exists\r\n */\r\n function exists(uint256 _tokenId) public view returns (bool) {\r\n address owner = tokenOwner[_tokenId];\r\n return owner != address(0);\r\n }\r\n\r\n /**\r\n * @dev Approves another address to transfer the given token ID\r\n * The zero address indicates there is no approved address.\r\n * There can only be one approved address per token at a given time.\r\n * Can only be called by the token owner or an approved operator.\r\n * @param _to address to be approved for the given token ID\r\n * @param _tokenId uint256 ID of the token to be approved\r\n */\r\n function approve(address _to, uint256 _tokenId) public {\r\n address owner = ownerOf(_tokenId);\r\n require(_to != owner);\r\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender));\r\n\r\n tokenApprovals[_tokenId] = _to;\r\n emit Approval(owner, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Gets the approved address for a token ID, or zero if no address set\r\n * @param _tokenId uint256 ID of the token to query the approval of\r\n * @return address currently approved for the given token ID\r\n */\r\n function getApproved(uint256 _tokenId) public view returns (address) {\r\n return tokenApprovals[_tokenId];\r\n }\r\n\r\n /**\r\n * @dev Sets or unsets the approval of a given operator\r\n * An operator is allowed to transfer all tokens of the sender on their behalf\r\n * @param _to operator address to set the approval\r\n * @param _approved representing the status of the approval to be set\r\n */\r\n function setApprovalForAll(address _to, bool _approved) public {\r\n require(_to != msg.sender);\r\n operatorApprovals[msg.sender][_to] = _approved;\r\n emit ApprovalForAll(msg.sender, _to, _approved);\r\n }\r\n\r\n /**\r\n * @dev Tells whether an operator is approved by a given owner\r\n * @param _owner owner address which you want to query the approval of\r\n * @param _operator operator address which you want to query the approval of\r\n * @return bool whether the given operator is approved by the given owner\r\n */\r\n function isApprovedForAll(\r\n address _owner,\r\n address _operator\r\n )\r\n public\r\n view\r\n returns (bool)\r\n {\r\n return operatorApprovals[_owner][_operator];\r\n }\r\n\r\n /**\r\n * @dev Transfers the ownership of a given token ID to another address\r\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function transferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n require(_from != address(0));\r\n require(_to != address(0));\r\n\r\n clearApproval(_from, _tokenId);\r\n removeTokenFrom(_from, _tokenId);\r\n addTokenTo(_to, _tokenId);\r\n\r\n emit Transfer(_from, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n *\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n // solium-disable-next-line arg-overflow\r\n safeTransferFrom(_from, _to, _tokenId, \"\");\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes data to send along with a safe transfer check\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n transferFrom(_from, _to, _tokenId);\r\n // solium-disable-next-line arg-overflow\r\n require(checkAndCallSafeTransfer(_from, _to, _tokenId, _data));\r\n }\r\n\r\n /**\r\n * @dev Returns whether the given spender can transfer a given token ID\r\n * @param _spender address of the spender to query\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @return bool whether the msg.sender is approved for the given token ID,\r\n * is an operator of the owner, or is the owner of the token\r\n */\r\n function isApprovedOrOwner(\r\n address _spender,\r\n uint256 _tokenId\r\n )\r\n internal\r\n view\r\n returns (bool)\r\n {\r\n address owner = ownerOf(_tokenId);\r\n // Disable solium check because of\r\n // https://github.com/duaraghav8/Solium/issues/175\r\n // solium-disable-next-line operator-whitespace\r\n return (\r\n _spender == owner ||\r\n getApproved(_tokenId) == _spender ||\r\n isApprovedForAll(owner, _spender)\r\n );\r\n }\r\n\r\n /**\r\n * @dev Internal function to mint a new token\r\n * Reverts if the given token ID already exists\r\n * @param _to The address that will own the minted token\r\n * @param _tokenId uint256 ID of the token to be minted by the msg.sender\r\n */\r\n function _mint(address _to, uint256 _tokenId) internal {\r\n require(_to != address(0));\r\n addTokenTo(_to, _tokenId);\r\n emit Transfer(address(0), _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to burn a specific token\r\n * Reverts if the token does not exist\r\n * @param _tokenId uint256 ID of the token being burned by the msg.sender\r\n */\r\n function _burn(address _owner, uint256 _tokenId) internal {\r\n clearApproval(_owner, _tokenId);\r\n removeTokenFrom(_owner, _tokenId);\r\n emit Transfer(_owner, address(0), _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to clear current approval of a given token ID\r\n * Reverts if the given address is not indeed the owner of the token\r\n * @param _owner owner of the token\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function clearApproval(address _owner, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _owner);\r\n if (tokenApprovals[_tokenId] != address(0)) {\r\n tokenApprovals[_tokenId] = address(0);\r\n }\r\n }\r\n\r\n /**\r\n * @dev Internal function to add a token ID to the list of a given address\r\n * @param _to address representing the new owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r\n */\r\n function addTokenTo(address _to, uint256 _tokenId) internal {\r\n require(tokenOwner[_tokenId] == address(0));\r\n tokenOwner[_tokenId] = _to;\r\n ownedTokensCount[_to] = ownedTokensCount[_to].add(1);\r\n }\r\n\r\n /**\r\n * @dev Internal function to remove a token ID from the list of a given address\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r\n */\r\n function removeTokenFrom(address _from, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _from);\r\n ownedTokensCount[_from] = ownedTokensCount[_from].sub(1);\r\n tokenOwner[_tokenId] = address(0);\r\n }\r\n\r\n /**\r\n * @dev Internal function to invoke `onERC721Received` on a target address\r\n * The call is not executed if the target address is not a contract\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _to target address that will receive the tokens\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes optional data to send along with the call\r\n * @return whether the call correctly returned the expected magic value\r\n */\r\n function checkAndCallSafeTransfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n internal\r\n returns (bool)\r\n {\r\n if (!_to.isContract()) {\r\n return true;\r\n }\r\n bytes4 retval = ERC721Receiver(_to).onERC721Received(\r\n _from, _tokenId, _data);\r\n return (retval == ERC721_RECEIVED);\r\n }\r\n}\r\n\r\ncontract ERC721BasicTokenMock is ERC721BasicToken {\r\n function mint(address _to, uint256 _tokenId) public {\r\n super._mint(_to, _tokenId);\r\n }\r\n\r\n function burn(uint256 _tokenId) public {\r\n super._burn(ownerOf(_tokenId), _tokenId);\r\n }\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\inherited\\ERC721Basic.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", - "exportedSymbols": { - "AddressUtils": [ - 5009 - ], - "ERC165": [ - 5017 - ], - "ERC721Basic": [ - 5187 - ], - "ERC721BasicToken": [ - 5764 - ], - "ERC721BasicTokenMock": [ - 5797 - ], - "ERC721Receiver": [ - 5080 - ], - "SupportsInterfaceWithLookup": [ - 5065 - ] - }, - "id": 5798, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4991, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:8" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "../../dao/oz/SafeMath.sol", - "id": 4992, - "nodeType": "ImportDirective", - "scope": 5798, - "sourceUnit": 9858, - "src": "34:35:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "Utility library of inline functions on addresses\r", - "fullyImplemented": true, - "id": 5009, - "linearizedBaseContracts": [ - 5009 - ], - "name": "AddressUtils", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5007, - "nodeType": "Block", - "src": "2012:524:8", - "statements": [ - { - "assignments": [ - 5000 - ], - "declarations": [ - { - "constant": false, - "id": 5000, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 5007, - "src": "2019:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4999, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2019:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5001, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2019:12:8" - }, - { - "externalReferences": [ - { - "size": { - "declaration": 5000, - "isOffset": false, - "isSlot": false, - "src": "2482:4:8", - "valueSize": 1 - } - }, - { - "addr": { - "declaration": 4994, - "isOffset": false, - "isSlot": false, - "src": "2502:4:8", - "valueSize": 1 - } - } - ], - "id": 5002, - "nodeType": "InlineAssembly", - "operations": "{ size := extcodesize(addr) }", - "src": "2471:38:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5003, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5000, - "src": "2522:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5004, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2529:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2522:8:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4998, - "id": 5006, - "nodeType": "Return", - "src": "2515:15:8" - } - ] - }, - "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", - "id": 5008, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4994, - "name": "addr", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "1969:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1969:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1968:14:8" - }, - "returnParameters": { - "id": 4998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4997, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "2006:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4996, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2006:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2005:6:8" - }, - "scope": 5009, - "src": "1949:587:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "1590:951:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", - "fullyImplemented": false, - "id": 5017, - "linearizedBaseContracts": [ - 5017 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", - "id": 5016, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5012, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5011, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "2950:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5010, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "2950:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2949:21:8" - }, - "returnParameters": { - "id": 5015, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5014, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "3009:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5013, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3009:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3008:6:8" - }, - "scope": 5017, - "src": "2923:92:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 5798, - "src": "2643:375:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5018, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "3196:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5019, - "nodeType": "InheritanceSpecifier", - "src": "3196:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", - "fullyImplemented": true, - "id": 5065, - "linearizedBaseContracts": [ - 5065, - 5017 - ], - "name": "SupportsInterfaceWithLookup", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5022, - "name": "InterfaceId_ERC165", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3208:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5020, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3208:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 5021, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3252:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 5026, - "name": "supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3443:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 5025, - "keyType": { - "id": 5023, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3451:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "3443:23:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 5024, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3461:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 5033, - "nodeType": "Block", - "src": "3638:51:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5030, - "name": "InterfaceId_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5022, - "src": "3664:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5029, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "3645:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3645:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5032, - "nodeType": "ExpressionStatement", - "src": "3645:38:8" - } - ] - }, - "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", - "id": 5034, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5027, - "nodeType": "ParameterList", - "parameters": [], - "src": "3620:2:8" - }, - "returnParameters": { - "id": 5028, - "nodeType": "ParameterList", - "parameters": [], - "src": "3638:0:8" - }, - "scope": 5065, - "src": "3609:80:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5045, - "nodeType": "Block", - "src": "3872:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5041, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "3886:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5043, - "indexExpression": { - "argumentTypes": null, - "id": 5042, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5036, - "src": "3906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3886:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5040, - "id": 5044, - "nodeType": "Return", - "src": "3879:40:8" - } - ] - }, - "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", - "id": 5046, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5037, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5036, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3804:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5035, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3804:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3803:21:8" - }, - "returnParameters": { - "id": 5040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5039, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3863:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5038, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3863:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3862:6:8" - }, - "scope": 5065, - "src": "3777:148:8", - "stateMutability": "view", - "superFunction": 5016, - "visibility": "external" - }, - { - "body": { - "id": 5063, - "nodeType": "Block", - "src": "4066:95:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5052, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4081:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 5053, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4097:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "4081:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5051, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4073:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4073:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5056, - "nodeType": "ExpressionStatement", - "src": "4073:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5057, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "4115:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5059, - "indexExpression": { - "argumentTypes": null, - "id": 5058, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4135:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4115:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4151:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4115:40:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5062, - "nodeType": "ExpressionStatement", - "src": "4115:40:8" - } - ] - }, - "documentation": "@dev private method for registering an interface\r", - "id": 5064, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5049, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5048, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5064, - "src": "4028:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5047, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4028:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4027:21:8" - }, - "returnParameters": { - "id": 5050, - "nodeType": "ParameterList", - "parameters": [], - "src": "4066:0:8" - }, - "scope": 5065, - "src": "4000:161:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "3156:1008:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", - "fullyImplemented": false, - "id": 5080, - "linearizedBaseContracts": [ - 5080 - ], - "name": "ERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5068, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5080, - "src": "4607:53:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5066, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4607:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4650:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "internal" - }, - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", - "id": 5079, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5070, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5364:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5069, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5364:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5072, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5384:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5071, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5384:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5074, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5407:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5073, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5407:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5357:73:8" - }, - "returnParameters": { - "id": 5078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5077, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5456:6:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5076, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "5456:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5455:8:8" - }, - "scope": 5080, - "src": "5332:132:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "4326:1141:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5081, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "5641:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5082, - "nodeType": "InheritanceSpecifier", - "src": "5641:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": false, - "id": 5187, - "linearizedBaseContracts": [ - 5187, - 5017 - ], - "name": "ERC721Basic", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 5090, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 5089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5084, - "indexed": false, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5674:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5083, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5674:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5086, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5695:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5085, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5695:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5088, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5714:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5087, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5714:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5667:69:8" - }, - "src": "5653:84:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5098, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 5097, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5092, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5762:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5091, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5762:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5094, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5784:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5784:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5096, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5809:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5095, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5809:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5755:76:8" - }, - "src": "5741:91:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5106, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 5105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5100, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5863:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5099, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5863:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5102, - "indexed": false, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5885:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5101, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5885:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5104, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5910:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5103, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5910:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5856:73:8" - }, - "src": "5836:94:8" - }, - { - "body": null, - "documentation": null, - "id": 5113, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5109, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5108, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5955:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5107, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5955:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5954:16:8" - }, - "returnParameters": { - "id": 5112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5111, - "name": "_balance", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5992:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5110, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5992:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5991:18:8" - }, - "scope": 5187, - "src": "5936:74:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5120, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5116, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5115, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6031:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5114, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6030:18:8" - }, - "returnParameters": { - "id": 5119, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5118, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6070:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5117, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6070:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6069:16:8" - }, - "scope": 5187, - "src": "6014:72:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5127, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5123, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5122, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6106:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5121, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6106:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6105:18:8" - }, - "returnParameters": { - "id": 5126, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5125, - "name": "_exists", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6145:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5124, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6145:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6144:14:8" - }, - "scope": 5187, - "src": "6090:69:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5134, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5132, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5129, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6182:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6182:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5131, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6195:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6195:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6181:31:8" - }, - "returnParameters": { - "id": 5133, - "nodeType": "ParameterList", - "parameters": [], - "src": "6219:0:8" - }, - "scope": 5187, - "src": "6165:55:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5141, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5136, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6245:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5135, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6245:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6244:18:8" - }, - "returnParameters": { - "id": 5140, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5139, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6289:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5138, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6289:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6288:19:8" - }, - "scope": 5187, - "src": "6224:84:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5148, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5143, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6341:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6341:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5145, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6360:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5144, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6360:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6340:35:8" - }, - "returnParameters": { - "id": 5147, - "nodeType": "ParameterList", - "parameters": [], - "src": "6382:0:8" - }, - "scope": 5187, - "src": "6314:69:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5157, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5150, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6413:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5149, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6413:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5152, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6429:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5151, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6429:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6412:35:8" - }, - "returnParameters": { - "id": 5156, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5155, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6474:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5154, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6474:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6473:6:8" - }, - "scope": 5187, - "src": "6387:93:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5166, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5159, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6508:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5158, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6508:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5161, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6523:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5160, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6523:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5163, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6536:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5162, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6536:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6507:46:8" - }, - "returnParameters": { - "id": 5165, - "nodeType": "ParameterList", - "parameters": [], - "src": "6560:0:8" - }, - "scope": 5187, - "src": "6486:75:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5175, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5168, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6591:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5167, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6591:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5170, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6606:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5169, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6606:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5172, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6619:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6619:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6590:46:8" - }, - "returnParameters": { - "id": 5174, - "nodeType": "ParameterList", - "parameters": [], - "src": "6648:0:8" - }, - "scope": 5187, - "src": "6565:84:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5186, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5177, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6687:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5176, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6687:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5179, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6707:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5178, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6707:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5181, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6725:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5180, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6725:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5183, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6748:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5182, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6748:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6680:91:8" - }, - "returnParameters": { - "id": 5185, - "nodeType": "ParameterList", - "parameters": [], - "src": "6783:0:8" - }, - "scope": 5187, - "src": "6655:129:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "5617:1170:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5188, - "name": "SupportsInterfaceWithLookup", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5065, - "src": "6971:27:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", - "typeString": "contract SupportsInterfaceWithLookup" - } - }, - "id": 5189, - "nodeType": "InheritanceSpecifier", - "src": "6971:27:8" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5190, - "name": "ERC721Basic", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5187, - "src": "7000:11:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Basic_$5187", - "typeString": "contract ERC721Basic" - } - }, - "id": 5191, - "nodeType": "InheritanceSpecifier", - "src": "7000:11:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": true, - "id": 5764, - "linearizedBaseContracts": [ - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5194, - "name": "InterfaceId_ERC721", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7019:55:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5192, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7019:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 5193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7064:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 5197, - "name": "InterfaceId_ERC721Exists", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7668:61:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5195, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7668:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783466353538653739", - "id": 5196, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7719:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1331007097_by_1", - "typeString": "int_const 1331007097" - }, - "value": "0x4f558e79" - }, - "visibility": "private" - }, - { - "id": 5200, - "libraryName": { - "contractScope": null, - "id": 5198, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "7821:8:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "7815:27:8", - "typeName": { - "id": 5199, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7834:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 5203, - "libraryName": { - "contractScope": null, - "id": 5201, - "name": "AddressUtils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5009, - "src": "7852:12:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUtils_$5009", - "typeString": "library AddressUtils" - } - }, - "nodeType": "UsingForDirective", - "src": "7846:31:8", - "typeName": { - "id": 5202, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7869:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "constant": true, - "id": 5206, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8044:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5204, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8044:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5205, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8086:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 5210, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8140:48:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5209, - "keyType": { - "id": 5207, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8149:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8140:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5208, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8160:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5214, - "name": "tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8243:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5213, - "keyType": { - "id": 5211, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8252:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8243:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5212, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8263:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5218, - "name": "ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8352:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 5217, - "keyType": { - "id": 5215, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8361:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8352:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 5216, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8372:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5224, - "name": "operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8460:73:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "typeName": { - "id": 5223, - "keyType": { - "id": 5219, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8469:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8460:46:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 5222, - "keyType": { - "id": 5220, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8489:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8480:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 5221, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8500:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5226, - "name": "testint", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8542:19:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5225, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 5240, - "nodeType": "Block", - "src": "8774:61:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5232, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5228, - "src": "8797:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5231, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "8789:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8789:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5234, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "8810:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8810:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "8789:31:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5230, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "8781:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8781:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5238, - "nodeType": "ExpressionStatement", - "src": "8781:40:8" - }, - { - "id": 5239, - "nodeType": "PlaceholderStatement", - "src": "8828:1:8" - } - ] - }, - "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", - "id": 5241, - "name": "onlyOwnerOf", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5228, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5241, - "src": "8756:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8756:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8755:18:8" - }, - "src": "8735:100:8", - "visibility": "internal" - }, - { - "body": { - "id": 5254, - "nodeType": "Block", - "src": "9041:69:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5247, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "9074:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9074:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5249, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5243, - "src": "9086:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5246, - "name": "isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5567, - "src": "9056:17:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 5250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9056:39:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5245, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9048:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9048:48:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5252, - "nodeType": "ExpressionStatement", - "src": "9048:48:8" - }, - { - "id": 5253, - "nodeType": "PlaceholderStatement", - "src": "9103:1:8" - } - ] - }, - "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", - "id": 5255, - "name": "canTransfer", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5244, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5243, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5255, - "src": "9023:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5242, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9022:18:8" - }, - "src": "9002:108:8", - "visibility": "internal" - }, - { - "body": { - "id": 5266, - "nodeType": "Block", - "src": "9145:176:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5259, - "name": "InterfaceId_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5194, - "src": "9245:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5258, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9226:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9226:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5261, - "nodeType": "ExpressionStatement", - "src": "9226:38:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5263, - "name": "InterfaceId_ERC721Exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5197, - "src": "9290:24:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5262, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9271:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9271:44:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5265, - "nodeType": "ExpressionStatement", - "src": "9271:44:8" - } - ] - }, - "documentation": null, - "id": 5267, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5256, - "nodeType": "ParameterList", - "parameters": [], - "src": "9127:2:8" - }, - "returnParameters": { - "id": 5257, - "nodeType": "ParameterList", - "parameters": [], - "src": "9145:0:8" - }, - "scope": 5764, - "src": "9116:205:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5286, - "nodeType": "Block", - "src": "9585:80:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5275, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9600:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5277, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9618:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5276, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9610:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9610:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "9600:20:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5274, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9592:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9592:29:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5281, - "nodeType": "ExpressionStatement", - "src": "9592:29:8" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5282, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "9635:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5284, - "indexExpression": { - "argumentTypes": null, - "id": 5283, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9652:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9635:24:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5273, - "id": 5285, - "nodeType": "Return", - "src": "9628:31:8" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", - "id": 5287, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5270, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5269, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9539:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5268, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9539:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9538:16:8" - }, - "returnParameters": { - "id": 5273, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5272, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9576:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9576:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9575:9:8" - }, - "scope": 5764, - "src": "9520:145:8", - "stateMutability": "view", - "superFunction": 5113, - "visibility": "public" - }, - { - "body": { - "id": 5310, - "nodeType": "Block", - "src": "9950:103:8", - "statements": [ - { - "assignments": [ - 5295 - ], - "declarations": [ - { - "constant": false, - "id": 5295, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5310, - "src": "9957:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5294, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9957:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5299, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5296, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "9973:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5298, - "indexExpression": { - "argumentTypes": null, - "id": 5297, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5289, - "src": "9984:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9973:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9957:36:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5301, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10008:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10025:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10017:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5304, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10017:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10008:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5300, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10000:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5307, - "nodeType": "ExpressionStatement", - "src": "10000:28:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5308, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10042:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5293, - "id": 5309, - "nodeType": "Return", - "src": "10035:12:8" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", - "id": 5311, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5289, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9902:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5288, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9902:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9901:18:8" - }, - "returnParameters": { - "id": 5293, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5292, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9941:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5291, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9941:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9940:9:8" - }, - "scope": 5764, - "src": "9885:168:8", - "stateMutability": "view", - "superFunction": 5120, - "visibility": "public" - }, - { - "body": { - "id": 5330, - "nodeType": "Block", - "src": "10299:82:8", - "statements": [ - { - "assignments": [ - 5319 - ], - "declarations": [ - { - "constant": false, - "id": 5319, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5330, - "src": "10306:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5318, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10306:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5323, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5320, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "10322:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5322, - "indexExpression": { - "argumentTypes": null, - "id": 5321, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5313, - "src": "10333:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10322:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10306:36:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5324, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5319, - "src": "10356:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5326, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10373:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5325, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10365:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10365:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10356:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5317, - "id": 5329, - "nodeType": "Return", - "src": "10349:26:8" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", - "id": 5331, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5313, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10254:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5312, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10254:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10253:18:8" - }, - "returnParameters": { - "id": 5317, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5316, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10293:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5315, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10293:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10292:6:8" - }, - "scope": 5764, - "src": "10238:143:8", - "stateMutability": "view", - "superFunction": 5127, - "visibility": "public" - }, - { - "body": { - "id": 5375, - "nodeType": "Block", - "src": "10851:229:8", - "statements": [ - { - "assignments": [ - 5339 - ], - "declarations": [ - { - "constant": false, - "id": 5339, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5375, - "src": "10858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5338, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5343, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5341, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "10882:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5340, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "10874:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10874:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10858:33:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5345, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "10906:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 5346, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10913:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5344, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10898:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10898:21:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5349, - "nodeType": "ExpressionStatement", - "src": "10898:21:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5351, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10934:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10934:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5353, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10948:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10934:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5356, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10974:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5357, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10981:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10981:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 5355, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "10957:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10957:35:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "10934:58:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5350, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10926:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10926:67:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5362, - "nodeType": "ExpressionStatement", - "src": "10926:67:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5363, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11002:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5365, - "indexExpression": { - "argumentTypes": null, - "id": 5364, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11017:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11002:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5366, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11029:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "11002:30:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5368, - "nodeType": "ExpressionStatement", - "src": "11002:30:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5370, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "11053:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5371, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11060:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5372, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11065:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5369, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5098, - "src": "11044:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11044:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5374, - "nodeType": "EmitStatement", - "src": "11039:35:8" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", - "id": 5376, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5336, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5333, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10813:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10813:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5335, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10826:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5334, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10826:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10812:31:8" - }, - "returnParameters": { - "id": 5337, - "nodeType": "ParameterList", - "parameters": [], - "src": "10851:0:8" - }, - "scope": 5764, - "src": "10796:284:8", - "stateMutability": "nonpayable", - "superFunction": 5134, - "visibility": "public" - }, - { - "body": { - "id": 5387, - "nodeType": "Block", - "src": "11383:44:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5383, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11397:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5385, - "indexExpression": { - "argumentTypes": null, - "id": 5384, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5378, - "src": "11412:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11397:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5382, - "id": 5386, - "nodeType": "Return", - "src": "11390:31:8" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", - "id": 5388, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5378, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11335:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5377, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11335:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11334:18:8" - }, - "returnParameters": { - "id": 5382, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5381, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11374:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5380, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11374:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11373:9:8" - }, - "scope": 5764, - "src": "11314:113:8", - "stateMutability": "view", - "superFunction": 5141, - "visibility": "public" - }, - { - "body": { - "id": 5418, - "nodeType": "Block", - "src": "11778:146:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5396, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11793:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5397, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11800:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11800:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "11793:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5395, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "11785:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11785:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5401, - "nodeType": "ExpressionStatement", - "src": "11785:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5402, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "11818:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5406, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5403, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11836:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11836:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11818:29:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5407, - "indexExpression": { - "argumentTypes": null, - "id": 5405, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11848:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11818:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5408, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11855:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11818:46:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5410, - "nodeType": "ExpressionStatement", - "src": "11818:46:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5412, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11891:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11891:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5414, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11903:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5415, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11908:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5411, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5106, - "src": "11876:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 5416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11876:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5417, - "nodeType": "EmitStatement", - "src": "11871:47:8" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", - "id": 5419, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5390, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11742:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5389, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11742:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5392, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11755:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5391, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11755:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11741:29:8" - }, - "returnParameters": { - "id": 5394, - "nodeType": "ParameterList", - "parameters": [], - "src": "11778:0:8" - }, - "scope": 5764, - "src": "11715:209:8", - "stateMutability": "nonpayable", - "superFunction": 5148, - "visibility": "public" - }, - { - "body": { - "id": 5434, - "nodeType": "Block", - "src": "12362:56:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5428, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "12376:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5430, - "indexExpression": { - "argumentTypes": null, - "id": 5429, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5421, - "src": "12394:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5432, - "indexExpression": { - "argumentTypes": null, - "id": 5431, - "name": "_operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5423, - "src": "12402:9:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:36:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5427, - "id": 5433, - "nodeType": "Return", - "src": "12369:43:8" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", - "id": 5435, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5424, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5421, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12273:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5420, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12273:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5423, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12294:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5422, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12294:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12266:50:8" - }, - "returnParameters": { - "id": 5427, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5426, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12353:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5425, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12353:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12352:6:8" - }, - "scope": 5764, - "src": "12241:177:8", - "stateMutability": "view", - "superFunction": 5157, - "visibility": "public" - }, - { - "body": { - "id": 5484, - "nodeType": "Block", - "src": "12976:228:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5448, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "12991:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5450, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13008:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5449, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13000:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "12991:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5447, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "12983:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12983:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5454, - "nodeType": "ExpressionStatement", - "src": "12983:28:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5456, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13026:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13041:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5457, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13033:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5459, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13033:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "13026:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5455, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "13018:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13018:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5462, - "nodeType": "ExpressionStatement", - "src": "13018:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5464, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13067:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5465, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13074:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5463, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "13053:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13053:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5467, - "nodeType": "ExpressionStatement", - "src": "13053:30:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5469, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13106:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5470, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13113:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5468, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "13090:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13090:32:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5472, - "nodeType": "ExpressionStatement", - "src": "13090:32:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5474, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13140:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5475, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13145:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5473, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "13129:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13129:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5477, - "nodeType": "ExpressionStatement", - "src": "13129:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5479, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13177:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5480, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13184:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5481, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13189:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5478, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "13168:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13168:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5483, - "nodeType": "EmitStatement", - "src": "13163:35:8" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5485, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5444, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "12963:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5445, - "modifierName": { - "argumentTypes": null, - "id": 5443, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "12951:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12951:21:8" - } - ], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5442, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5437, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12874:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5436, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12874:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5439, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12894:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5438, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12894:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5441, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12912:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5440, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12912:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12867:66:8" - }, - "returnParameters": { - "id": 5446, - "nodeType": "ParameterList", - "parameters": [], - "src": "12976:0:8" - }, - "scope": 5764, - "src": "12846:358:8", - "stateMutability": "nonpayable", - "superFunction": 5166, - "visibility": "public" - }, - { - "body": { - "id": 5504, - "nodeType": "Block", - "src": "13960:101:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5498, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5487, - "src": "14030:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5499, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5489, - "src": "14037:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5500, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "14042:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 5501, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14052:2:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 5497, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5505, - 5535 - ], - "referencedDeclaration": 5535, - "src": "14013:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,uint256,bytes memory)" - } - }, - "id": 5502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14013:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5503, - "nodeType": "ExpressionStatement", - "src": "14013:42:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5505, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5494, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "13947:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5495, - "modifierName": { - "argumentTypes": null, - "id": 5493, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "13935:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13935:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5492, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5487, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5486, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5489, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13878:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5488, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13878:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5491, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13896:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5490, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13896:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13851:66:8" - }, - "returnParameters": { - "id": 5496, - "nodeType": "ParameterList", - "parameters": [], - "src": "13960:0:8" - }, - "scope": 5764, - "src": "13826:235:8", - "stateMutability": "nonpayable", - "superFunction": 5175, - "visibility": "public" - }, - { - "body": { - "id": 5534, - "nodeType": "Block", - "src": "14908:162:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5520, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "14928:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5521, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "14935:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5522, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14940:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5519, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5485 - ], - "referencedDeclaration": 5485, - "src": "14915:12:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14915:34:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5524, - "nodeType": "ExpressionStatement", - "src": "14915:34:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5527, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "15035:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5528, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "15042:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5529, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "15047:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5530, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5513, - "src": "15057:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 5526, - "name": "checkAndCallSafeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5763, - "src": "15010:24:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,address,uint256,bytes memory) returns (bool)" - } - }, - "id": 5531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15010:53:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5525, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "15002:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15002:62:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5533, - "nodeType": "ExpressionStatement", - "src": "15002:62:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", - "id": 5535, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5516, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14895:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5517, - "modifierName": { - "argumentTypes": null, - "id": 5515, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "14883:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14883:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5514, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5507, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14781:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5506, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14781:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5509, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14801:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5508, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14801:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5511, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14819:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5510, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14819:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5513, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14842:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5512, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14842:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14774:91:8" - }, - "returnParameters": { - "id": 5518, - "nodeType": "ParameterList", - "parameters": [], - "src": "14908:0:8" - }, - "scope": 5764, - "src": "14749:321:8", - "stateMutability": "nonpayable", - "superFunction": 5186, - "visibility": "public" - }, - { - "body": { - "id": 5566, - "nodeType": "Block", - "src": "15551:330:8", - "statements": [ - { - "assignments": [ - 5545 - ], - "declarations": [ - { - "constant": false, - "id": 5545, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5566, - "src": "15558:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5544, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15558:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5549, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5547, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15582:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5546, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "15574:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15574:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15558:33:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5550, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15763:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5551, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15775:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15763:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5554, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15803:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5553, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5388 - ], - "referencedDeclaration": 5388, - "src": "15791:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15791:21:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5556, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15816:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15791:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:61:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5560, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15852:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5561, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15859:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5559, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "15835:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15835:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:105:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5564, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "15754:121:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5543, - "id": 5565, - "nodeType": "Return", - "src": "15747:128:8" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", - "id": 5567, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5540, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5537, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15459:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5536, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15459:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5539, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15482:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5538, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15482:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15452:51:8" - }, - "returnParameters": { - "id": 5543, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5542, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15542:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5541, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "15542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15541:6:8" - }, - "scope": 5764, - "src": "15426:455:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5595, - "nodeType": "Block", - "src": "16193:118:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5575, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16208:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16223:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16215:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5578, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16215:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16208:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5574, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "16200:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16200:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5581, - "nodeType": "ExpressionStatement", - "src": "16200:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5583, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16244:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5584, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16249:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5582, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "16233:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16233:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5586, - "nodeType": "ExpressionStatement", - "src": "16233:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16287:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5588, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16279:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5590, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16279:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5591, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16291:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5592, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16296:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5587, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16270:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16270:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5594, - "nodeType": "EmitStatement", - "src": "16265:40:8" - } - ] - }, - "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", - "id": 5596, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5572, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5569, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16153:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5568, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16153:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5571, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16166:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5570, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16166:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16152:31:8" - }, - "returnParameters": { - "id": 5573, - "nodeType": "ParameterList", - "parameters": [], - "src": "16193:0:8" - }, - "scope": 5764, - "src": "16138:173:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5621, - "nodeType": "Block", - "src": "16562:134:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5604, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16583:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5605, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16591:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5603, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "16569:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16569:31:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5607, - "nodeType": "ExpressionStatement", - "src": "16569:31:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5609, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16623:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5610, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16631:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5608, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "16607:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16607:33:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5612, - "nodeType": "ExpressionStatement", - "src": "16607:33:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5614, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16661:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16677:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5615, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16669:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5617, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16669:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5618, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16681:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5613, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16652:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16652:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5620, - "nodeType": "EmitStatement", - "src": "16647:43:8" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", - "id": 5622, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5598, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16519:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16519:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5600, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16535:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16535:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16518:34:8" - }, - "returnParameters": { - "id": 5602, - "nodeType": "ParameterList", - "parameters": [], - "src": "16562:0:8" - }, - "scope": 5764, - "src": "16504:192:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5654, - "nodeType": "Block", - "src": "17032:153:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5631, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17055:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5630, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "17047:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17047:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5633, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5624, - "src": "17068:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17047:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5629, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17039:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17039:36:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5636, - "nodeType": "ExpressionStatement", - "src": "17039:36:8" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5637, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17086:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5639, - "indexExpression": { - "argumentTypes": null, - "id": 5638, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17101:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17086:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17122:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17114:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17114:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17086:38:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5653, - "nodeType": "IfStatement", - "src": "17082:98:8", - "trueBody": { - "id": 5652, - "nodeType": "Block", - "src": "17126:54:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5644, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17135:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5646, - "indexExpression": { - "argumentTypes": null, - "id": 5645, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17150:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17135:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17170:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5647, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17162:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5649, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17162:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17135:37:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5651, - "nodeType": "ExpressionStatement", - "src": "17135:37:8" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5655, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5627, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5624, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "16989:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5623, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16989:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5626, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "17005:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5625, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17005:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16988:34:8" - }, - "returnParameters": { - "id": 5628, - "nodeType": "ParameterList", - "parameters": [], - "src": "17032:0:8" - }, - "scope": 5764, - "src": "16966:219:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5689, - "nodeType": "Block", - "src": "17515:148:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5663, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17530:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5665, - "indexExpression": { - "argumentTypes": null, - "id": 5664, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17541:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17530:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17562:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17554:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5668, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17554:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17530:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5662, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17522:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17522:43:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5671, - "nodeType": "ExpressionStatement", - "src": "17522:43:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5672, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17572:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5674, - "indexExpression": { - "argumentTypes": null, - "id": 5673, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17583:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17572:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5675, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17595:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17572:26:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5677, - "nodeType": "ExpressionStatement", - "src": "17572:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5678, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17605:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5680, - "indexExpression": { - "argumentTypes": null, - "id": 5679, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17622:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17605:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17655:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5681, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17629:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5683, - "indexExpression": { - "argumentTypes": null, - "id": 5682, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17646:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17629:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "17629:25:8", - "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": 5686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17629:28:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17605:52:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5688, - "nodeType": "ExpressionStatement", - "src": "17605:52:8" - } - ] - }, - "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", - "id": 5690, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addTokenTo", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5660, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5657, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17475:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5656, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17475:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5659, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17488:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5658, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17488:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17474:31:8" - }, - "returnParameters": { - "id": 5661, - "nodeType": "ParameterList", - "parameters": [], - "src": "17515:0:8" - }, - "scope": 5764, - "src": "17455:208:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5724, - "nodeType": "Block", - "src": "18016:151:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5702, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5699, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18039:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5698, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "18031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18031:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5701, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18052:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "18031:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5697, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "18023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18023:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5704, - "nodeType": "ExpressionStatement", - "src": "18023:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5705, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18065:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5707, - "indexExpression": { - "argumentTypes": null, - "id": 5706, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18082:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18065:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18119:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5708, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18091:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5710, - "indexExpression": { - "argumentTypes": null, - "id": 5709, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18108:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18091:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "18091:27:8", - "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": 5713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18091:30:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18065:56:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5715, - "nodeType": "ExpressionStatement", - "src": "18065:56:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5716, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "18128:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5718, - "indexExpression": { - "argumentTypes": null, - "id": 5717, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18139:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18128:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18159:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18151:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18151:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "18128:33:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5723, - "nodeType": "ExpressionStatement", - "src": "18128:33:8" - } - ] - }, - "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", - "id": 5725, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "removeTokenFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5695, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5692, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17974:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5691, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17974:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5694, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17989:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5693, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17989:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17973:33:8" - }, - "returnParameters": { - "id": 5696, - "nodeType": "ParameterList", - "parameters": [], - "src": "18016:0:8" - }, - "scope": 5764, - "src": "17949:218:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5762, - "nodeType": "Block", - "src": "18846:195:8", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 5741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "18857:17:8", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5738, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18858:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 5008, - "src": "18858:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 5740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18858:16:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5745, - "nodeType": "IfStatement", - "src": "18853:51:8", - "trueBody": { - "id": 5744, - "nodeType": "Block", - "src": "18876:28:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5742, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18892:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 5737, - "id": 5743, - "nodeType": "Return", - "src": "18885:11:8" - } - ] - } - }, - { - "assignments": [ - 5747 - ], - "declarations": [ - { - "constant": false, - "id": 5747, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 5762, - "src": "18910:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5746, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "18910:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5756, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5752, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5727, - "src": "18971:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5753, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5731, - "src": "18978:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5754, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5733, - "src": "18988:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5749, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18941:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5748, - "name": "ERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5080, - "src": "18926:14:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", - "typeString": "type(contract ERC721Receiver)" - } - }, - "id": 5750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:19:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Receiver_$5080", - "typeString": "contract ERC721Receiver" - } - }, - "id": 5751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 5079, - "src": "18926:36:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" - } - }, - "id": 5755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:68:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18910:84:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5757, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5747, - "src": "19009:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5758, - "name": "ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5206, - "src": "19019:15:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "19009:25:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5760, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19008:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5737, - "id": 5761, - "nodeType": "Return", - "src": "19001:34:8" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", - "id": 5763, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "checkAndCallSafeTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5734, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5727, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18724:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5726, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18724:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5729, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18744:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18744:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5731, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18762:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5730, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18762:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5733, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18785:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5732, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "18785:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18717:91:8" - }, - "returnParameters": { - "id": 5737, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5736, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18837:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5735, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18837:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18836:6:8" - }, - "scope": 5764, - "src": "18684:357:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "6942:12102:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5765, - "name": "ERC721BasicToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5764, - "src": "19081:16:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", - "typeString": "contract ERC721BasicToken" - } - }, - "id": 5766, - "nodeType": "InheritanceSpecifier", - "src": "19081:16:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187, - 5764 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 5797, - "linearizedBaseContracts": [ - 5797, - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicTokenMock", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5780, - "nodeType": "Block", - "src": "19155:39:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5776, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5768, - "src": "19174:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5777, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5770, - "src": "19179:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5773, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19162:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 5596, - "src": "19162:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19162:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5779, - "nodeType": "ExpressionStatement", - "src": "19162:26:8" - } - ] - }, - "documentation": null, - "id": 5781, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5771, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5768, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19117:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5767, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19117:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5770, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19130:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5769, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19130:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19116:31:8" - }, - "returnParameters": { - "id": 5772, - "nodeType": "ParameterList", - "parameters": [], - "src": "19155:0:8" - }, - "scope": 5797, - "src": "19103:91:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5795, - "nodeType": "Block", - "src": "19239:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5790, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19266:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5789, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "19258:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19258:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5792, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19277:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5786, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19246:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 5622, - "src": "19246:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19246:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5794, - "nodeType": "ExpressionStatement", - "src": "19246:40:8" - } - ] - }, - "documentation": null, - "id": 5796, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5784, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5783, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5796, - "src": "19214:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5782, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19214:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19213:18:8" - }, - "returnParameters": { - "id": 5785, - "nodeType": "ParameterList", - "parameters": [], - "src": "19239:0:8" - }, - "scope": 5797, - "src": "19200:92:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "19048:247:8" - } - ], - "src": "0:19297:8" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", - "exportedSymbols": { - "AddressUtils": [ - 5009 - ], - "ERC165": [ - 5017 - ], - "ERC721Basic": [ - 5187 - ], - "ERC721BasicToken": [ - 5764 - ], - "ERC721BasicTokenMock": [ - 5797 - ], - "ERC721Receiver": [ - 5080 - ], - "SupportsInterfaceWithLookup": [ - 5065 - ] - }, - "id": 5798, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4991, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:8" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "../../dao/oz/SafeMath.sol", - "id": 4992, - "nodeType": "ImportDirective", - "scope": 5798, - "sourceUnit": 9858, - "src": "34:35:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "Utility library of inline functions on addresses\r", - "fullyImplemented": true, - "id": 5009, - "linearizedBaseContracts": [ - 5009 - ], - "name": "AddressUtils", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5007, - "nodeType": "Block", - "src": "2012:524:8", - "statements": [ - { - "assignments": [ - 5000 - ], - "declarations": [ - { - "constant": false, - "id": 5000, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 5007, - "src": "2019:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4999, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2019:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5001, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2019:12:8" - }, - { - "externalReferences": [ - { - "size": { - "declaration": 5000, - "isOffset": false, - "isSlot": false, - "src": "2482:4:8", - "valueSize": 1 - } - }, - { - "addr": { - "declaration": 4994, - "isOffset": false, - "isSlot": false, - "src": "2502:4:8", - "valueSize": 1 - } - } - ], - "id": 5002, - "nodeType": "InlineAssembly", - "operations": "{ size := extcodesize(addr) }", - "src": "2471:38:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5003, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5000, - "src": "2522:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5004, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2529:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2522:8:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4998, - "id": 5006, - "nodeType": "Return", - "src": "2515:15:8" - } - ] - }, - "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", - "id": 5008, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4994, - "name": "addr", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "1969:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1969:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1968:14:8" - }, - "returnParameters": { - "id": 4998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4997, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "2006:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4996, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2006:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2005:6:8" - }, - "scope": 5009, - "src": "1949:587:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "1590:951:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", - "fullyImplemented": false, - "id": 5017, - "linearizedBaseContracts": [ - 5017 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", - "id": 5016, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5012, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5011, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "2950:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5010, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "2950:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2949:21:8" - }, - "returnParameters": { - "id": 5015, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5014, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "3009:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5013, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3009:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3008:6:8" - }, - "scope": 5017, - "src": "2923:92:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 5798, - "src": "2643:375:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5018, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "3196:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5019, - "nodeType": "InheritanceSpecifier", - "src": "3196:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", - "fullyImplemented": true, - "id": 5065, - "linearizedBaseContracts": [ - 5065, - 5017 - ], - "name": "SupportsInterfaceWithLookup", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5022, - "name": "InterfaceId_ERC165", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3208:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5020, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3208:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 5021, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3252:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 5026, - "name": "supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3443:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 5025, - "keyType": { - "id": 5023, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3451:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "3443:23:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 5024, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3461:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 5033, - "nodeType": "Block", - "src": "3638:51:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5030, - "name": "InterfaceId_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5022, - "src": "3664:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5029, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "3645:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3645:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5032, - "nodeType": "ExpressionStatement", - "src": "3645:38:8" - } - ] - }, - "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", - "id": 5034, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5027, - "nodeType": "ParameterList", - "parameters": [], - "src": "3620:2:8" - }, - "returnParameters": { - "id": 5028, - "nodeType": "ParameterList", - "parameters": [], - "src": "3638:0:8" - }, - "scope": 5065, - "src": "3609:80:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5045, - "nodeType": "Block", - "src": "3872:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5041, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "3886:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5043, - "indexExpression": { - "argumentTypes": null, - "id": 5042, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5036, - "src": "3906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3886:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5040, - "id": 5044, - "nodeType": "Return", - "src": "3879:40:8" - } - ] - }, - "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", - "id": 5046, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5037, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5036, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3804:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5035, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3804:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3803:21:8" - }, - "returnParameters": { - "id": 5040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5039, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3863:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5038, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3863:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3862:6:8" - }, - "scope": 5065, - "src": "3777:148:8", - "stateMutability": "view", - "superFunction": 5016, - "visibility": "external" - }, - { - "body": { - "id": 5063, - "nodeType": "Block", - "src": "4066:95:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5052, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4081:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 5053, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4097:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "4081:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5051, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4073:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4073:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5056, - "nodeType": "ExpressionStatement", - "src": "4073:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5057, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "4115:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5059, - "indexExpression": { - "argumentTypes": null, - "id": 5058, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4135:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4115:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4151:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4115:40:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5062, - "nodeType": "ExpressionStatement", - "src": "4115:40:8" - } - ] - }, - "documentation": "@dev private method for registering an interface\r", - "id": 5064, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5049, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5048, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5064, - "src": "4028:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5047, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4028:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4027:21:8" - }, - "returnParameters": { - "id": 5050, - "nodeType": "ParameterList", - "parameters": [], - "src": "4066:0:8" - }, - "scope": 5065, - "src": "4000:161:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "3156:1008:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", - "fullyImplemented": false, - "id": 5080, - "linearizedBaseContracts": [ - 5080 - ], - "name": "ERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5068, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5080, - "src": "4607:53:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5066, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4607:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4650:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "internal" - }, - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", - "id": 5079, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5070, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5364:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5069, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5364:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5072, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5384:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5071, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5384:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5074, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5407:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5073, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5407:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5357:73:8" - }, - "returnParameters": { - "id": 5078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5077, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5456:6:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5076, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "5456:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5455:8:8" - }, - "scope": 5080, - "src": "5332:132:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "4326:1141:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5081, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "5641:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5082, - "nodeType": "InheritanceSpecifier", - "src": "5641:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": false, - "id": 5187, - "linearizedBaseContracts": [ - 5187, - 5017 - ], - "name": "ERC721Basic", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 5090, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 5089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5084, - "indexed": false, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5674:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5083, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5674:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5086, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5695:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5085, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5695:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5088, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5714:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5087, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5714:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5667:69:8" - }, - "src": "5653:84:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5098, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 5097, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5092, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5762:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5091, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5762:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5094, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5784:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5784:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5096, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5809:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5095, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5809:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5755:76:8" - }, - "src": "5741:91:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5106, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 5105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5100, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5863:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5099, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5863:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5102, - "indexed": false, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5885:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5101, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5885:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5104, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5910:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5103, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5910:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5856:73:8" - }, - "src": "5836:94:8" - }, - { - "body": null, - "documentation": null, - "id": 5113, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5109, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5108, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5955:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5107, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5955:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5954:16:8" - }, - "returnParameters": { - "id": 5112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5111, - "name": "_balance", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5992:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5110, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5992:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5991:18:8" - }, - "scope": 5187, - "src": "5936:74:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5120, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5116, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5115, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6031:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5114, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6030:18:8" - }, - "returnParameters": { - "id": 5119, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5118, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6070:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5117, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6070:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6069:16:8" - }, - "scope": 5187, - "src": "6014:72:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5127, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5123, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5122, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6106:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5121, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6106:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6105:18:8" - }, - "returnParameters": { - "id": 5126, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5125, - "name": "_exists", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6145:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5124, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6145:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6144:14:8" - }, - "scope": 5187, - "src": "6090:69:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5134, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5132, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5129, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6182:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6182:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5131, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6195:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6195:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6181:31:8" - }, - "returnParameters": { - "id": 5133, - "nodeType": "ParameterList", - "parameters": [], - "src": "6219:0:8" - }, - "scope": 5187, - "src": "6165:55:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5141, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5136, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6245:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5135, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6245:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6244:18:8" - }, - "returnParameters": { - "id": 5140, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5139, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6289:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5138, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6289:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6288:19:8" - }, - "scope": 5187, - "src": "6224:84:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5148, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5143, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6341:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6341:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5145, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6360:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5144, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6360:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6340:35:8" - }, - "returnParameters": { - "id": 5147, - "nodeType": "ParameterList", - "parameters": [], - "src": "6382:0:8" - }, - "scope": 5187, - "src": "6314:69:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5157, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5150, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6413:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5149, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6413:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5152, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6429:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5151, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6429:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6412:35:8" - }, - "returnParameters": { - "id": 5156, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5155, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6474:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5154, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6474:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6473:6:8" - }, - "scope": 5187, - "src": "6387:93:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5166, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5159, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6508:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5158, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6508:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5161, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6523:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5160, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6523:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5163, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6536:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5162, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6536:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6507:46:8" - }, - "returnParameters": { - "id": 5165, - "nodeType": "ParameterList", - "parameters": [], - "src": "6560:0:8" - }, - "scope": 5187, - "src": "6486:75:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5175, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5168, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6591:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5167, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6591:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5170, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6606:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5169, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6606:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5172, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6619:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6619:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6590:46:8" - }, - "returnParameters": { - "id": 5174, - "nodeType": "ParameterList", - "parameters": [], - "src": "6648:0:8" - }, - "scope": 5187, - "src": "6565:84:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5186, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5177, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6687:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5176, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6687:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5179, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6707:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5178, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6707:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5181, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6725:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5180, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6725:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5183, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6748:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5182, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6748:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6680:91:8" - }, - "returnParameters": { - "id": 5185, - "nodeType": "ParameterList", - "parameters": [], - "src": "6783:0:8" - }, - "scope": 5187, - "src": "6655:129:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "5617:1170:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5188, - "name": "SupportsInterfaceWithLookup", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5065, - "src": "6971:27:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", - "typeString": "contract SupportsInterfaceWithLookup" - } - }, - "id": 5189, - "nodeType": "InheritanceSpecifier", - "src": "6971:27:8" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5190, - "name": "ERC721Basic", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5187, - "src": "7000:11:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Basic_$5187", - "typeString": "contract ERC721Basic" - } - }, - "id": 5191, - "nodeType": "InheritanceSpecifier", - "src": "7000:11:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": true, - "id": 5764, - "linearizedBaseContracts": [ - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5194, - "name": "InterfaceId_ERC721", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7019:55:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5192, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7019:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 5193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7064:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 5197, - "name": "InterfaceId_ERC721Exists", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7668:61:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5195, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7668:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783466353538653739", - "id": 5196, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7719:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1331007097_by_1", - "typeString": "int_const 1331007097" - }, - "value": "0x4f558e79" - }, - "visibility": "private" - }, - { - "id": 5200, - "libraryName": { - "contractScope": null, - "id": 5198, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "7821:8:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "7815:27:8", - "typeName": { - "id": 5199, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7834:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 5203, - "libraryName": { - "contractScope": null, - "id": 5201, - "name": "AddressUtils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5009, - "src": "7852:12:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUtils_$5009", - "typeString": "library AddressUtils" - } - }, - "nodeType": "UsingForDirective", - "src": "7846:31:8", - "typeName": { - "id": 5202, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7869:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "constant": true, - "id": 5206, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8044:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5204, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8044:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5205, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8086:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 5210, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8140:48:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5209, - "keyType": { - "id": 5207, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8149:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8140:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5208, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8160:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5214, - "name": "tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8243:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5213, - "keyType": { - "id": 5211, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8252:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8243:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5212, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8263:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5218, - "name": "ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8352:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 5217, - "keyType": { - "id": 5215, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8361:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8352:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 5216, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8372:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5224, - "name": "operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8460:73:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "typeName": { - "id": 5223, - "keyType": { - "id": 5219, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8469:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8460:46:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 5222, - "keyType": { - "id": 5220, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8489:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8480:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 5221, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8500:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5226, - "name": "testint", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8542:19:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5225, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 5240, - "nodeType": "Block", - "src": "8774:61:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5232, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5228, - "src": "8797:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5231, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "8789:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8789:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5234, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "8810:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8810:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "8789:31:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5230, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "8781:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8781:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5238, - "nodeType": "ExpressionStatement", - "src": "8781:40:8" - }, - { - "id": 5239, - "nodeType": "PlaceholderStatement", - "src": "8828:1:8" - } - ] - }, - "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", - "id": 5241, - "name": "onlyOwnerOf", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5228, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5241, - "src": "8756:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8756:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8755:18:8" - }, - "src": "8735:100:8", - "visibility": "internal" - }, - { - "body": { - "id": 5254, - "nodeType": "Block", - "src": "9041:69:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5247, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "9074:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9074:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5249, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5243, - "src": "9086:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5246, - "name": "isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5567, - "src": "9056:17:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 5250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9056:39:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5245, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9048:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9048:48:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5252, - "nodeType": "ExpressionStatement", - "src": "9048:48:8" - }, - { - "id": 5253, - "nodeType": "PlaceholderStatement", - "src": "9103:1:8" - } - ] - }, - "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", - "id": 5255, - "name": "canTransfer", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5244, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5243, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5255, - "src": "9023:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5242, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9022:18:8" - }, - "src": "9002:108:8", - "visibility": "internal" - }, - { - "body": { - "id": 5266, - "nodeType": "Block", - "src": "9145:176:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5259, - "name": "InterfaceId_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5194, - "src": "9245:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5258, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9226:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9226:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5261, - "nodeType": "ExpressionStatement", - "src": "9226:38:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5263, - "name": "InterfaceId_ERC721Exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5197, - "src": "9290:24:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5262, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9271:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9271:44:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5265, - "nodeType": "ExpressionStatement", - "src": "9271:44:8" - } - ] - }, - "documentation": null, - "id": 5267, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5256, - "nodeType": "ParameterList", - "parameters": [], - "src": "9127:2:8" - }, - "returnParameters": { - "id": 5257, - "nodeType": "ParameterList", - "parameters": [], - "src": "9145:0:8" - }, - "scope": 5764, - "src": "9116:205:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5286, - "nodeType": "Block", - "src": "9585:80:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5275, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9600:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5277, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9618:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5276, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9610:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9610:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "9600:20:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5274, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9592:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9592:29:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5281, - "nodeType": "ExpressionStatement", - "src": "9592:29:8" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5282, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "9635:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5284, - "indexExpression": { - "argumentTypes": null, - "id": 5283, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9652:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9635:24:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5273, - "id": 5285, - "nodeType": "Return", - "src": "9628:31:8" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", - "id": 5287, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5270, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5269, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9539:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5268, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9539:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9538:16:8" - }, - "returnParameters": { - "id": 5273, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5272, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9576:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9576:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9575:9:8" - }, - "scope": 5764, - "src": "9520:145:8", - "stateMutability": "view", - "superFunction": 5113, - "visibility": "public" - }, - { - "body": { - "id": 5310, - "nodeType": "Block", - "src": "9950:103:8", - "statements": [ - { - "assignments": [ - 5295 - ], - "declarations": [ - { - "constant": false, - "id": 5295, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5310, - "src": "9957:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5294, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9957:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5299, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5296, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "9973:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5298, - "indexExpression": { - "argumentTypes": null, - "id": 5297, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5289, - "src": "9984:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9973:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9957:36:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5301, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10008:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10025:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10017:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5304, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10017:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10008:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5300, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10000:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5307, - "nodeType": "ExpressionStatement", - "src": "10000:28:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5308, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10042:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5293, - "id": 5309, - "nodeType": "Return", - "src": "10035:12:8" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", - "id": 5311, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5289, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9902:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5288, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9902:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9901:18:8" - }, - "returnParameters": { - "id": 5293, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5292, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9941:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5291, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9941:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9940:9:8" - }, - "scope": 5764, - "src": "9885:168:8", - "stateMutability": "view", - "superFunction": 5120, - "visibility": "public" - }, - { - "body": { - "id": 5330, - "nodeType": "Block", - "src": "10299:82:8", - "statements": [ - { - "assignments": [ - 5319 - ], - "declarations": [ - { - "constant": false, - "id": 5319, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5330, - "src": "10306:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5318, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10306:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5323, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5320, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "10322:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5322, - "indexExpression": { - "argumentTypes": null, - "id": 5321, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5313, - "src": "10333:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10322:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10306:36:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5324, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5319, - "src": "10356:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5326, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10373:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5325, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10365:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10365:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10356:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5317, - "id": 5329, - "nodeType": "Return", - "src": "10349:26:8" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", - "id": 5331, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5313, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10254:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5312, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10254:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10253:18:8" - }, - "returnParameters": { - "id": 5317, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5316, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10293:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5315, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10293:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10292:6:8" - }, - "scope": 5764, - "src": "10238:143:8", - "stateMutability": "view", - "superFunction": 5127, - "visibility": "public" - }, - { - "body": { - "id": 5375, - "nodeType": "Block", - "src": "10851:229:8", - "statements": [ - { - "assignments": [ - 5339 - ], - "declarations": [ - { - "constant": false, - "id": 5339, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5375, - "src": "10858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5338, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5343, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5341, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "10882:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5340, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "10874:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10874:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10858:33:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5345, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "10906:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 5346, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10913:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5344, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10898:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10898:21:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5349, - "nodeType": "ExpressionStatement", - "src": "10898:21:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5351, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10934:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10934:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5353, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10948:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10934:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5356, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10974:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5357, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10981:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10981:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 5355, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "10957:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10957:35:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "10934:58:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5350, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10926:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10926:67:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5362, - "nodeType": "ExpressionStatement", - "src": "10926:67:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5363, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11002:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5365, - "indexExpression": { - "argumentTypes": null, - "id": 5364, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11017:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11002:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5366, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11029:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "11002:30:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5368, - "nodeType": "ExpressionStatement", - "src": "11002:30:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5370, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "11053:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5371, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11060:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5372, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11065:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5369, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5098, - "src": "11044:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11044:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5374, - "nodeType": "EmitStatement", - "src": "11039:35:8" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", - "id": 5376, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5336, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5333, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10813:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10813:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5335, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10826:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5334, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10826:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10812:31:8" - }, - "returnParameters": { - "id": 5337, - "nodeType": "ParameterList", - "parameters": [], - "src": "10851:0:8" - }, - "scope": 5764, - "src": "10796:284:8", - "stateMutability": "nonpayable", - "superFunction": 5134, - "visibility": "public" - }, - { - "body": { - "id": 5387, - "nodeType": "Block", - "src": "11383:44:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5383, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11397:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5385, - "indexExpression": { - "argumentTypes": null, - "id": 5384, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5378, - "src": "11412:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11397:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5382, - "id": 5386, - "nodeType": "Return", - "src": "11390:31:8" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", - "id": 5388, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5378, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11335:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5377, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11335:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11334:18:8" - }, - "returnParameters": { - "id": 5382, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5381, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11374:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5380, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11374:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11373:9:8" - }, - "scope": 5764, - "src": "11314:113:8", - "stateMutability": "view", - "superFunction": 5141, - "visibility": "public" - }, - { - "body": { - "id": 5418, - "nodeType": "Block", - "src": "11778:146:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5396, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11793:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5397, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11800:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11800:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "11793:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5395, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "11785:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11785:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5401, - "nodeType": "ExpressionStatement", - "src": "11785:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5402, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "11818:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5406, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5403, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11836:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11836:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11818:29:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5407, - "indexExpression": { - "argumentTypes": null, - "id": 5405, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11848:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11818:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5408, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11855:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11818:46:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5410, - "nodeType": "ExpressionStatement", - "src": "11818:46:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5412, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11891:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11891:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5414, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11903:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5415, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11908:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5411, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5106, - "src": "11876:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 5416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11876:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5417, - "nodeType": "EmitStatement", - "src": "11871:47:8" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", - "id": 5419, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5390, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11742:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5389, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11742:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5392, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11755:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5391, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11755:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11741:29:8" - }, - "returnParameters": { - "id": 5394, - "nodeType": "ParameterList", - "parameters": [], - "src": "11778:0:8" - }, - "scope": 5764, - "src": "11715:209:8", - "stateMutability": "nonpayable", - "superFunction": 5148, - "visibility": "public" - }, - { - "body": { - "id": 5434, - "nodeType": "Block", - "src": "12362:56:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5428, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "12376:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5430, - "indexExpression": { - "argumentTypes": null, - "id": 5429, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5421, - "src": "12394:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5432, - "indexExpression": { - "argumentTypes": null, - "id": 5431, - "name": "_operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5423, - "src": "12402:9:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:36:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5427, - "id": 5433, - "nodeType": "Return", - "src": "12369:43:8" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", - "id": 5435, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5424, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5421, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12273:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5420, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12273:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5423, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12294:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5422, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12294:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12266:50:8" - }, - "returnParameters": { - "id": 5427, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5426, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12353:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5425, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12353:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12352:6:8" - }, - "scope": 5764, - "src": "12241:177:8", - "stateMutability": "view", - "superFunction": 5157, - "visibility": "public" - }, - { - "body": { - "id": 5484, - "nodeType": "Block", - "src": "12976:228:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5448, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "12991:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5450, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13008:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5449, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13000:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "12991:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5447, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "12983:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12983:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5454, - "nodeType": "ExpressionStatement", - "src": "12983:28:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5456, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13026:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13041:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5457, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13033:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5459, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13033:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "13026:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5455, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "13018:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13018:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5462, - "nodeType": "ExpressionStatement", - "src": "13018:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5464, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13067:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5465, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13074:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5463, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "13053:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13053:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5467, - "nodeType": "ExpressionStatement", - "src": "13053:30:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5469, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13106:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5470, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13113:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5468, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "13090:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13090:32:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5472, - "nodeType": "ExpressionStatement", - "src": "13090:32:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5474, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13140:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5475, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13145:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5473, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "13129:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13129:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5477, - "nodeType": "ExpressionStatement", - "src": "13129:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5479, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13177:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5480, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13184:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5481, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13189:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5478, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "13168:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13168:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5483, - "nodeType": "EmitStatement", - "src": "13163:35:8" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5485, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5444, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "12963:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5445, - "modifierName": { - "argumentTypes": null, - "id": 5443, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "12951:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12951:21:8" - } - ], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5442, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5437, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12874:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5436, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12874:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5439, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12894:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5438, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12894:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5441, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12912:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5440, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12912:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12867:66:8" - }, - "returnParameters": { - "id": 5446, - "nodeType": "ParameterList", - "parameters": [], - "src": "12976:0:8" - }, - "scope": 5764, - "src": "12846:358:8", - "stateMutability": "nonpayable", - "superFunction": 5166, - "visibility": "public" - }, - { - "body": { - "id": 5504, - "nodeType": "Block", - "src": "13960:101:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5498, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5487, - "src": "14030:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5499, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5489, - "src": "14037:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5500, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "14042:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 5501, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14052:2:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 5497, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5505, - 5535 - ], - "referencedDeclaration": 5535, - "src": "14013:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,uint256,bytes memory)" - } - }, - "id": 5502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14013:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5503, - "nodeType": "ExpressionStatement", - "src": "14013:42:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5505, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5494, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "13947:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5495, - "modifierName": { - "argumentTypes": null, - "id": 5493, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "13935:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13935:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5492, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5487, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5486, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5489, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13878:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5488, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13878:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5491, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13896:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5490, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13896:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13851:66:8" - }, - "returnParameters": { - "id": 5496, - "nodeType": "ParameterList", - "parameters": [], - "src": "13960:0:8" - }, - "scope": 5764, - "src": "13826:235:8", - "stateMutability": "nonpayable", - "superFunction": 5175, - "visibility": "public" - }, - { - "body": { - "id": 5534, - "nodeType": "Block", - "src": "14908:162:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5520, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "14928:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5521, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "14935:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5522, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14940:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5519, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5485 - ], - "referencedDeclaration": 5485, - "src": "14915:12:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14915:34:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5524, - "nodeType": "ExpressionStatement", - "src": "14915:34:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5527, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "15035:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5528, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "15042:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5529, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "15047:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5530, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5513, - "src": "15057:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 5526, - "name": "checkAndCallSafeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5763, - "src": "15010:24:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,address,uint256,bytes memory) returns (bool)" - } - }, - "id": 5531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15010:53:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5525, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "15002:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15002:62:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5533, - "nodeType": "ExpressionStatement", - "src": "15002:62:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", - "id": 5535, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5516, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14895:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5517, - "modifierName": { - "argumentTypes": null, - "id": 5515, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "14883:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14883:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5514, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5507, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14781:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5506, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14781:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5509, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14801:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5508, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14801:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5511, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14819:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5510, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14819:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5513, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14842:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5512, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14842:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14774:91:8" - }, - "returnParameters": { - "id": 5518, - "nodeType": "ParameterList", - "parameters": [], - "src": "14908:0:8" - }, - "scope": 5764, - "src": "14749:321:8", - "stateMutability": "nonpayable", - "superFunction": 5186, - "visibility": "public" - }, - { - "body": { - "id": 5566, - "nodeType": "Block", - "src": "15551:330:8", - "statements": [ - { - "assignments": [ - 5545 - ], - "declarations": [ - { - "constant": false, - "id": 5545, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5566, - "src": "15558:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5544, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15558:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5549, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5547, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15582:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5546, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "15574:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15574:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15558:33:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5550, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15763:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5551, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15775:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15763:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5554, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15803:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5553, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5388 - ], - "referencedDeclaration": 5388, - "src": "15791:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15791:21:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5556, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15816:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15791:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:61:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5560, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15852:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5561, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15859:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5559, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "15835:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15835:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:105:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5564, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "15754:121:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5543, - "id": 5565, - "nodeType": "Return", - "src": "15747:128:8" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", - "id": 5567, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5540, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5537, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15459:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5536, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15459:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5539, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15482:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5538, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15482:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15452:51:8" - }, - "returnParameters": { - "id": 5543, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5542, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15542:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5541, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "15542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15541:6:8" - }, - "scope": 5764, - "src": "15426:455:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5595, - "nodeType": "Block", - "src": "16193:118:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5575, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16208:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16223:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16215:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5578, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16215:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16208:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5574, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "16200:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16200:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5581, - "nodeType": "ExpressionStatement", - "src": "16200:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5583, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16244:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5584, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16249:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5582, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "16233:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16233:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5586, - "nodeType": "ExpressionStatement", - "src": "16233:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16287:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5588, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16279:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5590, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16279:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5591, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16291:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5592, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16296:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5587, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16270:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16270:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5594, - "nodeType": "EmitStatement", - "src": "16265:40:8" - } - ] - }, - "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", - "id": 5596, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5572, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5569, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16153:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5568, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16153:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5571, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16166:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5570, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16166:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16152:31:8" - }, - "returnParameters": { - "id": 5573, - "nodeType": "ParameterList", - "parameters": [], - "src": "16193:0:8" - }, - "scope": 5764, - "src": "16138:173:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5621, - "nodeType": "Block", - "src": "16562:134:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5604, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16583:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5605, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16591:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5603, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "16569:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16569:31:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5607, - "nodeType": "ExpressionStatement", - "src": "16569:31:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5609, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16623:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5610, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16631:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5608, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "16607:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16607:33:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5612, - "nodeType": "ExpressionStatement", - "src": "16607:33:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5614, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16661:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16677:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5615, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16669:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5617, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16669:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5618, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16681:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5613, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16652:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16652:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5620, - "nodeType": "EmitStatement", - "src": "16647:43:8" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", - "id": 5622, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5598, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16519:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16519:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5600, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16535:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16535:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16518:34:8" - }, - "returnParameters": { - "id": 5602, - "nodeType": "ParameterList", - "parameters": [], - "src": "16562:0:8" - }, - "scope": 5764, - "src": "16504:192:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5654, - "nodeType": "Block", - "src": "17032:153:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5631, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17055:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5630, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "17047:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17047:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5633, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5624, - "src": "17068:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17047:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5629, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17039:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17039:36:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5636, - "nodeType": "ExpressionStatement", - "src": "17039:36:8" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5637, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17086:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5639, - "indexExpression": { - "argumentTypes": null, - "id": 5638, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17101:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17086:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17122:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17114:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17114:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17086:38:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5653, - "nodeType": "IfStatement", - "src": "17082:98:8", - "trueBody": { - "id": 5652, - "nodeType": "Block", - "src": "17126:54:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5644, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17135:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5646, - "indexExpression": { - "argumentTypes": null, - "id": 5645, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17150:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17135:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17170:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5647, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17162:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5649, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17162:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17135:37:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5651, - "nodeType": "ExpressionStatement", - "src": "17135:37:8" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5655, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5627, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5624, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "16989:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5623, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16989:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5626, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "17005:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5625, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17005:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16988:34:8" - }, - "returnParameters": { - "id": 5628, - "nodeType": "ParameterList", - "parameters": [], - "src": "17032:0:8" - }, - "scope": 5764, - "src": "16966:219:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5689, - "nodeType": "Block", - "src": "17515:148:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5663, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17530:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5665, - "indexExpression": { - "argumentTypes": null, - "id": 5664, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17541:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17530:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17562:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17554:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5668, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17554:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17530:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5662, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17522:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17522:43:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5671, - "nodeType": "ExpressionStatement", - "src": "17522:43:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5672, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17572:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5674, - "indexExpression": { - "argumentTypes": null, - "id": 5673, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17583:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17572:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5675, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17595:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17572:26:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5677, - "nodeType": "ExpressionStatement", - "src": "17572:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5678, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17605:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5680, - "indexExpression": { - "argumentTypes": null, - "id": 5679, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17622:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17605:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17655:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5681, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17629:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5683, - "indexExpression": { - "argumentTypes": null, - "id": 5682, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17646:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17629:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "17629:25:8", - "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": 5686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17629:28:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17605:52:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5688, - "nodeType": "ExpressionStatement", - "src": "17605:52:8" - } - ] - }, - "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", - "id": 5690, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addTokenTo", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5660, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5657, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17475:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5656, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17475:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5659, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17488:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5658, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17488:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17474:31:8" - }, - "returnParameters": { - "id": 5661, - "nodeType": "ParameterList", - "parameters": [], - "src": "17515:0:8" - }, - "scope": 5764, - "src": "17455:208:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5724, - "nodeType": "Block", - "src": "18016:151:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5702, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5699, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18039:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5698, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "18031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18031:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5701, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18052:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "18031:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5697, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "18023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18023:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5704, - "nodeType": "ExpressionStatement", - "src": "18023:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5705, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18065:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5707, - "indexExpression": { - "argumentTypes": null, - "id": 5706, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18082:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18065:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18119:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5708, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18091:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5710, - "indexExpression": { - "argumentTypes": null, - "id": 5709, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18108:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18091:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "18091:27:8", - "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": 5713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18091:30:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18065:56:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5715, - "nodeType": "ExpressionStatement", - "src": "18065:56:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5716, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "18128:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5718, - "indexExpression": { - "argumentTypes": null, - "id": 5717, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18139:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18128:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18159:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18151:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18151:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "18128:33:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5723, - "nodeType": "ExpressionStatement", - "src": "18128:33:8" - } - ] - }, - "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", - "id": 5725, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "removeTokenFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5695, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5692, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17974:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5691, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17974:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5694, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17989:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5693, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17989:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17973:33:8" - }, - "returnParameters": { - "id": 5696, - "nodeType": "ParameterList", - "parameters": [], - "src": "18016:0:8" - }, - "scope": 5764, - "src": "17949:218:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5762, - "nodeType": "Block", - "src": "18846:195:8", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 5741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "18857:17:8", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5738, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18858:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 5008, - "src": "18858:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 5740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18858:16:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5745, - "nodeType": "IfStatement", - "src": "18853:51:8", - "trueBody": { - "id": 5744, - "nodeType": "Block", - "src": "18876:28:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5742, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18892:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 5737, - "id": 5743, - "nodeType": "Return", - "src": "18885:11:8" - } - ] - } - }, - { - "assignments": [ - 5747 - ], - "declarations": [ - { - "constant": false, - "id": 5747, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 5762, - "src": "18910:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5746, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "18910:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5756, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5752, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5727, - "src": "18971:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5753, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5731, - "src": "18978:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5754, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5733, - "src": "18988:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5749, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18941:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5748, - "name": "ERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5080, - "src": "18926:14:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", - "typeString": "type(contract ERC721Receiver)" - } - }, - "id": 5750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:19:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Receiver_$5080", - "typeString": "contract ERC721Receiver" - } - }, - "id": 5751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 5079, - "src": "18926:36:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" - } - }, - "id": 5755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:68:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18910:84:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5757, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5747, - "src": "19009:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5758, - "name": "ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5206, - "src": "19019:15:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "19009:25:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5760, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19008:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5737, - "id": 5761, - "nodeType": "Return", - "src": "19001:34:8" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", - "id": 5763, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "checkAndCallSafeTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5734, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5727, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18724:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5726, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18724:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5729, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18744:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18744:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5731, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18762:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5730, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18762:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5733, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18785:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5732, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "18785:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18717:91:8" - }, - "returnParameters": { - "id": 5737, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5736, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18837:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5735, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18837:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18836:6:8" - }, - "scope": 5764, - "src": "18684:357:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "6942:12102:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5765, - "name": "ERC721BasicToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5764, - "src": "19081:16:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", - "typeString": "contract ERC721BasicToken" - } - }, - "id": 5766, - "nodeType": "InheritanceSpecifier", - "src": "19081:16:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187, - 5764 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 5797, - "linearizedBaseContracts": [ - 5797, - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicTokenMock", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5780, - "nodeType": "Block", - "src": "19155:39:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5776, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5768, - "src": "19174:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5777, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5770, - "src": "19179:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5773, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19162:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 5596, - "src": "19162:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19162:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5779, - "nodeType": "ExpressionStatement", - "src": "19162:26:8" - } - ] - }, - "documentation": null, - "id": 5781, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5771, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5768, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19117:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5767, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19117:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5770, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19130:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5769, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19130:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19116:31:8" - }, - "returnParameters": { - "id": 5772, - "nodeType": "ParameterList", - "parameters": [], - "src": "19155:0:8" - }, - "scope": 5797, - "src": "19103:91:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5795, - "nodeType": "Block", - "src": "19239:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5790, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19266:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5789, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "19258:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19258:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5792, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19277:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5786, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19246:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 5622, - "src": "19246:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19246:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5794, - "nodeType": "ExpressionStatement", - "src": "19246:40:8" - } - ] - }, - "documentation": null, - "id": 5796, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5784, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5783, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5796, - "src": "19214:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5782, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19214:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19213:18:8" - }, - "returnParameters": { - "id": 5785, - "nodeType": "ParameterList", - "parameters": [], - "src": "19239:0:8" - }, - "scope": 5797, - "src": "19200:92:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "19048:247:8" - } - ], - "src": "0:19297:8" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:19.948Z", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {}, - "notice": "Utility library of inline functions on addresses\r" - } -} \ No newline at end of file diff --git a/src/contracts/BountiesMetaTxRelayer.json b/src/contracts/BountiesMetaTxRelayer.json deleted file mode 100644 index 93c19b0..0000000 --- a/src/contracts/BountiesMetaTxRelayer.json +++ /dev/null @@ -1,43751 +0,0 @@ -{ - "contractName": "BountiesMetaTxRelayer", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "replayNonce", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "bountiesContract", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_contract", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "constant": false, - "inputs": [ - { - "name": "signature", - "type": "bytes" - }, - { - "name": "_issuers", - "type": "address[]" - }, - { - "name": "_approvers", - "type": "address[]" - }, - { - "name": "_data", - "type": "string" - }, - { - "name": "_deadline", - "type": "uint256" - }, - { - "name": "_token", - "type": "address" - }, - { - "name": "_tokenVersion", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaIssueBounty", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "signature", - "type": "bytes" - }, - { - "name": "_issuers", - "type": "address[]" - }, - { - "name": "_approvers", - "type": "address[]" - }, - { - "name": "_data", - "type": "string" - }, - { - "name": "_deadline", - "type": "uint256" - }, - { - "name": "_token", - "type": "address" - }, - { - "name": "_tokenVersion", - "type": "uint256" - }, - { - "name": "_depositAmount", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaIssueAndContribute", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaContribute", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_contributionId", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaRefundContribution", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_contributionIds", - "type": "uint256[]" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaRefundMyContributions", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_contributionIds", - "type": "uint256[]" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaRefundContributions", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_amounts", - "type": "uint256[]" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaDrainBounty", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_data", - "type": "string" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaPerformAction", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_fulfillers", - "type": "address[]" - }, - { - "name": "_data", - "type": "string" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaFulfillBounty", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_fulfillmentId", - "type": "uint256" - }, - { - "name": "_fulfillers", - "type": "address[]" - }, - { - "name": "_data", - "type": "string" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaUpdateFulfillment", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_fulfillmentId", - "type": "uint256" - }, - { - "name": "_approverId", - "type": "uint256" - }, - { - "name": "_tokenAmounts", - "type": "uint256[]" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaAcceptFulfillment", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_fulfillers", - "type": "address[]" - }, - { - "name": "_data", - "type": "string" - }, - { - "name": "_approverId", - "type": "uint256" - }, - { - "name": "_tokenAmounts", - "type": "uint256[]" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaFulfillAndAccept", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_issuers", - "type": "address[]" - }, - { - "name": "_approvers", - "type": "address[]" - }, - { - "name": "_data", - "type": "string" - }, - { - "name": "_deadline", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaChangeBounty", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_issuerIdToChange", - "type": "uint256" - }, - { - "name": "_newIssuer", - "type": "address" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaChangeIssuer", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_approverId", - "type": "uint256" - }, - { - "name": "_approver", - "type": "address" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaChangeApprover", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_data", - "type": "string" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaChangeData", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_deadline", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaChangeDeadline", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_issuers", - "type": "address[]" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaAddIssuers", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_approvers", - "type": "address[]" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaAddApprovers", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_fulfillers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_approverId\",\"type\":\"uint256\"},{\"name\":\"_tokenAmounts\",\"type\":\"uint256[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaFulfillAndAccept\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_fulfillmentId\",\"type\":\"uint256\"},{\"name\":\"_fulfillers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaUpdateFulfillment\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaChangeData\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaChangeDeadline\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaChangeBounty\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaContribute\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaPerformAction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_contributionIds\",\"type\":\"uint256[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaRefundMyContributions\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"replayNonce\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_fulfillmentId\",\"type\":\"uint256\"},{\"name\":\"_approverId\",\"type\":\"uint256\"},{\"name\":\"_tokenAmounts\",\"type\":\"uint256[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaAcceptFulfillment\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaAddApprovers\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_contributionId\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaRefundContribution\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"bountiesContract\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_approverId\",\"type\":\"uint256\"},{\"name\":\"_approver\",\"type\":\"address\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaChangeApprover\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_amounts\",\"type\":\"uint256[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaDrainBounty\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"signature\",\"type\":\"bytes\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_tokenVersion\",\"type\":\"uint256\"},{\"name\":\"_depositAmount\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaIssueAndContribute\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaAddIssuers\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_issuerIdToChange\",\"type\":\"uint256\"},{\"name\":\"_newIssuer\",\"type\":\"address\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaChangeIssuer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"signature\",\"type\":\"bytes\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_tokenVersion\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaIssueBounty\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_fulfillers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaFulfillBounty\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_contributionIds\",\"type\":\"uint256[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaRefundContributions\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_contract\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/BountiesMetaTxRelayer.sol\":\"BountiesMetaTxRelayer\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/BountiesMetaTxRelayer.sol\":{\"keccak256\":\"0x1f0df89b42346dd27c007771f4af26b0225940b48b5ab95d03aa83fb498185d6\",\"urls\":[\"bzzr://997e45112b8f73ef806bd8b21b7cca2c74a349616783dc5e466b2b168b29fb6c\",\"dweb:/ipfs/QmUKSd5wEN2rN7es2erPuh3ShJmk5iczpuTv1iTgRSpXo2\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/StandardBounties.sol\":{\"keccak256\":\"0x456ed28ea1aef4e955403633cf32abd31157ba403d9cb68354c7dc672c5ccabf\",\"urls\":[\"bzzr://d15335b4982aca05664cad86d9c6a2bf810f978a29446cd053d45a737d6714e8\",\"dweb:/ipfs/QmTJ8fyPixSGid17Dk2xF8tBphrrEVTPKNenz3aRn1LFrL\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC20Token.sol\":{\"keccak256\":\"0x3148ace3c8e413e3e8cb9181826bbb7382fe8fd691fbbe398b0f3291c5ac88f6\",\"urls\":[\"bzzr://f6dae48bd61cf187d97f6dd7b1f14c4216ccda99c9173d87ac59465f9d3a030b\",\"dweb:/ipfs/QmbDe5WTm8sWmUWRbKxtWUrSbyS1T5vgkiVscK94RJb6iS\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":{\"keccak256\":\"0x4dd046a190602871aa9743a94149789c1e14b14f609c68d0f34d72e19bd690ce\",\"urls\":[\"bzzr://ea591dfb88f3591fe4344b7e665024c5aa3e8fb758a0409db79b1885a996b825\",\"dweb:/ipfs/QmXrwJ2TTXMWHBQxuLCqrj96gfh5HCHK57JsCEcXJ84t6z\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/Token.sol\":{\"keccak256\":\"0xdee24120ae0fa14b9200dfa97babfa107aaf668b52eeda93ad672260ede4b74c\",\"urls\":[\"bzzr://2144e06fcebb6227647c4362c7075680ea03074e80e51d37cad0b09092ff06a5\",\"dweb:/ipfs/QmYgcfKEH2DT6brtajHvPRdu6my6CRWH86TXmZCMZeGjfK\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b506040516200362c3803806200362c83398101604081905262000034916200006d565b600080546001600160a01b0319166001600160a01b0392909216919091179055620000c2565b80516200006781620000a8565b92915050565b6000602082840312156200008057600080fd5b60006200008e84846200005a565b949350505050565b60006001600160a01b03821662000067565b620000b38162000096565b8114620000bf57600080fd5b50565b61355a80620000d26000396000f3fe60806040526004361061012a5760003560e01c8063926b4e5f116100ab578063b1e6bcbb1161006f578063b1e6bcbb1461031c578063c353a38a1461032f578063dc5065a81461034f578063df4015fc1461036f578063ec34c4c01461038f578063fbb9e715146103af5761012a565b8063926b4e5f1461027a57806393ee9f4f1461029a578063a39da942146102ba578063a84d579d146102dc578063ae96762d146102fc5761012a565b8063432326a9116100f2578063432326a9146101d1578063484621d5146101e4578063632ebc7b1461020457806367d407df146102245780637984dfe61461025a5761012a565b80630dd72a791461012f578063103cd44f14610151578063189002051461017157806332a7856d1461019157806336bb9122146101b1575b600080fd5b34801561013b57600080fd5b5061014f61014a366004611bc7565b6103cf565b005b34801561015d57600080fd5b5061014f61016c366004611f1a565b6104db565b34801561017d57600080fd5b5061014f61018c3660046120ed565b6105e2565b34801561019d57600080fd5b5061014f6101ac3660046122b8565b6106e4565b3480156101bd57600080fd5b5061014f6101cc366004611e41565b6107ab565b61014f6101df366004612149565b6108bc565b3480156101f057600080fd5b5061014f6101ff366004611d4c565b610a36565b34801561021057600080fd5b5061014f61021f366004611cbe565b610af9565b34801561023057600080fd5b5061024461023f3660046118be565b610bbc565b60405161025191906133f3565b60405180910390f35b34801561026657600080fd5b5061014f610275366004612222565b610bce565b34801561028657600080fd5b5061014f610295366004611dbd565b610c97565b3480156102a657600080fd5b5061014f6102b5366004612149565b610d5e565b3480156102c657600080fd5b506102cf610e21565b60405161025191906133e5565b3480156102e857600080fd5b5061014f6102f73660046121a3565b610e30565b34801561030857600080fd5b5061014f610317366004612069565b610efb565b61024461032a3660046119ef565b610fc2565b34801561033b57600080fd5b5061014f61034a366004611fe5565b6111b2565b34801561035b57600080fd5b5061014f61036a3660046121a3565b611279565b34801561037b57600080fd5b5061024461038a3660046118e4565b611344565b34801561039b57600080fd5b5061014f6103aa366004611b0e565b61147b565b3480156103bb57600080fd5b5061014f6103ca366004612069565b611542565b6000308787878787876040516020016103ee9796959493929190612f2f565b6040516020818303038152906040528051906020012090506000610412828a611609565b90506001600160a01b03811661042757600080fd5b6001600160a01b038116600090815260016020526040902054831461044b57600080fd5b6001600160a01b03808216600090815260016020819052604080832080549092019091559054905163184442b760e31b815291169063c22215b89061049e9084908c908c908c908c908c906004016130e3565b600060405180830381600087803b1580156104b857600080fd5b505af11580156104cc573d6000803e3d6000fd5b50505050505050505050505050565b60003086868686866040516020016104f896959493929190612fb4565b604051602081830303815290604052805190602001209050600061051c8289611609565b90506001600160a01b03811661053157600080fd5b6001600160a01b038116600090815260016020526040902054831461055557600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051630c49604560e41b815291169063c4960450906105a69084908b908b908b908b90600401613284565b600060405180830381600087803b1580156105c057600080fd5b505af11580156105d4573d6000803e3d6000fd5b505050505050505050505050565b600030858585856040516020016105fd959493929190612c5e565b60405160208183030381529060405280519060200120905060006106218288611609565b90506001600160a01b03811661063657600080fd5b6001600160a01b038116600090815260016020526040902054831461065a57600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051631fbe084f60e21b8152911690637ef8213c906106a99084908a908a908a906004016132d2565b600060405180830381600087803b1580156106c357600080fd5b505af11580156106d7573d6000803e3d6000fd5b5050505050505050505050565b600030858585856040516020016106ff959493929190612d84565b60405160208183030381529060405280519060200120905060006107238288611609565b90506001600160a01b03811661073857600080fd5b6001600160a01b038116600090815260016020526040902054831461075c57600080fd5b6001600160a01b03808216600090815260016020819052604080832080549092019091559054905163aa17aaef60e01b815291169063aa17aaef906106a99084908a908a908a9060040161330c565b600030888888888888886040516020016107cc9897969594939291906129f6565b60405160208183030381529060405280519060200120905060006107f0828b611609565b90506001600160a01b03811661080557600080fd5b6001600160a01b038116600090815260016020526040902054831461082957600080fd5b6001600160a01b03808216600090815260016020819052604080832080549092019091559054905163162f1aed60e31b815291169063b178d7689061087e9084908d908d908d908d908d908d90600401613213565b600060405180830381600087803b15801561089857600080fd5b505af11580156108ac573d6000803e3d6000fd5b5050505050505050505050505050565b6000308484846040516020016108d59493929190612ba9565b60405160208183030381529060405280519060200120905060006108f98287611609565b90506001600160a01b03811661090e57600080fd5b6001600160a01b038116600090815260016020526040902054831461093257600080fd5b6001600160a01b03811660009081526001602081905260409091208054909101905534156109c757600054604051632823de4f60e21b81526001600160a01b039091169063a08f793c9034906109909085908a908a9060040161298a565b6000604051808303818588803b1580156109a957600080fd5b505af11580156109bd573d6000803e3d6000fd5b5050505050610a2e565b600054604051632823de4f60e21b81526001600160a01b039091169063a08f793c906109fb9084908990899060040161298a565b600060405180830381600087803b158015610a1557600080fd5b505af1158015610a29573d6000803e3d6000fd5b505050505b505050505050565b600030848484604051602001610a4f9493929190612b51565b6040516020818303038152906040528051906020012090506000610a738287611609565b90506001600160a01b038116610a8857600080fd5b6001600160a01b0381166000908152600160205260409020548314610aac57600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051632562712d60e11b8152911690634ac4e25a906109fb90849089908990600401613172565b600030848484604051602001610b129493929190613015565b6040516020818303038152906040528051906020012090506000610b368287611609565b90506001600160a01b038116610b4b57600080fd5b6001600160a01b0381166000908152600160205260409020548314610b6f57600080fd5b6001600160a01b03808216600090815260016020819052604080832080549092019091559054905163edba701360e01b815291169063edba7013906109fb90849089908990600401613145565b60016020526000908152604090205481565b6000308686868686604051602001610beb96959493929190612e17565b6040516020818303038152906040528051906020012090506000610c0f8289611609565b90506001600160a01b038116610c2457600080fd5b6001600160a01b0381166000908152600160205260409020548314610c4857600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051621e4fc760e31b815291169062f27e38906105a69084908b908b908b908b90600401613383565b60003085858585604051602001610cb2959493929190612a89565b6040516020818303038152906040528051906020012090506000610cd68288611609565b90506001600160a01b038116610ceb57600080fd5b6001600160a01b0381166000908152600160205260409020548314610d0f57600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051634daf1bb560e01b8152911690634daf1bb5906106a99084908a908a908a9060040161319f565b600030848484604051602001610d779493929190612df8565b6040516020818303038152906040528051906020012090506000610d9b8287611609565b90506001600160a01b038116610db057600080fd5b6001600160a01b0381166000908152600160205260409020548314610dd457600080fd5b6001600160a01b0380821660009081526001602081905260408083208054909201909155905490516393c1ccc960e01b81529116906393c1ccc9906109fb9084908990899060040161298a565b6000546001600160a01b031681565b6000308686868686604051602001610e4d96959493929190612dd9565b6040516020818303038152906040528051906020012090506000610e718289611609565b90506001600160a01b038116610e8657600080fd5b6001600160a01b0381166000908152600160205260409020548314610eaa57600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051632092e25960e01b8152911690632092e259906105a69084908b908b908b908b90600401613341565b60003085858585604051602001610f16959493929190612ae5565b6040516020818303038152906040528051906020012090506000610f3a8288611609565b90506001600160a01b038116610f4f57600080fd5b6001600160a01b0381166000908152600160205260409020548314610f7357600080fd5b6001600160a01b0380821660009081526001602081905260408083208054909201909155905490516306eade7960e31b8152911690633756f3c8906106a99084908a908a908a906004016129b2565b600080308a8a8a8a8a8a8a8a604051602001610fe699989796959493929190612e80565b604051602081830303815290604052805190602001209050600061100a828d611609565b90506001600160a01b03811661101f57600080fd5b6001600160a01b038116600090815260016020526040902054841461104357600080fd5b6001600160a01b0381166000908152600160208190526040909120805490910190553415611115576000809054906101000a90046001600160a01b03166001600160a01b03166306060ae334838e8e8e8e8e8e8e6040518a63ffffffff1660e01b81526004016110ba98979695949392919061290b565b6020604051808303818588803b1580156110d357600080fd5b505af11580156110e7573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525061110c9190810190612325565b925050506111a5565b6000546040516306060ae360e01b81526001600160a01b03909116906306060ae3906111539084908f908f908f908f908f908f908f9060040161290b565b602060405180830381600087803b15801561116d57600080fd5b505af1158015611181573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061110c9190810190612325565b9998505050505050505050565b600030858585856040516020016111cd959493929190613055565b60405160208183030381529060405280519060200120905060006111f18288611609565b90506001600160a01b03811661120657600080fd5b6001600160a01b038116600090815260016020526040902054831461122a57600080fd5b6001600160a01b03808216600090815260016020819052604080832080549092019091559054905163c6a8b42b60e01b815291169063c6a8b42b906106a99084908a908a908a906004016131d9565b600030868686868660405160200161129696959493929190612bf1565b60405160208183030381529060405280519060200120905060006112ba8289611609565b90506001600160a01b0381166112cf57600080fd5b6001600160a01b03811660009081526001602052604090205483146112f357600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051639e64d9bf60e01b8152911690639e64d9bf906105a69084908b908b908b908b90600401613341565b6000803089898989898989604051602001611366989796959493929190612cff565b604051602081830303815290604052805190602001209050600061138a828c611609565b90506001600160a01b03811661139f57600080fd5b6001600160a01b03811660009081526001602052604090205484146113c357600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051632b3d9e9760e11b815291169063567b3d2e906114189084908e908e908e908e908e908e9060040161289a565b602060405180830381600087803b15801561143257600080fd5b505af1158015611446573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061146a9190810190612325565b925050505b98975050505050505050565b60003085858585604051602001611496959493929190612cab565b60405160208183030381529060405280519060200120905060006114ba8288611609565b90506001600160a01b0381166114cf57600080fd5b6001600160a01b03811660009081526001602052604090205483146114f357600080fd5b6001600160a01b0380821660009081526001602081905260408083208054909201909155905490516397d7666560e01b81529116906397d76665906106a99084908a908a908a906004016130a2565b6000308585858560405160200161155d959493929190612b32565b60405160208183030381529060405280519060200120905060006115818288611609565b90506001600160a01b03811661159657600080fd5b6001600160a01b03811660009081526001602052604090205483146115ba57600080fd5b6001600160a01b03808216600090815260016020819052604080832080549092019091559054905163a071fbd560e01b815291169063a071fbd5906106a99084908a908a908a906004016129b2565b600080600080845160411461162457600093505050506116f2565b50505060208201516040830151606084015160001a601b81101561164657601b015b8060ff16601b1415801561165e57508060ff16601c14155b1561166f57600093505050506116f2565b600186604051602001611682919061287a565b60405160208183030381529060405280519060200120828585604051600081526020016040526040516116b894939291906133ca565b6020604051602081039080840390855afa1580156116da573d6000803e3d6000fd5b5050506020604051035193505050506116f2565b5050505b92915050565b80356116f2816134f7565b600082601f83011261171457600080fd5b813561172761172282613427565b613401565b9150818183526020840193506020810190508385602084028201111561174c57600080fd5b60005b83811015611778578161176288826116f8565b845250602092830192919091019060010161174f565b5050505092915050565b600082601f83011261179357600080fd5b81356117a161172282613427565b915081818352602084019350602081019050838560208402820111156117c657600080fd5b60005b8381101561177857816117dc88826116f8565b84525060209283019291909101906001016117c9565b600082601f83011261180357600080fd5b813561181161172282613427565b9150818183526020840193506020810190508385602084028201111561183657600080fd5b60005b83811015611778578161184c88826118a8565b8452506020928301929190910190600101611839565b600082601f83011261187357600080fd5b813561188161172282613447565b9150808252602083016020830185838301111561189d57600080fd5b6116ee8382846134b1565b80356116f28161350e565b80516116f28161350e565b6000602082840312156118d057600080fd5b60006118dc84846116f8565b949350505050565b600080600080600080600080610100898b03121561190157600080fd5b88356001600160401b0381111561191757600080fd5b6119238b828c01611862565b98505060208901356001600160401b0381111561193f57600080fd5b61194b8b828c01611782565b97505060408901356001600160401b0381111561196757600080fd5b6119738b828c01611703565b96505060608901356001600160401b0381111561198f57600080fd5b61199b8b828c01611862565b95505060806119ac8b828c016118a8565b94505060a06119bd8b828c016116f8565b93505060c06119ce8b828c016118a8565b92505060e06119df8b828c016118a8565b9150509295985092959890939650565b60008060008060008060008060006101208a8c031215611a0e57600080fd5b89356001600160401b03811115611a2457600080fd5b611a308c828d01611862565b99505060208a01356001600160401b03811115611a4c57600080fd5b611a588c828d01611782565b98505060408a01356001600160401b03811115611a7457600080fd5b611a808c828d01611703565b97505060608a01356001600160401b03811115611a9c57600080fd5b611aa88c828d01611862565b9650506080611ab98c828d016118a8565b95505060a0611aca8c828d016116f8565b94505060c0611adb8c828d016118a8565b93505060e0611aec8c828d016118a8565b925050610100611afe8c828d016118a8565b9150509295985092959850929598565b600080600080600060a08688031215611b2657600080fd5b85356001600160401b03811115611b3c57600080fd5b611b4888828901611862565b9550506020611b59888289016118a8565b94505060408601356001600160401b03811115611b7557600080fd5b611b8188828901611782565b93505060608601356001600160401b03811115611b9d57600080fd5b611ba988828901611862565b9250506080611bba888289016118a8565b9150509295509295909350565b600080600080600080600060e0888a031215611be257600080fd5b87356001600160401b03811115611bf857600080fd5b611c048a828b01611862565b9750506020611c158a828b016118a8565b96505060408801356001600160401b03811115611c3157600080fd5b611c3d8a828b01611782565b95505060608801356001600160401b03811115611c5957600080fd5b611c658a828b01611862565b9450506080611c768a828b016118a8565b93505060a08801356001600160401b03811115611c9257600080fd5b611c9e8a828b016117f2565b92505060c0611caf8a828b016118a8565b91505092959891949750929550565b60008060008060808587031215611cd457600080fd5b84356001600160401b03811115611cea57600080fd5b611cf687828801611862565b9450506020611d07878288016118a8565b93505060408501356001600160401b03811115611d2357600080fd5b611d2f878288016117f2565b9250506060611d40878288016118a8565b91505092959194509250565b60008060008060808587031215611d6257600080fd5b84356001600160401b03811115611d7857600080fd5b611d8487828801611862565b9450506020611d95878288016118a8565b93505060408501356001600160401b03811115611db157600080fd5b611d2f87828801611862565b600080600080600060a08688031215611dd557600080fd5b85356001600160401b03811115611deb57600080fd5b611df788828901611862565b9550506020611e08888289016118a8565b9450506040611e19888289016118a8565b93505060608601356001600160401b03811115611e3557600080fd5b611ba988828901611703565b600080600080600080600080610100898b031215611e5e57600080fd5b88356001600160401b03811115611e7457600080fd5b611e808b828c01611862565b9850506020611e918b828c016118a8565b9750506040611ea28b828c016118a8565b96505060608901356001600160401b03811115611ebe57600080fd5b611eca8b828c01611782565b95505060808901356001600160401b03811115611ee657600080fd5b611ef28b828c01611782565b94505060a08901356001600160401b03811115611f0e57600080fd5b6119bd8b828c01611862565b60008060008060008060c08789031215611f3357600080fd5b86356001600160401b03811115611f4957600080fd5b611f5589828a01611862565b9650506020611f6689828a016118a8565b9550506040611f7789828a016118a8565b94505060608701356001600160401b03811115611f9357600080fd5b611f9f89828a01611782565b93505060808701356001600160401b03811115611fbb57600080fd5b611fc789828a01611862565b92505060a0611fd889828a016118a8565b9150509295509295509295565b600080600080600060a08688031215611ffd57600080fd5b85356001600160401b0381111561201357600080fd5b61201f88828901611862565b9550506020612030888289016118a8565b9450506040612041888289016118a8565b93505060608601356001600160401b0381111561205d57600080fd5b611ba988828901611782565b600080600080600060a0868803121561208157600080fd5b85356001600160401b0381111561209757600080fd5b6120a388828901611862565b95505060206120b4888289016118a8565b94505060406120c5888289016118a8565b93505060608601356001600160401b038111156120e157600080fd5b611ba9888289016117f2565b600080600080600060a0868803121561210557600080fd5b85356001600160401b0381111561211b57600080fd5b61212788828901611862565b9550506020612138888289016118a8565b9450506040611b81888289016118a8565b6000806000806080858703121561215f57600080fd5b84356001600160401b0381111561217557600080fd5b61218187828801611862565b9450506020612192878288016118a8565b9350506040611d2f878288016118a8565b60008060008060008060c087890312156121bc57600080fd5b86356001600160401b038111156121d257600080fd5b6121de89828a01611862565b96505060206121ef89828a016118a8565b955050604061220089828a016118a8565b945050606061221189828a016118a8565b9350506080611fc789828a016116f8565b60008060008060008060c0878903121561223b57600080fd5b86356001600160401b0381111561225157600080fd5b61225d89828a01611862565b965050602061226e89828a016118a8565b955050604061227f89828a016118a8565b945050606061229089828a016118a8565b93505060808701356001600160401b038111156122ac57600080fd5b611fc789828a016117f2565b600080600080600060a086880312156122d057600080fd5b85356001600160401b038111156122e657600080fd5b6122f288828901611862565b9550506020612303888289016118a8565b9450506040612314888289016118a8565b9350506060611ba9888289016118a8565b60006020828403121561233757600080fd5b60006118dc84846118b3565b600061234f8383612363565b505060200190565b600061234f8383612467565b61236c81613486565b82525050565b600061237d82613474565b6123878185613478565b93506123928361346e565b8060005b838110156123c05781516123aa8882612343565b97506123b58361346e565b925050600101612396565b509495945050505050565b60006123d682613474565b6123e08185613478565b93506123eb8361346e565b8060005b838110156123c05781516124038882612343565b975061240e8361346e565b9250506001016123ef565b600061242482613474565b61242e8185613478565b93506124398361346e565b8060005b838110156123c05781516124518882612357565b975061245c8361346e565b92505060010161243d565b61236c81613491565b61236c61247c82613491565b613491565b61236c816134a6565b600061249582613474565b61249f8185613478565b93506124af8185602086016134bd565b6124b8816134ed565b9093019392505050565b60006124cf601c83613481565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c0192915050565b6000612508601083613478565b6f6d6574614368616e6765426f756e747960801b815260200192915050565b6000612534601083613478565b6f6d657461416464417070726f7665727360801b815260200192915050565b6000612560600f83613478565b6e6d657461447261696e426f756e747960881b815260200192915050565b600061258b601783613478565b7f6d657461526566756e64436f6e747269627574696f6e73000000000000000000815260200192915050565b60006125c4601183613478565b7036b2ba30a832b93337b936a0b1ba34b7b760791b815260200192915050565b60006125f1600e83613478565b6d6d657461436f6e7472696275746560901b815260200192915050565b600061261b601083613478565b6f36b2ba30a1b430b733b2a4b9b9bab2b960811b815260200192915050565b6000612647600e83613478565b6d6d6574614368616e67654461746160901b815260200192915050565b6000612671601183613478565b706d65746146756c66696c6c426f756e747960781b815260200192915050565b600061269e600f83613478565b6e6d6574614973737565426f756e747960881b815260200192915050565b60006126c9601283613478565b716d6574614368616e6765446561646c696e6560701b815260200192915050565b60006126f7601283613478565b7136b2ba30a1b430b733b2a0b8383937bb32b960711b815260200192915050565b6000612725601683613478565b7536b2ba30a932b33ab73221b7b73a3934b13aba34b7b760511b815260200192915050565b6000612757601583613478565b741b595d185058d8d95c1d119d5b199a5b1b1b595b9d605a1b815260200192915050565b6000612788601683613478565b756d6574614973737565416e64436f6e7472696275746560501b815260200192915050565b60006127ba601483613478565b731b595d18519d5b199a5b1b105b991058d8d95c1d60621b815260200192915050565b60006127ea601583613478565b741b595d18555c19185d19519d5b199a5b1b1b595b9d605a1b815260200192915050565b600061281b601983613478565b7f6d657461526566756e644d79436f6e747269627574696f6e7300000000000000815260200192915050565b6000612854600e83613478565b6d6d6574614164644973737565727360901b815260200192915050565b61236c816134a0565b6000612885826124c2565b91506128918284612470565b50602001919050565b60e081016128a8828a612363565b81810360208301526128ba81896123cb565b905081810360408301526128ce8188612372565b905081810360608301526128e2818761248a565b90506128f16080830186612467565b6128fe60a0830185612363565b61146f60c0830184612467565b610100810161291a828b612363565b818103602083015261292c818a6123cb565b905081810360408301526129408189612372565b90508181036060830152612954818861248a565b90506129636080830187612467565b61297060a0830186612363565b61297d60c0830185612467565b6111a560e0830184612467565b606081016129988286612363565b6129a56020830185612467565b6118dc6040830184612467565b608081016129c08287612363565b6129cd6020830186612467565b6129da6040830185612467565b81810360608301526129ec8184612419565b9695505050505050565b6101208101612a05828b612363565b8181036020830152612a16816124fb565b9050612a25604083018a612467565b612a326060830189612467565b8181036080830152612a4481886123cb565b905081810360a0830152612a5881876123cb565b905081810360c0830152612a6c818661248a565b9050612a7b60e0830185612467565b6111a5610100830184612467565b60c08101612a978288612363565b8181036020830152612aa881612527565b9050612ab76040830187612467565b612ac46060830186612467565b8181036080830152612ad68185612372565b90506129ec60a0830184612467565b60c08101612af38288612363565b8181036020830152612b0481612553565b9050612b136040830187612467565b612b206060830186612467565b8181036080830152612ad68185612419565b60c08101612b408288612363565b8181036020830152612b048161257e565b60a08101612b5f8287612363565b8181036020830152612b70816125b7565b9050612b7f6040830186612467565b8181036060830152612b91818561248a565b9050612ba06080830184612467565b95945050505050565b60a08101612bb78287612363565b8181036020830152612bc8816125e4565b9050612bd76040830186612467565b612be46060830185612467565b612ba06080830184612467565b60e08101612bff8289612363565b8181036020830152612c108161260e565b9050612c1f6040830188612467565b612c2c6060830187612467565b612c396080830186612467565b612c4660a0830185612363565b612c5360c0830184612467565b979650505050505050565b60c08101612c6c8288612363565b8181036020830152612c7d8161263a565b9050612c8c6040830187612467565b612c996060830186612467565b8181036080830152612ad6818561248a565b60c08101612cb98288612363565b8181036020830152612cca81612664565b9050612cd96040830187612467565b8181036060830152612ceb81866123cb565b90508181036080830152612ad6818561248a565b6101208101612d0e828b612363565b8181036020830152612d1f81612691565b90508181036040830152612d33818a6123cb565b90508181036060830152612d478189612372565b90508181036080830152612d5b818861248a565b9050612d6a60a0830187612467565b612d7760c0830186612363565b612a7b60e0830185612467565b60c08101612d928288612363565b8181036020830152612da3816126bc565b9050612db26040830187612467565b612dbf6060830186612467565b612dcc6080830185612467565b6129ec60a0830184612467565b60e08101612de78289612363565b8181036020830152612c10816126ea565b60a08101612e068287612363565b8181036020830152612bc881612718565b60e08101612e258289612363565b8181036020830152612e368161274a565b9050612e456040830188612467565b612e526060830187612467565b612e5f6080830186612467565b81810360a0830152612e718185612419565b9050612c5360c0830184612467565b6101408101612e8f828c612363565b8181036020830152612ea08161277b565b90508181036040830152612eb4818b6123cb565b90508181036060830152612ec8818a612372565b90508181036080830152612edc818961248a565b9050612eeb60a0830188612467565b612ef860c0830187612363565b612f0560e0830186612467565b612f13610100830185612467565b612f21610120830184612467565b9a9950505050505050505050565b6101008101612f3e828a612363565b8181036020830152612f4f816127ad565b9050612f5e6040830189612467565b8181036060830152612f7081886123cb565b90508181036080830152612f84818761248a565b9050612f9360a0830186612467565b81810360c0830152612fa58185612419565b905061146f60e0830184612467565b60e08101612fc28289612363565b8181036020830152612fd3816127dd565b9050612fe26040830188612467565b612fef6060830187612467565b818103608083015261300181866123cb565b905081810360a0830152612e71818561248a565b60a081016130238287612363565b81810360208301526130348161280e565b90506130436040830186612467565b8181036060830152612b918185612419565b60c081016130638288612363565b818103602083015261307481612847565b90506130836040830187612467565b6130906060830186612467565b8181036080830152612ad681856123cb565b608081016130b08287612363565b6130bd6020830186612467565b81810360408301526130cf81856123cb565b905081810360608301526129ec818461248a565b60c081016130f18289612363565b6130fe6020830188612467565b818103604083015261311081876123cb565b90508181036060830152613124818661248a565b90506131336080830185612467565b81810360a083015261146f8184612419565b606081016131538286612363565b6131606020830185612467565b8181036040830152612ba08184612419565b606081016131808286612363565b61318d6020830185612467565b8181036040830152612ba0818461248a565b608081016131ad8287612363565b6131ba6020830186612467565b6131c76040830185612467565b81810360608301526129ec8184612372565b608081016131e78287612363565b6131f46020830186612467565b6132016040830185612467565b81810360608301526129ec81846123cb565b60e08101613221828a612363565b61322e6020830189612467565b61323b6040830188612467565b818103606083015261324d81876123cb565b9050818103608083015261326181866123cb565b905081810360a0830152613275818561248a565b905061146f60c0830184612467565b60a081016132928288612363565b61329f6020830187612467565b6132ac6040830186612467565b81810360608301526132be81856123cb565b90508181036080830152612c53818461248a565b608081016132e08287612363565b6132ed6020830186612467565b6132fa6040830185612467565b81810360608301526129ec818461248a565b6080810161331a8287612363565b6133276020830186612467565b6133346040830185612467565b612ba06060830184612467565b60a0810161334f8288612363565b61335c6020830187612467565b6133696040830186612467565b6133766060830185612467565b6129ec6080830184612363565b60a081016133918288612363565b61339e6020830187612467565b6133ab6040830186612467565b6133b86060830185612467565b8181036080830152612c538184612419565b608081016133d88287612467565b6133276020830186612871565b602081016116f28284612481565b602081016116f28284612467565b6040518181016001600160401b038111828210171561341f57600080fd5b604052919050565b60006001600160401b0382111561343d57600080fd5b5060209081020190565b60006001600160401b0382111561345d57600080fd5b506020601f91909101601f19160190565b60200190565b5190565b90815260200190565b919050565b60006116f282613494565b90565b6001600160a01b031690565b60ff1690565b60006116f282613486565b82818337506000910152565b60005b838110156134d85781810151838201526020016134c0565b838111156134e7576000848401525b50505050565b601f01601f191690565b61350081613486565b811461350b57600080fd5b50565b6135008161349156fea365627a7a72305820d46ac7774b9f5e0e1a92bca46972d482a42e14e8d7cab347f06be9b2199227436c6578706572696d656e74616cf564736f6c63430005090040", - "deployedBytecode": "0x60806040526004361061012a5760003560e01c8063926b4e5f116100ab578063b1e6bcbb1161006f578063b1e6bcbb1461031c578063c353a38a1461032f578063dc5065a81461034f578063df4015fc1461036f578063ec34c4c01461038f578063fbb9e715146103af5761012a565b8063926b4e5f1461027a57806393ee9f4f1461029a578063a39da942146102ba578063a84d579d146102dc578063ae96762d146102fc5761012a565b8063432326a9116100f2578063432326a9146101d1578063484621d5146101e4578063632ebc7b1461020457806367d407df146102245780637984dfe61461025a5761012a565b80630dd72a791461012f578063103cd44f14610151578063189002051461017157806332a7856d1461019157806336bb9122146101b1575b600080fd5b34801561013b57600080fd5b5061014f61014a366004611bc7565b6103cf565b005b34801561015d57600080fd5b5061014f61016c366004611f1a565b6104db565b34801561017d57600080fd5b5061014f61018c3660046120ed565b6105e2565b34801561019d57600080fd5b5061014f6101ac3660046122b8565b6106e4565b3480156101bd57600080fd5b5061014f6101cc366004611e41565b6107ab565b61014f6101df366004612149565b6108bc565b3480156101f057600080fd5b5061014f6101ff366004611d4c565b610a36565b34801561021057600080fd5b5061014f61021f366004611cbe565b610af9565b34801561023057600080fd5b5061024461023f3660046118be565b610bbc565b60405161025191906133f3565b60405180910390f35b34801561026657600080fd5b5061014f610275366004612222565b610bce565b34801561028657600080fd5b5061014f610295366004611dbd565b610c97565b3480156102a657600080fd5b5061014f6102b5366004612149565b610d5e565b3480156102c657600080fd5b506102cf610e21565b60405161025191906133e5565b3480156102e857600080fd5b5061014f6102f73660046121a3565b610e30565b34801561030857600080fd5b5061014f610317366004612069565b610efb565b61024461032a3660046119ef565b610fc2565b34801561033b57600080fd5b5061014f61034a366004611fe5565b6111b2565b34801561035b57600080fd5b5061014f61036a3660046121a3565b611279565b34801561037b57600080fd5b5061024461038a3660046118e4565b611344565b34801561039b57600080fd5b5061014f6103aa366004611b0e565b61147b565b3480156103bb57600080fd5b5061014f6103ca366004612069565b611542565b6000308787878787876040516020016103ee9796959493929190612f2f565b6040516020818303038152906040528051906020012090506000610412828a611609565b90506001600160a01b03811661042757600080fd5b6001600160a01b038116600090815260016020526040902054831461044b57600080fd5b6001600160a01b03808216600090815260016020819052604080832080549092019091559054905163184442b760e31b815291169063c22215b89061049e9084908c908c908c908c908c906004016130e3565b600060405180830381600087803b1580156104b857600080fd5b505af11580156104cc573d6000803e3d6000fd5b50505050505050505050505050565b60003086868686866040516020016104f896959493929190612fb4565b604051602081830303815290604052805190602001209050600061051c8289611609565b90506001600160a01b03811661053157600080fd5b6001600160a01b038116600090815260016020526040902054831461055557600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051630c49604560e41b815291169063c4960450906105a69084908b908b908b908b90600401613284565b600060405180830381600087803b1580156105c057600080fd5b505af11580156105d4573d6000803e3d6000fd5b505050505050505050505050565b600030858585856040516020016105fd959493929190612c5e565b60405160208183030381529060405280519060200120905060006106218288611609565b90506001600160a01b03811661063657600080fd5b6001600160a01b038116600090815260016020526040902054831461065a57600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051631fbe084f60e21b8152911690637ef8213c906106a99084908a908a908a906004016132d2565b600060405180830381600087803b1580156106c357600080fd5b505af11580156106d7573d6000803e3d6000fd5b5050505050505050505050565b600030858585856040516020016106ff959493929190612d84565b60405160208183030381529060405280519060200120905060006107238288611609565b90506001600160a01b03811661073857600080fd5b6001600160a01b038116600090815260016020526040902054831461075c57600080fd5b6001600160a01b03808216600090815260016020819052604080832080549092019091559054905163aa17aaef60e01b815291169063aa17aaef906106a99084908a908a908a9060040161330c565b600030888888888888886040516020016107cc9897969594939291906129f6565b60405160208183030381529060405280519060200120905060006107f0828b611609565b90506001600160a01b03811661080557600080fd5b6001600160a01b038116600090815260016020526040902054831461082957600080fd5b6001600160a01b03808216600090815260016020819052604080832080549092019091559054905163162f1aed60e31b815291169063b178d7689061087e9084908d908d908d908d908d908d90600401613213565b600060405180830381600087803b15801561089857600080fd5b505af11580156108ac573d6000803e3d6000fd5b5050505050505050505050505050565b6000308484846040516020016108d59493929190612ba9565b60405160208183030381529060405280519060200120905060006108f98287611609565b90506001600160a01b03811661090e57600080fd5b6001600160a01b038116600090815260016020526040902054831461093257600080fd5b6001600160a01b03811660009081526001602081905260409091208054909101905534156109c757600054604051632823de4f60e21b81526001600160a01b039091169063a08f793c9034906109909085908a908a9060040161298a565b6000604051808303818588803b1580156109a957600080fd5b505af11580156109bd573d6000803e3d6000fd5b5050505050610a2e565b600054604051632823de4f60e21b81526001600160a01b039091169063a08f793c906109fb9084908990899060040161298a565b600060405180830381600087803b158015610a1557600080fd5b505af1158015610a29573d6000803e3d6000fd5b505050505b505050505050565b600030848484604051602001610a4f9493929190612b51565b6040516020818303038152906040528051906020012090506000610a738287611609565b90506001600160a01b038116610a8857600080fd5b6001600160a01b0381166000908152600160205260409020548314610aac57600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051632562712d60e11b8152911690634ac4e25a906109fb90849089908990600401613172565b600030848484604051602001610b129493929190613015565b6040516020818303038152906040528051906020012090506000610b368287611609565b90506001600160a01b038116610b4b57600080fd5b6001600160a01b0381166000908152600160205260409020548314610b6f57600080fd5b6001600160a01b03808216600090815260016020819052604080832080549092019091559054905163edba701360e01b815291169063edba7013906109fb90849089908990600401613145565b60016020526000908152604090205481565b6000308686868686604051602001610beb96959493929190612e17565b6040516020818303038152906040528051906020012090506000610c0f8289611609565b90506001600160a01b038116610c2457600080fd5b6001600160a01b0381166000908152600160205260409020548314610c4857600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051621e4fc760e31b815291169062f27e38906105a69084908b908b908b908b90600401613383565b60003085858585604051602001610cb2959493929190612a89565b6040516020818303038152906040528051906020012090506000610cd68288611609565b90506001600160a01b038116610ceb57600080fd5b6001600160a01b0381166000908152600160205260409020548314610d0f57600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051634daf1bb560e01b8152911690634daf1bb5906106a99084908a908a908a9060040161319f565b600030848484604051602001610d779493929190612df8565b6040516020818303038152906040528051906020012090506000610d9b8287611609565b90506001600160a01b038116610db057600080fd5b6001600160a01b0381166000908152600160205260409020548314610dd457600080fd5b6001600160a01b0380821660009081526001602081905260408083208054909201909155905490516393c1ccc960e01b81529116906393c1ccc9906109fb9084908990899060040161298a565b6000546001600160a01b031681565b6000308686868686604051602001610e4d96959493929190612dd9565b6040516020818303038152906040528051906020012090506000610e718289611609565b90506001600160a01b038116610e8657600080fd5b6001600160a01b0381166000908152600160205260409020548314610eaa57600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051632092e25960e01b8152911690632092e259906105a69084908b908b908b908b90600401613341565b60003085858585604051602001610f16959493929190612ae5565b6040516020818303038152906040528051906020012090506000610f3a8288611609565b90506001600160a01b038116610f4f57600080fd5b6001600160a01b0381166000908152600160205260409020548314610f7357600080fd5b6001600160a01b0380821660009081526001602081905260408083208054909201909155905490516306eade7960e31b8152911690633756f3c8906106a99084908a908a908a906004016129b2565b600080308a8a8a8a8a8a8a8a604051602001610fe699989796959493929190612e80565b604051602081830303815290604052805190602001209050600061100a828d611609565b90506001600160a01b03811661101f57600080fd5b6001600160a01b038116600090815260016020526040902054841461104357600080fd5b6001600160a01b0381166000908152600160208190526040909120805490910190553415611115576000809054906101000a90046001600160a01b03166001600160a01b03166306060ae334838e8e8e8e8e8e8e6040518a63ffffffff1660e01b81526004016110ba98979695949392919061290b565b6020604051808303818588803b1580156110d357600080fd5b505af11580156110e7573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525061110c9190810190612325565b925050506111a5565b6000546040516306060ae360e01b81526001600160a01b03909116906306060ae3906111539084908f908f908f908f908f908f908f9060040161290b565b602060405180830381600087803b15801561116d57600080fd5b505af1158015611181573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061110c9190810190612325565b9998505050505050505050565b600030858585856040516020016111cd959493929190613055565b60405160208183030381529060405280519060200120905060006111f18288611609565b90506001600160a01b03811661120657600080fd5b6001600160a01b038116600090815260016020526040902054831461122a57600080fd5b6001600160a01b03808216600090815260016020819052604080832080549092019091559054905163c6a8b42b60e01b815291169063c6a8b42b906106a99084908a908a908a906004016131d9565b600030868686868660405160200161129696959493929190612bf1565b60405160208183030381529060405280519060200120905060006112ba8289611609565b90506001600160a01b0381166112cf57600080fd5b6001600160a01b03811660009081526001602052604090205483146112f357600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051639e64d9bf60e01b8152911690639e64d9bf906105a69084908b908b908b908b90600401613341565b6000803089898989898989604051602001611366989796959493929190612cff565b604051602081830303815290604052805190602001209050600061138a828c611609565b90506001600160a01b03811661139f57600080fd5b6001600160a01b03811660009081526001602052604090205484146113c357600080fd5b6001600160a01b038082166000908152600160208190526040808320805490920190915590549051632b3d9e9760e11b815291169063567b3d2e906114189084908e908e908e908e908e908e9060040161289a565b602060405180830381600087803b15801561143257600080fd5b505af1158015611446573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061146a9190810190612325565b925050505b98975050505050505050565b60003085858585604051602001611496959493929190612cab565b60405160208183030381529060405280519060200120905060006114ba8288611609565b90506001600160a01b0381166114cf57600080fd5b6001600160a01b03811660009081526001602052604090205483146114f357600080fd5b6001600160a01b0380821660009081526001602081905260408083208054909201909155905490516397d7666560e01b81529116906397d76665906106a99084908a908a908a906004016130a2565b6000308585858560405160200161155d959493929190612b32565b60405160208183030381529060405280519060200120905060006115818288611609565b90506001600160a01b03811661159657600080fd5b6001600160a01b03811660009081526001602052604090205483146115ba57600080fd5b6001600160a01b03808216600090815260016020819052604080832080549092019091559054905163a071fbd560e01b815291169063a071fbd5906106a99084908a908a908a906004016129b2565b600080600080845160411461162457600093505050506116f2565b50505060208201516040830151606084015160001a601b81101561164657601b015b8060ff16601b1415801561165e57508060ff16601c14155b1561166f57600093505050506116f2565b600186604051602001611682919061287a565b60405160208183030381529060405280519060200120828585604051600081526020016040526040516116b894939291906133ca565b6020604051602081039080840390855afa1580156116da573d6000803e3d6000fd5b5050506020604051035193505050506116f2565b5050505b92915050565b80356116f2816134f7565b600082601f83011261171457600080fd5b813561172761172282613427565b613401565b9150818183526020840193506020810190508385602084028201111561174c57600080fd5b60005b83811015611778578161176288826116f8565b845250602092830192919091019060010161174f565b5050505092915050565b600082601f83011261179357600080fd5b81356117a161172282613427565b915081818352602084019350602081019050838560208402820111156117c657600080fd5b60005b8381101561177857816117dc88826116f8565b84525060209283019291909101906001016117c9565b600082601f83011261180357600080fd5b813561181161172282613427565b9150818183526020840193506020810190508385602084028201111561183657600080fd5b60005b83811015611778578161184c88826118a8565b8452506020928301929190910190600101611839565b600082601f83011261187357600080fd5b813561188161172282613447565b9150808252602083016020830185838301111561189d57600080fd5b6116ee8382846134b1565b80356116f28161350e565b80516116f28161350e565b6000602082840312156118d057600080fd5b60006118dc84846116f8565b949350505050565b600080600080600080600080610100898b03121561190157600080fd5b88356001600160401b0381111561191757600080fd5b6119238b828c01611862565b98505060208901356001600160401b0381111561193f57600080fd5b61194b8b828c01611782565b97505060408901356001600160401b0381111561196757600080fd5b6119738b828c01611703565b96505060608901356001600160401b0381111561198f57600080fd5b61199b8b828c01611862565b95505060806119ac8b828c016118a8565b94505060a06119bd8b828c016116f8565b93505060c06119ce8b828c016118a8565b92505060e06119df8b828c016118a8565b9150509295985092959890939650565b60008060008060008060008060006101208a8c031215611a0e57600080fd5b89356001600160401b03811115611a2457600080fd5b611a308c828d01611862565b99505060208a01356001600160401b03811115611a4c57600080fd5b611a588c828d01611782565b98505060408a01356001600160401b03811115611a7457600080fd5b611a808c828d01611703565b97505060608a01356001600160401b03811115611a9c57600080fd5b611aa88c828d01611862565b9650506080611ab98c828d016118a8565b95505060a0611aca8c828d016116f8565b94505060c0611adb8c828d016118a8565b93505060e0611aec8c828d016118a8565b925050610100611afe8c828d016118a8565b9150509295985092959850929598565b600080600080600060a08688031215611b2657600080fd5b85356001600160401b03811115611b3c57600080fd5b611b4888828901611862565b9550506020611b59888289016118a8565b94505060408601356001600160401b03811115611b7557600080fd5b611b8188828901611782565b93505060608601356001600160401b03811115611b9d57600080fd5b611ba988828901611862565b9250506080611bba888289016118a8565b9150509295509295909350565b600080600080600080600060e0888a031215611be257600080fd5b87356001600160401b03811115611bf857600080fd5b611c048a828b01611862565b9750506020611c158a828b016118a8565b96505060408801356001600160401b03811115611c3157600080fd5b611c3d8a828b01611782565b95505060608801356001600160401b03811115611c5957600080fd5b611c658a828b01611862565b9450506080611c768a828b016118a8565b93505060a08801356001600160401b03811115611c9257600080fd5b611c9e8a828b016117f2565b92505060c0611caf8a828b016118a8565b91505092959891949750929550565b60008060008060808587031215611cd457600080fd5b84356001600160401b03811115611cea57600080fd5b611cf687828801611862565b9450506020611d07878288016118a8565b93505060408501356001600160401b03811115611d2357600080fd5b611d2f878288016117f2565b9250506060611d40878288016118a8565b91505092959194509250565b60008060008060808587031215611d6257600080fd5b84356001600160401b03811115611d7857600080fd5b611d8487828801611862565b9450506020611d95878288016118a8565b93505060408501356001600160401b03811115611db157600080fd5b611d2f87828801611862565b600080600080600060a08688031215611dd557600080fd5b85356001600160401b03811115611deb57600080fd5b611df788828901611862565b9550506020611e08888289016118a8565b9450506040611e19888289016118a8565b93505060608601356001600160401b03811115611e3557600080fd5b611ba988828901611703565b600080600080600080600080610100898b031215611e5e57600080fd5b88356001600160401b03811115611e7457600080fd5b611e808b828c01611862565b9850506020611e918b828c016118a8565b9750506040611ea28b828c016118a8565b96505060608901356001600160401b03811115611ebe57600080fd5b611eca8b828c01611782565b95505060808901356001600160401b03811115611ee657600080fd5b611ef28b828c01611782565b94505060a08901356001600160401b03811115611f0e57600080fd5b6119bd8b828c01611862565b60008060008060008060c08789031215611f3357600080fd5b86356001600160401b03811115611f4957600080fd5b611f5589828a01611862565b9650506020611f6689828a016118a8565b9550506040611f7789828a016118a8565b94505060608701356001600160401b03811115611f9357600080fd5b611f9f89828a01611782565b93505060808701356001600160401b03811115611fbb57600080fd5b611fc789828a01611862565b92505060a0611fd889828a016118a8565b9150509295509295509295565b600080600080600060a08688031215611ffd57600080fd5b85356001600160401b0381111561201357600080fd5b61201f88828901611862565b9550506020612030888289016118a8565b9450506040612041888289016118a8565b93505060608601356001600160401b0381111561205d57600080fd5b611ba988828901611782565b600080600080600060a0868803121561208157600080fd5b85356001600160401b0381111561209757600080fd5b6120a388828901611862565b95505060206120b4888289016118a8565b94505060406120c5888289016118a8565b93505060608601356001600160401b038111156120e157600080fd5b611ba9888289016117f2565b600080600080600060a0868803121561210557600080fd5b85356001600160401b0381111561211b57600080fd5b61212788828901611862565b9550506020612138888289016118a8565b9450506040611b81888289016118a8565b6000806000806080858703121561215f57600080fd5b84356001600160401b0381111561217557600080fd5b61218187828801611862565b9450506020612192878288016118a8565b9350506040611d2f878288016118a8565b60008060008060008060c087890312156121bc57600080fd5b86356001600160401b038111156121d257600080fd5b6121de89828a01611862565b96505060206121ef89828a016118a8565b955050604061220089828a016118a8565b945050606061221189828a016118a8565b9350506080611fc789828a016116f8565b60008060008060008060c0878903121561223b57600080fd5b86356001600160401b0381111561225157600080fd5b61225d89828a01611862565b965050602061226e89828a016118a8565b955050604061227f89828a016118a8565b945050606061229089828a016118a8565b93505060808701356001600160401b038111156122ac57600080fd5b611fc789828a016117f2565b600080600080600060a086880312156122d057600080fd5b85356001600160401b038111156122e657600080fd5b6122f288828901611862565b9550506020612303888289016118a8565b9450506040612314888289016118a8565b9350506060611ba9888289016118a8565b60006020828403121561233757600080fd5b60006118dc84846118b3565b600061234f8383612363565b505060200190565b600061234f8383612467565b61236c81613486565b82525050565b600061237d82613474565b6123878185613478565b93506123928361346e565b8060005b838110156123c05781516123aa8882612343565b97506123b58361346e565b925050600101612396565b509495945050505050565b60006123d682613474565b6123e08185613478565b93506123eb8361346e565b8060005b838110156123c05781516124038882612343565b975061240e8361346e565b9250506001016123ef565b600061242482613474565b61242e8185613478565b93506124398361346e565b8060005b838110156123c05781516124518882612357565b975061245c8361346e565b92505060010161243d565b61236c81613491565b61236c61247c82613491565b613491565b61236c816134a6565b600061249582613474565b61249f8185613478565b93506124af8185602086016134bd565b6124b8816134ed565b9093019392505050565b60006124cf601c83613481565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c0192915050565b6000612508601083613478565b6f6d6574614368616e6765426f756e747960801b815260200192915050565b6000612534601083613478565b6f6d657461416464417070726f7665727360801b815260200192915050565b6000612560600f83613478565b6e6d657461447261696e426f756e747960881b815260200192915050565b600061258b601783613478565b7f6d657461526566756e64436f6e747269627574696f6e73000000000000000000815260200192915050565b60006125c4601183613478565b7036b2ba30a832b93337b936a0b1ba34b7b760791b815260200192915050565b60006125f1600e83613478565b6d6d657461436f6e7472696275746560901b815260200192915050565b600061261b601083613478565b6f36b2ba30a1b430b733b2a4b9b9bab2b960811b815260200192915050565b6000612647600e83613478565b6d6d6574614368616e67654461746160901b815260200192915050565b6000612671601183613478565b706d65746146756c66696c6c426f756e747960781b815260200192915050565b600061269e600f83613478565b6e6d6574614973737565426f756e747960881b815260200192915050565b60006126c9601283613478565b716d6574614368616e6765446561646c696e6560701b815260200192915050565b60006126f7601283613478565b7136b2ba30a1b430b733b2a0b8383937bb32b960711b815260200192915050565b6000612725601683613478565b7536b2ba30a932b33ab73221b7b73a3934b13aba34b7b760511b815260200192915050565b6000612757601583613478565b741b595d185058d8d95c1d119d5b199a5b1b1b595b9d605a1b815260200192915050565b6000612788601683613478565b756d6574614973737565416e64436f6e7472696275746560501b815260200192915050565b60006127ba601483613478565b731b595d18519d5b199a5b1b105b991058d8d95c1d60621b815260200192915050565b60006127ea601583613478565b741b595d18555c19185d19519d5b199a5b1b1b595b9d605a1b815260200192915050565b600061281b601983613478565b7f6d657461526566756e644d79436f6e747269627574696f6e7300000000000000815260200192915050565b6000612854600e83613478565b6d6d6574614164644973737565727360901b815260200192915050565b61236c816134a0565b6000612885826124c2565b91506128918284612470565b50602001919050565b60e081016128a8828a612363565b81810360208301526128ba81896123cb565b905081810360408301526128ce8188612372565b905081810360608301526128e2818761248a565b90506128f16080830186612467565b6128fe60a0830185612363565b61146f60c0830184612467565b610100810161291a828b612363565b818103602083015261292c818a6123cb565b905081810360408301526129408189612372565b90508181036060830152612954818861248a565b90506129636080830187612467565b61297060a0830186612363565b61297d60c0830185612467565b6111a560e0830184612467565b606081016129988286612363565b6129a56020830185612467565b6118dc6040830184612467565b608081016129c08287612363565b6129cd6020830186612467565b6129da6040830185612467565b81810360608301526129ec8184612419565b9695505050505050565b6101208101612a05828b612363565b8181036020830152612a16816124fb565b9050612a25604083018a612467565b612a326060830189612467565b8181036080830152612a4481886123cb565b905081810360a0830152612a5881876123cb565b905081810360c0830152612a6c818661248a565b9050612a7b60e0830185612467565b6111a5610100830184612467565b60c08101612a978288612363565b8181036020830152612aa881612527565b9050612ab76040830187612467565b612ac46060830186612467565b8181036080830152612ad68185612372565b90506129ec60a0830184612467565b60c08101612af38288612363565b8181036020830152612b0481612553565b9050612b136040830187612467565b612b206060830186612467565b8181036080830152612ad68185612419565b60c08101612b408288612363565b8181036020830152612b048161257e565b60a08101612b5f8287612363565b8181036020830152612b70816125b7565b9050612b7f6040830186612467565b8181036060830152612b91818561248a565b9050612ba06080830184612467565b95945050505050565b60a08101612bb78287612363565b8181036020830152612bc8816125e4565b9050612bd76040830186612467565b612be46060830185612467565b612ba06080830184612467565b60e08101612bff8289612363565b8181036020830152612c108161260e565b9050612c1f6040830188612467565b612c2c6060830187612467565b612c396080830186612467565b612c4660a0830185612363565b612c5360c0830184612467565b979650505050505050565b60c08101612c6c8288612363565b8181036020830152612c7d8161263a565b9050612c8c6040830187612467565b612c996060830186612467565b8181036080830152612ad6818561248a565b60c08101612cb98288612363565b8181036020830152612cca81612664565b9050612cd96040830187612467565b8181036060830152612ceb81866123cb565b90508181036080830152612ad6818561248a565b6101208101612d0e828b612363565b8181036020830152612d1f81612691565b90508181036040830152612d33818a6123cb565b90508181036060830152612d478189612372565b90508181036080830152612d5b818861248a565b9050612d6a60a0830187612467565b612d7760c0830186612363565b612a7b60e0830185612467565b60c08101612d928288612363565b8181036020830152612da3816126bc565b9050612db26040830187612467565b612dbf6060830186612467565b612dcc6080830185612467565b6129ec60a0830184612467565b60e08101612de78289612363565b8181036020830152612c10816126ea565b60a08101612e068287612363565b8181036020830152612bc881612718565b60e08101612e258289612363565b8181036020830152612e368161274a565b9050612e456040830188612467565b612e526060830187612467565b612e5f6080830186612467565b81810360a0830152612e718185612419565b9050612c5360c0830184612467565b6101408101612e8f828c612363565b8181036020830152612ea08161277b565b90508181036040830152612eb4818b6123cb565b90508181036060830152612ec8818a612372565b90508181036080830152612edc818961248a565b9050612eeb60a0830188612467565b612ef860c0830187612363565b612f0560e0830186612467565b612f13610100830185612467565b612f21610120830184612467565b9a9950505050505050505050565b6101008101612f3e828a612363565b8181036020830152612f4f816127ad565b9050612f5e6040830189612467565b8181036060830152612f7081886123cb565b90508181036080830152612f84818761248a565b9050612f9360a0830186612467565b81810360c0830152612fa58185612419565b905061146f60e0830184612467565b60e08101612fc28289612363565b8181036020830152612fd3816127dd565b9050612fe26040830188612467565b612fef6060830187612467565b818103608083015261300181866123cb565b905081810360a0830152612e71818561248a565b60a081016130238287612363565b81810360208301526130348161280e565b90506130436040830186612467565b8181036060830152612b918185612419565b60c081016130638288612363565b818103602083015261307481612847565b90506130836040830187612467565b6130906060830186612467565b8181036080830152612ad681856123cb565b608081016130b08287612363565b6130bd6020830186612467565b81810360408301526130cf81856123cb565b905081810360608301526129ec818461248a565b60c081016130f18289612363565b6130fe6020830188612467565b818103604083015261311081876123cb565b90508181036060830152613124818661248a565b90506131336080830185612467565b81810360a083015261146f8184612419565b606081016131538286612363565b6131606020830185612467565b8181036040830152612ba08184612419565b606081016131808286612363565b61318d6020830185612467565b8181036040830152612ba0818461248a565b608081016131ad8287612363565b6131ba6020830186612467565b6131c76040830185612467565b81810360608301526129ec8184612372565b608081016131e78287612363565b6131f46020830186612467565b6132016040830185612467565b81810360608301526129ec81846123cb565b60e08101613221828a612363565b61322e6020830189612467565b61323b6040830188612467565b818103606083015261324d81876123cb565b9050818103608083015261326181866123cb565b905081810360a0830152613275818561248a565b905061146f60c0830184612467565b60a081016132928288612363565b61329f6020830187612467565b6132ac6040830186612467565b81810360608301526132be81856123cb565b90508181036080830152612c53818461248a565b608081016132e08287612363565b6132ed6020830186612467565b6132fa6040830185612467565b81810360608301526129ec818461248a565b6080810161331a8287612363565b6133276020830186612467565b6133346040830185612467565b612ba06060830184612467565b60a0810161334f8288612363565b61335c6020830187612467565b6133696040830186612467565b6133766060830185612467565b6129ec6080830184612363565b60a081016133918288612363565b61339e6020830187612467565b6133ab6040830186612467565b6133b86060830185612467565b8181036080830152612c538184612419565b608081016133d88287612467565b6133276020830186612871565b602081016116f28284612481565b602081016116f28284612467565b6040518181016001600160401b038111828210171561341f57600080fd5b604052919050565b60006001600160401b0382111561343d57600080fd5b5060209081020190565b60006001600160401b0382111561345d57600080fd5b506020601f91909101601f19160190565b60200190565b5190565b90815260200190565b919050565b60006116f282613494565b90565b6001600160a01b031690565b60ff1690565b60006116f282613486565b82818337506000910152565b60005b838110156134d85781810151838201526020016134c0565b838111156134e7576000848401525b50505050565b601f01601f191690565b61350081613486565b811461350b57600080fd5b50565b6135008161349156fea365627a7a72305820d46ac7774b9f5e0e1a92bca46972d482a42e14e8d7cab347f06be9b2199227436c6578706572696d656e74616cf564736f6c63430005090040", - "sourceMap": "109:21784:4:-;;;336:97;8:9:-1;5:2;;;30:1;27;20:12;5:2;336:97:4;;;;;;;;;;;;;;;;;;;;;381:16;:46;;-1:-1:-1;;;;;;381:46:4;-1:-1:-1;;;;;381:46:4;;;;;;;;;;109:21784;;5:134:-1;83:13;;101:33;83:13;101:33;;;68:71;;;;;146:263;;261:2;249:9;240:7;236:23;232:32;229:2;;;277:1;274;267:12;229:2;312:1;329:64;385:7;365:9;329:64;;;319:74;223:186;-1:-1;;;;223:186;416:91;;-1:-1;;;;;576:54;;478:24;559:76;642:117;711:24;729:5;711:24;;;704:5;701:35;691:2;;750:1;747;740:12;691:2;685:74;;;109:21784:4;;;;;;", - "deployedSourceMap": "109:21784:4:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12683:1253;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;12683:1253:4;;;;;;;;:::i;:::-;;10500:1036;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;10500:1036:4;;;;;;;;:::i;17458:930::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17458:930:4;;;;;;;;:::i;18394:958::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18394:958:4;;;;;;;;:::i;13942:1321::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13942:1321:4;;;;;;;;:::i;4255:959::-;;;;;;;;;:::i;8779:794::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8779:794:4;;;;;;;;:::i;6057:850::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6057:850:4;;;;;;;;:::i;284:43::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;284:43:4;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;11542:1135;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11542:1135:4;;;;;;;;:::i;20314:954::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20314:954:4;;;;;;;;:::i;5222:829::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5222:829:4;;;;;;;;:::i;239:40::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;239:40:4;;;:::i;:::-;;;;;;;;16371:1081;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16371:1081:4;;;;;;;;:::i;7857:916::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7857:916:4;;;;;;;;:::i;1939:2310::-;;;;;;;;;:::i;19358:950::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19358:950:4;;;;;;;;:::i;15269:1096::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15269:1096:4;;;;;;;;:::i;439:1494::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;439:1494:4;;;;;;;;:::i;9579:915::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9579:915:4;;;;;;;;:::i;6913:938::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6913:938:4;;;;;;;;:::i;12683:1253::-;12936:16;12984:4;13117:9;13179:11;13243:5;13301:11;13365:13;13431:6;12965:473;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;12965:473:4;;;12955:484;;;;;;12936:503;;13446:14;13463:31;13473:8;13483:10;13463:9;:31::i;:::-;13446:48;-1:-1:-1;;;;;;13558:20:4;;13550:29;;;;;;-1:-1:-1;;;;;13604:19:4;;;;;;:11;:19;;;;;;13594:29;;13586:38;;;;;;-1:-1:-1;;;;;13685:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;13715:16;;:215;;-1:-1:-1;;;13715:215:4;;:16;;;:33;;:215;;13697:6;;13780:9;;13814:11;;13850:5;;13880:11;;13916:13;;13715:215;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13715:215:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13715:215:4;;;;12683:1253;;;;;;;;;:::o;10500:1036::-;10724:16;10772:4;10906:9;10968:14;11035:11;11099:5;11157:6;10753:411;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;10753:411:4;;;10743:422;;;;;;10724:441;;11172:14;11189:31;11199:8;11209:10;11189:9;:31::i;:::-;11172:48;-1:-1:-1;;;;;;11284:20:4;;11276:29;;;;;;-1:-1:-1;;;;;11330:19:4;;;;;;:11;:19;;;;;;11320:29;;11312:38;;;;;;-1:-1:-1;;;;;11411:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;11441:16;;:89;;-1:-1:-1;;;11441:89:4;;:16;;;:34;;:89;;11423:6;;11484:9;;11495:14;;11511:11;;11524:5;;11441:89;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11441:89:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11441:89:4;;;;10500:1036;;;;;;;;:::o;17458:930::-;17626:16;17674:4;17801:9;17863;17925:5;17983:6;17655:335;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;17655:335:4;;;17645:346;;;;;;17626:365;;17998:14;18015:31;18025:8;18035:10;18015:9;:31::i;:::-;17998:48;-1:-1:-1;;;;;;18110:20:4;;18102:29;;;;;;-1:-1:-1;;;;;18156:19:4;;;;;;:11;:19;;;;;;18146:29;;18138:38;;;;;;-1:-1:-1;;;;;18237:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;18267:16;;:115;;-1:-1:-1;;;18267:115:4;;:16;;;:27;;:115;;18249:6;;18320:9;;18348;;18376:5;;18267:115;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18267:115:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18267:115:4;;;;17458:930;;;;;;;:::o;18394:958::-;18562:16;18610:4;18741:9;18803;18865;18927:6;18591:343;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;18591:343:4;;;18581:354;;;;;;18562:373;;18942:14;18959:31;18969:8;18979:10;18959:9;:31::i;:::-;18942:48;-1:-1:-1;;;;;;19054:20:4;;19046:29;;;;;;-1:-1:-1;;;;;19100:19:4;;;;;;:11;:19;;;;;;19090:29;;19082:38;;;;;;-1:-1:-1;;;;;19181:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;19211:16;;:135;;-1:-1:-1;;;19211:135:4;;:16;;;:31;;:135;;19193:6;;19272:9;;19304;;19336;;19211:135;;;;13942:1321;14215:16;14263:4;14392:9;14454;14516:8;14577:10;14640:5;14698:9;14760:6;14244:523;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;14244:523:4;;;14234:534;;;;;;14215:553;;14775:14;14792:31;14802:8;14812:10;14792:9;:31::i;:::-;14775:48;-1:-1:-1;;;;;;14887:20:4;;14879:29;;;;;;-1:-1:-1;;;;;14933:19:4;;;;;;:11;:19;;;;;;14923:29;;14915:38;;;;;;-1:-1:-1;;;;;15014:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;15044:16;;:213;;-1:-1:-1;;;15044:213:4;;:16;;;:29;;:213;;15026:6;;15101:9;;15131;;15161:8;;15190:10;;15221:5;;15247:9;;15044:213;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15044:213:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15044:213:4;;;;13942:1321;;;;;;;;;;:::o;4255:959::-;4405:16;4453:4;4580:9;4642:7;4702:6;4434:275;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;4434:275:4;;;4424:286;;;;;;4405:305;;4717:14;4734:31;4744:8;4754:10;4734:9;:31::i;:::-;4717:48;-1:-1:-1;;;;;;4831:20:4;;4823:29;;;;;;-1:-1:-1;;;;;4877:19:4;;;;;;:11;:19;;;;;;4867:29;;4859:38;;;;;;-1:-1:-1;;;;;4958:19:4;;;;;;:11;:19;;;;;;;;:21;;;;;;;4992:9;:13;4988:221;;5015:16;;:90;;-1:-1:-1;;;5015:90:4;;-1:-1:-1;;;;;5015:16:4;;;;:27;;5049:9;;5015:90;;5076:6;;5086:9;;5097:7;;5015:90;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5015:90:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5015:90:4;;;;;4988:221;;;5128:16;;:73;;-1:-1:-1;;;5128:73:4;;-1:-1:-1;;;;;5128:16:4;;;;:27;;:73;;5172:6;;5182:9;;5193:7;;5128:73;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5128:73:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5128:73:4;;;;4988:221;4255:959;;;;;;:::o;8779:794::-;8929:16;8977:4;9107:9;9169:5;9227:6;8958:276;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8958:276:4;;;8948:287;;;;;;8929:306;;9242:14;9259:31;9269:8;9279:10;9259:9;:31::i;:::-;9242:48;-1:-1:-1;;;;;;9354:20:4;;9346:29;;;;;;-1:-1:-1;;;;;9400:19:4;;;;;;:11;:19;;;;;;9390:29;;9382:38;;;;;;-1:-1:-1;;;;;9481:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;9511:16;;:56;;-1:-1:-1;;;9511:56:4;;:16;;;:30;;:56;;9493:6;;9550:9;;9561:5;;9511:56;;;;6057:850;6223:16;6271:4;6409:9;6471:16;6540:6;6252:295;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;6252:295:4;;;6242:306;;;;;;6223:325;;6555:14;6572:31;6582:8;6592:10;6572:9;:31::i;:::-;6555:48;-1:-1:-1;;;;;;6669:20:4;;6661:29;;;;;;-1:-1:-1;;;;;6715:19:4;;;;;;:11;:19;;;;;;6705:29;;6697:38;;;;;;-1:-1:-1;;;;;6796:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;6826:16;;:75;;-1:-1:-1;;;6826:75:4;;:16;;;:38;;:75;;6808:6;;6873:9;;6884:16;;6826:75;;;;284:43;;;;;;;;;;;;;:::o;11542:1135::-;11753:16;11801:4;11935:9;11997:14;12064:11;12128:13;12194:6;11782:419;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;11782:419:4;;;11772:430;;;;;;11753:449;;12209:14;12226:31;12236:8;12246:10;12226:9;:31::i;:::-;12209:48;-1:-1:-1;;;;;;12321:20:4;;12313:29;;;;;;-1:-1:-1;;;;;12367:19:4;;;;;;:11;:19;;;;;;12357:29;;12349:38;;;;;;-1:-1:-1;;;;;12448:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;12478:16;;:193;;-1:-1:-1;;;12478:193:4;;:16;;;:34;;:193;;12460:6;;12545:9;;12580:14;;12620:11;;12657:13;;12478:193;;;;20314:954;20492:16;20540:4;20669:9;20731;20793:10;20856:6;20521:342;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;20521:342:4;;;20511:353;;;;;;20492:372;;20871:14;20888:31;20898:8;20908:10;20888:9;:31::i;:::-;20871:48;-1:-1:-1;;;;;;20983:20:4;;20975:29;;;;;;-1:-1:-1;;;;;21029:19:4;;;;;;:11;:19;;;;;;21019:29;;21011:38;;;;;;-1:-1:-1;;;;;21110:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;21140:16;;:122;;-1:-1:-1;;;21140:122:4;;:16;;;:29;;:122;;21122:6;;21195:9;;21223;;21251:10;;21140:122;;;;5222:829;5375:16;5423:4;5558:9;5620:15;5688:6;5404:291;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;5404:291:4;;;5394:302;;;;;;5375:321;;5703:14;5720:31;5730:8;5740:10;5720:9;:31::i;:::-;5703:48;-1:-1:-1;;;;;;5817:20:4;;5809:29;;;;;;-1:-1:-1;;;;;5863:19:4;;;;;;:11;:19;;;;;;5853:29;;5845:38;;;;;;-1:-1:-1;;;;;5944:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;5974:16;;:71;;-1:-1:-1;;;5974:71:4;;:16;;;:35;;:71;;5956:6;;6018:9;;6029:15;;5974:71;;;;239:40;;;-1:-1:-1;;;;;239:40:4;;:::o;16371:1081::-;16572:16;16620:4;16751:9;16813;16875:11;16939:9;17001:6;16601:407;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;16601:407:4;;;16591:418;;;;;;16572:437;;17016:14;17033:31;17043:8;17053:10;17033:9;:31::i;:::-;17016:48;-1:-1:-1;;;;;;17128:20:4;;17120:29;;;;;;-1:-1:-1;;;;;17174:19:4;;;;;;:11;:19;;;;;;17164:29;;17156:38;;;;;;-1:-1:-1;;;;;17255:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;17285:16;;:161;;-1:-1:-1;;;17285:161:4;;:16;;;:31;;:161;;17267:6;;17344:9;;17374;;17404:11;;17436:9;;17285:161;;;;7857:916;8026:16;8074:4;8202:9;8264;8326:8;8387:6;8055:339;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;8055:339:4;;;8045:350;;;;;;8026:369;;8402:22;8443:31;8453:8;8463:10;8443:9;:31::i;:::-;8402:74;-1:-1:-1;;;;;;8542:20:4;;8534:29;;;;;;-1:-1:-1;;;;;8588:19:4;;;;;;:11;:19;;;;;;8578:29;;8570:38;;;;;;-1:-1:-1;;;;;8669:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;8699:16;;:68;;-1:-1:-1;;;8699:68:4;;:16;;;:28;;:68;;8681:6;;8736:9;;8747;;8758:8;;8699:68;;;;1939:2310;2251:4;2269:16;2317:4;2452:8;2513:10;2576:5;2634:9;2696:6;2755:13;2821:14;2888:6;2298:597;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;2298:597:4;;;2288:608;;;;;;2269:627;;2903:14;2920:30;2930:8;2940:9;2920;:30::i;:::-;2903:47;-1:-1:-1;;;;;;3016:20:4;;3008:29;;;;;;-1:-1:-1;;;;;3062:19:4;;;;;;:11;:19;;;;;;3052:29;;3044:38;;;;;;-1:-1:-1;;;;;3143:19:4;;;;;;:11;:19;;;;;;;;:21;;;;;;;3177:9;:13;3173:1069;;3207:16;;;;;;;;;-1:-1:-1;;;;;3207:16:4;-1:-1:-1;;;;;3207:35:4;;3249:9;3276:6;3336:8;3396:10;3458:5;3515:9;3576:6;3634:13;3699:14;3207:507;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3207:507:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3207:507:4;;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;3207:507:4;;;;;;;;;3200:514;;;;;;3173:1069;3744:16;;:490;;-1:-1:-1;;;3744:490:4;;-1:-1:-1;;;;;3744:16:4;;;;:35;;:490;;3796:6;;3856:8;;3916:10;;3978:5;;4035:9;;4096:6;;4154:13;;4219:14;;3744:490;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3744:490:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3744:490:4;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;3744:490:4;;;;;;;;1939:2310;;;;;;;;;;;;:::o;19358:950::-;19540:16;19588:4;19715:9;19777;19839:8;19900:6;19569:338;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;19569:338:4;;;19559:349;;;;;;19540:368;;19915:14;19932:31;19942:8;19952:10;19932:9;:31::i;:::-;19915:48;-1:-1:-1;;;;;;20027:20:4;;20019:29;;;;;;-1:-1:-1;;;;;20073:19:4;;;;;;:11;:19;;;;;;20063:29;;20055:38;;;;;;-1:-1:-1;;;;;20154:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;20184:16;;:118;;-1:-1:-1;;;20184:118:4;;:16;;;:27;;:118;;20166:6;;20237:9;;20265;;20293:8;;20184:118;;;;15269:1096;15475:16;15523:4;15652:9;15714;15776:17;15846:10;15909:6;15504:412;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;15504:412:4;;;15494:423;;;;;;15475:442;;15924:14;15941:31;15951:8;15961:10;15941:9;:31::i;:::-;15924:48;-1:-1:-1;;;;;;16036:20:4;;16028:29;;;;;;-1:-1:-1;;;;;16082:19:4;;;;;;:11;:19;;;;;;16072:29;;16064:38;;;;;;-1:-1:-1;;;;;16163:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;16193:16;;:166;;-1:-1:-1;;;16193:166:4;;:16;;;:29;;:166;;16175:6;;16250:9;;16280;;16310:17;;16348:10;;16193:166;;;;439:1494;705:4;723:16;771:4;899:8;960:10;1023:5;1081:9;1143:6;1202:13;1268:6;752:523;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;752:523:4;;;742:534;;;;;;723:553;;1283:14;1300:30;1310:8;1320:9;1300;:30::i;:::-;1283:47;-1:-1:-1;;;;;;1396:20:4;;1388:29;;;;;;-1:-1:-1;;;;;1442:19:4;;;;;;:11;:19;;;;;;1432:29;;1424:38;;;;;;-1:-1:-1;;;;;1523:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;1558:16;;:369;;-1:-1:-1;;;1558:369:4;;:16;;;:28;;:369;;1535:6;;1655:8;;1707:10;;1761:5;;1810:9;;1863:6;;1913:13;;1558:369;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1558:369:4;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1558:369:4;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;1558:369:4;;;;;;;;;1551:376;;;;439:1494;;;;;;;;;;;:::o;9579:915::-;9773:16;9821:4;9951:9;10013:11;10077:5;10135:6;9802:340;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;9802:340:4;;;9792:351;;;;;;9773:370;;10150:14;10167:31;10177:8;10187:10;10167:9;:31::i;:::-;10150:48;-1:-1:-1;;;;;;10262:20:4;;10254:29;;;;;;-1:-1:-1;;;;;10308:19:4;;;;;;:11;:19;;;;;;10298:29;;10290:38;;;;;;-1:-1:-1;;;;;10389:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;10419:16;;:69;;-1:-1:-1;;;10419:69:4;;:16;;;:30;;:69;;10401:6;;10458:9;;10469:11;;10482:5;;10419:69;;;;6913:938;7098:16;7146:4;7282:9;7344;7406:16;7475:6;7127:355;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;7127:355:4;;;7117:366;;;;;;7098:385;;7490:14;7507:31;7517:8;7527:10;7507:9;:31::i;:::-;7490:48;-1:-1:-1;;;;;;7604:20:4;;7596:29;;;;;;-1:-1:-1;;;;;7650:19:4;;;;;;:11;:19;;;;;;7640:29;;7632:38;;;;;;-1:-1:-1;;;;;7731:19:4;;;;;;;:11;:19;;;;;;;;:21;;;;;;;;7761:16;;:84;;-1:-1:-1;;;7761:84:4;;:16;;;:36;;:84;;7743:6;;7806:9;;7817;;7828:16;;7761:84;;;;21274:616;21382:7;21401:9;21417;21433:7;21451:10;:17;21472:2;21451:23;21447:62;;21499:1;21484:17;;;;;;;21447:62;-1:-1:-1;;;21560:2:4;21544:19;;21538:26;21599:2;21583:19;;21577:26;21646:2;21630:19;;21624:26;21621:1;21616:35;21672:2;21668:6;;21664:35;;;21689:2;21684:7;21664:35;21709:1;:7;;21714:2;21709:7;;:18;;;;;21720:1;:7;;21725:2;21720:7;;21709:18;21705:180;;;21752:1;21737:17;;;;;;;21705:180;21786:91;21859:5;21806:59;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;21806:59:4;;;21796:70;;;;;;21868:1;21871;21874;21786:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21786:91:4;;;;;;;;21779:98;;;;;;;21705:180;21274:616;;;;;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;313:707;;430:3;423:4;415:6;411:17;407:27;397:2;;448:1;445;438:12;397:2;485:6;472:20;507:80;522:64;579:6;522:64;;;507:80;;;498:89;;604:5;629:6;622:5;615:21;659:4;651:6;647:17;637:27;;681:4;676:3;672:14;665:21;;734:6;781:3;773:4;765:6;761:17;756:3;752:27;749:36;746:2;;;798:1;795;788:12;746:2;823:1;808:206;833:6;830:1;827:13;808:206;;;891:3;913:37;946:3;934:10;913:37;;;901:50;;-1:-1;974:4;965:14;;;;993;;;;;855:1;848:9;808:206;;;812:14;390:630;;;;;;;;1054:731;;1179:3;1172:4;1164:6;1160:17;1156:27;1146:2;;1197:1;1194;1187:12;1146:2;1234:6;1221:20;1256:88;1271:72;1336:6;1271:72;;1256:88;1247:97;;1361:5;1386:6;1379:5;1372:21;1416:4;1408:6;1404:17;1394:27;;1438:4;1433:3;1429:14;1422:21;;1491:6;1538:3;1530:4;1522:6;1518:17;1513:3;1509:27;1506:36;1503:2;;;1555:1;1552;1545:12;1503:2;1580:1;1565:214;1590:6;1587:1;1584:13;1565:214;;;1648:3;1670:45;1711:3;1699:10;1670:45;;;1658:58;;-1:-1;1739:4;1730:14;;;;1758;;;;;1612:1;1605:9;1565:214;;1811:707;;1928:3;1921:4;1913:6;1909:17;1905:27;1895:2;;1946:1;1943;1936:12;1895:2;1983:6;1970:20;2005:80;2020:64;2077:6;2020:64;;2005:80;1996:89;;2102:5;2127:6;2120:5;2113:21;2157:4;2149:6;2145:17;2135:27;;2179:4;2174:3;2170:14;2163:21;;2232:6;2279:3;2271:4;2263:6;2259:17;2254:3;2250:27;2247:36;2244:2;;;2296:1;2293;2286:12;2244:2;2321:1;2306:206;2331:6;2328:1;2325:13;2306:206;;;2389:3;2411:37;2444:3;2432:10;2411:37;;;2399:50;;-1:-1;2472:4;2463:14;;;;2491;;;;;2353:1;2346:9;2306:206;;2527:440;;2628:3;2621:4;2613:6;2609:17;2605:27;2595:2;;2646:1;2643;2636:12;2595:2;2683:6;2670:20;2705:64;2720:48;2761:6;2720:48;;2705:64;2696:73;;2789:6;2782:5;2775:21;2825:4;2817:6;2813:17;2858:4;2851:5;2847:16;2893:3;2884:6;2879:3;2875:16;2872:25;2869:2;;;2910:1;2907;2900:12;2869:2;2920:41;2954:6;2949:3;2944;2920:41;;3426:130;3493:20;;3518:33;3493:20;3518:33;;3563:134;3641:13;;3659:33;3641:13;3659:33;;3704:241;;3808:2;3796:9;3787:7;3783:23;3779:32;3776:2;;;3824:1;3821;3814:12;3776:2;3859:1;3876:53;3921:7;3901:9;3876:53;;;3866:63;3770:175;-1:-1;;;;3770:175;3952:1619;;;;;;;;;4252:3;4240:9;4231:7;4227:23;4223:33;4220:2;;;4269:1;4266;4259:12;4220:2;4304:31;;-1:-1;;;;;4344:30;;4341:2;;;4387:1;4384;4377:12;4341:2;4407:62;4461:7;4452:6;4441:9;4437:22;4407:62;;;4397:72;;4283:192;4534:2;4523:9;4519:18;4506:32;-1:-1;;;;;4550:6;4547:30;4544:2;;;4590:1;4587;4580:12;4544:2;4610:86;4688:7;4679:6;4668:9;4664:22;4610:86;;;4600:96;;4485:217;4761:2;4750:9;4746:18;4733:32;-1:-1;;;;;4777:6;4774:30;4771:2;;;4817:1;4814;4807:12;4771:2;4837:78;4907:7;4898:6;4887:9;4883:22;4837:78;;;4827:88;;4712:209;4980:2;4969:9;4965:18;4952:32;-1:-1;;;;;4996:6;4993:30;4990:2;;;5036:1;5033;5026:12;4990:2;5056:63;5111:7;5102:6;5091:9;5087:22;5056:63;;;5046:73;;4931:194;5156:3;5175:53;5220:7;5211:6;5200:9;5196:22;5175:53;;;5165:63;;5135:99;5265:3;5284:53;5329:7;5320:6;5309:9;5305:22;5284:53;;;5274:63;;5244:99;5374:3;5393:53;5438:7;5429:6;5418:9;5414:22;5393:53;;;5383:63;;5353:99;5483:3;5502:53;5547:7;5538:6;5527:9;5523:22;5502:53;;;5492:63;;5462:99;4214:1357;;;;;;;;;;;;5578:1745;;;;;;;;;;5895:3;5883:9;5874:7;5870:23;5866:33;5863:2;;;5912:1;5909;5902:12;5863:2;5947:31;;-1:-1;;;;;5987:30;;5984:2;;;6030:1;6027;6020:12;5984:2;6050:62;6104:7;6095:6;6084:9;6080:22;6050:62;;;6040:72;;5926:192;6177:2;6166:9;6162:18;6149:32;-1:-1;;;;;6193:6;6190:30;6187:2;;;6233:1;6230;6223:12;6187:2;6253:86;6331:7;6322:6;6311:9;6307:22;6253:86;;;6243:96;;6128:217;6404:2;6393:9;6389:18;6376:32;-1:-1;;;;;6420:6;6417:30;6414:2;;;6460:1;6457;6450:12;6414:2;6480:78;6550:7;6541:6;6530:9;6526:22;6480:78;;;6470:88;;6355:209;6623:2;6612:9;6608:18;6595:32;-1:-1;;;;;6639:6;6636:30;6633:2;;;6679:1;6676;6669:12;6633:2;6699:63;6754:7;6745:6;6734:9;6730:22;6699:63;;;6689:73;;6574:194;6799:3;6818:53;6863:7;6854:6;6843:9;6839:22;6818:53;;;6808:63;;6778:99;6908:3;6927:53;6972:7;6963:6;6952:9;6948:22;6927:53;;;6917:63;;6887:99;7017:3;7036:53;7081:7;7072:6;7061:9;7057:22;7036:53;;;7026:63;;6996:99;7126:3;7145:53;7190:7;7181:6;7170:9;7166:22;7145:53;;;7135:63;;7105:99;7235:3;7254:53;7299:7;7290:6;7279:9;7275:22;7254:53;;;7244:63;;7214:99;5857:1466;;;;;;;;;;;;7330:1105;;;;;;7554:3;7542:9;7533:7;7529:23;7525:33;7522:2;;;7571:1;7568;7561:12;7522:2;7606:31;;-1:-1;;;;;7646:30;;7643:2;;;7689:1;7686;7679:12;7643:2;7709:62;7763:7;7754:6;7743:9;7739:22;7709:62;;;7699:72;;7585:192;7808:2;7826:53;7871:7;7862:6;7851:9;7847:22;7826:53;;;7816:63;;7787:98;7944:2;7933:9;7929:18;7916:32;-1:-1;;;;;7960:6;7957:30;7954:2;;;8000:1;7997;7990:12;7954:2;8020:86;8098:7;8089:6;8078:9;8074:22;8020:86;;;8010:96;;7895:217;8171:2;8160:9;8156:18;8143:32;-1:-1;;;;;8187:6;8184:30;8181:2;;;8227:1;8224;8217:12;8181:2;8247:63;8302:7;8293:6;8282:9;8278:22;8247:63;;;8237:73;;8122:194;8347:3;8366:53;8411:7;8402:6;8391:9;8387:22;8366:53;;;8356:63;;8326:99;7516:919;;;;;;;;;8442:1493;;;;;;;;8725:3;8713:9;8704:7;8700:23;8696:33;8693:2;;;8742:1;8739;8732:12;8693:2;8777:31;;-1:-1;;;;;8817:30;;8814:2;;;8860:1;8857;8850:12;8814:2;8880:62;8934:7;8925:6;8914:9;8910:22;8880:62;;;8870:72;;8756:192;8979:2;8997:53;9042:7;9033:6;9022:9;9018:22;8997:53;;;8987:63;;8958:98;9115:2;9104:9;9100:18;9087:32;-1:-1;;;;;9131:6;9128:30;9125:2;;;9171:1;9168;9161:12;9125:2;9191:86;9269:7;9260:6;9249:9;9245:22;9191:86;;;9181:96;;9066:217;9342:2;9331:9;9327:18;9314:32;-1:-1;;;;;9358:6;9355:30;9352:2;;;9398:1;9395;9388:12;9352:2;9418:63;9473:7;9464:6;9453:9;9449:22;9418:63;;;9408:73;;9293:194;9518:3;9537:53;9582:7;9573:6;9562:9;9558:22;9537:53;;;9527:63;;9497:99;9655:3;9644:9;9640:19;9627:33;-1:-1;;;;;9672:6;9669:30;9666:2;;;9712:1;9709;9702:12;9666:2;9732:78;9802:7;9793:6;9782:9;9778:22;9732:78;;;9722:88;;9606:210;9847:3;9866:53;9911:7;9902:6;9891:9;9887:22;9866:53;;;9856:63;;9826:99;8687:1248;;;;;;;;;;;9942:857;;;;;10131:3;10119:9;10110:7;10106:23;10102:33;10099:2;;;10148:1;10145;10138:12;10099:2;10183:31;;-1:-1;;;;;10223:30;;10220:2;;;10266:1;10263;10256:12;10220:2;10286:62;10340:7;10331:6;10320:9;10316:22;10286:62;;;10276:72;;10162:192;10385:2;10403:53;10448:7;10439:6;10428:9;10424:22;10403:53;;;10393:63;;10364:98;10521:2;10510:9;10506:18;10493:32;-1:-1;;;;;10537:6;10534:30;10531:2;;;10577:1;10574;10567:12;10531:2;10597:78;10667:7;10658:6;10647:9;10643:22;10597:78;;;10587:88;;10472:209;10712:2;10730:53;10775:7;10766:6;10755:9;10751:22;10730:53;;;10720:63;;10691:98;10093:706;;;;;;;;10806:827;;;;;10980:3;10968:9;10959:7;10955:23;10951:33;10948:2;;;10997:1;10994;10987:12;10948:2;11032:31;;-1:-1;;;;;11072:30;;11069:2;;;11115:1;11112;11105:12;11069:2;11135:62;11189:7;11180:6;11169:9;11165:22;11135:62;;;11125:72;;11011:192;11234:2;11252:53;11297:7;11288:6;11277:9;11273:22;11252:53;;;11242:63;;11213:98;11370:2;11359:9;11355:18;11342:32;-1:-1;;;;;11386:6;11383:30;11380:2;;;11426:1;11423;11416:12;11380:2;11446:63;11501:7;11492:6;11481:9;11477:22;11446:63;;11640:983;;;;;;11846:3;11834:9;11825:7;11821:23;11817:33;11814:2;;;11863:1;11860;11853:12;11814:2;11898:31;;-1:-1;;;;;11938:30;;11935:2;;;11981:1;11978;11971:12;11935:2;12001:62;12055:7;12046:6;12035:9;12031:22;12001:62;;;11991:72;;11877:192;12100:2;12118:53;12163:7;12154:6;12143:9;12139:22;12118:53;;;12108:63;;12079:98;12208:2;12226:53;12271:7;12262:6;12251:9;12247:22;12226:53;;;12216:63;;12187:98;12344:2;12333:9;12329:18;12316:32;-1:-1;;;;;12360:6;12357:30;12354:2;;;12400:1;12397;12390:12;12354:2;12420:78;12490:7;12481:6;12470:9;12466:22;12420:78;;12630:1635;;;;;;;;;12938:3;12926:9;12917:7;12913:23;12909:33;12906:2;;;12955:1;12952;12945:12;12906:2;12990:31;;-1:-1;;;;;13030:30;;13027:2;;;13073:1;13070;13063:12;13027:2;13093:62;13147:7;13138:6;13127:9;13123:22;13093:62;;;13083:72;;12969:192;13192:2;13210:53;13255:7;13246:6;13235:9;13231:22;13210:53;;;13200:63;;13171:98;13300:2;13318:53;13363:7;13354:6;13343:9;13339:22;13318:53;;;13308:63;;13279:98;13436:2;13425:9;13421:18;13408:32;-1:-1;;;;;13452:6;13449:30;13446:2;;;13492:1;13489;13482:12;13446:2;13512:86;13590:7;13581:6;13570:9;13566:22;13512:86;;;13502:96;;13387:217;13663:3;13652:9;13648:19;13635:33;-1:-1;;;;;13680:6;13677:30;13674:2;;;13720:1;13717;13710:12;13674:2;13740:86;13818:7;13809:6;13798:9;13794:22;13740:86;;;13730:96;;13614:218;13891:3;13880:9;13876:19;13863:33;-1:-1;;;;;13908:6;13905:30;13902:2;;;13948:1;13945;13938:12;13902:2;13968:63;14023:7;14014:6;14003:9;13999:22;13968:63;;14272:1231;;;;;;;14513:3;14501:9;14492:7;14488:23;14484:33;14481:2;;;14530:1;14527;14520:12;14481:2;14565:31;;-1:-1;;;;;14605:30;;14602:2;;;14648:1;14645;14638:12;14602:2;14668:62;14722:7;14713:6;14702:9;14698:22;14668:62;;;14658:72;;14544:192;14767:2;14785:53;14830:7;14821:6;14810:9;14806:22;14785:53;;;14775:63;;14746:98;14875:2;14893:53;14938:7;14929:6;14918:9;14914:22;14893:53;;;14883:63;;14854:98;15011:2;15000:9;14996:18;14983:32;-1:-1;;;;;15027:6;15024:30;15021:2;;;15067:1;15064;15057:12;15021:2;15087:86;15165:7;15156:6;15145:9;15141:22;15087:86;;;15077:96;;14962:217;15238:3;15227:9;15223:19;15210:33;-1:-1;;;;;15255:6;15252:30;15249:2;;;15295:1;15292;15285:12;15249:2;15315:63;15370:7;15361:6;15350:9;15346:22;15315:63;;;15305:73;;15189:195;15415:3;15434:53;15479:7;15470:6;15459:9;15455:22;15434:53;;;15424:63;;15394:99;14475:1028;;;;;;;;;15510:999;;;;;;15724:3;15712:9;15703:7;15699:23;15695:33;15692:2;;;15741:1;15738;15731:12;15692:2;15776:31;;-1:-1;;;;;15816:30;;15813:2;;;15859:1;15856;15849:12;15813:2;15879:62;15933:7;15924:6;15913:9;15909:22;15879:62;;;15869:72;;15755:192;15978:2;15996:53;16041:7;16032:6;16021:9;16017:22;15996:53;;;15986:63;;15957:98;16086:2;16104:53;16149:7;16140:6;16129:9;16125:22;16104:53;;;16094:63;;16065:98;16222:2;16211:9;16207:18;16194:32;-1:-1;;;;;16238:6;16235:30;16232:2;;;16278:1;16275;16268:12;16232:2;16298:86;16376:7;16367:6;16356:9;16352:22;16298:86;;16516:983;;;;;;16722:3;16710:9;16701:7;16697:23;16693:33;16690:2;;;16739:1;16736;16729:12;16690:2;16774:31;;-1:-1;;;;;16814:30;;16811:2;;;16857:1;16854;16847:12;16811:2;16877:62;16931:7;16922:6;16911:9;16907:22;16877:62;;;16867:72;;16753:192;16976:2;16994:53;17039:7;17030:6;17019:9;17015:22;16994:53;;;16984:63;;16955:98;17084:2;17102:53;17147:7;17138:6;17127:9;17123:22;17102:53;;;17092:63;;17063:98;17220:2;17209:9;17205:18;17192:32;-1:-1;;;;;17236:6;17233:30;17230:2;;;17276:1;17273;17266:12;17230:2;17296:78;17366:7;17357:6;17346:9;17342:22;17296:78;;17506:953;;;;;;17697:3;17685:9;17676:7;17672:23;17668:33;17665:2;;;17714:1;17711;17704:12;17665:2;17749:31;;-1:-1;;;;;17789:30;;17786:2;;;17832:1;17829;17822:12;17786:2;17852:62;17906:7;17897:6;17886:9;17882:22;17852:62;;;17842:72;;17728:192;17951:2;17969:53;18014:7;18005:6;17994:9;17990:22;17969:53;;;17959:63;;17930:98;18059:2;18077:53;18122:7;18113:6;18102:9;18098:22;18077:53;;18466:721;;;;;18630:3;18618:9;18609:7;18605:23;18601:33;18598:2;;;18647:1;18644;18637:12;18598:2;18682:31;;-1:-1;;;;;18722:30;;18719:2;;;18765:1;18762;18755:12;18719:2;18785:62;18839:7;18830:6;18819:9;18815:22;18785:62;;;18775:72;;18661:192;18884:2;18902:53;18947:7;18938:6;18927:9;18923:22;18902:53;;;18892:63;;18863:98;18992:2;19010:53;19055:7;19046:6;19035:9;19031:22;19010:53;;19194:989;;;;;;;19400:3;19388:9;19379:7;19375:23;19371:33;19368:2;;;19417:1;19414;19407:12;19368:2;19452:31;;-1:-1;;;;;19492:30;;19489:2;;;19535:1;19532;19525:12;19489:2;19555:62;19609:7;19600:6;19589:9;19585:22;19555:62;;;19545:72;;19431:192;19654:2;19672:53;19717:7;19708:6;19697:9;19693:22;19672:53;;;19662:63;;19633:98;19762:2;19780:53;19825:7;19816:6;19805:9;19801:22;19780:53;;;19770:63;;19741:98;19870:2;19888:53;19933:7;19924:6;19913:9;19909:22;19888:53;;;19878:63;;19849:98;19978:3;19997:61;20050:7;20041:6;20030:9;20026:22;19997:61;;20190:1109;;;;;;;20413:3;20401:9;20392:7;20388:23;20384:33;20381:2;;;20430:1;20427;20420:12;20381:2;20465:31;;-1:-1;;;;;20505:30;;20502:2;;;20548:1;20545;20538:12;20502:2;20568:62;20622:7;20613:6;20602:9;20598:22;20568:62;;;20558:72;;20444:192;20667:2;20685:53;20730:7;20721:6;20710:9;20706:22;20685:53;;;20675:63;;20646:98;20775:2;20793:53;20838:7;20829:6;20818:9;20814:22;20793:53;;;20783:63;;20754:98;20883:2;20901:53;20946:7;20937:6;20926:9;20922:22;20901:53;;;20891:63;;20862:98;21019:3;21008:9;21004:19;20991:33;-1:-1;;;;;21036:6;21033:30;21030:2;;;21076:1;21073;21066:12;21030:2;21096:78;21166:7;21157:6;21146:9;21142:22;21096:78;;21306:847;;;;;;21487:3;21475:9;21466:7;21462:23;21458:33;21455:2;;;21504:1;21501;21494:12;21455:2;21539:31;;-1:-1;;;;;21579:30;;21576:2;;;21622:1;21619;21612:12;21576:2;21642:62;21696:7;21687:6;21676:9;21672:22;21642:62;;;21632:72;;21518:192;21741:2;21759:53;21804:7;21795:6;21784:9;21780:22;21759:53;;;21749:63;;21720:98;21849:2;21867:53;21912:7;21903:6;21892:9;21888:22;21867:53;;;21857:63;;21828:98;21957:2;21975:53;22020:7;22011:6;22000:9;21996:22;21975:53;;22160:263;;22275:2;22263:9;22254:7;22250:23;22246:32;22243:2;;;22291:1;22288;22281:12;22243:2;22326:1;22343:64;22399:7;22379:9;22343:64;;22431:205;;22534:62;22592:3;22584:6;22534:62;;;-1:-1;;22625:4;22616:14;;22527:109;22827:173;;22914:46;22956:3;22948:6;22914:46;;23008:127;23097:32;23123:5;23097:32;;;23092:3;23085:45;23079:56;;;23547:690;;23692:54;23740:5;23692:54;;;23759:86;23838:6;23833:3;23759:86;;;23752:93;;23866:56;23916:5;23866:56;;;23942:7;23970:1;23955:260;23980:6;23977:1;23974:13;23955:260;;;24047:6;24041:13;24068:63;24127:3;24112:13;24068:63;;;24061:70;;24148:60;24201:6;24148:60;;;24138:70;-1:-1;;24002:1;23995:9;23955:260;;;-1:-1;24228:3;;23671:566;-1:-1;;;;;23671:566;24292:754;;24453:62;24509:5;24453:62;;;24528:94;24615:6;24610:3;24528:94;;;24521:101;;24643:64;24701:5;24643:64;;;24727:7;24755:1;24740:284;24765:6;24762:1;24759:13;24740:284;;;24832:6;24826:13;24853:79;24928:3;24913:13;24853:79;;;24846:86;;24949:68;25010:6;24949:68;;;24939:78;-1:-1;;24787:1;24780:9;24740:284;;25085:690;;25230:54;25278:5;25230:54;;;25297:86;25376:6;25371:3;25297:86;;;25290:93;;25404:56;25454:5;25404:56;;;25480:7;25508:1;25493:260;25518:6;25515:1;25512:13;25493:260;;;25585:6;25579:13;25606:63;25665:3;25650:13;25606:63;;;25599:70;;25686:60;25739:6;25686:60;;;25676:70;-1:-1;;25540:1;25533:9;25493:260;;25783:113;25866:24;25884:5;25866:24;;25903:152;26004:45;26024:24;26042:5;26024:24;;;26004:45;;26062:176;26170:62;26226:5;26170:62;;26245:347;;26357:39;26390:5;26357:39;;;26408:71;26472:6;26467:3;26408:71;;;26401:78;;26484:52;26529:6;26524:3;26517:4;26510:5;26506:16;26484:52;;;26557:29;26579:6;26557:29;;;26548:39;;;;26337:255;-1:-1;;;26337:255;26600:400;;26778:85;26860:2;26855:3;26778:85;;;26896:66;26876:87;;26991:2;26982:12;;26764:236;-1:-1;;26764:236;27009:364;;27169:67;27233:2;27228:3;27169:67;;;-1:-1;;;27249:87;;27364:2;27355:12;;27155:218;-1:-1;;27155:218;27382:364;;27542:67;27606:2;27601:3;27542:67;;;-1:-1;;;27622:87;;27737:2;27728:12;;27528:218;-1:-1;;27528:218;27755:364;;27915:67;27979:2;27974:3;27915:67;;;-1:-1;;;27995:87;;28110:2;28101:12;;27901:218;-1:-1;;27901:218;28128:364;;28288:67;28352:2;28347:3;28288:67;;;28388:66;28368:87;;28483:2;28474:12;;28274:218;-1:-1;;28274:218;28501:364;;28661:67;28725:2;28720:3;28661:67;;;-1:-1;;;28741:87;;28856:2;28847:12;;28647:218;-1:-1;;28647:218;28874:364;;29034:67;29098:2;29093:3;29034:67;;;-1:-1;;;29114:87;;29229:2;29220:12;;29020:218;-1:-1;;29020:218;29247:364;;29407:67;29471:2;29466:3;29407:67;;;-1:-1;;;29487:87;;29602:2;29593:12;;29393:218;-1:-1;;29393:218;29620:364;;29780:67;29844:2;29839:3;29780:67;;;-1:-1;;;29860:87;;29975:2;29966:12;;29766:218;-1:-1;;29766:218;29993:364;;30153:67;30217:2;30212:3;30153:67;;;-1:-1;;;30233:87;;30348:2;30339:12;;30139:218;-1:-1;;30139:218;30366:364;;30526:67;30590:2;30585:3;30526:67;;;-1:-1;;;30606:87;;30721:2;30712:12;;30512:218;-1:-1;;30512:218;30739:364;;30899:67;30963:2;30958:3;30899:67;;;-1:-1;;;30979:87;;31094:2;31085:12;;30885:218;-1:-1;;30885:218;31112:364;;31272:67;31336:2;31331:3;31272:67;;;-1:-1;;;31352:87;;31467:2;31458:12;;31258:218;-1:-1;;31258:218;31485:364;;31645:67;31709:2;31704:3;31645:67;;;-1:-1;;;31725:87;;31840:2;31831:12;;31631:218;-1:-1;;31631:218;31858:364;;32018:67;32082:2;32077:3;32018:67;;;-1:-1;;;32098:87;;32213:2;32204:12;;32004:218;-1:-1;;32004:218;32231:364;;32391:67;32455:2;32450:3;32391:67;;;-1:-1;;;32471:87;;32586:2;32577:12;;32377:218;-1:-1;;32377:218;32604:364;;32764:67;32828:2;32823:3;32764:67;;;-1:-1;;;32844:87;;32959:2;32950:12;;32750:218;-1:-1;;32750:218;32977:364;;33137:67;33201:2;33196:3;33137:67;;;-1:-1;;;33217:87;;33332:2;33323:12;;33123:218;-1:-1;;33123:218;33350:364;;33510:67;33574:2;33569:3;33510:67;;;33610:66;33590:87;;33705:2;33696:12;;33496:218;-1:-1;;33496:218;33723:364;;33883:67;33947:2;33942:3;33883:67;;;-1:-1;;;33963:87;;34078:2;34069:12;;33869:218;-1:-1;;33869:218;34325:107;34404:22;34420:5;34404:22;;34439:511;;34666:148;34810:3;34666:148;;;34659:155;;34825:75;34896:3;34887:6;34825:75;;;-1:-1;34922:2;34913:12;;34647:303;-1:-1;34647:303;34957:1331;35395:3;35380:19;;35410:87;35384:9;35470:6;35410:87;;;35545:9;35539:4;35535:20;35530:2;35519:9;35515:18;35508:48;35570:124;35689:4;35680:6;35570:124;;;35562:132;;35742:9;35736:4;35732:20;35727:2;35716:9;35712:18;35705:48;35767:108;35870:4;35861:6;35767:108;;;35759:116;;35923:9;35917:4;35913:20;35908:2;35897:9;35893:18;35886:48;35948:78;36021:4;36012:6;35948:78;;;35940:86;;36037:73;36105:3;36094:9;36090:19;36081:6;36037:73;;;36121;36189:3;36178:9;36174:19;36165:6;36121:73;;;36205;36273:3;36262:9;36258:19;36249:6;36205:73;;36295:1443;36761:3;36746:19;;36776:87;36750:9;36836:6;36776:87;;;36911:9;36905:4;36901:20;36896:2;36885:9;36881:18;36874:48;36936:124;37055:4;37046:6;36936:124;;;36928:132;;37108:9;37102:4;37098:20;37093:2;37082:9;37078:18;37071:48;37133:108;37236:4;37227:6;37133:108;;;37125:116;;37289:9;37283:4;37279:20;37274:2;37263:9;37259:18;37252:48;37314:78;37387:4;37378:6;37314:78;;;37306:86;;37403:73;37471:3;37460:9;37456:19;37447:6;37403:73;;;37487;37555:3;37544:9;37540:19;37531:6;37487:73;;;37571;37639:3;37628:9;37624:19;37615:6;37571:73;;;37655;37723:3;37712:9;37708:19;37699:6;37655:73;;37745:467;37935:2;37920:18;;37949:87;37924:9;38009:6;37949:87;;;38047:72;38115:2;38104:9;38100:18;38091:6;38047:72;;;38130;38198:2;38187:9;38183:18;38174:6;38130:72;;38219:727;38487:3;38472:19;;38502:87;38476:9;38562:6;38502:87;;;38600:72;38668:2;38657:9;38653:18;38644:6;38600:72;;;38683;38751:2;38740:9;38736:18;38727:6;38683:72;;;38803:9;38797:4;38793:20;38788:2;38777:9;38773:18;38766:48;38828:108;38931:4;38922:6;38828:108;;;38820:116;38458:488;-1:-1;;;;;;38458:488;38953:1749;39520:3;39505:19;;39535:71;39509:9;39579:6;39535:71;;;39654:9;39648:4;39644:20;39639:2;39628:9;39624:18;39617:48;39679:131;39805:4;39679:131;;;39671:139;;39821:72;39889:2;39878:9;39874:18;39865:6;39821:72;;;39904;39972:2;39961:9;39957:18;39948:6;39904:72;;;40025:9;40019:4;40015:20;40009:3;39998:9;39994:19;39987:49;40050:124;40169:4;40160:6;40050:124;;;40042:132;;40223:9;40217:4;40213:20;40207:3;40196:9;40192:19;40185:49;40248:124;40367:4;40358:6;40248:124;;;40240:132;;40421:9;40415:4;40411:20;40405:3;40394:9;40390:19;40383:49;40446:78;40519:4;40510:6;40446:78;;;40438:86;;40535:73;40603:3;40592:9;40588:19;40579:6;40535:73;;;40619;40687:3;40676:9;40672:19;40663:6;40619:73;;40709:1113;41090:3;41075:19;;41105:71;41079:9;41149:6;41105:71;;;41224:9;41218:4;41214:20;41209:2;41198:9;41194:18;41187:48;41249:131;41375:4;41249:131;;;41241:139;;41391:72;41459:2;41448:9;41444:18;41435:6;41391:72;;;41474;41542:2;41531:9;41527:18;41518:6;41474:72;;;41595:9;41589:4;41585:20;41579:3;41568:9;41564:19;41557:49;41620:108;41723:4;41714:6;41620:108;;;41612:116;;41739:73;41807:3;41796:9;41792:19;41783:6;41739:73;;41829:1113;42210:3;42195:19;;42225:71;42199:9;42269:6;42225:71;;;42344:9;42338:4;42334:20;42329:2;42318:9;42314:18;42307:48;42369:131;42495:4;42369:131;;;42361:139;;42511:72;42579:2;42568:9;42564:18;42555:6;42511:72;;;42594;42662:2;42651:9;42647:18;42638:6;42594:72;;;42715:9;42709:4;42705:20;42699:3;42688:9;42684:19;42677:49;42740:108;42843:4;42834:6;42740:108;;42949:1113;43330:3;43315:19;;43345:71;43319:9;43389:6;43345:71;;;43464:9;43458:4;43454:20;43449:2;43438:9;43434:18;43427:48;43489:131;43615:4;43489:131;;44069:941;44392:3;44377:19;;44407:71;44381:9;44451:6;44407:71;;;44526:9;44520:4;44516:20;44511:2;44500:9;44496:18;44489:48;44551:131;44677:4;44551:131;;;44543:139;;44693:72;44761:2;44750:9;44746:18;44737:6;44693:72;;;44813:9;44807:4;44803:20;44798:2;44787:9;44783:18;44776:48;44838:78;44911:4;44902:6;44838:78;;;44830:86;;44927:73;44995:3;44984:9;44980:19;44971:6;44927:73;;;44363:647;;;;;;;;45017:853;45320:3;45305:19;;45335:71;45309:9;45379:6;45335:71;;;45454:9;45448:4;45444:20;45439:2;45428:9;45424:18;45417:48;45479:131;45605:4;45479:131;;;45471:139;;45621:72;45689:2;45678:9;45674:18;45665:6;45621:72;;;45704;45772:2;45761:9;45757:18;45748:6;45704:72;;;45787:73;45855:3;45844:9;45840:19;45831:6;45787:73;;45877:1109;46252:3;46237:19;;46267:71;46241:9;46311:6;46267:71;;;46386:9;46380:4;46376:20;46371:2;46360:9;46356:18;46349:48;46411:131;46537:4;46411:131;;;46403:139;;46553:72;46621:2;46610:9;46606:18;46597:6;46553:72;;;46636;46704:2;46693:9;46689:18;46680:6;46636:72;;;46719:73;46787:3;46776:9;46772:19;46763:6;46719:73;;;46803:89;46887:3;46876:9;46872:19;46863:6;46803:89;;;46903:73;46971:3;46960:9;46956:19;46947:6;46903:73;;;46223:763;;;;;;;;;;46993:1053;47344:3;47329:19;;47359:71;47333:9;47403:6;47359:71;;;47478:9;47472:4;47468:20;47463:2;47452:9;47448:18;47441:48;47503:131;47629:4;47503:131;;;47495:139;;47645:72;47713:2;47702:9;47698:18;47689:6;47645:72;;;47728;47796:2;47785:9;47781:18;47772:6;47728:72;;;47849:9;47843:4;47839:20;47833:3;47822:9;47818:19;47811:49;47874:78;47947:4;47938:6;47874:78;;48053:1233;48470:3;48455:19;;48485:71;48459:9;48529:6;48485:71;;;48604:9;48598:4;48594:20;48589:2;48578:9;48574:18;48567:48;48629:131;48755:4;48629:131;;;48621:139;;48771:72;48839:2;48828:9;48824:18;48815:6;48771:72;;;48891:9;48885:4;48881:20;48876:2;48865:9;48861:18;48854:48;48916:124;49035:4;49026:6;48916:124;;;48908:132;;49089:9;49083:4;49079:20;49073:3;49062:9;49058:19;49051:49;49114:78;49187:4;49178:6;49114:78;;49293:1717;49844:3;49829:19;;49859:71;49833:9;49903:6;49859:71;;;49978:9;49972:4;49968:20;49963:2;49952:9;49948:18;49941:48;50003:131;50129:4;50003:131;;;49995:139;;50182:9;50176:4;50172:20;50167:2;50156:9;50152:18;50145:48;50207:124;50326:4;50317:6;50207:124;;;50199:132;;50379:9;50373:4;50369:20;50364:2;50353:9;50349:18;50342:48;50404:108;50507:4;50498:6;50404:108;;;50396:116;;50561:9;50555:4;50551:20;50545:3;50534:9;50530:19;50523:49;50586:78;50659:4;50650:6;50586:78;;;50578:86;;50675:73;50743:3;50732:9;50728:19;50719:6;50675:73;;;50759;50827:3;50816:9;50812:19;50803:6;50759:73;;;50843;50911:3;50900:9;50896:19;50887:6;50843:73;;51017:965;51348:3;51333:19;;51363:71;51337:9;51407:6;51363:71;;;51482:9;51476:4;51472:20;51467:2;51456:9;51452:18;51445:48;51507:131;51633:4;51507:131;;;51499:139;;51649:72;51717:2;51706:9;51702:18;51693:6;51649:72;;;51732;51800:2;51789:9;51785:18;51776:6;51732:72;;;51815:73;51883:3;51872:9;51868:19;51859:6;51815:73;;;51899;51967:3;51956:9;51952:19;51943:6;51899:73;;51989:1109;52364:3;52349:19;;52379:71;52353:9;52423:6;52379:71;;;52498:9;52492:4;52488:20;52483:2;52472:9;52468:18;52461:48;52523:131;52649:4;52523:131;;53105:853;53408:3;53393:19;;53423:71;53397:9;53467:6;53423:71;;;53542:9;53536:4;53532:20;53527:2;53516:9;53512:18;53505:48;53567:131;53693:4;53567:131;;53965:1225;54374:3;54359:19;;54389:71;54363:9;54433:6;54389:71;;;54508:9;54502:4;54498:20;54493:2;54482:9;54478:18;54471:48;54533:131;54659:4;54533:131;;;54525:139;;54675:72;54743:2;54732:9;54728:18;54719:6;54675:72;;;54758;54826:2;54815:9;54811:18;54802:6;54758:72;;;54841:73;54909:3;54898:9;54894:19;54885:6;54841:73;;;54963:9;54957:4;54953:20;54947:3;54936:9;54932:19;54925:49;54988:108;55091:4;55082:6;54988:108;;;54980:116;;55107:73;55175:3;55164:9;55160:19;55151:6;55107:73;;55197:1829;55776:3;55761:19;;55791:71;55765:9;55835:6;55791:71;;;55910:9;55904:4;55900:20;55895:2;55884:9;55880:18;55873:48;55935:131;56061:4;55935:131;;;55927:139;;56114:9;56108:4;56104:20;56099:2;56088:9;56084:18;56077:48;56139:124;56258:4;56249:6;56139:124;;;56131:132;;56311:9;56305:4;56301:20;56296:2;56285:9;56281:18;56274:48;56336:108;56439:4;56430:6;56336:108;;;56328:116;;56493:9;56487:4;56483:20;56477:3;56466:9;56462:19;56455:49;56518:78;56591:4;56582:6;56518:78;;;56510:86;;56607:73;56675:3;56664:9;56660:19;56651:6;56607:73;;;56691;56759:3;56748:9;56744:19;56735:6;56691:73;;;56775;56843:3;56832:9;56828:19;56819:6;56775:73;;;56859;56927:3;56916:9;56912:19;56903:6;56859:73;;;56943;57011:3;57000:9;56996:19;56987:6;56943:73;;;55747:1279;;;;;;;;;;;;;57033:1605;57556:3;57541:19;;57571:71;57545:9;57615:6;57571:71;;;57690:9;57684:4;57680:20;57675:2;57664:9;57660:18;57653:48;57715:131;57841:4;57715:131;;;57707:139;;57857:72;57925:2;57914:9;57910:18;57901:6;57857:72;;;57977:9;57971:4;57967:20;57962:2;57951:9;57947:18;57940:48;58002:124;58121:4;58112:6;58002:124;;;57994:132;;58175:9;58169:4;58165:20;58159:3;58148:9;58144:19;58137:49;58200:78;58273:4;58264:6;58200:78;;;58192:86;;58289:73;58357:3;58346:9;58342:19;58333:6;58289:73;;;58411:9;58405:4;58401:20;58395:3;58384:9;58380:19;58373:49;58436:108;58539:4;58530:6;58436:108;;;58428:116;;58555:73;58623:3;58612:9;58608:19;58599:6;58555:73;;58645:1345;59090:3;59075:19;;59105:71;59079:9;59149:6;59105:71;;;59224:9;59218:4;59214:20;59209:2;59198:9;59194:18;59187:48;59249:131;59375:4;59249:131;;;59241:139;;59391:72;59459:2;59448:9;59444:18;59435:6;59391:72;;;59474;59542:2;59531:9;59527:18;59518:6;59474:72;;;59595:9;59589:4;59585:20;59579:3;59568:9;59564:19;59557:49;59620:124;59739:4;59730:6;59620:124;;;59612:132;;59793:9;59787:4;59783:20;59777:3;59766:9;59762:19;59755:49;59818:78;59891:4;59882:6;59818:78;;59997:1001;60350:3;60335:19;;60365:71;60339:9;60409:6;60365:71;;;60484:9;60478:4;60474:20;60469:2;60458:9;60454:18;60447:48;60509:131;60635:4;60509:131;;;60501:139;;60651:72;60719:2;60708:9;60704:18;60695:6;60651:72;;;60771:9;60765:4;60761:20;60756:2;60745:9;60741:18;60734:48;60796:108;60899:4;60890:6;60796:108;;61005:1145;61402:3;61387:19;;61417:71;61391:9;61461:6;61417:71;;;61536:9;61530:4;61526:20;61521:2;61510:9;61506:18;61499:48;61561:131;61687:4;61561:131;;;61553:139;;61703:72;61771:2;61760:9;61756:18;61747:6;61703:72;;;61786;61854:2;61843:9;61839:18;61830:6;61786:72;;;61907:9;61901:4;61897:20;61891:3;61880:9;61876:19;61869:49;61932:124;62051:4;62042:6;61932:124;;62157:815;62445:3;62430:19;;62460:71;62434:9;62504:6;62460:71;;;62542:72;62610:2;62599:9;62595:18;62586:6;62542:72;;;62662:9;62656:4;62652:20;62647:2;62636:9;62632:18;62625:48;62687:124;62806:4;62797:6;62687:124;;;62679:132;;62859:9;62853:4;62849:20;62844:2;62833:9;62829:18;62822:48;62884:78;62957:4;62948:6;62884:78;;62979:1187;63373:3;63358:19;;63388:71;63362:9;63432:6;63388:71;;;63470:72;63538:2;63527:9;63523:18;63514:6;63470:72;;;63590:9;63584:4;63580:20;63575:2;63564:9;63560:18;63553:48;63615:124;63734:4;63725:6;63615:124;;;63607:132;;63787:9;63781:4;63777:20;63772:2;63761:9;63757:18;63750:48;63812:78;63885:4;63876:6;63812:78;;;63804:86;;63901:73;63969:3;63958:9;63954:19;63945:6;63901:73;;;64023:9;64017:4;64013:20;64007:3;63996:9;63992:19;63985:49;64048:108;64151:4;64142:6;64048:108;;64173:583;64397:2;64382:18;;64411:71;64386:9;64455:6;64411:71;;;64493:72;64561:2;64550:9;64546:18;64537:6;64493:72;;;64613:9;64607:4;64603:20;64598:2;64587:9;64583:18;64576:48;64638:108;64741:4;64732:6;64638:108;;64763:523;64957:2;64942:18;;64971:71;64946:9;65015:6;64971:71;;;65053:72;65121:2;65110:9;65106:18;65097:6;65053:72;;;65173:9;65167:4;65163:20;65158:2;65147:9;65143:18;65136:48;65198:78;65271:4;65262:6;65198:78;;65735:695;65987:3;65972:19;;66002:71;65976:9;66046:6;66002:71;;;66084:72;66152:2;66141:9;66137:18;66128:6;66084:72;;;66167;66235:2;66224:9;66220:18;66211:6;66167:72;;;66287:9;66281:4;66277:20;66272:2;66261:9;66257:18;66250:48;66312:108;66415:4;66406:6;66312:108;;66437:727;66705:3;66690:19;;66720:71;66694:9;66764:6;66720:71;;;66802:72;66870:2;66859:9;66855:18;66846:6;66802:72;;;66885;66953:2;66942:9;66938:18;66929:6;66885:72;;;67005:9;66999:4;66995:20;66990:2;66979:9;66975:18;66968:48;67030:124;67149:4;67140:6;67030:124;;67171:1331;67609:3;67594:19;;67624:71;67598:9;67668:6;67624:71;;;67706:72;67774:2;67763:9;67759:18;67750:6;67706:72;;;67789;67857:2;67846:9;67842:18;67833:6;67789:72;;;67909:9;67903:4;67899:20;67894:2;67883:9;67879:18;67872:48;67934:124;68053:4;68044:6;67934:124;;;67926:132;;68107:9;68101:4;68097:20;68091:3;68080:9;68076:19;68069:49;68132:124;68251:4;68242:6;68132:124;;;68124:132;;68305:9;68299:4;68295:20;68289:3;68278:9;68274:19;68267:49;68330:78;68403:4;68394:6;68330:78;;;68322:86;;68419:73;68487:3;68476:9;68472:19;68463:6;68419:73;;68509:927;68825:3;68810:19;;68840:71;68814:9;68884:6;68840:71;;;68922:72;68990:2;68979:9;68975:18;68966:6;68922:72;;;69005;69073:2;69062:9;69058:18;69049:6;69005:72;;;69125:9;69119:4;69115:20;69110:2;69099:9;69095:18;69088:48;69150:124;69269:4;69260:6;69150:124;;;69142:132;;69323:9;69317:4;69313:20;69307:3;69296:9;69292:19;69285:49;69348:78;69421:4;69412:6;69348:78;;70145:635;70367:3;70352:19;;70382:71;70356:9;70426:6;70382:71;;;70464:72;70532:2;70521:9;70517:18;70508:6;70464:72;;;70547;70615:2;70604:9;70600:18;70591:6;70547:72;;;70667:9;70661:4;70657:20;70652:2;70641:9;70637:18;70630:48;70692:78;70765:4;70756:6;70692:78;;70787:547;70989:3;70974:19;;71004:71;70978:9;71048:6;71004:71;;;71086:72;71154:2;71143:9;71139:18;71130:6;71086:72;;;71169;71237:2;71226:9;71222:18;71213:6;71169:72;;;71252;71320:2;71309:9;71305:18;71296:6;71252:72;;71341:691;71587:3;71572:19;;71602:71;71576:9;71646:6;71602:71;;;71684:72;71752:2;71741:9;71737:18;71728:6;71684:72;;;71767;71835:2;71824:9;71820:18;71811:6;71767:72;;;71850;71918:2;71907:9;71903:18;71894:6;71850:72;;;71933:89;72017:3;72006:9;72002:19;71993:6;71933:89;;72039:807;72319:3;72304:19;;72334:71;72308:9;72378:6;72334:71;;;72416:72;72484:2;72473:9;72469:18;72460:6;72416:72;;;72499;72567:2;72556:9;72552:18;72543:6;72499:72;;;72582;72650:2;72639:9;72635:18;72626:6;72582:72;;;72703:9;72697:4;72693:20;72687:3;72676:9;72672:19;72665:49;72728:108;72831:4;72822:6;72728:108;;72853:539;73051:3;73036:19;;73066:71;73040:9;73110:6;73066:71;;;73148:68;73212:2;73201:9;73197:18;73188:6;73148:68;;73399:263;73542:2;73527:18;;73556:96;73531:9;73625:6;73556:96;;73669:213;73787:2;73772:18;;73801:71;73776:9;73845:6;73801:71;;73889:256;73951:2;73945:9;73977:17;;;-1:-1;;;;;74037:34;;74073:22;;;74034:62;74031:2;;;74109:1;74106;74099:12;74031:2;74125;74118:22;73929:216;;-1:-1;73929:216;74152:304;;-1:-1;;;;;74303:6;74300:30;74297:2;;;74343:1;74340;74333:12;74297:2;-1:-1;74378:4;74366:17;;;74431:15;;74234:222;75093:321;;-1:-1;;;;;75228:6;75225:30;75222:2;;;75268:1;75265;75258:12;75222:2;-1:-1;75399:4;75335;75312:17;;;;-1:-1;;75308:33;75389:15;;75159:255;75750:151;75874:4;75865:14;;75822:79;76232:137;76335:12;;76306:63;77155:178;77273:19;;;77322:4;77313:14;;77266:67;77896:145;78032:3;78010:31;-1:-1;78010:31;78049:91;;78111:24;78129:5;78111:24;;78253:72;78315:5;78298:27;78332:121;-1:-1;;;;;78394:54;;78377:76;78539:81;78610:4;78599:16;;78582:38;78627:171;;78731:62;78787:5;78731:62;;78946:145;79027:6;79022:3;79017;79004:30;-1:-1;79083:1;79065:16;;79058:27;78997:94;79100:268;79165:1;79172:101;79186:6;79183:1;79180:13;79172:101;;;79253:11;;;79247:18;79234:11;;;79227:39;79208:2;79201:10;79172:101;;;79288:6;79285:1;79282:13;79279:2;;;79353:1;79344:6;79339:3;79335:16;79328:27;79279:2;79149:219;;;;;79457:97;79545:2;79525:14;-1:-1;;79521:28;;79505:49;79562:117;79631:24;79649:5;79631:24;;;79624:5;79621:35;79611:2;;79670:1;79667;79660:12;79611:2;79605:74;;79826:117;79895:24;79913:5;79895:24;", - "source": "pragma solidity >=0.5.0 < 0.6.0;\r\npragma experimental ABIEncoderV2;\r\n\r\nimport \"./StandardBounties.sol\";\r\n\r\n\r\ncontract BountiesMetaTxRelayer {\r\n\r\n // This contract serves as a relayer for meta txns being sent to the Bounties contract\r\n\r\n StandardBounties public bountiesContract;\r\n mapping(address => uint) public replayNonce;\r\n\r\n\r\n constructor(address _contract) public {\r\n bountiesContract = StandardBounties(_contract);\r\n }\r\n\r\n function metaIssueBounty(\r\n bytes memory signature,\r\n address payable[] memory _issuers,\r\n address[] memory _approvers,\r\n string memory _data,\r\n uint _deadline,\r\n address _token,\r\n uint _tokenVersion,\r\n uint _nonce)\r\n public\r\n returns (uint)\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaIssueBounty\",\r\n _issuers,\r\n _approvers,\r\n _data,\r\n _deadline,\r\n _token,\r\n _tokenVersion,\r\n _nonce));\r\n address signer = getSigner(metaHash, signature);\r\n\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n return bountiesContract.issueBounty(address(uint160(signer)),\r\n _issuers,\r\n _approvers,\r\n _data,\r\n _deadline,\r\n _token,\r\n _tokenVersion);\r\n }\r\n\r\n function metaIssueAndContribute(\r\n bytes memory signature,\r\n address payable[] memory _issuers,\r\n address[] memory _approvers,\r\n string memory _data,\r\n uint _deadline,\r\n address _token,\r\n uint _tokenVersion,\r\n uint _depositAmount,\r\n uint _nonce)\r\n public\r\n payable\r\n returns (uint)\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaIssueAndContribute\",\r\n _issuers,\r\n _approvers,\r\n _data,\r\n _deadline,\r\n _token,\r\n _tokenVersion,\r\n _depositAmount,\r\n _nonce));\r\n address signer = getSigner(metaHash, signature);\r\n\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n if (msg.value > 0){\r\n return bountiesContract.issueAndContribute.value(msg.value)(address(uint160(signer)),\r\n _issuers,\r\n _approvers,\r\n _data,\r\n _deadline,\r\n _token,\r\n _tokenVersion,\r\n _depositAmount);\r\n } else {\r\n return bountiesContract.issueAndContribute(address(uint160(signer)),\r\n _issuers,\r\n _approvers,\r\n _data,\r\n _deadline,\r\n _token,\r\n _tokenVersion,\r\n _depositAmount);\r\n }\r\n\r\n }\r\n\r\n function metaContribute(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _amount,\r\n uint _nonce)\r\n public\r\n payable\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaContribute\",\r\n _bountyId,\r\n _amount,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n if (msg.value > 0){\r\n bountiesContract.contribute.value(msg.value)(address(uint160(signer)), _bountyId, _amount);\r\n } else {\r\n bountiesContract.contribute(address(uint160(signer)), _bountyId, _amount);\r\n }\r\n }\r\n\r\n\r\n function metaRefundContribution(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _contributionId,\r\n uint _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaRefundContribution\",\r\n _bountyId,\r\n _contributionId,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.refundContribution(signer, _bountyId, _contributionId);\r\n }\r\n\r\n function metaRefundMyContributions(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint[] memory _contributionIds,\r\n uint _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaRefundMyContributions\",\r\n _bountyId,\r\n _contributionIds,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.refundMyContributions(signer, _bountyId, _contributionIds);\r\n }\r\n\r\n function metaRefundContributions(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint[] memory _contributionIds,\r\n uint _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaRefundContributions\",\r\n _bountyId,\r\n _issuerId,\r\n _contributionIds,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.refundContributions(signer, _bountyId, _issuerId, _contributionIds);\r\n }\r\n\r\n function metaDrainBounty(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint[] memory _amounts,\r\n uint _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaDrainBounty\",\r\n _bountyId,\r\n _issuerId,\r\n _amounts,\r\n _nonce));\r\n address payable signer = address(uint160(getSigner(metaHash, _signature)));\r\n\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.drainBounty(signer, _bountyId, _issuerId, _amounts);\r\n }\r\n\r\n function metaPerformAction(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n string memory _data,\r\n uint256 _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaPerformAction\",\r\n _bountyId,\r\n _data,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.performAction(signer, _bountyId, _data);\r\n }\r\n\r\n function metaFulfillBounty(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n address payable[] memory _fulfillers,\r\n string memory _data,\r\n uint256 _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaFulfillBounty\",\r\n _bountyId,\r\n _fulfillers,\r\n _data,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.fulfillBounty(signer, _bountyId, _fulfillers, _data);\r\n }\r\n\r\n function metaUpdateFulfillment(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _fulfillmentId,\r\n address payable[] memory _fulfillers,\r\n string memory _data,\r\n uint256 _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaUpdateFulfillment\",\r\n _bountyId,\r\n _fulfillmentId,\r\n _fulfillers,\r\n _data,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.updateFulfillment(signer, _bountyId, _fulfillmentId, _fulfillers, _data);\r\n }\r\n\r\n function metaAcceptFulfillment(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _fulfillmentId,\r\n uint _approverId,\r\n uint[] memory _tokenAmounts,\r\n uint256 _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaAcceptFulfillment\",\r\n _bountyId,\r\n _fulfillmentId,\r\n _approverId,\r\n _tokenAmounts,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.acceptFulfillment(signer,\r\n _bountyId,\r\n _fulfillmentId,\r\n _approverId,\r\n _tokenAmounts);\r\n }\r\n\r\n function metaFulfillAndAccept(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n address payable[] memory _fulfillers,\r\n string memory _data,\r\n uint _approverId,\r\n uint[] memory _tokenAmounts,\r\n uint256 _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaFulfillAndAccept\",\r\n _bountyId,\r\n _fulfillers,\r\n _data,\r\n _approverId,\r\n _tokenAmounts,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.fulfillAndAccept(signer,\r\n _bountyId,\r\n _fulfillers,\r\n _data,\r\n _approverId,\r\n _tokenAmounts);\r\n }\r\n\r\n function metaChangeBounty(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n address payable[] memory _issuers,\r\n address payable[] memory _approvers,\r\n string memory _data,\r\n uint _deadline,\r\n uint256 _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaChangeBounty\",\r\n _bountyId,\r\n _issuerId,\r\n _issuers,\r\n _approvers,\r\n _data,\r\n _deadline,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.changeBounty(signer,\r\n _bountyId,\r\n _issuerId,\r\n _issuers,\r\n _approvers,\r\n _data,\r\n _deadline);\r\n }\r\n\r\n function metaChangeIssuer(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint _issuerIdToChange,\r\n address payable _newIssuer,\r\n uint256 _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaChangeIssuer\",\r\n _bountyId,\r\n _issuerId,\r\n _issuerIdToChange,\r\n _newIssuer,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.changeIssuer(signer,\r\n _bountyId,\r\n _issuerId,\r\n _issuerIdToChange,\r\n _newIssuer);\r\n }\r\n\r\n function metaChangeApprover(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint _approverId,\r\n address payable _approver,\r\n uint256 _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaChangeApprover\",\r\n _bountyId,\r\n _issuerId,\r\n _approverId,\r\n _approver,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.changeApprover(signer,\r\n _bountyId,\r\n _issuerId,\r\n _approverId,\r\n _approver);\r\n }\r\n\r\n function metaChangeData(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n string memory _data,\r\n uint256 _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaChangeData\",\r\n _bountyId,\r\n _issuerId,\r\n _data,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.changeData(signer,\r\n _bountyId,\r\n _issuerId,\r\n _data);\r\n }\r\n\r\n function metaChangeDeadline(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint _deadline,\r\n uint256 _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaChangeDeadline\",\r\n _bountyId,\r\n _issuerId,\r\n _deadline,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.changeDeadline(signer,\r\n _bountyId,\r\n _issuerId,\r\n _deadline);\r\n }\r\n\r\n function metaAddIssuers(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n address payable[] memory _issuers,\r\n uint256 _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaAddIssuers\",\r\n _bountyId,\r\n _issuerId,\r\n _issuers,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.addIssuers(signer,\r\n _bountyId,\r\n _issuerId,\r\n _issuers);\r\n }\r\n\r\n function metaAddApprovers(\r\n bytes memory _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n address[] memory _approvers,\r\n uint256 _nonce)\r\n public\r\n {\r\n bytes32 metaHash = keccak256(abi.encode(address(this),\r\n \"metaAddApprovers\",\r\n _bountyId,\r\n _issuerId,\r\n _approvers,\r\n _nonce));\r\n address signer = getSigner(metaHash, _signature);\r\n //make sure signer doesn't come back as 0x0\r\n require(signer != address(0));\r\n require(_nonce == replayNonce[signer]);\r\n\r\n //increase the nonce to prevent replay attacks\r\n replayNonce[signer]++;\r\n\r\n bountiesContract.addApprovers(signer,\r\n _bountyId,\r\n _issuerId,\r\n _approvers);\r\n }\r\n\r\n function getSigner(\r\n bytes32 _hash,\r\n bytes memory _signature)\r\n internal\r\n pure\r\n returns (address)\r\n {\r\n bytes32 r;\r\n bytes32 s;\r\n uint8 v;\r\n if (_signature.length != 65){\r\n return address(0);\r\n }\r\n assembly {\r\n r := mload(add(_signature, 32))\r\n s := mload(add(_signature, 64))\r\n v := byte(0, mload(add(_signature, 96)))\r\n }\r\n if (v < 27){\r\n v += 27;\r\n }\r\n if (v != 27 && v != 28){\r\n return address(0);\r\n } else {\r\n return ecrecover(keccak256(abi.encodePacked(\"\\x19Ethereum Signed Message:\\n32\", _hash)), v, r, s );\r\n }\r\n }\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\BountiesMetaTxRelayer.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/BountiesMetaTxRelayer.sol", - "exportedSymbols": { - "BountiesMetaTxRelayer": [ - 2505 - ] - }, - "id": 2506, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1012, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:4" - }, - { - "id": 1013, - "literals": [ - "experimental", - "ABIEncoderV2" - ], - "nodeType": "PragmaDirective", - "src": "34:33:4" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/StandardBounties.sol", - "file": "./StandardBounties.sol", - "id": 1014, - "nodeType": "ImportDirective", - "scope": 2506, - "sourceUnit": 4513, - "src": "71:32:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2505, - "linearizedBaseContracts": [ - 2505 - ], - "name": "BountiesMetaTxRelayer", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1016, - "name": "bountiesContract", - "nodeType": "VariableDeclaration", - "scope": 2505, - "src": "239:40:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - }, - "typeName": { - "contractScope": null, - "id": 1015, - "name": "StandardBounties", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4512, - "src": "239:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1020, - "name": "replayNonce", - "nodeType": "VariableDeclaration", - "scope": 2505, - "src": "284:43:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 1019, - "keyType": { - "id": 1017, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "292:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "284:24:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 1018, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "303:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 1031, - "nodeType": "Block", - "src": "374:59:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1029, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1025, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "381:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1027, - "name": "_contract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1022, - "src": "417:9:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1026, - "name": "StandardBounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4512, - "src": "400:16:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_StandardBounties_$4512_$", - "typeString": "type(contract StandardBounties)" - } - }, - "id": 1028, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "400:27:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "src": "381:46:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1030, - "nodeType": "ExpressionStatement", - "src": "381:46:4" - } - ] - }, - "documentation": null, - "id": 1032, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1023, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1022, - "name": "_contract", - "nodeType": "VariableDeclaration", - "scope": 1032, - "src": "348:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1021, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "348:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "347:19:4" - }, - "returnParameters": { - "id": 1024, - "nodeType": "ParameterList", - "parameters": [], - "src": "374:0:4" - }, - "scope": 2505, - "src": "336:97:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1117, - "nodeType": "Block", - "src": "716:1217:4", - "statements": [ - { - "assignments": [ - 1056 - ], - "declarations": [ - { - "constant": false, - "id": 1056, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 1117, - "src": "723:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1055, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "723:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1073, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1061, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "771:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "763:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "763:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d6574614973737565426f756e7479", - "id": 1063, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "829:17:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_aa276ab5ec69bfbc25fe6788e9d93617d817f695e4ebfc350a16976fa2655d35", - "typeString": "literal_string \"metaIssueBounty\"" - }, - "value": "metaIssueBounty" - }, - { - "argumentTypes": null, - "id": 1064, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1037, - "src": "899:8:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1065, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "960:10:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 1066, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1042, - "src": "1023:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1067, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1044, - "src": "1081:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1068, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "1143:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1069, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1048, - "src": "1202:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1050, - "src": "1268:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_aa276ab5ec69bfbc25fe6788e9d93617d817f695e4ebfc350a16976fa2655d35", - "typeString": "literal_string \"metaIssueBounty\"" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1058, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "752:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1059, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "752:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "752:523:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1057, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "742:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "742:534:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "723:553:4" - }, - { - "assignments": [ - 1075 - ], - "declarations": [ - { - "constant": false, - "id": 1075, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 1117, - "src": "1283:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1074, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1283:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1080, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1077, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "1310:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1078, - "name": "signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1034, - "src": "1320:9:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1076, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "1300:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1300:30:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1283:47:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1086, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1082, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1075, - "src": "1396:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1084, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1414:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1083, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1406:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1085, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1406:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1396:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1081, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "1388:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1087, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1388:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1088, - "nodeType": "ExpressionStatement", - "src": "1388:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1090, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1050, - "src": "1432:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1091, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "1442:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1093, - "indexExpression": { - "argumentTypes": null, - "id": 1092, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1075, - "src": "1454:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1442:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1432:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1089, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "1424:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1095, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1424:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1096, - "nodeType": "ExpressionStatement", - "src": "1424:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1523:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1097, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "1523:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1099, - "indexExpression": { - "argumentTypes": null, - "id": 1098, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1075, - "src": "1535:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1523:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1101, - "nodeType": "ExpressionStatement", - "src": "1523:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1106, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1075, - "src": "1603:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1105, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1595:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": "uint160" - }, - "id": 1107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1595:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 1104, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1587:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1587:24:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1109, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1037, - "src": "1655:8:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1110, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "1707:10:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 1111, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1042, - "src": "1761:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1112, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1044, - "src": "1810:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1113, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "1863:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1114, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1048, - "src": "1913:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1102, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "1558:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "issueBounty", - "nodeType": "MemberAccess", - "referencedDeclaration": 2956, - "src": "1558:28:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256) external returns (uint256)" - } - }, - "id": 1115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1558:369:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1054, - "id": 1116, - "nodeType": "Return", - "src": "1551:376:4" - } - ] - }, - "documentation": null, - "id": 1118, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaIssueBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1051, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1034, - "name": "signature", - "nodeType": "VariableDeclaration", - "scope": 1118, - "src": "470:22:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1033, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "470:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1037, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 1118, - "src": "499:33:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 1035, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "499:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1036, - "length": null, - "nodeType": "ArrayTypeName", - "src": "499:17:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1040, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 1118, - "src": "539:27:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1038, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "539:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1039, - "length": null, - "nodeType": "ArrayTypeName", - "src": "539:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1042, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1118, - "src": "573:19:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1041, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "573:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1044, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 1118, - "src": "599:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1043, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "599:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1046, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1118, - "src": "620:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1045, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "620:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1048, - "name": "_tokenVersion", - "nodeType": "VariableDeclaration", - "scope": 1118, - "src": "641:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1047, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "641:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1050, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1118, - "src": "666:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1049, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "666:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "463:215:4" - }, - "returnParameters": { - "id": 1054, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1053, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1118, - "src": "705:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1052, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "705:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "704:6:4" - }, - "scope": 2505, - "src": "439:1494:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1234, - "nodeType": "Block", - "src": "2262:1987:4", - "statements": [ - { - "assignments": [ - 1144 - ], - "declarations": [ - { - "constant": false, - "id": 1144, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 1234, - "src": "2269:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1143, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2269:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1162, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1149, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "2317:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1148, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2309:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2309:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d6574614973737565416e64436f6e74726962757465", - "id": 1151, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2375:24:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d7582cbbdb7194126649dea0d2d2499e8980380297911f39d550880a6674f395", - "typeString": "literal_string \"metaIssueAndContribute\"" - }, - "value": "metaIssueAndContribute" - }, - { - "argumentTypes": null, - "id": 1152, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1123, - "src": "2452:8:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1153, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1126, - "src": "2513:10:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 1154, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1128, - "src": "2576:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1155, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1130, - "src": "2634:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1156, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1132, - "src": "2696:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1157, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1134, - "src": "2755:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1158, - "name": "_depositAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1136, - "src": "2821:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1159, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1138, - "src": "2888:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_d7582cbbdb7194126649dea0d2d2499e8980380297911f39d550880a6674f395", - "typeString": "literal_string \"metaIssueAndContribute\"" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1146, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "2298:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1147, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2298:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2298:597:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1145, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "2288:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2288:608:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2269:627:4" - }, - { - "assignments": [ - 1164 - ], - "declarations": [ - { - "constant": false, - "id": 1164, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 1234, - "src": "2903:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1163, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2903:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1169, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1166, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1144, - "src": "2930:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1167, - "name": "signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1120, - "src": "2940:9:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1165, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "2920:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2920:30:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2903:47:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1171, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3016:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3034:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1172, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3026:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1174, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3026:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3016:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1170, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "3008:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3008:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1177, - "nodeType": "ExpressionStatement", - "src": "3008:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1183, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1179, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1138, - "src": "3052:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1180, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "3062:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1182, - "indexExpression": { - "argumentTypes": null, - "id": 1181, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3074:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3062:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3052:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1178, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "3044:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3044:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1185, - "nodeType": "ExpressionStatement", - "src": "3044:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3143:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1186, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "3143:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1188, - "indexExpression": { - "argumentTypes": null, - "id": 1187, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3155:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3143:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1190, - "nodeType": "ExpressionStatement", - "src": "3143:21:4" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1191, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3177:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3177:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3189:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3177:13:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1232, - "nodeType": "Block", - "src": "3728:514:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1220, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3796:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1219, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3788:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": "uint160" - }, - "id": 1221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3788:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 1218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3780:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3780:24:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1223, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1123, - "src": "3856:8:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1224, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1126, - "src": "3916:10:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 1225, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1128, - "src": "3978:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1226, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1130, - "src": "4035:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1227, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1132, - "src": "4096:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1228, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1134, - "src": "4154:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1229, - "name": "_depositAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1136, - "src": "4219:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1216, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "3744:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "issueAndContribute", - "nodeType": "MemberAccess", - "referencedDeclaration": 3001, - "src": "3744:35:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256) payable external returns (uint256)" - } - }, - "id": 1230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3744:490:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1142, - "id": 1231, - "nodeType": "Return", - "src": "3737:497:4" - } - ] - }, - "id": 1233, - "nodeType": "IfStatement", - "src": "3173:1069:4", - "trueBody": { - "id": 1215, - "nodeType": "Block", - "src": "3191:531:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1203, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3276:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3268:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": "uint160" - }, - "id": 1204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3268:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 1201, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3260:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3260:24:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1206, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1123, - "src": "3336:8:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1207, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1126, - "src": "3396:10:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 1208, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1128, - "src": "3458:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1209, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1130, - "src": "3515:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1210, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1132, - "src": "3576:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1211, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1134, - "src": "3634:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1212, - "name": "_depositAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1136, - "src": "3699:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1198, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3249:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3249:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1195, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "3207:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "issueAndContribute", - "nodeType": "MemberAccess", - "referencedDeclaration": 3001, - "src": "3207:35:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256) payable external returns (uint256)" - } - }, - "id": 1197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3207:41:4", - "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$value_$", - "typeString": "function (uint256) returns (function (address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256) payable external returns (uint256))" - } - }, - "id": 1200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3207:52:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$value", - "typeString": "function (address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256) payable external returns (uint256)" - } - }, - "id": 1213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3207:507:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1142, - "id": 1214, - "nodeType": "Return", - "src": "3200:514:4" - } - ] - } - } - ] - }, - "documentation": null, - "id": 1235, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaIssueAndContribute", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1139, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1120, - "name": "signature", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "1977:22:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1977:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1123, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2006:33:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 1121, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1122, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2006:17:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1126, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2046:27:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1124, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2046:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1125, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2046:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1128, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2080:19:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1127, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2080:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1130, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2106:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1129, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2106:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1132, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2127:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1131, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2127:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1134, - "name": "_tokenVersion", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2148:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1133, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2148:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1136, - "name": "_depositAmount", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2173:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1135, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2173:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1138, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2199:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1137, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2199:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1970:241:4" - }, - "returnParameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2251:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1140, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2251:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2250:6:4" - }, - "scope": 2505, - "src": "1939:2310:4", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1325, - "nodeType": "Block", - "src": "4398:816:4", - "statements": [ - { - "assignments": [ - 1247 - ], - "declarations": [ - { - "constant": false, - "id": 1247, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 1325, - "src": "4405:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1246, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4405:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1260, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1252, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "4453:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1251, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4445:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4445:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d657461436f6e74726962757465", - "id": 1254, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4511:16:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7d76b93a2b426b4994ed488a90b484491fbd027f588de1d7e23a4267d0413fb2", - "typeString": "literal_string \"metaContribute\"" - }, - "value": "metaContribute" - }, - { - "argumentTypes": null, - "id": 1255, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1239, - "src": "4580:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1256, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "4642:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1257, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1243, - "src": "4702:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_7d76b93a2b426b4994ed488a90b484491fbd027f588de1d7e23a4267d0413fb2", - "typeString": "literal_string \"metaContribute\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1249, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "4434:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1250, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4434:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4434:275:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1248, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "4424:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4424:286:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4405:305:4" - }, - { - "assignments": [ - 1262 - ], - "declarations": [ - { - "constant": false, - "id": 1262, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 1325, - "src": "4717:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1261, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4717:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1267, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1264, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "4744:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1265, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4754:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1263, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "4734:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4734:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4717:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1269, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1262, - "src": "4831:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1271, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4849:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1270, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4841:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1272, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4841:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4831:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1268, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4823:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4823:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1275, - "nodeType": "ExpressionStatement", - "src": "4823:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1243, - "src": "4867:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1278, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "4877:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1280, - "indexExpression": { - "argumentTypes": null, - "id": 1279, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1262, - "src": "4889:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4877:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4867:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1276, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4859:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4859:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1283, - "nodeType": "ExpressionStatement", - "src": "4859:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4958:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1284, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "4958:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1286, - "indexExpression": { - "argumentTypes": null, - "id": 1285, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1262, - "src": "4970:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4958:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "4958:21:4" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "4992:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4992:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1291, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5004:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4992:13:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1323, - "nodeType": "Block", - "src": "5119:90:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1316, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1262, - "src": "5172:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5164:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": "uint160" - }, - "id": 1317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5164:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 1314, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5156:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5156:24:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1319, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1239, - "src": "5182:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1320, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "5193:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1311, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "5128:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "contribute", - "nodeType": "MemberAccess", - "referencedDeclaration": 3163, - "src": "5128:27:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_payable_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address payable,uint256,uint256) payable external" - } - }, - "id": 1321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5128:73:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1322, - "nodeType": "ExpressionStatement", - "src": "5128:73:4" - } - ] - }, - "id": 1324, - "nodeType": "IfStatement", - "src": "4988:221:4", - "trueBody": { - "id": 1310, - "nodeType": "Block", - "src": "5006:107:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1303, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1262, - "src": "5076:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5068:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": "uint160" - }, - "id": 1304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5068:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 1301, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5060:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5060:24:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1306, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1239, - "src": "5086:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1307, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "5097:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1298, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "5049:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5049:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1293, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "5015:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1296, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "contribute", - "nodeType": "MemberAccess", - "referencedDeclaration": 3163, - "src": "5015:27:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_payable_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address payable,uint256,uint256) payable external" - } - }, - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5015:33:4", - "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_address_payable_$_t_uint256_$_t_uint256_$returns$__$value_$", - "typeString": "function (uint256) returns (function (address payable,uint256,uint256) payable external)" - } - }, - "id": 1300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5015:44:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_payable_$_t_uint256_$_t_uint256_$returns$__$value", - "typeString": "function (address payable,uint256,uint256) payable external" - } - }, - "id": 1308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5015:90:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1309, - "nodeType": "ExpressionStatement", - "src": "5015:90:4" - } - ] - } - } - ] - }, - "documentation": null, - "id": 1326, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaContribute", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1244, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1237, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 1326, - "src": "4285:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1236, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4285:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1239, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 1326, - "src": "4315:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1238, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4315:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1241, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1326, - "src": "4336:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1240, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4336:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1243, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1326, - "src": "4355:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1242, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4355:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4278:89:4" - }, - "returnParameters": { - "id": 1245, - "nodeType": "ParameterList", - "parameters": [], - "src": "4398:0:4" - }, - "scope": 2505, - "src": "4255:959:4", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1388, - "nodeType": "Block", - "src": "5368:683:4", - "statements": [ - { - "assignments": [ - 1338 - ], - "declarations": [ - { - "constant": false, - "id": 1338, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 1388, - "src": "5375:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1337, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5375:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1351, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1343, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "5423:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1342, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5415:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5415:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d657461526566756e64436f6e747269627574696f6e", - "id": 1345, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5481:24:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c2f0a3ca9cbf2bed82817cc9072419ef9150d33bdcc6898ef7adc26aed37120a", - "typeString": "literal_string \"metaRefundContribution\"" - }, - "value": "metaRefundContribution" - }, - { - "argumentTypes": null, - "id": 1346, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "5558:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1347, - "name": "_contributionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "5620:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1348, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "5688:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_c2f0a3ca9cbf2bed82817cc9072419ef9150d33bdcc6898ef7adc26aed37120a", - "typeString": "literal_string \"metaRefundContribution\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1340, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "5404:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5404:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5404:291:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1339, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "5394:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5394:302:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5375:321:4" - }, - { - "assignments": [ - 1353 - ], - "declarations": [ - { - "constant": false, - "id": 1353, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 1388, - "src": "5703:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1352, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5703:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1358, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1355, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "5730:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1356, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "5740:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1354, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "5720:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5720:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5703:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1360, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1353, - "src": "5817:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1362, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5835:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1361, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5827:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1363, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5827:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5817:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1359, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "5809:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1365, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5809:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1366, - "nodeType": "ExpressionStatement", - "src": "5809:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1368, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "5853:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1369, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "5863:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1371, - "indexExpression": { - "argumentTypes": null, - "id": 1370, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1353, - "src": "5875:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5863:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5853:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1367, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "5845:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5845:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1374, - "nodeType": "ExpressionStatement", - "src": "5845:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "5944:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1375, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "5944:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1377, - "indexExpression": { - "argumentTypes": null, - "id": 1376, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1353, - "src": "5956:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5944:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1379, - "nodeType": "ExpressionStatement", - "src": "5944:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1383, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1353, - "src": "6010:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1384, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "6018:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1385, - "name": "_contributionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "6029:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1380, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "5974:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "refundContribution", - "nodeType": "MemberAccess", - "referencedDeclaration": 3234, - "src": "5974:35:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256) external" - } - }, - "id": 1386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5974:71:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1387, - "nodeType": "ExpressionStatement", - "src": "5974:71:4" - } - ] - }, - "documentation": null, - "id": 1389, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaRefundContribution", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1335, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1328, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 1389, - "src": "5260:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1327, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5260:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1330, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 1389, - "src": "5290:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1329, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5290:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1332, - "name": "_contributionId", - "nodeType": "VariableDeclaration", - "scope": 1389, - "src": "5311:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1331, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5311:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1334, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1389, - "src": "5338:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1333, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5338:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5253:97:4" - }, - "returnParameters": { - "id": 1336, - "nodeType": "ParameterList", - "parameters": [], - "src": "5368:0:4" - }, - "scope": 2505, - "src": "5222:829:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1452, - "nodeType": "Block", - "src": "6216:691:4", - "statements": [ - { - "assignments": [ - 1402 - ], - "declarations": [ - { - "constant": false, - "id": 1402, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 1452, - "src": "6223:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1401, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6223:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1415, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1407, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "6271:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6263:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6263:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d657461526566756e644d79436f6e747269627574696f6e73", - "id": 1409, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6329:27:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e34c123f73c46ea90307822135f22d72b921a988184ca5170e0b8f0143d0217b", - "typeString": "literal_string \"metaRefundMyContributions\"" - }, - "value": "metaRefundMyContributions" - }, - { - "argumentTypes": null, - "id": 1410, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1393, - "src": "6409:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1411, - "name": "_contributionIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1396, - "src": "6471:16:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 1412, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "6540:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_e34c123f73c46ea90307822135f22d72b921a988184ca5170e0b8f0143d0217b", - "typeString": "literal_string \"metaRefundMyContributions\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1404, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "6252:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1405, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6252:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6252:295:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1403, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "6242:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6242:306:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6223:325:4" - }, - { - "assignments": [ - 1417 - ], - "declarations": [ - { - "constant": false, - "id": 1417, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 1452, - "src": "6555:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6555:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1422, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1419, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1402, - "src": "6582:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1420, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1391, - "src": "6592:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1418, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "6572:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6572:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6555:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1428, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1424, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1417, - "src": "6669:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6687:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1425, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6679:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1427, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6679:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "6669:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1423, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "6661:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6661:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "6661:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "6705:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1433, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "6715:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1435, - "indexExpression": { - "argumentTypes": null, - "id": 1434, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1417, - "src": "6727:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6715:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6705:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1431, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "6697:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6697:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1438, - "nodeType": "ExpressionStatement", - "src": "6697:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "6796:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "6796:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1417, - "src": "6808:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6796:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "6796:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1447, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1417, - "src": "6865:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1448, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1393, - "src": "6873:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1449, - "name": "_contributionIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1396, - "src": "6884:16:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 1444, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "6826:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "refundMyContributions", - "nodeType": "MemberAccess", - "referencedDeclaration": 3269, - "src": "6826:38:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,uint256[] memory) external" - } - }, - "id": 1450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6826:75:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1451, - "nodeType": "ExpressionStatement", - "src": "6826:75:4" - } - ] - }, - "documentation": null, - "id": 1453, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaRefundMyContributions", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1399, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1391, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 1453, - "src": "6098:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1390, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6098:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1393, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 1453, - "src": "6128:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1392, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6128:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1396, - "name": "_contributionIds", - "nodeType": "VariableDeclaration", - "scope": 1453, - "src": "6149:30:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1394, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6149:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1395, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6149:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1398, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1453, - "src": "6186:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6186:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6091:107:4" - }, - "returnParameters": { - "id": 1400, - "nodeType": "ParameterList", - "parameters": [], - "src": "6216:0:4" - }, - "scope": 2505, - "src": "6057:850:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1520, - "nodeType": "Block", - "src": "7091:760:4", - "statements": [ - { - "assignments": [ - 1468 - ], - "declarations": [ - { - "constant": false, - "id": 1468, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 1520, - "src": "7098:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1467, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7098:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1482, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1473, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "7146:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7138:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7138:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d657461526566756e64436f6e747269627574696f6e73", - "id": 1475, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7204:25:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6dc07cd3819461cfdff6f1564bcc681706d72dbddb433578d7e030a6fb3cde9c", - "typeString": "literal_string \"metaRefundContributions\"" - }, - "value": "metaRefundContributions" - }, - { - "argumentTypes": null, - "id": 1476, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "7282:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1477, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "7344:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1478, - "name": "_contributionIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1462, - "src": "7406:16:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 1479, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1464, - "src": "7475:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_6dc07cd3819461cfdff6f1564bcc681706d72dbddb433578d7e030a6fb3cde9c", - "typeString": "literal_string \"metaRefundContributions\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1470, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "7127:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7127:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1480, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7127:355:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1469, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "7117:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7117:366:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7098:385:4" - }, - { - "assignments": [ - 1484 - ], - "declarations": [ - { - "constant": false, - "id": 1484, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 1520, - "src": "7490:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1483, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7490:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1489, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1486, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1468, - "src": "7517:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1487, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1455, - "src": "7527:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1485, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "7507:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7507:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7490:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1491, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1484, - "src": "7604:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1493, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7622:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1492, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7614:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1494, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7614:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7604:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1490, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "7596:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7596:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1497, - "nodeType": "ExpressionStatement", - "src": "7596:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1503, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1499, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1464, - "src": "7640:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1500, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "7650:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1502, - "indexExpression": { - "argumentTypes": null, - "id": 1501, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1484, - "src": "7662:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7650:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7640:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1498, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "7632:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7632:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1505, - "nodeType": "ExpressionStatement", - "src": "7632:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "7731:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1506, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "7731:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1508, - "indexExpression": { - "argumentTypes": null, - "id": 1507, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1484, - "src": "7743:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7731:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1510, - "nodeType": "ExpressionStatement", - "src": "7731:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1514, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1484, - "src": "7798:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1515, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "7806:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1516, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "7817:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1517, - "name": "_contributionIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1462, - "src": "7828:16:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 1511, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "7761:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "refundContributions", - "nodeType": "MemberAccess", - "referencedDeclaration": 3357, - "src": "7761:36:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,uint256,uint256[] memory) external" - } - }, - "id": 1518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7761:84:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1519, - "nodeType": "ExpressionStatement", - "src": "7761:84:4" - } - ] - }, - "documentation": null, - "id": 1521, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaRefundContributions", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1455, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 1521, - "src": "6952:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1454, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6952:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1457, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 1521, - "src": "6982:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1456, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6982:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 1521, - "src": "7003:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1458, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7003:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1462, - "name": "_contributionIds", - "nodeType": "VariableDeclaration", - "scope": 1521, - "src": "7024:30:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1460, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7024:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1461, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7024:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1464, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1521, - "src": "7061:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1463, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7061:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6945:128:4" - }, - "returnParameters": { - "id": 1466, - "nodeType": "ParameterList", - "parameters": [], - "src": "7091:0:4" - }, - "scope": 2505, - "src": "6913:938:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1592, - "nodeType": "Block", - "src": "8019:754:4", - "statements": [ - { - "assignments": [ - 1536 - ], - "declarations": [ - { - "constant": false, - "id": 1536, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 1592, - "src": "8026:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1535, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8026:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1550, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1541, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "8074:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1540, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8066:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8066:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d657461447261696e426f756e7479", - "id": 1543, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8132:17:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6b08dc5b26fa52617a877f2faf24f03225f30a7b2c3584eb05ed10c59e6e4793", - "typeString": "literal_string \"metaDrainBounty\"" - }, - "value": "metaDrainBounty" - }, - { - "argumentTypes": null, - "id": 1544, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1525, - "src": "8202:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1545, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1527, - "src": "8264:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1546, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1530, - "src": "8326:8:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 1547, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1532, - "src": "8387:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_6b08dc5b26fa52617a877f2faf24f03225f30a7b2c3584eb05ed10c59e6e4793", - "typeString": "literal_string \"metaDrainBounty\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1538, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "8055:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1539, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8055:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8055:339:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1537, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "8045:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1549, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8045:350:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8026:369:4" - }, - { - "assignments": [ - 1552 - ], - "declarations": [ - { - "constant": false, - "id": 1552, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 1592, - "src": "8402:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1551, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8402:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1561, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1556, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1536, - "src": "8453:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1557, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1523, - "src": "8463:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1555, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "8443:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8443:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1554, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8435:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": "uint160" - }, - "id": 1559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8435:40:4", - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 1553, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8427:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8427:49:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8402:74:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 1567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1563, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1552, - "src": "8542:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1565, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8560:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1564, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8552:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1566, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8552:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "8542:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1562, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "8534:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8534:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1569, - "nodeType": "ExpressionStatement", - "src": "8534:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1571, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1532, - "src": "8578:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1572, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "8588:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1574, - "indexExpression": { - "argumentTypes": null, - "id": 1573, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1552, - "src": "8600:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8588:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8578:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1570, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "8570:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8570:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1577, - "nodeType": "ExpressionStatement", - "src": "8570:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "8669:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1578, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "8669:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1580, - "indexExpression": { - "argumentTypes": null, - "id": 1579, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1552, - "src": "8681:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8669:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1582, - "nodeType": "ExpressionStatement", - "src": "8669:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1586, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1552, - "src": "8728:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1587, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1525, - "src": "8736:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1588, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1527, - "src": "8747:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1589, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1530, - "src": "8758:8:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 1583, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "8699:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "drainBounty", - "nodeType": "MemberAccess", - "referencedDeclaration": 3462, - "src": "8699:28:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (address payable,uint256,uint256,uint256[] memory) external" - } - }, - "id": 1590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8699:68:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1591, - "nodeType": "ExpressionStatement", - "src": "8699:68:4" - } - ] - }, - "documentation": null, - "id": 1593, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaDrainBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1523, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 1593, - "src": "7888:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1522, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7888:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1525, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 1593, - "src": "7918:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1524, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7918:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1527, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 1593, - "src": "7939:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1526, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7939:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1530, - "name": "_amounts", - "nodeType": "VariableDeclaration", - "scope": 1593, - "src": "7960:22:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1528, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7960:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1529, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7960:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1532, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1593, - "src": "7989:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1531, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7989:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7881:120:4" - }, - "returnParameters": { - "id": 1534, - "nodeType": "ParameterList", - "parameters": [], - "src": "8019:0:4" - }, - "scope": 2505, - "src": "7857:916:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1655, - "nodeType": "Block", - "src": "8922:651:4", - "statements": [ - { - "assignments": [ - 1605 - ], - "declarations": [ - { - "constant": false, - "id": 1605, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 1655, - "src": "8929:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1604, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8929:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1618, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1610, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "8977:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8969:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8969:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d657461506572666f726d416374696f6e", - "id": 1612, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9035:19:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6eb47f203931c2dfd0ec3b57dc38e7047f05e2866d6badfcd9eefc81a69d765c", - "typeString": "literal_string \"metaPerformAction\"" - }, - "value": "metaPerformAction" - }, - { - "argumentTypes": null, - "id": 1613, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1597, - "src": "9107:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1614, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1599, - "src": "9169:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1615, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1601, - "src": "9227:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_6eb47f203931c2dfd0ec3b57dc38e7047f05e2866d6badfcd9eefc81a69d765c", - "typeString": "literal_string \"metaPerformAction\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1607, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "8958:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1608, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8958:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8958:276:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1606, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "8948:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8948:287:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8929:306:4" - }, - { - "assignments": [ - 1620 - ], - "declarations": [ - { - "constant": false, - "id": 1620, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 1655, - "src": "9242:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1619, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9242:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1625, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1622, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1605, - "src": "9269:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1623, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1595, - "src": "9279:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1621, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "9259:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9259:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9242:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1627, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1620, - "src": "9354:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1629, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9372:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9364:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1630, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9364:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "9354:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1626, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9346:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9346:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1633, - "nodeType": "ExpressionStatement", - "src": "9346:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1635, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1601, - "src": "9390:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1636, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "9400:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1638, - "indexExpression": { - "argumentTypes": null, - "id": 1637, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1620, - "src": "9412:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9400:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9390:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1634, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9382:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9382:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1641, - "nodeType": "ExpressionStatement", - "src": "9382:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "9481:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1642, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "9481:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1644, - "indexExpression": { - "argumentTypes": null, - "id": 1643, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1620, - "src": "9493:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9481:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1646, - "nodeType": "ExpressionStatement", - "src": "9481:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1650, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1620, - "src": "9542:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1651, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1597, - "src": "9550:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1652, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1599, - "src": "9561:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 1647, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "9511:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "performAction", - "nodeType": "MemberAccess", - "referencedDeclaration": 3484, - "src": "9511:30:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,string memory) external" - } - }, - "id": 1653, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9511:56:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1654, - "nodeType": "ExpressionStatement", - "src": "9511:56:4" - } - ] - }, - "documentation": null, - "id": 1656, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaPerformAction", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1602, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1595, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 1656, - "src": "8812:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1594, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8812:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1597, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 1656, - "src": "8842:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1596, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8842:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1599, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1656, - "src": "8863:19:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1598, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "8863:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1601, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1656, - "src": "8889:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1600, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8889:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8805:99:4" - }, - "returnParameters": { - "id": 1603, - "nodeType": "ParameterList", - "parameters": [], - "src": "8922:0:4" - }, - "scope": 2505, - "src": "8779:794:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1723, - "nodeType": "Block", - "src": "9766:728:4", - "statements": [ - { - "assignments": [ - 1671 - ], - "declarations": [ - { - "constant": false, - "id": 1671, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 1723, - "src": "9773:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1670, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9773:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1685, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1676, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "9821:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1675, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9813:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9813:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d65746146756c66696c6c426f756e7479", - "id": 1678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9879:19:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a13e8c3cdcf546caa5d6bbf26d3005b64ad6ad4a9f5918d69febb90107dfae0b", - "typeString": "literal_string \"metaFulfillBounty\"" - }, - "value": "metaFulfillBounty" - }, - { - "argumentTypes": null, - "id": 1679, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1660, - "src": "9951:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1680, - "name": "_fulfillers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1663, - "src": "10013:11:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1681, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1665, - "src": "10077:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1682, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1667, - "src": "10135:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_a13e8c3cdcf546caa5d6bbf26d3005b64ad6ad4a9f5918d69febb90107dfae0b", - "typeString": "literal_string \"metaFulfillBounty\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1673, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "9802:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1674, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9802:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9802:340:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1672, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "9792:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9792:351:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9773:370:4" - }, - { - "assignments": [ - 1687 - ], - "declarations": [ - { - "constant": false, - "id": 1687, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 1723, - "src": "10150:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1686, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10150:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1692, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1689, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1671, - "src": "10177:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1690, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1658, - "src": "10187:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1688, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "10167:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10167:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10150:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1694, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1687, - "src": "10262:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1696, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10280:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1695, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10272:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10272:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10262:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10254:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10254:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1700, - "nodeType": "ExpressionStatement", - "src": "10254:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1702, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1667, - "src": "10298:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1703, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "10308:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1705, - "indexExpression": { - "argumentTypes": null, - "id": 1704, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1687, - "src": "10320:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10308:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10298:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1701, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10290:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10290:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1708, - "nodeType": "ExpressionStatement", - "src": "10290:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "10389:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1709, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "10389:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1711, - "indexExpression": { - "argumentTypes": null, - "id": 1710, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1687, - "src": "10401:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10389:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1713, - "nodeType": "ExpressionStatement", - "src": "10389:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1717, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1687, - "src": "10450:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1718, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1660, - "src": "10458:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1719, - "name": "_fulfillers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1663, - "src": "10469:11:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1720, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1665, - "src": "10482:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 1714, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "10419:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1716, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fulfillBounty", - "nodeType": "MemberAccess", - "referencedDeclaration": 3545, - "src": "10419:30:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address payable[] memory,string memory) external" - } - }, - "id": 1721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10419:69:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1722, - "nodeType": "ExpressionStatement", - "src": "10419:69:4" - } - ] - }, - "documentation": null, - "id": 1724, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaFulfillBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1668, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1658, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 1724, - "src": "9612:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1657, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "9612:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1660, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 1724, - "src": "9642:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1659, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9642:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1663, - "name": "_fulfillers", - "nodeType": "VariableDeclaration", - "scope": 1724, - "src": "9663:37:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 1661, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9663:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1662, - "length": null, - "nodeType": "ArrayTypeName", - "src": "9663:17:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1665, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1724, - "src": "9707:19:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1664, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "9707:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1667, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1724, - "src": "9733:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1666, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9733:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9605:143:4" - }, - "returnParameters": { - "id": 1669, - "nodeType": "ParameterList", - "parameters": [], - "src": "9766:0:4" - }, - "scope": 2505, - "src": "9579:915:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1795, - "nodeType": "Block", - "src": "10717:819:4", - "statements": [ - { - "assignments": [ - 1741 - ], - "declarations": [ - { - "constant": false, - "id": 1741, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 1795, - "src": "10724:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1740, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "10724:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1756, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1746, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "10772:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1745, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10764:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10764:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d65746155706461746546756c66696c6c6d656e74", - "id": 1748, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10830:23:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e24628a0114f1b1eca1d45f0798a3051de9b226fbeb75086a6ca0746c4a11eaa", - "typeString": "literal_string \"metaUpdateFulfillment\"" - }, - "value": "metaUpdateFulfillment" - }, - { - "argumentTypes": null, - "id": 1749, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1728, - "src": "10906:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1750, - "name": "_fulfillmentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1730, - "src": "10968:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1751, - "name": "_fulfillers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1733, - "src": "11035:11:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1752, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1735, - "src": "11099:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1753, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1737, - "src": "11157:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_e24628a0114f1b1eca1d45f0798a3051de9b226fbeb75086a6ca0746c4a11eaa", - "typeString": "literal_string \"metaUpdateFulfillment\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1743, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "10753:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10753:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10753:411:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1742, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "10743:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10743:422:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10724:441:4" - }, - { - "assignments": [ - 1758 - ], - "declarations": [ - { - "constant": false, - "id": 1758, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 1795, - "src": "11172:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1757, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11172:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1763, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1760, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1741, - "src": "11199:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1761, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1726, - "src": "11209:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1759, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "11189:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11189:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11172:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1765, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1758, - "src": "11284:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1767, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11302:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1766, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11294:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1768, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11294:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "11284:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1764, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "11276:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11276:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1771, - "nodeType": "ExpressionStatement", - "src": "11276:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1773, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1737, - "src": "11320:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1774, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "11330:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1776, - "indexExpression": { - "argumentTypes": null, - "id": 1775, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1758, - "src": "11342:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11330:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11320:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1772, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "11312:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11312:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1779, - "nodeType": "ExpressionStatement", - "src": "11312:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "11411:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1780, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "11411:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1782, - "indexExpression": { - "argumentTypes": null, - "id": 1781, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1758, - "src": "11423:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11411:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1784, - "nodeType": "ExpressionStatement", - "src": "11411:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1788, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1758, - "src": "11476:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1789, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1728, - "src": "11484:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1790, - "name": "_fulfillmentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1730, - "src": "11495:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1791, - "name": "_fulfillers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1733, - "src": "11511:11:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1792, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1735, - "src": "11524:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 1785, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "11441:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateFulfillment", - "nodeType": "MemberAccess", - "referencedDeclaration": 3592, - "src": "11441:34:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,uint256,address payable[] memory,string memory) external" - } - }, - "id": 1793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11441:89:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1794, - "nodeType": "ExpressionStatement", - "src": "11441:89:4" - } - ] - }, - "documentation": null, - "id": 1796, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaUpdateFulfillment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1738, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1726, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 1796, - "src": "10537:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1725, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10537:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1728, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 1796, - "src": "10567:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1727, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10567:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1730, - "name": "_fulfillmentId", - "nodeType": "VariableDeclaration", - "scope": 1796, - "src": "10588:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1729, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10588:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1733, - "name": "_fulfillers", - "nodeType": "VariableDeclaration", - "scope": 1796, - "src": "10614:37:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 1731, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10614:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1732, - "length": null, - "nodeType": "ArrayTypeName", - "src": "10614:17:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1735, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1796, - "src": "10658:19:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1734, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "10658:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1737, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1796, - "src": "10684:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1736, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10684:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10530:169:4" - }, - "returnParameters": { - "id": 1739, - "nodeType": "ParameterList", - "parameters": [], - "src": "10717:0:4" - }, - "scope": 2505, - "src": "10500:1036:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1867, - "nodeType": "Block", - "src": "11746:931:4", - "statements": [ - { - "assignments": [ - 1813 - ], - "declarations": [ - { - "constant": false, - "id": 1813, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 1867, - "src": "11753:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1812, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11753:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1828, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1818, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "11801:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1817, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11793:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11793:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d65746141636365707446756c66696c6c6d656e74", - "id": 1820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11859:23:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d1ba16c1b44101c30e47cc84c2585662e68208e4ff0edc1b552b69fbd7a7ce97", - "typeString": "literal_string \"metaAcceptFulfillment\"" - }, - "value": "metaAcceptFulfillment" - }, - { - "argumentTypes": null, - "id": 1821, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1800, - "src": "11935:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1822, - "name": "_fulfillmentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1802, - "src": "11997:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1823, - "name": "_approverId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1804, - "src": "12064:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1824, - "name": "_tokenAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1807, - "src": "12128:13:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 1825, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1809, - "src": "12194:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_d1ba16c1b44101c30e47cc84c2585662e68208e4ff0edc1b552b69fbd7a7ce97", - "typeString": "literal_string \"metaAcceptFulfillment\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1815, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "11782:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1816, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11782:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11782:419:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1814, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "11772:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11772:430:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11753:449:4" - }, - { - "assignments": [ - 1830 - ], - "declarations": [ - { - "constant": false, - "id": 1830, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 1867, - "src": "12209:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1829, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12209:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1835, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1832, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12236:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1833, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1798, - "src": "12246:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1831, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "12226:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1834, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12226:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12209:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1837, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1830, - "src": "12321:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12339:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1838, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12331:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1840, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12331:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "12321:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1836, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "12313:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12313:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1843, - "nodeType": "ExpressionStatement", - "src": "12313:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1845, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1809, - "src": "12357:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1846, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "12367:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1848, - "indexExpression": { - "argumentTypes": null, - "id": 1847, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1830, - "src": "12379:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12367:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12357:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1844, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "12349:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1850, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12349:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1851, - "nodeType": "ExpressionStatement", - "src": "12349:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "12448:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1852, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "12448:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1854, - "indexExpression": { - "argumentTypes": null, - "id": 1853, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1830, - "src": "12460:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12448:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1856, - "nodeType": "ExpressionStatement", - "src": "12448:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1860, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1830, - "src": "12513:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1861, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1800, - "src": "12545:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1862, - "name": "_fulfillmentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1802, - "src": "12580:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1863, - "name": "_approverId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1804, - "src": "12620:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1864, - "name": "_tokenAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1807, - "src": "12657:13:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 1857, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "12478:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "acceptFulfillment", - "nodeType": "MemberAccess", - "referencedDeclaration": 3688, - "src": "12478:34:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,uint256,uint256,uint256[] memory) external" - } - }, - "id": 1865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12478:193:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1866, - "nodeType": "ExpressionStatement", - "src": "12478:193:4" - } - ] - }, - "documentation": null, - "id": 1868, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaAcceptFulfillment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1810, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1798, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 1868, - "src": "11579:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1797, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11579:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1800, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 1868, - "src": "11609:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1799, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11609:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1802, - "name": "_fulfillmentId", - "nodeType": "VariableDeclaration", - "scope": 1868, - "src": "11630:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1801, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11630:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1804, - "name": "_approverId", - "nodeType": "VariableDeclaration", - "scope": 1868, - "src": "11656:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1803, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11656:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1807, - "name": "_tokenAmounts", - "nodeType": "VariableDeclaration", - "scope": 1868, - "src": "11679:27:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1805, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11679:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1806, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11679:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1809, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1868, - "src": "11713:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1808, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11713:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11572:156:4" - }, - "returnParameters": { - "id": 1811, - "nodeType": "ParameterList", - "parameters": [], - "src": "11746:0:4" - }, - "scope": 2505, - "src": "11542:1135:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1944, - "nodeType": "Block", - "src": "12929:1007:4", - "statements": [ - { - "assignments": [ - 1888 - ], - "declarations": [ - { - "constant": false, - "id": 1888, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 1944, - "src": "12936:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1887, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "12936:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1904, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1893, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "12984:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1892, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12976:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12976:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d65746146756c66696c6c416e64416363657074", - "id": 1895, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13042:22:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_db72f4dcd4409d42468853b76fdc90367666ba6a49ba29d06ffa869878d8b2ff", - "typeString": "literal_string \"metaFulfillAndAccept\"" - }, - "value": "metaFulfillAndAccept" - }, - { - "argumentTypes": null, - "id": 1896, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1872, - "src": "13117:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1897, - "name": "_fulfillers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1875, - "src": "13179:11:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1898, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1877, - "src": "13243:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1899, - "name": "_approverId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1879, - "src": "13301:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1900, - "name": "_tokenAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1882, - "src": "13365:13:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 1901, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1884, - "src": "13431:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_db72f4dcd4409d42468853b76fdc90367666ba6a49ba29d06ffa869878d8b2ff", - "typeString": "literal_string \"metaFulfillAndAccept\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1890, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "12965:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1891, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12965:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12965:473:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1889, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "12955:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12955:484:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12936:503:4" - }, - { - "assignments": [ - 1906 - ], - "declarations": [ - { - "constant": false, - "id": 1906, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 1944, - "src": "13446:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1905, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13446:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1911, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1908, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1888, - "src": "13473:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1909, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1870, - "src": "13483:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1907, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "13463:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13463:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13446:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1913, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1906, - "src": "13558:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1915, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13576:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1914, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13568:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1916, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13568:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "13558:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1912, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "13550:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13550:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1919, - "nodeType": "ExpressionStatement", - "src": "13550:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1921, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1884, - "src": "13594:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1922, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "13604:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1924, - "indexExpression": { - "argumentTypes": null, - "id": 1923, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1906, - "src": "13616:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13604:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13594:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1920, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "13586:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13586:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1927, - "nodeType": "ExpressionStatement", - "src": "13586:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "13685:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1928, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "13685:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1930, - "indexExpression": { - "argumentTypes": null, - "id": 1929, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1906, - "src": "13697:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13685:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1932, - "nodeType": "ExpressionStatement", - "src": "13685:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1936, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1906, - "src": "13749:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1937, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1872, - "src": "13780:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1938, - "name": "_fulfillers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1875, - "src": "13814:11:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1939, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1877, - "src": "13850:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1940, - "name": "_approverId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1879, - "src": "13880:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1941, - "name": "_tokenAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1882, - "src": "13916:13:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 1933, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "13715:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fulfillAndAccept", - "nodeType": "MemberAccess", - "referencedDeclaration": 3730, - "src": "13715:33:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address payable[] memory,string memory,uint256,uint256[] memory) external" - } - }, - "id": 1942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13715:215:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1943, - "nodeType": "ExpressionStatement", - "src": "13715:215:4" - } - ] - }, - "documentation": null, - "id": 1945, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaFulfillAndAccept", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1885, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1870, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 1945, - "src": "12719:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1869, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "12719:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1872, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 1945, - "src": "12749:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1871, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12749:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1875, - "name": "_fulfillers", - "nodeType": "VariableDeclaration", - "scope": 1945, - "src": "12770:36:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 1873, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12770:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1874, - "length": null, - "nodeType": "ArrayTypeName", - "src": "12770:17:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1877, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1945, - "src": "12813:19:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1876, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "12813:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1879, - "name": "_approverId", - "nodeType": "VariableDeclaration", - "scope": 1945, - "src": "12839:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1878, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12839:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1882, - "name": "_tokenAmounts", - "nodeType": "VariableDeclaration", - "scope": 1945, - "src": "12862:27:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1880, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12862:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1881, - "length": null, - "nodeType": "ArrayTypeName", - "src": "12862:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1884, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1945, - "src": "12896:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1883, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12896:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12712:199:4" - }, - "returnParameters": { - "id": 1886, - "nodeType": "ParameterList", - "parameters": [], - "src": "12929:0:4" - }, - "scope": 2505, - "src": "12683:1253:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2025, - "nodeType": "Block", - "src": "14208:1055:4", - "statements": [ - { - "assignments": [ - 1967 - ], - "declarations": [ - { - "constant": false, - "id": 1967, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 2025, - "src": "14215:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1966, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "14215:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1984, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1972, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "14263:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1971, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14255:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14255:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d6574614368616e6765426f756e7479", - "id": 1974, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14321:18:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_24aac19b9cf3bf43d15f431164280285fcec8fd7e4162f5257dc77096a92ad13", - "typeString": "literal_string \"metaChangeBounty\"" - }, - "value": "metaChangeBounty" - }, - { - "argumentTypes": null, - "id": 1975, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1949, - "src": "14392:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1976, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1951, - "src": "14454:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1977, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1954, - "src": "14516:8:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1978, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1957, - "src": "14577:10:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1979, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1959, - "src": "14640:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1980, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1961, - "src": "14698:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1981, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1963, - "src": "14760:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_24aac19b9cf3bf43d15f431164280285fcec8fd7e4162f5257dc77096a92ad13", - "typeString": "literal_string \"metaChangeBounty\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1969, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "14244:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1970, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14244:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14244:523:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1968, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "14234:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1983, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:534:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14215:553:4" - }, - { - "assignments": [ - 1986 - ], - "declarations": [ - { - "constant": false, - "id": 1986, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 2025, - "src": "14775:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1985, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14775:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1991, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1988, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1967, - "src": "14802:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1989, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1947, - "src": "14812:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1987, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "14792:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1990, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14792:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14775:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1997, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1993, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1986, - "src": "14887:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1995, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14905:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14897:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1996, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14897:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14887:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1992, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "14879:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14879:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1999, - "nodeType": "ExpressionStatement", - "src": "14879:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2001, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1963, - "src": "14923:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2002, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "14933:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2004, - "indexExpression": { - "argumentTypes": null, - "id": 2003, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1986, - "src": "14945:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14933:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14923:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2000, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "14915:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14915:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2007, - "nodeType": "ExpressionStatement", - "src": "14915:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2011, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "15014:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2008, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "15014:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2010, - "indexExpression": { - "argumentTypes": null, - "id": 2009, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1986, - "src": "15026:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15014:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2012, - "nodeType": "ExpressionStatement", - "src": "15014:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2016, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1986, - "src": "15074:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2017, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1949, - "src": "15101:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2018, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1951, - "src": "15131:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2019, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1954, - "src": "15161:8:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 2020, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1957, - "src": "15190:10:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 2021, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1959, - "src": "15221:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2022, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1961, - "src": "15247:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2013, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "15044:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 2015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "changeBounty", - "nodeType": "MemberAccess", - "referencedDeclaration": 3822, - "src": "15044:29:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256,address payable[] memory,address payable[] memory,string memory,uint256) external" - } - }, - "id": 2023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15044:213:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2024, - "nodeType": "ExpressionStatement", - "src": "15044:213:4" - } - ] - }, - "documentation": null, - "id": 2026, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaChangeBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1947, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 2026, - "src": "13974:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1946, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "13974:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1949, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2026, - "src": "14004:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1948, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14004:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1951, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 2026, - "src": "14025:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1950, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14025:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1954, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 2026, - "src": "14046:33:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 1952, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14046:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1953, - "length": null, - "nodeType": "ArrayTypeName", - "src": "14046:17:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1957, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 2026, - "src": "14086:35:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 1955, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14086:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1956, - "length": null, - "nodeType": "ArrayTypeName", - "src": "14086:17:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1959, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 2026, - "src": "14128:19:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1958, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "14128:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1961, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 2026, - "src": "14154:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1960, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14154:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1963, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 2026, - "src": "14175:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14175:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13967:223:4" - }, - "returnParameters": { - "id": 1965, - "nodeType": "ParameterList", - "parameters": [], - "src": "14208:0:4" - }, - "scope": 2505, - "src": "13942:1321:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2096, - "nodeType": "Block", - "src": "15468:897:4", - "statements": [ - { - "assignments": [ - 2042 - ], - "declarations": [ - { - "constant": false, - "id": 2042, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "15475:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2041, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "15475:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2057, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2047, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "15523:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 2046, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15515:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15515:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d6574614368616e6765497373756572", - "id": 2049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15581:18:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8d269e2c77a9b37189b50de51e931f880e2cc9f26874ecdc24a474461a07ab08", - "typeString": "literal_string \"metaChangeIssuer\"" - }, - "value": "metaChangeIssuer" - }, - { - "argumentTypes": null, - "id": 2050, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "15652:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2051, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2032, - "src": "15714:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2052, - "name": "_issuerIdToChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "15776:17:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2053, - "name": "_newIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2036, - "src": "15846:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2054, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2038, - "src": "15909:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_8d269e2c77a9b37189b50de51e931f880e2cc9f26874ecdc24a474461a07ab08", - "typeString": "literal_string \"metaChangeIssuer\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2044, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "15504:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2045, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15504:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 2055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15504:412:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2043, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "15494:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15494:423:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15475:442:4" - }, - { - "assignments": [ - 2059 - ], - "declarations": [ - { - "constant": false, - "id": 2059, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "15924:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15924:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2064, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2061, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2042, - "src": "15951:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2062, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "15961:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2060, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "15941:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 2063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15941:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15924:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2066, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2059, - "src": "16036:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2068, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16054:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16046:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2069, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16046:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16036:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2065, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "16028:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16028:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2072, - "nodeType": "ExpressionStatement", - "src": "16028:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2074, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2038, - "src": "16072:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2075, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "16082:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2077, - "indexExpression": { - "argumentTypes": null, - "id": 2076, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2059, - "src": "16094:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16082:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16072:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2073, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "16064:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16064:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2080, - "nodeType": "ExpressionStatement", - "src": "16064:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "16163:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2081, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "16163:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2083, - "indexExpression": { - "argumentTypes": null, - "id": 2082, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2059, - "src": "16175:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16163:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2085, - "nodeType": "ExpressionStatement", - "src": "16163:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2089, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2059, - "src": "16223:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2090, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "16250:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2091, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2032, - "src": "16280:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2092, - "name": "_issuerIdToChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "16310:17:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2093, - "name": "_newIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2036, - "src": "16348:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 2086, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "16193:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 2088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "changeIssuer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3883, - "src": "16193:29:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_payable_$returns$__$", - "typeString": "function (address,uint256,uint256,uint256,address payable) external" - } - }, - "id": 2094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16193:166:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2095, - "nodeType": "ExpressionStatement", - "src": "16193:166:4" - } - ] - }, - "documentation": null, - "id": 2097, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaChangeIssuer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2039, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2028, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 2097, - "src": "15301:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2027, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "15301:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2030, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2097, - "src": "15331:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2029, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15331:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2032, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 2097, - "src": "15352:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2031, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15352:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2034, - "name": "_issuerIdToChange", - "nodeType": "VariableDeclaration", - "scope": 2097, - "src": "15373:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2033, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15373:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2036, - "name": "_newIssuer", - "nodeType": "VariableDeclaration", - "scope": 2097, - "src": "15402:26:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2035, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15402:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2038, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 2097, - "src": "15435:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2037, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15435:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15294:156:4" - }, - "returnParameters": { - "id": 2040, - "nodeType": "ParameterList", - "parameters": [], - "src": "15468:0:4" - }, - "scope": 2505, - "src": "15269:1096:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2167, - "nodeType": "Block", - "src": "16565:887:4", - "statements": [ - { - "assignments": [ - 2113 - ], - "declarations": [ - { - "constant": false, - "id": 2113, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 2167, - "src": "16572:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2112, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "16572:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2128, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2118, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "16620:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 2117, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16612:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16612:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d6574614368616e6765417070726f766572", - "id": 2120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16678:20:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bd48a1a42af7ff3da4fad85a4891b6333c7a585b9c13c519e9fd54a5d4c7a5f6", - "typeString": "literal_string \"metaChangeApprover\"" - }, - "value": "metaChangeApprover" - }, - { - "argumentTypes": null, - "id": 2121, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2101, - "src": "16751:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2122, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2103, - "src": "16813:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2123, - "name": "_approverId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2105, - "src": "16875:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2124, - "name": "_approver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2107, - "src": "16939:9:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2125, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "17001:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_bd48a1a42af7ff3da4fad85a4891b6333c7a585b9c13c519e9fd54a5d4c7a5f6", - "typeString": "literal_string \"metaChangeApprover\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2115, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "16601:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2116, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16601:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 2126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16601:407:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2114, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "16591:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16591:418:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16572:437:4" - }, - { - "assignments": [ - 2130 - ], - "declarations": [ - { - "constant": false, - "id": 2130, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 2167, - "src": "17016:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2129, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17016:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2135, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2132, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2113, - "src": "17043:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2133, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2099, - "src": "17053:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2131, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "17033:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 2134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17033:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17016:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2137, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2130, - "src": "17128:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2139, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17146:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17138:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2140, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17138:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17128:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2136, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17120:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17120:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2143, - "nodeType": "ExpressionStatement", - "src": "17120:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2145, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "17164:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2146, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "17174:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2148, - "indexExpression": { - "argumentTypes": null, - "id": 2147, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2130, - "src": "17186:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17174:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17164:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2144, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17156:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17156:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2151, - "nodeType": "ExpressionStatement", - "src": "17156:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "17255:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2152, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "17255:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2154, - "indexExpression": { - "argumentTypes": null, - "id": 2153, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2130, - "src": "17267:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17255:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2156, - "nodeType": "ExpressionStatement", - "src": "17255:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2160, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2130, - "src": "17317:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2161, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2101, - "src": "17344:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2162, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2103, - "src": "17374:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2163, - "name": "_approverId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2105, - "src": "17404:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2164, - "name": "_approver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2107, - "src": "17436:9:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 2157, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "17285:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 2159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "changeApprover", - "nodeType": "MemberAccess", - "referencedDeclaration": 3930, - "src": "17285:31:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_payable_$returns$__$", - "typeString": "function (address,uint256,uint256,uint256,address payable) external" - } - }, - "id": 2165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17285:161:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2166, - "nodeType": "ExpressionStatement", - "src": "17285:161:4" - } - ] - }, - "documentation": null, - "id": 2168, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaChangeApprover", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2110, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2099, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 2168, - "src": "16405:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2098, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "16405:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2101, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2168, - "src": "16435:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2100, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16435:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2103, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 2168, - "src": "16456:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2102, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16456:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2105, - "name": "_approverId", - "nodeType": "VariableDeclaration", - "scope": 2168, - "src": "16477:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2104, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16477:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2107, - "name": "_approver", - "nodeType": "VariableDeclaration", - "scope": 2168, - "src": "16500:25:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16500:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2109, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 2168, - "src": "16532:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2108, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16532:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16398:149:4" - }, - "returnParameters": { - "id": 2111, - "nodeType": "ParameterList", - "parameters": [], - "src": "16565:0:4" - }, - "scope": 2505, - "src": "16371:1081:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2234, - "nodeType": "Block", - "src": "17619:769:4", - "statements": [ - { - "assignments": [ - 2182 - ], - "declarations": [ - { - "constant": false, - "id": 2182, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 2234, - "src": "17626:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2181, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "17626:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2196, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2187, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "17674:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 2186, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17666:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17666:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d6574614368616e676544617461", - "id": 2189, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17732:16:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a136a7e99fd205d0dcb4550621ef5b54e3c98302578208b3f3175b4335c2c913", - "typeString": "literal_string \"metaChangeData\"" - }, - "value": "metaChangeData" - }, - { - "argumentTypes": null, - "id": 2190, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2172, - "src": "17801:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2191, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2174, - "src": "17863:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2192, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "17925:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2193, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2178, - "src": "17983:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_a136a7e99fd205d0dcb4550621ef5b54e3c98302578208b3f3175b4335c2c913", - "typeString": "literal_string \"metaChangeData\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2184, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "17655:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2185, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17655:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 2194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17655:335:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2183, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "17645:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17645:346:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17626:365:4" - }, - { - "assignments": [ - 2198 - ], - "declarations": [ - { - "constant": false, - "id": 2198, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 2234, - "src": "17998:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2197, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17998:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2203, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2200, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2182, - "src": "18025:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2201, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2170, - "src": "18035:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2199, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "18015:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 2202, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18015:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17998:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2205, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2198, - "src": "18110:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2207, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18128:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2206, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18120:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2208, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18120:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "18110:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2204, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "18102:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18102:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2211, - "nodeType": "ExpressionStatement", - "src": "18102:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2213, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2178, - "src": "18146:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2214, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "18156:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2216, - "indexExpression": { - "argumentTypes": null, - "id": 2215, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2198, - "src": "18168:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18156:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18146:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "18138:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18138:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2219, - "nodeType": "ExpressionStatement", - "src": "18138:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "18237:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2220, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "18237:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2222, - "indexExpression": { - "argumentTypes": null, - "id": 2221, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2198, - "src": "18249:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18237:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2224, - "nodeType": "ExpressionStatement", - "src": "18237:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2228, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2198, - "src": "18295:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2229, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2172, - "src": "18320:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2230, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2174, - "src": "18348:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2231, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "18376:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 2225, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "18267:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 2227, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "changeData", - "nodeType": "MemberAccess", - "referencedDeclaration": 4049, - "src": "18267:27:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,uint256,string memory) external" - } - }, - "id": 2232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18267:115:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2233, - "nodeType": "ExpressionStatement", - "src": "18267:115:4" - } - ] - }, - "documentation": null, - "id": 2235, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaChangeData", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2170, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 2235, - "src": "17488:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2169, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "17488:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2172, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2235, - "src": "17518:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2171, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17518:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2174, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 2235, - "src": "17539:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2173, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17539:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2176, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 2235, - "src": "17560:19:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2175, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "17560:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2178, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 2235, - "src": "17586:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17586:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17481:120:4" - }, - "returnParameters": { - "id": 2180, - "nodeType": "ParameterList", - "parameters": [], - "src": "17619:0:4" - }, - "scope": 2505, - "src": "17458:930:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2301, - "nodeType": "Block", - "src": "18555:797:4", - "statements": [ - { - "assignments": [ - 2249 - ], - "declarations": [ - { - "constant": false, - "id": 2249, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 2301, - "src": "18562:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2248, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "18562:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2263, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2254, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "18610:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 2253, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18602:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18602:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d6574614368616e6765446561646c696e65", - "id": 2256, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18668:20:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b419befe26b3c7190750e9f6987242e374c4ca6b6a5aeede9805c14cb6cb7228", - "typeString": "literal_string \"metaChangeDeadline\"" - }, - "value": "metaChangeDeadline" - }, - { - "argumentTypes": null, - "id": 2257, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2239, - "src": "18741:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2258, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2241, - "src": "18803:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2259, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2243, - "src": "18865:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2260, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2245, - "src": "18927:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_b419befe26b3c7190750e9f6987242e374c4ca6b6a5aeede9805c14cb6cb7228", - "typeString": "literal_string \"metaChangeDeadline\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2251, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "18591:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2252, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "18591:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 2261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18591:343:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2250, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "18581:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18581:354:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18562:373:4" - }, - { - "assignments": [ - 2265 - ], - "declarations": [ - { - "constant": false, - "id": 2265, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 2301, - "src": "18942:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2264, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18942:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2270, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2267, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2249, - "src": "18969:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2268, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2237, - "src": "18979:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2266, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "18959:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 2269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18959:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18942:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2272, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2265, - "src": "19054:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2274, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19072:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2273, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19064:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2275, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19064:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19054:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2271, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "19046:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19046:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2278, - "nodeType": "ExpressionStatement", - "src": "19046:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2284, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2280, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2245, - "src": "19090:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2281, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "19100:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2283, - "indexExpression": { - "argumentTypes": null, - "id": 2282, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2265, - "src": "19112:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19100:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19090:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2279, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "19082:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19082:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2286, - "nodeType": "ExpressionStatement", - "src": "19082:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "19181:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2287, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "19181:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2289, - "indexExpression": { - "argumentTypes": null, - "id": 2288, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2265, - "src": "19193:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "19181:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2291, - "nodeType": "ExpressionStatement", - "src": "19181:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2295, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2265, - "src": "19243:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2296, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2239, - "src": "19272:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2297, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2241, - "src": "19304:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2298, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2243, - "src": "19336:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2292, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "19211:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 2294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "changeDeadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 4089, - "src": "19211:31:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256,uint256) external" - } - }, - "id": 2299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19211:135:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2300, - "nodeType": "ExpressionStatement", - "src": "19211:135:4" - } - ] - }, - "documentation": null, - "id": 2302, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaChangeDeadline", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2246, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2237, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 2302, - "src": "18428:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2236, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "18428:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2239, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2302, - "src": "18458:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2238, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "18458:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2241, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 2302, - "src": "18479:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2240, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "18479:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2243, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 2302, - "src": "18500:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2242, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "18500:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2245, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 2302, - "src": "18522:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2244, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18522:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18421:116:4" - }, - "returnParameters": { - "id": 2247, - "nodeType": "ParameterList", - "parameters": [], - "src": "18555:0:4" - }, - "scope": 2505, - "src": "18394:958:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2369, - "nodeType": "Block", - "src": "19533:775:4", - "statements": [ - { - "assignments": [ - 2317 - ], - "declarations": [ - { - "constant": false, - "id": 2317, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 2369, - "src": "19540:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2316, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "19540:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2331, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2322, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "19588:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 2321, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19580:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19580:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d65746141646449737375657273", - "id": 2324, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19646:16:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e5c366eaaa397c768341eb557a97468d5e3264c4ebefb507fce9144dd234a80a", - "typeString": "literal_string \"metaAddIssuers\"" - }, - "value": "metaAddIssuers" - }, - { - "argumentTypes": null, - "id": 2325, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2306, - "src": "19715:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2326, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2308, - "src": "19777:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2327, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2311, - "src": "19839:8:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 2328, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2313, - "src": "19900:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_e5c366eaaa397c768341eb557a97468d5e3264c4ebefb507fce9144dd234a80a", - "typeString": "literal_string \"metaAddIssuers\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2319, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "19569:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2320, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "19569:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 2329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19569:338:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2318, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "19559:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19559:349:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19540:368:4" - }, - { - "assignments": [ - 2333 - ], - "declarations": [ - { - "constant": false, - "id": 2333, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 2369, - "src": "19915:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19915:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2338, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2335, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2317, - "src": "19942:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2336, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2304, - "src": "19952:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2334, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "19932:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 2337, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19932:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19915:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2340, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "20027:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2342, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20045:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20037:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2343, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20037:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20027:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2339, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "20019:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20019:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2346, - "nodeType": "ExpressionStatement", - "src": "20019:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2348, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2313, - "src": "20063:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2349, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "20073:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2351, - "indexExpression": { - "argumentTypes": null, - "id": 2350, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "20085:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20073:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20063:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2347, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "20055:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20055:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2354, - "nodeType": "ExpressionStatement", - "src": "20055:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "20154:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2355, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "20154:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2357, - "indexExpression": { - "argumentTypes": null, - "id": 2356, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "20166:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20154:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2359, - "nodeType": "ExpressionStatement", - "src": "20154:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2363, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "20212:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2364, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2306, - "src": "20237:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2365, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2308, - "src": "20265:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2366, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2311, - "src": "20293:8:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 2360, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "20184:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 2362, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addIssuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 4149, - "src": "20184:27:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,uint256,address payable[] memory) external" - } - }, - "id": 2367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20184:118:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2368, - "nodeType": "ExpressionStatement", - "src": "20184:118:4" - } - ] - }, - "documentation": null, - "id": 2370, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaAddIssuers", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2304, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 2370, - "src": "19388:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2303, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19388:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2306, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2370, - "src": "19418:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2305, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "19418:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2308, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 2370, - "src": "19439:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2307, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "19439:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2311, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 2370, - "src": "19460:33:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 2309, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19460:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 2310, - "length": null, - "nodeType": "ArrayTypeName", - "src": "19460:17:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2313, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 2370, - "src": "19500:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2312, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19500:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19381:134:4" - }, - "returnParameters": { - "id": 2315, - "nodeType": "ParameterList", - "parameters": [], - "src": "19533:0:4" - }, - "scope": 2505, - "src": "19358:950:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2437, - "nodeType": "Block", - "src": "20485:783:4", - "statements": [ - { - "assignments": [ - 2385 - ], - "declarations": [ - { - "constant": false, - "id": 2385, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 2437, - "src": "20492:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2384, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "20492:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2399, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2390, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "20540:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 2389, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20532:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20532:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d657461416464417070726f76657273", - "id": 2392, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20598:18:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3dd98bd79db118185d095fd282d4e4d83c44be55d5f5c1409639178e159df2f4", - "typeString": "literal_string \"metaAddApprovers\"" - }, - "value": "metaAddApprovers" - }, - { - "argumentTypes": null, - "id": 2393, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2374, - "src": "20669:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2394, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2376, - "src": "20731:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2395, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2379, - "src": "20793:10:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 2396, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2381, - "src": "20856:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_3dd98bd79db118185d095fd282d4e4d83c44be55d5f5c1409639178e159df2f4", - "typeString": "literal_string \"metaAddApprovers\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2387, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "20521:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "20521:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 2397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20521:342:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2386, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "20511:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20511:353:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20492:372:4" - }, - { - "assignments": [ - 2401 - ], - "declarations": [ - { - "constant": false, - "id": 2401, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 2437, - "src": "20871:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2400, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20871:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2406, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2403, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2385, - "src": "20898:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2404, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2372, - "src": "20908:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2402, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "20888:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 2405, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20888:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20871:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2408, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2401, - "src": "20983:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2410, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21001:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2409, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20993:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2411, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20993:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20983:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2407, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "20975:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20975:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2414, - "nodeType": "ExpressionStatement", - "src": "20975:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2416, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2381, - "src": "21019:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2417, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "21029:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2419, - "indexExpression": { - "argumentTypes": null, - "id": 2418, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2401, - "src": "21041:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21029:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "21019:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2415, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "21011:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21011:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2422, - "nodeType": "ExpressionStatement", - "src": "21011:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "21110:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2423, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "21110:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2425, - "indexExpression": { - "argumentTypes": null, - "id": 2424, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2401, - "src": "21122:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21110:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2427, - "nodeType": "ExpressionStatement", - "src": "21110:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2431, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2401, - "src": "21170:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2432, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2374, - "src": "21195:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2433, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2376, - "src": "21223:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2434, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2379, - "src": "21251:10:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 2428, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "21140:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 2430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addApprovers", - "nodeType": "MemberAccess", - "referencedDeclaration": 4209, - "src": "21140:29:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,uint256,address[] memory) external" - } - }, - "id": 2435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21140:122:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2436, - "nodeType": "ExpressionStatement", - "src": "21140:122:4" - } - ] - }, - "documentation": null, - "id": 2438, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaAddApprovers", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2382, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2372, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 2438, - "src": "20346:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2371, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "20346:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2374, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2438, - "src": "20376:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2373, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "20376:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2376, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 2438, - "src": "20397:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2375, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "20397:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2379, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 2438, - "src": "20418:27:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2377, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20418:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2378, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20418:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2381, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 2438, - "src": "20452:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2380, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20452:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20339:128:4" - }, - "returnParameters": { - "id": 2383, - "nodeType": "ParameterList", - "parameters": [], - "src": "20485:0:4" - }, - "scope": 2505, - "src": "20314:954:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2503, - "nodeType": "Block", - "src": "21394:496:4", - "statements": [ - { - "assignments": [ - 2448 - ], - "declarations": [ - { - "constant": false, - "id": 2448, - "name": "r", - "nodeType": "VariableDeclaration", - "scope": 2503, - "src": "21401:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2447, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "21401:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2449, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "21401:9:4" - }, - { - "assignments": [ - 2451 - ], - "declarations": [ - { - "constant": false, - "id": 2451, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 2503, - "src": "21417:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2450, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "21417:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2452, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "21417:9:4" - }, - { - "assignments": [ - 2454 - ], - "declarations": [ - { - "constant": false, - "id": 2454, - "name": "v", - "nodeType": "VariableDeclaration", - "scope": 2503, - "src": "21433:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2453, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "21433:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2455, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "21433:7:4" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2459, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2456, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2442, - "src": "21451:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 2457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21451:17:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3635", - "id": 2458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21472:2:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_65_by_1", - "typeString": "int_const 65" - }, - "value": "65" - }, - "src": "21451:23:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2465, - "nodeType": "IfStatement", - "src": "21447:62:4", - "trueBody": { - "id": 2464, - "nodeType": "Block", - "src": "21475:34:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2461, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21499:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2460, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21491:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2462, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21491:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "functionReturnParameters": 2446, - "id": 2463, - "nodeType": "Return", - "src": "21484:17:4" - } - ] - } - }, - { - "externalReferences": [ - { - "r": { - "declaration": 2448, - "isOffset": false, - "isSlot": false, - "src": "21533:1:4", - "valueSize": 1 - } - }, - { - "_signature": { - "declaration": 2442, - "isOffset": false, - "isSlot": false, - "src": "21548:10:4", - "valueSize": 1 - } - }, - { - "v": { - "declaration": 2454, - "isOffset": false, - "isSlot": false, - "src": "21611:1:4", - "valueSize": 1 - } - }, - { - "s": { - "declaration": 2451, - "isOffset": false, - "isSlot": false, - "src": "21572:1:4", - "valueSize": 1 - } - }, - { - "_signature": { - "declaration": 2442, - "isOffset": false, - "isSlot": false, - "src": "21587:10:4", - "valueSize": 1 - } - }, - { - "_signature": { - "declaration": 2442, - "isOffset": false, - "isSlot": false, - "src": "21634:10:4", - "valueSize": 1 - } - } - ], - "id": 2466, - "nodeType": "InlineAssembly", - "operations": "{\n r := mload(add(_signature, 32))\n s := mload(add(_signature, 64))\n v := byte(0, mload(add(_signature, 96)))\n}", - "src": "21515:143:4" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2467, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2454, - "src": "21668:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3237", - "id": 2468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21672:2:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_27_by_1", - "typeString": "int_const 27" - }, - "value": "27" - }, - "src": "21668:6:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2475, - "nodeType": "IfStatement", - "src": "21664:35:4", - "trueBody": { - "id": 2474, - "nodeType": "Block", - "src": "21675:24:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2472, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2470, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2454, - "src": "21684:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3237", - "id": 2471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21689:2:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_27_by_1", - "typeString": "int_const 27" - }, - "value": "27" - }, - "src": "21684:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 2473, - "nodeType": "ExpressionStatement", - "src": "21684:7:4" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2478, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2476, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2454, - "src": "21709:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3237", - "id": 2477, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21714:2:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_27_by_1", - "typeString": "int_const 27" - }, - "value": "27" - }, - "src": "21709:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2479, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2454, - "src": "21720:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3238", - "id": 2480, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21725:2:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_28_by_1", - "typeString": "int_const 28" - }, - "value": "28" - }, - "src": "21720:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "21709:18:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2501, - "nodeType": "Block", - "src": "21768:117:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "19457468657265756d205369676e6564204d6573736167653a0a3332", - "id": 2492, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21823:34:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73", - "typeString": "literal_string \"\u0019Ethereum Signed Message:\n32\"" - }, - "value": "\u0019Ethereum Signed Message:\n32" - }, - { - "argumentTypes": null, - "id": 2493, - "name": "_hash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2440, - "src": "21859:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73", - "typeString": "literal_string \"\u0019Ethereum Signed Message:\n32\"" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 2490, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "21806:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2491, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21806:16:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 2494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21806:59:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2489, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "21796:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21796:70:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2496, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2454, - "src": "21868:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 2497, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2448, - "src": "21871:1:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2498, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2451, - "src": "21874:1:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 2488, - "name": "ecrecover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10403, - "src": "21786:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" - } - }, - "id": 2499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21786:91:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2446, - "id": 2500, - "nodeType": "Return", - "src": "21779:98:4" - } - ] - }, - "id": 2502, - "nodeType": "IfStatement", - "src": "21705:180:4", - "trueBody": { - "id": 2487, - "nodeType": "Block", - "src": "21728:34:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2484, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21752:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2483, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21744:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2485, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21744:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "functionReturnParameters": 2446, - "id": 2486, - "nodeType": "Return", - "src": "21737:17:4" - } - ] - } - } - ] - }, - "documentation": null, - "id": 2504, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getSigner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2443, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2440, - "name": "_hash", - "nodeType": "VariableDeclaration", - "scope": 2504, - "src": "21299:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2439, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "21299:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2442, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 2504, - "src": "21319:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2441, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "21319:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21292:51:4" - }, - "returnParameters": { - "id": 2446, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2445, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2504, - "src": "21382:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2444, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21382:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21381:9:4" - }, - "scope": 2505, - "src": "21274:616:4", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 2506, - "src": "109:21784:4" - } - ], - "src": "0:21895:4" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/BountiesMetaTxRelayer.sol", - "exportedSymbols": { - "BountiesMetaTxRelayer": [ - 2505 - ] - }, - "id": 2506, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1012, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:4" - }, - { - "id": 1013, - "literals": [ - "experimental", - "ABIEncoderV2" - ], - "nodeType": "PragmaDirective", - "src": "34:33:4" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/StandardBounties.sol", - "file": "./StandardBounties.sol", - "id": 1014, - "nodeType": "ImportDirective", - "scope": 2506, - "sourceUnit": 4513, - "src": "71:32:4", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 2505, - "linearizedBaseContracts": [ - 2505 - ], - "name": "BountiesMetaTxRelayer", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 1016, - "name": "bountiesContract", - "nodeType": "VariableDeclaration", - "scope": 2505, - "src": "239:40:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - }, - "typeName": { - "contractScope": null, - "id": 1015, - "name": "StandardBounties", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4512, - "src": "239:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 1020, - "name": "replayNonce", - "nodeType": "VariableDeclaration", - "scope": 2505, - "src": "284:43:4", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 1019, - "keyType": { - "id": 1017, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "292:7:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "284:24:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 1018, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "303:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 1031, - "nodeType": "Block", - "src": "374:59:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 1029, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 1025, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "381:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1027, - "name": "_contract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1022, - "src": "417:9:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1026, - "name": "StandardBounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4512, - "src": "400:16:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_StandardBounties_$4512_$", - "typeString": "type(contract StandardBounties)" - } - }, - "id": 1028, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "400:27:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "src": "381:46:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1030, - "nodeType": "ExpressionStatement", - "src": "381:46:4" - } - ] - }, - "documentation": null, - "id": 1032, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1023, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1022, - "name": "_contract", - "nodeType": "VariableDeclaration", - "scope": 1032, - "src": "348:17:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1021, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "348:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "347:19:4" - }, - "returnParameters": { - "id": 1024, - "nodeType": "ParameterList", - "parameters": [], - "src": "374:0:4" - }, - "scope": 2505, - "src": "336:97:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1117, - "nodeType": "Block", - "src": "716:1217:4", - "statements": [ - { - "assignments": [ - 1056 - ], - "declarations": [ - { - "constant": false, - "id": 1056, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 1117, - "src": "723:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1055, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "723:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1073, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1061, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "771:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "763:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "763:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d6574614973737565426f756e7479", - "id": 1063, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "829:17:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_aa276ab5ec69bfbc25fe6788e9d93617d817f695e4ebfc350a16976fa2655d35", - "typeString": "literal_string \"metaIssueBounty\"" - }, - "value": "metaIssueBounty" - }, - { - "argumentTypes": null, - "id": 1064, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1037, - "src": "899:8:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1065, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "960:10:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 1066, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1042, - "src": "1023:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1067, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1044, - "src": "1081:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1068, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "1143:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1069, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1048, - "src": "1202:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1070, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1050, - "src": "1268:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_aa276ab5ec69bfbc25fe6788e9d93617d817f695e4ebfc350a16976fa2655d35", - "typeString": "literal_string \"metaIssueBounty\"" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1058, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "752:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1059, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "752:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "752:523:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1057, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "742:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1072, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "742:534:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "723:553:4" - }, - { - "assignments": [ - 1075 - ], - "declarations": [ - { - "constant": false, - "id": 1075, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 1117, - "src": "1283:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1074, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1283:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1080, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1077, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1056, - "src": "1310:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1078, - "name": "signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1034, - "src": "1320:9:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1076, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "1300:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1300:30:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1283:47:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1086, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1082, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1075, - "src": "1396:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1084, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1414:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1083, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1406:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1085, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1406:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "1396:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1081, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "1388:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1087, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1388:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1088, - "nodeType": "ExpressionStatement", - "src": "1388:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1090, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1050, - "src": "1432:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1091, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "1442:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1093, - "indexExpression": { - "argumentTypes": null, - "id": 1092, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1075, - "src": "1454:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1442:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1432:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1089, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "1424:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1095, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1424:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1096, - "nodeType": "ExpressionStatement", - "src": "1424:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "1523:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1097, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "1523:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1099, - "indexExpression": { - "argumentTypes": null, - "id": 1098, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1075, - "src": "1535:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1523:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1101, - "nodeType": "ExpressionStatement", - "src": "1523:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1106, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1075, - "src": "1603:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1105, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1595:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": "uint160" - }, - "id": 1107, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1595:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 1104, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1587:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1108, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1587:24:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1109, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1037, - "src": "1655:8:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1110, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1040, - "src": "1707:10:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 1111, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1042, - "src": "1761:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1112, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1044, - "src": "1810:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1113, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1046, - "src": "1863:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1114, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1048, - "src": "1913:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1102, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "1558:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "issueBounty", - "nodeType": "MemberAccess", - "referencedDeclaration": 2956, - "src": "1558:28:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256) external returns (uint256)" - } - }, - "id": 1115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1558:369:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1054, - "id": 1116, - "nodeType": "Return", - "src": "1551:376:4" - } - ] - }, - "documentation": null, - "id": 1118, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaIssueBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1051, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1034, - "name": "signature", - "nodeType": "VariableDeclaration", - "scope": 1118, - "src": "470:22:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1033, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "470:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1037, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 1118, - "src": "499:33:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 1035, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "499:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1036, - "length": null, - "nodeType": "ArrayTypeName", - "src": "499:17:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1040, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 1118, - "src": "539:27:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1038, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "539:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1039, - "length": null, - "nodeType": "ArrayTypeName", - "src": "539:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1042, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1118, - "src": "573:19:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1041, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "573:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1044, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 1118, - "src": "599:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1043, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "599:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1046, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1118, - "src": "620:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1045, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "620:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1048, - "name": "_tokenVersion", - "nodeType": "VariableDeclaration", - "scope": 1118, - "src": "641:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1047, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "641:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1050, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1118, - "src": "666:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1049, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "666:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "463:215:4" - }, - "returnParameters": { - "id": 1054, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1053, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1118, - "src": "705:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1052, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "705:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "704:6:4" - }, - "scope": 2505, - "src": "439:1494:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1234, - "nodeType": "Block", - "src": "2262:1987:4", - "statements": [ - { - "assignments": [ - 1144 - ], - "declarations": [ - { - "constant": false, - "id": 1144, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 1234, - "src": "2269:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1143, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "2269:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1162, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1149, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "2317:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1148, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "2309:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2309:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d6574614973737565416e64436f6e74726962757465", - "id": 1151, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2375:24:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d7582cbbdb7194126649dea0d2d2499e8980380297911f39d550880a6674f395", - "typeString": "literal_string \"metaIssueAndContribute\"" - }, - "value": "metaIssueAndContribute" - }, - { - "argumentTypes": null, - "id": 1152, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1123, - "src": "2452:8:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1153, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1126, - "src": "2513:10:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 1154, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1128, - "src": "2576:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1155, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1130, - "src": "2634:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1156, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1132, - "src": "2696:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1157, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1134, - "src": "2755:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1158, - "name": "_depositAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1136, - "src": "2821:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1159, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1138, - "src": "2888:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_d7582cbbdb7194126649dea0d2d2499e8980380297911f39d550880a6674f395", - "typeString": "literal_string \"metaIssueAndContribute\"" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1146, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "2298:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1147, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2298:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2298:597:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1145, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "2288:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2288:608:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2269:627:4" - }, - { - "assignments": [ - 1164 - ], - "declarations": [ - { - "constant": false, - "id": 1164, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 1234, - "src": "2903:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1163, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2903:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1169, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1166, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1144, - "src": "2930:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1167, - "name": "signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1120, - "src": "2940:9:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1165, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "2920:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2920:30:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "2903:47:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1171, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3016:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1173, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3034:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1172, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3026:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1174, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3026:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "3016:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1170, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "3008:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3008:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1177, - "nodeType": "ExpressionStatement", - "src": "3008:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1183, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1179, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1138, - "src": "3052:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1180, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "3062:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1182, - "indexExpression": { - "argumentTypes": null, - "id": 1181, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3074:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3062:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3052:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1178, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "3044:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3044:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1185, - "nodeType": "ExpressionStatement", - "src": "3044:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "3143:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1186, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "3143:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1188, - "indexExpression": { - "argumentTypes": null, - "id": 1187, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3155:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3143:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1190, - "nodeType": "ExpressionStatement", - "src": "3143:21:4" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1191, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3177:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3177:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3189:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3177:13:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1232, - "nodeType": "Block", - "src": "3728:514:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1220, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3796:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1219, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3788:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": "uint160" - }, - "id": 1221, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3788:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 1218, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3780:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3780:24:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1223, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1123, - "src": "3856:8:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1224, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1126, - "src": "3916:10:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 1225, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1128, - "src": "3978:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1226, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1130, - "src": "4035:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1227, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1132, - "src": "4096:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1228, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1134, - "src": "4154:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1229, - "name": "_depositAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1136, - "src": "4219:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1216, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "3744:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "issueAndContribute", - "nodeType": "MemberAccess", - "referencedDeclaration": 3001, - "src": "3744:35:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256) payable external returns (uint256)" - } - }, - "id": 1230, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3744:490:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1142, - "id": 1231, - "nodeType": "Return", - "src": "3737:497:4" - } - ] - }, - "id": 1233, - "nodeType": "IfStatement", - "src": "3173:1069:4", - "trueBody": { - "id": 1215, - "nodeType": "Block", - "src": "3191:531:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1203, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1164, - "src": "3276:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1202, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3268:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": "uint160" - }, - "id": 1204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3268:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 1201, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3260:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3260:24:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1206, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1123, - "src": "3336:8:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1207, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1126, - "src": "3396:10:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 1208, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1128, - "src": "3458:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1209, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1130, - "src": "3515:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1210, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1132, - "src": "3576:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1211, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1134, - "src": "3634:13:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1212, - "name": "_depositAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1136, - "src": "3699:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1198, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3249:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1199, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3249:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1195, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "3207:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "issueAndContribute", - "nodeType": "MemberAccess", - "referencedDeclaration": 3001, - "src": "3207:35:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256) payable external returns (uint256)" - } - }, - "id": 1197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3207:41:4", - "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$value_$", - "typeString": "function (uint256) returns (function (address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256) payable external returns (uint256))" - } - }, - "id": 1200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3207:52:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$value", - "typeString": "function (address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256) payable external returns (uint256)" - } - }, - "id": 1213, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3207:507:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 1142, - "id": 1214, - "nodeType": "Return", - "src": "3200:514:4" - } - ] - } - } - ] - }, - "documentation": null, - "id": 1235, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaIssueAndContribute", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1139, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1120, - "name": "signature", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "1977:22:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1119, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1977:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1123, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2006:33:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 1121, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2006:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1122, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2006:17:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1126, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2046:27:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 1124, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2046:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 1125, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2046:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1128, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2080:19:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1127, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2080:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1130, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2106:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1129, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2106:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1132, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2127:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1131, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2127:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1134, - "name": "_tokenVersion", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2148:18:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1133, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2148:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1136, - "name": "_depositAmount", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2173:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1135, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2173:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1138, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2199:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1137, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2199:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1970:241:4" - }, - "returnParameters": { - "id": 1142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1141, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 1235, - "src": "2251:4:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1140, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2251:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2250:6:4" - }, - "scope": 2505, - "src": "1939:2310:4", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1325, - "nodeType": "Block", - "src": "4398:816:4", - "statements": [ - { - "assignments": [ - 1247 - ], - "declarations": [ - { - "constant": false, - "id": 1247, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 1325, - "src": "4405:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1246, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "4405:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1260, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1252, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "4453:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1251, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4445:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4445:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d657461436f6e74726962757465", - "id": 1254, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4511:16:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7d76b93a2b426b4994ed488a90b484491fbd027f588de1d7e23a4267d0413fb2", - "typeString": "literal_string \"metaContribute\"" - }, - "value": "metaContribute" - }, - { - "argumentTypes": null, - "id": 1255, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1239, - "src": "4580:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1256, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "4642:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1257, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1243, - "src": "4702:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_7d76b93a2b426b4994ed488a90b484491fbd027f588de1d7e23a4267d0413fb2", - "typeString": "literal_string \"metaContribute\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1249, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "4434:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1250, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4434:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4434:275:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1248, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "4424:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4424:286:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4405:305:4" - }, - { - "assignments": [ - 1262 - ], - "declarations": [ - { - "constant": false, - "id": 1262, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 1325, - "src": "4717:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1261, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4717:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1267, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1264, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1247, - "src": "4744:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1265, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1237, - "src": "4754:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1263, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "4734:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4734:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4717:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1273, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1269, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1262, - "src": "4831:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1271, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4849:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1270, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "4841:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1272, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4841:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4831:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1268, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4823:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4823:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1275, - "nodeType": "ExpressionStatement", - "src": "4823:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1277, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1243, - "src": "4867:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1278, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "4877:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1280, - "indexExpression": { - "argumentTypes": null, - "id": 1279, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1262, - "src": "4889:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4877:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4867:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1276, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4859:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4859:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1283, - "nodeType": "ExpressionStatement", - "src": "4859:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "4958:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1284, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "4958:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1286, - "indexExpression": { - "argumentTypes": null, - "id": 1285, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1262, - "src": "4970:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4958:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1288, - "nodeType": "ExpressionStatement", - "src": "4958:21:4" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1289, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "4992:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4992:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 1291, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5004:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "4992:13:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 1323, - "nodeType": "Block", - "src": "5119:90:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1316, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1262, - "src": "5172:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5164:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": "uint160" - }, - "id": 1317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5164:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 1314, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5156:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5156:24:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1319, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1239, - "src": "5182:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1320, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "5193:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1311, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "5128:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "contribute", - "nodeType": "MemberAccess", - "referencedDeclaration": 3163, - "src": "5128:27:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_payable_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address payable,uint256,uint256) payable external" - } - }, - "id": 1321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5128:73:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1322, - "nodeType": "ExpressionStatement", - "src": "5128:73:4" - } - ] - }, - "id": 1324, - "nodeType": "IfStatement", - "src": "4988:221:4", - "trueBody": { - "id": 1310, - "nodeType": "Block", - "src": "5006:107:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1303, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1262, - "src": "5076:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5068:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": "uint160" - }, - "id": 1304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5068:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 1301, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5060:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5060:24:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1306, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1239, - "src": "5086:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1307, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1241, - "src": "5097:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1298, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "5049:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 1299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5049:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 1293, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "5015:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1296, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "contribute", - "nodeType": "MemberAccess", - "referencedDeclaration": 3163, - "src": "5015:27:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_payable_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address payable,uint256,uint256) payable external" - } - }, - "id": 1297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5015:33:4", - "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_address_payable_$_t_uint256_$_t_uint256_$returns$__$value_$", - "typeString": "function (uint256) returns (function (address payable,uint256,uint256) payable external)" - } - }, - "id": 1300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5015:44:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_address_payable_$_t_uint256_$_t_uint256_$returns$__$value", - "typeString": "function (address payable,uint256,uint256) payable external" - } - }, - "id": 1308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5015:90:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1309, - "nodeType": "ExpressionStatement", - "src": "5015:90:4" - } - ] - } - } - ] - }, - "documentation": null, - "id": 1326, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaContribute", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1244, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1237, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 1326, - "src": "4285:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1236, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "4285:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1239, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 1326, - "src": "4315:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1238, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4315:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1241, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 1326, - "src": "4336:12:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1240, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4336:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1243, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1326, - "src": "4355:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1242, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4355:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4278:89:4" - }, - "returnParameters": { - "id": 1245, - "nodeType": "ParameterList", - "parameters": [], - "src": "4398:0:4" - }, - "scope": 2505, - "src": "4255:959:4", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1388, - "nodeType": "Block", - "src": "5368:683:4", - "statements": [ - { - "assignments": [ - 1338 - ], - "declarations": [ - { - "constant": false, - "id": 1338, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 1388, - "src": "5375:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1337, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "5375:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1351, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1343, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "5423:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1342, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5415:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5415:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d657461526566756e64436f6e747269627574696f6e", - "id": 1345, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5481:24:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c2f0a3ca9cbf2bed82817cc9072419ef9150d33bdcc6898ef7adc26aed37120a", - "typeString": "literal_string \"metaRefundContribution\"" - }, - "value": "metaRefundContribution" - }, - { - "argumentTypes": null, - "id": 1346, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "5558:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1347, - "name": "_contributionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "5620:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1348, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "5688:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_c2f0a3ca9cbf2bed82817cc9072419ef9150d33bdcc6898ef7adc26aed37120a", - "typeString": "literal_string \"metaRefundContribution\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1340, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "5404:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5404:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1349, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5404:291:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1339, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "5394:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5394:302:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5375:321:4" - }, - { - "assignments": [ - 1353 - ], - "declarations": [ - { - "constant": false, - "id": 1353, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 1388, - "src": "5703:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1352, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5703:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1358, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1355, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1338, - "src": "5730:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1356, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1328, - "src": "5740:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1354, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "5720:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5720:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5703:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1364, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1360, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1353, - "src": "5817:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1362, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5835:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1361, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5827:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1363, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5827:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5817:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1359, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "5809:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1365, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5809:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1366, - "nodeType": "ExpressionStatement", - "src": "5809:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1372, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1368, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1334, - "src": "5853:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1369, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "5863:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1371, - "indexExpression": { - "argumentTypes": null, - "id": 1370, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1353, - "src": "5875:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5863:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5853:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1367, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "5845:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5845:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1374, - "nodeType": "ExpressionStatement", - "src": "5845:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "5944:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1375, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "5944:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1377, - "indexExpression": { - "argumentTypes": null, - "id": 1376, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1353, - "src": "5956:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5944:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1379, - "nodeType": "ExpressionStatement", - "src": "5944:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1383, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1353, - "src": "6010:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1384, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1330, - "src": "6018:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1385, - "name": "_contributionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1332, - "src": "6029:15:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1380, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "5974:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "refundContribution", - "nodeType": "MemberAccess", - "referencedDeclaration": 3234, - "src": "5974:35:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256) external" - } - }, - "id": 1386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5974:71:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1387, - "nodeType": "ExpressionStatement", - "src": "5974:71:4" - } - ] - }, - "documentation": null, - "id": 1389, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaRefundContribution", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1335, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1328, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 1389, - "src": "5260:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1327, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5260:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1330, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 1389, - "src": "5290:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1329, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5290:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1332, - "name": "_contributionId", - "nodeType": "VariableDeclaration", - "scope": 1389, - "src": "5311:20:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1331, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5311:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1334, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1389, - "src": "5338:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1333, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5338:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5253:97:4" - }, - "returnParameters": { - "id": 1336, - "nodeType": "ParameterList", - "parameters": [], - "src": "5368:0:4" - }, - "scope": 2505, - "src": "5222:829:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1452, - "nodeType": "Block", - "src": "6216:691:4", - "statements": [ - { - "assignments": [ - 1402 - ], - "declarations": [ - { - "constant": false, - "id": 1402, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 1452, - "src": "6223:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1401, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "6223:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1415, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1407, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "6271:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1406, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6263:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6263:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d657461526566756e644d79436f6e747269627574696f6e73", - "id": 1409, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6329:27:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e34c123f73c46ea90307822135f22d72b921a988184ca5170e0b8f0143d0217b", - "typeString": "literal_string \"metaRefundMyContributions\"" - }, - "value": "metaRefundMyContributions" - }, - { - "argumentTypes": null, - "id": 1410, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1393, - "src": "6409:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1411, - "name": "_contributionIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1396, - "src": "6471:16:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 1412, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "6540:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_e34c123f73c46ea90307822135f22d72b921a988184ca5170e0b8f0143d0217b", - "typeString": "literal_string \"metaRefundMyContributions\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1404, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "6252:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1405, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6252:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6252:295:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1403, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "6242:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6242:306:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6223:325:4" - }, - { - "assignments": [ - 1417 - ], - "declarations": [ - { - "constant": false, - "id": 1417, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 1452, - "src": "6555:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1416, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6555:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1422, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1419, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1402, - "src": "6582:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1420, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1391, - "src": "6592:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1418, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "6572:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6572:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6555:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1428, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1424, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1417, - "src": "6669:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1426, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6687:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1425, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6679:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1427, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6679:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "6669:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1423, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "6661:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6661:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1430, - "nodeType": "ExpressionStatement", - "src": "6661:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1432, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1398, - "src": "6705:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1433, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "6715:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1435, - "indexExpression": { - "argumentTypes": null, - "id": 1434, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1417, - "src": "6727:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6715:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6705:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1431, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "6697:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6697:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1438, - "nodeType": "ExpressionStatement", - "src": "6697:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "6796:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1439, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "6796:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1441, - "indexExpression": { - "argumentTypes": null, - "id": 1440, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1417, - "src": "6808:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6796:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1443, - "nodeType": "ExpressionStatement", - "src": "6796:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1447, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1417, - "src": "6865:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1448, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1393, - "src": "6873:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1449, - "name": "_contributionIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1396, - "src": "6884:16:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 1444, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "6826:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "refundMyContributions", - "nodeType": "MemberAccess", - "referencedDeclaration": 3269, - "src": "6826:38:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,uint256[] memory) external" - } - }, - "id": 1450, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6826:75:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1451, - "nodeType": "ExpressionStatement", - "src": "6826:75:4" - } - ] - }, - "documentation": null, - "id": 1453, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaRefundMyContributions", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1399, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1391, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 1453, - "src": "6098:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1390, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6098:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1393, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 1453, - "src": "6128:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1392, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6128:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1396, - "name": "_contributionIds", - "nodeType": "VariableDeclaration", - "scope": 1453, - "src": "6149:30:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1394, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6149:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1395, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6149:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1398, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1453, - "src": "6186:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1397, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6186:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6091:107:4" - }, - "returnParameters": { - "id": 1400, - "nodeType": "ParameterList", - "parameters": [], - "src": "6216:0:4" - }, - "scope": 2505, - "src": "6057:850:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1520, - "nodeType": "Block", - "src": "7091:760:4", - "statements": [ - { - "assignments": [ - 1468 - ], - "declarations": [ - { - "constant": false, - "id": 1468, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 1520, - "src": "7098:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1467, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "7098:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1482, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1473, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "7146:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1472, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7138:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7138:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d657461526566756e64436f6e747269627574696f6e73", - "id": 1475, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7204:25:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6dc07cd3819461cfdff6f1564bcc681706d72dbddb433578d7e030a6fb3cde9c", - "typeString": "literal_string \"metaRefundContributions\"" - }, - "value": "metaRefundContributions" - }, - { - "argumentTypes": null, - "id": 1476, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "7282:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1477, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "7344:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1478, - "name": "_contributionIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1462, - "src": "7406:16:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 1479, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1464, - "src": "7475:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_6dc07cd3819461cfdff6f1564bcc681706d72dbddb433578d7e030a6fb3cde9c", - "typeString": "literal_string \"metaRefundContributions\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1470, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "7127:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7127:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1480, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7127:355:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1469, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "7117:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7117:366:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7098:385:4" - }, - { - "assignments": [ - 1484 - ], - "declarations": [ - { - "constant": false, - "id": 1484, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 1520, - "src": "7490:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1483, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7490:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1489, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1486, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1468, - "src": "7517:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1487, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1455, - "src": "7527:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1485, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "7507:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7507:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7490:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1491, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1484, - "src": "7604:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1493, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7622:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1492, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7614:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1494, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7614:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7604:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1490, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "7596:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1496, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7596:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1497, - "nodeType": "ExpressionStatement", - "src": "7596:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1503, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1499, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1464, - "src": "7640:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1500, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "7650:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1502, - "indexExpression": { - "argumentTypes": null, - "id": 1501, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1484, - "src": "7662:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7650:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7640:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1498, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "7632:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1504, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7632:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1505, - "nodeType": "ExpressionStatement", - "src": "7632:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "7731:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1506, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "7731:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1508, - "indexExpression": { - "argumentTypes": null, - "id": 1507, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1484, - "src": "7743:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7731:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1510, - "nodeType": "ExpressionStatement", - "src": "7731:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1514, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1484, - "src": "7798:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1515, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1457, - "src": "7806:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1516, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1459, - "src": "7817:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1517, - "name": "_contributionIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1462, - "src": "7828:16:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 1511, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "7761:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "refundContributions", - "nodeType": "MemberAccess", - "referencedDeclaration": 3357, - "src": "7761:36:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,uint256,uint256[] memory) external" - } - }, - "id": 1518, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7761:84:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1519, - "nodeType": "ExpressionStatement", - "src": "7761:84:4" - } - ] - }, - "documentation": null, - "id": 1521, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaRefundContributions", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1465, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1455, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 1521, - "src": "6952:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1454, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6952:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1457, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 1521, - "src": "6982:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1456, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6982:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1459, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 1521, - "src": "7003:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1458, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7003:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1462, - "name": "_contributionIds", - "nodeType": "VariableDeclaration", - "scope": 1521, - "src": "7024:30:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1460, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7024:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1461, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7024:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1464, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1521, - "src": "7061:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1463, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7061:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6945:128:4" - }, - "returnParameters": { - "id": 1466, - "nodeType": "ParameterList", - "parameters": [], - "src": "7091:0:4" - }, - "scope": 2505, - "src": "6913:938:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1592, - "nodeType": "Block", - "src": "8019:754:4", - "statements": [ - { - "assignments": [ - 1536 - ], - "declarations": [ - { - "constant": false, - "id": 1536, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 1592, - "src": "8026:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1535, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8026:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1550, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1541, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "8074:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1540, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8066:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8066:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d657461447261696e426f756e7479", - "id": 1543, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8132:17:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6b08dc5b26fa52617a877f2faf24f03225f30a7b2c3584eb05ed10c59e6e4793", - "typeString": "literal_string \"metaDrainBounty\"" - }, - "value": "metaDrainBounty" - }, - { - "argumentTypes": null, - "id": 1544, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1525, - "src": "8202:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1545, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1527, - "src": "8264:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1546, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1530, - "src": "8326:8:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 1547, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1532, - "src": "8387:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_6b08dc5b26fa52617a877f2faf24f03225f30a7b2c3584eb05ed10c59e6e4793", - "typeString": "literal_string \"metaDrainBounty\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1538, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "8055:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1539, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8055:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8055:339:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1537, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "8045:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1549, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8045:350:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8026:369:4" - }, - { - "assignments": [ - 1552 - ], - "declarations": [ - { - "constant": false, - "id": 1552, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 1592, - "src": "8402:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 1551, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8402:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1561, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1556, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1536, - "src": "8453:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1557, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1523, - "src": "8463:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1555, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "8443:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8443:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 1554, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8435:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint160_$", - "typeString": "type(uint160)" - }, - "typeName": "uint160" - }, - "id": 1559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8435:40:4", - "typeDescriptions": { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint160", - "typeString": "uint160" - } - ], - "id": 1553, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8427:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1560, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8427:49:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8402:74:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 1567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1563, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1552, - "src": "8542:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1565, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8560:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1564, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8552:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1566, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8552:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "8542:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1562, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "8534:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1568, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8534:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1569, - "nodeType": "ExpressionStatement", - "src": "8534:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1575, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1571, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1532, - "src": "8578:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1572, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "8588:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1574, - "indexExpression": { - "argumentTypes": null, - "id": 1573, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1552, - "src": "8600:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8588:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8578:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1570, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "8570:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8570:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1577, - "nodeType": "ExpressionStatement", - "src": "8570:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "8669:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1578, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "8669:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1580, - "indexExpression": { - "argumentTypes": null, - "id": 1579, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1552, - "src": "8681:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "8669:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1582, - "nodeType": "ExpressionStatement", - "src": "8669:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1586, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1552, - "src": "8728:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 1587, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1525, - "src": "8736:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1588, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1527, - "src": "8747:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1589, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1530, - "src": "8758:8:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 1583, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "8699:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "drainBounty", - "nodeType": "MemberAccess", - "referencedDeclaration": 3462, - "src": "8699:28:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_payable_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (address payable,uint256,uint256,uint256[] memory) external" - } - }, - "id": 1590, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8699:68:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1591, - "nodeType": "ExpressionStatement", - "src": "8699:68:4" - } - ] - }, - "documentation": null, - "id": 1593, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaDrainBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1523, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 1593, - "src": "7888:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1522, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7888:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1525, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 1593, - "src": "7918:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1524, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7918:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1527, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 1593, - "src": "7939:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1526, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7939:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1530, - "name": "_amounts", - "nodeType": "VariableDeclaration", - "scope": 1593, - "src": "7960:22:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1528, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7960:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1529, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7960:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1532, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1593, - "src": "7989:11:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1531, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7989:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7881:120:4" - }, - "returnParameters": { - "id": 1534, - "nodeType": "ParameterList", - "parameters": [], - "src": "8019:0:4" - }, - "scope": 2505, - "src": "7857:916:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1655, - "nodeType": "Block", - "src": "8922:651:4", - "statements": [ - { - "assignments": [ - 1605 - ], - "declarations": [ - { - "constant": false, - "id": 1605, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 1655, - "src": "8929:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1604, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "8929:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1618, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1610, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "8977:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1609, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8969:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8969:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d657461506572666f726d416374696f6e", - "id": 1612, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9035:19:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_6eb47f203931c2dfd0ec3b57dc38e7047f05e2866d6badfcd9eefc81a69d765c", - "typeString": "literal_string \"metaPerformAction\"" - }, - "value": "metaPerformAction" - }, - { - "argumentTypes": null, - "id": 1613, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1597, - "src": "9107:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1614, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1599, - "src": "9169:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1615, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1601, - "src": "9227:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_6eb47f203931c2dfd0ec3b57dc38e7047f05e2866d6badfcd9eefc81a69d765c", - "typeString": "literal_string \"metaPerformAction\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1607, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "8958:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1608, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8958:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1616, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8958:276:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1606, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "8948:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1617, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8948:287:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8929:306:4" - }, - { - "assignments": [ - 1620 - ], - "declarations": [ - { - "constant": false, - "id": 1620, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 1655, - "src": "9242:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1619, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9242:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1625, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1622, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1605, - "src": "9269:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1623, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1595, - "src": "9279:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1621, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "9259:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1624, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9259:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9242:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1627, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1620, - "src": "9354:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1629, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9372:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9364:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1630, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9364:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "9354:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1626, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9346:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9346:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1633, - "nodeType": "ExpressionStatement", - "src": "9346:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1639, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1635, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1601, - "src": "9390:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1636, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "9400:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1638, - "indexExpression": { - "argumentTypes": null, - "id": 1637, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1620, - "src": "9412:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9400:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9390:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1634, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9382:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9382:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1641, - "nodeType": "ExpressionStatement", - "src": "9382:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "9481:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1642, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "9481:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1644, - "indexExpression": { - "argumentTypes": null, - "id": 1643, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1620, - "src": "9493:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9481:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1646, - "nodeType": "ExpressionStatement", - "src": "9481:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1650, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1620, - "src": "9542:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1651, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1597, - "src": "9550:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1652, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1599, - "src": "9561:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 1647, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "9511:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1649, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "performAction", - "nodeType": "MemberAccess", - "referencedDeclaration": 3484, - "src": "9511:30:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,string memory) external" - } - }, - "id": 1653, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9511:56:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1654, - "nodeType": "ExpressionStatement", - "src": "9511:56:4" - } - ] - }, - "documentation": null, - "id": 1656, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaPerformAction", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1602, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1595, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 1656, - "src": "8812:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1594, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "8812:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1597, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 1656, - "src": "8842:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1596, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8842:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1599, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1656, - "src": "8863:19:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1598, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "8863:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1601, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1656, - "src": "8889:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1600, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8889:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8805:99:4" - }, - "returnParameters": { - "id": 1603, - "nodeType": "ParameterList", - "parameters": [], - "src": "8922:0:4" - }, - "scope": 2505, - "src": "8779:794:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1723, - "nodeType": "Block", - "src": "9766:728:4", - "statements": [ - { - "assignments": [ - 1671 - ], - "declarations": [ - { - "constant": false, - "id": 1671, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 1723, - "src": "9773:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1670, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "9773:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1685, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1676, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "9821:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1675, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9813:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9813:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d65746146756c66696c6c426f756e7479", - "id": 1678, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9879:19:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a13e8c3cdcf546caa5d6bbf26d3005b64ad6ad4a9f5918d69febb90107dfae0b", - "typeString": "literal_string \"metaFulfillBounty\"" - }, - "value": "metaFulfillBounty" - }, - { - "argumentTypes": null, - "id": 1679, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1660, - "src": "9951:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1680, - "name": "_fulfillers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1663, - "src": "10013:11:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1681, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1665, - "src": "10077:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1682, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1667, - "src": "10135:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_a13e8c3cdcf546caa5d6bbf26d3005b64ad6ad4a9f5918d69febb90107dfae0b", - "typeString": "literal_string \"metaFulfillBounty\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1673, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "9802:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1674, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9802:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1683, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9802:340:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1672, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "9792:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9792:351:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9773:370:4" - }, - { - "assignments": [ - 1687 - ], - "declarations": [ - { - "constant": false, - "id": 1687, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 1723, - "src": "10150:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1686, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10150:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1692, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1689, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1671, - "src": "10177:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1690, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1658, - "src": "10187:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1688, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "10167:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1691, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10167:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10150:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1698, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1694, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1687, - "src": "10262:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1696, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10280:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1695, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10272:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10272:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10262:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1693, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10254:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10254:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1700, - "nodeType": "ExpressionStatement", - "src": "10254:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1702, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1667, - "src": "10298:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1703, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "10308:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1705, - "indexExpression": { - "argumentTypes": null, - "id": 1704, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1687, - "src": "10320:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10308:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10298:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1701, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10290:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10290:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1708, - "nodeType": "ExpressionStatement", - "src": "10290:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1712, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "10389:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1709, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "10389:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1711, - "indexExpression": { - "argumentTypes": null, - "id": 1710, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1687, - "src": "10401:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10389:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1713, - "nodeType": "ExpressionStatement", - "src": "10389:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1717, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1687, - "src": "10450:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1718, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1660, - "src": "10458:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1719, - "name": "_fulfillers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1663, - "src": "10469:11:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1720, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1665, - "src": "10482:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 1714, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "10419:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1716, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fulfillBounty", - "nodeType": "MemberAccess", - "referencedDeclaration": 3545, - "src": "10419:30:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address payable[] memory,string memory) external" - } - }, - "id": 1721, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10419:69:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1722, - "nodeType": "ExpressionStatement", - "src": "10419:69:4" - } - ] - }, - "documentation": null, - "id": 1724, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaFulfillBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1668, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1658, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 1724, - "src": "9612:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1657, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "9612:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1660, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 1724, - "src": "9642:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1659, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9642:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1663, - "name": "_fulfillers", - "nodeType": "VariableDeclaration", - "scope": 1724, - "src": "9663:37:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 1661, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9663:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1662, - "length": null, - "nodeType": "ArrayTypeName", - "src": "9663:17:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1665, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1724, - "src": "9707:19:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1664, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "9707:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1667, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1724, - "src": "9733:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1666, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9733:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9605:143:4" - }, - "returnParameters": { - "id": 1669, - "nodeType": "ParameterList", - "parameters": [], - "src": "9766:0:4" - }, - "scope": 2505, - "src": "9579:915:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1795, - "nodeType": "Block", - "src": "10717:819:4", - "statements": [ - { - "assignments": [ - 1741 - ], - "declarations": [ - { - "constant": false, - "id": 1741, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 1795, - "src": "10724:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1740, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "10724:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1756, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1746, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "10772:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1745, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10764:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1747, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10764:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d65746155706461746546756c66696c6c6d656e74", - "id": 1748, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10830:23:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e24628a0114f1b1eca1d45f0798a3051de9b226fbeb75086a6ca0746c4a11eaa", - "typeString": "literal_string \"metaUpdateFulfillment\"" - }, - "value": "metaUpdateFulfillment" - }, - { - "argumentTypes": null, - "id": 1749, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1728, - "src": "10906:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1750, - "name": "_fulfillmentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1730, - "src": "10968:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1751, - "name": "_fulfillers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1733, - "src": "11035:11:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1752, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1735, - "src": "11099:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1753, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1737, - "src": "11157:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_e24628a0114f1b1eca1d45f0798a3051de9b226fbeb75086a6ca0746c4a11eaa", - "typeString": "literal_string \"metaUpdateFulfillment\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1743, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "10753:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10753:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10753:411:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1742, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "10743:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10743:422:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10724:441:4" - }, - { - "assignments": [ - 1758 - ], - "declarations": [ - { - "constant": false, - "id": 1758, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 1795, - "src": "11172:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1757, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11172:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1763, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1760, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1741, - "src": "11199:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1761, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1726, - "src": "11209:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1759, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "11189:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11189:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11172:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1769, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1765, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1758, - "src": "11284:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1767, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11302:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1766, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11294:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1768, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11294:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "11284:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1764, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "11276:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11276:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1771, - "nodeType": "ExpressionStatement", - "src": "11276:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1773, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1737, - "src": "11320:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1774, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "11330:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1776, - "indexExpression": { - "argumentTypes": null, - "id": 1775, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1758, - "src": "11342:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11330:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "11320:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1772, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "11312:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11312:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1779, - "nodeType": "ExpressionStatement", - "src": "11312:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "11411:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1780, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "11411:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1782, - "indexExpression": { - "argumentTypes": null, - "id": 1781, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1758, - "src": "11423:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11411:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1784, - "nodeType": "ExpressionStatement", - "src": "11411:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1788, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1758, - "src": "11476:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1789, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1728, - "src": "11484:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1790, - "name": "_fulfillmentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1730, - "src": "11495:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1791, - "name": "_fulfillers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1733, - "src": "11511:11:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1792, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1735, - "src": "11524:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 1785, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "11441:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "updateFulfillment", - "nodeType": "MemberAccess", - "referencedDeclaration": 3592, - "src": "11441:34:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,uint256,address payable[] memory,string memory) external" - } - }, - "id": 1793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11441:89:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1794, - "nodeType": "ExpressionStatement", - "src": "11441:89:4" - } - ] - }, - "documentation": null, - "id": 1796, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaUpdateFulfillment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1738, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1726, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 1796, - "src": "10537:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1725, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "10537:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1728, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 1796, - "src": "10567:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1727, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10567:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1730, - "name": "_fulfillmentId", - "nodeType": "VariableDeclaration", - "scope": 1796, - "src": "10588:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1729, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "10588:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1733, - "name": "_fulfillers", - "nodeType": "VariableDeclaration", - "scope": 1796, - "src": "10614:37:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 1731, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10614:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1732, - "length": null, - "nodeType": "ArrayTypeName", - "src": "10614:17:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1735, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1796, - "src": "10658:19:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1734, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "10658:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1737, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1796, - "src": "10684:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1736, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10684:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10530:169:4" - }, - "returnParameters": { - "id": 1739, - "nodeType": "ParameterList", - "parameters": [], - "src": "10717:0:4" - }, - "scope": 2505, - "src": "10500:1036:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1867, - "nodeType": "Block", - "src": "11746:931:4", - "statements": [ - { - "assignments": [ - 1813 - ], - "declarations": [ - { - "constant": false, - "id": 1813, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 1867, - "src": "11753:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1812, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "11753:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1828, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1818, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "11801:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1817, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11793:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11793:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d65746141636365707446756c66696c6c6d656e74", - "id": 1820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11859:23:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d1ba16c1b44101c30e47cc84c2585662e68208e4ff0edc1b552b69fbd7a7ce97", - "typeString": "literal_string \"metaAcceptFulfillment\"" - }, - "value": "metaAcceptFulfillment" - }, - { - "argumentTypes": null, - "id": 1821, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1800, - "src": "11935:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1822, - "name": "_fulfillmentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1802, - "src": "11997:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1823, - "name": "_approverId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1804, - "src": "12064:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1824, - "name": "_tokenAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1807, - "src": "12128:13:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 1825, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1809, - "src": "12194:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_d1ba16c1b44101c30e47cc84c2585662e68208e4ff0edc1b552b69fbd7a7ce97", - "typeString": "literal_string \"metaAcceptFulfillment\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1815, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "11782:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1816, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11782:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1826, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11782:419:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1814, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "11772:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11772:430:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "11753:449:4" - }, - { - "assignments": [ - 1830 - ], - "declarations": [ - { - "constant": false, - "id": 1830, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 1867, - "src": "12209:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1829, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12209:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1835, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1832, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1813, - "src": "12236:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1833, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1798, - "src": "12246:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1831, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "12226:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1834, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12226:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12209:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1837, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1830, - "src": "12321:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1839, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12339:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1838, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12331:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1840, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12331:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "12321:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1836, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "12313:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12313:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1843, - "nodeType": "ExpressionStatement", - "src": "12313:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1845, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1809, - "src": "12357:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1846, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "12367:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1848, - "indexExpression": { - "argumentTypes": null, - "id": 1847, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1830, - "src": "12379:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12367:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12357:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1844, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "12349:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1850, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12349:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1851, - "nodeType": "ExpressionStatement", - "src": "12349:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1855, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "12448:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1852, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "12448:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1854, - "indexExpression": { - "argumentTypes": null, - "id": 1853, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1830, - "src": "12460:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "12448:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1856, - "nodeType": "ExpressionStatement", - "src": "12448:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1860, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1830, - "src": "12513:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1861, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1800, - "src": "12545:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1862, - "name": "_fulfillmentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1802, - "src": "12580:14:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1863, - "name": "_approverId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1804, - "src": "12620:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1864, - "name": "_tokenAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1807, - "src": "12657:13:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 1857, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "12478:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1859, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "acceptFulfillment", - "nodeType": "MemberAccess", - "referencedDeclaration": 3688, - "src": "12478:34:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,uint256,uint256,uint256[] memory) external" - } - }, - "id": 1865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12478:193:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1866, - "nodeType": "ExpressionStatement", - "src": "12478:193:4" - } - ] - }, - "documentation": null, - "id": 1868, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaAcceptFulfillment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1810, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1798, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 1868, - "src": "11579:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1797, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "11579:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1800, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 1868, - "src": "11609:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1799, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11609:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1802, - "name": "_fulfillmentId", - "nodeType": "VariableDeclaration", - "scope": 1868, - "src": "11630:19:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1801, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11630:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1804, - "name": "_approverId", - "nodeType": "VariableDeclaration", - "scope": 1868, - "src": "11656:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1803, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11656:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1807, - "name": "_tokenAmounts", - "nodeType": "VariableDeclaration", - "scope": 1868, - "src": "11679:27:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1805, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "11679:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1806, - "length": null, - "nodeType": "ArrayTypeName", - "src": "11679:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1809, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1868, - "src": "11713:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1808, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11713:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11572:156:4" - }, - "returnParameters": { - "id": 1811, - "nodeType": "ParameterList", - "parameters": [], - "src": "11746:0:4" - }, - "scope": 2505, - "src": "11542:1135:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 1944, - "nodeType": "Block", - "src": "12929:1007:4", - "statements": [ - { - "assignments": [ - 1888 - ], - "declarations": [ - { - "constant": false, - "id": 1888, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 1944, - "src": "12936:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1887, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "12936:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1904, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1893, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "12984:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1892, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12976:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12976:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d65746146756c66696c6c416e64416363657074", - "id": 1895, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13042:22:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_db72f4dcd4409d42468853b76fdc90367666ba6a49ba29d06ffa869878d8b2ff", - "typeString": "literal_string \"metaFulfillAndAccept\"" - }, - "value": "metaFulfillAndAccept" - }, - { - "argumentTypes": null, - "id": 1896, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1872, - "src": "13117:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1897, - "name": "_fulfillers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1875, - "src": "13179:11:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1898, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1877, - "src": "13243:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1899, - "name": "_approverId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1879, - "src": "13301:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1900, - "name": "_tokenAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1882, - "src": "13365:13:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - { - "argumentTypes": null, - "id": 1901, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1884, - "src": "13431:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_db72f4dcd4409d42468853b76fdc90367666ba6a49ba29d06ffa869878d8b2ff", - "typeString": "literal_string \"metaFulfillAndAccept\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1890, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "12965:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1891, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12965:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12965:473:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1889, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "12955:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12955:484:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12936:503:4" - }, - { - "assignments": [ - 1906 - ], - "declarations": [ - { - "constant": false, - "id": 1906, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 1944, - "src": "13446:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1905, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13446:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1911, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1908, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1888, - "src": "13473:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1909, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1870, - "src": "13483:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1907, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "13463:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13463:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13446:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1913, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1906, - "src": "13558:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1915, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13576:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1914, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13568:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1916, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13568:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "13558:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1912, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "13550:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13550:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1919, - "nodeType": "ExpressionStatement", - "src": "13550:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 1925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1921, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1884, - "src": "13594:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1922, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "13604:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1924, - "indexExpression": { - "argumentTypes": null, - "id": 1923, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1906, - "src": "13616:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13604:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13594:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1920, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "13586:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13586:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1927, - "nodeType": "ExpressionStatement", - "src": "13586:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 1931, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "13685:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 1928, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "13685:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 1930, - "indexExpression": { - "argumentTypes": null, - "id": 1929, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1906, - "src": "13697:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13685:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1932, - "nodeType": "ExpressionStatement", - "src": "13685:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1936, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1906, - "src": "13749:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 1937, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1872, - "src": "13780:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1938, - "name": "_fulfillers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1875, - "src": "13814:11:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1939, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1877, - "src": "13850:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1940, - "name": "_approverId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1879, - "src": "13880:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1941, - "name": "_tokenAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1882, - "src": "13916:13:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 1933, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "13715:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 1935, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "fulfillAndAccept", - "nodeType": "MemberAccess", - "referencedDeclaration": 3730, - "src": "13715:33:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address payable[] memory,string memory,uint256,uint256[] memory) external" - } - }, - "id": 1942, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13715:215:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1943, - "nodeType": "ExpressionStatement", - "src": "13715:215:4" - } - ] - }, - "documentation": null, - "id": 1945, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaFulfillAndAccept", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1885, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1870, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 1945, - "src": "12719:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1869, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "12719:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1872, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 1945, - "src": "12749:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1871, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12749:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1875, - "name": "_fulfillers", - "nodeType": "VariableDeclaration", - "scope": 1945, - "src": "12770:36:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 1873, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12770:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1874, - "length": null, - "nodeType": "ArrayTypeName", - "src": "12770:17:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1877, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 1945, - "src": "12813:19:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1876, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "12813:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1879, - "name": "_approverId", - "nodeType": "VariableDeclaration", - "scope": 1945, - "src": "12839:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1878, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12839:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1882, - "name": "_tokenAmounts", - "nodeType": "VariableDeclaration", - "scope": 1945, - "src": "12862:27:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 1880, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12862:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 1881, - "length": null, - "nodeType": "ArrayTypeName", - "src": "12862:6:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1884, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 1945, - "src": "12896:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1883, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12896:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12712:199:4" - }, - "returnParameters": { - "id": 1886, - "nodeType": "ParameterList", - "parameters": [], - "src": "12929:0:4" - }, - "scope": 2505, - "src": "12683:1253:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2025, - "nodeType": "Block", - "src": "14208:1055:4", - "statements": [ - { - "assignments": [ - 1967 - ], - "declarations": [ - { - "constant": false, - "id": 1967, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 2025, - "src": "14215:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 1966, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "14215:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1984, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1972, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "14263:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 1971, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14255:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1973, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14255:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d6574614368616e6765426f756e7479", - "id": 1974, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14321:18:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_24aac19b9cf3bf43d15f431164280285fcec8fd7e4162f5257dc77096a92ad13", - "typeString": "literal_string \"metaChangeBounty\"" - }, - "value": "metaChangeBounty" - }, - { - "argumentTypes": null, - "id": 1975, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1949, - "src": "14392:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1976, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1951, - "src": "14454:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1977, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1954, - "src": "14516:8:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1978, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1957, - "src": "14577:10:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 1979, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1959, - "src": "14640:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 1980, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1961, - "src": "14698:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 1981, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1963, - "src": "14760:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_24aac19b9cf3bf43d15f431164280285fcec8fd7e4162f5257dc77096a92ad13", - "typeString": "literal_string \"metaChangeBounty\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 1969, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "14244:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 1970, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14244:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 1982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14244:523:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1968, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "14234:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 1983, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14234:534:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14215:553:4" - }, - { - "assignments": [ - 1986 - ], - "declarations": [ - { - "constant": false, - "id": 1986, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 2025, - "src": "14775:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 1985, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14775:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 1991, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 1988, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1967, - "src": "14802:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 1989, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1947, - "src": "14812:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 1987, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "14792:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 1990, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14792:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14775:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 1997, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 1993, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1986, - "src": "14887:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 1995, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14905:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 1994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14897:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 1996, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14897:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14887:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 1992, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "14879:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 1998, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14879:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 1999, - "nodeType": "ExpressionStatement", - "src": "14879:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2001, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1963, - "src": "14923:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2002, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "14933:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2004, - "indexExpression": { - "argumentTypes": null, - "id": 2003, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1986, - "src": "14945:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14933:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14923:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2000, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "14915:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14915:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2007, - "nodeType": "ExpressionStatement", - "src": "14915:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2011, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "15014:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2008, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "15014:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2010, - "indexExpression": { - "argumentTypes": null, - "id": 2009, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1986, - "src": "15026:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15014:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2012, - "nodeType": "ExpressionStatement", - "src": "15014:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2016, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1986, - "src": "15074:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2017, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1949, - "src": "15101:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2018, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1951, - "src": "15131:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2019, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1954, - "src": "15161:8:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 2020, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1957, - "src": "15190:10:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 2021, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1959, - "src": "15221:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2022, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1961, - "src": "15247:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2013, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "15044:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 2015, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "changeBounty", - "nodeType": "MemberAccess", - "referencedDeclaration": 3822, - "src": "15044:29:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256,address payable[] memory,address payable[] memory,string memory,uint256) external" - } - }, - "id": 2023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15044:213:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2024, - "nodeType": "ExpressionStatement", - "src": "15044:213:4" - } - ] - }, - "documentation": null, - "id": 2026, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaChangeBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 1964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 1947, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 2026, - "src": "13974:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 1946, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "13974:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1949, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2026, - "src": "14004:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1948, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14004:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1951, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 2026, - "src": "14025:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1950, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14025:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1954, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 2026, - "src": "14046:33:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 1952, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14046:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1953, - "length": null, - "nodeType": "ArrayTypeName", - "src": "14046:17:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1957, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 2026, - "src": "14086:35:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 1955, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14086:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 1956, - "length": null, - "nodeType": "ArrayTypeName", - "src": "14086:17:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1959, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 2026, - "src": "14128:19:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 1958, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "14128:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1961, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 2026, - "src": "14154:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1960, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14154:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 1963, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 2026, - "src": "14175:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 1962, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14175:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13967:223:4" - }, - "returnParameters": { - "id": 1965, - "nodeType": "ParameterList", - "parameters": [], - "src": "14208:0:4" - }, - "scope": 2505, - "src": "13942:1321:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2096, - "nodeType": "Block", - "src": "15468:897:4", - "statements": [ - { - "assignments": [ - 2042 - ], - "declarations": [ - { - "constant": false, - "id": 2042, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "15475:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2041, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "15475:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2057, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2047, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "15523:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 2046, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "15515:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15515:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d6574614368616e6765497373756572", - "id": 2049, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15581:18:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8d269e2c77a9b37189b50de51e931f880e2cc9f26874ecdc24a474461a07ab08", - "typeString": "literal_string \"metaChangeIssuer\"" - }, - "value": "metaChangeIssuer" - }, - { - "argumentTypes": null, - "id": 2050, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "15652:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2051, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2032, - "src": "15714:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2052, - "name": "_issuerIdToChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "15776:17:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2053, - "name": "_newIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2036, - "src": "15846:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2054, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2038, - "src": "15909:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_8d269e2c77a9b37189b50de51e931f880e2cc9f26874ecdc24a474461a07ab08", - "typeString": "literal_string \"metaChangeIssuer\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2044, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "15504:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2045, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15504:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 2055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15504:412:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2043, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "15494:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2056, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15494:423:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15475:442:4" - }, - { - "assignments": [ - 2059 - ], - "declarations": [ - { - "constant": false, - "id": 2059, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 2096, - "src": "15924:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2058, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15924:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2064, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2061, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2042, - "src": "15951:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2062, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2028, - "src": "15961:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2060, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "15941:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 2063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15941:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15924:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2066, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2059, - "src": "16036:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2068, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16054:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16046:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2069, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16046:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16036:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2065, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "16028:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16028:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2072, - "nodeType": "ExpressionStatement", - "src": "16028:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2074, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2038, - "src": "16072:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2075, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "16082:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2077, - "indexExpression": { - "argumentTypes": null, - "id": 2076, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2059, - "src": "16094:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16082:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16072:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2073, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "16064:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16064:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2080, - "nodeType": "ExpressionStatement", - "src": "16064:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "16163:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2081, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "16163:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2083, - "indexExpression": { - "argumentTypes": null, - "id": 2082, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2059, - "src": "16175:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16163:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2085, - "nodeType": "ExpressionStatement", - "src": "16163:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2089, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2059, - "src": "16223:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2090, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2030, - "src": "16250:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2091, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2032, - "src": "16280:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2092, - "name": "_issuerIdToChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2034, - "src": "16310:17:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2093, - "name": "_newIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2036, - "src": "16348:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 2086, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "16193:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 2088, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "changeIssuer", - "nodeType": "MemberAccess", - "referencedDeclaration": 3883, - "src": "16193:29:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_payable_$returns$__$", - "typeString": "function (address,uint256,uint256,uint256,address payable) external" - } - }, - "id": 2094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16193:166:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2095, - "nodeType": "ExpressionStatement", - "src": "16193:166:4" - } - ] - }, - "documentation": null, - "id": 2097, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaChangeIssuer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2039, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2028, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 2097, - "src": "15301:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2027, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "15301:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2030, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2097, - "src": "15331:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2029, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15331:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2032, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 2097, - "src": "15352:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2031, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15352:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2034, - "name": "_issuerIdToChange", - "nodeType": "VariableDeclaration", - "scope": 2097, - "src": "15373:22:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2033, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15373:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2036, - "name": "_newIssuer", - "nodeType": "VariableDeclaration", - "scope": 2097, - "src": "15402:26:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2035, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15402:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2038, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 2097, - "src": "15435:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2037, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15435:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15294:156:4" - }, - "returnParameters": { - "id": 2040, - "nodeType": "ParameterList", - "parameters": [], - "src": "15468:0:4" - }, - "scope": 2505, - "src": "15269:1096:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2167, - "nodeType": "Block", - "src": "16565:887:4", - "statements": [ - { - "assignments": [ - 2113 - ], - "declarations": [ - { - "constant": false, - "id": 2113, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 2167, - "src": "16572:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2112, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "16572:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2128, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2118, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "16620:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 2117, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16612:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2119, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16612:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d6574614368616e6765417070726f766572", - "id": 2120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16678:20:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bd48a1a42af7ff3da4fad85a4891b6333c7a585b9c13c519e9fd54a5d4c7a5f6", - "typeString": "literal_string \"metaChangeApprover\"" - }, - "value": "metaChangeApprover" - }, - { - "argumentTypes": null, - "id": 2121, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2101, - "src": "16751:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2122, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2103, - "src": "16813:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2123, - "name": "_approverId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2105, - "src": "16875:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2124, - "name": "_approver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2107, - "src": "16939:9:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2125, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "17001:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_bd48a1a42af7ff3da4fad85a4891b6333c7a585b9c13c519e9fd54a5d4c7a5f6", - "typeString": "literal_string \"metaChangeApprover\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2115, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "16601:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2116, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16601:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 2126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16601:407:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2114, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "16591:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2127, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16591:418:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16572:437:4" - }, - { - "assignments": [ - 2130 - ], - "declarations": [ - { - "constant": false, - "id": 2130, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 2167, - "src": "17016:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2129, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17016:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2135, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2132, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2113, - "src": "17043:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2133, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2099, - "src": "17053:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2131, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "17033:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 2134, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17033:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17016:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2141, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2137, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2130, - "src": "17128:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2139, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17146:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2138, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17138:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2140, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17138:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17128:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2136, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17120:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17120:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2143, - "nodeType": "ExpressionStatement", - "src": "17120:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2149, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2145, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "17164:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2146, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "17174:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2148, - "indexExpression": { - "argumentTypes": null, - "id": 2147, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2130, - "src": "17186:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17174:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17164:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2144, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17156:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2150, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17156:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2151, - "nodeType": "ExpressionStatement", - "src": "17156:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "17255:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2152, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "17255:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2154, - "indexExpression": { - "argumentTypes": null, - "id": 2153, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2130, - "src": "17267:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17255:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2156, - "nodeType": "ExpressionStatement", - "src": "17255:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2160, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2130, - "src": "17317:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2161, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2101, - "src": "17344:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2162, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2103, - "src": "17374:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2163, - "name": "_approverId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2105, - "src": "17404:11:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2164, - "name": "_approver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2107, - "src": "17436:9:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "id": 2157, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "17285:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 2159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "changeApprover", - "nodeType": "MemberAccess", - "referencedDeclaration": 3930, - "src": "17285:31:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_payable_$returns$__$", - "typeString": "function (address,uint256,uint256,uint256,address payable) external" - } - }, - "id": 2165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17285:161:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2166, - "nodeType": "ExpressionStatement", - "src": "17285:161:4" - } - ] - }, - "documentation": null, - "id": 2168, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaChangeApprover", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2110, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2099, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 2168, - "src": "16405:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2098, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "16405:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2101, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2168, - "src": "16435:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2100, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16435:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2103, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 2168, - "src": "16456:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2102, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16456:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2105, - "name": "_approverId", - "nodeType": "VariableDeclaration", - "scope": 2168, - "src": "16477:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2104, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16477:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2107, - "name": "_approver", - "nodeType": "VariableDeclaration", - "scope": 2168, - "src": "16500:25:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2106, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16500:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2109, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 2168, - "src": "16532:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2108, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16532:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16398:149:4" - }, - "returnParameters": { - "id": 2111, - "nodeType": "ParameterList", - "parameters": [], - "src": "16565:0:4" - }, - "scope": 2505, - "src": "16371:1081:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2234, - "nodeType": "Block", - "src": "17619:769:4", - "statements": [ - { - "assignments": [ - 2182 - ], - "declarations": [ - { - "constant": false, - "id": 2182, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 2234, - "src": "17626:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2181, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "17626:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2196, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2187, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "17674:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 2186, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17666:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2188, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17666:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d6574614368616e676544617461", - "id": 2189, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17732:16:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_a136a7e99fd205d0dcb4550621ef5b54e3c98302578208b3f3175b4335c2c913", - "typeString": "literal_string \"metaChangeData\"" - }, - "value": "metaChangeData" - }, - { - "argumentTypes": null, - "id": 2190, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2172, - "src": "17801:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2191, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2174, - "src": "17863:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2192, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "17925:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2193, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2178, - "src": "17983:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_a136a7e99fd205d0dcb4550621ef5b54e3c98302578208b3f3175b4335c2c913", - "typeString": "literal_string \"metaChangeData\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2184, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "17655:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2185, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17655:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 2194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17655:335:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2183, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "17645:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17645:346:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17626:365:4" - }, - { - "assignments": [ - 2198 - ], - "declarations": [ - { - "constant": false, - "id": 2198, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 2234, - "src": "17998:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2197, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17998:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2203, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2200, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2182, - "src": "18025:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2201, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2170, - "src": "18035:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2199, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "18015:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 2202, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18015:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17998:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2205, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2198, - "src": "18110:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2207, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18128:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2206, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18120:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2208, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18120:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "18110:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2204, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "18102:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2210, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18102:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2211, - "nodeType": "ExpressionStatement", - "src": "18102:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2213, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2178, - "src": "18146:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2214, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "18156:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2216, - "indexExpression": { - "argumentTypes": null, - "id": 2215, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2198, - "src": "18168:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18156:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18146:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2212, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "18138:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18138:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2219, - "nodeType": "ExpressionStatement", - "src": "18138:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "18237:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2220, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "18237:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2222, - "indexExpression": { - "argumentTypes": null, - "id": 2221, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2198, - "src": "18249:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18237:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2224, - "nodeType": "ExpressionStatement", - "src": "18237:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2228, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2198, - "src": "18295:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2229, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2172, - "src": "18320:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2230, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2174, - "src": "18348:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2231, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "18376:5:4", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 2225, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "18267:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 2227, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "changeData", - "nodeType": "MemberAccess", - "referencedDeclaration": 4049, - "src": "18267:27:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,uint256,string memory) external" - } - }, - "id": 2232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18267:115:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2233, - "nodeType": "ExpressionStatement", - "src": "18267:115:4" - } - ] - }, - "documentation": null, - "id": 2235, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaChangeData", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2179, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2170, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 2235, - "src": "17488:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2169, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "17488:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2172, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2235, - "src": "17518:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2171, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17518:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2174, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 2235, - "src": "17539:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2173, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17539:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2176, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 2235, - "src": "17560:19:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2175, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "17560:6:4", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2178, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 2235, - "src": "17586:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2177, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17586:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17481:120:4" - }, - "returnParameters": { - "id": 2180, - "nodeType": "ParameterList", - "parameters": [], - "src": "17619:0:4" - }, - "scope": 2505, - "src": "17458:930:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2301, - "nodeType": "Block", - "src": "18555:797:4", - "statements": [ - { - "assignments": [ - 2249 - ], - "declarations": [ - { - "constant": false, - "id": 2249, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 2301, - "src": "18562:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2248, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "18562:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2263, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2254, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "18610:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 2253, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18602:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2255, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18602:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d6574614368616e6765446561646c696e65", - "id": 2256, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18668:20:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b419befe26b3c7190750e9f6987242e374c4ca6b6a5aeede9805c14cb6cb7228", - "typeString": "literal_string \"metaChangeDeadline\"" - }, - "value": "metaChangeDeadline" - }, - { - "argumentTypes": null, - "id": 2257, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2239, - "src": "18741:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2258, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2241, - "src": "18803:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2259, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2243, - "src": "18865:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2260, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2245, - "src": "18927:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_b419befe26b3c7190750e9f6987242e374c4ca6b6a5aeede9805c14cb6cb7228", - "typeString": "literal_string \"metaChangeDeadline\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2251, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "18591:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2252, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "18591:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 2261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18591:343:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2250, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "18581:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18581:354:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18562:373:4" - }, - { - "assignments": [ - 2265 - ], - "declarations": [ - { - "constant": false, - "id": 2265, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 2301, - "src": "18942:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2264, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18942:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2270, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2267, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2249, - "src": "18969:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2268, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2237, - "src": "18979:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2266, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "18959:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 2269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18959:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18942:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2272, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2265, - "src": "19054:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2274, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19072:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2273, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19064:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2275, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19064:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "19054:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2271, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "19046:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19046:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2278, - "nodeType": "ExpressionStatement", - "src": "19046:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2284, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2280, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2245, - "src": "19090:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2281, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "19100:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2283, - "indexExpression": { - "argumentTypes": null, - "id": 2282, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2265, - "src": "19112:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19100:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19090:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2279, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "19082:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2285, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19082:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2286, - "nodeType": "ExpressionStatement", - "src": "19082:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "19181:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2287, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "19181:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2289, - "indexExpression": { - "argumentTypes": null, - "id": 2288, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2265, - "src": "19193:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "19181:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2291, - "nodeType": "ExpressionStatement", - "src": "19181:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2295, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2265, - "src": "19243:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2296, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2239, - "src": "19272:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2297, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2241, - "src": "19304:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2298, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2243, - "src": "19336:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2292, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "19211:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 2294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "changeDeadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 4089, - "src": "19211:31:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256,uint256) external" - } - }, - "id": 2299, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19211:135:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2300, - "nodeType": "ExpressionStatement", - "src": "19211:135:4" - } - ] - }, - "documentation": null, - "id": 2302, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaChangeDeadline", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2246, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2237, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 2302, - "src": "18428:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2236, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "18428:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2239, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2302, - "src": "18458:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2238, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "18458:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2241, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 2302, - "src": "18479:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2240, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "18479:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2243, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 2302, - "src": "18500:15:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2242, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "18500:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2245, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 2302, - "src": "18522:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2244, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18522:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18421:116:4" - }, - "returnParameters": { - "id": 2247, - "nodeType": "ParameterList", - "parameters": [], - "src": "18555:0:4" - }, - "scope": 2505, - "src": "18394:958:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2369, - "nodeType": "Block", - "src": "19533:775:4", - "statements": [ - { - "assignments": [ - 2317 - ], - "declarations": [ - { - "constant": false, - "id": 2317, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 2369, - "src": "19540:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2316, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "19540:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2331, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2322, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "19588:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 2321, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "19580:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2323, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19580:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d65746141646449737375657273", - "id": 2324, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19646:16:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e5c366eaaa397c768341eb557a97468d5e3264c4ebefb507fce9144dd234a80a", - "typeString": "literal_string \"metaAddIssuers\"" - }, - "value": "metaAddIssuers" - }, - { - "argumentTypes": null, - "id": 2325, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2306, - "src": "19715:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2326, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2308, - "src": "19777:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2327, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2311, - "src": "19839:8:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 2328, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2313, - "src": "19900:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_e5c366eaaa397c768341eb557a97468d5e3264c4ebefb507fce9144dd234a80a", - "typeString": "literal_string \"metaAddIssuers\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2319, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "19569:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2320, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "19569:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 2329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19569:338:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2318, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "19559:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2330, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19559:349:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19540:368:4" - }, - { - "assignments": [ - 2333 - ], - "declarations": [ - { - "constant": false, - "id": 2333, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 2369, - "src": "19915:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19915:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2338, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2335, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2317, - "src": "19942:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2336, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2304, - "src": "19952:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2334, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "19932:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 2337, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19932:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19915:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2340, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "20027:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2342, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20045:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20037:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2343, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20037:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20027:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2339, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "20019:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20019:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2346, - "nodeType": "ExpressionStatement", - "src": "20019:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2348, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2313, - "src": "20063:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2349, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "20073:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2351, - "indexExpression": { - "argumentTypes": null, - "id": 2350, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "20085:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "20073:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20063:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2347, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "20055:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20055:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2354, - "nodeType": "ExpressionStatement", - "src": "20055:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "20154:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2355, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "20154:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2357, - "indexExpression": { - "argumentTypes": null, - "id": 2356, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "20166:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20154:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2359, - "nodeType": "ExpressionStatement", - "src": "20154:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2363, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2333, - "src": "20212:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2364, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2306, - "src": "20237:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2365, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2308, - "src": "20265:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2366, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2311, - "src": "20293:8:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 2360, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "20184:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 2362, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addIssuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 4149, - "src": "20184:27:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,uint256,address payable[] memory) external" - } - }, - "id": 2367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20184:118:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2368, - "nodeType": "ExpressionStatement", - "src": "20184:118:4" - } - ] - }, - "documentation": null, - "id": 2370, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaAddIssuers", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2304, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 2370, - "src": "19388:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2303, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "19388:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2306, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2370, - "src": "19418:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2305, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "19418:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2308, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 2370, - "src": "19439:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2307, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "19439:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2311, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 2370, - "src": "19460:33:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 2309, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19460:15:4", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 2310, - "length": null, - "nodeType": "ArrayTypeName", - "src": "19460:17:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2313, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 2370, - "src": "19500:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2312, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19500:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19381:134:4" - }, - "returnParameters": { - "id": 2315, - "nodeType": "ParameterList", - "parameters": [], - "src": "19533:0:4" - }, - "scope": 2505, - "src": "19358:950:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2437, - "nodeType": "Block", - "src": "20485:783:4", - "statements": [ - { - "assignments": [ - 2385 - ], - "declarations": [ - { - "constant": false, - "id": 2385, - "name": "metaHash", - "nodeType": "VariableDeclaration", - "scope": 2437, - "src": "20492:16:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2384, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "20492:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2399, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2390, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10467, - "src": "20540:4:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_BountiesMetaTxRelayer_$2505", - "typeString": "contract BountiesMetaTxRelayer" - } - ], - "id": 2389, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20532:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20532:13:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "6d657461416464417070726f76657273", - "id": 2392, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20598:18:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_3dd98bd79db118185d095fd282d4e4d83c44be55d5f5c1409639178e159df2f4", - "typeString": "literal_string \"metaAddApprovers\"" - }, - "value": "metaAddApprovers" - }, - { - "argumentTypes": null, - "id": 2393, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2374, - "src": "20669:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2394, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2376, - "src": "20731:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2395, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2379, - "src": "20793:10:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 2396, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2381, - "src": "20856:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_stringliteral_3dd98bd79db118185d095fd282d4e4d83c44be55d5f5c1409639178e159df2f4", - "typeString": "literal_string \"metaAddApprovers\"" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 2387, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "20521:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2388, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encode", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "20521:10:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 2397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20521:342:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2386, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "20511:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20511:353:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20492:372:4" - }, - { - "assignments": [ - 2401 - ], - "declarations": [ - { - "constant": false, - "id": 2401, - "name": "signer", - "nodeType": "VariableDeclaration", - "scope": 2437, - "src": "20871:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2400, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20871:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2406, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2403, - "name": "metaHash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2385, - "src": "20898:8:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2404, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2372, - "src": "20908:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2402, - "name": "getSigner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "20888:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_bytes_memory_ptr_$returns$_t_address_$", - "typeString": "function (bytes32,bytes memory) pure returns (address)" - } - }, - "id": 2405, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20888:31:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "20871:48:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2408, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2401, - "src": "20983:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2410, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21001:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2409, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "20993:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2411, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20993:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "20983:20:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2407, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "20975:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20975:29:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2414, - "nodeType": "ExpressionStatement", - "src": "20975:29:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2416, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2381, - "src": "21019:6:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2417, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "21029:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2419, - "indexExpression": { - "argumentTypes": null, - "id": 2418, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2401, - "src": "21041:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21029:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "21019:29:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2415, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "21011:7:4", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21011:38:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2422, - "nodeType": "ExpressionStatement", - "src": "21011:38:4" - }, - { - "expression": { - "argumentTypes": null, - "id": 2426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "21110:21:4", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2423, - "name": "replayNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1020, - "src": "21110:11:4", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 2425, - "indexExpression": { - "argumentTypes": null, - "id": 2424, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2401, - "src": "21122:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "21110:19:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2427, - "nodeType": "ExpressionStatement", - "src": "21110:21:4" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2431, - "name": "signer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2401, - "src": "21170:6:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2432, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2374, - "src": "21195:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2433, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2376, - "src": "21223:9:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2434, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2379, - "src": "21251:10:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 2428, - "name": "bountiesContract", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 1016, - "src": "21140:16:4", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - }, - "id": 2430, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "addApprovers", - "nodeType": "MemberAccess", - "referencedDeclaration": 4209, - "src": "21140:29:4", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,uint256,address[] memory) external" - } - }, - "id": 2435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21140:122:4", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2436, - "nodeType": "ExpressionStatement", - "src": "21140:122:4" - } - ] - }, - "documentation": null, - "id": 2438, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "metaAddApprovers", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2382, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2372, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 2438, - "src": "20346:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2371, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "20346:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2374, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2438, - "src": "20376:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2373, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "20376:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2376, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 2438, - "src": "20397:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2375, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "20397:4:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2379, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 2438, - "src": "20418:27:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2377, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "20418:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2378, - "length": null, - "nodeType": "ArrayTypeName", - "src": "20418:9:4", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2381, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 2438, - "src": "20452:14:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2380, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "20452:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "20339:128:4" - }, - "returnParameters": { - "id": 2383, - "nodeType": "ParameterList", - "parameters": [], - "src": "20485:0:4" - }, - "scope": 2505, - "src": "20314:954:4", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2503, - "nodeType": "Block", - "src": "21394:496:4", - "statements": [ - { - "assignments": [ - 2448 - ], - "declarations": [ - { - "constant": false, - "id": 2448, - "name": "r", - "nodeType": "VariableDeclaration", - "scope": 2503, - "src": "21401:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2447, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "21401:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2449, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "21401:9:4" - }, - { - "assignments": [ - 2451 - ], - "declarations": [ - { - "constant": false, - "id": 2451, - "name": "s", - "nodeType": "VariableDeclaration", - "scope": 2503, - "src": "21417:9:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2450, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "21417:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2452, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "21417:9:4" - }, - { - "assignments": [ - 2454 - ], - "declarations": [ - { - "constant": false, - "id": 2454, - "name": "v", - "nodeType": "VariableDeclaration", - "scope": 2503, - "src": "21433:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2453, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "21433:5:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2455, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "21433:7:4" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2459, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2456, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2442, - "src": "21451:10:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - "id": 2457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21451:17:4", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3635", - "id": 2458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21472:2:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_65_by_1", - "typeString": "int_const 65" - }, - "value": "65" - }, - "src": "21451:23:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2465, - "nodeType": "IfStatement", - "src": "21447:62:4", - "trueBody": { - "id": 2464, - "nodeType": "Block", - "src": "21475:34:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2461, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21499:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2460, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21491:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2462, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21491:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "functionReturnParameters": 2446, - "id": 2463, - "nodeType": "Return", - "src": "21484:17:4" - } - ] - } - }, - { - "externalReferences": [ - { - "r": { - "declaration": 2448, - "isOffset": false, - "isSlot": false, - "src": "21533:1:4", - "valueSize": 1 - } - }, - { - "_signature": { - "declaration": 2442, - "isOffset": false, - "isSlot": false, - "src": "21548:10:4", - "valueSize": 1 - } - }, - { - "v": { - "declaration": 2454, - "isOffset": false, - "isSlot": false, - "src": "21611:1:4", - "valueSize": 1 - } - }, - { - "s": { - "declaration": 2451, - "isOffset": false, - "isSlot": false, - "src": "21572:1:4", - "valueSize": 1 - } - }, - { - "_signature": { - "declaration": 2442, - "isOffset": false, - "isSlot": false, - "src": "21587:10:4", - "valueSize": 1 - } - }, - { - "_signature": { - "declaration": 2442, - "isOffset": false, - "isSlot": false, - "src": "21634:10:4", - "valueSize": 1 - } - } - ], - "id": 2466, - "nodeType": "InlineAssembly", - "operations": "{\n r := mload(add(_signature, 32))\n s := mload(add(_signature, 64))\n v := byte(0, mload(add(_signature, 96)))\n}", - "src": "21515:143:4" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2469, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2467, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2454, - "src": "21668:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3237", - "id": 2468, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21672:2:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_27_by_1", - "typeString": "int_const 27" - }, - "value": "27" - }, - "src": "21668:6:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2475, - "nodeType": "IfStatement", - "src": "21664:35:4", - "trueBody": { - "id": 2474, - "nodeType": "Block", - "src": "21675:24:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2472, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2470, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2454, - "src": "21684:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "3237", - "id": 2471, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21689:2:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_27_by_1", - "typeString": "int_const 27" - }, - "value": "27" - }, - "src": "21684:7:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 2473, - "nodeType": "ExpressionStatement", - "src": "21684:7:4" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2478, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2476, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2454, - "src": "21709:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3237", - "id": 2477, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21714:2:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_27_by_1", - "typeString": "int_const 27" - }, - "value": "27" - }, - "src": "21709:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2479, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2454, - "src": "21720:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3238", - "id": 2480, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21725:2:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_28_by_1", - "typeString": "int_const 28" - }, - "value": "28" - }, - "src": "21720:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "21709:18:4", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 2501, - "nodeType": "Block", - "src": "21768:117:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "19457468657265756d205369676e6564204d6573736167653a0a3332", - "id": 2492, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21823:34:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73", - "typeString": "literal_string \"\u0019Ethereum Signed Message:\n32\"" - }, - "value": "\u0019Ethereum Signed Message:\n32" - }, - { - "argumentTypes": null, - "id": 2493, - "name": "_hash", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2440, - "src": "21859:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_stringliteral_178a2411ab6fbc1ba11064408972259c558d0e82fd48b0aba3ad81d14f065e73", - "typeString": "literal_string \"\u0019Ethereum Signed Message:\n32\"" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "expression": { - "argumentTypes": null, - "id": 2490, - "name": "abi", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10398, - "src": "21806:3:4", - "typeDescriptions": { - "typeIdentifier": "t_magic_abi", - "typeString": "abi" - } - }, - "id": 2491, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "encodePacked", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21806:16:4", - "typeDescriptions": { - "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", - "typeString": "function () pure returns (bytes memory)" - } - }, - "id": 2494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21806:59:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 2489, - "name": "keccak256", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10405, - "src": "21796:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", - "typeString": "function (bytes memory) pure returns (bytes32)" - } - }, - "id": 2495, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21796:70:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2496, - "name": "v", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2454, - "src": "21868:1:4", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - { - "argumentTypes": null, - "id": 2497, - "name": "r", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2448, - "src": "21871:1:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - { - "argumentTypes": null, - "id": 2498, - "name": "s", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2451, - "src": "21874:1:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - ], - "id": 2488, - "name": "ecrecover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10403, - "src": "21786:9:4", - "typeDescriptions": { - "typeIdentifier": "t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$", - "typeString": "function (bytes32,uint8,bytes32,bytes32) pure returns (address)" - } - }, - "id": 2499, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21786:91:4", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 2446, - "id": 2500, - "nodeType": "Return", - "src": "21779:98:4" - } - ] - }, - "id": 2502, - "nodeType": "IfStatement", - "src": "21705:180:4", - "trueBody": { - "id": 2487, - "nodeType": "Block", - "src": "21728:34:4", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2484, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21752:1:4", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2483, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "21744:7:4", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2485, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21744:10:4", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "functionReturnParameters": 2446, - "id": 2486, - "nodeType": "Return", - "src": "21737:17:4" - } - ] - } - } - ] - }, - "documentation": null, - "id": 2504, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getSigner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2443, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2440, - "name": "_hash", - "nodeType": "VariableDeclaration", - "scope": 2504, - "src": "21299:13:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - }, - "typeName": { - "id": 2439, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "21299:7:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes32", - "typeString": "bytes32" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2442, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 2504, - "src": "21319:23:4", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 2441, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "21319:5:4", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21292:51:4" - }, - "returnParameters": { - "id": 2446, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2445, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2504, - "src": "21382:7:4", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2444, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21382:7:4", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21381:9:4" - }, - "scope": 2505, - "src": "21274:616:4", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 2506, - "src": "109:21784:4" - } - ], - "src": "0:21895:4" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": { - "10": { - "events": {}, - "links": {}, - "address": "0x94A9B7f96c5ad50AEDDFc8191dE3CF19E3F6E06A", - "transactionHash": "0xc7eb7d1a1b9393906f2db2387cceb8ea491cbeceaac07bad156cb3acf3a46641" - } - }, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:31.137Z", - "networkType": "ethereum", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/ClaimsToken.json b/src/contracts/ClaimsToken.json deleted file mode 100644 index 5a3cc0e..0000000 --- a/src/contracts/ClaimsToken.json +++ /dev/null @@ -1,10929 +0,0 @@ -{ - "contractName": "ClaimsToken", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "spender", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "withdrawFunds", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "spender", - "type": "address" - }, - { - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "processedFunds", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "claimedFunds", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "spender", - "type": "address" - }, - { - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "receivedFunds", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_owner", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": false, - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": false, - "name": "fundsReceived", - "type": "uint256" - } - ], - "name": "FundsReceived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "by", - "type": "address" - }, - { - "indexed": false, - "name": "fundsWithdrawn", - "type": "uint256" - } - ], - "name": "FundsWithdrawn", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalReceivedFunds", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_forAddress", - "type": "address" - } - ], - "name": "availableFunds", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalReceivedFunds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"withdrawFunds\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"processedFunds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimedFunds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_forAddress\",\"type\":\"address\"}],\"name\":\"availableFunds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"receivedFunds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"fundsReceived\",\"type\":\"uint256\"}],\"name\":\"FundsReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"by\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"fundsWithdrawn\",\"type\":\"uint256\"}],\"name\":\"FundsWithdrawn\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"details\":\"Function to check the amount of tokens that an owner allowed to a spender.\\r\",\"params\":{\"owner\":\"address The address which owns the funds.\\r\",\"spender\":\"address The address which will spend the funds.\\r\"},\"return\":\"A uint256 specifying the amount of tokens still available for the spender.\\r\"},\"approve(address,uint256)\":{\"details\":\"Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\\r Beware that changing an allowance with this method brings the risk that someone may use both the old\\r and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\\r race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\\r https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\r\",\"params\":{\"spender\":\"The address which will spend the funds.\\r\",\"value\":\"The amount of tokens to be spent.\\r\"}},\"availableFunds(address)\":{\"details\":\"Returns the amount of funds a given address is able to withdraw currently.\\r\",\"params\":{\"_forAddress\":\"Address of ClaimsToken holder\\r\"},\"return\":\"A uint256 representing the available funds for a given account\\r\"},\"balanceOf(address)\":{\"details\":\"Gets the balance of the specified address.\\r\",\"params\":{\"owner\":\"The address to query the balance of.\\r\"},\"return\":\"An uint256 representing the amount owned by the passed address.\\r\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation.\\r For example, if `decimals` equals `2`, a balance of `505` tokens should\\r be displayed to a user as `5,05` (`505 / 10 ** 2`).\\r * Tokens usually opt for a value of 18, imitating the relationship between\\r Ether and Wei.\\r * NOTE: This information is only used for _display_ purposes: it in\\r no way affects any of the arithmetic of the contract, including\\r {IERC20-balanceOf} and {IERC20-transfer}.\\r\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Decrease the amount of tokens that an owner allowed to a spender.\\r approve should be called when allowed_[_spender] == 0. To decrement\\r allowed value is better to use this function to avoid 2 calls (and wait until\\r the first transaction is mined)\\r From MonolithDAO Token.sol\\r Emits an Approval event.\\r\",\"params\":{\"spender\":\"The address which will spend the funds.\\r\",\"subtractedValue\":\"The amount of tokens to decrease the allowance by.\\r\"}},\"increaseAllowance(address,uint256)\":{\"details\":\"Increase the amount of tokens that an owner allowed to a spender.\\r approve should be called when allowed_[_spender] == 0. To increment\\r allowed value is better to use this function to avoid 2 calls (and wait until\\r the first transaction is mined)\\r From MonolithDAO Token.sol\\r Emits an Approval event.\\r\",\"params\":{\"addedValue\":\"The amount of tokens to increase the allowance by.\\r\",\"spender\":\"The address which will spend the funds.\\r\"}},\"name()\":{\"details\":\"Returns the name of the token.\\r\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the\\r name.\\r\"},\"totalReceivedFunds()\":{\"details\":\"Get cumulative funds received by ClaimsToken.\\r\",\"return\":\"A uint256 representing the total funds received by ClaimsToken\\r\"},\"totalSupply()\":{\"details\":\"Total number of tokens in existence\\r\"},\"transfer(address,uint256)\":{\"details\":\"Transfer token to a specified address.\\r Claims funds for both parties, whereby the amount of tokens withdrawn\\r is inherited by the new token owner.\\r\",\"params\":{\"_to\":\"The address to transfer to\\r\",\"_value\":\"The amount to be transferred\\r\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfer tokens from one address to another.\\r Claims funds for both parties, whereby the amount of tokens withdrawn\\r is inherited by the new token owner.\\r\",\"params\":{\"_from\":\"address The address which you want to send tokens from\\r\",\"_to\":\"address The address which you want to transfer to\\r\",\"_value\":\"uint256 the amount of tokens to be transferred\\r\"}},\"withdrawFunds()\":{\"details\":\"Withdraws available funds for user.\\r\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol\":\"ClaimsToken\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol\":{\"keccak256\":\"0x83d94afc84930834148f8e00b2b2b624be5e2a910aeb9f508b6e3252648b304a\",\"urls\":[\"bzzr://074edfefdd7f638d059397b8b72e70605bb8eba1e750d8d512d86a5d8abaf966\",\"dweb:/ipfs/QmTPEnc9wjRf7jZ1xzh68sAjusFY5XHCTLpy79yCtCuWrA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol\":{\"keccak256\":\"0xd97866cc5c8b2c90cd57a126748771aad20762b3c708c30a4412ce17a9b79333\",\"urls\":[\"bzzr://0b6010f15f59b69c79df02987919092e5c44bd47602737eb54f4545237b5e636\",\"dweb:/ipfs/QmbPTbnWnvkWF8PRLgpmoXBr7UpJVyULmVRagrskTpkjyJ\"]}},\"version\":1}", - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity >=0.5.0 < 0.6.0;\r\n\r\nimport \"../oz/SafeMath.sol\";\r\nimport \"../oz/IERC20.sol\";\r\nimport \"../oz/ERC20.sol\";\r\n\r\n/**\r\n * @dev Optional functions from the ERC20 standard.\r\n */\r\ncontract ERC20Detailed is IERC20 {\r\n string private _name;\r\n string private _symbol;\r\n uint8 private _decimals;\r\n\r\n /**\r\n * @dev Sets the values for `name`, `symbol`, and `decimals`. All three of\r\n * these values are immutable: they can only be set once during\r\n * construction.\r\n */\r\n constructor (string memory name, string memory symbol, uint8 decimals) public {\r\n _name = name;\r\n _symbol = symbol;\r\n _decimals = decimals;\r\n }\r\n\r\n /**\r\n * @dev Returns the name of the token.\r\n */\r\n function name() public view returns (string memory) {\r\n return _name;\r\n }\r\n\r\n /**\r\n * @dev Returns the symbol of the token, usually a shorter version of the\r\n * name.\r\n */\r\n function symbol() public view returns (string memory) {\r\n return _symbol;\r\n }\r\n\r\n /**\r\n * @dev Returns the number of decimals used to get its user representation.\r\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\r\n * be displayed to a user as `5,05` (`505 / 10 ** 2`).\r\n *\r\n * Tokens usually opt for a value of 18, imitating the relationship between\r\n * Ether and Wei.\r\n *\r\n * NOTE: This information is only used for _display_ purposes: it in\r\n * no way affects any of the arithmetic of the contract, including\r\n * {IERC20-balanceOf} and {IERC20-transfer}.\r\n */\r\n function decimals() public view returns (uint8) {\r\n return _decimals;\r\n }\r\n}\r\n\r\ninterface IClaimsToken {\r\n\r\n\t/**\r\n\t * @dev This event emits when funds to be deposited are sent to the token contract\r\n\t * @param from contains the address of the sender of the received funds\r\n\t * @param fundsReceived contains the amount of funds received for distribution\r\n\t */\r\n\tevent FundsReceived(address indexed from, uint256 fundsReceived);\r\n\r\n\t/**\r\n\t * @dev This event emits when distributed funds are withdrawn by a token holder.\r\n\t * @param by contains the address of the receiver of funds\r\n\t * @param fundsWithdrawn contains the amount of funds that were withdrawn\r\n\t */\r\n\tevent FundsWithdrawn(address indexed by, uint256 fundsWithdrawn);\r\n\r\n\t/**\r\n\t * @dev Withdraws available funds for user.\r\n\t */\r\n\tfunction withdrawFunds() external payable;\r\n\r\n\t/**\r\n\t * @dev Returns the amount of funds a given address is able to withdraw currently.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t * @return A uint256 representing the available funds for a given account\r\n\t */\r\n\tfunction availableFunds(address _forAddress) external view returns (uint256);\r\n\r\n\t/**\r\n\t * @dev Get cumulative funds received by ClaimsToken.\r\n\t * @return A uint256 representing the total funds received by ClaimsToken\r\n\t */\r\n\tfunction totalReceivedFunds() external view returns (uint256);\r\n}\r\n\r\ncontract ClaimsToken is IClaimsToken, ERC20, ERC20Detailed {\r\n\r\n\tusing SafeMath for uint256;\r\n\r\n\t// cumulative funds received by this contract\r\n\tuint256 public receivedFunds;\r\n\t// cumulative funds received which were already processed for distribution - by user\r\n\tmapping (address => uint256) public processedFunds;\r\n\t// claimed but not yet withdrawn funds for a user\r\n\tmapping (address => uint256) public claimedFunds;\r\n\r\n\r\n\tconstructor(address _owner)\r\n\t\tpublic\r\n\t\tERC20Detailed(\"ClaimsToken\", \"CST\", 18)\r\n\t{\r\n\t\t_mint(_owner, 10000 * (10 ** uint256(18)));\r\n\r\n\t\treceivedFunds = 0;\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Transfer token to a specified address.\r\n\t * Claims funds for both parties, whereby the amount of tokens withdrawn\r\n\t * is inherited by the new token owner.\r\n\t * @param _to The address to transfer to\r\n\t * @param _value The amount to be transferred\r\n\t */\r\n\tfunction transfer(address _to, uint256 _value)\r\n\t\tpublic\r\n\t\treturns (bool)\r\n\t{\r\n\t\t_claimFunds(msg.sender);\r\n\t\t_claimFunds(_to);\r\n\r\n\t\treturn super.transfer(_to, _value);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @dev Transfer tokens from one address to another.\r\n\t * Claims funds for both parties, whereby the amount of tokens withdrawn\r\n\t * is inherited by the new token owner.\r\n\t * @param _from address The address which you want to send tokens from\r\n\t * @param _to address The address which you want to transfer to\r\n\t * @param _value uint256 the amount of tokens to be transferred\r\n\t */\r\n\tfunction transferFrom(address _from, address _to, uint256 _value)\r\n\t\tpublic\r\n\t\treturns (bool)\r\n\t{\r\n\t\t_claimFunds(_from);\r\n\t\t_claimFunds(_to);\r\n\r\n\t\treturn super.transferFrom(_from, _to, _value);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Get cumulative funds received by ClaimsToken.\r\n\t * @return A uint256 representing the total funds received by ClaimsToken\r\n\t */\r\n\tfunction totalReceivedFunds()\r\n\t\texternal\r\n\t\tview\r\n\t\treturns (uint256)\r\n\t{\r\n\t\treturn receivedFunds;\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Returns the amount of funds a given address is able to withdraw currently.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t * @return A uint256 representing the available funds for a given account\r\n\t */\r\n\tfunction availableFunds(address _forAddress)\r\n\t\tpublic\r\n\t\tview\r\n\t\treturns (uint256)\r\n\t{\r\n\t\treturn _calcUnprocessedFunds(_forAddress).add(claimedFunds[_forAddress]);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Increments cumulative received funds by new received funds.\r\n\t * Called when ClaimsToken receives funds.\r\n\t * @param _value Amount of tokens / Ether received\r\n\t */\r\n\tfunction _registerFunds(uint256 _value)\r\n\t\tinternal\r\n\t{\r\n\t\treceivedFunds = receivedFunds.add(_value);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Returns payout for a user which can be withdrawn or claimed.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t */\r\n\tfunction _calcUnprocessedFunds(address _forAddress)\r\n\t\tinternal\r\n\t\tview\r\n\t\treturns (uint256)\r\n\t{\r\n\t\tuint256 newReceivedFunds = receivedFunds.sub(processedFunds[_forAddress]);\r\n\t\treturn balanceOf(_forAddress).mul(newReceivedFunds).div(totalSupply());\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Claims funds for a user.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t */\r\n\tfunction _claimFunds(address _forAddress) internal {\r\n\t\tuint256 unprocessedFunds = _calcUnprocessedFunds(_forAddress);\r\n\r\n\t\tprocessedFunds[_forAddress] = receivedFunds;\r\n\t\tclaimedFunds[_forAddress] = claimedFunds[_forAddress].add(unprocessedFunds);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Sets claimed but not yet withdrawn funds to 0,\r\n\t * marks total received funds as processed and\r\n\t * returns the withdrawable amount for a user.\r\n\t * @return A uint256 representing the withdrawable funds\r\n\t */\r\n\tfunction _prepareWithdraw()\r\n\t\tinternal\r\n\t\treturns (uint256)\r\n\t{\r\n\t\tuint256 withdrawableFunds = availableFunds(msg.sender);\r\n\r\n\t\tprocessedFunds[msg.sender] = receivedFunds;\r\n\t\tclaimedFunds[msg.sender] = 0;\r\n\r\n\t\treturn withdrawableFunds;\r\n\t}\r\n}\r\n\r\ncontract ClaimsTokenERC20Extension is IClaimsToken, ClaimsToken {\r\n\r\n\t// token that ClaimsToken takes in custodianship\r\n\tIERC20 public fundsToken;\r\n\r\n\tmodifier onlyFundsToken () {\r\n\t\trequire(msg.sender == address(fundsToken), \"UNAUTHORIZED_SENDER\");\r\n\t\t_;\r\n\t}\r\n\r\n\tconstructor(address _owner, IERC20 _fundsToken)\r\n\t\tpublic\r\n\t\tClaimsToken(_owner)\r\n\t{\r\n\t\trequire(address(_fundsToken) != address(0));\r\n\r\n\t\tfundsToken = _fundsToken;\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Withdraws available funds for user.\r\n\t */\r\n\tfunction withdrawFunds()\r\n\t\texternal\r\n\t\tpayable\r\n\t{\r\n\t\trequire(msg.value == 0, \"\");\r\n\r\n\t\tuint256 withdrawableFunds = _prepareWithdraw();\r\n\r\n\t\trequire(fundsToken.transfer(msg.sender, withdrawableFunds), \"TRANSFER_FAILED\");\r\n\t}\r\n\r\n\t/**\r\n\t * @dev For ERC223.\r\n\t * Calls _registerFunds(), whereby total received funds (cumulative) gets updated.\r\n\t * @param _sender Sender of tokens\r\n\t * @param _value Amount of tokens\r\n\t */\r\n\tfunction tokenFallback(address _sender, uint256 _value, bytes memory)\r\n\t\tpublic\r\n\t\tonlyFundsToken()\r\n\t{\r\n\t\tif (_value > 0) {\r\n\t\t\t_registerFunds(_value);\r\n\t\t\temit FundsReceived(_sender, _value);\r\n\t\t}\r\n\t}\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\tokens\\ClaimsToken.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol", - "exportedSymbols": { - "ClaimsToken": [ - 10228 - ], - "ClaimsTokenERC20Extension": [ - 10327 - ], - "ERC20Detailed": [ - 9977 - ], - "IClaimsToken": [ - 10005 - ] - }, - "id": 10328, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9919, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:24" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "../oz/SafeMath.sol", - "id": 9920, - "nodeType": "ImportDirective", - "scope": 10328, - "sourceUnit": 9858, - "src": "36:28:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", - "file": "../oz/IERC20.sol", - "id": 9921, - "nodeType": "ImportDirective", - "scope": 10328, - "sourceUnit": 9720, - "src": "66:26:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol", - "file": "../oz/ERC20.sol", - "id": 9922, - "nodeType": "ImportDirective", - "scope": 10328, - "sourceUnit": 9651, - "src": "94:25:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 9923, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "212:6:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 9924, - "nodeType": "InheritanceSpecifier", - "src": "212:6:24" - } - ], - "contractDependencies": [ - 9719 - ], - "contractKind": "contract", - "documentation": "@dev Optional functions from the ERC20 standard.\r", - "fullyImplemented": false, - "id": 9977, - "linearizedBaseContracts": [ - 9977, - 9719 - ], - "name": "ERC20Detailed", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 9926, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 9977, - "src": "226:20:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 9925, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "226:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 9928, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 9977, - "src": "253:22:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 9927, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "253:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 9930, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 9977, - "src": "282:23:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9929, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "282:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 9951, - "nodeType": "Block", - "src": "581:89:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9939, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9926, - "src": "592:5:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9940, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9932, - "src": "600:4:24", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "592:12:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 9942, - "nodeType": "ExpressionStatement", - "src": "592:12:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 9945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9943, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9928, - "src": "615:7:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9944, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9934, - "src": "625:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "615:16:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 9946, - "nodeType": "ExpressionStatement", - "src": "615:16:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 9949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9947, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9930, - "src": "642:9:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9948, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9936, - "src": "654:8:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "642:20:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 9950, - "nodeType": "ExpressionStatement", - "src": "642:20:24" - } - ] - }, - "documentation": "@dev Sets the values for `name`, `symbol`, and `decimals`. All three of\r\nthese values are immutable: they can only be set once during\r\nconstruction.\r", - "id": 9952, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9937, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9932, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 9952, - "src": "516:18:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9931, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "516:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9934, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 9952, - "src": "536:20:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9933, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "536:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9936, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 9952, - "src": "558:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9935, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "558:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "515:58:24" - }, - "returnParameters": { - "id": 9938, - "nodeType": "ParameterList", - "parameters": [], - "src": "581:0:24" - }, - "scope": 9977, - "src": "503:167:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9959, - "nodeType": "Block", - "src": "792:31:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9957, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9926, - "src": "810:5:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 9956, - "id": 9958, - "nodeType": "Return", - "src": "803:12:24" - } - ] - }, - "documentation": "@dev Returns the name of the token.\r", - "id": 9960, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9953, - "nodeType": "ParameterList", - "parameters": [], - "src": "753:2:24" - }, - "returnParameters": { - "id": 9956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9955, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9960, - "src": "777:13:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9954, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "777:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "776:15:24" - }, - "scope": 9977, - "src": "740:83:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9967, - "nodeType": "Block", - "src": "996:33:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9965, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9928, - "src": "1014:7:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 9964, - "id": 9966, - "nodeType": "Return", - "src": "1007:14:24" - } - ] - }, - "documentation": "@dev Returns the symbol of the token, usually a shorter version of the\r\nname.\r", - "id": 9968, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9961, - "nodeType": "ParameterList", - "parameters": [], - "src": "957:2:24" - }, - "returnParameters": { - "id": 9964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9963, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9968, - "src": "981:13:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9962, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "981:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "980:15:24" - }, - "scope": 9977, - "src": "942:87:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9975, - "nodeType": "Block", - "src": "1640:35:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9973, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9930, - "src": "1658:9:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 9972, - "id": 9974, - "nodeType": "Return", - "src": "1651:16:24" - } - ] - }, - "documentation": "@dev Returns the number of decimals used to get its user representation.\r\nFor example, if `decimals` equals `2`, a balance of `505` tokens should\r\nbe displayed to a user as `5,05` (`505 / 10 ** 2`).\r\n\n * Tokens usually opt for a value of 18, imitating the relationship between\r\nEther and Wei.\r\n\n * NOTE: This information is only used for _display_ purposes: it in\r\nno way affects any of the arithmetic of the contract, including\r\n{IERC20-balanceOf} and {IERC20-transfer}.\r", - "id": 9976, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decimals", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9969, - "nodeType": "ParameterList", - "parameters": [], - "src": "1609:2:24" - }, - "returnParameters": { - "id": 9972, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9971, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9976, - "src": "1633:5:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9970, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1633:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1632:7:24" - }, - "scope": 9977, - "src": "1592:83:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 10328, - "src": "186:1492:24" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 10005, - "linearizedBaseContracts": [ - 10005 - ], - "name": "IClaimsToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": "@dev This event emits when funds to be deposited are sent to the token contract\r\n@param from contains the address of the sender of the received funds\r\n@param fundsReceived contains the amount of funds received for distribution\r", - "id": 9983, - "name": "FundsReceived", - "nodeType": "EventDefinition", - "parameters": { - "id": 9982, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9979, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 9983, - "src": "1983:20:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9978, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1983:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9981, - "indexed": false, - "name": "fundsReceived", - "nodeType": "VariableDeclaration", - "scope": 9983, - "src": "2005:21:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9980, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2005:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1982:45:24" - }, - "src": "1963:65:24" - }, - { - "anonymous": false, - "documentation": "@dev This event emits when distributed funds are withdrawn by a token holder.\r\n@param by contains the address of the receiver of funds\r\n@param fundsWithdrawn contains the amount of funds that were withdrawn\r", - "id": 9989, - "name": "FundsWithdrawn", - "nodeType": "EventDefinition", - "parameters": { - "id": 9988, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9985, - "indexed": true, - "name": "by", - "nodeType": "VariableDeclaration", - "scope": 9989, - "src": "2286:18:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9984, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2286:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9987, - "indexed": false, - "name": "fundsWithdrawn", - "nodeType": "VariableDeclaration", - "scope": 9989, - "src": "2306:22:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2306:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2285:44:24" - }, - "src": "2265:65:24" - }, - { - "body": null, - "documentation": "@dev Withdraws available funds for user.\r", - "id": 9992, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "withdrawFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9990, - "nodeType": "ParameterList", - "parameters": [], - "src": "2415:2:24" - }, - "returnParameters": { - "id": 9991, - "nodeType": "ParameterList", - "parameters": [], - "src": "2434:0:24" - }, - "scope": 10005, - "src": "2393:42:24", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", - "id": 9999, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "availableFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9994, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 9999, - "src": "2691:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2691:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2690:21:24" - }, - "returnParameters": { - "id": 9998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9997, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9999, - "src": "2735:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9996, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2735:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2734:9:24" - }, - "scope": 10005, - "src": "2667:77:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", - "id": 10004, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalReceivedFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10000, - "nodeType": "ParameterList", - "parameters": [], - "src": "2920:2:24" - }, - "returnParameters": { - "id": 10003, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10002, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10004, - "src": "2946:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10001, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2946:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2945:9:24" - }, - "scope": 10005, - "src": "2893:62:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 10328, - "src": "1682:1276:24" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10006, - "name": "IClaimsToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10005, - "src": "2986:12:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IClaimsToken_$10005", - "typeString": "contract IClaimsToken" - } - }, - "id": 10007, - "nodeType": "InheritanceSpecifier", - "src": "2986:12:24" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10008, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9650, - "src": "3000:5:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$9650", - "typeString": "contract ERC20" - } - }, - "id": 10009, - "nodeType": "InheritanceSpecifier", - "src": "3000:5:24" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10010, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9977, - "src": "3007:13:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$9977", - "typeString": "contract ERC20Detailed" - } - }, - "id": 10011, - "nodeType": "InheritanceSpecifier", - "src": "3007:13:24" - } - ], - "contractDependencies": [ - 9650, - 9719, - 9977, - 10005 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 10228, - "linearizedBaseContracts": [ - 10228, - 9977, - 9650, - 9719, - 10005 - ], - "name": "ClaimsToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 10014, - "libraryName": { - "contractScope": null, - "id": 10012, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "3033:8:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3027:27:24", - "typeName": { - "id": 10013, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3046:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 10016, - "name": "receivedFunds", - "nodeType": "VariableDeclaration", - "scope": 10228, - "src": "3107:28:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10015, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3107:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 10020, - "name": "processedFunds", - "nodeType": "VariableDeclaration", - "scope": 10228, - "src": "3226:50:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 10019, - "keyType": { - "id": 10017, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3235:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3226:28:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 10018, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3246:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 10024, - "name": "claimedFunds", - "nodeType": "VariableDeclaration", - "scope": 10228, - "src": "3332:48:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 10023, - "keyType": { - "id": 10021, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3341:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3332:28:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 10022, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3352:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 10050, - "nodeType": "Block", - "src": "3471:76:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10035, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10026, - "src": "3482:6:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10043, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 10036, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3490:5:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10041, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 10037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3499:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3138", - "id": 10039, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3513:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - } - ], - "id": 10038, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3505:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 10040, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3505:11:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3499:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10042, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3498:19:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3490:27:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10034, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9539, - "src": "3476:5:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 10044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3476:42:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10045, - "nodeType": "ExpressionStatement", - "src": "3476:42:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10046, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "3525:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 10047, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3541:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3525:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10049, - "nodeType": "ExpressionStatement", - "src": "3525:17:24" - } - ] - }, - "documentation": null, - "id": 10051, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "436c61696d73546f6b656e", - "id": 10029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3443:13:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_25771c0ba9a97de4408886fe552885a1751acfa735dfd2ef9c66e7b9e8871e71", - "typeString": "literal_string \"ClaimsToken\"" - }, - "value": "ClaimsToken" - }, - { - "argumentTypes": null, - "hexValue": "435354", - "id": 10030, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3458:5:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0626086d51c299e905c42b7a28a0add92109e49b12cb2bd2531769201453ab94", - "typeString": "literal_string \"CST\"" - }, - "value": "CST" - }, - { - "argumentTypes": null, - "hexValue": "3138", - "id": 10031, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3465:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - } - ], - "id": 10032, - "modifierName": { - "argumentTypes": null, - "id": 10028, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9977, - "src": "3429:13:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$9977_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3429:39:24" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10027, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10026, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 10051, - "src": "3400:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10025, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3400:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3399:16:24" - }, - "returnParameters": { - "id": 10033, - "nodeType": "ParameterList", - "parameters": [], - "src": "3471:0:24" - }, - "scope": 10228, - "src": "3388:159:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 10075, - "nodeType": "Block", - "src": "3898:95:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10061, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3915:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3915:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 10060, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "3903:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3903:23:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10064, - "nodeType": "ExpressionStatement", - "src": "3903:23:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10066, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10053, - "src": "3943:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10065, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "3931:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3931:16:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10068, - "nodeType": "ExpressionStatement", - "src": "3931:16:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10071, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10053, - "src": "3976:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10072, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10055, - "src": "3981:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10069, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "3961:5:24", - "typeDescriptions": { - "typeIdentifier": "t_super$_ClaimsToken_$10228", - "typeString": "contract super ClaimsToken" - } - }, - "id": 10070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9343, - "src": "3961:14:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 10073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3961:27:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 10059, - "id": 10074, - "nodeType": "Return", - "src": "3954:34:24" - } - ] - }, - "documentation": "@dev Transfer token to a specified address.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _to The address to transfer to\r\n@param _value The amount to be transferred\r", - "id": 10076, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10056, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10053, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 10076, - "src": "3839:11:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10052, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3839:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10055, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10076, - "src": "3852:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10054, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3852:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3838:29:24" - }, - "returnParameters": { - "id": 10059, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10058, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10076, - "src": "3890:4:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10057, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3890:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3889:6:24" - }, - "scope": 10228, - "src": "3821:172:24", - "stateMutability": "nonpayable", - "superFunction": 9343, - "visibility": "public" - }, - { - "body": { - "id": 10102, - "nodeType": "Block", - "src": "4485:101:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10088, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10078, - "src": "4502:5:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10087, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "4490:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4490:18:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10090, - "nodeType": "ExpressionStatement", - "src": "4490:18:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10092, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10080, - "src": "4525:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10091, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "4513:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4513:16:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10094, - "nodeType": "ExpressionStatement", - "src": "4513:16:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10097, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10078, - "src": "4562:5:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10098, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10080, - "src": "4569:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10099, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "4574:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10095, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "4543:5:24", - "typeDescriptions": { - "typeIdentifier": "t_super$_ClaimsToken_$10228", - "typeString": "contract super ClaimsToken" - } - }, - "id": 10096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 9397, - "src": "4543:18:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 10100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4543:38:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 10086, - "id": 10101, - "nodeType": "Return", - "src": "4536:45:24" - } - ] - }, - "documentation": "@dev Transfer tokens from one address to another.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _from address The address which you want to send tokens from\r\n@param _to address The address which you want to transfer to\r\n@param _value uint256 the amount of tokens to be transferred\r", - "id": 10103, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10083, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10078, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4411:13:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10077, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4411:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10080, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4426:11:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10079, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4426:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10082, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4439:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10081, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4439:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4410:44:24" - }, - "returnParameters": { - "id": 10086, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10085, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4477:4:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10084, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4477:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4476:6:24" - }, - "scope": 10228, - "src": "4389:197:24", - "stateMutability": "nonpayable", - "superFunction": 9397, - "visibility": "public" - }, - { - "body": { - "id": 10110, - "nodeType": "Block", - "src": "4808:30:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 10108, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "4820:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10107, - "id": 10109, - "nodeType": "Return", - "src": "4813:20:24" - } - ] - }, - "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", - "id": 10111, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalReceivedFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10104, - "nodeType": "ParameterList", - "parameters": [], - "src": "4762:2:24" - }, - "returnParameters": { - "id": 10107, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10106, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10111, - "src": "4797:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10105, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4797:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4796:9:24" - }, - "scope": 10228, - "src": "4735:103:24", - "stateMutability": "view", - "superFunction": 10004, - "visibility": "external" - }, - { - "body": { - "id": 10127, - "nodeType": "Block", - "src": "5156:82:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10122, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "5207:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10124, - "indexExpression": { - "argumentTypes": null, - "id": 10123, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10113, - "src": "5220:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5207:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10119, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10113, - "src": "5190:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10118, - "name": "_calcUnprocessedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10169, - "src": "5168:21:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5168:34:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "5168:38:24", - "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": 10125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5168:65:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10117, - "id": 10126, - "nodeType": "Return", - "src": "5161:72:24" - } - ] - }, - "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", - "id": 10128, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "availableFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10113, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 10128, - "src": "5094:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10112, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5094:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5093:21:24" - }, - "returnParameters": { - "id": 10117, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10116, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10128, - "src": "5145:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10115, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5145:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5144:9:24" - }, - "scope": 10228, - "src": "5070:168:24", - "stateMutability": "view", - "superFunction": 9999, - "visibility": "public" - }, - { - "body": { - "id": 10140, - "nodeType": "Block", - "src": "5477:51:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 10138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10133, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "5482:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10136, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10130, - "src": "5516:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10134, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "5498:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "5498:17:24", - "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": 10137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5498:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5482:41:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10139, - "nodeType": "ExpressionStatement", - "src": "5482:41:24" - } - ] - }, - "documentation": "@dev Increments cumulative received funds by new received funds.\r\nCalled when ClaimsToken receives funds.\r\n@param _value Amount of tokens / Ether received\r", - "id": 10141, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10131, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10130, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10141, - "src": "5447:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10129, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5447:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5446:16:24" - }, - "returnParameters": { - "id": 10132, - "nodeType": "ParameterList", - "parameters": [], - "src": "5477:0:24" - }, - "scope": 10228, - "src": "5423:105:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10168, - "nodeType": "Block", - "src": "5765:158:24", - "statements": [ - { - "assignments": [ - 10149 - ], - "declarations": [ - { - "constant": false, - "id": 10149, - "name": "newReceivedFunds", - "nodeType": "VariableDeclaration", - "scope": 10168, - "src": "5770:24:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10148, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5770:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10156, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10152, - "name": "processedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "5815:14:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10154, - "indexExpression": { - "argumentTypes": null, - "id": 10153, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10143, - "src": "5830:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5815:27:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10150, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "5797:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "5797:17:24", - "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": 10155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5797:46:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5770:73:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10164, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9296, - "src": "5904:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 10165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5904:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10161, - "name": "newReceivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10149, - "src": "5882:16:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10158, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10143, - "src": "5865:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10157, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9308, - "src": "5855:9:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5855:22:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 9784, - "src": "5855:26:24", - "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": 10162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5855:44:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 9808, - "src": "5855:48:24", - "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": 10166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5855:63:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10147, - "id": 10167, - "nodeType": "Return", - "src": "5848:70:24" - } - ] - }, - "documentation": "@dev Returns payout for a user which can be withdrawn or claimed.\r\n@param _forAddress Address of ClaimsToken holder\r", - "id": 10169, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_calcUnprocessedFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10144, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10143, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 10169, - "src": "5701:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5701:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5700:21:24" - }, - "returnParameters": { - "id": 10147, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10146, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10169, - "src": "5754:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10145, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5754:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5753:9:24" - }, - "scope": 10228, - "src": "5670:253:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10197, - "nodeType": "Block", - "src": "6080:201:24", - "statements": [ - { - "assignments": [ - 10175 - ], - "declarations": [ - { - "constant": false, - "id": 10175, - "name": "unprocessedFunds", - "nodeType": "VariableDeclaration", - "scope": 10197, - "src": "6085:24:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10174, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6085:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10179, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10177, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6134:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10176, - "name": "_calcUnprocessedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10169, - "src": "6112:21:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6112:34:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6085:61:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10180, - "name": "processedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "6153:14:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10182, - "indexExpression": { - "argumentTypes": null, - "id": 10181, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6168:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6153:27:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10183, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "6183:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6153:43:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10185, - "nodeType": "ExpressionStatement", - "src": "6153:43:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10186, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "6201:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10188, - "indexExpression": { - "argumentTypes": null, - "id": 10187, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6214:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6201:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10193, - "name": "unprocessedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10175, - "src": "6259:16:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10189, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "6229:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10191, - "indexExpression": { - "argumentTypes": null, - "id": 10190, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6242:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6229:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "6229:29:24", - "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": 10194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6229:47:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6201:75:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10196, - "nodeType": "ExpressionStatement", - "src": "6201:75:24" - } - ] - }, - "documentation": "@dev Claims funds for a user.\r\n@param _forAddress Address of ClaimsToken holder\r", - "id": 10198, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_claimFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10172, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10171, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 10198, - "src": "6050:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10170, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6050:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6049:21:24" - }, - "returnParameters": { - "id": 10173, - "nodeType": "ParameterList", - "parameters": [], - "src": "6080:0:24" - }, - "scope": 10228, - "src": "6029:252:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10226, - "nodeType": "Block", - "src": "6575:177:24", - "statements": [ - { - "assignments": [ - 10204 - ], - "declarations": [ - { - "constant": false, - "id": 10204, - "name": "withdrawableFunds", - "nodeType": "VariableDeclaration", - "scope": 10226, - "src": "6580:25:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10203, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6580:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10209, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10206, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6623:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6623:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 10205, - "name": "availableFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10128, - "src": "6608:14:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6608:26:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6580:54:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10210, - "name": "processedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "6641:14:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10213, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10211, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6656:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6656:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6641:26:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10214, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "6670:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6641:42:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10216, - "nodeType": "ExpressionStatement", - "src": "6641:42:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10217, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "6688:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10220, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10218, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6701:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6701:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6688:24:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 10221, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6715:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6688:28:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10223, - "nodeType": "ExpressionStatement", - "src": "6688:28:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10224, - "name": "withdrawableFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10204, - "src": "6730:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10202, - "id": 10225, - "nodeType": "Return", - "src": "6723:24:24" - } - ] - }, - "documentation": "@dev Sets claimed but not yet withdrawn funds to 0,\r\nmarks total received funds as processed and\r\nreturns the withdrawable amount for a user.\r\n@return A uint256 representing the withdrawable funds\r", - "id": 10227, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_prepareWithdraw", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10199, - "nodeType": "ParameterList", - "parameters": [], - "src": "6537:2:24" - }, - "returnParameters": { - "id": 10202, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10201, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10227, - "src": "6564:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10200, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6564:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6563:9:24" - }, - "scope": 10228, - "src": "6512:240:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 10328, - "src": "2962:3793:24" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10229, - "name": "IClaimsToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10005, - "src": "6797:12:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IClaimsToken_$10005", - "typeString": "contract IClaimsToken" - } - }, - "id": 10230, - "nodeType": "InheritanceSpecifier", - "src": "6797:12:24" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10231, - "name": "ClaimsToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10228, - "src": "6811:11:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ClaimsToken_$10228", - "typeString": "contract ClaimsToken" - } - }, - "id": 10232, - "nodeType": "InheritanceSpecifier", - "src": "6811:11:24" - } - ], - "contractDependencies": [ - 9650, - 9719, - 9977, - 10005, - 10228 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 10327, - "linearizedBaseContracts": [ - 10327, - 10228, - 9977, - 9650, - 9719, - 10005 - ], - "name": "ClaimsTokenERC20Extension", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 10234, - "name": "fundsToken", - "nodeType": "VariableDeclaration", - "scope": 10327, - "src": "6880:24:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 10233, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "6880:6:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 10247, - "nodeType": "Block", - "src": "6937:81:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 10242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10237, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6950:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6950:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10240, - "name": "fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10234, - "src": "6972:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - ], - "id": 10239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6964:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 10241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6964:19:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6950:33:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "554e415554484f52495a45445f53454e444552", - "id": 10243, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6985:21:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", - "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" - }, - "value": "UNAUTHORIZED_SENDER" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", - "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" - } - ], - "id": 10236, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "6942:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 10244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6942:65:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10245, - "nodeType": "ExpressionStatement", - "src": "6942:65:24" - }, - { - "id": 10246, - "nodeType": "PlaceholderStatement", - "src": "7012:1:24" - } - ] - }, - "documentation": null, - "id": 10248, - "name": "onlyFundsToken", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 10235, - "nodeType": "ParameterList", - "parameters": [], - "src": "6934:2:24" - }, - "src": "6910:108:24", - "visibility": "internal" - }, - { - "body": { - "id": 10272, - "nodeType": "Block", - "src": "7106:84:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 10265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10260, - "name": "_fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10252, - "src": "7127:11:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - ], - "id": 10259, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7119:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 10261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7119:20:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 10263, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7151:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 10262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7143:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 10264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7143:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7119:34:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 10258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "7111:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 10266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7111:43:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10267, - "nodeType": "ExpressionStatement", - "src": "7111:43:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10268, - "name": "fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10234, - "src": "7161:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10269, - "name": "_fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10252, - "src": "7174:11:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "src": "7161:24:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 10271, - "nodeType": "ExpressionStatement", - "src": "7161:24:24" - } - ] - }, - "documentation": null, - "id": 10273, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 10255, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10250, - "src": "7096:6:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 10256, - "modifierName": { - "argumentTypes": null, - "id": 10254, - "name": "ClaimsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10228, - "src": "7084:11:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ClaimsToken_$10228_$", - "typeString": "type(contract ClaimsToken)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7084:19:24" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10253, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10250, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 10273, - "src": "7035:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10249, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7035:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10252, - "name": "_fundsToken", - "nodeType": "VariableDeclaration", - "scope": 10273, - "src": "7051:18:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 10251, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "7051:6:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7034:36:24" - }, - "returnParameters": { - "id": 10257, - "nodeType": "ParameterList", - "parameters": [], - "src": "7106:0:24" - }, - "scope": 10327, - "src": "7023:167:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 10299, - "nodeType": "Block", - "src": "7303:175:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10277, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "7316:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7316:9:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 10279, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7329:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7316:14:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 10281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7332:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 10276, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7308:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 10282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7308:27:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10283, - "nodeType": "ExpressionStatement", - "src": "7308:27:24" - }, - { - "assignments": [ - 10285 - ], - "declarations": [ - { - "constant": false, - "id": 10285, - "name": "withdrawableFunds", - "nodeType": "VariableDeclaration", - "scope": 10299, - "src": "7342:25:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10284, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7342:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10288, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10286, - "name": "_prepareWithdraw", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10227, - "src": "7370:16:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_uint256_$", - "typeString": "function () returns (uint256)" - } - }, - "id": 10287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7370:18:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7342:46:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10292, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "7423:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7423:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 10294, - "name": "withdrawableFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10285, - "src": "7435:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10290, - "name": "fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10234, - "src": "7403:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 10291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9661, - "src": "7403:19:24", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 10295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7403:50:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5452414e534645525f4641494c4544", - "id": 10296, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7455:17:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", - "typeString": "literal_string \"TRANSFER_FAILED\"" - }, - "value": "TRANSFER_FAILED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", - "typeString": "literal_string \"TRANSFER_FAILED\"" - } - ], - "id": 10289, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7395:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 10297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7395:78:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10298, - "nodeType": "ExpressionStatement", - "src": "7395:78:24" - } - ] - }, - "documentation": "@dev Withdraws available funds for user.\r", - "id": 10300, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdrawFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10274, - "nodeType": "ParameterList", - "parameters": [], - "src": "7275:2:24" - }, - "returnParameters": { - "id": 10275, - "nodeType": "ParameterList", - "parameters": [], - "src": "7303:0:24" - }, - "scope": 10327, - "src": "7253:225:24", - "stateMutability": "payable", - "superFunction": 9992, - "visibility": "external" - }, - { - "body": { - "id": 10325, - "nodeType": "Block", - "src": "7777:100:24", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10311, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10304, - "src": "7786:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 10312, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7795:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7786:10:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 10324, - "nodeType": "IfStatement", - "src": "7782:91:24", - "trueBody": { - "id": 10323, - "nodeType": "Block", - "src": "7798:75:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10315, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10304, - "src": "7819:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10314, - "name": "_registerFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10141, - "src": "7804:14:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 10316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7804:22:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10317, - "nodeType": "ExpressionStatement", - "src": "7804:22:24" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10319, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10302, - "src": "7851:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10320, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10304, - "src": "7860:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10318, - "name": "FundsReceived", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9983, - "src": "7837:13:24", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 10321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7837:30:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10322, - "nodeType": "EmitStatement", - "src": "7832:35:24" - } - ] - } - } - ] - }, - "documentation": "@dev For ERC223.\r\nCalls _registerFunds(), whereby total received funds (cumulative) gets updated.\r\n@param _sender Sender of tokens\r\n@param _value Amount of tokens\r", - "id": 10326, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [], - "id": 10309, - "modifierName": { - "argumentTypes": null, - "id": 10308, - "name": "onlyFundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10248, - "src": "7758:14:24", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7758:16:24" - } - ], - "name": "tokenFallback", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10307, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10302, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 10326, - "src": "7698:15:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10301, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7698:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10304, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10326, - "src": "7715:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10303, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7715:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10306, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10326, - "src": "7731:12:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 10305, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7731:5:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7697:47:24" - }, - "returnParameters": { - "id": 10310, - "nodeType": "ParameterList", - "parameters": [], - "src": "7777:0:24" - }, - "scope": 10327, - "src": "7675:202:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 10328, - "src": "6759:1121:24" - } - ], - "src": "0:7882:24" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol", - "exportedSymbols": { - "ClaimsToken": [ - 10228 - ], - "ClaimsTokenERC20Extension": [ - 10327 - ], - "ERC20Detailed": [ - 9977 - ], - "IClaimsToken": [ - 10005 - ] - }, - "id": 10328, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9919, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:24" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "../oz/SafeMath.sol", - "id": 9920, - "nodeType": "ImportDirective", - "scope": 10328, - "sourceUnit": 9858, - "src": "36:28:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", - "file": "../oz/IERC20.sol", - "id": 9921, - "nodeType": "ImportDirective", - "scope": 10328, - "sourceUnit": 9720, - "src": "66:26:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol", - "file": "../oz/ERC20.sol", - "id": 9922, - "nodeType": "ImportDirective", - "scope": 10328, - "sourceUnit": 9651, - "src": "94:25:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 9923, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "212:6:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 9924, - "nodeType": "InheritanceSpecifier", - "src": "212:6:24" - } - ], - "contractDependencies": [ - 9719 - ], - "contractKind": "contract", - "documentation": "@dev Optional functions from the ERC20 standard.\r", - "fullyImplemented": false, - "id": 9977, - "linearizedBaseContracts": [ - 9977, - 9719 - ], - "name": "ERC20Detailed", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 9926, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 9977, - "src": "226:20:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 9925, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "226:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 9928, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 9977, - "src": "253:22:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 9927, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "253:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 9930, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 9977, - "src": "282:23:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9929, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "282:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 9951, - "nodeType": "Block", - "src": "581:89:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9939, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9926, - "src": "592:5:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9940, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9932, - "src": "600:4:24", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "592:12:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 9942, - "nodeType": "ExpressionStatement", - "src": "592:12:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 9945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9943, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9928, - "src": "615:7:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9944, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9934, - "src": "625:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "615:16:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 9946, - "nodeType": "ExpressionStatement", - "src": "615:16:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 9949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9947, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9930, - "src": "642:9:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9948, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9936, - "src": "654:8:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "642:20:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 9950, - "nodeType": "ExpressionStatement", - "src": "642:20:24" - } - ] - }, - "documentation": "@dev Sets the values for `name`, `symbol`, and `decimals`. All three of\r\nthese values are immutable: they can only be set once during\r\nconstruction.\r", - "id": 9952, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9937, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9932, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 9952, - "src": "516:18:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9931, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "516:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9934, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 9952, - "src": "536:20:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9933, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "536:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9936, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 9952, - "src": "558:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9935, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "558:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "515:58:24" - }, - "returnParameters": { - "id": 9938, - "nodeType": "ParameterList", - "parameters": [], - "src": "581:0:24" - }, - "scope": 9977, - "src": "503:167:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9959, - "nodeType": "Block", - "src": "792:31:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9957, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9926, - "src": "810:5:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 9956, - "id": 9958, - "nodeType": "Return", - "src": "803:12:24" - } - ] - }, - "documentation": "@dev Returns the name of the token.\r", - "id": 9960, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9953, - "nodeType": "ParameterList", - "parameters": [], - "src": "753:2:24" - }, - "returnParameters": { - "id": 9956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9955, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9960, - "src": "777:13:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9954, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "777:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "776:15:24" - }, - "scope": 9977, - "src": "740:83:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9967, - "nodeType": "Block", - "src": "996:33:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9965, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9928, - "src": "1014:7:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 9964, - "id": 9966, - "nodeType": "Return", - "src": "1007:14:24" - } - ] - }, - "documentation": "@dev Returns the symbol of the token, usually a shorter version of the\r\nname.\r", - "id": 9968, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9961, - "nodeType": "ParameterList", - "parameters": [], - "src": "957:2:24" - }, - "returnParameters": { - "id": 9964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9963, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9968, - "src": "981:13:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9962, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "981:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "980:15:24" - }, - "scope": 9977, - "src": "942:87:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9975, - "nodeType": "Block", - "src": "1640:35:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9973, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9930, - "src": "1658:9:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 9972, - "id": 9974, - "nodeType": "Return", - "src": "1651:16:24" - } - ] - }, - "documentation": "@dev Returns the number of decimals used to get its user representation.\r\nFor example, if `decimals` equals `2`, a balance of `505` tokens should\r\nbe displayed to a user as `5,05` (`505 / 10 ** 2`).\r\n\n * Tokens usually opt for a value of 18, imitating the relationship between\r\nEther and Wei.\r\n\n * NOTE: This information is only used for _display_ purposes: it in\r\nno way affects any of the arithmetic of the contract, including\r\n{IERC20-balanceOf} and {IERC20-transfer}.\r", - "id": 9976, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decimals", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9969, - "nodeType": "ParameterList", - "parameters": [], - "src": "1609:2:24" - }, - "returnParameters": { - "id": 9972, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9971, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9976, - "src": "1633:5:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9970, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1633:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1632:7:24" - }, - "scope": 9977, - "src": "1592:83:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 10328, - "src": "186:1492:24" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 10005, - "linearizedBaseContracts": [ - 10005 - ], - "name": "IClaimsToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": "@dev This event emits when funds to be deposited are sent to the token contract\r\n@param from contains the address of the sender of the received funds\r\n@param fundsReceived contains the amount of funds received for distribution\r", - "id": 9983, - "name": "FundsReceived", - "nodeType": "EventDefinition", - "parameters": { - "id": 9982, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9979, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 9983, - "src": "1983:20:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9978, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1983:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9981, - "indexed": false, - "name": "fundsReceived", - "nodeType": "VariableDeclaration", - "scope": 9983, - "src": "2005:21:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9980, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2005:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1982:45:24" - }, - "src": "1963:65:24" - }, - { - "anonymous": false, - "documentation": "@dev This event emits when distributed funds are withdrawn by a token holder.\r\n@param by contains the address of the receiver of funds\r\n@param fundsWithdrawn contains the amount of funds that were withdrawn\r", - "id": 9989, - "name": "FundsWithdrawn", - "nodeType": "EventDefinition", - "parameters": { - "id": 9988, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9985, - "indexed": true, - "name": "by", - "nodeType": "VariableDeclaration", - "scope": 9989, - "src": "2286:18:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9984, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2286:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9987, - "indexed": false, - "name": "fundsWithdrawn", - "nodeType": "VariableDeclaration", - "scope": 9989, - "src": "2306:22:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2306:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2285:44:24" - }, - "src": "2265:65:24" - }, - { - "body": null, - "documentation": "@dev Withdraws available funds for user.\r", - "id": 9992, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "withdrawFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9990, - "nodeType": "ParameterList", - "parameters": [], - "src": "2415:2:24" - }, - "returnParameters": { - "id": 9991, - "nodeType": "ParameterList", - "parameters": [], - "src": "2434:0:24" - }, - "scope": 10005, - "src": "2393:42:24", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", - "id": 9999, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "availableFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9994, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 9999, - "src": "2691:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2691:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2690:21:24" - }, - "returnParameters": { - "id": 9998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9997, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9999, - "src": "2735:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9996, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2735:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2734:9:24" - }, - "scope": 10005, - "src": "2667:77:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", - "id": 10004, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalReceivedFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10000, - "nodeType": "ParameterList", - "parameters": [], - "src": "2920:2:24" - }, - "returnParameters": { - "id": 10003, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10002, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10004, - "src": "2946:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10001, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2946:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2945:9:24" - }, - "scope": 10005, - "src": "2893:62:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 10328, - "src": "1682:1276:24" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10006, - "name": "IClaimsToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10005, - "src": "2986:12:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IClaimsToken_$10005", - "typeString": "contract IClaimsToken" - } - }, - "id": 10007, - "nodeType": "InheritanceSpecifier", - "src": "2986:12:24" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10008, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9650, - "src": "3000:5:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$9650", - "typeString": "contract ERC20" - } - }, - "id": 10009, - "nodeType": "InheritanceSpecifier", - "src": "3000:5:24" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10010, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9977, - "src": "3007:13:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$9977", - "typeString": "contract ERC20Detailed" - } - }, - "id": 10011, - "nodeType": "InheritanceSpecifier", - "src": "3007:13:24" - } - ], - "contractDependencies": [ - 9650, - 9719, - 9977, - 10005 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 10228, - "linearizedBaseContracts": [ - 10228, - 9977, - 9650, - 9719, - 10005 - ], - "name": "ClaimsToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 10014, - "libraryName": { - "contractScope": null, - "id": 10012, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "3033:8:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3027:27:24", - "typeName": { - "id": 10013, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3046:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 10016, - "name": "receivedFunds", - "nodeType": "VariableDeclaration", - "scope": 10228, - "src": "3107:28:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10015, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3107:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 10020, - "name": "processedFunds", - "nodeType": "VariableDeclaration", - "scope": 10228, - "src": "3226:50:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 10019, - "keyType": { - "id": 10017, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3235:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3226:28:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 10018, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3246:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 10024, - "name": "claimedFunds", - "nodeType": "VariableDeclaration", - "scope": 10228, - "src": "3332:48:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 10023, - "keyType": { - "id": 10021, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3341:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3332:28:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 10022, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3352:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 10050, - "nodeType": "Block", - "src": "3471:76:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10035, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10026, - "src": "3482:6:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10043, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 10036, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3490:5:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10041, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 10037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3499:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3138", - "id": 10039, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3513:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - } - ], - "id": 10038, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3505:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 10040, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3505:11:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3499:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10042, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3498:19:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3490:27:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10034, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9539, - "src": "3476:5:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 10044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3476:42:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10045, - "nodeType": "ExpressionStatement", - "src": "3476:42:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10046, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "3525:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 10047, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3541:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3525:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10049, - "nodeType": "ExpressionStatement", - "src": "3525:17:24" - } - ] - }, - "documentation": null, - "id": 10051, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "436c61696d73546f6b656e", - "id": 10029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3443:13:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_25771c0ba9a97de4408886fe552885a1751acfa735dfd2ef9c66e7b9e8871e71", - "typeString": "literal_string \"ClaimsToken\"" - }, - "value": "ClaimsToken" - }, - { - "argumentTypes": null, - "hexValue": "435354", - "id": 10030, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3458:5:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0626086d51c299e905c42b7a28a0add92109e49b12cb2bd2531769201453ab94", - "typeString": "literal_string \"CST\"" - }, - "value": "CST" - }, - { - "argumentTypes": null, - "hexValue": "3138", - "id": 10031, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3465:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - } - ], - "id": 10032, - "modifierName": { - "argumentTypes": null, - "id": 10028, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9977, - "src": "3429:13:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$9977_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3429:39:24" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10027, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10026, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 10051, - "src": "3400:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10025, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3400:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3399:16:24" - }, - "returnParameters": { - "id": 10033, - "nodeType": "ParameterList", - "parameters": [], - "src": "3471:0:24" - }, - "scope": 10228, - "src": "3388:159:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 10075, - "nodeType": "Block", - "src": "3898:95:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10061, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3915:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3915:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 10060, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "3903:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3903:23:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10064, - "nodeType": "ExpressionStatement", - "src": "3903:23:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10066, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10053, - "src": "3943:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10065, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "3931:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3931:16:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10068, - "nodeType": "ExpressionStatement", - "src": "3931:16:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10071, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10053, - "src": "3976:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10072, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10055, - "src": "3981:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10069, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "3961:5:24", - "typeDescriptions": { - "typeIdentifier": "t_super$_ClaimsToken_$10228", - "typeString": "contract super ClaimsToken" - } - }, - "id": 10070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9343, - "src": "3961:14:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 10073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3961:27:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 10059, - "id": 10074, - "nodeType": "Return", - "src": "3954:34:24" - } - ] - }, - "documentation": "@dev Transfer token to a specified address.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _to The address to transfer to\r\n@param _value The amount to be transferred\r", - "id": 10076, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10056, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10053, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 10076, - "src": "3839:11:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10052, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3839:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10055, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10076, - "src": "3852:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10054, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3852:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3838:29:24" - }, - "returnParameters": { - "id": 10059, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10058, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10076, - "src": "3890:4:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10057, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3890:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3889:6:24" - }, - "scope": 10228, - "src": "3821:172:24", - "stateMutability": "nonpayable", - "superFunction": 9343, - "visibility": "public" - }, - { - "body": { - "id": 10102, - "nodeType": "Block", - "src": "4485:101:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10088, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10078, - "src": "4502:5:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10087, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "4490:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4490:18:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10090, - "nodeType": "ExpressionStatement", - "src": "4490:18:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10092, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10080, - "src": "4525:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10091, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "4513:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4513:16:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10094, - "nodeType": "ExpressionStatement", - "src": "4513:16:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10097, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10078, - "src": "4562:5:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10098, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10080, - "src": "4569:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10099, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "4574:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10095, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "4543:5:24", - "typeDescriptions": { - "typeIdentifier": "t_super$_ClaimsToken_$10228", - "typeString": "contract super ClaimsToken" - } - }, - "id": 10096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 9397, - "src": "4543:18:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 10100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4543:38:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 10086, - "id": 10101, - "nodeType": "Return", - "src": "4536:45:24" - } - ] - }, - "documentation": "@dev Transfer tokens from one address to another.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _from address The address which you want to send tokens from\r\n@param _to address The address which you want to transfer to\r\n@param _value uint256 the amount of tokens to be transferred\r", - "id": 10103, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10083, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10078, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4411:13:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10077, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4411:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10080, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4426:11:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10079, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4426:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10082, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4439:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10081, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4439:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4410:44:24" - }, - "returnParameters": { - "id": 10086, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10085, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4477:4:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10084, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4477:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4476:6:24" - }, - "scope": 10228, - "src": "4389:197:24", - "stateMutability": "nonpayable", - "superFunction": 9397, - "visibility": "public" - }, - { - "body": { - "id": 10110, - "nodeType": "Block", - "src": "4808:30:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 10108, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "4820:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10107, - "id": 10109, - "nodeType": "Return", - "src": "4813:20:24" - } - ] - }, - "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", - "id": 10111, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalReceivedFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10104, - "nodeType": "ParameterList", - "parameters": [], - "src": "4762:2:24" - }, - "returnParameters": { - "id": 10107, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10106, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10111, - "src": "4797:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10105, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4797:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4796:9:24" - }, - "scope": 10228, - "src": "4735:103:24", - "stateMutability": "view", - "superFunction": 10004, - "visibility": "external" - }, - { - "body": { - "id": 10127, - "nodeType": "Block", - "src": "5156:82:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10122, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "5207:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10124, - "indexExpression": { - "argumentTypes": null, - "id": 10123, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10113, - "src": "5220:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5207:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10119, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10113, - "src": "5190:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10118, - "name": "_calcUnprocessedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10169, - "src": "5168:21:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5168:34:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "5168:38:24", - "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": 10125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5168:65:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10117, - "id": 10126, - "nodeType": "Return", - "src": "5161:72:24" - } - ] - }, - "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", - "id": 10128, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "availableFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10113, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 10128, - "src": "5094:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10112, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5094:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5093:21:24" - }, - "returnParameters": { - "id": 10117, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10116, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10128, - "src": "5145:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10115, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5145:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5144:9:24" - }, - "scope": 10228, - "src": "5070:168:24", - "stateMutability": "view", - "superFunction": 9999, - "visibility": "public" - }, - { - "body": { - "id": 10140, - "nodeType": "Block", - "src": "5477:51:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 10138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10133, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "5482:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10136, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10130, - "src": "5516:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10134, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "5498:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "5498:17:24", - "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": 10137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5498:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5482:41:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10139, - "nodeType": "ExpressionStatement", - "src": "5482:41:24" - } - ] - }, - "documentation": "@dev Increments cumulative received funds by new received funds.\r\nCalled when ClaimsToken receives funds.\r\n@param _value Amount of tokens / Ether received\r", - "id": 10141, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10131, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10130, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10141, - "src": "5447:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10129, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5447:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5446:16:24" - }, - "returnParameters": { - "id": 10132, - "nodeType": "ParameterList", - "parameters": [], - "src": "5477:0:24" - }, - "scope": 10228, - "src": "5423:105:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10168, - "nodeType": "Block", - "src": "5765:158:24", - "statements": [ - { - "assignments": [ - 10149 - ], - "declarations": [ - { - "constant": false, - "id": 10149, - "name": "newReceivedFunds", - "nodeType": "VariableDeclaration", - "scope": 10168, - "src": "5770:24:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10148, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5770:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10156, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10152, - "name": "processedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "5815:14:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10154, - "indexExpression": { - "argumentTypes": null, - "id": 10153, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10143, - "src": "5830:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5815:27:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10150, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "5797:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "5797:17:24", - "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": 10155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5797:46:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5770:73:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10164, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9296, - "src": "5904:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 10165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5904:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10161, - "name": "newReceivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10149, - "src": "5882:16:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10158, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10143, - "src": "5865:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10157, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9308, - "src": "5855:9:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5855:22:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 9784, - "src": "5855:26:24", - "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": 10162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5855:44:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 9808, - "src": "5855:48:24", - "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": 10166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5855:63:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10147, - "id": 10167, - "nodeType": "Return", - "src": "5848:70:24" - } - ] - }, - "documentation": "@dev Returns payout for a user which can be withdrawn or claimed.\r\n@param _forAddress Address of ClaimsToken holder\r", - "id": 10169, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_calcUnprocessedFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10144, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10143, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 10169, - "src": "5701:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5701:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5700:21:24" - }, - "returnParameters": { - "id": 10147, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10146, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10169, - "src": "5754:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10145, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5754:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5753:9:24" - }, - "scope": 10228, - "src": "5670:253:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10197, - "nodeType": "Block", - "src": "6080:201:24", - "statements": [ - { - "assignments": [ - 10175 - ], - "declarations": [ - { - "constant": false, - "id": 10175, - "name": "unprocessedFunds", - "nodeType": "VariableDeclaration", - "scope": 10197, - "src": "6085:24:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10174, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6085:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10179, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10177, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6134:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10176, - "name": "_calcUnprocessedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10169, - "src": "6112:21:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6112:34:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6085:61:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10180, - "name": "processedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "6153:14:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10182, - "indexExpression": { - "argumentTypes": null, - "id": 10181, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6168:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6153:27:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10183, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "6183:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6153:43:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10185, - "nodeType": "ExpressionStatement", - "src": "6153:43:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10186, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "6201:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10188, - "indexExpression": { - "argumentTypes": null, - "id": 10187, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6214:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6201:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10193, - "name": "unprocessedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10175, - "src": "6259:16:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10189, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "6229:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10191, - "indexExpression": { - "argumentTypes": null, - "id": 10190, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6242:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6229:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "6229:29:24", - "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": 10194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6229:47:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6201:75:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10196, - "nodeType": "ExpressionStatement", - "src": "6201:75:24" - } - ] - }, - "documentation": "@dev Claims funds for a user.\r\n@param _forAddress Address of ClaimsToken holder\r", - "id": 10198, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_claimFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10172, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10171, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 10198, - "src": "6050:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10170, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6050:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6049:21:24" - }, - "returnParameters": { - "id": 10173, - "nodeType": "ParameterList", - "parameters": [], - "src": "6080:0:24" - }, - "scope": 10228, - "src": "6029:252:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10226, - "nodeType": "Block", - "src": "6575:177:24", - "statements": [ - { - "assignments": [ - 10204 - ], - "declarations": [ - { - "constant": false, - "id": 10204, - "name": "withdrawableFunds", - "nodeType": "VariableDeclaration", - "scope": 10226, - "src": "6580:25:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10203, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6580:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10209, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10206, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6623:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6623:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 10205, - "name": "availableFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10128, - "src": "6608:14:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6608:26:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6580:54:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10210, - "name": "processedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "6641:14:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10213, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10211, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6656:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6656:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6641:26:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10214, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "6670:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6641:42:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10216, - "nodeType": "ExpressionStatement", - "src": "6641:42:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10217, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "6688:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10220, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10218, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6701:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6701:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6688:24:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 10221, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6715:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6688:28:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10223, - "nodeType": "ExpressionStatement", - "src": "6688:28:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10224, - "name": "withdrawableFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10204, - "src": "6730:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10202, - "id": 10225, - "nodeType": "Return", - "src": "6723:24:24" - } - ] - }, - "documentation": "@dev Sets claimed but not yet withdrawn funds to 0,\r\nmarks total received funds as processed and\r\nreturns the withdrawable amount for a user.\r\n@return A uint256 representing the withdrawable funds\r", - "id": 10227, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_prepareWithdraw", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10199, - "nodeType": "ParameterList", - "parameters": [], - "src": "6537:2:24" - }, - "returnParameters": { - "id": 10202, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10201, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10227, - "src": "6564:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10200, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6564:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6563:9:24" - }, - "scope": 10228, - "src": "6512:240:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 10328, - "src": "2962:3793:24" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10229, - "name": "IClaimsToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10005, - "src": "6797:12:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IClaimsToken_$10005", - "typeString": "contract IClaimsToken" - } - }, - "id": 10230, - "nodeType": "InheritanceSpecifier", - "src": "6797:12:24" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10231, - "name": "ClaimsToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10228, - "src": "6811:11:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ClaimsToken_$10228", - "typeString": "contract ClaimsToken" - } - }, - "id": 10232, - "nodeType": "InheritanceSpecifier", - "src": "6811:11:24" - } - ], - "contractDependencies": [ - 9650, - 9719, - 9977, - 10005, - 10228 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 10327, - "linearizedBaseContracts": [ - 10327, - 10228, - 9977, - 9650, - 9719, - 10005 - ], - "name": "ClaimsTokenERC20Extension", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 10234, - "name": "fundsToken", - "nodeType": "VariableDeclaration", - "scope": 10327, - "src": "6880:24:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 10233, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "6880:6:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 10247, - "nodeType": "Block", - "src": "6937:81:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 10242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10237, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6950:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6950:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10240, - "name": "fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10234, - "src": "6972:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - ], - "id": 10239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6964:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 10241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6964:19:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6950:33:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "554e415554484f52495a45445f53454e444552", - "id": 10243, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6985:21:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", - "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" - }, - "value": "UNAUTHORIZED_SENDER" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", - "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" - } - ], - "id": 10236, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "6942:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 10244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6942:65:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10245, - "nodeType": "ExpressionStatement", - "src": "6942:65:24" - }, - { - "id": 10246, - "nodeType": "PlaceholderStatement", - "src": "7012:1:24" - } - ] - }, - "documentation": null, - "id": 10248, - "name": "onlyFundsToken", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 10235, - "nodeType": "ParameterList", - "parameters": [], - "src": "6934:2:24" - }, - "src": "6910:108:24", - "visibility": "internal" - }, - { - "body": { - "id": 10272, - "nodeType": "Block", - "src": "7106:84:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 10265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10260, - "name": "_fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10252, - "src": "7127:11:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - ], - "id": 10259, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7119:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 10261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7119:20:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 10263, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7151:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 10262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7143:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 10264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7143:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7119:34:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 10258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "7111:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 10266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7111:43:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10267, - "nodeType": "ExpressionStatement", - "src": "7111:43:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10268, - "name": "fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10234, - "src": "7161:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10269, - "name": "_fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10252, - "src": "7174:11:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "src": "7161:24:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 10271, - "nodeType": "ExpressionStatement", - "src": "7161:24:24" - } - ] - }, - "documentation": null, - "id": 10273, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 10255, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10250, - "src": "7096:6:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 10256, - "modifierName": { - "argumentTypes": null, - "id": 10254, - "name": "ClaimsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10228, - "src": "7084:11:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ClaimsToken_$10228_$", - "typeString": "type(contract ClaimsToken)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7084:19:24" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10253, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10250, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 10273, - "src": "7035:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10249, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7035:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10252, - "name": "_fundsToken", - "nodeType": "VariableDeclaration", - "scope": 10273, - "src": "7051:18:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 10251, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "7051:6:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7034:36:24" - }, - "returnParameters": { - "id": 10257, - "nodeType": "ParameterList", - "parameters": [], - "src": "7106:0:24" - }, - "scope": 10327, - "src": "7023:167:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 10299, - "nodeType": "Block", - "src": "7303:175:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10277, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "7316:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7316:9:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 10279, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7329:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7316:14:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 10281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7332:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 10276, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7308:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 10282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7308:27:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10283, - "nodeType": "ExpressionStatement", - "src": "7308:27:24" - }, - { - "assignments": [ - 10285 - ], - "declarations": [ - { - "constant": false, - "id": 10285, - "name": "withdrawableFunds", - "nodeType": "VariableDeclaration", - "scope": 10299, - "src": "7342:25:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10284, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7342:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10288, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10286, - "name": "_prepareWithdraw", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10227, - "src": "7370:16:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_uint256_$", - "typeString": "function () returns (uint256)" - } - }, - "id": 10287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7370:18:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7342:46:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10292, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "7423:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7423:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 10294, - "name": "withdrawableFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10285, - "src": "7435:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10290, - "name": "fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10234, - "src": "7403:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 10291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9661, - "src": "7403:19:24", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 10295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7403:50:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5452414e534645525f4641494c4544", - "id": 10296, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7455:17:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", - "typeString": "literal_string \"TRANSFER_FAILED\"" - }, - "value": "TRANSFER_FAILED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", - "typeString": "literal_string \"TRANSFER_FAILED\"" - } - ], - "id": 10289, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7395:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 10297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7395:78:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10298, - "nodeType": "ExpressionStatement", - "src": "7395:78:24" - } - ] - }, - "documentation": "@dev Withdraws available funds for user.\r", - "id": 10300, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdrawFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10274, - "nodeType": "ParameterList", - "parameters": [], - "src": "7275:2:24" - }, - "returnParameters": { - "id": 10275, - "nodeType": "ParameterList", - "parameters": [], - "src": "7303:0:24" - }, - "scope": 10327, - "src": "7253:225:24", - "stateMutability": "payable", - "superFunction": 9992, - "visibility": "external" - }, - { - "body": { - "id": 10325, - "nodeType": "Block", - "src": "7777:100:24", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10311, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10304, - "src": "7786:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 10312, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7795:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7786:10:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 10324, - "nodeType": "IfStatement", - "src": "7782:91:24", - "trueBody": { - "id": 10323, - "nodeType": "Block", - "src": "7798:75:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10315, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10304, - "src": "7819:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10314, - "name": "_registerFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10141, - "src": "7804:14:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 10316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7804:22:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10317, - "nodeType": "ExpressionStatement", - "src": "7804:22:24" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10319, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10302, - "src": "7851:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10320, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10304, - "src": "7860:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10318, - "name": "FundsReceived", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9983, - "src": "7837:13:24", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 10321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7837:30:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10322, - "nodeType": "EmitStatement", - "src": "7832:35:24" - } - ] - } - } - ] - }, - "documentation": "@dev For ERC223.\r\nCalls _registerFunds(), whereby total received funds (cumulative) gets updated.\r\n@param _sender Sender of tokens\r\n@param _value Amount of tokens\r", - "id": 10326, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [], - "id": 10309, - "modifierName": { - "argumentTypes": null, - "id": 10308, - "name": "onlyFundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10248, - "src": "7758:14:24", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7758:16:24" - } - ], - "name": "tokenFallback", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10307, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10302, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 10326, - "src": "7698:15:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10301, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7698:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10304, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10326, - "src": "7715:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10303, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7715:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10306, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10326, - "src": "7731:12:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 10305, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7731:5:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7697:47:24" - }, - "returnParameters": { - "id": 10310, - "nodeType": "ParameterList", - "parameters": [], - "src": "7777:0:24" - }, - "scope": 10327, - "src": "7675:202:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 10328, - "src": "6759:1121:24" - } - ], - "src": "0:7882:24" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:20.267Z", - "devdoc": { - "methods": { - "allowance(address,address)": { - "details": "Function to check the amount of tokens that an owner allowed to a spender.\r", - "params": { - "owner": "address The address which owns the funds.\r", - "spender": "address The address which will spend the funds.\r" - }, - "return": "A uint256 specifying the amount of tokens still available for the spender.\r" - }, - "approve(address,uint256)": { - "details": "Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\r Beware that changing an allowance with this method brings the risk that someone may use both the old\r and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\r race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\r https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\r", - "params": { - "spender": "The address which will spend the funds.\r", - "value": "The amount of tokens to be spent.\r" - } - }, - "availableFunds(address)": { - "details": "Returns the amount of funds a given address is able to withdraw currently.\r", - "params": { - "_forAddress": "Address of ClaimsToken holder\r" - }, - "return": "A uint256 representing the available funds for a given account\r" - }, - "balanceOf(address)": { - "details": "Gets the balance of the specified address.\r", - "params": { - "owner": "The address to query the balance of.\r" - }, - "return": "An uint256 representing the amount owned by the passed address.\r" - }, - "decimals()": { - "details": "Returns the number of decimals used to get its user representation.\r For example, if `decimals` equals `2`, a balance of `505` tokens should\r be displayed to a user as `5,05` (`505 / 10 ** 2`).\r * Tokens usually opt for a value of 18, imitating the relationship between\r Ether and Wei.\r * NOTE: This information is only used for _display_ purposes: it in\r no way affects any of the arithmetic of the contract, including\r {IERC20-balanceOf} and {IERC20-transfer}.\r" - }, - "decreaseAllowance(address,uint256)": { - "details": "Decrease the amount of tokens that an owner allowed to a spender.\r approve should be called when allowed_[_spender] == 0. To decrement\r allowed value is better to use this function to avoid 2 calls (and wait until\r the first transaction is mined)\r From MonolithDAO Token.sol\r Emits an Approval event.\r", - "params": { - "spender": "The address which will spend the funds.\r", - "subtractedValue": "The amount of tokens to decrease the allowance by.\r" - } - }, - "increaseAllowance(address,uint256)": { - "details": "Increase the amount of tokens that an owner allowed to a spender.\r approve should be called when allowed_[_spender] == 0. To increment\r allowed value is better to use this function to avoid 2 calls (and wait until\r the first transaction is mined)\r From MonolithDAO Token.sol\r Emits an Approval event.\r", - "params": { - "addedValue": "The amount of tokens to increase the allowance by.\r", - "spender": "The address which will spend the funds.\r" - } - }, - "name()": { - "details": "Returns the name of the token.\r" - }, - "symbol()": { - "details": "Returns the symbol of the token, usually a shorter version of the\r name.\r" - }, - "totalReceivedFunds()": { - "details": "Get cumulative funds received by ClaimsToken.\r", - "return": "A uint256 representing the total funds received by ClaimsToken\r" - }, - "totalSupply()": { - "details": "Total number of tokens in existence\r" - }, - "transfer(address,uint256)": { - "details": "Transfer token to a specified address.\r Claims funds for both parties, whereby the amount of tokens withdrawn\r is inherited by the new token owner.\r", - "params": { - "_to": "The address to transfer to\r", - "_value": "The amount to be transferred\r" - } - }, - "transferFrom(address,address,uint256)": { - "details": "Transfer tokens from one address to another.\r Claims funds for both parties, whereby the amount of tokens withdrawn\r is inherited by the new token owner.\r", - "params": { - "_from": "address The address which you want to send tokens from\r", - "_to": "address The address which you want to transfer to\r", - "_value": "uint256 the amount of tokens to be transferred\r" - } - }, - "withdrawFunds()": { - "details": "Withdraws available funds for user.\r" - } - } - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/ClaimsTokenERC20Extension.json b/src/contracts/ClaimsTokenERC20Extension.json deleted file mode 100644 index 146da75..0000000 --- a/src/contracts/ClaimsTokenERC20Extension.json +++ /dev/null @@ -1,10976 +0,0 @@ -{ - "contractName": "ClaimsTokenERC20Extension", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "spender", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalReceivedFunds", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "spender", - "type": "address" - }, - { - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "processedFunds", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "claimedFunds", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_forAddress", - "type": "address" - } - ], - "name": "availableFunds", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "fundsToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "spender", - "type": "address" - }, - { - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "receivedFunds", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_owner", - "type": "address" - }, - { - "name": "_fundsToken", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": false, - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": false, - "name": "fundsReceived", - "type": "uint256" - } - ], - "name": "FundsReceived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "by", - "type": "address" - }, - { - "indexed": false, - "name": "fundsWithdrawn", - "type": "uint256" - } - ], - "name": "FundsWithdrawn", - "type": "event" - }, - { - "constant": false, - "inputs": [], - "name": "withdrawFunds", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - }, - { - "name": "", - "type": "bytes" - } - ], - "name": "tokenFallback", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalReceivedFunds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"withdrawFunds\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"processedFunds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"claimedFunds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_forAddress\",\"type\":\"address\"}],\"name\":\"availableFunds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"fundsToken\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"receivedFunds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"tokenFallback\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_fundsToken\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"fundsReceived\",\"type\":\"uint256\"}],\"name\":\"FundsReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"by\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"fundsWithdrawn\",\"type\":\"uint256\"}],\"name\":\"FundsWithdrawn\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"details\":\"Function to check the amount of tokens that an owner allowed to a spender.\\r\",\"params\":{\"owner\":\"address The address which owns the funds.\\r\",\"spender\":\"address The address which will spend the funds.\\r\"},\"return\":\"A uint256 specifying the amount of tokens still available for the spender.\\r\"},\"approve(address,uint256)\":{\"details\":\"Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\\r Beware that changing an allowance with this method brings the risk that someone may use both the old\\r and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\\r race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\\r https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\r\",\"params\":{\"spender\":\"The address which will spend the funds.\\r\",\"value\":\"The amount of tokens to be spent.\\r\"}},\"availableFunds(address)\":{\"details\":\"Returns the amount of funds a given address is able to withdraw currently.\\r\",\"params\":{\"_forAddress\":\"Address of ClaimsToken holder\\r\"},\"return\":\"A uint256 representing the available funds for a given account\\r\"},\"balanceOf(address)\":{\"details\":\"Gets the balance of the specified address.\\r\",\"params\":{\"owner\":\"The address to query the balance of.\\r\"},\"return\":\"An uint256 representing the amount owned by the passed address.\\r\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation.\\r For example, if `decimals` equals `2`, a balance of `505` tokens should\\r be displayed to a user as `5,05` (`505 / 10 ** 2`).\\r * Tokens usually opt for a value of 18, imitating the relationship between\\r Ether and Wei.\\r * NOTE: This information is only used for _display_ purposes: it in\\r no way affects any of the arithmetic of the contract, including\\r {IERC20-balanceOf} and {IERC20-transfer}.\\r\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Decrease the amount of tokens that an owner allowed to a spender.\\r approve should be called when allowed_[_spender] == 0. To decrement\\r allowed value is better to use this function to avoid 2 calls (and wait until\\r the first transaction is mined)\\r From MonolithDAO Token.sol\\r Emits an Approval event.\\r\",\"params\":{\"spender\":\"The address which will spend the funds.\\r\",\"subtractedValue\":\"The amount of tokens to decrease the allowance by.\\r\"}},\"increaseAllowance(address,uint256)\":{\"details\":\"Increase the amount of tokens that an owner allowed to a spender.\\r approve should be called when allowed_[_spender] == 0. To increment\\r allowed value is better to use this function to avoid 2 calls (and wait until\\r the first transaction is mined)\\r From MonolithDAO Token.sol\\r Emits an Approval event.\\r\",\"params\":{\"addedValue\":\"The amount of tokens to increase the allowance by.\\r\",\"spender\":\"The address which will spend the funds.\\r\"}},\"name()\":{\"details\":\"Returns the name of the token.\\r\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the\\r name.\\r\"},\"tokenFallback(address,uint256,bytes)\":{\"details\":\"For ERC223.\\r Calls _registerFunds(), whereby total received funds (cumulative) gets updated.\\r\",\"params\":{\"_sender\":\"Sender of tokens\\r\",\"_value\":\"Amount of tokens\\r\"}},\"totalReceivedFunds()\":{\"details\":\"Get cumulative funds received by ClaimsToken.\\r\",\"return\":\"A uint256 representing the total funds received by ClaimsToken\\r\"},\"totalSupply()\":{\"details\":\"Total number of tokens in existence\\r\"},\"transfer(address,uint256)\":{\"details\":\"Transfer token to a specified address.\\r Claims funds for both parties, whereby the amount of tokens withdrawn\\r is inherited by the new token owner.\\r\",\"params\":{\"_to\":\"The address to transfer to\\r\",\"_value\":\"The amount to be transferred\\r\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfer tokens from one address to another.\\r Claims funds for both parties, whereby the amount of tokens withdrawn\\r is inherited by the new token owner.\\r\",\"params\":{\"_from\":\"address The address which you want to send tokens from\\r\",\"_to\":\"address The address which you want to transfer to\\r\",\"_value\":\"uint256 the amount of tokens to be transferred\\r\"}},\"withdrawFunds()\":{\"details\":\"Withdraws available funds for user.\\r\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol\":\"ClaimsTokenERC20Extension\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol\":{\"keccak256\":\"0x83d94afc84930834148f8e00b2b2b624be5e2a910aeb9f508b6e3252648b304a\",\"urls\":[\"bzzr://074edfefdd7f638d059397b8b72e70605bb8eba1e750d8d512d86a5d8abaf966\",\"dweb:/ipfs/QmTPEnc9wjRf7jZ1xzh68sAjusFY5XHCTLpy79yCtCuWrA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol\":{\"keccak256\":\"0xd97866cc5c8b2c90cd57a126748771aad20762b3c708c30a4412ce17a9b79333\",\"urls\":[\"bzzr://0b6010f15f59b69c79df02987919092e5c44bd47602737eb54f4545237b5e636\",\"dweb:/ipfs/QmbPTbnWnvkWF8PRLgpmoXBr7UpJVyULmVRagrskTpkjyJ\"]}},\"version\":1}", - "bytecode": "0x60806040523480156200001157600080fd5b5060405162000ff738038062000ff7833981810160405260408110156200003757600080fd5b508051602091820151604080518082018252600b81527f436c61696d73546f6b656e000000000000000000000000000000000000000000818601908152825180840190935260038084527f4353540000000000000000000000000000000000000000000000000000000000968401969096528151949593948694929392601292620000c2926200021a565b508151620000d89060049060208501906200021a565b506005805460ff191660ff92909216919091179055506200010690508169021e19e0c9bab240000062000147565b5060006006556001600160a01b0381166200012057600080fd5b600980546001600160a01b0319166001600160a01b039290921691909117905550620002bf565b6001600160a01b0382166200015b57600080fd5b62000177816002546200020060201b62000b321790919060201c565b6002556001600160a01b03821660009081526020818152604090912054620001aa91839062000b3262000200821b17901c565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b6000828201838110156200021357600080fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200025d57805160ff19168380011785556200028d565b828001600101855582156200028d579182015b828111156200028d57825182559160200191906001019062000270565b506200029b9291506200029f565b5090565b620002bc91905b808211156200029b5760008155600101620002a6565b90565b610d2880620002cf6000396000f3fe6080604052600436106101145760003560e01c8063468ce230116100a0578063a457c2d711610064578063a457c2d7146103ef578063a9059cbb14610428578063ab96cc4c14610461578063c0ee0b8a14610476578063dd62ed3e1461053e57610114565b8063468ce230146103105780635d16eb5c1461034357806363f04b151461037657806370a08231146103a757806395d89b41146103da57610114565b806323b872dd116100e757806323b872dd1461022c57806324600fc31461026f578063313ce5671461027957806339509351146102a45780633a4486de146102dd57610114565b806306fdde0314610119578063095ea7b3146101a357806318160ddd146101f0578063197aecb114610217575b600080fd5b34801561012557600080fd5b5061012e610579565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610168578181015183820152602001610150565b50505050905090810190601f1680156101955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101af57600080fd5b506101dc600480360360408110156101c657600080fd5b506001600160a01b03813516906020013561060f565b604080519115158252519081900360200190f35b3480156101fc57600080fd5b50610205610626565b60408051918252519081900360200190f35b34801561022357600080fd5b5061020561062c565b34801561023857600080fd5b506101dc6004803603606081101561024f57600080fd5b506001600160a01b03813581169160208101359091169060400135610632565b610277610659565b005b34801561028557600080fd5b5061028e610759565b6040805160ff9092168252519081900360200190f35b3480156102b057600080fd5b506101dc600480360360408110156102c757600080fd5b506001600160a01b038135169060200135610762565b3480156102e957600080fd5b506102056004803603602081101561030057600080fd5b50356001600160a01b03166107a3565b34801561031c57600080fd5b506102056004803603602081101561033357600080fd5b50356001600160a01b03166107b5565b34801561034f57600080fd5b506102056004803603602081101561036657600080fd5b50356001600160a01b03166107c7565b34801561038257600080fd5b5061038b6107f9565b604080516001600160a01b039092168252519081900360200190f35b3480156103b357600080fd5b50610205600480360360208110156103ca57600080fd5b50356001600160a01b0316610808565b3480156103e657600080fd5b5061012e610823565b3480156103fb57600080fd5b506101dc6004803603604081101561041257600080fd5b506001600160a01b038135169060200135610884565b34801561043457600080fd5b506101dc6004803603604081101561044b57600080fd5b506001600160a01b0381351690602001356108c0565b34801561046d57600080fd5b506102056108e5565b34801561048257600080fd5b506102776004803603606081101561049957600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156104c957600080fd5b8201836020820111156104db57600080fd5b803590602001918460018302840111640100000000831117156104fd57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506108eb945050505050565b34801561054a57600080fd5b506102056004803603604081101561056157600080fd5b506001600160a01b0381358116916020013516610994565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106055780601f106105da57610100808354040283529160200191610605565b820191906000526020600020905b8154815290600101906020018083116105e857829003601f168201915b5050505050905090565b600061061c3384846109bf565b5060015b92915050565b60025490565b60065490565b600061063d84610a47565b61064683610a47565b610651848484610aad565b949350505050565b3415610686576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6000610690610aff565b6009546040805163a9059cbb60e01b81523360048201526024810184905290519293506001600160a01b039091169163a9059cbb916044808201926020929091908290030181600087803b1580156106e757600080fd5b505af11580156106fb573d6000803e3d6000fd5b505050506040513d602081101561071157600080fd5b5051610756576040805162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b604482015290519081900360640190fd5b50565b60055460ff1690565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161061c91859061079e908663ffffffff610b3216565b6109bf565b60076020526000908152604090205481565b60086020526000908152604090205481565b6001600160a01b038116600090815260086020526040812054610620906107ed84610b44565b9063ffffffff610b3216565b6009546001600160a01b031681565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106055780601f106105da57610100808354040283529160200191610605565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161061c91859061079e908663ffffffff610ba416565b60006108cb33610a47565b6108d483610a47565b6108de8383610bb9565b9392505050565b60065481565b6009546001600160a01b03163314610940576040805162461bcd60e51b81526020600482015260136024820152722aa720aaaa2427a924ad22a22fa9a2a72222a960691b604482015290519081900360640190fd5b811561098f5761094f82610bc6565b6040805183815290516001600160a01b038516917f8e47b87b0ef542cdfa1659c551d88bad38aa7f452d2bbb349ab7530dfec8be8f919081900360200190a25b505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0382166109d257600080fd5b6001600160a01b0383166109e557600080fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000610a5282610b44565b6006546001600160a01b038416600090815260076020908152604080832093909355600890522054909150610a8d908263ffffffff610b3216565b6001600160a01b0390921660009081526008602052604090209190915550565b6000610aba848484610bdf565b6001600160a01b038416600090815260016020908152604080832033808552925290912054610af591869161079e908663ffffffff610ba416565b5060019392505050565b600080610b0b336107c7565b60065433600090815260076020908152604080832093909355600890529081205591505090565b6000828201838110156108de57600080fd5b6001600160a01b0381166000908152600760205260408120546006548291610b72919063ffffffff610ba416565b90506108de610b7f610626565b610b9883610b8c87610808565b9063ffffffff610caa16565b9063ffffffff610cd116565b600082821115610bb357600080fd5b50900390565b600061061c338484610bdf565b600654610bd9908263ffffffff610b3216565b60065550565b6001600160a01b038216610bf257600080fd5b6001600160a01b038316600090815260208190526040902054610c1b908263ffffffff610ba416565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610c50908263ffffffff610b3216565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082610cb957506000610620565b82820282848281610cc657fe5b04146108de57600080fd5b6000808211610cdf57600080fd5b6000828481610cea57fe5b0494935050505056fea265627a7a723058202d27ea649c0db74c87d7535afa712353cbcf5d8b81669d0e220df846307e2e5b64736f6c63430005090032", - "deployedBytecode": "0x6080604052600436106101145760003560e01c8063468ce230116100a0578063a457c2d711610064578063a457c2d7146103ef578063a9059cbb14610428578063ab96cc4c14610461578063c0ee0b8a14610476578063dd62ed3e1461053e57610114565b8063468ce230146103105780635d16eb5c1461034357806363f04b151461037657806370a08231146103a757806395d89b41146103da57610114565b806323b872dd116100e757806323b872dd1461022c57806324600fc31461026f578063313ce5671461027957806339509351146102a45780633a4486de146102dd57610114565b806306fdde0314610119578063095ea7b3146101a357806318160ddd146101f0578063197aecb114610217575b600080fd5b34801561012557600080fd5b5061012e610579565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610168578181015183820152602001610150565b50505050905090810190601f1680156101955780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101af57600080fd5b506101dc600480360360408110156101c657600080fd5b506001600160a01b03813516906020013561060f565b604080519115158252519081900360200190f35b3480156101fc57600080fd5b50610205610626565b60408051918252519081900360200190f35b34801561022357600080fd5b5061020561062c565b34801561023857600080fd5b506101dc6004803603606081101561024f57600080fd5b506001600160a01b03813581169160208101359091169060400135610632565b610277610659565b005b34801561028557600080fd5b5061028e610759565b6040805160ff9092168252519081900360200190f35b3480156102b057600080fd5b506101dc600480360360408110156102c757600080fd5b506001600160a01b038135169060200135610762565b3480156102e957600080fd5b506102056004803603602081101561030057600080fd5b50356001600160a01b03166107a3565b34801561031c57600080fd5b506102056004803603602081101561033357600080fd5b50356001600160a01b03166107b5565b34801561034f57600080fd5b506102056004803603602081101561036657600080fd5b50356001600160a01b03166107c7565b34801561038257600080fd5b5061038b6107f9565b604080516001600160a01b039092168252519081900360200190f35b3480156103b357600080fd5b50610205600480360360208110156103ca57600080fd5b50356001600160a01b0316610808565b3480156103e657600080fd5b5061012e610823565b3480156103fb57600080fd5b506101dc6004803603604081101561041257600080fd5b506001600160a01b038135169060200135610884565b34801561043457600080fd5b506101dc6004803603604081101561044b57600080fd5b506001600160a01b0381351690602001356108c0565b34801561046d57600080fd5b506102056108e5565b34801561048257600080fd5b506102776004803603606081101561049957600080fd5b6001600160a01b03823516916020810135918101906060810160408201356401000000008111156104c957600080fd5b8201836020820111156104db57600080fd5b803590602001918460018302840111640100000000831117156104fd57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506108eb945050505050565b34801561054a57600080fd5b506102056004803603604081101561056157600080fd5b506001600160a01b0381358116916020013516610994565b60038054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106055780601f106105da57610100808354040283529160200191610605565b820191906000526020600020905b8154815290600101906020018083116105e857829003601f168201915b5050505050905090565b600061061c3384846109bf565b5060015b92915050565b60025490565b60065490565b600061063d84610a47565b61064683610a47565b610651848484610aad565b949350505050565b3415610686576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6000610690610aff565b6009546040805163a9059cbb60e01b81523360048201526024810184905290519293506001600160a01b039091169163a9059cbb916044808201926020929091908290030181600087803b1580156106e757600080fd5b505af11580156106fb573d6000803e3d6000fd5b505050506040513d602081101561071157600080fd5b5051610756576040805162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b604482015290519081900360640190fd5b50565b60055460ff1690565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161061c91859061079e908663ffffffff610b3216565b6109bf565b60076020526000908152604090205481565b60086020526000908152604090205481565b6001600160a01b038116600090815260086020526040812054610620906107ed84610b44565b9063ffffffff610b3216565b6009546001600160a01b031681565b6001600160a01b031660009081526020819052604090205490565b60048054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156106055780601f106105da57610100808354040283529160200191610605565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909161061c91859061079e908663ffffffff610ba416565b60006108cb33610a47565b6108d483610a47565b6108de8383610bb9565b9392505050565b60065481565b6009546001600160a01b03163314610940576040805162461bcd60e51b81526020600482015260136024820152722aa720aaaa2427a924ad22a22fa9a2a72222a960691b604482015290519081900360640190fd5b811561098f5761094f82610bc6565b6040805183815290516001600160a01b038516917f8e47b87b0ef542cdfa1659c551d88bad38aa7f452d2bbb349ab7530dfec8be8f919081900360200190a25b505050565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0382166109d257600080fd5b6001600160a01b0383166109e557600080fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6000610a5282610b44565b6006546001600160a01b038416600090815260076020908152604080832093909355600890522054909150610a8d908263ffffffff610b3216565b6001600160a01b0390921660009081526008602052604090209190915550565b6000610aba848484610bdf565b6001600160a01b038416600090815260016020908152604080832033808552925290912054610af591869161079e908663ffffffff610ba416565b5060019392505050565b600080610b0b336107c7565b60065433600090815260076020908152604080832093909355600890529081205591505090565b6000828201838110156108de57600080fd5b6001600160a01b0381166000908152600760205260408120546006548291610b72919063ffffffff610ba416565b90506108de610b7f610626565b610b9883610b8c87610808565b9063ffffffff610caa16565b9063ffffffff610cd116565b600082821115610bb357600080fd5b50900390565b600061061c338484610bdf565b600654610bd9908263ffffffff610b3216565b60065550565b6001600160a01b038216610bf257600080fd5b6001600160a01b038316600090815260208190526040902054610c1b908263ffffffff610ba416565b6001600160a01b038085166000908152602081905260408082209390935590841681522054610c50908263ffffffff610b3216565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600082610cb957506000610620565b82820282848281610cc657fe5b04146108de57600080fd5b6000808211610cdf57600080fd5b6000828481610cea57fe5b0494935050505056fea265627a7a723058202d27ea649c0db74c87d7535afa712353cbcf5d8b81669d0e220df846307e2e5b64736f6c63430005090032", - "sourceMap": "6759:1121:24:-;;;7023:167;8:9:-1;5:2;;;30:1;27;20:12;5:2;7023:167:24;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7023:167:24;;;;;;;;503;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;592:12;;7023:167;;;;;;503;;;3465:2;;592:12;;;:::i;:::-;-1:-1:-1;615:16:24;;;;:7;;:16;;;;;:::i;:::-;-1:-1:-1;642:9:24;:20;;-1:-1:-1;;642:20:24;;;;;;;;;;;;-1:-1:-1;3476:42:24;;-1:-1:-1;3482:6:24;3490:27;3476:5;:42::i;:::-;-1:-1:-1;3541:1:24;3525:13;:17;-1:-1:-1;;;;;7119:34:24;;7111:43;;;;;;7161:10;:24;;-1:-1:-1;;;;;;7161:24:24;-1:-1:-1;;;;;7161:24:24;;;;;;;;;;-1:-1:-1;6759:1121:24;;5948:269:19;-1:-1:-1;;;;;6023:21:19;;6015:30;;;;;;6073:23;6090:5;6073:12;;:16;;;;;;:23;;;;:::i;:::-;6058:12;:38;-1:-1:-1;;;;;6128:18:19;;:9;:18;;;;;;;;;;;;:29;;6151:5;;6128:22;;;;;:29;;:::i;:::-;-1:-1:-1;;;;;6107:18:19;;:9;:18;;;;;;;;;;;:50;;;;6173:36;;;;;;;6107:18;;:9;;6173:36;;;;;;;;;;5948:269;;:::o;589:150:22:-;647:7;679:5;;;703:6;;;;695:15;;;;;;730:1;589:150;-1:-1:-1;;;589:150:22:o;6759:1121:24:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6759:1121:24;;;-1:-1:-1;6759:1121:24;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "6759:1121:24:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;740:83:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;740:83:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2807:148:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2807:148:19;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2807:148:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;958:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;958:91:19;;;:::i;:::-;;;;;;;;;;;;;;;;4735:103:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4735:103:24;;;:::i;4389:197::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4389:197:24;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4389:197:24;;;;;;;;;;;;;;;;;:::i;7253:225::-;;;:::i;:::-;;1592:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1592:83:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4171:203:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4171:203:19;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4171:203:19;;;;;;;;:::i;3226:50:24:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3226:50:24;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3226:50:24;-1:-1:-1;;;;;3226:50:24;;:::i;3332:48::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3332:48:24;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3332:48:24;-1:-1:-1;;;;;3332:48:24;;:::i;5070:168::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5070:168:24;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5070:168:24;-1:-1:-1;;;;;5070:168:24;;:::i;6880:24::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6880:24:24;;;:::i;:::-;;;;-1:-1:-1;;;;;6880:24:24;;;;;;;;;;;;;;1269:106:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1269:106:19;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1269:106:19;-1:-1:-1;;;;;1269:106:19;;:::i;942:87:24:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;942:87:24;;;:::i;4894:213:19:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4894:213:19;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4894:213:19;;;;;;;;:::i;3821:172:24:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3821:172:24;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3821:172:24;;;;;;;;:::i;3107:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3107:28:24;;;:::i;7675:202::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7675:202:24;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;7675:202:24;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;7675:202:24;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7675:202:24;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;7675:202:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;7675:202:24;;-1:-1:-1;7675:202:24;;-1:-1:-1;;;;;7675:202:24:i;1714:131:19:-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1714:131:19;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1714:131:19;;;;;;;;;;:::i;740:83:24:-;810:5;803:12;;;;;;;;-1:-1:-1;;803:12:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;777:13;;803:12;;810:5;;803:12;;810:5;803:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;740:83;:::o;2807:148:19:-;2872:4;2889:36;2898:10;2910:7;2919:5;2889:8;:36::i;:::-;-1:-1:-1;2943:4:19;2807:148;;;;;:::o;958:91::-;1029:12;;958:91;:::o;4735:103:24:-;4820:13;;4735:103;:::o;4389:197::-;4477:4;4490:18;4502:5;4490:11;:18::i;:::-;4513:16;4525:3;4513:11;:16::i;:::-;4543:38;4562:5;4569:3;4574:6;4543:18;:38::i;:::-;4536:45;4389:197;-1:-1:-1;;;;4389:197:24:o;7253:225::-;7316:9;:14;7308:27;;;;;-1:-1:-1;;;7308:27:24;;;;;;;;;;;;;;;;;;;;;;;7342:25;7370:18;:16;:18::i;:::-;7403:10;;:50;;;-1:-1:-1;;;7403:50:24;;7423:10;7403:50;;;;;;;;;;;;7342:46;;-1:-1:-1;;;;;;7403:10:24;;;;:19;;:50;;;;;;;;;;;;;;;:10;;:50;;;5:2:-1;;;;30:1;27;20:12;5:2;7403:50:24;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7403:50:24;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7403:50:24;7395:78;;;;;-1:-1:-1;;;7395:78:24;;;;;;;;;;;;-1:-1:-1;;;7395:78:24;;;;;;;;;;;;;;;7253:225;:::o;1592:83::-;1658:9;;;;1592:83;:::o;4171:203:19:-;4277:10;4251:4;4298:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;4298:29:19;;;;;;;;;;4251:4;;4268:76;;4289:7;;4298:45;;4332:10;4298:45;:33;:45;:::i;:::-;4268:8;:76::i;3226:50:24:-;;;;;;;;;;;;;:::o;3332:48::-;;;;;;;;;;;;;:::o;5070:168::-;-1:-1:-1;;;;;5207:25:24;;5145:7;5207:25;;;:12;:25;;;;;;5168:65;;:34;5220:11;5168:21;:34::i;:::-;:38;:65;:38;:65;:::i;6880:24::-;;;-1:-1:-1;;;;;6880:24:24;;:::o;1269:106:19:-;-1:-1:-1;;;;;1351:16:19;1324:7;1351:16;;;;;;;;;;;;1269:106::o;942:87:24:-;1014:7;1007:14;;;;;;;;-1:-1:-1;;1007:14:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;981:13;;1007:14;;1014:7;;1007:14;;1014:7;1007:14;;;;;;;;;;;;;;;;;;;;;;;;4894:213:19;5005:10;4979:4;5026:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;5026:29:19;;;;;;;;;;4979:4;;4996:81;;5017:7;;5026:50;;5060:15;5026:50;:33;:50;:::i;3821:172:24:-;3890:4;3903:23;3915:10;3903:11;:23::i;:::-;3931:16;3943:3;3931:11;:16::i;:::-;3961:27;3976:3;3981:6;3961:14;:27::i;:::-;3954:34;3821:172;-1:-1:-1;;;3821:172:24:o;3107:28::-;;;;:::o;7675:202::-;6972:10;;-1:-1:-1;;;;;6972:10:24;6950;:33;6942:65;;;;;-1:-1:-1;;;6942:65:24;;;;;;;;;;;;-1:-1:-1;;;6942:65:24;;;;;;;;;;;;;;;7786:10;;7782:91;;7804:22;7819:6;7804:14;:22::i;:::-;7837:30;;;;;;;;-1:-1:-1;;;;;7837:30:24;;;;;;;;;;;;;7782:91;7675:202;;;:::o;1714:131:19:-;-1:-1:-1;;;;;1813:15:19;;;1786:7;1813:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;1714:131::o;6993:254::-;-1:-1:-1;;;;;7086:21:19;;7078:30;;;;;;-1:-1:-1;;;;;7127:19:19;;7119:28;;;;;;-1:-1:-1;;;;;7160:15:19;;;;;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;:32;;;7208:31;;;;;;;;;;;;;;;;;6993:254;;;:::o;6029:252:24:-;6085:24;6112:34;6134:11;6112:21;:34::i;:::-;6183:13;;-1:-1:-1;;;;;6153:27:24;;;;;;:14;:27;;;;;;;;:43;;;;6229:12;:25;;;;6085:61;;-1:-1:-1;6229:47:24;;6085:61;6229:47;:29;:47;:::i;:::-;-1:-1:-1;;;;;6201:25:24;;;;;;;:12;:25;;;;;:75;;;;-1:-1:-1;6029:252:24:o;3428:228:19:-;3507:4;3524:26;3534:4;3540:2;3544:5;3524:9;:26::i;:::-;-1:-1:-1;;;;;3588:14:19;;;;;;:8;:14;;;;;;;;3576:10;3588:26;;;;;;;;;3561:65;;3570:4;;3588:37;;3619:5;3588:37;:30;:37;:::i;3561:65::-;-1:-1:-1;3644:4:19;3428:228;;;;;:::o;6512:240:24:-;6564:7;6580:25;6608:26;6623:10;6608:14;:26::i;:::-;6670:13;;6656:10;6641:26;;;;:14;:26;;;;;;;;:42;;;;6688:12;:24;;;;;:28;6580:54;-1:-1:-1;;6512:240:24;:::o;589:150:22:-;647:7;679:5;;;703:6;;;;695:15;;;;;5670:253:24;-1:-1:-1;;;;;5815:27:24;;5754:7;5815:27;;;:14;:27;;;;;;5797:13;;5754:7;;5797:46;;:13;:46;:17;:46;:::i;:::-;5770:73;;5855:63;5904:13;:11;:13::i;:::-;5855:44;5882:16;5855:22;5865:11;5855:9;:22::i;:::-;:26;:44;:26;:44;:::i;:::-;:48;:63;:48;:63;:::i;431:150:22:-;489:7;522:1;517;:6;;509:15;;;;;;-1:-1:-1;547:5:22;;;431:150::o;2020:140:19:-;2081:4;2098:32;2108:10;2120:2;2124:5;2098:9;:32::i;5423:105:24:-;5498:13;;:25;;5516:6;5498:25;:17;:25;:::i;:::-;5482:13;:41;-1:-1:-1;5423:105:24:o;5334:262:19:-;-1:-1:-1;;;;;5422:16:19;;5414:25;;;;;;-1:-1:-1;;;;;5470:15:19;;:9;:15;;;;;;;;;;;:26;;5490:5;5470:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;5452:15:19;;;:9;:15;;;;;;;;;;;:44;;;;5523:13;;;;;;;:24;;5541:5;5523:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;5507:13:19;;;:9;:13;;;;;;;;;;;;:40;;;;5563:25;;;;;;;5507:13;;5563:25;;;;;;;;;;;;;5334:262;;;:::o;51:213:22:-;109:7;133:6;129:47;;-1:-1:-1;163:1:22;156:8;;129:47;200:5;;;204:1;200;:5;:1;224:5;;;;;:10;216:19;;;;;272:151;330:7;364:1;360;:5;352:14;;;;;;377:9;393:1;389;:5;;;;;;;272:151;-1:-1:-1;;;;272:151:22:o", - "source": "pragma solidity >=0.5.0 < 0.6.0;\r\n\r\nimport \"../oz/SafeMath.sol\";\r\nimport \"../oz/IERC20.sol\";\r\nimport \"../oz/ERC20.sol\";\r\n\r\n/**\r\n * @dev Optional functions from the ERC20 standard.\r\n */\r\ncontract ERC20Detailed is IERC20 {\r\n string private _name;\r\n string private _symbol;\r\n uint8 private _decimals;\r\n\r\n /**\r\n * @dev Sets the values for `name`, `symbol`, and `decimals`. All three of\r\n * these values are immutable: they can only be set once during\r\n * construction.\r\n */\r\n constructor (string memory name, string memory symbol, uint8 decimals) public {\r\n _name = name;\r\n _symbol = symbol;\r\n _decimals = decimals;\r\n }\r\n\r\n /**\r\n * @dev Returns the name of the token.\r\n */\r\n function name() public view returns (string memory) {\r\n return _name;\r\n }\r\n\r\n /**\r\n * @dev Returns the symbol of the token, usually a shorter version of the\r\n * name.\r\n */\r\n function symbol() public view returns (string memory) {\r\n return _symbol;\r\n }\r\n\r\n /**\r\n * @dev Returns the number of decimals used to get its user representation.\r\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\r\n * be displayed to a user as `5,05` (`505 / 10 ** 2`).\r\n *\r\n * Tokens usually opt for a value of 18, imitating the relationship between\r\n * Ether and Wei.\r\n *\r\n * NOTE: This information is only used for _display_ purposes: it in\r\n * no way affects any of the arithmetic of the contract, including\r\n * {IERC20-balanceOf} and {IERC20-transfer}.\r\n */\r\n function decimals() public view returns (uint8) {\r\n return _decimals;\r\n }\r\n}\r\n\r\ninterface IClaimsToken {\r\n\r\n\t/**\r\n\t * @dev This event emits when funds to be deposited are sent to the token contract\r\n\t * @param from contains the address of the sender of the received funds\r\n\t * @param fundsReceived contains the amount of funds received for distribution\r\n\t */\r\n\tevent FundsReceived(address indexed from, uint256 fundsReceived);\r\n\r\n\t/**\r\n\t * @dev This event emits when distributed funds are withdrawn by a token holder.\r\n\t * @param by contains the address of the receiver of funds\r\n\t * @param fundsWithdrawn contains the amount of funds that were withdrawn\r\n\t */\r\n\tevent FundsWithdrawn(address indexed by, uint256 fundsWithdrawn);\r\n\r\n\t/**\r\n\t * @dev Withdraws available funds for user.\r\n\t */\r\n\tfunction withdrawFunds() external payable;\r\n\r\n\t/**\r\n\t * @dev Returns the amount of funds a given address is able to withdraw currently.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t * @return A uint256 representing the available funds for a given account\r\n\t */\r\n\tfunction availableFunds(address _forAddress) external view returns (uint256);\r\n\r\n\t/**\r\n\t * @dev Get cumulative funds received by ClaimsToken.\r\n\t * @return A uint256 representing the total funds received by ClaimsToken\r\n\t */\r\n\tfunction totalReceivedFunds() external view returns (uint256);\r\n}\r\n\r\ncontract ClaimsToken is IClaimsToken, ERC20, ERC20Detailed {\r\n\r\n\tusing SafeMath for uint256;\r\n\r\n\t// cumulative funds received by this contract\r\n\tuint256 public receivedFunds;\r\n\t// cumulative funds received which were already processed for distribution - by user\r\n\tmapping (address => uint256) public processedFunds;\r\n\t// claimed but not yet withdrawn funds for a user\r\n\tmapping (address => uint256) public claimedFunds;\r\n\r\n\r\n\tconstructor(address _owner)\r\n\t\tpublic\r\n\t\tERC20Detailed(\"ClaimsToken\", \"CST\", 18)\r\n\t{\r\n\t\t_mint(_owner, 10000 * (10 ** uint256(18)));\r\n\r\n\t\treceivedFunds = 0;\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Transfer token to a specified address.\r\n\t * Claims funds for both parties, whereby the amount of tokens withdrawn\r\n\t * is inherited by the new token owner.\r\n\t * @param _to The address to transfer to\r\n\t * @param _value The amount to be transferred\r\n\t */\r\n\tfunction transfer(address _to, uint256 _value)\r\n\t\tpublic\r\n\t\treturns (bool)\r\n\t{\r\n\t\t_claimFunds(msg.sender);\r\n\t\t_claimFunds(_to);\r\n\r\n\t\treturn super.transfer(_to, _value);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @dev Transfer tokens from one address to another.\r\n\t * Claims funds for both parties, whereby the amount of tokens withdrawn\r\n\t * is inherited by the new token owner.\r\n\t * @param _from address The address which you want to send tokens from\r\n\t * @param _to address The address which you want to transfer to\r\n\t * @param _value uint256 the amount of tokens to be transferred\r\n\t */\r\n\tfunction transferFrom(address _from, address _to, uint256 _value)\r\n\t\tpublic\r\n\t\treturns (bool)\r\n\t{\r\n\t\t_claimFunds(_from);\r\n\t\t_claimFunds(_to);\r\n\r\n\t\treturn super.transferFrom(_from, _to, _value);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Get cumulative funds received by ClaimsToken.\r\n\t * @return A uint256 representing the total funds received by ClaimsToken\r\n\t */\r\n\tfunction totalReceivedFunds()\r\n\t\texternal\r\n\t\tview\r\n\t\treturns (uint256)\r\n\t{\r\n\t\treturn receivedFunds;\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Returns the amount of funds a given address is able to withdraw currently.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t * @return A uint256 representing the available funds for a given account\r\n\t */\r\n\tfunction availableFunds(address _forAddress)\r\n\t\tpublic\r\n\t\tview\r\n\t\treturns (uint256)\r\n\t{\r\n\t\treturn _calcUnprocessedFunds(_forAddress).add(claimedFunds[_forAddress]);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Increments cumulative received funds by new received funds.\r\n\t * Called when ClaimsToken receives funds.\r\n\t * @param _value Amount of tokens / Ether received\r\n\t */\r\n\tfunction _registerFunds(uint256 _value)\r\n\t\tinternal\r\n\t{\r\n\t\treceivedFunds = receivedFunds.add(_value);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Returns payout for a user which can be withdrawn or claimed.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t */\r\n\tfunction _calcUnprocessedFunds(address _forAddress)\r\n\t\tinternal\r\n\t\tview\r\n\t\treturns (uint256)\r\n\t{\r\n\t\tuint256 newReceivedFunds = receivedFunds.sub(processedFunds[_forAddress]);\r\n\t\treturn balanceOf(_forAddress).mul(newReceivedFunds).div(totalSupply());\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Claims funds for a user.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t */\r\n\tfunction _claimFunds(address _forAddress) internal {\r\n\t\tuint256 unprocessedFunds = _calcUnprocessedFunds(_forAddress);\r\n\r\n\t\tprocessedFunds[_forAddress] = receivedFunds;\r\n\t\tclaimedFunds[_forAddress] = claimedFunds[_forAddress].add(unprocessedFunds);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Sets claimed but not yet withdrawn funds to 0,\r\n\t * marks total received funds as processed and\r\n\t * returns the withdrawable amount for a user.\r\n\t * @return A uint256 representing the withdrawable funds\r\n\t */\r\n\tfunction _prepareWithdraw()\r\n\t\tinternal\r\n\t\treturns (uint256)\r\n\t{\r\n\t\tuint256 withdrawableFunds = availableFunds(msg.sender);\r\n\r\n\t\tprocessedFunds[msg.sender] = receivedFunds;\r\n\t\tclaimedFunds[msg.sender] = 0;\r\n\r\n\t\treturn withdrawableFunds;\r\n\t}\r\n}\r\n\r\ncontract ClaimsTokenERC20Extension is IClaimsToken, ClaimsToken {\r\n\r\n\t// token that ClaimsToken takes in custodianship\r\n\tIERC20 public fundsToken;\r\n\r\n\tmodifier onlyFundsToken () {\r\n\t\trequire(msg.sender == address(fundsToken), \"UNAUTHORIZED_SENDER\");\r\n\t\t_;\r\n\t}\r\n\r\n\tconstructor(address _owner, IERC20 _fundsToken)\r\n\t\tpublic\r\n\t\tClaimsToken(_owner)\r\n\t{\r\n\t\trequire(address(_fundsToken) != address(0));\r\n\r\n\t\tfundsToken = _fundsToken;\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Withdraws available funds for user.\r\n\t */\r\n\tfunction withdrawFunds()\r\n\t\texternal\r\n\t\tpayable\r\n\t{\r\n\t\trequire(msg.value == 0, \"\");\r\n\r\n\t\tuint256 withdrawableFunds = _prepareWithdraw();\r\n\r\n\t\trequire(fundsToken.transfer(msg.sender, withdrawableFunds), \"TRANSFER_FAILED\");\r\n\t}\r\n\r\n\t/**\r\n\t * @dev For ERC223.\r\n\t * Calls _registerFunds(), whereby total received funds (cumulative) gets updated.\r\n\t * @param _sender Sender of tokens\r\n\t * @param _value Amount of tokens\r\n\t */\r\n\tfunction tokenFallback(address _sender, uint256 _value, bytes memory)\r\n\t\tpublic\r\n\t\tonlyFundsToken()\r\n\t{\r\n\t\tif (_value > 0) {\r\n\t\t\t_registerFunds(_value);\r\n\t\t\temit FundsReceived(_sender, _value);\r\n\t\t}\r\n\t}\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\tokens\\ClaimsToken.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol", - "exportedSymbols": { - "ClaimsToken": [ - 10228 - ], - "ClaimsTokenERC20Extension": [ - 10327 - ], - "ERC20Detailed": [ - 9977 - ], - "IClaimsToken": [ - 10005 - ] - }, - "id": 10328, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9919, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:24" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "../oz/SafeMath.sol", - "id": 9920, - "nodeType": "ImportDirective", - "scope": 10328, - "sourceUnit": 9858, - "src": "36:28:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", - "file": "../oz/IERC20.sol", - "id": 9921, - "nodeType": "ImportDirective", - "scope": 10328, - "sourceUnit": 9720, - "src": "66:26:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol", - "file": "../oz/ERC20.sol", - "id": 9922, - "nodeType": "ImportDirective", - "scope": 10328, - "sourceUnit": 9651, - "src": "94:25:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 9923, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "212:6:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 9924, - "nodeType": "InheritanceSpecifier", - "src": "212:6:24" - } - ], - "contractDependencies": [ - 9719 - ], - "contractKind": "contract", - "documentation": "@dev Optional functions from the ERC20 standard.\r", - "fullyImplemented": false, - "id": 9977, - "linearizedBaseContracts": [ - 9977, - 9719 - ], - "name": "ERC20Detailed", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 9926, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 9977, - "src": "226:20:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 9925, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "226:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 9928, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 9977, - "src": "253:22:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 9927, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "253:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 9930, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 9977, - "src": "282:23:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9929, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "282:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 9951, - "nodeType": "Block", - "src": "581:89:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9939, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9926, - "src": "592:5:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9940, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9932, - "src": "600:4:24", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "592:12:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 9942, - "nodeType": "ExpressionStatement", - "src": "592:12:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 9945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9943, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9928, - "src": "615:7:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9944, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9934, - "src": "625:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "615:16:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 9946, - "nodeType": "ExpressionStatement", - "src": "615:16:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 9949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9947, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9930, - "src": "642:9:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9948, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9936, - "src": "654:8:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "642:20:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 9950, - "nodeType": "ExpressionStatement", - "src": "642:20:24" - } - ] - }, - "documentation": "@dev Sets the values for `name`, `symbol`, and `decimals`. All three of\r\nthese values are immutable: they can only be set once during\r\nconstruction.\r", - "id": 9952, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9937, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9932, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 9952, - "src": "516:18:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9931, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "516:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9934, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 9952, - "src": "536:20:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9933, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "536:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9936, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 9952, - "src": "558:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9935, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "558:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "515:58:24" - }, - "returnParameters": { - "id": 9938, - "nodeType": "ParameterList", - "parameters": [], - "src": "581:0:24" - }, - "scope": 9977, - "src": "503:167:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9959, - "nodeType": "Block", - "src": "792:31:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9957, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9926, - "src": "810:5:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 9956, - "id": 9958, - "nodeType": "Return", - "src": "803:12:24" - } - ] - }, - "documentation": "@dev Returns the name of the token.\r", - "id": 9960, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9953, - "nodeType": "ParameterList", - "parameters": [], - "src": "753:2:24" - }, - "returnParameters": { - "id": 9956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9955, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9960, - "src": "777:13:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9954, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "777:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "776:15:24" - }, - "scope": 9977, - "src": "740:83:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9967, - "nodeType": "Block", - "src": "996:33:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9965, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9928, - "src": "1014:7:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 9964, - "id": 9966, - "nodeType": "Return", - "src": "1007:14:24" - } - ] - }, - "documentation": "@dev Returns the symbol of the token, usually a shorter version of the\r\nname.\r", - "id": 9968, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9961, - "nodeType": "ParameterList", - "parameters": [], - "src": "957:2:24" - }, - "returnParameters": { - "id": 9964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9963, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9968, - "src": "981:13:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9962, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "981:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "980:15:24" - }, - "scope": 9977, - "src": "942:87:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9975, - "nodeType": "Block", - "src": "1640:35:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9973, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9930, - "src": "1658:9:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 9972, - "id": 9974, - "nodeType": "Return", - "src": "1651:16:24" - } - ] - }, - "documentation": "@dev Returns the number of decimals used to get its user representation.\r\nFor example, if `decimals` equals `2`, a balance of `505` tokens should\r\nbe displayed to a user as `5,05` (`505 / 10 ** 2`).\r\n\n * Tokens usually opt for a value of 18, imitating the relationship between\r\nEther and Wei.\r\n\n * NOTE: This information is only used for _display_ purposes: it in\r\nno way affects any of the arithmetic of the contract, including\r\n{IERC20-balanceOf} and {IERC20-transfer}.\r", - "id": 9976, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decimals", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9969, - "nodeType": "ParameterList", - "parameters": [], - "src": "1609:2:24" - }, - "returnParameters": { - "id": 9972, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9971, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9976, - "src": "1633:5:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9970, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1633:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1632:7:24" - }, - "scope": 9977, - "src": "1592:83:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 10328, - "src": "186:1492:24" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 10005, - "linearizedBaseContracts": [ - 10005 - ], - "name": "IClaimsToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": "@dev This event emits when funds to be deposited are sent to the token contract\r\n@param from contains the address of the sender of the received funds\r\n@param fundsReceived contains the amount of funds received for distribution\r", - "id": 9983, - "name": "FundsReceived", - "nodeType": "EventDefinition", - "parameters": { - "id": 9982, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9979, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 9983, - "src": "1983:20:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9978, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1983:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9981, - "indexed": false, - "name": "fundsReceived", - "nodeType": "VariableDeclaration", - "scope": 9983, - "src": "2005:21:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9980, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2005:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1982:45:24" - }, - "src": "1963:65:24" - }, - { - "anonymous": false, - "documentation": "@dev This event emits when distributed funds are withdrawn by a token holder.\r\n@param by contains the address of the receiver of funds\r\n@param fundsWithdrawn contains the amount of funds that were withdrawn\r", - "id": 9989, - "name": "FundsWithdrawn", - "nodeType": "EventDefinition", - "parameters": { - "id": 9988, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9985, - "indexed": true, - "name": "by", - "nodeType": "VariableDeclaration", - "scope": 9989, - "src": "2286:18:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9984, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2286:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9987, - "indexed": false, - "name": "fundsWithdrawn", - "nodeType": "VariableDeclaration", - "scope": 9989, - "src": "2306:22:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2306:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2285:44:24" - }, - "src": "2265:65:24" - }, - { - "body": null, - "documentation": "@dev Withdraws available funds for user.\r", - "id": 9992, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "withdrawFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9990, - "nodeType": "ParameterList", - "parameters": [], - "src": "2415:2:24" - }, - "returnParameters": { - "id": 9991, - "nodeType": "ParameterList", - "parameters": [], - "src": "2434:0:24" - }, - "scope": 10005, - "src": "2393:42:24", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", - "id": 9999, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "availableFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9994, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 9999, - "src": "2691:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2691:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2690:21:24" - }, - "returnParameters": { - "id": 9998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9997, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9999, - "src": "2735:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9996, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2735:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2734:9:24" - }, - "scope": 10005, - "src": "2667:77:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", - "id": 10004, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalReceivedFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10000, - "nodeType": "ParameterList", - "parameters": [], - "src": "2920:2:24" - }, - "returnParameters": { - "id": 10003, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10002, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10004, - "src": "2946:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10001, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2946:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2945:9:24" - }, - "scope": 10005, - "src": "2893:62:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 10328, - "src": "1682:1276:24" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10006, - "name": "IClaimsToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10005, - "src": "2986:12:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IClaimsToken_$10005", - "typeString": "contract IClaimsToken" - } - }, - "id": 10007, - "nodeType": "InheritanceSpecifier", - "src": "2986:12:24" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10008, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9650, - "src": "3000:5:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$9650", - "typeString": "contract ERC20" - } - }, - "id": 10009, - "nodeType": "InheritanceSpecifier", - "src": "3000:5:24" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10010, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9977, - "src": "3007:13:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$9977", - "typeString": "contract ERC20Detailed" - } - }, - "id": 10011, - "nodeType": "InheritanceSpecifier", - "src": "3007:13:24" - } - ], - "contractDependencies": [ - 9650, - 9719, - 9977, - 10005 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 10228, - "linearizedBaseContracts": [ - 10228, - 9977, - 9650, - 9719, - 10005 - ], - "name": "ClaimsToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 10014, - "libraryName": { - "contractScope": null, - "id": 10012, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "3033:8:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3027:27:24", - "typeName": { - "id": 10013, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3046:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 10016, - "name": "receivedFunds", - "nodeType": "VariableDeclaration", - "scope": 10228, - "src": "3107:28:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10015, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3107:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 10020, - "name": "processedFunds", - "nodeType": "VariableDeclaration", - "scope": 10228, - "src": "3226:50:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 10019, - "keyType": { - "id": 10017, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3235:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3226:28:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 10018, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3246:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 10024, - "name": "claimedFunds", - "nodeType": "VariableDeclaration", - "scope": 10228, - "src": "3332:48:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 10023, - "keyType": { - "id": 10021, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3341:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3332:28:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 10022, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3352:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 10050, - "nodeType": "Block", - "src": "3471:76:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10035, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10026, - "src": "3482:6:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10043, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 10036, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3490:5:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10041, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 10037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3499:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3138", - "id": 10039, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3513:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - } - ], - "id": 10038, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3505:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 10040, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3505:11:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3499:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10042, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3498:19:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3490:27:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10034, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9539, - "src": "3476:5:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 10044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3476:42:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10045, - "nodeType": "ExpressionStatement", - "src": "3476:42:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10046, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "3525:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 10047, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3541:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3525:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10049, - "nodeType": "ExpressionStatement", - "src": "3525:17:24" - } - ] - }, - "documentation": null, - "id": 10051, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "436c61696d73546f6b656e", - "id": 10029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3443:13:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_25771c0ba9a97de4408886fe552885a1751acfa735dfd2ef9c66e7b9e8871e71", - "typeString": "literal_string \"ClaimsToken\"" - }, - "value": "ClaimsToken" - }, - { - "argumentTypes": null, - "hexValue": "435354", - "id": 10030, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3458:5:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0626086d51c299e905c42b7a28a0add92109e49b12cb2bd2531769201453ab94", - "typeString": "literal_string \"CST\"" - }, - "value": "CST" - }, - { - "argumentTypes": null, - "hexValue": "3138", - "id": 10031, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3465:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - } - ], - "id": 10032, - "modifierName": { - "argumentTypes": null, - "id": 10028, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9977, - "src": "3429:13:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$9977_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3429:39:24" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10027, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10026, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 10051, - "src": "3400:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10025, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3400:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3399:16:24" - }, - "returnParameters": { - "id": 10033, - "nodeType": "ParameterList", - "parameters": [], - "src": "3471:0:24" - }, - "scope": 10228, - "src": "3388:159:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 10075, - "nodeType": "Block", - "src": "3898:95:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10061, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3915:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3915:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 10060, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "3903:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3903:23:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10064, - "nodeType": "ExpressionStatement", - "src": "3903:23:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10066, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10053, - "src": "3943:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10065, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "3931:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3931:16:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10068, - "nodeType": "ExpressionStatement", - "src": "3931:16:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10071, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10053, - "src": "3976:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10072, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10055, - "src": "3981:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10069, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "3961:5:24", - "typeDescriptions": { - "typeIdentifier": "t_super$_ClaimsToken_$10228", - "typeString": "contract super ClaimsToken" - } - }, - "id": 10070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9343, - "src": "3961:14:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 10073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3961:27:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 10059, - "id": 10074, - "nodeType": "Return", - "src": "3954:34:24" - } - ] - }, - "documentation": "@dev Transfer token to a specified address.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _to The address to transfer to\r\n@param _value The amount to be transferred\r", - "id": 10076, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10056, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10053, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 10076, - "src": "3839:11:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10052, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3839:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10055, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10076, - "src": "3852:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10054, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3852:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3838:29:24" - }, - "returnParameters": { - "id": 10059, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10058, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10076, - "src": "3890:4:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10057, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3890:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3889:6:24" - }, - "scope": 10228, - "src": "3821:172:24", - "stateMutability": "nonpayable", - "superFunction": 9343, - "visibility": "public" - }, - { - "body": { - "id": 10102, - "nodeType": "Block", - "src": "4485:101:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10088, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10078, - "src": "4502:5:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10087, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "4490:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4490:18:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10090, - "nodeType": "ExpressionStatement", - "src": "4490:18:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10092, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10080, - "src": "4525:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10091, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "4513:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4513:16:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10094, - "nodeType": "ExpressionStatement", - "src": "4513:16:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10097, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10078, - "src": "4562:5:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10098, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10080, - "src": "4569:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10099, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "4574:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10095, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "4543:5:24", - "typeDescriptions": { - "typeIdentifier": "t_super$_ClaimsToken_$10228", - "typeString": "contract super ClaimsToken" - } - }, - "id": 10096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 9397, - "src": "4543:18:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 10100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4543:38:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 10086, - "id": 10101, - "nodeType": "Return", - "src": "4536:45:24" - } - ] - }, - "documentation": "@dev Transfer tokens from one address to another.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _from address The address which you want to send tokens from\r\n@param _to address The address which you want to transfer to\r\n@param _value uint256 the amount of tokens to be transferred\r", - "id": 10103, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10083, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10078, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4411:13:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10077, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4411:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10080, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4426:11:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10079, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4426:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10082, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4439:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10081, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4439:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4410:44:24" - }, - "returnParameters": { - "id": 10086, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10085, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4477:4:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10084, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4477:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4476:6:24" - }, - "scope": 10228, - "src": "4389:197:24", - "stateMutability": "nonpayable", - "superFunction": 9397, - "visibility": "public" - }, - { - "body": { - "id": 10110, - "nodeType": "Block", - "src": "4808:30:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 10108, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "4820:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10107, - "id": 10109, - "nodeType": "Return", - "src": "4813:20:24" - } - ] - }, - "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", - "id": 10111, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalReceivedFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10104, - "nodeType": "ParameterList", - "parameters": [], - "src": "4762:2:24" - }, - "returnParameters": { - "id": 10107, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10106, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10111, - "src": "4797:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10105, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4797:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4796:9:24" - }, - "scope": 10228, - "src": "4735:103:24", - "stateMutability": "view", - "superFunction": 10004, - "visibility": "external" - }, - { - "body": { - "id": 10127, - "nodeType": "Block", - "src": "5156:82:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10122, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "5207:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10124, - "indexExpression": { - "argumentTypes": null, - "id": 10123, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10113, - "src": "5220:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5207:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10119, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10113, - "src": "5190:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10118, - "name": "_calcUnprocessedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10169, - "src": "5168:21:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5168:34:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "5168:38:24", - "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": 10125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5168:65:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10117, - "id": 10126, - "nodeType": "Return", - "src": "5161:72:24" - } - ] - }, - "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", - "id": 10128, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "availableFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10113, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 10128, - "src": "5094:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10112, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5094:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5093:21:24" - }, - "returnParameters": { - "id": 10117, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10116, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10128, - "src": "5145:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10115, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5145:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5144:9:24" - }, - "scope": 10228, - "src": "5070:168:24", - "stateMutability": "view", - "superFunction": 9999, - "visibility": "public" - }, - { - "body": { - "id": 10140, - "nodeType": "Block", - "src": "5477:51:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 10138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10133, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "5482:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10136, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10130, - "src": "5516:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10134, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "5498:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "5498:17:24", - "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": 10137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5498:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5482:41:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10139, - "nodeType": "ExpressionStatement", - "src": "5482:41:24" - } - ] - }, - "documentation": "@dev Increments cumulative received funds by new received funds.\r\nCalled when ClaimsToken receives funds.\r\n@param _value Amount of tokens / Ether received\r", - "id": 10141, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10131, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10130, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10141, - "src": "5447:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10129, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5447:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5446:16:24" - }, - "returnParameters": { - "id": 10132, - "nodeType": "ParameterList", - "parameters": [], - "src": "5477:0:24" - }, - "scope": 10228, - "src": "5423:105:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10168, - "nodeType": "Block", - "src": "5765:158:24", - "statements": [ - { - "assignments": [ - 10149 - ], - "declarations": [ - { - "constant": false, - "id": 10149, - "name": "newReceivedFunds", - "nodeType": "VariableDeclaration", - "scope": 10168, - "src": "5770:24:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10148, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5770:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10156, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10152, - "name": "processedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "5815:14:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10154, - "indexExpression": { - "argumentTypes": null, - "id": 10153, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10143, - "src": "5830:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5815:27:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10150, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "5797:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "5797:17:24", - "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": 10155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5797:46:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5770:73:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10164, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9296, - "src": "5904:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 10165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5904:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10161, - "name": "newReceivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10149, - "src": "5882:16:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10158, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10143, - "src": "5865:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10157, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9308, - "src": "5855:9:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5855:22:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 9784, - "src": "5855:26:24", - "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": 10162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5855:44:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 9808, - "src": "5855:48:24", - "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": 10166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5855:63:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10147, - "id": 10167, - "nodeType": "Return", - "src": "5848:70:24" - } - ] - }, - "documentation": "@dev Returns payout for a user which can be withdrawn or claimed.\r\n@param _forAddress Address of ClaimsToken holder\r", - "id": 10169, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_calcUnprocessedFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10144, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10143, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 10169, - "src": "5701:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5701:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5700:21:24" - }, - "returnParameters": { - "id": 10147, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10146, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10169, - "src": "5754:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10145, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5754:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5753:9:24" - }, - "scope": 10228, - "src": "5670:253:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10197, - "nodeType": "Block", - "src": "6080:201:24", - "statements": [ - { - "assignments": [ - 10175 - ], - "declarations": [ - { - "constant": false, - "id": 10175, - "name": "unprocessedFunds", - "nodeType": "VariableDeclaration", - "scope": 10197, - "src": "6085:24:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10174, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6085:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10179, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10177, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6134:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10176, - "name": "_calcUnprocessedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10169, - "src": "6112:21:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6112:34:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6085:61:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10180, - "name": "processedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "6153:14:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10182, - "indexExpression": { - "argumentTypes": null, - "id": 10181, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6168:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6153:27:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10183, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "6183:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6153:43:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10185, - "nodeType": "ExpressionStatement", - "src": "6153:43:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10186, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "6201:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10188, - "indexExpression": { - "argumentTypes": null, - "id": 10187, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6214:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6201:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10193, - "name": "unprocessedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10175, - "src": "6259:16:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10189, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "6229:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10191, - "indexExpression": { - "argumentTypes": null, - "id": 10190, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6242:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6229:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "6229:29:24", - "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": 10194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6229:47:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6201:75:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10196, - "nodeType": "ExpressionStatement", - "src": "6201:75:24" - } - ] - }, - "documentation": "@dev Claims funds for a user.\r\n@param _forAddress Address of ClaimsToken holder\r", - "id": 10198, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_claimFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10172, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10171, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 10198, - "src": "6050:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10170, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6050:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6049:21:24" - }, - "returnParameters": { - "id": 10173, - "nodeType": "ParameterList", - "parameters": [], - "src": "6080:0:24" - }, - "scope": 10228, - "src": "6029:252:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10226, - "nodeType": "Block", - "src": "6575:177:24", - "statements": [ - { - "assignments": [ - 10204 - ], - "declarations": [ - { - "constant": false, - "id": 10204, - "name": "withdrawableFunds", - "nodeType": "VariableDeclaration", - "scope": 10226, - "src": "6580:25:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10203, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6580:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10209, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10206, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6623:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6623:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 10205, - "name": "availableFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10128, - "src": "6608:14:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6608:26:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6580:54:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10210, - "name": "processedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "6641:14:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10213, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10211, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6656:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6656:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6641:26:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10214, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "6670:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6641:42:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10216, - "nodeType": "ExpressionStatement", - "src": "6641:42:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10217, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "6688:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10220, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10218, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6701:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6701:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6688:24:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 10221, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6715:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6688:28:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10223, - "nodeType": "ExpressionStatement", - "src": "6688:28:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10224, - "name": "withdrawableFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10204, - "src": "6730:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10202, - "id": 10225, - "nodeType": "Return", - "src": "6723:24:24" - } - ] - }, - "documentation": "@dev Sets claimed but not yet withdrawn funds to 0,\r\nmarks total received funds as processed and\r\nreturns the withdrawable amount for a user.\r\n@return A uint256 representing the withdrawable funds\r", - "id": 10227, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_prepareWithdraw", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10199, - "nodeType": "ParameterList", - "parameters": [], - "src": "6537:2:24" - }, - "returnParameters": { - "id": 10202, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10201, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10227, - "src": "6564:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10200, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6564:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6563:9:24" - }, - "scope": 10228, - "src": "6512:240:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 10328, - "src": "2962:3793:24" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10229, - "name": "IClaimsToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10005, - "src": "6797:12:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IClaimsToken_$10005", - "typeString": "contract IClaimsToken" - } - }, - "id": 10230, - "nodeType": "InheritanceSpecifier", - "src": "6797:12:24" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10231, - "name": "ClaimsToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10228, - "src": "6811:11:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ClaimsToken_$10228", - "typeString": "contract ClaimsToken" - } - }, - "id": 10232, - "nodeType": "InheritanceSpecifier", - "src": "6811:11:24" - } - ], - "contractDependencies": [ - 9650, - 9719, - 9977, - 10005, - 10228 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 10327, - "linearizedBaseContracts": [ - 10327, - 10228, - 9977, - 9650, - 9719, - 10005 - ], - "name": "ClaimsTokenERC20Extension", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 10234, - "name": "fundsToken", - "nodeType": "VariableDeclaration", - "scope": 10327, - "src": "6880:24:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 10233, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "6880:6:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 10247, - "nodeType": "Block", - "src": "6937:81:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 10242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10237, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6950:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6950:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10240, - "name": "fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10234, - "src": "6972:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - ], - "id": 10239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6964:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 10241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6964:19:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6950:33:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "554e415554484f52495a45445f53454e444552", - "id": 10243, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6985:21:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", - "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" - }, - "value": "UNAUTHORIZED_SENDER" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", - "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" - } - ], - "id": 10236, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "6942:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 10244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6942:65:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10245, - "nodeType": "ExpressionStatement", - "src": "6942:65:24" - }, - { - "id": 10246, - "nodeType": "PlaceholderStatement", - "src": "7012:1:24" - } - ] - }, - "documentation": null, - "id": 10248, - "name": "onlyFundsToken", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 10235, - "nodeType": "ParameterList", - "parameters": [], - "src": "6934:2:24" - }, - "src": "6910:108:24", - "visibility": "internal" - }, - { - "body": { - "id": 10272, - "nodeType": "Block", - "src": "7106:84:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 10265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10260, - "name": "_fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10252, - "src": "7127:11:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - ], - "id": 10259, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7119:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 10261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7119:20:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 10263, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7151:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 10262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7143:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 10264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7143:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7119:34:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 10258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "7111:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 10266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7111:43:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10267, - "nodeType": "ExpressionStatement", - "src": "7111:43:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10268, - "name": "fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10234, - "src": "7161:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10269, - "name": "_fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10252, - "src": "7174:11:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "src": "7161:24:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 10271, - "nodeType": "ExpressionStatement", - "src": "7161:24:24" - } - ] - }, - "documentation": null, - "id": 10273, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 10255, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10250, - "src": "7096:6:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 10256, - "modifierName": { - "argumentTypes": null, - "id": 10254, - "name": "ClaimsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10228, - "src": "7084:11:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ClaimsToken_$10228_$", - "typeString": "type(contract ClaimsToken)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7084:19:24" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10253, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10250, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 10273, - "src": "7035:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10249, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7035:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10252, - "name": "_fundsToken", - "nodeType": "VariableDeclaration", - "scope": 10273, - "src": "7051:18:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 10251, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "7051:6:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7034:36:24" - }, - "returnParameters": { - "id": 10257, - "nodeType": "ParameterList", - "parameters": [], - "src": "7106:0:24" - }, - "scope": 10327, - "src": "7023:167:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 10299, - "nodeType": "Block", - "src": "7303:175:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10277, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "7316:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7316:9:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 10279, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7329:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7316:14:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 10281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7332:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 10276, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7308:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 10282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7308:27:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10283, - "nodeType": "ExpressionStatement", - "src": "7308:27:24" - }, - { - "assignments": [ - 10285 - ], - "declarations": [ - { - "constant": false, - "id": 10285, - "name": "withdrawableFunds", - "nodeType": "VariableDeclaration", - "scope": 10299, - "src": "7342:25:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10284, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7342:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10288, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10286, - "name": "_prepareWithdraw", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10227, - "src": "7370:16:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_uint256_$", - "typeString": "function () returns (uint256)" - } - }, - "id": 10287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7370:18:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7342:46:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10292, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "7423:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7423:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 10294, - "name": "withdrawableFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10285, - "src": "7435:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10290, - "name": "fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10234, - "src": "7403:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 10291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9661, - "src": "7403:19:24", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 10295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7403:50:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5452414e534645525f4641494c4544", - "id": 10296, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7455:17:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", - "typeString": "literal_string \"TRANSFER_FAILED\"" - }, - "value": "TRANSFER_FAILED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", - "typeString": "literal_string \"TRANSFER_FAILED\"" - } - ], - "id": 10289, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7395:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 10297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7395:78:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10298, - "nodeType": "ExpressionStatement", - "src": "7395:78:24" - } - ] - }, - "documentation": "@dev Withdraws available funds for user.\r", - "id": 10300, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdrawFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10274, - "nodeType": "ParameterList", - "parameters": [], - "src": "7275:2:24" - }, - "returnParameters": { - "id": 10275, - "nodeType": "ParameterList", - "parameters": [], - "src": "7303:0:24" - }, - "scope": 10327, - "src": "7253:225:24", - "stateMutability": "payable", - "superFunction": 9992, - "visibility": "external" - }, - { - "body": { - "id": 10325, - "nodeType": "Block", - "src": "7777:100:24", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10311, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10304, - "src": "7786:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 10312, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7795:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7786:10:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 10324, - "nodeType": "IfStatement", - "src": "7782:91:24", - "trueBody": { - "id": 10323, - "nodeType": "Block", - "src": "7798:75:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10315, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10304, - "src": "7819:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10314, - "name": "_registerFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10141, - "src": "7804:14:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 10316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7804:22:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10317, - "nodeType": "ExpressionStatement", - "src": "7804:22:24" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10319, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10302, - "src": "7851:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10320, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10304, - "src": "7860:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10318, - "name": "FundsReceived", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9983, - "src": "7837:13:24", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 10321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7837:30:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10322, - "nodeType": "EmitStatement", - "src": "7832:35:24" - } - ] - } - } - ] - }, - "documentation": "@dev For ERC223.\r\nCalls _registerFunds(), whereby total received funds (cumulative) gets updated.\r\n@param _sender Sender of tokens\r\n@param _value Amount of tokens\r", - "id": 10326, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [], - "id": 10309, - "modifierName": { - "argumentTypes": null, - "id": 10308, - "name": "onlyFundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10248, - "src": "7758:14:24", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7758:16:24" - } - ], - "name": "tokenFallback", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10307, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10302, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 10326, - "src": "7698:15:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10301, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7698:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10304, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10326, - "src": "7715:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10303, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7715:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10306, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10326, - "src": "7731:12:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 10305, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7731:5:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7697:47:24" - }, - "returnParameters": { - "id": 10310, - "nodeType": "ParameterList", - "parameters": [], - "src": "7777:0:24" - }, - "scope": 10327, - "src": "7675:202:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 10328, - "src": "6759:1121:24" - } - ], - "src": "0:7882:24" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol", - "exportedSymbols": { - "ClaimsToken": [ - 10228 - ], - "ClaimsTokenERC20Extension": [ - 10327 - ], - "ERC20Detailed": [ - 9977 - ], - "IClaimsToken": [ - 10005 - ] - }, - "id": 10328, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9919, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:24" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "../oz/SafeMath.sol", - "id": 9920, - "nodeType": "ImportDirective", - "scope": 10328, - "sourceUnit": 9858, - "src": "36:28:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", - "file": "../oz/IERC20.sol", - "id": 9921, - "nodeType": "ImportDirective", - "scope": 10328, - "sourceUnit": 9720, - "src": "66:26:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol", - "file": "../oz/ERC20.sol", - "id": 9922, - "nodeType": "ImportDirective", - "scope": 10328, - "sourceUnit": 9651, - "src": "94:25:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 9923, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "212:6:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 9924, - "nodeType": "InheritanceSpecifier", - "src": "212:6:24" - } - ], - "contractDependencies": [ - 9719 - ], - "contractKind": "contract", - "documentation": "@dev Optional functions from the ERC20 standard.\r", - "fullyImplemented": false, - "id": 9977, - "linearizedBaseContracts": [ - 9977, - 9719 - ], - "name": "ERC20Detailed", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 9926, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 9977, - "src": "226:20:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 9925, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "226:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 9928, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 9977, - "src": "253:22:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 9927, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "253:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 9930, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 9977, - "src": "282:23:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9929, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "282:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 9951, - "nodeType": "Block", - "src": "581:89:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9939, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9926, - "src": "592:5:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9940, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9932, - "src": "600:4:24", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "592:12:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 9942, - "nodeType": "ExpressionStatement", - "src": "592:12:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 9945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9943, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9928, - "src": "615:7:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9944, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9934, - "src": "625:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "615:16:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 9946, - "nodeType": "ExpressionStatement", - "src": "615:16:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 9949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9947, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9930, - "src": "642:9:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9948, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9936, - "src": "654:8:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "642:20:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 9950, - "nodeType": "ExpressionStatement", - "src": "642:20:24" - } - ] - }, - "documentation": "@dev Sets the values for `name`, `symbol`, and `decimals`. All three of\r\nthese values are immutable: they can only be set once during\r\nconstruction.\r", - "id": 9952, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9937, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9932, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 9952, - "src": "516:18:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9931, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "516:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9934, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 9952, - "src": "536:20:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9933, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "536:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9936, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 9952, - "src": "558:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9935, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "558:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "515:58:24" - }, - "returnParameters": { - "id": 9938, - "nodeType": "ParameterList", - "parameters": [], - "src": "581:0:24" - }, - "scope": 9977, - "src": "503:167:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9959, - "nodeType": "Block", - "src": "792:31:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9957, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9926, - "src": "810:5:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 9956, - "id": 9958, - "nodeType": "Return", - "src": "803:12:24" - } - ] - }, - "documentation": "@dev Returns the name of the token.\r", - "id": 9960, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9953, - "nodeType": "ParameterList", - "parameters": [], - "src": "753:2:24" - }, - "returnParameters": { - "id": 9956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9955, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9960, - "src": "777:13:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9954, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "777:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "776:15:24" - }, - "scope": 9977, - "src": "740:83:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9967, - "nodeType": "Block", - "src": "996:33:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9965, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9928, - "src": "1014:7:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 9964, - "id": 9966, - "nodeType": "Return", - "src": "1007:14:24" - } - ] - }, - "documentation": "@dev Returns the symbol of the token, usually a shorter version of the\r\nname.\r", - "id": 9968, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9961, - "nodeType": "ParameterList", - "parameters": [], - "src": "957:2:24" - }, - "returnParameters": { - "id": 9964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9963, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9968, - "src": "981:13:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9962, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "981:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "980:15:24" - }, - "scope": 9977, - "src": "942:87:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9975, - "nodeType": "Block", - "src": "1640:35:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9973, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9930, - "src": "1658:9:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 9972, - "id": 9974, - "nodeType": "Return", - "src": "1651:16:24" - } - ] - }, - "documentation": "@dev Returns the number of decimals used to get its user representation.\r\nFor example, if `decimals` equals `2`, a balance of `505` tokens should\r\nbe displayed to a user as `5,05` (`505 / 10 ** 2`).\r\n\n * Tokens usually opt for a value of 18, imitating the relationship between\r\nEther and Wei.\r\n\n * NOTE: This information is only used for _display_ purposes: it in\r\nno way affects any of the arithmetic of the contract, including\r\n{IERC20-balanceOf} and {IERC20-transfer}.\r", - "id": 9976, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decimals", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9969, - "nodeType": "ParameterList", - "parameters": [], - "src": "1609:2:24" - }, - "returnParameters": { - "id": 9972, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9971, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9976, - "src": "1633:5:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9970, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1633:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1632:7:24" - }, - "scope": 9977, - "src": "1592:83:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 10328, - "src": "186:1492:24" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 10005, - "linearizedBaseContracts": [ - 10005 - ], - "name": "IClaimsToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": "@dev This event emits when funds to be deposited are sent to the token contract\r\n@param from contains the address of the sender of the received funds\r\n@param fundsReceived contains the amount of funds received for distribution\r", - "id": 9983, - "name": "FundsReceived", - "nodeType": "EventDefinition", - "parameters": { - "id": 9982, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9979, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 9983, - "src": "1983:20:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9978, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1983:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9981, - "indexed": false, - "name": "fundsReceived", - "nodeType": "VariableDeclaration", - "scope": 9983, - "src": "2005:21:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9980, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2005:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1982:45:24" - }, - "src": "1963:65:24" - }, - { - "anonymous": false, - "documentation": "@dev This event emits when distributed funds are withdrawn by a token holder.\r\n@param by contains the address of the receiver of funds\r\n@param fundsWithdrawn contains the amount of funds that were withdrawn\r", - "id": 9989, - "name": "FundsWithdrawn", - "nodeType": "EventDefinition", - "parameters": { - "id": 9988, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9985, - "indexed": true, - "name": "by", - "nodeType": "VariableDeclaration", - "scope": 9989, - "src": "2286:18:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9984, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2286:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9987, - "indexed": false, - "name": "fundsWithdrawn", - "nodeType": "VariableDeclaration", - "scope": 9989, - "src": "2306:22:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2306:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2285:44:24" - }, - "src": "2265:65:24" - }, - { - "body": null, - "documentation": "@dev Withdraws available funds for user.\r", - "id": 9992, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "withdrawFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9990, - "nodeType": "ParameterList", - "parameters": [], - "src": "2415:2:24" - }, - "returnParameters": { - "id": 9991, - "nodeType": "ParameterList", - "parameters": [], - "src": "2434:0:24" - }, - "scope": 10005, - "src": "2393:42:24", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", - "id": 9999, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "availableFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9994, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 9999, - "src": "2691:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2691:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2690:21:24" - }, - "returnParameters": { - "id": 9998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9997, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9999, - "src": "2735:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9996, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2735:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2734:9:24" - }, - "scope": 10005, - "src": "2667:77:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", - "id": 10004, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalReceivedFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10000, - "nodeType": "ParameterList", - "parameters": [], - "src": "2920:2:24" - }, - "returnParameters": { - "id": 10003, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10002, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10004, - "src": "2946:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10001, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2946:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2945:9:24" - }, - "scope": 10005, - "src": "2893:62:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 10328, - "src": "1682:1276:24" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10006, - "name": "IClaimsToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10005, - "src": "2986:12:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IClaimsToken_$10005", - "typeString": "contract IClaimsToken" - } - }, - "id": 10007, - "nodeType": "InheritanceSpecifier", - "src": "2986:12:24" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10008, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9650, - "src": "3000:5:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$9650", - "typeString": "contract ERC20" - } - }, - "id": 10009, - "nodeType": "InheritanceSpecifier", - "src": "3000:5:24" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10010, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9977, - "src": "3007:13:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$9977", - "typeString": "contract ERC20Detailed" - } - }, - "id": 10011, - "nodeType": "InheritanceSpecifier", - "src": "3007:13:24" - } - ], - "contractDependencies": [ - 9650, - 9719, - 9977, - 10005 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 10228, - "linearizedBaseContracts": [ - 10228, - 9977, - 9650, - 9719, - 10005 - ], - "name": "ClaimsToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 10014, - "libraryName": { - "contractScope": null, - "id": 10012, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "3033:8:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3027:27:24", - "typeName": { - "id": 10013, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3046:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 10016, - "name": "receivedFunds", - "nodeType": "VariableDeclaration", - "scope": 10228, - "src": "3107:28:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10015, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3107:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 10020, - "name": "processedFunds", - "nodeType": "VariableDeclaration", - "scope": 10228, - "src": "3226:50:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 10019, - "keyType": { - "id": 10017, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3235:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3226:28:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 10018, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3246:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 10024, - "name": "claimedFunds", - "nodeType": "VariableDeclaration", - "scope": 10228, - "src": "3332:48:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 10023, - "keyType": { - "id": 10021, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3341:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3332:28:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 10022, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3352:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 10050, - "nodeType": "Block", - "src": "3471:76:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10035, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10026, - "src": "3482:6:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10043, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 10036, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3490:5:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10041, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 10037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3499:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3138", - "id": 10039, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3513:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - } - ], - "id": 10038, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3505:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 10040, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3505:11:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3499:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10042, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3498:19:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3490:27:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10034, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9539, - "src": "3476:5:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 10044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3476:42:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10045, - "nodeType": "ExpressionStatement", - "src": "3476:42:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10046, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "3525:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 10047, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3541:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3525:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10049, - "nodeType": "ExpressionStatement", - "src": "3525:17:24" - } - ] - }, - "documentation": null, - "id": 10051, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "436c61696d73546f6b656e", - "id": 10029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3443:13:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_25771c0ba9a97de4408886fe552885a1751acfa735dfd2ef9c66e7b9e8871e71", - "typeString": "literal_string \"ClaimsToken\"" - }, - "value": "ClaimsToken" - }, - { - "argumentTypes": null, - "hexValue": "435354", - "id": 10030, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3458:5:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0626086d51c299e905c42b7a28a0add92109e49b12cb2bd2531769201453ab94", - "typeString": "literal_string \"CST\"" - }, - "value": "CST" - }, - { - "argumentTypes": null, - "hexValue": "3138", - "id": 10031, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3465:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - } - ], - "id": 10032, - "modifierName": { - "argumentTypes": null, - "id": 10028, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9977, - "src": "3429:13:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$9977_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3429:39:24" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10027, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10026, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 10051, - "src": "3400:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10025, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3400:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3399:16:24" - }, - "returnParameters": { - "id": 10033, - "nodeType": "ParameterList", - "parameters": [], - "src": "3471:0:24" - }, - "scope": 10228, - "src": "3388:159:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 10075, - "nodeType": "Block", - "src": "3898:95:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10061, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3915:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3915:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 10060, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "3903:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3903:23:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10064, - "nodeType": "ExpressionStatement", - "src": "3903:23:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10066, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10053, - "src": "3943:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10065, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "3931:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3931:16:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10068, - "nodeType": "ExpressionStatement", - "src": "3931:16:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10071, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10053, - "src": "3976:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10072, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10055, - "src": "3981:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10069, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "3961:5:24", - "typeDescriptions": { - "typeIdentifier": "t_super$_ClaimsToken_$10228", - "typeString": "contract super ClaimsToken" - } - }, - "id": 10070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9343, - "src": "3961:14:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 10073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3961:27:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 10059, - "id": 10074, - "nodeType": "Return", - "src": "3954:34:24" - } - ] - }, - "documentation": "@dev Transfer token to a specified address.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _to The address to transfer to\r\n@param _value The amount to be transferred\r", - "id": 10076, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10056, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10053, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 10076, - "src": "3839:11:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10052, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3839:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10055, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10076, - "src": "3852:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10054, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3852:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3838:29:24" - }, - "returnParameters": { - "id": 10059, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10058, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10076, - "src": "3890:4:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10057, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3890:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3889:6:24" - }, - "scope": 10228, - "src": "3821:172:24", - "stateMutability": "nonpayable", - "superFunction": 9343, - "visibility": "public" - }, - { - "body": { - "id": 10102, - "nodeType": "Block", - "src": "4485:101:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10088, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10078, - "src": "4502:5:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10087, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "4490:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4490:18:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10090, - "nodeType": "ExpressionStatement", - "src": "4490:18:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10092, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10080, - "src": "4525:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10091, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "4513:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4513:16:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10094, - "nodeType": "ExpressionStatement", - "src": "4513:16:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10097, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10078, - "src": "4562:5:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10098, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10080, - "src": "4569:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10099, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "4574:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10095, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "4543:5:24", - "typeDescriptions": { - "typeIdentifier": "t_super$_ClaimsToken_$10228", - "typeString": "contract super ClaimsToken" - } - }, - "id": 10096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 9397, - "src": "4543:18:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 10100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4543:38:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 10086, - "id": 10101, - "nodeType": "Return", - "src": "4536:45:24" - } - ] - }, - "documentation": "@dev Transfer tokens from one address to another.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _from address The address which you want to send tokens from\r\n@param _to address The address which you want to transfer to\r\n@param _value uint256 the amount of tokens to be transferred\r", - "id": 10103, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10083, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10078, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4411:13:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10077, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4411:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10080, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4426:11:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10079, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4426:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10082, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4439:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10081, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4439:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4410:44:24" - }, - "returnParameters": { - "id": 10086, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10085, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4477:4:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10084, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4477:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4476:6:24" - }, - "scope": 10228, - "src": "4389:197:24", - "stateMutability": "nonpayable", - "superFunction": 9397, - "visibility": "public" - }, - { - "body": { - "id": 10110, - "nodeType": "Block", - "src": "4808:30:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 10108, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "4820:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10107, - "id": 10109, - "nodeType": "Return", - "src": "4813:20:24" - } - ] - }, - "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", - "id": 10111, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalReceivedFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10104, - "nodeType": "ParameterList", - "parameters": [], - "src": "4762:2:24" - }, - "returnParameters": { - "id": 10107, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10106, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10111, - "src": "4797:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10105, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4797:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4796:9:24" - }, - "scope": 10228, - "src": "4735:103:24", - "stateMutability": "view", - "superFunction": 10004, - "visibility": "external" - }, - { - "body": { - "id": 10127, - "nodeType": "Block", - "src": "5156:82:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10122, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "5207:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10124, - "indexExpression": { - "argumentTypes": null, - "id": 10123, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10113, - "src": "5220:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5207:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10119, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10113, - "src": "5190:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10118, - "name": "_calcUnprocessedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10169, - "src": "5168:21:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5168:34:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "5168:38:24", - "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": 10125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5168:65:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10117, - "id": 10126, - "nodeType": "Return", - "src": "5161:72:24" - } - ] - }, - "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", - "id": 10128, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "availableFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10113, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 10128, - "src": "5094:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10112, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5094:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5093:21:24" - }, - "returnParameters": { - "id": 10117, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10116, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10128, - "src": "5145:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10115, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5145:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5144:9:24" - }, - "scope": 10228, - "src": "5070:168:24", - "stateMutability": "view", - "superFunction": 9999, - "visibility": "public" - }, - { - "body": { - "id": 10140, - "nodeType": "Block", - "src": "5477:51:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 10138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10133, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "5482:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10136, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10130, - "src": "5516:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10134, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "5498:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "5498:17:24", - "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": 10137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5498:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5482:41:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10139, - "nodeType": "ExpressionStatement", - "src": "5482:41:24" - } - ] - }, - "documentation": "@dev Increments cumulative received funds by new received funds.\r\nCalled when ClaimsToken receives funds.\r\n@param _value Amount of tokens / Ether received\r", - "id": 10141, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10131, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10130, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10141, - "src": "5447:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10129, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5447:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5446:16:24" - }, - "returnParameters": { - "id": 10132, - "nodeType": "ParameterList", - "parameters": [], - "src": "5477:0:24" - }, - "scope": 10228, - "src": "5423:105:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10168, - "nodeType": "Block", - "src": "5765:158:24", - "statements": [ - { - "assignments": [ - 10149 - ], - "declarations": [ - { - "constant": false, - "id": 10149, - "name": "newReceivedFunds", - "nodeType": "VariableDeclaration", - "scope": 10168, - "src": "5770:24:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10148, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5770:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10156, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10152, - "name": "processedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "5815:14:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10154, - "indexExpression": { - "argumentTypes": null, - "id": 10153, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10143, - "src": "5830:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5815:27:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10150, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "5797:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "5797:17:24", - "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": 10155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5797:46:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5770:73:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10164, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9296, - "src": "5904:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 10165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5904:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10161, - "name": "newReceivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10149, - "src": "5882:16:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10158, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10143, - "src": "5865:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10157, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9308, - "src": "5855:9:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5855:22:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 9784, - "src": "5855:26:24", - "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": 10162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5855:44:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 9808, - "src": "5855:48:24", - "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": 10166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5855:63:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10147, - "id": 10167, - "nodeType": "Return", - "src": "5848:70:24" - } - ] - }, - "documentation": "@dev Returns payout for a user which can be withdrawn or claimed.\r\n@param _forAddress Address of ClaimsToken holder\r", - "id": 10169, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_calcUnprocessedFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10144, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10143, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 10169, - "src": "5701:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5701:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5700:21:24" - }, - "returnParameters": { - "id": 10147, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10146, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10169, - "src": "5754:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10145, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5754:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5753:9:24" - }, - "scope": 10228, - "src": "5670:253:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10197, - "nodeType": "Block", - "src": "6080:201:24", - "statements": [ - { - "assignments": [ - 10175 - ], - "declarations": [ - { - "constant": false, - "id": 10175, - "name": "unprocessedFunds", - "nodeType": "VariableDeclaration", - "scope": 10197, - "src": "6085:24:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10174, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6085:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10179, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10177, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6134:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10176, - "name": "_calcUnprocessedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10169, - "src": "6112:21:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6112:34:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6085:61:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10180, - "name": "processedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "6153:14:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10182, - "indexExpression": { - "argumentTypes": null, - "id": 10181, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6168:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6153:27:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10183, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "6183:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6153:43:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10185, - "nodeType": "ExpressionStatement", - "src": "6153:43:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10186, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "6201:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10188, - "indexExpression": { - "argumentTypes": null, - "id": 10187, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6214:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6201:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10193, - "name": "unprocessedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10175, - "src": "6259:16:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10189, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "6229:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10191, - "indexExpression": { - "argumentTypes": null, - "id": 10190, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6242:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6229:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "6229:29:24", - "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": 10194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6229:47:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6201:75:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10196, - "nodeType": "ExpressionStatement", - "src": "6201:75:24" - } - ] - }, - "documentation": "@dev Claims funds for a user.\r\n@param _forAddress Address of ClaimsToken holder\r", - "id": 10198, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_claimFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10172, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10171, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 10198, - "src": "6050:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10170, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6050:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6049:21:24" - }, - "returnParameters": { - "id": 10173, - "nodeType": "ParameterList", - "parameters": [], - "src": "6080:0:24" - }, - "scope": 10228, - "src": "6029:252:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10226, - "nodeType": "Block", - "src": "6575:177:24", - "statements": [ - { - "assignments": [ - 10204 - ], - "declarations": [ - { - "constant": false, - "id": 10204, - "name": "withdrawableFunds", - "nodeType": "VariableDeclaration", - "scope": 10226, - "src": "6580:25:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10203, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6580:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10209, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10206, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6623:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6623:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 10205, - "name": "availableFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10128, - "src": "6608:14:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6608:26:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6580:54:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10210, - "name": "processedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "6641:14:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10213, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10211, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6656:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6656:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6641:26:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10214, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "6670:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6641:42:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10216, - "nodeType": "ExpressionStatement", - "src": "6641:42:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10217, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "6688:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10220, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10218, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6701:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6701:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6688:24:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 10221, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6715:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6688:28:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10223, - "nodeType": "ExpressionStatement", - "src": "6688:28:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10224, - "name": "withdrawableFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10204, - "src": "6730:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10202, - "id": 10225, - "nodeType": "Return", - "src": "6723:24:24" - } - ] - }, - "documentation": "@dev Sets claimed but not yet withdrawn funds to 0,\r\nmarks total received funds as processed and\r\nreturns the withdrawable amount for a user.\r\n@return A uint256 representing the withdrawable funds\r", - "id": 10227, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_prepareWithdraw", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10199, - "nodeType": "ParameterList", - "parameters": [], - "src": "6537:2:24" - }, - "returnParameters": { - "id": 10202, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10201, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10227, - "src": "6564:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10200, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6564:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6563:9:24" - }, - "scope": 10228, - "src": "6512:240:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 10328, - "src": "2962:3793:24" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10229, - "name": "IClaimsToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10005, - "src": "6797:12:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IClaimsToken_$10005", - "typeString": "contract IClaimsToken" - } - }, - "id": 10230, - "nodeType": "InheritanceSpecifier", - "src": "6797:12:24" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10231, - "name": "ClaimsToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10228, - "src": "6811:11:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ClaimsToken_$10228", - "typeString": "contract ClaimsToken" - } - }, - "id": 10232, - "nodeType": "InheritanceSpecifier", - "src": "6811:11:24" - } - ], - "contractDependencies": [ - 9650, - 9719, - 9977, - 10005, - 10228 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 10327, - "linearizedBaseContracts": [ - 10327, - 10228, - 9977, - 9650, - 9719, - 10005 - ], - "name": "ClaimsTokenERC20Extension", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 10234, - "name": "fundsToken", - "nodeType": "VariableDeclaration", - "scope": 10327, - "src": "6880:24:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 10233, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "6880:6:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 10247, - "nodeType": "Block", - "src": "6937:81:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 10242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10237, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6950:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6950:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10240, - "name": "fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10234, - "src": "6972:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - ], - "id": 10239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6964:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 10241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6964:19:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6950:33:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "554e415554484f52495a45445f53454e444552", - "id": 10243, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6985:21:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", - "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" - }, - "value": "UNAUTHORIZED_SENDER" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", - "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" - } - ], - "id": 10236, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "6942:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 10244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6942:65:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10245, - "nodeType": "ExpressionStatement", - "src": "6942:65:24" - }, - { - "id": 10246, - "nodeType": "PlaceholderStatement", - "src": "7012:1:24" - } - ] - }, - "documentation": null, - "id": 10248, - "name": "onlyFundsToken", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 10235, - "nodeType": "ParameterList", - "parameters": [], - "src": "6934:2:24" - }, - "src": "6910:108:24", - "visibility": "internal" - }, - { - "body": { - "id": 10272, - "nodeType": "Block", - "src": "7106:84:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 10265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10260, - "name": "_fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10252, - "src": "7127:11:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - ], - "id": 10259, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7119:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 10261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7119:20:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 10263, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7151:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 10262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7143:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 10264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7143:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7119:34:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 10258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "7111:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 10266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7111:43:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10267, - "nodeType": "ExpressionStatement", - "src": "7111:43:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10268, - "name": "fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10234, - "src": "7161:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10269, - "name": "_fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10252, - "src": "7174:11:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "src": "7161:24:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 10271, - "nodeType": "ExpressionStatement", - "src": "7161:24:24" - } - ] - }, - "documentation": null, - "id": 10273, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 10255, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10250, - "src": "7096:6:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 10256, - "modifierName": { - "argumentTypes": null, - "id": 10254, - "name": "ClaimsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10228, - "src": "7084:11:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ClaimsToken_$10228_$", - "typeString": "type(contract ClaimsToken)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7084:19:24" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10253, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10250, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 10273, - "src": "7035:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10249, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7035:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10252, - "name": "_fundsToken", - "nodeType": "VariableDeclaration", - "scope": 10273, - "src": "7051:18:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 10251, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "7051:6:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7034:36:24" - }, - "returnParameters": { - "id": 10257, - "nodeType": "ParameterList", - "parameters": [], - "src": "7106:0:24" - }, - "scope": 10327, - "src": "7023:167:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 10299, - "nodeType": "Block", - "src": "7303:175:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10277, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "7316:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7316:9:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 10279, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7329:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7316:14:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 10281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7332:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 10276, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7308:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 10282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7308:27:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10283, - "nodeType": "ExpressionStatement", - "src": "7308:27:24" - }, - { - "assignments": [ - 10285 - ], - "declarations": [ - { - "constant": false, - "id": 10285, - "name": "withdrawableFunds", - "nodeType": "VariableDeclaration", - "scope": 10299, - "src": "7342:25:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10284, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7342:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10288, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10286, - "name": "_prepareWithdraw", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10227, - "src": "7370:16:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_uint256_$", - "typeString": "function () returns (uint256)" - } - }, - "id": 10287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7370:18:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7342:46:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10292, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "7423:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7423:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 10294, - "name": "withdrawableFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10285, - "src": "7435:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10290, - "name": "fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10234, - "src": "7403:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 10291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9661, - "src": "7403:19:24", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 10295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7403:50:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5452414e534645525f4641494c4544", - "id": 10296, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7455:17:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", - "typeString": "literal_string \"TRANSFER_FAILED\"" - }, - "value": "TRANSFER_FAILED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", - "typeString": "literal_string \"TRANSFER_FAILED\"" - } - ], - "id": 10289, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7395:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 10297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7395:78:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10298, - "nodeType": "ExpressionStatement", - "src": "7395:78:24" - } - ] - }, - "documentation": "@dev Withdraws available funds for user.\r", - "id": 10300, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdrawFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10274, - "nodeType": "ParameterList", - "parameters": [], - "src": "7275:2:24" - }, - "returnParameters": { - "id": 10275, - "nodeType": "ParameterList", - "parameters": [], - "src": "7303:0:24" - }, - "scope": 10327, - "src": "7253:225:24", - "stateMutability": "payable", - "superFunction": 9992, - "visibility": "external" - }, - { - "body": { - "id": 10325, - "nodeType": "Block", - "src": "7777:100:24", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10311, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10304, - "src": "7786:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 10312, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7795:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7786:10:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 10324, - "nodeType": "IfStatement", - "src": "7782:91:24", - "trueBody": { - "id": 10323, - "nodeType": "Block", - "src": "7798:75:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10315, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10304, - "src": "7819:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10314, - "name": "_registerFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10141, - "src": "7804:14:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 10316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7804:22:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10317, - "nodeType": "ExpressionStatement", - "src": "7804:22:24" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10319, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10302, - "src": "7851:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10320, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10304, - "src": "7860:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10318, - "name": "FundsReceived", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9983, - "src": "7837:13:24", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 10321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7837:30:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10322, - "nodeType": "EmitStatement", - "src": "7832:35:24" - } - ] - } - } - ] - }, - "documentation": "@dev For ERC223.\r\nCalls _registerFunds(), whereby total received funds (cumulative) gets updated.\r\n@param _sender Sender of tokens\r\n@param _value Amount of tokens\r", - "id": 10326, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [], - "id": 10309, - "modifierName": { - "argumentTypes": null, - "id": 10308, - "name": "onlyFundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10248, - "src": "7758:14:24", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7758:16:24" - } - ], - "name": "tokenFallback", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10307, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10302, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 10326, - "src": "7698:15:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10301, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7698:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10304, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10326, - "src": "7715:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10303, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7715:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10306, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10326, - "src": "7731:12:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 10305, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7731:5:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7697:47:24" - }, - "returnParameters": { - "id": 10310, - "nodeType": "ParameterList", - "parameters": [], - "src": "7777:0:24" - }, - "scope": 10327, - "src": "7675:202:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 10328, - "src": "6759:1121:24" - } - ], - "src": "0:7882:24" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:20.280Z", - "devdoc": { - "methods": { - "allowance(address,address)": { - "details": "Function to check the amount of tokens that an owner allowed to a spender.\r", - "params": { - "owner": "address The address which owns the funds.\r", - "spender": "address The address which will spend the funds.\r" - }, - "return": "A uint256 specifying the amount of tokens still available for the spender.\r" - }, - "approve(address,uint256)": { - "details": "Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\r Beware that changing an allowance with this method brings the risk that someone may use both the old\r and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\r race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\r https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\r", - "params": { - "spender": "The address which will spend the funds.\r", - "value": "The amount of tokens to be spent.\r" - } - }, - "availableFunds(address)": { - "details": "Returns the amount of funds a given address is able to withdraw currently.\r", - "params": { - "_forAddress": "Address of ClaimsToken holder\r" - }, - "return": "A uint256 representing the available funds for a given account\r" - }, - "balanceOf(address)": { - "details": "Gets the balance of the specified address.\r", - "params": { - "owner": "The address to query the balance of.\r" - }, - "return": "An uint256 representing the amount owned by the passed address.\r" - }, - "decimals()": { - "details": "Returns the number of decimals used to get its user representation.\r For example, if `decimals` equals `2`, a balance of `505` tokens should\r be displayed to a user as `5,05` (`505 / 10 ** 2`).\r * Tokens usually opt for a value of 18, imitating the relationship between\r Ether and Wei.\r * NOTE: This information is only used for _display_ purposes: it in\r no way affects any of the arithmetic of the contract, including\r {IERC20-balanceOf} and {IERC20-transfer}.\r" - }, - "decreaseAllowance(address,uint256)": { - "details": "Decrease the amount of tokens that an owner allowed to a spender.\r approve should be called when allowed_[_spender] == 0. To decrement\r allowed value is better to use this function to avoid 2 calls (and wait until\r the first transaction is mined)\r From MonolithDAO Token.sol\r Emits an Approval event.\r", - "params": { - "spender": "The address which will spend the funds.\r", - "subtractedValue": "The amount of tokens to decrease the allowance by.\r" - } - }, - "increaseAllowance(address,uint256)": { - "details": "Increase the amount of tokens that an owner allowed to a spender.\r approve should be called when allowed_[_spender] == 0. To increment\r allowed value is better to use this function to avoid 2 calls (and wait until\r the first transaction is mined)\r From MonolithDAO Token.sol\r Emits an Approval event.\r", - "params": { - "addedValue": "The amount of tokens to increase the allowance by.\r", - "spender": "The address which will spend the funds.\r" - } - }, - "name()": { - "details": "Returns the name of the token.\r" - }, - "symbol()": { - "details": "Returns the symbol of the token, usually a shorter version of the\r name.\r" - }, - "tokenFallback(address,uint256,bytes)": { - "details": "For ERC223.\r Calls _registerFunds(), whereby total received funds (cumulative) gets updated.\r", - "params": { - "_sender": "Sender of tokens\r", - "_value": "Amount of tokens\r" - } - }, - "totalReceivedFunds()": { - "details": "Get cumulative funds received by ClaimsToken.\r", - "return": "A uint256 representing the total funds received by ClaimsToken\r" - }, - "totalSupply()": { - "details": "Total number of tokens in existence\r" - }, - "transfer(address,uint256)": { - "details": "Transfer token to a specified address.\r Claims funds for both parties, whereby the amount of tokens withdrawn\r is inherited by the new token owner.\r", - "params": { - "_to": "The address to transfer to\r", - "_value": "The amount to be transferred\r" - } - }, - "transferFrom(address,address,uint256)": { - "details": "Transfer tokens from one address to another.\r Claims funds for both parties, whereby the amount of tokens withdrawn\r is inherited by the new token owner.\r", - "params": { - "_from": "address The address which you want to send tokens from\r", - "_to": "address The address which you want to transfer to\r", - "_value": "uint256 the amount of tokens to be transferred\r" - } - }, - "withdrawFunds()": { - "details": "Withdraws available funds for user.\r" - } - } - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/Counter.json b/src/contracts/Counter.json deleted file mode 100644 index 9578e17..0000000 --- a/src/contracts/Counter.json +++ /dev/null @@ -1,1882 +0,0 @@ -{ - "contractName": "Counter", - "abi": [ - { - "inputs": [ - { - "internalType": "uint256", - "name": "num", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function", - "constant": true - }, - { - "inputs": [], - "name": "getCounter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "constant": true - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "increaseCounter", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "name": "decreaseCounter", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"num\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"decreaseCounter\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"increaseCounter\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/dapp-boilerplate/contracts/contracts/Counter.sol\":\"Counter\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/dapp-boilerplate/contracts/contracts/Counter.sol\":{\"keccak256\":\"0x183f19ba1d71af9183380f7c9e342fe5da276722916fc3e6c5f0b9217db08e7f\",\"urls\":[\"bzz-raw://9f1a975137b5c988b02ac489bf8c04f3e4e9fe6db25503f4dce45e6a5b19fbd3\",\"dweb:/ipfs/Qmck5NzBHj4KSs6frUvkZ4e2LycYGV6Ttbe85DWTk12baD\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b506040516101ef3803806101ef8339818101604052602081101561003357600080fd5b5051600180546001600160a01b03191633179055600055610196806100596000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80638ada066e146100515780638da5cb5b1461006b5780639e80c0741461008f578063b24f03af146100ae575b600080fd5b6100596100df565b60408051918252519081900360200190f35b6100736100e5565b604080516001600160a01b039092168252519081900360200190f35b6100ac600480360360208110156100a557600080fd5b50356100f4565b005b6100cb600480360360208110156100c457600080fd5b50356100ff565b604080519115158252519081900360200190f35b60005490565b6001546001600160a01b031690565b600080549091019055565b60008160005411610150576040805162461bcd60e51b8152602060048201526016602482015275043616e6e6f74206265206c6f776572207468616e20360541b604482015290519081900360640190fd5b506000805491909103905560019056fea2646970667358221220e19238205ef93431cc51b5d02829768d3b3ab690bcc47e540289af71b7b3838664736f6c63430006060033", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80638ada066e146100515780638da5cb5b1461006b5780639e80c0741461008f578063b24f03af146100ae575b600080fd5b6100596100df565b60408051918252519081900360200190f35b6100736100e5565b604080516001600160a01b039092168252519081900360200190f35b6100ac600480360360208110156100a557600080fd5b50356100f4565b005b6100cb600480360360208110156100c457600080fd5b50356100ff565b604080519115158252519081900360200190f35b60005490565b6001546001600160a01b031690565b600080549091019055565b60008160005411610150576040805162461bcd60e51b8152602060048201526016602482015275043616e6e6f74206265206c6f776572207468616e20360541b604482015290519081900360640190fd5b506000805491909103905560019056fea2646970667358221220e19238205ef93431cc51b5d02829768d3b3ab690bcc47e540289af71b7b3838664736f6c63430006060033", - "sourceMap": "36:790:0:-:0;;;161:80;5:9:-1;2:2;;;27:1;24;17:12;2:2;161:80:0;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;161:80:0;198:6;:19;;-1:-1:-1;;;;;;198:19:0;207:10;198:19;;;:6;224:11;36:790;;;;;;", - "deployedSourceMap": "36:790:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;36:790:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;341:74:0;;;:::i;:::-;;;;;;;;;;;;;;;;249:73;;;:::i;:::-;;;;-1:-1:-1;;;;;249:73:0;;;;;;;;;;;;;;452:83;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;452:83:0;;:::i;:::-;;649:172;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;649:172:0;;:::i;:::-;;;;;;;;;;;;;;;;;;341:74;384:4;404:5;341:74;:::o;249:73::-;310:6;;-1:-1:-1;;;;;310:6:0;249:73;:::o;452:83::-;515:5;;;:14;;;507:22;;452:83::o;649:172::-;706:4;735:6;727:5;;:14;719:49;;;;;-1:-1:-1;;;719:49:0;;;;;;;;;;;;-1:-1:-1;;;719:49:0;;;;;;;;;;;;;;;-1:-1:-1;783:5:0;;;:14;;;;775:22;;-1:-1:-1;;649:172:0:o", - "source": "pragma solidity >=0.5.0<= 0.7.0;\r\n\r\ncontract Counter {\r\n //it keeps a count to demonstrate stage changes\r\n uint private count;\r\n address private _owner;\r\n\r\n constructor(uint num) public {\r\n _owner = msg.sender;\r\n count = num;\r\n }\r\n\r\n\r\n function owner() public view returns (address) {\r\n return _owner;\r\n }\r\n\r\n // getter\r\n function getCounter() public view returns (uint) {\r\n return count;\r\n }\r\n\r\n //and it can add to a count\r\n function increaseCounter(uint256 amount) public {\r\n count = count + amount;\r\n }\r\n\r\n //We'll upgrade the contract with this function after deploying it\r\n //Function to decrease the counter\r\n function decreaseCounter(uint256 amount) public returns (bool) {\r\n require(count > amount, \"Cannot be lower than 0\");\r\n count = count - amount;\r\n return true;\r\n }\r\n\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\dapp-boilerplate\\contracts\\contracts\\Counter.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/dapp-boilerplate/contracts/contracts/Counter.sol", - "exportedSymbols": { - "Counter": [ - 72 - ] - }, - "id": 73, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<=", - "0.7", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:0" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 72, - "linearizedBaseContracts": [ - 72 - ], - "name": "Counter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3, - "mutability": "mutable", - "name": "count", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 72, - "src": "109:18:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "109:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 5, - "mutability": "mutable", - "name": "_owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 72, - "src": "132:22:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "132:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 19, - "nodeType": "Block", - "src": "191:50:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 13, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5, - "src": "198:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 11, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "207:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 12, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "207:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "198:19:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 14, - "nodeType": "ExpressionStatement", - "src": "198:19:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 17, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 15, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "224:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 16, - "name": "num", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "232:3:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "224:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18, - "nodeType": "ExpressionStatement", - "src": "224:11:0" - } - ] - }, - "documentation": null, - "id": 20, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 8, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7, - "mutability": "mutable", - "name": "num", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 20, - "src": "173:8:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "173:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "172:10:0" - }, - "returnParameters": { - "id": 9, - "nodeType": "ParameterList", - "parameters": [], - "src": "191:0:0" - }, - "scope": 72, - "src": "161:80:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 27, - "nodeType": "Block", - "src": "296:26:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 25, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5, - "src": "310:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 24, - "id": 26, - "nodeType": "Return", - "src": "303:13:0" - } - ] - }, - "documentation": null, - "functionSelector": "8da5cb5b", - "id": 28, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "owner", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [], - "src": "263:2:0" - }, - "returnParameters": { - "id": 24, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 23, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 28, - "src": "287:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 22, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "287:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "286:9:0" - }, - "scope": 72, - "src": "249:73:0", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 35, - "nodeType": "Block", - "src": "390:25:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 33, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "404:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 32, - "id": 34, - "nodeType": "Return", - "src": "397:12:0" - } - ] - }, - "documentation": null, - "functionSelector": "8ada066e", - "id": 36, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getCounter", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 29, - "nodeType": "ParameterList", - "parameters": [], - "src": "360:2:0" - }, - "returnParameters": { - "id": 32, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 36, - "src": "384:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 30, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "384:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "383:6:0" - }, - "scope": 72, - "src": "341:74:0", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 47, - "nodeType": "Block", - "src": "500:35:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 45, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 41, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "507:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 44, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 42, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "515:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 43, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 38, - "src": "523:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "515:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "507:22:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 46, - "nodeType": "ExpressionStatement", - "src": "507:22:0" - } - ] - }, - "documentation": null, - "functionSelector": "9e80c074", - "id": 48, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increaseCounter", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 39, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 38, - "mutability": "mutable", - "name": "amount", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 48, - "src": "477:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 37, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "477:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "476:16:0" - }, - "returnParameters": { - "id": 40, - "nodeType": "ParameterList", - "parameters": [], - "src": "500:0:0" - }, - "scope": 72, - "src": "452:83:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 70, - "nodeType": "Block", - "src": "712:109:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 58, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 56, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "727:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 57, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "735:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "727:14:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43616e6e6f74206265206c6f776572207468616e2030", - "id": 59, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "743:24:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c8f849796a0a26d16cb57d2ae5436c13edea26364a66a248a9ae920af9dfae3e", - "typeString": "literal_string \"Cannot be lower than 0\"" - }, - "value": "Cannot be lower than 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c8f849796a0a26d16cb57d2ae5436c13edea26364a66a248a9ae920af9dfae3e", - "typeString": "literal_string \"Cannot be lower than 0\"" - } - ], - "id": 55, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "719:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 60, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "719:49:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 61, - "nodeType": "ExpressionStatement", - "src": "719:49:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 66, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 62, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "775:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 65, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 63, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "783:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 64, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "791:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "783:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "775:22:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 67, - "nodeType": "ExpressionStatement", - "src": "775:22:0" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 68, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "811:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 54, - "id": 69, - "nodeType": "Return", - "src": "804:11:0" - } - ] - }, - "documentation": null, - "functionSelector": "b24f03af", - "id": 71, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decreaseCounter", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 51, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 50, - "mutability": "mutable", - "name": "amount", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 71, - "src": "674:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 49, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "674:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "673:16:0" - }, - "returnParameters": { - "id": 54, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 53, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 71, - "src": "706:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 52, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "706:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "705:6:0" - }, - "scope": 72, - "src": "649:172:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 73, - "src": "36:790:0" - } - ], - "src": "0:828:0" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/dapp-boilerplate/contracts/contracts/Counter.sol", - "exportedSymbols": { - "Counter": [ - 72 - ] - }, - "id": 73, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<=", - "0.7", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:0" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 72, - "linearizedBaseContracts": [ - 72 - ], - "name": "Counter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 3, - "mutability": "mutable", - "name": "count", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 72, - "src": "109:18:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "109:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 5, - "mutability": "mutable", - "name": "_owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 72, - "src": "132:22:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "132:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 19, - "nodeType": "Block", - "src": "191:50:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 13, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5, - "src": "198:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 11, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -15, - "src": "207:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 12, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "207:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "198:19:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 14, - "nodeType": "ExpressionStatement", - "src": "198:19:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 17, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 15, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "224:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 16, - "name": "num", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7, - "src": "232:3:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "224:11:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 18, - "nodeType": "ExpressionStatement", - "src": "224:11:0" - } - ] - }, - "documentation": null, - "id": 20, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 8, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7, - "mutability": "mutable", - "name": "num", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 20, - "src": "173:8:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "173:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "172:10:0" - }, - "returnParameters": { - "id": 9, - "nodeType": "ParameterList", - "parameters": [], - "src": "191:0:0" - }, - "scope": 72, - "src": "161:80:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 27, - "nodeType": "Block", - "src": "296:26:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 25, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5, - "src": "310:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 24, - "id": 26, - "nodeType": "Return", - "src": "303:13:0" - } - ] - }, - "documentation": null, - "functionSelector": "8da5cb5b", - "id": 28, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "owner", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 21, - "nodeType": "ParameterList", - "parameters": [], - "src": "263:2:0" - }, - "returnParameters": { - "id": 24, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 23, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 28, - "src": "287:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 22, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "287:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "286:9:0" - }, - "scope": 72, - "src": "249:73:0", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 35, - "nodeType": "Block", - "src": "390:25:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 33, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "404:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 32, - "id": 34, - "nodeType": "Return", - "src": "397:12:0" - } - ] - }, - "documentation": null, - "functionSelector": "8ada066e", - "id": 36, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getCounter", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 29, - "nodeType": "ParameterList", - "parameters": [], - "src": "360:2:0" - }, - "returnParameters": { - "id": 32, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 31, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 36, - "src": "384:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 30, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "384:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "383:6:0" - }, - "scope": 72, - "src": "341:74:0", - "stateMutability": "view", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 47, - "nodeType": "Block", - "src": "500:35:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 45, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 41, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "507:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 44, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 42, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "515:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 43, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 38, - "src": "523:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "515:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "507:22:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 46, - "nodeType": "ExpressionStatement", - "src": "507:22:0" - } - ] - }, - "documentation": null, - "functionSelector": "9e80c074", - "id": 48, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increaseCounter", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 39, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 38, - "mutability": "mutable", - "name": "amount", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 48, - "src": "477:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 37, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "477:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "476:16:0" - }, - "returnParameters": { - "id": 40, - "nodeType": "ParameterList", - "parameters": [], - "src": "500:0:0" - }, - "scope": 72, - "src": "452:83:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 70, - "nodeType": "Block", - "src": "712:109:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 58, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 56, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "727:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 57, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "735:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "727:14:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "43616e6e6f74206265206c6f776572207468616e2030", - "id": 59, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "743:24:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c8f849796a0a26d16cb57d2ae5436c13edea26364a66a248a9ae920af9dfae3e", - "typeString": "literal_string \"Cannot be lower than 0\"" - }, - "value": "Cannot be lower than 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c8f849796a0a26d16cb57d2ae5436c13edea26364a66a248a9ae920af9dfae3e", - "typeString": "literal_string \"Cannot be lower than 0\"" - } - ], - "id": 55, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - -18, - -18 - ], - "referencedDeclaration": -18, - "src": "719:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 60, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "719:49:0", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 61, - "nodeType": "ExpressionStatement", - "src": "719:49:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 66, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 62, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "775:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 65, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 63, - "name": "count", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3, - "src": "783:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 64, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "791:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "783:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "775:22:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 67, - "nodeType": "ExpressionStatement", - "src": "775:22:0" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 68, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "811:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 54, - "id": 69, - "nodeType": "Return", - "src": "804:11:0" - } - ] - }, - "documentation": null, - "functionSelector": "b24f03af", - "id": 71, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decreaseCounter", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 51, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 50, - "mutability": "mutable", - "name": "amount", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 71, - "src": "674:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 49, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "674:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "673:16:0" - }, - "returnParameters": { - "id": 54, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 53, - "mutability": "mutable", - "name": "", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 71, - "src": "706:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 52, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "706:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "705:6:0" - }, - "scope": 72, - "src": "649:172:0", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 73, - "src": "36:790:0" - } - ], - "src": "0:828:0" - }, - "compiler": { - "name": "solc", - "version": "0.6.6+commit.6c089d02.Emscripten.clang" - }, - "networks": { - "10": { - "events": {}, - "links": {}, - "address": "0x4d2dF7C984A72b3F0EB133C9FEf6D45d46280EC2", - "transactionHash": "0xa4f53811a6308cf01398b7d1936a470d6f822d266b68b2289bf7cc684afe8f4c" - } - }, - "schemaVersion": "3.0.23", - "updatedAt": "2020-05-05T07:55:37.617Z", - "networkType": "ethereum", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/DAOFactory.json b/src/contracts/DAOFactory.json deleted file mode 100644 index da15e70..0000000 --- a/src/contracts/DAOFactory.json +++ /dev/null @@ -1,2699 +0,0 @@ -{ - "contractName": "DAOFactory", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - }, - { - "name": "", - "type": "uint256" - } - ], - "name": "daos", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "daoCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_tokenAddress", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "admin", - "type": "address" - } - ], - "name": "daoAdded", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "_admin", - "type": "address" - } - ], - "name": "newDAO", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getContractAddress", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getDAOCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_admin\",\"type\":\"address\"}],\"name\":\"newDAO\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getContractAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getDAOCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"daos\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"daoCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_tokenAddress\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"daoAdded\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/DAOFactory.sol\":\"DAOFactory\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/DAOFactory.sol\":{\"keccak256\":\"0xdeadbc431796f09fba04a8de5d4d3adfb4ea24a40a1c848c3f2e461b656f39cf\",\"urls\":[\"bzzr://b20fc0d6472c8c792756259659120b9a3f216909735ab5eb9e6c18fca3445687\",\"dweb:/ipfs/QmeNDFqqtyGSqPWr3z8pG31yAuZnV2JnzCMg7tAzctEV3a\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Governance.sol\":{\"keccak256\":\"0x6008b164e82e38bbae1f88843ec8963a73a722963b941dd9bde72d4a0e849d80\",\"urls\":[\"bzzr://310d76b367fcb8cd744884b5e57e2a08ee9995ab845909d50f11f14c5f530273\",\"dweb:/ipfs/QmRVebN3g2R9R7HENS45ctw5Cn4wGLr65f8nGjtYkPW2jb\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol\":{\"keccak256\":\"0xa8ace5b5ac3322c9019470d2a1ad1342ef5d984da3d4818554e703b65ceda667\",\"urls\":[\"bzzr://b38168eab9d05f21a7576958f33878d9d31877a12f1f14bda390f3f4fbdaa2a4\",\"dweb:/ipfs/QmWa9cX9gzUkyM9yVwfhd6FsSeh1jpV62sBzdGJm6jRPRX\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol\":{\"keccak256\":\"0x8d08add2e57d2885eb9cda96d2ce54056015247de9adfea8e13c78bb2d9233f2\",\"urls\":[\"bzzr://24804e36486f935a9e98bf507193d1b160db755edba6c9d124a894aef3741ada\",\"dweb:/ipfs/QmauQVeYbGgqJDNxKAceFj1hFD1gfCfAXNBA8vCh3aGYKA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", - "bytecode": "0x60806040526000805534801561001457600080fd5b5060405161314d38038061314d8339818101604052602081101561003757600080fd5b5051600180546001600160a01b0319166001600160a01b039092169190911790556130e6806100676000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063216874441461005c57806332a2c5d01461009e5780633a479fb8146100f6578063bd18993814610110578063d01cf4191461013c575b600080fd5b6100826004803603602081101561007257600080fd5b50356001600160a01b0316610144565b604080516001600160a01b039092168252519081900360200190f35b6100a66102a6565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156100e25781810151838201526020016100ca565b505050509050019250505060405180910390f35b6100fe610311565b60408051918252519081900360200190f35b6100826004803603604081101561012657600080fd5b506001600160a01b038135169060200135610317565b6100fe61034c565b600080826040518060200160405280600160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681525061438060238060236046600a6003600160405161019a90610352565b6001600160a01b038b1681526020808201908b9080838360005b838110156101cc5781810151838201526020016101b4565b505050509050018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019a5050505050505050505050604051809103906000f08015801561022b573d6000803e3d6000fd5b503360008181526002602090815260408083208054600180820183559185528385200180546001600160a01b0319166001600160a01b038816179055835401909255815192835290519293507fbb14e6561111416eda7607c478c09b236c0873cd3699549afe42dd57656b978792918290030190a192915050565b3360009081526002602090815260409182902080548351818402810184019094528084526060939283018282801561030757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116102e9575b5050505050905090565b60005490565b6002602052816000526040600020818154811061033057fe5b6000918252602090912001546001600160a01b03169150829050565b60005481565b612d52806103608339019056fe608060405260006009819055600a819055600c805460ff19169055600d553480156200002a57600080fd5b5060405162002d5238038062002d5283398181016040526101408110156200005157600080fd5b50805160408201516060830151608084015160a085015160c086015160e08701516101008801516101208901516000805460ff191660011790559798602001976001600160a01b038a166200010757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f61646d696e2063616e6e6f742062652030000000000000000000000000000000604482015290519081900360640190fd5b600088116200017757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5f706572696f644475726174696f6e2063616e6e6f7420626520300000000000604482015290519081900360640190fd5b60008711620001e757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5f766f74696e67506572696f644c656e6774682063616e6e6f74206265203000604482015290519081900360640190fd5b670de0b6b3a76400008711156200024a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018062002d0d6021913960400191505060405180910390fd5b670de0b6b3a7640000861115620002c257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f5f6772616365506572696f644c656e6774682065786365656473206c696d6974604482015290519081900360640190fd5b600085116200031d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018062002d2e6024913960400191505060405180910390fd5b60008054610100600160a81b0319166101006001600160a01b038d160217815589906020020151600780546001600160a01b0319166001600160a01b0390921691909117905560005b60018110156200044e5760008a82600181106200037f57fe5b60200201516001600160a01b03161415620003fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f5f617070726f766564546f6b656e2063616e6e6f742062652030000000000000604482015290519081900360640190fd5b600e8a82600181106200040a57fe5b6020908102919091015182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b03909316929092179091550162000366565b506040516200045d9062000586565b604051809103906000f0801580156200047a573d6000803e3d6000fd5b50600880546001600160a01b03199081166001600160a01b039384161790915560018a815560028a815560038a815560048a9055600588905542600655604080516080810182526000805461010090819004891680845260208085018981528587018a815260608701868152938652600f8352878620965187548d16908e161787559051868b015551978501805460ff1916981515989098179097555192909401919091558054839004871680825260108552828220805490971617909555600a8490559354845193845293519304909316927f03995a801b13c36325306deef859ef977ce61c6e15a794281bf969d20482522792918290030190a25050505050505050505062000594565b61051880620027f583390190565b61225180620005a46000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80638340bbce1161010f578063b2643aab116100a2578063da35c66411610071578063da35c664146106a8578063de292789146106b0578063e63bc62d146106b8578063f851a440146106d5576101e5565b8063b2643aab1461063b578063b470aade14610690578063b9e2bea014610698578063c89039c5146106a0576101e5565b806399653fbe116100de57806399653fbe146105e6578063a3dc38001461060e578063a42afd291461062b578063a44a5e7e14610633576101e5565b80638340bbce1461059c5780638b15a605146105a45780639425a476146105ac5780639746d940146105c9576101e5565b80633b214a741161018757806363858f2d1161015657806363858f2d1461057c5780636537214714610584578063797daf701461058c5780637d5b6c7214610594576101e5565b80633b214a741461043d578063402c17941461045a578063505afd7414610480578063590f940b1461049c576101e5565b806308ae4b0c116101c357806308ae4b0c1461039e5780631dafede0146103f45780631e2362ec1461042d5780633a98ef3914610435576101e5565b8063013cf08b146101ea578063044a0ca814610334578063086146d214610384575b600080fd5b6102076004803603602081101561020057600080fd5b50356106dd565b604051808f6001600160a01b03166001600160a01b031681526020018e6001600160a01b03166001600160a01b031681526020018d6001600160a01b03166001600160a01b031681526020018c81526020018b81526020018a8152602001896001600160a01b03166001600160a01b03168152602001888152602001876001600160a01b03166001600160a01b0316815260200186815260200185815260200184815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156102ec5781810151838201526020016102d4565b50505050905090810190601f1680156103195780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b6103606004803603604081101561034a57600080fd5b506001600160a01b038135169060200135610840565b6040518082600281111561037057fe5b60ff16815260200191505060405180910390f35b61038c610947565b60408051918252519081900360200190f35b6103c4600480360360208110156103b457600080fd5b50356001600160a01b0316610976565b604080516001600160a01b0390951685526020850193909352901515838301526060830152519081900360800190f35b6104116004803603602081101561040a57600080fd5b50356109ad565b604080516001600160a01b039092168252519081900360200190f35b61038c6109d4565b61038c6109da565b61038c6004803603602081101561045357600080fd5b50356109e0565b6104116004803603602081101561047057600080fd5b50356001600160a01b03166109fe565b610488610a19565b604080519115158252519081900360200190f35b61038c60048036036101008110156104b357600080fd5b6001600160a01b038235811692602081013592604082013592606083013592608081013582169260a08201359260c0830135169190810190610100810160e082013564010000000081111561050757600080fd5b82018360208201111561051957600080fd5b8035906020019184600183028401116401000000008311171561053b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a22945050505050565b61038c610b5d565b61038c610b63565b61038c610b69565b61038c610b6f565b61038c610b75565b61038c610b7b565b610488600480360360208110156105c257600080fd5b5035610b81565b61038c600480360360208110156105df57600080fd5b5035610ba8565b61060c600480360360408110156105fc57600080fd5b508035906020013560ff16610ee5565b005b6104886004803603602081101561062457600080fd5b50356112eb565b610411611394565b61038c6113a3565b6106586004803603602081101561065157600080fd5b50356113a9565b604051808260c080838360005b8381101561067d578181015183820152602001610665565b5050505090500191505060405180910390f35b61038c611413565b61038c611419565b61041161141f565b61038c61142e565b61038c611434565b61060c600480360360208110156106ce57600080fd5b503561143a565b610411611736565b60116020528060005260406000206000915090508060000160009054906101000a90046001600160a01b0316908060010160009054906101000a90046001600160a01b0316908060020160009054906101000a90046001600160a01b0316908060030154908060040154908060050154908060060160009054906101000a90046001600160a01b0316908060070154908060080160009054906101000a90046001600160a01b03169080600901549080600a01549080600b01549080600d018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108305780601f1061080557610100808354040283529160200191610830565b820191906000526020600020905b81548152906001019060200180831161081357829003601f168201915b50505050509080600e015490508e565b6001600160a01b0382166000908152600f602052604081206002015460ff166108a8576040805162461bcd60e51b81526020600482015260156024820152741b595b58995c88191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b60125482106108f8576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b601160006012848154811061090957fe5b6000918252602080832090910154835282810193909352604091820181206001600160a01b0387168252600f0190925290205460ff16905092915050565b60006109706001546109646006544261174a90919063ffffffff16565b9063ffffffff61175f16565b90505b90565b600f6020526000908152604090208054600182015460028301546003909301546001600160a01b0390921692909160ff9091169084565b600e81815481106109ba57fe5b6000918252602090912001546001600160a01b0316905081565b60045481565b600a5481565b601281815481106109ed57fe5b600091825260209091200154905081565b6010602052600090815260409020546001600160a01b031681565b600c5460ff1681565b6000805460ff16610a68576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff19169055670de0b6b3a7640000881115610acf576040805162461bcd60e51b815260206004820152601960248201527f746f6f206d616e79207368617265732072657175657374656400000000000000604482015290519081900360640190fd5b6001600160a01b038916610b22576040805162461bcd60e51b815260206004820152601560248201527406170706c6963616e742063616e6e6f74206265203605c1b604482015290519081900360640190fd5b610b2a611f66565b610b3b8a8a8a8a8a8a8a8a89611781565b5050600954600019016000805460ff1916600117905598975050505050505050565b60035481565b600b5481565b60125490565b60065481565b60025481565b60055481565b6000610b9860025483611a4290919063ffffffff16565b610ba0610947565b101592915050565b6000805460ff16610bee576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff19168155338152601060209081526040808320546001600160a01b03168352600f909152902060010154610c60576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b600082815260116020526040902060018101546001600160a01b0316610ccd576040805162461bcd60e51b815260206004820181905260248201527f70726f706f73616c206d7573742068617665206265656e2070726f706f736564604482015290519081900360640190fd5b600c81015460ff1615610d115760405162461bcd60e51b81526004018080602001828103825260238152602001806121b56023913960400191505060405180910390fd5b600c8101546301000000900460ff1615610d72576040805162461bcd60e51b815260206004820152601b60248201527f70726f706f73616c20686173206265656e2063616e63656c6c65640000000000604482015290519081900360640190fd5b6000610de76001610ddb610d84610947565b60125415610dd35760128054601191600091610da790600163ffffffff61174a16565b81548110610db157fe5b9060005260206000200154815260200190815260200160002060090154610dd6565b60005b611a5b565b9063ffffffff611a4216565b60098301819055336000818152601060205260408120546002860180546001600160a01b0319166001600160a01b039092169182179055600c8601805460ff19166001908117909155601280548083018255938190527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449093018990559154939450928392917f2a383a979381335e3eb401ac01dd8083e024ff0256bf5338456ffc0063390bbd918991610e9b919061174a565b604080519283526020830191909152818101879052519081900360600190a3601254610ece90600163ffffffff61174a16565b93505050506000805460ff19166001179055919050565b60005460ff16610f2a576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff19168155338152601060209081526040808320546001600160a01b03168352600f909152902060010154610f9c576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b336000908152601060209081526040808320546001600160a01b0316808452600f9092529091206012548410611013576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6000601160006012878154811061102657fe5b90600052602060002001548152602001908152602001600020905060038460ff161061108f576040805162461bcd60e51b81526020600482015260136024820152726d757374206265206c657373207468616e203360681b604482015290519081900360640190fd5b60008460ff1660028111156110a057fe5b90506110af8260090154610b81565b156110eb5760405162461bcd60e51b81526004018080602001828103825260228152602001806121d86022913960400191505060405180910390fd5b6001600160a01b0384166000908152600f8301602052604081205460ff16600281111561111457fe5b14611166576040805162461bcd60e51b815260206004820152601860248201527f6d656d6265722068617320616c726561647920766f7465640000000000000000604482015290519081900360640190fd5b600181600281111561117457fe5b148061118b5750600281600281111561118957fe5b145b6111dc576040805162461bcd60e51b815260206004820152601d60248201527f766f7465206d7573742062652065697468657220596573206f72204e6f000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600f830160205260409020805482919060ff1916600183600281111561120d57fe5b0217905550600181600281111561122057fe5b141561125d576001830154600a83015461123f9163ffffffff611a4216565b600a830155600383015486111561125857600383018690555b611290565b600281600281111561126b57fe5b1415611290576001830154600b83015461128a9163ffffffff611a4216565b600b8301555b6040805160ff8716815290516001600160a01b03861691339189917f29bf0061f2faa9daa482f061b116195432d435536d8af4ae6b3c5dd78223679b919081900360200190a450506000805460ff1916600117905550505050565b601254600090821061133e576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b601160006012848154811061134f57fe5b90600052602060002001548152602001908152602001600020600c0160016006811061137757fe5b602081049091015460ff601f9092166101000a9004169050919050565b6008546001600160a01b031681565b600d5481565b6113b1611f66565b600082815260116020526040808220815160c081019283905292600c909101916006918390855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116113d8575094979650505050505050565b60015481565b60095490565b6007546001600160a01b031681565b60095481565b600b5490565b60005460ff1661147f576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff1916905561149281611a72565b6000601282815481106114a157fe5b600091825260208083209190910154808352601190915260408220600c8101805461ff00191661010017905590925090806114db85611d83565b91509150670de0b6b3a76400006115018460030154600a54611a4290919063ffffffff16565b111561150c57600091505b81156116e3576001600b55600c8301805462ff000019166201000017905582546001600160a01b03166000908152600f602052604090206002015460ff16156115a257600383015483546001600160a01b03166000908152600f60205260409020600101546115809163ffffffff611a4216565b83546001600160a01b03166000908152600f60205260409020600101556116c4565b82546001600160a01b039081166000908152601060209081526040808320549093168252600f9052206002015460ff16156116265782546001600160a01b0390811660009081526010602090815260408083205490931680835283832080546001600160a01b03199081168317909155600f90925292909120805490911690911790555b6040805160808101825284546001600160a01b0390811680835260038088015460208086019182526001868801818152600060608901818152968152600f8452898120985189549089166001600160a01b0319918216178a559451928901929092555160028801805491151560ff19909216919091179055935195909201949094558754909216808252601090925292909220805490911690911790555b6003830154600a546116db9163ffffffff611a4216565b600a556116e9565b6002600b555b6040805183151581529051859187917f86f74240ecee9e4230d26ff92e17fee978460d9c0f78f5c88b2864c9e7a494279181900360200190a350506000805460ff19166001179055505050565b60005461010090046001600160a01b031681565b60008282111561175957600080fd5b50900390565b600080821161176d57600080fd5b600082848161177857fe5b04949350505050565b611789611f84565b604051806101e001604052808b6001600160a01b03168152602001336001600160a01b0316815260200160006001600160a01b031681526020018a8152602001898152602001888152602001876001600160a01b03168152602001868152602001856001600160a01b03168152602001600081526020016000815260200160008152602001838152602001848152602001600081525090508060116000600954815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060e082015181600701556101008201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c0190600661197a92919061202d565b506101a0820151805161199791600d8401916020909101906120bf565b506101c09190910151600e90910155336000818152601060209081526040918290205460095483519081529182018d90528183018c9052606082018b90526001600160a01b038a8116608084015260a083018a905288811660c0840152925190831693928e1692849290917f1facc413faf060d5cc5c8bc12d8fe29e5c530eb98e2475c76733ec749787a7509181900360e00190a45050600980546001019055505050505050505050565b600082820183811015611a5457600080fd5b9392505050565b600081831015611a6b5781611a54565b5090919050565b6012548110611ac2576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b611aca611f84565b6011600060128481548110611adb57fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff161515815260206001928301818104948501949093039092029101808411611bb157505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152938201939291830182828015611c745780601f10611c4957610100808354040283529160200191611c74565b820191906000526020600020905b815481529060010190602001808311611c5757829003601f168201915b50505050508152602001600e820154815250509050806101800151600160068110611c9b57fe5b602002015115611cdc5760405162461bcd60e51b81526004018080602001828103825260238152602001806121fa6023913960400191505060405180910390fd5b811580611d445750601160006012611cfb85600163ffffffff61174a16565b81548110611d0557fe5b90600052602060002001548152602001908152602001600020600c01600160068110611d2d57fe5b602081049091015460ff601f9092166101000a9004165b611d7f5760405162461bcd60e51b81526004018080602001828103825260238152602001806121926023913960400191505060405180910390fd5b5050565b600080611d8e611f84565b6011600060128681548110611d9f57fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff161515815260206001928301818104948501949093039092029101808411611e7557505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152938201939291830182828015611f385780601f10611f0d57610100808354040283529160200191611f38565b820191906000526020600020905b815481529060010190602001808311611f1b57829003601f168201915b5050509183525050600e91909101546020909101526101608101516101409091015111946000945092505050565b6040518060c001604052806006906020820280388339509192915050565b60405180610280016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001612019611f66565b815260200160608152602001600081525090565b6001830191839082156120af5791602002820160005b8382111561208057835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302612043565b80156120ad5782816101000a81549060ff0219169055600101602081600001049283019260010302612080565b505b506120bb929150612139565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061210057805160ff191683800117855561212d565b8280016001018555821561212d579182015b8281111561212d578251825591602001919060010190612112565b506120bb929150612157565b61097391905b808211156120bb57805460ff1916815560010161213f565b61097391905b808211156120bb576000815560010161215d56fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c0070726576696f75732070726f706f73616c206d7573742062652070726f63657373656470726f706f73616c2068617320616c7265616479206265656e2073706f6e736f72656470726f706f73616c20766f74696e6720706572696f6420686173206578706972656470726f706f73616c2068617320616c7265616479206265656e2070726f636573736564a265627a7a723058204aadd5a65785cc61785723b74e34bd108bbb4ad24956b9ecd95015be2e7f326b64736f6c63430005090032608060405234801561001057600080fd5b50600080546001600160a01b031916331790556104e6806100326000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301e3366714610046578063732c8f57146100905780638da5cb5b1461014f575b600080fd5b61007c6004803603606081101561005c57600080fd5b506001600160a01b03813581169160208101359091169060400135610173565b604080519115158252519081900360200190f35b61007c600480360360808110156100a657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156100dd57600080fd5b8201836020820111156100ef57600080fd5b8035906020019184602083028401116401000000008311171561011157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061026c945050505050565b61015761044e565b604080516001600160a01b039092168252519081900360200190f35b600080546001600160a01b0316331461018b57600080fd5b836001600160a01b0316836001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398846040518082815260200191505060405180910390a3836001600160a01b031663a9059cbb84846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561023657600080fd5b505af115801561024a573d6000803e3d6000fd5b505050506040513d602081101561026057600080fd5b505190505b9392505050565b600080546001600160a01b0316331461028457600080fd5b60005b82518110156104425760006103318483815181106102a157fe5b60200260200101516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156102fe57600080fd5b505afa158015610312573d6000803e3d6000fd5b505050506040513d602081101561032857600080fd5b5051878761045d565b905083828151811061033f57fe5b60200260200101516001600160a01b0316876001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398836040518082815260200191505060405180910390a383828151811061039d57fe5b60200260200101516001600160a01b031663a9059cbb88836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b505050506040513d602081101561042e57600080fd5b505161043957600080fd5b50600101610287565b50600195945050505050565b6000546001600160a01b031681565b60008161046957600080fd5b8361047657506000610265565b8383028385828161048357fe5b04141561049c5782818161049357fe5b04915050610265565b838386816104a657fe5b04029594505050505056fea265627a7a72305820600a90e68081feae486f77ec58352ebe4f959e2362fac128a8d418122da6121464736f6c634300050900325f766f74696e67506572696f644c656e6774682065786365656473206c696d69745f656d657267656e637950726f63657373696e67576169742063616e6e6f742062652030a265627a7a7230582079f1b5475a4ba4a4bde5586d1a3a1ca470c9023ac8016950766732b9eca2ee9b64736f6c63430005090032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c8063216874441461005c57806332a2c5d01461009e5780633a479fb8146100f6578063bd18993814610110578063d01cf4191461013c575b600080fd5b6100826004803603602081101561007257600080fd5b50356001600160a01b0316610144565b604080516001600160a01b039092168252519081900360200190f35b6100a66102a6565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156100e25781810151838201526020016100ca565b505050509050019250505060405180910390f35b6100fe610311565b60408051918252519081900360200190f35b6100826004803603604081101561012657600080fd5b506001600160a01b038135169060200135610317565b6100fe61034c565b600080826040518060200160405280600160009054906101000a90046001600160a01b03166001600160a01b03166001600160a01b031681525061438060238060236046600a6003600160405161019a90610352565b6001600160a01b038b1681526020808201908b9080838360005b838110156101cc5781810151838201526020016101b4565b505050509050018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019a5050505050505050505050604051809103906000f08015801561022b573d6000803e3d6000fd5b503360008181526002602090815260408083208054600180820183559185528385200180546001600160a01b0319166001600160a01b038816179055835401909255815192835290519293507fbb14e6561111416eda7607c478c09b236c0873cd3699549afe42dd57656b978792918290030190a192915050565b3360009081526002602090815260409182902080548351818402810184019094528084526060939283018282801561030757602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116102e9575b5050505050905090565b60005490565b6002602052816000526040600020818154811061033057fe5b6000918252602090912001546001600160a01b03169150829050565b60005481565b612d52806103608339019056fe608060405260006009819055600a819055600c805460ff19169055600d553480156200002a57600080fd5b5060405162002d5238038062002d5283398181016040526101408110156200005157600080fd5b50805160408201516060830151608084015160a085015160c086015160e08701516101008801516101208901516000805460ff191660011790559798602001976001600160a01b038a166200010757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f61646d696e2063616e6e6f742062652030000000000000000000000000000000604482015290519081900360640190fd5b600088116200017757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5f706572696f644475726174696f6e2063616e6e6f7420626520300000000000604482015290519081900360640190fd5b60008711620001e757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5f766f74696e67506572696f644c656e6774682063616e6e6f74206265203000604482015290519081900360640190fd5b670de0b6b3a76400008711156200024a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018062002d0d6021913960400191505060405180910390fd5b670de0b6b3a7640000861115620002c257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f5f6772616365506572696f644c656e6774682065786365656473206c696d6974604482015290519081900360640190fd5b600085116200031d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018062002d2e6024913960400191505060405180910390fd5b60008054610100600160a81b0319166101006001600160a01b038d160217815589906020020151600780546001600160a01b0319166001600160a01b0390921691909117905560005b60018110156200044e5760008a82600181106200037f57fe5b60200201516001600160a01b03161415620003fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f5f617070726f766564546f6b656e2063616e6e6f742062652030000000000000604482015290519081900360640190fd5b600e8a82600181106200040a57fe5b6020908102919091015182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b03909316929092179091550162000366565b506040516200045d9062000586565b604051809103906000f0801580156200047a573d6000803e3d6000fd5b50600880546001600160a01b03199081166001600160a01b039384161790915560018a815560028a815560038a815560048a9055600588905542600655604080516080810182526000805461010090819004891680845260208085018981528587018a815260608701868152938652600f8352878620965187548d16908e161787559051868b015551978501805460ff1916981515989098179097555192909401919091558054839004871680825260108552828220805490971617909555600a8490559354845193845293519304909316927f03995a801b13c36325306deef859ef977ce61c6e15a794281bf969d20482522792918290030190a25050505050505050505062000594565b61051880620027f583390190565b61225180620005a46000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80638340bbce1161010f578063b2643aab116100a2578063da35c66411610071578063da35c664146106a8578063de292789146106b0578063e63bc62d146106b8578063f851a440146106d5576101e5565b8063b2643aab1461063b578063b470aade14610690578063b9e2bea014610698578063c89039c5146106a0576101e5565b806399653fbe116100de57806399653fbe146105e6578063a3dc38001461060e578063a42afd291461062b578063a44a5e7e14610633576101e5565b80638340bbce1461059c5780638b15a605146105a45780639425a476146105ac5780639746d940146105c9576101e5565b80633b214a741161018757806363858f2d1161015657806363858f2d1461057c5780636537214714610584578063797daf701461058c5780637d5b6c7214610594576101e5565b80633b214a741461043d578063402c17941461045a578063505afd7414610480578063590f940b1461049c576101e5565b806308ae4b0c116101c357806308ae4b0c1461039e5780631dafede0146103f45780631e2362ec1461042d5780633a98ef3914610435576101e5565b8063013cf08b146101ea578063044a0ca814610334578063086146d214610384575b600080fd5b6102076004803603602081101561020057600080fd5b50356106dd565b604051808f6001600160a01b03166001600160a01b031681526020018e6001600160a01b03166001600160a01b031681526020018d6001600160a01b03166001600160a01b031681526020018c81526020018b81526020018a8152602001896001600160a01b03166001600160a01b03168152602001888152602001876001600160a01b03166001600160a01b0316815260200186815260200185815260200184815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156102ec5781810151838201526020016102d4565b50505050905090810190601f1680156103195780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b6103606004803603604081101561034a57600080fd5b506001600160a01b038135169060200135610840565b6040518082600281111561037057fe5b60ff16815260200191505060405180910390f35b61038c610947565b60408051918252519081900360200190f35b6103c4600480360360208110156103b457600080fd5b50356001600160a01b0316610976565b604080516001600160a01b0390951685526020850193909352901515838301526060830152519081900360800190f35b6104116004803603602081101561040a57600080fd5b50356109ad565b604080516001600160a01b039092168252519081900360200190f35b61038c6109d4565b61038c6109da565b61038c6004803603602081101561045357600080fd5b50356109e0565b6104116004803603602081101561047057600080fd5b50356001600160a01b03166109fe565b610488610a19565b604080519115158252519081900360200190f35b61038c60048036036101008110156104b357600080fd5b6001600160a01b038235811692602081013592604082013592606083013592608081013582169260a08201359260c0830135169190810190610100810160e082013564010000000081111561050757600080fd5b82018360208201111561051957600080fd5b8035906020019184600183028401116401000000008311171561053b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a22945050505050565b61038c610b5d565b61038c610b63565b61038c610b69565b61038c610b6f565b61038c610b75565b61038c610b7b565b610488600480360360208110156105c257600080fd5b5035610b81565b61038c600480360360208110156105df57600080fd5b5035610ba8565b61060c600480360360408110156105fc57600080fd5b508035906020013560ff16610ee5565b005b6104886004803603602081101561062457600080fd5b50356112eb565b610411611394565b61038c6113a3565b6106586004803603602081101561065157600080fd5b50356113a9565b604051808260c080838360005b8381101561067d578181015183820152602001610665565b5050505090500191505060405180910390f35b61038c611413565b61038c611419565b61041161141f565b61038c61142e565b61038c611434565b61060c600480360360208110156106ce57600080fd5b503561143a565b610411611736565b60116020528060005260406000206000915090508060000160009054906101000a90046001600160a01b0316908060010160009054906101000a90046001600160a01b0316908060020160009054906101000a90046001600160a01b0316908060030154908060040154908060050154908060060160009054906101000a90046001600160a01b0316908060070154908060080160009054906101000a90046001600160a01b03169080600901549080600a01549080600b01549080600d018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108305780601f1061080557610100808354040283529160200191610830565b820191906000526020600020905b81548152906001019060200180831161081357829003601f168201915b50505050509080600e015490508e565b6001600160a01b0382166000908152600f602052604081206002015460ff166108a8576040805162461bcd60e51b81526020600482015260156024820152741b595b58995c88191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b60125482106108f8576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b601160006012848154811061090957fe5b6000918252602080832090910154835282810193909352604091820181206001600160a01b0387168252600f0190925290205460ff16905092915050565b60006109706001546109646006544261174a90919063ffffffff16565b9063ffffffff61175f16565b90505b90565b600f6020526000908152604090208054600182015460028301546003909301546001600160a01b0390921692909160ff9091169084565b600e81815481106109ba57fe5b6000918252602090912001546001600160a01b0316905081565b60045481565b600a5481565b601281815481106109ed57fe5b600091825260209091200154905081565b6010602052600090815260409020546001600160a01b031681565b600c5460ff1681565b6000805460ff16610a68576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff19169055670de0b6b3a7640000881115610acf576040805162461bcd60e51b815260206004820152601960248201527f746f6f206d616e79207368617265732072657175657374656400000000000000604482015290519081900360640190fd5b6001600160a01b038916610b22576040805162461bcd60e51b815260206004820152601560248201527406170706c6963616e742063616e6e6f74206265203605c1b604482015290519081900360640190fd5b610b2a611f66565b610b3b8a8a8a8a8a8a8a8a89611781565b5050600954600019016000805460ff1916600117905598975050505050505050565b60035481565b600b5481565b60125490565b60065481565b60025481565b60055481565b6000610b9860025483611a4290919063ffffffff16565b610ba0610947565b101592915050565b6000805460ff16610bee576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff19168155338152601060209081526040808320546001600160a01b03168352600f909152902060010154610c60576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b600082815260116020526040902060018101546001600160a01b0316610ccd576040805162461bcd60e51b815260206004820181905260248201527f70726f706f73616c206d7573742068617665206265656e2070726f706f736564604482015290519081900360640190fd5b600c81015460ff1615610d115760405162461bcd60e51b81526004018080602001828103825260238152602001806121b56023913960400191505060405180910390fd5b600c8101546301000000900460ff1615610d72576040805162461bcd60e51b815260206004820152601b60248201527f70726f706f73616c20686173206265656e2063616e63656c6c65640000000000604482015290519081900360640190fd5b6000610de76001610ddb610d84610947565b60125415610dd35760128054601191600091610da790600163ffffffff61174a16565b81548110610db157fe5b9060005260206000200154815260200190815260200160002060090154610dd6565b60005b611a5b565b9063ffffffff611a4216565b60098301819055336000818152601060205260408120546002860180546001600160a01b0319166001600160a01b039092169182179055600c8601805460ff19166001908117909155601280548083018255938190527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449093018990559154939450928392917f2a383a979381335e3eb401ac01dd8083e024ff0256bf5338456ffc0063390bbd918991610e9b919061174a565b604080519283526020830191909152818101879052519081900360600190a3601254610ece90600163ffffffff61174a16565b93505050506000805460ff19166001179055919050565b60005460ff16610f2a576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff19168155338152601060209081526040808320546001600160a01b03168352600f909152902060010154610f9c576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b336000908152601060209081526040808320546001600160a01b0316808452600f9092529091206012548410611013576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6000601160006012878154811061102657fe5b90600052602060002001548152602001908152602001600020905060038460ff161061108f576040805162461bcd60e51b81526020600482015260136024820152726d757374206265206c657373207468616e203360681b604482015290519081900360640190fd5b60008460ff1660028111156110a057fe5b90506110af8260090154610b81565b156110eb5760405162461bcd60e51b81526004018080602001828103825260228152602001806121d86022913960400191505060405180910390fd5b6001600160a01b0384166000908152600f8301602052604081205460ff16600281111561111457fe5b14611166576040805162461bcd60e51b815260206004820152601860248201527f6d656d6265722068617320616c726561647920766f7465640000000000000000604482015290519081900360640190fd5b600181600281111561117457fe5b148061118b5750600281600281111561118957fe5b145b6111dc576040805162461bcd60e51b815260206004820152601d60248201527f766f7465206d7573742062652065697468657220596573206f72204e6f000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600f830160205260409020805482919060ff1916600183600281111561120d57fe5b0217905550600181600281111561122057fe5b141561125d576001830154600a83015461123f9163ffffffff611a4216565b600a830155600383015486111561125857600383018690555b611290565b600281600281111561126b57fe5b1415611290576001830154600b83015461128a9163ffffffff611a4216565b600b8301555b6040805160ff8716815290516001600160a01b03861691339189917f29bf0061f2faa9daa482f061b116195432d435536d8af4ae6b3c5dd78223679b919081900360200190a450506000805460ff1916600117905550505050565b601254600090821061133e576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b601160006012848154811061134f57fe5b90600052602060002001548152602001908152602001600020600c0160016006811061137757fe5b602081049091015460ff601f9092166101000a9004169050919050565b6008546001600160a01b031681565b600d5481565b6113b1611f66565b600082815260116020526040808220815160c081019283905292600c909101916006918390855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116113d8575094979650505050505050565b60015481565b60095490565b6007546001600160a01b031681565b60095481565b600b5490565b60005460ff1661147f576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff1916905561149281611a72565b6000601282815481106114a157fe5b600091825260208083209190910154808352601190915260408220600c8101805461ff00191661010017905590925090806114db85611d83565b91509150670de0b6b3a76400006115018460030154600a54611a4290919063ffffffff16565b111561150c57600091505b81156116e3576001600b55600c8301805462ff000019166201000017905582546001600160a01b03166000908152600f602052604090206002015460ff16156115a257600383015483546001600160a01b03166000908152600f60205260409020600101546115809163ffffffff611a4216565b83546001600160a01b03166000908152600f60205260409020600101556116c4565b82546001600160a01b039081166000908152601060209081526040808320549093168252600f9052206002015460ff16156116265782546001600160a01b0390811660009081526010602090815260408083205490931680835283832080546001600160a01b03199081168317909155600f90925292909120805490911690911790555b6040805160808101825284546001600160a01b0390811680835260038088015460208086019182526001868801818152600060608901818152968152600f8452898120985189549089166001600160a01b0319918216178a559451928901929092555160028801805491151560ff19909216919091179055935195909201949094558754909216808252601090925292909220805490911690911790555b6003830154600a546116db9163ffffffff611a4216565b600a556116e9565b6002600b555b6040805183151581529051859187917f86f74240ecee9e4230d26ff92e17fee978460d9c0f78f5c88b2864c9e7a494279181900360200190a350506000805460ff19166001179055505050565b60005461010090046001600160a01b031681565b60008282111561175957600080fd5b50900390565b600080821161176d57600080fd5b600082848161177857fe5b04949350505050565b611789611f84565b604051806101e001604052808b6001600160a01b03168152602001336001600160a01b0316815260200160006001600160a01b031681526020018a8152602001898152602001888152602001876001600160a01b03168152602001868152602001856001600160a01b03168152602001600081526020016000815260200160008152602001838152602001848152602001600081525090508060116000600954815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060e082015181600701556101008201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c0190600661197a92919061202d565b506101a0820151805161199791600d8401916020909101906120bf565b506101c09190910151600e90910155336000818152601060209081526040918290205460095483519081529182018d90528183018c9052606082018b90526001600160a01b038a8116608084015260a083018a905288811660c0840152925190831693928e1692849290917f1facc413faf060d5cc5c8bc12d8fe29e5c530eb98e2475c76733ec749787a7509181900360e00190a45050600980546001019055505050505050505050565b600082820183811015611a5457600080fd5b9392505050565b600081831015611a6b5781611a54565b5090919050565b6012548110611ac2576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b611aca611f84565b6011600060128481548110611adb57fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff161515815260206001928301818104948501949093039092029101808411611bb157505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152938201939291830182828015611c745780601f10611c4957610100808354040283529160200191611c74565b820191906000526020600020905b815481529060010190602001808311611c5757829003601f168201915b50505050508152602001600e820154815250509050806101800151600160068110611c9b57fe5b602002015115611cdc5760405162461bcd60e51b81526004018080602001828103825260238152602001806121fa6023913960400191505060405180910390fd5b811580611d445750601160006012611cfb85600163ffffffff61174a16565b81548110611d0557fe5b90600052602060002001548152602001908152602001600020600c01600160068110611d2d57fe5b602081049091015460ff601f9092166101000a9004165b611d7f5760405162461bcd60e51b81526004018080602001828103825260238152602001806121926023913960400191505060405180910390fd5b5050565b600080611d8e611f84565b6011600060128681548110611d9f57fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff161515815260206001928301818104948501949093039092029101808411611e7557505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152938201939291830182828015611f385780601f10611f0d57610100808354040283529160200191611f38565b820191906000526020600020905b815481529060010190602001808311611f1b57829003601f168201915b5050509183525050600e91909101546020909101526101608101516101409091015111946000945092505050565b6040518060c001604052806006906020820280388339509192915050565b60405180610280016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001612019611f66565b815260200160608152602001600081525090565b6001830191839082156120af5791602002820160005b8382111561208057835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302612043565b80156120ad5782816101000a81549060ff0219169055600101602081600001049283019260010302612080565b505b506120bb929150612139565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061210057805160ff191683800117855561212d565b8280016001018555821561212d579182015b8281111561212d578251825591602001919060010190612112565b506120bb929150612157565b61097391905b808211156120bb57805460ff1916815560010161213f565b61097391905b808211156120bb576000815560010161215d56fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c0070726576696f75732070726f706f73616c206d7573742062652070726f63657373656470726f706f73616c2068617320616c7265616479206265656e2073706f6e736f72656470726f706f73616c20766f74696e6720706572696f6420686173206578706972656470726f706f73616c2068617320616c7265616479206265656e2070726f636573736564a265627a7a723058204aadd5a65785cc61785723b74e34bd108bbb4ad24956b9ecd95015be2e7f326b64736f6c63430005090032608060405234801561001057600080fd5b50600080546001600160a01b031916331790556104e6806100326000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301e3366714610046578063732c8f57146100905780638da5cb5b1461014f575b600080fd5b61007c6004803603606081101561005c57600080fd5b506001600160a01b03813581169160208101359091169060400135610173565b604080519115158252519081900360200190f35b61007c600480360360808110156100a657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156100dd57600080fd5b8201836020820111156100ef57600080fd5b8035906020019184602083028401116401000000008311171561011157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061026c945050505050565b61015761044e565b604080516001600160a01b039092168252519081900360200190f35b600080546001600160a01b0316331461018b57600080fd5b836001600160a01b0316836001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398846040518082815260200191505060405180910390a3836001600160a01b031663a9059cbb84846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561023657600080fd5b505af115801561024a573d6000803e3d6000fd5b505050506040513d602081101561026057600080fd5b505190505b9392505050565b600080546001600160a01b0316331461028457600080fd5b60005b82518110156104425760006103318483815181106102a157fe5b60200260200101516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156102fe57600080fd5b505afa158015610312573d6000803e3d6000fd5b505050506040513d602081101561032857600080fd5b5051878761045d565b905083828151811061033f57fe5b60200260200101516001600160a01b0316876001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398836040518082815260200191505060405180910390a383828151811061039d57fe5b60200260200101516001600160a01b031663a9059cbb88836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b505050506040513d602081101561042e57600080fd5b505161043957600080fd5b50600101610287565b50600195945050505050565b6000546001600160a01b031681565b60008161046957600080fd5b8361047657506000610265565b8383028385828161048357fe5b04141561049c5782818161049357fe5b04915050610265565b838386816104a657fe5b04029594505050505056fea265627a7a72305820600a90e68081feae486f77ec58352ebe4f959e2362fac128a8d418122da6121464736f6c634300050900325f766f74696e67506572696f644c656e6774682065786365656473206c696d69745f656d657267656e637950726f63657373696e67576169742063616e6e6f742062652030a265627a7a7230582079f1b5475a4ba4a4bde5586d1a3a1ca470c9023ac8016950766732b9eca2ee9b64736f6c63430005090032", - "sourceMap": "64:759:12:-;;;114:1;91:24;;193:87;8:9:-1;5:2;;;30:1;27;20:12;5:2;193:87:12;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;193:87:12;244:12;:28;;-1:-1:-1;;;;;;244:28:12;-1:-1:-1;;;;;244:28:12;;;;;;;;;64:759;;;-1:-1:-1;64:759:12;;", - "deployedSourceMap": "64:759:12:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;64:759:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;339:286;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;339:286:12;-1:-1:-1;;;;;339:286:12;;:::i;:::-;;;;-1:-1:-1;;;;;339:286:12;;;;;;;;;;;;;;631:105;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;631:105:12;;;;;;;;;;;;;;;;;742:78;;;:::i;:::-;;;;;;;;;;;;;;;;145:41;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;145:41:12;;;;;;;;:::i;91:24::-;;;:::i;339:286::-;387:7;405:14;437:6;422:71;;;;;;;;446:12;;;;;;;;;-1:-1:-1;;;;;446:12:12;-1:-1:-1;;;;;422:71:12;-1:-1:-1;;;;;422:71:12;;;;461:5;468:2;472;476;480;484;488:1;491;422:71;;;;;:::i;:::-;-1:-1:-1;;;;;422:71:12;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;422:71:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;507:10:12;502:16;;;;:4;:16;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;502:35:12;;;;;;;;;-1:-1:-1;;;;;;502:35:12;-1:-1:-1;;;;;502:35:12;;;;;544:13;;;;;;571:20;;;;;;;502:35;;-1:-1:-1;571:20:12;;;;;;;;;615:3;339:286;-1:-1:-1;;339:286:12:o;631:105::-;719:10;714:16;;;;:4;:16;;;;;;;;;707:23;;;;;;;;;;;;;;;;;682:16;;707:23;;;714:16;707:23;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;707:23:12;;;;;;;;;;;;;;;;;;;;;;;631:105;:::o;742:78::-;786:4;806:8;742:78;:::o;145:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;145:41:12;;-1:-1:-1;145:41:12;;-1:-1:-1;145:41:12:o;91:24::-;;;;:::o;64:759::-;;;;;;;;:::o", - "source": "pragma solidity >=0.5.0 < 0.6.0;\r\nimport './Governance.sol';\r\n\r\ncontract DAOFactory {\r\n\r\n uint public daoCount = 0;\r\n address tokenAddress;\r\n mapping(address => address[]) public daos;\r\n\r\n constructor(address _tokenAddress) public {\r\n\r\n tokenAddress = _tokenAddress;\r\n\r\n }\r\n\r\n event daoAdded (\r\n address admin\r\n\r\n );\r\n\r\n function newDAO(address _admin) public returns (address) {\r\n\r\n Governance dao = new Governance(_admin, [tokenAddress], 17280, 35, 35, 35, 70, 10, 3, 1);\r\n\r\n daos[msg.sender].push(address(dao));\r\n daoCount += 1;\r\n\r\n emit daoAdded(msg.sender);\r\n\r\n return address(dao);\r\n }\r\n\r\n function getContractAddress() public view returns (address[] memory) {\r\n return daos[msg.sender];\r\n }\r\n\r\n function getDAOCount() public view returns (uint) {\r\n return daoCount;\r\n }\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\DAOFactory.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/DAOFactory.sol", - "exportedSymbols": { - "DAOFactory": [ - 6233 - ] - }, - "id": 6234, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 6139, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:12" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Governance.sol", - "file": "./Governance.sol", - "id": 6140, - "nodeType": "ImportDirective", - "scope": 6234, - "sourceUnit": 7481, - "src": "34:26:12", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [ - 7480 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 6233, - "linearizedBaseContracts": [ - 6233 - ], - "name": "DAOFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 6143, - "name": "daoCount", - "nodeType": "VariableDeclaration", - "scope": 6233, - "src": "91:24:12", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6141, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "91:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 6142, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "114:1:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 6145, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 6233, - "src": "120:20:12", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6144, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "120:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6150, - "name": "daos", - "nodeType": "VariableDeclaration", - "scope": 6233, - "src": "145:41:12", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(address => address[])" - }, - "typeName": { - "id": 6149, - "keyType": { - "id": 6146, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "153:7:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "145:29:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(address => address[])" - }, - "valueType": { - "baseType": { - "id": 6147, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "164:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6148, - "length": null, - "nodeType": "ArrayTypeName", - "src": "164:9:12", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 6159, - "nodeType": "Block", - "src": "235:45:12", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 6157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6155, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6145, - "src": "244:12:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6156, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6152, - "src": "259:13:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "244:28:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6158, - "nodeType": "ExpressionStatement", - "src": "244:28:12" - } - ] - }, - "documentation": null, - "id": 6160, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6152, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 6160, - "src": "205:21:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6151, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "205:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "204:23:12" - }, - "returnParameters": { - "id": 6154, - "nodeType": "ParameterList", - "parameters": [], - "src": "235:0:12" - }, - "scope": 6233, - "src": "193:87:12", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 6164, - "name": "daoAdded", - "nodeType": "EventDefinition", - "parameters": { - "id": 6163, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6162, - "indexed": false, - "name": "admin", - "nodeType": "VariableDeclaration", - "scope": 6164, - "src": "312:13:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6161, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "312:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "301:31:12" - }, - "src": "286:47:12" - }, - { - "body": { - "id": 6211, - "nodeType": "Block", - "src": "396:229:12", - "statements": [ - { - "assignments": [ - 6172 - ], - "declarations": [ - { - "constant": false, - "id": 6172, - "name": "dao", - "nodeType": "VariableDeclaration", - "scope": 6211, - "src": "405:14:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - }, - "typeName": { - "contractScope": null, - "id": 6171, - "name": "Governance", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7480, - "src": "405:10:12", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6187, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6175, - "name": "_admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6166, - "src": "437:6:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 6176, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6145, - "src": "446:12:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 6177, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "445:14:12", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - } - }, - { - "argumentTypes": null, - "hexValue": "3137323830", - "id": 6178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "461:5:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_17280_by_1", - "typeString": "int_const 17280" - }, - "value": "17280" - }, - { - "argumentTypes": null, - "hexValue": "3335", - "id": 6179, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "468:2:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_35_by_1", - "typeString": "int_const 35" - }, - "value": "35" - }, - { - "argumentTypes": null, - "hexValue": "3335", - "id": 6180, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "472:2:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_35_by_1", - "typeString": "int_const 35" - }, - "value": "35" - }, - { - "argumentTypes": null, - "hexValue": "3335", - "id": 6181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "476:2:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_35_by_1", - "typeString": "int_const 35" - }, - "value": "35" - }, - { - "argumentTypes": null, - "hexValue": "3730", - "id": 6182, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "480:2:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_70_by_1", - "typeString": "int_const 70" - }, - "value": "70" - }, - { - "argumentTypes": null, - "hexValue": "3130", - "id": 6183, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "484:2:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - { - "argumentTypes": null, - "hexValue": "33", - "id": 6184, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "488:1:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - { - "argumentTypes": null, - "hexValue": "31", - "id": 6185, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "491:1:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - }, - { - "typeIdentifier": "t_rational_17280_by_1", - "typeString": "int_const 17280" - }, - { - "typeIdentifier": "t_rational_35_by_1", - "typeString": "int_const 35" - }, - { - "typeIdentifier": "t_rational_35_by_1", - "typeString": "int_const 35" - }, - { - "typeIdentifier": "t_rational_35_by_1", - "typeString": "int_const 35" - }, - { - "typeIdentifier": "t_rational_70_by_1", - "typeString": "int_const 70" - }, - { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 6174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "422:14:12", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_array$_t_address_$1_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_contract$_Governance_$7480_$", - "typeString": "function (address,address[1] memory,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) returns (contract Governance)" - }, - "typeName": { - "contractScope": null, - "id": 6173, - "name": "Governance", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7480, - "src": "426:10:12", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - } - }, - "id": 6186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "422:71:12", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "405:88:12" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6194, - "name": "dao", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6172, - "src": "532:3:12", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - ], - "id": 6193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "524:7:12", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 6195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "524:12:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6188, - "name": "daos", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6150, - "src": "502:4:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(address => address[] storage ref)" - } - }, - "id": 6191, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6189, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "507:3:12", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "507:10:12", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "502:16:12", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 6192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "502:21:12", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 6196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "502:35:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6197, - "nodeType": "ExpressionStatement", - "src": "502:35:12" - }, - { - "expression": { - "argumentTypes": null, - "id": 6200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6198, - "name": "daoCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6143, - "src": "544:8:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 6199, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "556:1:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "544:13:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6201, - "nodeType": "ExpressionStatement", - "src": "544:13:12" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6203, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "580:3:12", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "580:10:12", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 6202, - "name": "daoAdded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6164, - "src": "571:8:12", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 6205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "571:20:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6206, - "nodeType": "EmitStatement", - "src": "566:25:12" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6208, - "name": "dao", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6172, - "src": "615:3:12", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - ], - "id": 6207, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "607:7:12", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 6209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "607:12:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 6170, - "id": 6210, - "nodeType": "Return", - "src": "600:19:12" - } - ] - }, - "documentation": null, - "id": 6212, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "newDAO", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6167, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6166, - "name": "_admin", - "nodeType": "VariableDeclaration", - "scope": 6212, - "src": "355:14:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6165, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "355:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "354:16:12" - }, - "returnParameters": { - "id": 6170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6169, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 6212, - "src": "387:7:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6168, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "387:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "386:9:12" - }, - "scope": 6233, - "src": "339:286:12", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 6223, - "nodeType": "Block", - "src": "700:36:12", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6218, - "name": "daos", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6150, - "src": "714:4:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(address => address[] storage ref)" - } - }, - "id": 6221, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6219, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "719:3:12", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "719:10:12", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "714:16:12", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 6217, - "id": 6222, - "nodeType": "Return", - "src": "707:23:12" - } - ] - }, - "documentation": null, - "id": 6224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getContractAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6213, - "nodeType": "ParameterList", - "parameters": [], - "src": "658:2:12" - }, - "returnParameters": { - "id": 6217, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6216, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 6224, - "src": "682:16:12", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 6214, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "682:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6215, - "length": null, - "nodeType": "ArrayTypeName", - "src": "682:9:12", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "681:18:12" - }, - "scope": 6233, - "src": "631:105:12", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 6231, - "nodeType": "Block", - "src": "792:28:12", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 6229, - "name": "daoCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6143, - "src": "806:8:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 6228, - "id": 6230, - "nodeType": "Return", - "src": "799:15:12" - } - ] - }, - "documentation": null, - "id": 6232, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDAOCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6225, - "nodeType": "ParameterList", - "parameters": [], - "src": "762:2:12" - }, - "returnParameters": { - "id": 6228, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6227, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 6232, - "src": "786:4:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6226, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "786:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "785:6:12" - }, - "scope": 6233, - "src": "742:78:12", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 6234, - "src": "64:759:12" - } - ], - "src": "0:825:12" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/DAOFactory.sol", - "exportedSymbols": { - "DAOFactory": [ - 6233 - ] - }, - "id": 6234, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 6139, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:12" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Governance.sol", - "file": "./Governance.sol", - "id": 6140, - "nodeType": "ImportDirective", - "scope": 6234, - "sourceUnit": 7481, - "src": "34:26:12", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [ - 7480 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 6233, - "linearizedBaseContracts": [ - 6233 - ], - "name": "DAOFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 6143, - "name": "daoCount", - "nodeType": "VariableDeclaration", - "scope": 6233, - "src": "91:24:12", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6141, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "91:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 6142, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "114:1:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 6145, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 6233, - "src": "120:20:12", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6144, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "120:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6150, - "name": "daos", - "nodeType": "VariableDeclaration", - "scope": 6233, - "src": "145:41:12", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(address => address[])" - }, - "typeName": { - "id": 6149, - "keyType": { - "id": 6146, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "153:7:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "145:29:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(address => address[])" - }, - "valueType": { - "baseType": { - "id": 6147, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "164:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6148, - "length": null, - "nodeType": "ArrayTypeName", - "src": "164:9:12", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 6159, - "nodeType": "Block", - "src": "235:45:12", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 6157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6155, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6145, - "src": "244:12:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6156, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6152, - "src": "259:13:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "244:28:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6158, - "nodeType": "ExpressionStatement", - "src": "244:28:12" - } - ] - }, - "documentation": null, - "id": 6160, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6152, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 6160, - "src": "205:21:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6151, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "205:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "204:23:12" - }, - "returnParameters": { - "id": 6154, - "nodeType": "ParameterList", - "parameters": [], - "src": "235:0:12" - }, - "scope": 6233, - "src": "193:87:12", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 6164, - "name": "daoAdded", - "nodeType": "EventDefinition", - "parameters": { - "id": 6163, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6162, - "indexed": false, - "name": "admin", - "nodeType": "VariableDeclaration", - "scope": 6164, - "src": "312:13:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6161, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "312:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "301:31:12" - }, - "src": "286:47:12" - }, - { - "body": { - "id": 6211, - "nodeType": "Block", - "src": "396:229:12", - "statements": [ - { - "assignments": [ - 6172 - ], - "declarations": [ - { - "constant": false, - "id": 6172, - "name": "dao", - "nodeType": "VariableDeclaration", - "scope": 6211, - "src": "405:14:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - }, - "typeName": { - "contractScope": null, - "id": 6171, - "name": "Governance", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7480, - "src": "405:10:12", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6187, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6175, - "name": "_admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6166, - "src": "437:6:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 6176, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6145, - "src": "446:12:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 6177, - "isConstant": false, - "isInlineArray": true, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "445:14:12", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - } - }, - { - "argumentTypes": null, - "hexValue": "3137323830", - "id": 6178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "461:5:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_17280_by_1", - "typeString": "int_const 17280" - }, - "value": "17280" - }, - { - "argumentTypes": null, - "hexValue": "3335", - "id": 6179, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "468:2:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_35_by_1", - "typeString": "int_const 35" - }, - "value": "35" - }, - { - "argumentTypes": null, - "hexValue": "3335", - "id": 6180, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "472:2:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_35_by_1", - "typeString": "int_const 35" - }, - "value": "35" - }, - { - "argumentTypes": null, - "hexValue": "3335", - "id": 6181, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "476:2:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_35_by_1", - "typeString": "int_const 35" - }, - "value": "35" - }, - { - "argumentTypes": null, - "hexValue": "3730", - "id": 6182, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "480:2:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_70_by_1", - "typeString": "int_const 70" - }, - "value": "70" - }, - { - "argumentTypes": null, - "hexValue": "3130", - "id": 6183, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "484:2:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - { - "argumentTypes": null, - "hexValue": "33", - "id": 6184, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "488:1:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - { - "argumentTypes": null, - "hexValue": "31", - "id": 6185, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "491:1:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - }, - { - "typeIdentifier": "t_rational_17280_by_1", - "typeString": "int_const 17280" - }, - { - "typeIdentifier": "t_rational_35_by_1", - "typeString": "int_const 35" - }, - { - "typeIdentifier": "t_rational_35_by_1", - "typeString": "int_const 35" - }, - { - "typeIdentifier": "t_rational_35_by_1", - "typeString": "int_const 35" - }, - { - "typeIdentifier": "t_rational_70_by_1", - "typeString": "int_const 70" - }, - { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 6174, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "422:14:12", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_array$_t_address_$1_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_contract$_Governance_$7480_$", - "typeString": "function (address,address[1] memory,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) returns (contract Governance)" - }, - "typeName": { - "contractScope": null, - "id": 6173, - "name": "Governance", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7480, - "src": "426:10:12", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - } - }, - "id": 6186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "422:71:12", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "405:88:12" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6194, - "name": "dao", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6172, - "src": "532:3:12", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - ], - "id": 6193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "524:7:12", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 6195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "524:12:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6188, - "name": "daos", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6150, - "src": "502:4:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(address => address[] storage ref)" - } - }, - "id": 6191, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6189, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "507:3:12", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "507:10:12", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "502:16:12", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 6192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "502:21:12", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 6196, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "502:35:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6197, - "nodeType": "ExpressionStatement", - "src": "502:35:12" - }, - { - "expression": { - "argumentTypes": null, - "id": 6200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6198, - "name": "daoCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6143, - "src": "544:8:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 6199, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "556:1:12", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "544:13:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6201, - "nodeType": "ExpressionStatement", - "src": "544:13:12" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6203, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "580:3:12", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6204, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "580:10:12", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 6202, - "name": "daoAdded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6164, - "src": "571:8:12", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 6205, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "571:20:12", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6206, - "nodeType": "EmitStatement", - "src": "566:25:12" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6208, - "name": "dao", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6172, - "src": "615:3:12", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - ], - "id": 6207, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "607:7:12", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 6209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "607:12:12", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 6170, - "id": 6210, - "nodeType": "Return", - "src": "600:19:12" - } - ] - }, - "documentation": null, - "id": 6212, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "newDAO", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6167, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6166, - "name": "_admin", - "nodeType": "VariableDeclaration", - "scope": 6212, - "src": "355:14:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6165, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "355:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "354:16:12" - }, - "returnParameters": { - "id": 6170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6169, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 6212, - "src": "387:7:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6168, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "387:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "386:9:12" - }, - "scope": 6233, - "src": "339:286:12", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 6223, - "nodeType": "Block", - "src": "700:36:12", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6218, - "name": "daos", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6150, - "src": "714:4:12", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(address => address[] storage ref)" - } - }, - "id": 6221, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6219, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "719:3:12", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6220, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "719:10:12", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "714:16:12", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 6217, - "id": 6222, - "nodeType": "Return", - "src": "707:23:12" - } - ] - }, - "documentation": null, - "id": 6224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getContractAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6213, - "nodeType": "ParameterList", - "parameters": [], - "src": "658:2:12" - }, - "returnParameters": { - "id": 6217, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6216, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 6224, - "src": "682:16:12", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 6214, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "682:7:12", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6215, - "length": null, - "nodeType": "ArrayTypeName", - "src": "682:9:12", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "681:18:12" - }, - "scope": 6233, - "src": "631:105:12", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 6231, - "nodeType": "Block", - "src": "792:28:12", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 6229, - "name": "daoCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6143, - "src": "806:8:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 6228, - "id": 6230, - "nodeType": "Return", - "src": "799:15:12" - } - ] - }, - "documentation": null, - "id": 6232, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getDAOCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6225, - "nodeType": "ParameterList", - "parameters": [], - "src": "762:2:12" - }, - "returnParameters": { - "id": 6228, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6227, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 6232, - "src": "786:4:12", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6226, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "786:4:12", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "785:6:12" - }, - "scope": 6233, - "src": "742:78:12", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 6234, - "src": "64:759:12" - } - ], - "src": "0:825:12" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": { - "10": { - "events": { - "0xbb14e6561111416eda7607c478c09b236c0873cd3699549afe42dd57656b9787": { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "admin", - "type": "address" - } - ], - "name": "daoAdded", - "type": "event" - } - }, - "links": {}, - "address": "0x5E09Ce55751C6D3BBeE706d96A73970A9c2Ed64B", - "transactionHash": "0x43672e54585b6dd9c407087ce684b9c42b5756cfd0325e46c7d764ecffb928f7" - } - }, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:31.206Z", - "networkType": "ethereum", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/ERC165.json b/src/contracts/ERC165.json deleted file mode 100644 index ff7b4b3..0000000 --- a/src/contracts/ERC165.json +++ /dev/null @@ -1,21215 +0,0 @@ -{ - "contractName": "ERC165", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "_interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"_interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\\r\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Interface identification is specified in ERC-165. This function\\r uses less than 30,000 gas.\\r\",\"params\":{\"_interfaceId\":\"The interface identifier, as specified in ERC-165\\r\"}}},\"title\":\"ERC165\\r\"},\"userdoc\":{\"methods\":{\"supportsInterface(bytes4)\":{\"notice\":\"Query if a contract implements an interface\\r\"}}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":\"ERC165\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":{\"keccak256\":\"0x4dd046a190602871aa9743a94149789c1e14b14f609c68d0f34d72e19bd690ce\",\"urls\":[\"bzzr://ea591dfb88f3591fe4344b7e665024c5aa3e8fb758a0409db79b1885a996b825\",\"dweb:/ipfs/QmXrwJ2TTXMWHBQxuLCqrj96gfh5HCHK57JsCEcXJ84t6z\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity >=0.5.0 < 0.6.0;\r\nimport '../../dao/oz/SafeMath.sol';\r\n\r\n/**\r\n * @title SafeMath\r\n * @dev Math operations with safety checks that throw on error\r\n */\r\n//library SafeMath {\r\n//\r\n// /**\r\n// * @dev Multiplies two numbers, throws on overflow.\r\n// */\r\n// function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// // Gas optimization: this is cheaper than asserting 'a' not being zero, but the\r\n// // benefit is lost if 'b' is also tested.\r\n// // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\r\n// if (a == 0) {\r\n// return 0;\r\n// }\r\n//\r\n// c = a * b;\r\n// assert(c / a == b);\r\n// return c;\r\n// }\r\n//\r\n// /**\r\n// * @dev Integer division of two numbers, truncating the quotient.\r\n// */\r\n// function div(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// // assert(b > 0); // Solidity automatically throws when dividing by 0\r\n// // uint256 c = a / b;\r\n// // assert(a == b * c + a % b); // There is no case in which this doesn't hold\r\n// return a / b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).\r\n// */\r\n// function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// assert(b <= a);\r\n// return a - b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Adds two numbers, throws on overflow.\r\n// */\r\n// function add(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// c = a + b;\r\n// assert(c >= a);\r\n// return c;\r\n// }\r\n//}\r\n\r\n/**\r\n * Utility library of inline functions on addresses\r\n */\r\nlibrary AddressUtils {\r\n\r\n /**\r\n * Returns whether the target address is a contract\r\n * @dev This function will return false if invoked during the constructor of a contract,\r\n * as the code is not actually created until after the constructor finishes.\r\n * @param addr address to check\r\n * @return whether the target address is a contract\r\n */\r\n function isContract(address addr) internal view returns (bool) {\r\n uint256 size;\r\n // XXX Currently there is no better way to check if there is a contract in an address\r\n // than to check the size of the code at that address.\r\n // See https://ethereum.stackexchange.com/a/14016/36603\r\n // for more details about how this works.\r\n // TODO Check this again before the Serenity release, because all addresses will be\r\n // contracts then.\r\n // solium-disable-next-line security/no-inline-assembly\r\n assembly { size := extcodesize(addr) }\r\n return size > 0;\r\n }\r\n\r\n}\r\n\r\n/**\r\n * @title ERC165\r\n * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r\n */\r\ninterface ERC165 {\r\n\r\n /**\r\n * @notice Query if a contract implements an interface\r\n * @param _interfaceId The interface identifier, as specified in ERC-165\r\n * @dev Interface identification is specified in ERC-165. This function\r\n * uses less than 30,000 gas.\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool);\r\n}\r\n\r\n\r\n/**\r\n * @title SupportsInterfaceWithLookup\r\n * @author Matt Condon (@shrugs)\r\n * @dev Implements ERC165 using a lookup table.\r\n */\r\ncontract SupportsInterfaceWithLookup is ERC165 {\r\n bytes4 public constant InterfaceId_ERC165 = 0x01ffc9a7;\r\n /**\r\n * 0x01ffc9a7 ===\r\n * bytes4(keccak256('supportsInterface(bytes4)'))\r\n */\r\n\r\n /**\r\n * @dev a mapping of interface id to whether or not it's supported\r\n */\r\n mapping(bytes4 => bool) internal supportedInterfaces;\r\n\r\n /**\r\n * @dev A contract implementing SupportsInterfaceWithLookup\r\n * implement ERC165 itself\r\n */\r\n constructor()\r\n public\r\n {\r\n _registerInterface(InterfaceId_ERC165);\r\n }\r\n\r\n /**\r\n * @dev implement supportsInterface(bytes4) using a lookup table\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool)\r\n {\r\n return supportedInterfaces[_interfaceId];\r\n }\r\n\r\n /**\r\n * @dev private method for registering an interface\r\n */\r\n function _registerInterface(bytes4 _interfaceId)\r\n internal\r\n {\r\n require(_interfaceId != 0xffffffff);\r\n supportedInterfaces[_interfaceId] = true;\r\n }\r\n}\r\n\r\n/**\r\n * @title ERC721 token receiver interface\r\n * @dev Interface for any contract that wants to support safeTransfers\r\n * from ERC721 asset contracts.\r\n */\r\ncontract ERC721Receiver {\r\n /**\r\n * @dev Magic value to be returned upon successful reception of an NFT\r\n * Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`,\r\n * which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n */\r\n bytes4 internal constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n /**\r\n * @notice Handle the receipt of an NFT\r\n * @dev The ERC721 smart contract calls this function on the recipient\r\n * after a `safetransfer`. This function MAY throw to revert and reject the\r\n * transfer. This function MUST use 50,000 gas or less. Return of other\r\n * than the magic value MUST result in the transaction being reverted.\r\n * Note: the contract address is always the message sender.\r\n * @param _from The sending address\r\n * @param _tokenId The NFT identifier which is being transfered\r\n * @param _data Additional data with no specified format\r\n * @return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n */\r\n function onERC721Received(\r\n address _from,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n returns(bytes4);\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic interface\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721Basic is ERC165 {\r\n event Transfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n );\r\n event Approval(\r\n address _owner,\r\n address _approved,\r\n uint256 _tokenId\r\n );\r\n event ApprovalForAll(\r\n address _owner,\r\n address _operator,\r\n bool _approved\r\n );\r\n\r\n function balanceOf(address _owner) public view returns (uint256 _balance);\r\n function ownerOf(uint256 _tokenId) public view returns (address _owner);\r\n function exists(uint256 _tokenId) public view returns (bool _exists);\r\n\r\n function approve(address _to, uint256 _tokenId) public;\r\n function getApproved(uint256 _tokenId)\r\n public view returns (address _operator);\r\n\r\n function setApprovalForAll(address _operator, bool _approved) public;\r\n function isApprovedForAll(address _owner, address _operator)\r\n public view returns (bool);\r\n\r\n function transferFrom(address _from, address _to, uint256 _tokenId) public;\r\n function safeTransferFrom(address _from, address _to, uint256 _tokenId)\r\n public;\r\n\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public;\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic implementation\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721BasicToken is SupportsInterfaceWithLookup, ERC721Basic {\r\n\r\n bytes4 private constant InterfaceId_ERC721 = 0x80ac58cd;\r\n /*\r\n * 0x80ac58cd ===\r\n * bytes4(keccak256('balanceOf(address)')) ^\r\n * bytes4(keccak256('ownerOf(uint256)')) ^\r\n * bytes4(keccak256('approve(address,uint256)')) ^\r\n * bytes4(keccak256('getApproved(uint256)')) ^\r\n * bytes4(keccak256('setApprovalForAll(address,bool)')) ^\r\n * bytes4(keccak256('isApprovedForAll(address,address)')) ^\r\n * bytes4(keccak256('transferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)'))\r\n */\r\n\r\n bytes4 private constant InterfaceId_ERC721Exists = 0x4f558e79;\r\n /*\r\n * 0x4f558e79 ===\r\n * bytes4(keccak256('exists(uint256)'))\r\n */\r\n\r\n using SafeMath for uint256;\r\n using AddressUtils for address;\r\n\r\n // Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n // which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n bytes4 private constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n // Mapping from token ID to owner\r\n mapping (uint256 => address) internal tokenOwner;\r\n\r\n // Mapping from token ID to approved address\r\n mapping (uint256 => address) internal tokenApprovals;\r\n\r\n // Mapping from owner to number of owned token\r\n mapping (address => uint256) internal ownedTokensCount;\r\n\r\n // Mapping from owner to operator approvals\r\n mapping (address => mapping (address => bool)) internal operatorApprovals;\r\n\r\n\r\n uint public testint;\r\n /**\r\n * @dev Guarantees msg.sender is owner of the given token\r\n * @param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r\n */\r\n modifier onlyOwnerOf(uint256 _tokenId) {\r\n require(ownerOf(_tokenId) == msg.sender);\r\n _;\r\n }\r\n\r\n /**\r\n * @dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n * @param _tokenId uint256 ID of the token to validate\r\n */\r\n modifier canTransfer(uint256 _tokenId) {\r\n require(isApprovedOrOwner(msg.sender, _tokenId));\r\n _;\r\n }\r\n\r\n constructor()\r\n public\r\n {\r\n // register the supported interfaces to conform to ERC721 via ERC165\r\n _registerInterface(InterfaceId_ERC721);\r\n _registerInterface(InterfaceId_ERC721Exists);\r\n }\r\n\r\n /**\r\n * @dev Gets the balance of the specified address\r\n * @param _owner address to query the balance of\r\n * @return uint256 representing the amount owned by the passed address\r\n */\r\n function balanceOf(address _owner) public view returns (uint256) {\r\n require(_owner != address(0));\r\n return ownedTokensCount[_owner];\r\n }\r\n\r\n /**\r\n * @dev Gets the owner of the specified token ID\r\n * @param _tokenId uint256 ID of the token to query the owner of\r\n * @return owner address currently marked as the owner of the given token ID\r\n */\r\n function ownerOf(uint256 _tokenId) public view returns (address) {\r\n address owner = tokenOwner[_tokenId];\r\n require(owner != address(0));\r\n return owner;\r\n }\r\n\r\n /**\r\n * @dev Returns whether the specified token exists\r\n * @param _tokenId uint256 ID of the token to query the existence of\r\n * @return whether the token exists\r\n */\r\n function exists(uint256 _tokenId) public view returns (bool) {\r\n address owner = tokenOwner[_tokenId];\r\n return owner != address(0);\r\n }\r\n\r\n /**\r\n * @dev Approves another address to transfer the given token ID\r\n * The zero address indicates there is no approved address.\r\n * There can only be one approved address per token at a given time.\r\n * Can only be called by the token owner or an approved operator.\r\n * @param _to address to be approved for the given token ID\r\n * @param _tokenId uint256 ID of the token to be approved\r\n */\r\n function approve(address _to, uint256 _tokenId) public {\r\n address owner = ownerOf(_tokenId);\r\n require(_to != owner);\r\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender));\r\n\r\n tokenApprovals[_tokenId] = _to;\r\n emit Approval(owner, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Gets the approved address for a token ID, or zero if no address set\r\n * @param _tokenId uint256 ID of the token to query the approval of\r\n * @return address currently approved for the given token ID\r\n */\r\n function getApproved(uint256 _tokenId) public view returns (address) {\r\n return tokenApprovals[_tokenId];\r\n }\r\n\r\n /**\r\n * @dev Sets or unsets the approval of a given operator\r\n * An operator is allowed to transfer all tokens of the sender on their behalf\r\n * @param _to operator address to set the approval\r\n * @param _approved representing the status of the approval to be set\r\n */\r\n function setApprovalForAll(address _to, bool _approved) public {\r\n require(_to != msg.sender);\r\n operatorApprovals[msg.sender][_to] = _approved;\r\n emit ApprovalForAll(msg.sender, _to, _approved);\r\n }\r\n\r\n /**\r\n * @dev Tells whether an operator is approved by a given owner\r\n * @param _owner owner address which you want to query the approval of\r\n * @param _operator operator address which you want to query the approval of\r\n * @return bool whether the given operator is approved by the given owner\r\n */\r\n function isApprovedForAll(\r\n address _owner,\r\n address _operator\r\n )\r\n public\r\n view\r\n returns (bool)\r\n {\r\n return operatorApprovals[_owner][_operator];\r\n }\r\n\r\n /**\r\n * @dev Transfers the ownership of a given token ID to another address\r\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function transferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n require(_from != address(0));\r\n require(_to != address(0));\r\n\r\n clearApproval(_from, _tokenId);\r\n removeTokenFrom(_from, _tokenId);\r\n addTokenTo(_to, _tokenId);\r\n\r\n emit Transfer(_from, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n *\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n // solium-disable-next-line arg-overflow\r\n safeTransferFrom(_from, _to, _tokenId, \"\");\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes data to send along with a safe transfer check\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n transferFrom(_from, _to, _tokenId);\r\n // solium-disable-next-line arg-overflow\r\n require(checkAndCallSafeTransfer(_from, _to, _tokenId, _data));\r\n }\r\n\r\n /**\r\n * @dev Returns whether the given spender can transfer a given token ID\r\n * @param _spender address of the spender to query\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @return bool whether the msg.sender is approved for the given token ID,\r\n * is an operator of the owner, or is the owner of the token\r\n */\r\n function isApprovedOrOwner(\r\n address _spender,\r\n uint256 _tokenId\r\n )\r\n internal\r\n view\r\n returns (bool)\r\n {\r\n address owner = ownerOf(_tokenId);\r\n // Disable solium check because of\r\n // https://github.com/duaraghav8/Solium/issues/175\r\n // solium-disable-next-line operator-whitespace\r\n return (\r\n _spender == owner ||\r\n getApproved(_tokenId) == _spender ||\r\n isApprovedForAll(owner, _spender)\r\n );\r\n }\r\n\r\n /**\r\n * @dev Internal function to mint a new token\r\n * Reverts if the given token ID already exists\r\n * @param _to The address that will own the minted token\r\n * @param _tokenId uint256 ID of the token to be minted by the msg.sender\r\n */\r\n function _mint(address _to, uint256 _tokenId) internal {\r\n require(_to != address(0));\r\n addTokenTo(_to, _tokenId);\r\n emit Transfer(address(0), _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to burn a specific token\r\n * Reverts if the token does not exist\r\n * @param _tokenId uint256 ID of the token being burned by the msg.sender\r\n */\r\n function _burn(address _owner, uint256 _tokenId) internal {\r\n clearApproval(_owner, _tokenId);\r\n removeTokenFrom(_owner, _tokenId);\r\n emit Transfer(_owner, address(0), _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to clear current approval of a given token ID\r\n * Reverts if the given address is not indeed the owner of the token\r\n * @param _owner owner of the token\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function clearApproval(address _owner, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _owner);\r\n if (tokenApprovals[_tokenId] != address(0)) {\r\n tokenApprovals[_tokenId] = address(0);\r\n }\r\n }\r\n\r\n /**\r\n * @dev Internal function to add a token ID to the list of a given address\r\n * @param _to address representing the new owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r\n */\r\n function addTokenTo(address _to, uint256 _tokenId) internal {\r\n require(tokenOwner[_tokenId] == address(0));\r\n tokenOwner[_tokenId] = _to;\r\n ownedTokensCount[_to] = ownedTokensCount[_to].add(1);\r\n }\r\n\r\n /**\r\n * @dev Internal function to remove a token ID from the list of a given address\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r\n */\r\n function removeTokenFrom(address _from, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _from);\r\n ownedTokensCount[_from] = ownedTokensCount[_from].sub(1);\r\n tokenOwner[_tokenId] = address(0);\r\n }\r\n\r\n /**\r\n * @dev Internal function to invoke `onERC721Received` on a target address\r\n * The call is not executed if the target address is not a contract\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _to target address that will receive the tokens\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes optional data to send along with the call\r\n * @return whether the call correctly returned the expected magic value\r\n */\r\n function checkAndCallSafeTransfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n internal\r\n returns (bool)\r\n {\r\n if (!_to.isContract()) {\r\n return true;\r\n }\r\n bytes4 retval = ERC721Receiver(_to).onERC721Received(\r\n _from, _tokenId, _data);\r\n return (retval == ERC721_RECEIVED);\r\n }\r\n}\r\n\r\ncontract ERC721BasicTokenMock is ERC721BasicToken {\r\n function mint(address _to, uint256 _tokenId) public {\r\n super._mint(_to, _tokenId);\r\n }\r\n\r\n function burn(uint256 _tokenId) public {\r\n super._burn(ownerOf(_tokenId), _tokenId);\r\n }\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\inherited\\ERC721Basic.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", - "exportedSymbols": { - "AddressUtils": [ - 5009 - ], - "ERC165": [ - 5017 - ], - "ERC721Basic": [ - 5187 - ], - "ERC721BasicToken": [ - 5764 - ], - "ERC721BasicTokenMock": [ - 5797 - ], - "ERC721Receiver": [ - 5080 - ], - "SupportsInterfaceWithLookup": [ - 5065 - ] - }, - "id": 5798, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4991, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:8" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "../../dao/oz/SafeMath.sol", - "id": 4992, - "nodeType": "ImportDirective", - "scope": 5798, - "sourceUnit": 9858, - "src": "34:35:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "Utility library of inline functions on addresses\r", - "fullyImplemented": true, - "id": 5009, - "linearizedBaseContracts": [ - 5009 - ], - "name": "AddressUtils", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5007, - "nodeType": "Block", - "src": "2012:524:8", - "statements": [ - { - "assignments": [ - 5000 - ], - "declarations": [ - { - "constant": false, - "id": 5000, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 5007, - "src": "2019:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4999, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2019:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5001, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2019:12:8" - }, - { - "externalReferences": [ - { - "size": { - "declaration": 5000, - "isOffset": false, - "isSlot": false, - "src": "2482:4:8", - "valueSize": 1 - } - }, - { - "addr": { - "declaration": 4994, - "isOffset": false, - "isSlot": false, - "src": "2502:4:8", - "valueSize": 1 - } - } - ], - "id": 5002, - "nodeType": "InlineAssembly", - "operations": "{ size := extcodesize(addr) }", - "src": "2471:38:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5003, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5000, - "src": "2522:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5004, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2529:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2522:8:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4998, - "id": 5006, - "nodeType": "Return", - "src": "2515:15:8" - } - ] - }, - "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", - "id": 5008, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4994, - "name": "addr", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "1969:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1969:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1968:14:8" - }, - "returnParameters": { - "id": 4998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4997, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "2006:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4996, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2006:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2005:6:8" - }, - "scope": 5009, - "src": "1949:587:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "1590:951:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", - "fullyImplemented": false, - "id": 5017, - "linearizedBaseContracts": [ - 5017 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", - "id": 5016, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5012, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5011, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "2950:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5010, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "2950:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2949:21:8" - }, - "returnParameters": { - "id": 5015, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5014, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "3009:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5013, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3009:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3008:6:8" - }, - "scope": 5017, - "src": "2923:92:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 5798, - "src": "2643:375:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5018, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "3196:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5019, - "nodeType": "InheritanceSpecifier", - "src": "3196:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", - "fullyImplemented": true, - "id": 5065, - "linearizedBaseContracts": [ - 5065, - 5017 - ], - "name": "SupportsInterfaceWithLookup", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5022, - "name": "InterfaceId_ERC165", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3208:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5020, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3208:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 5021, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3252:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 5026, - "name": "supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3443:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 5025, - "keyType": { - "id": 5023, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3451:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "3443:23:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 5024, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3461:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 5033, - "nodeType": "Block", - "src": "3638:51:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5030, - "name": "InterfaceId_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5022, - "src": "3664:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5029, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "3645:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3645:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5032, - "nodeType": "ExpressionStatement", - "src": "3645:38:8" - } - ] - }, - "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", - "id": 5034, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5027, - "nodeType": "ParameterList", - "parameters": [], - "src": "3620:2:8" - }, - "returnParameters": { - "id": 5028, - "nodeType": "ParameterList", - "parameters": [], - "src": "3638:0:8" - }, - "scope": 5065, - "src": "3609:80:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5045, - "nodeType": "Block", - "src": "3872:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5041, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "3886:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5043, - "indexExpression": { - "argumentTypes": null, - "id": 5042, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5036, - "src": "3906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3886:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5040, - "id": 5044, - "nodeType": "Return", - "src": "3879:40:8" - } - ] - }, - "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", - "id": 5046, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5037, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5036, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3804:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5035, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3804:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3803:21:8" - }, - "returnParameters": { - "id": 5040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5039, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3863:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5038, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3863:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3862:6:8" - }, - "scope": 5065, - "src": "3777:148:8", - "stateMutability": "view", - "superFunction": 5016, - "visibility": "external" - }, - { - "body": { - "id": 5063, - "nodeType": "Block", - "src": "4066:95:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5052, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4081:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 5053, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4097:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "4081:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5051, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4073:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4073:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5056, - "nodeType": "ExpressionStatement", - "src": "4073:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5057, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "4115:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5059, - "indexExpression": { - "argumentTypes": null, - "id": 5058, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4135:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4115:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4151:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4115:40:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5062, - "nodeType": "ExpressionStatement", - "src": "4115:40:8" - } - ] - }, - "documentation": "@dev private method for registering an interface\r", - "id": 5064, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5049, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5048, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5064, - "src": "4028:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5047, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4028:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4027:21:8" - }, - "returnParameters": { - "id": 5050, - "nodeType": "ParameterList", - "parameters": [], - "src": "4066:0:8" - }, - "scope": 5065, - "src": "4000:161:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "3156:1008:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", - "fullyImplemented": false, - "id": 5080, - "linearizedBaseContracts": [ - 5080 - ], - "name": "ERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5068, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5080, - "src": "4607:53:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5066, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4607:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4650:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "internal" - }, - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", - "id": 5079, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5070, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5364:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5069, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5364:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5072, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5384:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5071, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5384:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5074, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5407:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5073, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5407:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5357:73:8" - }, - "returnParameters": { - "id": 5078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5077, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5456:6:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5076, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "5456:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5455:8:8" - }, - "scope": 5080, - "src": "5332:132:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "4326:1141:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5081, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "5641:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5082, - "nodeType": "InheritanceSpecifier", - "src": "5641:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": false, - "id": 5187, - "linearizedBaseContracts": [ - 5187, - 5017 - ], - "name": "ERC721Basic", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 5090, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 5089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5084, - "indexed": false, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5674:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5083, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5674:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5086, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5695:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5085, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5695:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5088, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5714:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5087, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5714:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5667:69:8" - }, - "src": "5653:84:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5098, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 5097, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5092, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5762:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5091, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5762:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5094, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5784:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5784:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5096, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5809:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5095, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5809:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5755:76:8" - }, - "src": "5741:91:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5106, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 5105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5100, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5863:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5099, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5863:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5102, - "indexed": false, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5885:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5101, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5885:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5104, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5910:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5103, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5910:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5856:73:8" - }, - "src": "5836:94:8" - }, - { - "body": null, - "documentation": null, - "id": 5113, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5109, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5108, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5955:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5107, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5955:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5954:16:8" - }, - "returnParameters": { - "id": 5112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5111, - "name": "_balance", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5992:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5110, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5992:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5991:18:8" - }, - "scope": 5187, - "src": "5936:74:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5120, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5116, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5115, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6031:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5114, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6030:18:8" - }, - "returnParameters": { - "id": 5119, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5118, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6070:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5117, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6070:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6069:16:8" - }, - "scope": 5187, - "src": "6014:72:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5127, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5123, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5122, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6106:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5121, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6106:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6105:18:8" - }, - "returnParameters": { - "id": 5126, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5125, - "name": "_exists", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6145:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5124, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6145:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6144:14:8" - }, - "scope": 5187, - "src": "6090:69:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5134, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5132, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5129, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6182:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6182:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5131, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6195:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6195:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6181:31:8" - }, - "returnParameters": { - "id": 5133, - "nodeType": "ParameterList", - "parameters": [], - "src": "6219:0:8" - }, - "scope": 5187, - "src": "6165:55:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5141, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5136, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6245:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5135, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6245:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6244:18:8" - }, - "returnParameters": { - "id": 5140, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5139, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6289:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5138, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6289:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6288:19:8" - }, - "scope": 5187, - "src": "6224:84:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5148, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5143, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6341:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6341:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5145, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6360:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5144, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6360:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6340:35:8" - }, - "returnParameters": { - "id": 5147, - "nodeType": "ParameterList", - "parameters": [], - "src": "6382:0:8" - }, - "scope": 5187, - "src": "6314:69:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5157, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5150, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6413:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5149, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6413:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5152, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6429:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5151, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6429:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6412:35:8" - }, - "returnParameters": { - "id": 5156, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5155, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6474:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5154, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6474:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6473:6:8" - }, - "scope": 5187, - "src": "6387:93:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5166, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5159, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6508:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5158, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6508:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5161, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6523:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5160, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6523:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5163, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6536:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5162, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6536:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6507:46:8" - }, - "returnParameters": { - "id": 5165, - "nodeType": "ParameterList", - "parameters": [], - "src": "6560:0:8" - }, - "scope": 5187, - "src": "6486:75:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5175, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5168, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6591:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5167, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6591:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5170, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6606:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5169, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6606:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5172, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6619:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6619:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6590:46:8" - }, - "returnParameters": { - "id": 5174, - "nodeType": "ParameterList", - "parameters": [], - "src": "6648:0:8" - }, - "scope": 5187, - "src": "6565:84:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5186, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5177, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6687:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5176, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6687:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5179, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6707:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5178, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6707:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5181, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6725:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5180, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6725:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5183, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6748:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5182, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6748:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6680:91:8" - }, - "returnParameters": { - "id": 5185, - "nodeType": "ParameterList", - "parameters": [], - "src": "6783:0:8" - }, - "scope": 5187, - "src": "6655:129:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "5617:1170:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5188, - "name": "SupportsInterfaceWithLookup", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5065, - "src": "6971:27:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", - "typeString": "contract SupportsInterfaceWithLookup" - } - }, - "id": 5189, - "nodeType": "InheritanceSpecifier", - "src": "6971:27:8" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5190, - "name": "ERC721Basic", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5187, - "src": "7000:11:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Basic_$5187", - "typeString": "contract ERC721Basic" - } - }, - "id": 5191, - "nodeType": "InheritanceSpecifier", - "src": "7000:11:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": true, - "id": 5764, - "linearizedBaseContracts": [ - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5194, - "name": "InterfaceId_ERC721", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7019:55:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5192, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7019:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 5193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7064:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 5197, - "name": "InterfaceId_ERC721Exists", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7668:61:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5195, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7668:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783466353538653739", - "id": 5196, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7719:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1331007097_by_1", - "typeString": "int_const 1331007097" - }, - "value": "0x4f558e79" - }, - "visibility": "private" - }, - { - "id": 5200, - "libraryName": { - "contractScope": null, - "id": 5198, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "7821:8:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "7815:27:8", - "typeName": { - "id": 5199, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7834:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 5203, - "libraryName": { - "contractScope": null, - "id": 5201, - "name": "AddressUtils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5009, - "src": "7852:12:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUtils_$5009", - "typeString": "library AddressUtils" - } - }, - "nodeType": "UsingForDirective", - "src": "7846:31:8", - "typeName": { - "id": 5202, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7869:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "constant": true, - "id": 5206, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8044:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5204, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8044:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5205, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8086:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 5210, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8140:48:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5209, - "keyType": { - "id": 5207, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8149:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8140:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5208, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8160:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5214, - "name": "tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8243:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5213, - "keyType": { - "id": 5211, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8252:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8243:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5212, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8263:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5218, - "name": "ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8352:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 5217, - "keyType": { - "id": 5215, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8361:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8352:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 5216, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8372:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5224, - "name": "operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8460:73:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "typeName": { - "id": 5223, - "keyType": { - "id": 5219, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8469:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8460:46:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 5222, - "keyType": { - "id": 5220, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8489:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8480:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 5221, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8500:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5226, - "name": "testint", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8542:19:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5225, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 5240, - "nodeType": "Block", - "src": "8774:61:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5232, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5228, - "src": "8797:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5231, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "8789:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8789:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5234, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "8810:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8810:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "8789:31:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5230, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "8781:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8781:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5238, - "nodeType": "ExpressionStatement", - "src": "8781:40:8" - }, - { - "id": 5239, - "nodeType": "PlaceholderStatement", - "src": "8828:1:8" - } - ] - }, - "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", - "id": 5241, - "name": "onlyOwnerOf", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5228, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5241, - "src": "8756:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8756:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8755:18:8" - }, - "src": "8735:100:8", - "visibility": "internal" - }, - { - "body": { - "id": 5254, - "nodeType": "Block", - "src": "9041:69:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5247, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "9074:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9074:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5249, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5243, - "src": "9086:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5246, - "name": "isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5567, - "src": "9056:17:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 5250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9056:39:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5245, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9048:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9048:48:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5252, - "nodeType": "ExpressionStatement", - "src": "9048:48:8" - }, - { - "id": 5253, - "nodeType": "PlaceholderStatement", - "src": "9103:1:8" - } - ] - }, - "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", - "id": 5255, - "name": "canTransfer", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5244, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5243, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5255, - "src": "9023:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5242, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9022:18:8" - }, - "src": "9002:108:8", - "visibility": "internal" - }, - { - "body": { - "id": 5266, - "nodeType": "Block", - "src": "9145:176:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5259, - "name": "InterfaceId_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5194, - "src": "9245:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5258, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9226:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9226:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5261, - "nodeType": "ExpressionStatement", - "src": "9226:38:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5263, - "name": "InterfaceId_ERC721Exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5197, - "src": "9290:24:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5262, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9271:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9271:44:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5265, - "nodeType": "ExpressionStatement", - "src": "9271:44:8" - } - ] - }, - "documentation": null, - "id": 5267, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5256, - "nodeType": "ParameterList", - "parameters": [], - "src": "9127:2:8" - }, - "returnParameters": { - "id": 5257, - "nodeType": "ParameterList", - "parameters": [], - "src": "9145:0:8" - }, - "scope": 5764, - "src": "9116:205:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5286, - "nodeType": "Block", - "src": "9585:80:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5275, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9600:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5277, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9618:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5276, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9610:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9610:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "9600:20:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5274, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9592:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9592:29:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5281, - "nodeType": "ExpressionStatement", - "src": "9592:29:8" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5282, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "9635:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5284, - "indexExpression": { - "argumentTypes": null, - "id": 5283, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9652:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9635:24:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5273, - "id": 5285, - "nodeType": "Return", - "src": "9628:31:8" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", - "id": 5287, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5270, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5269, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9539:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5268, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9539:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9538:16:8" - }, - "returnParameters": { - "id": 5273, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5272, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9576:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9576:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9575:9:8" - }, - "scope": 5764, - "src": "9520:145:8", - "stateMutability": "view", - "superFunction": 5113, - "visibility": "public" - }, - { - "body": { - "id": 5310, - "nodeType": "Block", - "src": "9950:103:8", - "statements": [ - { - "assignments": [ - 5295 - ], - "declarations": [ - { - "constant": false, - "id": 5295, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5310, - "src": "9957:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5294, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9957:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5299, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5296, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "9973:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5298, - "indexExpression": { - "argumentTypes": null, - "id": 5297, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5289, - "src": "9984:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9973:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9957:36:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5301, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10008:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10025:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10017:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5304, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10017:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10008:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5300, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10000:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5307, - "nodeType": "ExpressionStatement", - "src": "10000:28:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5308, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10042:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5293, - "id": 5309, - "nodeType": "Return", - "src": "10035:12:8" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", - "id": 5311, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5289, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9902:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5288, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9902:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9901:18:8" - }, - "returnParameters": { - "id": 5293, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5292, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9941:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5291, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9941:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9940:9:8" - }, - "scope": 5764, - "src": "9885:168:8", - "stateMutability": "view", - "superFunction": 5120, - "visibility": "public" - }, - { - "body": { - "id": 5330, - "nodeType": "Block", - "src": "10299:82:8", - "statements": [ - { - "assignments": [ - 5319 - ], - "declarations": [ - { - "constant": false, - "id": 5319, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5330, - "src": "10306:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5318, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10306:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5323, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5320, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "10322:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5322, - "indexExpression": { - "argumentTypes": null, - "id": 5321, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5313, - "src": "10333:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10322:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10306:36:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5324, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5319, - "src": "10356:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5326, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10373:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5325, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10365:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10365:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10356:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5317, - "id": 5329, - "nodeType": "Return", - "src": "10349:26:8" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", - "id": 5331, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5313, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10254:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5312, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10254:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10253:18:8" - }, - "returnParameters": { - "id": 5317, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5316, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10293:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5315, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10293:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10292:6:8" - }, - "scope": 5764, - "src": "10238:143:8", - "stateMutability": "view", - "superFunction": 5127, - "visibility": "public" - }, - { - "body": { - "id": 5375, - "nodeType": "Block", - "src": "10851:229:8", - "statements": [ - { - "assignments": [ - 5339 - ], - "declarations": [ - { - "constant": false, - "id": 5339, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5375, - "src": "10858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5338, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5343, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5341, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "10882:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5340, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "10874:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10874:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10858:33:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5345, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "10906:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 5346, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10913:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5344, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10898:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10898:21:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5349, - "nodeType": "ExpressionStatement", - "src": "10898:21:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5351, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10934:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10934:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5353, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10948:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10934:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5356, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10974:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5357, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10981:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10981:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 5355, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "10957:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10957:35:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "10934:58:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5350, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10926:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10926:67:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5362, - "nodeType": "ExpressionStatement", - "src": "10926:67:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5363, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11002:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5365, - "indexExpression": { - "argumentTypes": null, - "id": 5364, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11017:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11002:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5366, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11029:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "11002:30:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5368, - "nodeType": "ExpressionStatement", - "src": "11002:30:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5370, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "11053:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5371, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11060:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5372, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11065:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5369, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5098, - "src": "11044:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11044:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5374, - "nodeType": "EmitStatement", - "src": "11039:35:8" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", - "id": 5376, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5336, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5333, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10813:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10813:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5335, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10826:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5334, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10826:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10812:31:8" - }, - "returnParameters": { - "id": 5337, - "nodeType": "ParameterList", - "parameters": [], - "src": "10851:0:8" - }, - "scope": 5764, - "src": "10796:284:8", - "stateMutability": "nonpayable", - "superFunction": 5134, - "visibility": "public" - }, - { - "body": { - "id": 5387, - "nodeType": "Block", - "src": "11383:44:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5383, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11397:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5385, - "indexExpression": { - "argumentTypes": null, - "id": 5384, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5378, - "src": "11412:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11397:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5382, - "id": 5386, - "nodeType": "Return", - "src": "11390:31:8" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", - "id": 5388, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5378, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11335:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5377, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11335:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11334:18:8" - }, - "returnParameters": { - "id": 5382, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5381, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11374:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5380, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11374:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11373:9:8" - }, - "scope": 5764, - "src": "11314:113:8", - "stateMutability": "view", - "superFunction": 5141, - "visibility": "public" - }, - { - "body": { - "id": 5418, - "nodeType": "Block", - "src": "11778:146:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5396, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11793:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5397, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11800:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11800:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "11793:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5395, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "11785:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11785:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5401, - "nodeType": "ExpressionStatement", - "src": "11785:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5402, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "11818:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5406, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5403, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11836:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11836:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11818:29:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5407, - "indexExpression": { - "argumentTypes": null, - "id": 5405, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11848:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11818:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5408, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11855:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11818:46:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5410, - "nodeType": "ExpressionStatement", - "src": "11818:46:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5412, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11891:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11891:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5414, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11903:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5415, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11908:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5411, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5106, - "src": "11876:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 5416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11876:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5417, - "nodeType": "EmitStatement", - "src": "11871:47:8" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", - "id": 5419, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5390, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11742:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5389, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11742:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5392, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11755:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5391, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11755:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11741:29:8" - }, - "returnParameters": { - "id": 5394, - "nodeType": "ParameterList", - "parameters": [], - "src": "11778:0:8" - }, - "scope": 5764, - "src": "11715:209:8", - "stateMutability": "nonpayable", - "superFunction": 5148, - "visibility": "public" - }, - { - "body": { - "id": 5434, - "nodeType": "Block", - "src": "12362:56:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5428, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "12376:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5430, - "indexExpression": { - "argumentTypes": null, - "id": 5429, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5421, - "src": "12394:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5432, - "indexExpression": { - "argumentTypes": null, - "id": 5431, - "name": "_operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5423, - "src": "12402:9:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:36:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5427, - "id": 5433, - "nodeType": "Return", - "src": "12369:43:8" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", - "id": 5435, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5424, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5421, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12273:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5420, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12273:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5423, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12294:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5422, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12294:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12266:50:8" - }, - "returnParameters": { - "id": 5427, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5426, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12353:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5425, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12353:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12352:6:8" - }, - "scope": 5764, - "src": "12241:177:8", - "stateMutability": "view", - "superFunction": 5157, - "visibility": "public" - }, - { - "body": { - "id": 5484, - "nodeType": "Block", - "src": "12976:228:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5448, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "12991:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5450, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13008:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5449, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13000:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "12991:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5447, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "12983:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12983:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5454, - "nodeType": "ExpressionStatement", - "src": "12983:28:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5456, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13026:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13041:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5457, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13033:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5459, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13033:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "13026:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5455, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "13018:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13018:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5462, - "nodeType": "ExpressionStatement", - "src": "13018:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5464, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13067:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5465, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13074:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5463, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "13053:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13053:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5467, - "nodeType": "ExpressionStatement", - "src": "13053:30:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5469, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13106:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5470, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13113:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5468, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "13090:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13090:32:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5472, - "nodeType": "ExpressionStatement", - "src": "13090:32:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5474, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13140:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5475, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13145:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5473, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "13129:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13129:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5477, - "nodeType": "ExpressionStatement", - "src": "13129:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5479, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13177:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5480, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13184:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5481, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13189:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5478, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "13168:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13168:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5483, - "nodeType": "EmitStatement", - "src": "13163:35:8" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5485, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5444, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "12963:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5445, - "modifierName": { - "argumentTypes": null, - "id": 5443, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "12951:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12951:21:8" - } - ], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5442, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5437, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12874:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5436, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12874:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5439, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12894:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5438, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12894:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5441, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12912:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5440, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12912:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12867:66:8" - }, - "returnParameters": { - "id": 5446, - "nodeType": "ParameterList", - "parameters": [], - "src": "12976:0:8" - }, - "scope": 5764, - "src": "12846:358:8", - "stateMutability": "nonpayable", - "superFunction": 5166, - "visibility": "public" - }, - { - "body": { - "id": 5504, - "nodeType": "Block", - "src": "13960:101:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5498, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5487, - "src": "14030:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5499, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5489, - "src": "14037:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5500, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "14042:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 5501, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14052:2:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 5497, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5505, - 5535 - ], - "referencedDeclaration": 5535, - "src": "14013:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,uint256,bytes memory)" - } - }, - "id": 5502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14013:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5503, - "nodeType": "ExpressionStatement", - "src": "14013:42:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5505, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5494, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "13947:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5495, - "modifierName": { - "argumentTypes": null, - "id": 5493, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "13935:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13935:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5492, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5487, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5486, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5489, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13878:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5488, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13878:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5491, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13896:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5490, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13896:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13851:66:8" - }, - "returnParameters": { - "id": 5496, - "nodeType": "ParameterList", - "parameters": [], - "src": "13960:0:8" - }, - "scope": 5764, - "src": "13826:235:8", - "stateMutability": "nonpayable", - "superFunction": 5175, - "visibility": "public" - }, - { - "body": { - "id": 5534, - "nodeType": "Block", - "src": "14908:162:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5520, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "14928:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5521, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "14935:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5522, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14940:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5519, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5485 - ], - "referencedDeclaration": 5485, - "src": "14915:12:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14915:34:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5524, - "nodeType": "ExpressionStatement", - "src": "14915:34:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5527, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "15035:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5528, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "15042:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5529, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "15047:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5530, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5513, - "src": "15057:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 5526, - "name": "checkAndCallSafeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5763, - "src": "15010:24:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,address,uint256,bytes memory) returns (bool)" - } - }, - "id": 5531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15010:53:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5525, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "15002:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15002:62:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5533, - "nodeType": "ExpressionStatement", - "src": "15002:62:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", - "id": 5535, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5516, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14895:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5517, - "modifierName": { - "argumentTypes": null, - "id": 5515, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "14883:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14883:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5514, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5507, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14781:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5506, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14781:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5509, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14801:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5508, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14801:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5511, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14819:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5510, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14819:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5513, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14842:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5512, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14842:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14774:91:8" - }, - "returnParameters": { - "id": 5518, - "nodeType": "ParameterList", - "parameters": [], - "src": "14908:0:8" - }, - "scope": 5764, - "src": "14749:321:8", - "stateMutability": "nonpayable", - "superFunction": 5186, - "visibility": "public" - }, - { - "body": { - "id": 5566, - "nodeType": "Block", - "src": "15551:330:8", - "statements": [ - { - "assignments": [ - 5545 - ], - "declarations": [ - { - "constant": false, - "id": 5545, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5566, - "src": "15558:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5544, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15558:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5549, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5547, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15582:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5546, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "15574:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15574:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15558:33:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5550, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15763:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5551, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15775:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15763:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5554, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15803:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5553, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5388 - ], - "referencedDeclaration": 5388, - "src": "15791:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15791:21:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5556, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15816:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15791:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:61:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5560, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15852:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5561, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15859:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5559, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "15835:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15835:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:105:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5564, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "15754:121:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5543, - "id": 5565, - "nodeType": "Return", - "src": "15747:128:8" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", - "id": 5567, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5540, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5537, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15459:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5536, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15459:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5539, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15482:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5538, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15482:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15452:51:8" - }, - "returnParameters": { - "id": 5543, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5542, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15542:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5541, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "15542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15541:6:8" - }, - "scope": 5764, - "src": "15426:455:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5595, - "nodeType": "Block", - "src": "16193:118:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5575, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16208:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16223:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16215:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5578, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16215:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16208:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5574, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "16200:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16200:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5581, - "nodeType": "ExpressionStatement", - "src": "16200:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5583, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16244:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5584, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16249:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5582, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "16233:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16233:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5586, - "nodeType": "ExpressionStatement", - "src": "16233:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16287:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5588, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16279:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5590, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16279:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5591, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16291:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5592, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16296:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5587, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16270:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16270:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5594, - "nodeType": "EmitStatement", - "src": "16265:40:8" - } - ] - }, - "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", - "id": 5596, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5572, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5569, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16153:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5568, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16153:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5571, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16166:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5570, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16166:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16152:31:8" - }, - "returnParameters": { - "id": 5573, - "nodeType": "ParameterList", - "parameters": [], - "src": "16193:0:8" - }, - "scope": 5764, - "src": "16138:173:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5621, - "nodeType": "Block", - "src": "16562:134:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5604, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16583:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5605, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16591:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5603, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "16569:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16569:31:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5607, - "nodeType": "ExpressionStatement", - "src": "16569:31:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5609, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16623:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5610, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16631:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5608, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "16607:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16607:33:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5612, - "nodeType": "ExpressionStatement", - "src": "16607:33:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5614, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16661:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16677:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5615, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16669:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5617, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16669:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5618, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16681:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5613, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16652:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16652:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5620, - "nodeType": "EmitStatement", - "src": "16647:43:8" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", - "id": 5622, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5598, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16519:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16519:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5600, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16535:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16535:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16518:34:8" - }, - "returnParameters": { - "id": 5602, - "nodeType": "ParameterList", - "parameters": [], - "src": "16562:0:8" - }, - "scope": 5764, - "src": "16504:192:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5654, - "nodeType": "Block", - "src": "17032:153:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5631, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17055:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5630, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "17047:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17047:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5633, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5624, - "src": "17068:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17047:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5629, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17039:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17039:36:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5636, - "nodeType": "ExpressionStatement", - "src": "17039:36:8" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5637, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17086:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5639, - "indexExpression": { - "argumentTypes": null, - "id": 5638, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17101:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17086:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17122:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17114:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17114:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17086:38:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5653, - "nodeType": "IfStatement", - "src": "17082:98:8", - "trueBody": { - "id": 5652, - "nodeType": "Block", - "src": "17126:54:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5644, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17135:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5646, - "indexExpression": { - "argumentTypes": null, - "id": 5645, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17150:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17135:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17170:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5647, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17162:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5649, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17162:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17135:37:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5651, - "nodeType": "ExpressionStatement", - "src": "17135:37:8" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5655, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5627, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5624, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "16989:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5623, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16989:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5626, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "17005:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5625, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17005:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16988:34:8" - }, - "returnParameters": { - "id": 5628, - "nodeType": "ParameterList", - "parameters": [], - "src": "17032:0:8" - }, - "scope": 5764, - "src": "16966:219:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5689, - "nodeType": "Block", - "src": "17515:148:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5663, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17530:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5665, - "indexExpression": { - "argumentTypes": null, - "id": 5664, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17541:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17530:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17562:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17554:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5668, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17554:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17530:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5662, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17522:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17522:43:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5671, - "nodeType": "ExpressionStatement", - "src": "17522:43:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5672, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17572:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5674, - "indexExpression": { - "argumentTypes": null, - "id": 5673, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17583:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17572:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5675, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17595:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17572:26:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5677, - "nodeType": "ExpressionStatement", - "src": "17572:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5678, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17605:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5680, - "indexExpression": { - "argumentTypes": null, - "id": 5679, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17622:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17605:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17655:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5681, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17629:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5683, - "indexExpression": { - "argumentTypes": null, - "id": 5682, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17646:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17629:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "17629:25:8", - "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": 5686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17629:28:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17605:52:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5688, - "nodeType": "ExpressionStatement", - "src": "17605:52:8" - } - ] - }, - "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", - "id": 5690, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addTokenTo", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5660, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5657, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17475:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5656, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17475:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5659, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17488:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5658, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17488:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17474:31:8" - }, - "returnParameters": { - "id": 5661, - "nodeType": "ParameterList", - "parameters": [], - "src": "17515:0:8" - }, - "scope": 5764, - "src": "17455:208:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5724, - "nodeType": "Block", - "src": "18016:151:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5702, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5699, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18039:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5698, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "18031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18031:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5701, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18052:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "18031:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5697, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "18023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18023:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5704, - "nodeType": "ExpressionStatement", - "src": "18023:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5705, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18065:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5707, - "indexExpression": { - "argumentTypes": null, - "id": 5706, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18082:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18065:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18119:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5708, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18091:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5710, - "indexExpression": { - "argumentTypes": null, - "id": 5709, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18108:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18091:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "18091:27:8", - "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": 5713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18091:30:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18065:56:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5715, - "nodeType": "ExpressionStatement", - "src": "18065:56:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5716, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "18128:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5718, - "indexExpression": { - "argumentTypes": null, - "id": 5717, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18139:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18128:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18159:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18151:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18151:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "18128:33:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5723, - "nodeType": "ExpressionStatement", - "src": "18128:33:8" - } - ] - }, - "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", - "id": 5725, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "removeTokenFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5695, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5692, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17974:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5691, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17974:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5694, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17989:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5693, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17989:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17973:33:8" - }, - "returnParameters": { - "id": 5696, - "nodeType": "ParameterList", - "parameters": [], - "src": "18016:0:8" - }, - "scope": 5764, - "src": "17949:218:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5762, - "nodeType": "Block", - "src": "18846:195:8", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 5741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "18857:17:8", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5738, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18858:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 5008, - "src": "18858:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 5740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18858:16:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5745, - "nodeType": "IfStatement", - "src": "18853:51:8", - "trueBody": { - "id": 5744, - "nodeType": "Block", - "src": "18876:28:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5742, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18892:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 5737, - "id": 5743, - "nodeType": "Return", - "src": "18885:11:8" - } - ] - } - }, - { - "assignments": [ - 5747 - ], - "declarations": [ - { - "constant": false, - "id": 5747, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 5762, - "src": "18910:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5746, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "18910:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5756, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5752, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5727, - "src": "18971:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5753, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5731, - "src": "18978:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5754, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5733, - "src": "18988:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5749, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18941:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5748, - "name": "ERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5080, - "src": "18926:14:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", - "typeString": "type(contract ERC721Receiver)" - } - }, - "id": 5750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:19:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Receiver_$5080", - "typeString": "contract ERC721Receiver" - } - }, - "id": 5751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 5079, - "src": "18926:36:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" - } - }, - "id": 5755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:68:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18910:84:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5757, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5747, - "src": "19009:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5758, - "name": "ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5206, - "src": "19019:15:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "19009:25:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5760, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19008:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5737, - "id": 5761, - "nodeType": "Return", - "src": "19001:34:8" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", - "id": 5763, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "checkAndCallSafeTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5734, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5727, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18724:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5726, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18724:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5729, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18744:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18744:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5731, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18762:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5730, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18762:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5733, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18785:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5732, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "18785:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18717:91:8" - }, - "returnParameters": { - "id": 5737, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5736, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18837:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5735, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18837:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18836:6:8" - }, - "scope": 5764, - "src": "18684:357:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "6942:12102:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5765, - "name": "ERC721BasicToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5764, - "src": "19081:16:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", - "typeString": "contract ERC721BasicToken" - } - }, - "id": 5766, - "nodeType": "InheritanceSpecifier", - "src": "19081:16:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187, - 5764 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 5797, - "linearizedBaseContracts": [ - 5797, - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicTokenMock", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5780, - "nodeType": "Block", - "src": "19155:39:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5776, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5768, - "src": "19174:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5777, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5770, - "src": "19179:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5773, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19162:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 5596, - "src": "19162:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19162:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5779, - "nodeType": "ExpressionStatement", - "src": "19162:26:8" - } - ] - }, - "documentation": null, - "id": 5781, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5771, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5768, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19117:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5767, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19117:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5770, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19130:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5769, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19130:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19116:31:8" - }, - "returnParameters": { - "id": 5772, - "nodeType": "ParameterList", - "parameters": [], - "src": "19155:0:8" - }, - "scope": 5797, - "src": "19103:91:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5795, - "nodeType": "Block", - "src": "19239:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5790, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19266:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5789, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "19258:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19258:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5792, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19277:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5786, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19246:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 5622, - "src": "19246:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19246:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5794, - "nodeType": "ExpressionStatement", - "src": "19246:40:8" - } - ] - }, - "documentation": null, - "id": 5796, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5784, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5783, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5796, - "src": "19214:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5782, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19214:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19213:18:8" - }, - "returnParameters": { - "id": 5785, - "nodeType": "ParameterList", - "parameters": [], - "src": "19239:0:8" - }, - "scope": 5797, - "src": "19200:92:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "19048:247:8" - } - ], - "src": "0:19297:8" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", - "exportedSymbols": { - "AddressUtils": [ - 5009 - ], - "ERC165": [ - 5017 - ], - "ERC721Basic": [ - 5187 - ], - "ERC721BasicToken": [ - 5764 - ], - "ERC721BasicTokenMock": [ - 5797 - ], - "ERC721Receiver": [ - 5080 - ], - "SupportsInterfaceWithLookup": [ - 5065 - ] - }, - "id": 5798, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4991, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:8" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "../../dao/oz/SafeMath.sol", - "id": 4992, - "nodeType": "ImportDirective", - "scope": 5798, - "sourceUnit": 9858, - "src": "34:35:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "Utility library of inline functions on addresses\r", - "fullyImplemented": true, - "id": 5009, - "linearizedBaseContracts": [ - 5009 - ], - "name": "AddressUtils", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5007, - "nodeType": "Block", - "src": "2012:524:8", - "statements": [ - { - "assignments": [ - 5000 - ], - "declarations": [ - { - "constant": false, - "id": 5000, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 5007, - "src": "2019:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4999, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2019:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5001, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2019:12:8" - }, - { - "externalReferences": [ - { - "size": { - "declaration": 5000, - "isOffset": false, - "isSlot": false, - "src": "2482:4:8", - "valueSize": 1 - } - }, - { - "addr": { - "declaration": 4994, - "isOffset": false, - "isSlot": false, - "src": "2502:4:8", - "valueSize": 1 - } - } - ], - "id": 5002, - "nodeType": "InlineAssembly", - "operations": "{ size := extcodesize(addr) }", - "src": "2471:38:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5003, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5000, - "src": "2522:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5004, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2529:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2522:8:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4998, - "id": 5006, - "nodeType": "Return", - "src": "2515:15:8" - } - ] - }, - "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", - "id": 5008, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4994, - "name": "addr", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "1969:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1969:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1968:14:8" - }, - "returnParameters": { - "id": 4998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4997, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "2006:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4996, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2006:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2005:6:8" - }, - "scope": 5009, - "src": "1949:587:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "1590:951:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", - "fullyImplemented": false, - "id": 5017, - "linearizedBaseContracts": [ - 5017 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", - "id": 5016, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5012, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5011, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "2950:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5010, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "2950:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2949:21:8" - }, - "returnParameters": { - "id": 5015, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5014, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "3009:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5013, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3009:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3008:6:8" - }, - "scope": 5017, - "src": "2923:92:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 5798, - "src": "2643:375:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5018, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "3196:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5019, - "nodeType": "InheritanceSpecifier", - "src": "3196:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", - "fullyImplemented": true, - "id": 5065, - "linearizedBaseContracts": [ - 5065, - 5017 - ], - "name": "SupportsInterfaceWithLookup", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5022, - "name": "InterfaceId_ERC165", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3208:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5020, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3208:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 5021, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3252:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 5026, - "name": "supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3443:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 5025, - "keyType": { - "id": 5023, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3451:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "3443:23:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 5024, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3461:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 5033, - "nodeType": "Block", - "src": "3638:51:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5030, - "name": "InterfaceId_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5022, - "src": "3664:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5029, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "3645:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3645:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5032, - "nodeType": "ExpressionStatement", - "src": "3645:38:8" - } - ] - }, - "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", - "id": 5034, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5027, - "nodeType": "ParameterList", - "parameters": [], - "src": "3620:2:8" - }, - "returnParameters": { - "id": 5028, - "nodeType": "ParameterList", - "parameters": [], - "src": "3638:0:8" - }, - "scope": 5065, - "src": "3609:80:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5045, - "nodeType": "Block", - "src": "3872:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5041, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "3886:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5043, - "indexExpression": { - "argumentTypes": null, - "id": 5042, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5036, - "src": "3906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3886:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5040, - "id": 5044, - "nodeType": "Return", - "src": "3879:40:8" - } - ] - }, - "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", - "id": 5046, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5037, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5036, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3804:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5035, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3804:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3803:21:8" - }, - "returnParameters": { - "id": 5040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5039, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3863:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5038, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3863:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3862:6:8" - }, - "scope": 5065, - "src": "3777:148:8", - "stateMutability": "view", - "superFunction": 5016, - "visibility": "external" - }, - { - "body": { - "id": 5063, - "nodeType": "Block", - "src": "4066:95:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5052, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4081:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 5053, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4097:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "4081:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5051, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4073:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4073:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5056, - "nodeType": "ExpressionStatement", - "src": "4073:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5057, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "4115:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5059, - "indexExpression": { - "argumentTypes": null, - "id": 5058, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4135:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4115:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4151:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4115:40:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5062, - "nodeType": "ExpressionStatement", - "src": "4115:40:8" - } - ] - }, - "documentation": "@dev private method for registering an interface\r", - "id": 5064, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5049, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5048, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5064, - "src": "4028:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5047, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4028:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4027:21:8" - }, - "returnParameters": { - "id": 5050, - "nodeType": "ParameterList", - "parameters": [], - "src": "4066:0:8" - }, - "scope": 5065, - "src": "4000:161:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "3156:1008:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", - "fullyImplemented": false, - "id": 5080, - "linearizedBaseContracts": [ - 5080 - ], - "name": "ERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5068, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5080, - "src": "4607:53:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5066, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4607:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4650:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "internal" - }, - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", - "id": 5079, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5070, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5364:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5069, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5364:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5072, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5384:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5071, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5384:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5074, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5407:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5073, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5407:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5357:73:8" - }, - "returnParameters": { - "id": 5078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5077, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5456:6:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5076, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "5456:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5455:8:8" - }, - "scope": 5080, - "src": "5332:132:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "4326:1141:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5081, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "5641:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5082, - "nodeType": "InheritanceSpecifier", - "src": "5641:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": false, - "id": 5187, - "linearizedBaseContracts": [ - 5187, - 5017 - ], - "name": "ERC721Basic", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 5090, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 5089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5084, - "indexed": false, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5674:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5083, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5674:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5086, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5695:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5085, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5695:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5088, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5714:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5087, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5714:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5667:69:8" - }, - "src": "5653:84:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5098, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 5097, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5092, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5762:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5091, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5762:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5094, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5784:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5784:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5096, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5809:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5095, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5809:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5755:76:8" - }, - "src": "5741:91:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5106, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 5105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5100, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5863:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5099, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5863:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5102, - "indexed": false, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5885:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5101, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5885:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5104, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5910:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5103, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5910:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5856:73:8" - }, - "src": "5836:94:8" - }, - { - "body": null, - "documentation": null, - "id": 5113, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5109, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5108, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5955:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5107, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5955:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5954:16:8" - }, - "returnParameters": { - "id": 5112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5111, - "name": "_balance", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5992:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5110, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5992:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5991:18:8" - }, - "scope": 5187, - "src": "5936:74:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5120, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5116, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5115, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6031:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5114, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6030:18:8" - }, - "returnParameters": { - "id": 5119, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5118, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6070:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5117, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6070:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6069:16:8" - }, - "scope": 5187, - "src": "6014:72:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5127, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5123, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5122, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6106:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5121, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6106:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6105:18:8" - }, - "returnParameters": { - "id": 5126, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5125, - "name": "_exists", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6145:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5124, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6145:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6144:14:8" - }, - "scope": 5187, - "src": "6090:69:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5134, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5132, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5129, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6182:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6182:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5131, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6195:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6195:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6181:31:8" - }, - "returnParameters": { - "id": 5133, - "nodeType": "ParameterList", - "parameters": [], - "src": "6219:0:8" - }, - "scope": 5187, - "src": "6165:55:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5141, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5136, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6245:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5135, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6245:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6244:18:8" - }, - "returnParameters": { - "id": 5140, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5139, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6289:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5138, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6289:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6288:19:8" - }, - "scope": 5187, - "src": "6224:84:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5148, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5143, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6341:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6341:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5145, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6360:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5144, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6360:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6340:35:8" - }, - "returnParameters": { - "id": 5147, - "nodeType": "ParameterList", - "parameters": [], - "src": "6382:0:8" - }, - "scope": 5187, - "src": "6314:69:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5157, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5150, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6413:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5149, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6413:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5152, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6429:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5151, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6429:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6412:35:8" - }, - "returnParameters": { - "id": 5156, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5155, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6474:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5154, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6474:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6473:6:8" - }, - "scope": 5187, - "src": "6387:93:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5166, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5159, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6508:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5158, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6508:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5161, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6523:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5160, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6523:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5163, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6536:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5162, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6536:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6507:46:8" - }, - "returnParameters": { - "id": 5165, - "nodeType": "ParameterList", - "parameters": [], - "src": "6560:0:8" - }, - "scope": 5187, - "src": "6486:75:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5175, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5168, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6591:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5167, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6591:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5170, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6606:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5169, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6606:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5172, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6619:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6619:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6590:46:8" - }, - "returnParameters": { - "id": 5174, - "nodeType": "ParameterList", - "parameters": [], - "src": "6648:0:8" - }, - "scope": 5187, - "src": "6565:84:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5186, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5177, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6687:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5176, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6687:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5179, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6707:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5178, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6707:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5181, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6725:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5180, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6725:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5183, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6748:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5182, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6748:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6680:91:8" - }, - "returnParameters": { - "id": 5185, - "nodeType": "ParameterList", - "parameters": [], - "src": "6783:0:8" - }, - "scope": 5187, - "src": "6655:129:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "5617:1170:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5188, - "name": "SupportsInterfaceWithLookup", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5065, - "src": "6971:27:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", - "typeString": "contract SupportsInterfaceWithLookup" - } - }, - "id": 5189, - "nodeType": "InheritanceSpecifier", - "src": "6971:27:8" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5190, - "name": "ERC721Basic", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5187, - "src": "7000:11:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Basic_$5187", - "typeString": "contract ERC721Basic" - } - }, - "id": 5191, - "nodeType": "InheritanceSpecifier", - "src": "7000:11:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": true, - "id": 5764, - "linearizedBaseContracts": [ - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5194, - "name": "InterfaceId_ERC721", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7019:55:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5192, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7019:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 5193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7064:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 5197, - "name": "InterfaceId_ERC721Exists", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7668:61:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5195, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7668:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783466353538653739", - "id": 5196, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7719:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1331007097_by_1", - "typeString": "int_const 1331007097" - }, - "value": "0x4f558e79" - }, - "visibility": "private" - }, - { - "id": 5200, - "libraryName": { - "contractScope": null, - "id": 5198, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "7821:8:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "7815:27:8", - "typeName": { - "id": 5199, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7834:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 5203, - "libraryName": { - "contractScope": null, - "id": 5201, - "name": "AddressUtils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5009, - "src": "7852:12:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUtils_$5009", - "typeString": "library AddressUtils" - } - }, - "nodeType": "UsingForDirective", - "src": "7846:31:8", - "typeName": { - "id": 5202, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7869:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "constant": true, - "id": 5206, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8044:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5204, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8044:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5205, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8086:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 5210, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8140:48:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5209, - "keyType": { - "id": 5207, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8149:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8140:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5208, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8160:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5214, - "name": "tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8243:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5213, - "keyType": { - "id": 5211, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8252:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8243:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5212, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8263:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5218, - "name": "ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8352:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 5217, - "keyType": { - "id": 5215, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8361:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8352:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 5216, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8372:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5224, - "name": "operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8460:73:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "typeName": { - "id": 5223, - "keyType": { - "id": 5219, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8469:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8460:46:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 5222, - "keyType": { - "id": 5220, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8489:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8480:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 5221, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8500:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5226, - "name": "testint", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8542:19:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5225, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 5240, - "nodeType": "Block", - "src": "8774:61:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5232, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5228, - "src": "8797:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5231, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "8789:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8789:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5234, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "8810:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8810:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "8789:31:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5230, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "8781:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8781:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5238, - "nodeType": "ExpressionStatement", - "src": "8781:40:8" - }, - { - "id": 5239, - "nodeType": "PlaceholderStatement", - "src": "8828:1:8" - } - ] - }, - "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", - "id": 5241, - "name": "onlyOwnerOf", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5228, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5241, - "src": "8756:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8756:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8755:18:8" - }, - "src": "8735:100:8", - "visibility": "internal" - }, - { - "body": { - "id": 5254, - "nodeType": "Block", - "src": "9041:69:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5247, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "9074:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9074:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5249, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5243, - "src": "9086:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5246, - "name": "isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5567, - "src": "9056:17:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 5250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9056:39:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5245, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9048:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9048:48:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5252, - "nodeType": "ExpressionStatement", - "src": "9048:48:8" - }, - { - "id": 5253, - "nodeType": "PlaceholderStatement", - "src": "9103:1:8" - } - ] - }, - "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", - "id": 5255, - "name": "canTransfer", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5244, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5243, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5255, - "src": "9023:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5242, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9022:18:8" - }, - "src": "9002:108:8", - "visibility": "internal" - }, - { - "body": { - "id": 5266, - "nodeType": "Block", - "src": "9145:176:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5259, - "name": "InterfaceId_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5194, - "src": "9245:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5258, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9226:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9226:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5261, - "nodeType": "ExpressionStatement", - "src": "9226:38:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5263, - "name": "InterfaceId_ERC721Exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5197, - "src": "9290:24:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5262, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9271:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9271:44:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5265, - "nodeType": "ExpressionStatement", - "src": "9271:44:8" - } - ] - }, - "documentation": null, - "id": 5267, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5256, - "nodeType": "ParameterList", - "parameters": [], - "src": "9127:2:8" - }, - "returnParameters": { - "id": 5257, - "nodeType": "ParameterList", - "parameters": [], - "src": "9145:0:8" - }, - "scope": 5764, - "src": "9116:205:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5286, - "nodeType": "Block", - "src": "9585:80:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5275, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9600:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5277, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9618:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5276, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9610:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9610:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "9600:20:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5274, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9592:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9592:29:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5281, - "nodeType": "ExpressionStatement", - "src": "9592:29:8" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5282, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "9635:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5284, - "indexExpression": { - "argumentTypes": null, - "id": 5283, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9652:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9635:24:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5273, - "id": 5285, - "nodeType": "Return", - "src": "9628:31:8" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", - "id": 5287, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5270, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5269, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9539:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5268, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9539:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9538:16:8" - }, - "returnParameters": { - "id": 5273, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5272, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9576:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9576:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9575:9:8" - }, - "scope": 5764, - "src": "9520:145:8", - "stateMutability": "view", - "superFunction": 5113, - "visibility": "public" - }, - { - "body": { - "id": 5310, - "nodeType": "Block", - "src": "9950:103:8", - "statements": [ - { - "assignments": [ - 5295 - ], - "declarations": [ - { - "constant": false, - "id": 5295, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5310, - "src": "9957:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5294, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9957:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5299, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5296, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "9973:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5298, - "indexExpression": { - "argumentTypes": null, - "id": 5297, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5289, - "src": "9984:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9973:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9957:36:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5301, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10008:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10025:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10017:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5304, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10017:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10008:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5300, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10000:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5307, - "nodeType": "ExpressionStatement", - "src": "10000:28:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5308, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10042:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5293, - "id": 5309, - "nodeType": "Return", - "src": "10035:12:8" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", - "id": 5311, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5289, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9902:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5288, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9902:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9901:18:8" - }, - "returnParameters": { - "id": 5293, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5292, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9941:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5291, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9941:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9940:9:8" - }, - "scope": 5764, - "src": "9885:168:8", - "stateMutability": "view", - "superFunction": 5120, - "visibility": "public" - }, - { - "body": { - "id": 5330, - "nodeType": "Block", - "src": "10299:82:8", - "statements": [ - { - "assignments": [ - 5319 - ], - "declarations": [ - { - "constant": false, - "id": 5319, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5330, - "src": "10306:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5318, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10306:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5323, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5320, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "10322:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5322, - "indexExpression": { - "argumentTypes": null, - "id": 5321, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5313, - "src": "10333:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10322:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10306:36:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5324, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5319, - "src": "10356:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5326, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10373:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5325, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10365:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10365:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10356:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5317, - "id": 5329, - "nodeType": "Return", - "src": "10349:26:8" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", - "id": 5331, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5313, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10254:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5312, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10254:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10253:18:8" - }, - "returnParameters": { - "id": 5317, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5316, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10293:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5315, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10293:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10292:6:8" - }, - "scope": 5764, - "src": "10238:143:8", - "stateMutability": "view", - "superFunction": 5127, - "visibility": "public" - }, - { - "body": { - "id": 5375, - "nodeType": "Block", - "src": "10851:229:8", - "statements": [ - { - "assignments": [ - 5339 - ], - "declarations": [ - { - "constant": false, - "id": 5339, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5375, - "src": "10858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5338, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5343, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5341, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "10882:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5340, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "10874:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10874:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10858:33:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5345, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "10906:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 5346, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10913:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5344, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10898:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10898:21:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5349, - "nodeType": "ExpressionStatement", - "src": "10898:21:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5351, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10934:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10934:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5353, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10948:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10934:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5356, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10974:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5357, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10981:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10981:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 5355, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "10957:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10957:35:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "10934:58:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5350, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10926:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10926:67:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5362, - "nodeType": "ExpressionStatement", - "src": "10926:67:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5363, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11002:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5365, - "indexExpression": { - "argumentTypes": null, - "id": 5364, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11017:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11002:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5366, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11029:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "11002:30:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5368, - "nodeType": "ExpressionStatement", - "src": "11002:30:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5370, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "11053:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5371, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11060:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5372, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11065:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5369, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5098, - "src": "11044:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11044:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5374, - "nodeType": "EmitStatement", - "src": "11039:35:8" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", - "id": 5376, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5336, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5333, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10813:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10813:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5335, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10826:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5334, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10826:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10812:31:8" - }, - "returnParameters": { - "id": 5337, - "nodeType": "ParameterList", - "parameters": [], - "src": "10851:0:8" - }, - "scope": 5764, - "src": "10796:284:8", - "stateMutability": "nonpayable", - "superFunction": 5134, - "visibility": "public" - }, - { - "body": { - "id": 5387, - "nodeType": "Block", - "src": "11383:44:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5383, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11397:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5385, - "indexExpression": { - "argumentTypes": null, - "id": 5384, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5378, - "src": "11412:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11397:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5382, - "id": 5386, - "nodeType": "Return", - "src": "11390:31:8" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", - "id": 5388, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5378, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11335:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5377, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11335:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11334:18:8" - }, - "returnParameters": { - "id": 5382, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5381, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11374:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5380, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11374:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11373:9:8" - }, - "scope": 5764, - "src": "11314:113:8", - "stateMutability": "view", - "superFunction": 5141, - "visibility": "public" - }, - { - "body": { - "id": 5418, - "nodeType": "Block", - "src": "11778:146:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5396, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11793:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5397, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11800:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11800:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "11793:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5395, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "11785:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11785:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5401, - "nodeType": "ExpressionStatement", - "src": "11785:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5402, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "11818:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5406, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5403, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11836:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11836:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11818:29:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5407, - "indexExpression": { - "argumentTypes": null, - "id": 5405, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11848:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11818:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5408, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11855:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11818:46:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5410, - "nodeType": "ExpressionStatement", - "src": "11818:46:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5412, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11891:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11891:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5414, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11903:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5415, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11908:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5411, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5106, - "src": "11876:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 5416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11876:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5417, - "nodeType": "EmitStatement", - "src": "11871:47:8" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", - "id": 5419, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5390, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11742:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5389, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11742:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5392, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11755:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5391, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11755:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11741:29:8" - }, - "returnParameters": { - "id": 5394, - "nodeType": "ParameterList", - "parameters": [], - "src": "11778:0:8" - }, - "scope": 5764, - "src": "11715:209:8", - "stateMutability": "nonpayable", - "superFunction": 5148, - "visibility": "public" - }, - { - "body": { - "id": 5434, - "nodeType": "Block", - "src": "12362:56:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5428, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "12376:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5430, - "indexExpression": { - "argumentTypes": null, - "id": 5429, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5421, - "src": "12394:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5432, - "indexExpression": { - "argumentTypes": null, - "id": 5431, - "name": "_operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5423, - "src": "12402:9:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:36:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5427, - "id": 5433, - "nodeType": "Return", - "src": "12369:43:8" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", - "id": 5435, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5424, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5421, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12273:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5420, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12273:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5423, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12294:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5422, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12294:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12266:50:8" - }, - "returnParameters": { - "id": 5427, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5426, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12353:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5425, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12353:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12352:6:8" - }, - "scope": 5764, - "src": "12241:177:8", - "stateMutability": "view", - "superFunction": 5157, - "visibility": "public" - }, - { - "body": { - "id": 5484, - "nodeType": "Block", - "src": "12976:228:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5448, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "12991:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5450, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13008:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5449, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13000:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "12991:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5447, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "12983:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12983:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5454, - "nodeType": "ExpressionStatement", - "src": "12983:28:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5456, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13026:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13041:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5457, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13033:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5459, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13033:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "13026:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5455, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "13018:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13018:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5462, - "nodeType": "ExpressionStatement", - "src": "13018:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5464, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13067:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5465, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13074:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5463, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "13053:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13053:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5467, - "nodeType": "ExpressionStatement", - "src": "13053:30:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5469, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13106:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5470, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13113:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5468, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "13090:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13090:32:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5472, - "nodeType": "ExpressionStatement", - "src": "13090:32:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5474, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13140:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5475, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13145:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5473, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "13129:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13129:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5477, - "nodeType": "ExpressionStatement", - "src": "13129:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5479, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13177:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5480, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13184:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5481, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13189:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5478, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "13168:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13168:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5483, - "nodeType": "EmitStatement", - "src": "13163:35:8" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5485, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5444, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "12963:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5445, - "modifierName": { - "argumentTypes": null, - "id": 5443, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "12951:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12951:21:8" - } - ], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5442, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5437, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12874:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5436, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12874:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5439, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12894:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5438, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12894:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5441, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12912:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5440, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12912:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12867:66:8" - }, - "returnParameters": { - "id": 5446, - "nodeType": "ParameterList", - "parameters": [], - "src": "12976:0:8" - }, - "scope": 5764, - "src": "12846:358:8", - "stateMutability": "nonpayable", - "superFunction": 5166, - "visibility": "public" - }, - { - "body": { - "id": 5504, - "nodeType": "Block", - "src": "13960:101:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5498, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5487, - "src": "14030:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5499, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5489, - "src": "14037:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5500, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "14042:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 5501, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14052:2:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 5497, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5505, - 5535 - ], - "referencedDeclaration": 5535, - "src": "14013:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,uint256,bytes memory)" - } - }, - "id": 5502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14013:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5503, - "nodeType": "ExpressionStatement", - "src": "14013:42:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5505, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5494, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "13947:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5495, - "modifierName": { - "argumentTypes": null, - "id": 5493, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "13935:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13935:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5492, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5487, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5486, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5489, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13878:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5488, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13878:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5491, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13896:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5490, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13896:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13851:66:8" - }, - "returnParameters": { - "id": 5496, - "nodeType": "ParameterList", - "parameters": [], - "src": "13960:0:8" - }, - "scope": 5764, - "src": "13826:235:8", - "stateMutability": "nonpayable", - "superFunction": 5175, - "visibility": "public" - }, - { - "body": { - "id": 5534, - "nodeType": "Block", - "src": "14908:162:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5520, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "14928:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5521, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "14935:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5522, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14940:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5519, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5485 - ], - "referencedDeclaration": 5485, - "src": "14915:12:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14915:34:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5524, - "nodeType": "ExpressionStatement", - "src": "14915:34:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5527, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "15035:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5528, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "15042:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5529, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "15047:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5530, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5513, - "src": "15057:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 5526, - "name": "checkAndCallSafeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5763, - "src": "15010:24:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,address,uint256,bytes memory) returns (bool)" - } - }, - "id": 5531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15010:53:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5525, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "15002:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15002:62:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5533, - "nodeType": "ExpressionStatement", - "src": "15002:62:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", - "id": 5535, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5516, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14895:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5517, - "modifierName": { - "argumentTypes": null, - "id": 5515, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "14883:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14883:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5514, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5507, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14781:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5506, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14781:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5509, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14801:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5508, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14801:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5511, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14819:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5510, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14819:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5513, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14842:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5512, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14842:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14774:91:8" - }, - "returnParameters": { - "id": 5518, - "nodeType": "ParameterList", - "parameters": [], - "src": "14908:0:8" - }, - "scope": 5764, - "src": "14749:321:8", - "stateMutability": "nonpayable", - "superFunction": 5186, - "visibility": "public" - }, - { - "body": { - "id": 5566, - "nodeType": "Block", - "src": "15551:330:8", - "statements": [ - { - "assignments": [ - 5545 - ], - "declarations": [ - { - "constant": false, - "id": 5545, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5566, - "src": "15558:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5544, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15558:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5549, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5547, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15582:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5546, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "15574:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15574:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15558:33:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5550, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15763:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5551, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15775:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15763:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5554, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15803:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5553, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5388 - ], - "referencedDeclaration": 5388, - "src": "15791:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15791:21:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5556, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15816:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15791:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:61:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5560, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15852:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5561, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15859:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5559, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "15835:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15835:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:105:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5564, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "15754:121:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5543, - "id": 5565, - "nodeType": "Return", - "src": "15747:128:8" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", - "id": 5567, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5540, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5537, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15459:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5536, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15459:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5539, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15482:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5538, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15482:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15452:51:8" - }, - "returnParameters": { - "id": 5543, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5542, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15542:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5541, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "15542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15541:6:8" - }, - "scope": 5764, - "src": "15426:455:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5595, - "nodeType": "Block", - "src": "16193:118:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5575, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16208:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16223:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16215:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5578, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16215:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16208:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5574, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "16200:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16200:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5581, - "nodeType": "ExpressionStatement", - "src": "16200:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5583, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16244:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5584, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16249:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5582, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "16233:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16233:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5586, - "nodeType": "ExpressionStatement", - "src": "16233:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16287:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5588, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16279:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5590, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16279:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5591, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16291:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5592, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16296:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5587, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16270:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16270:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5594, - "nodeType": "EmitStatement", - "src": "16265:40:8" - } - ] - }, - "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", - "id": 5596, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5572, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5569, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16153:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5568, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16153:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5571, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16166:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5570, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16166:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16152:31:8" - }, - "returnParameters": { - "id": 5573, - "nodeType": "ParameterList", - "parameters": [], - "src": "16193:0:8" - }, - "scope": 5764, - "src": "16138:173:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5621, - "nodeType": "Block", - "src": "16562:134:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5604, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16583:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5605, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16591:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5603, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "16569:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16569:31:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5607, - "nodeType": "ExpressionStatement", - "src": "16569:31:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5609, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16623:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5610, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16631:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5608, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "16607:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16607:33:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5612, - "nodeType": "ExpressionStatement", - "src": "16607:33:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5614, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16661:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16677:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5615, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16669:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5617, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16669:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5618, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16681:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5613, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16652:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16652:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5620, - "nodeType": "EmitStatement", - "src": "16647:43:8" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", - "id": 5622, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5598, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16519:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16519:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5600, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16535:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16535:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16518:34:8" - }, - "returnParameters": { - "id": 5602, - "nodeType": "ParameterList", - "parameters": [], - "src": "16562:0:8" - }, - "scope": 5764, - "src": "16504:192:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5654, - "nodeType": "Block", - "src": "17032:153:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5631, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17055:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5630, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "17047:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17047:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5633, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5624, - "src": "17068:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17047:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5629, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17039:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17039:36:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5636, - "nodeType": "ExpressionStatement", - "src": "17039:36:8" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5637, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17086:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5639, - "indexExpression": { - "argumentTypes": null, - "id": 5638, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17101:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17086:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17122:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17114:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17114:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17086:38:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5653, - "nodeType": "IfStatement", - "src": "17082:98:8", - "trueBody": { - "id": 5652, - "nodeType": "Block", - "src": "17126:54:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5644, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17135:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5646, - "indexExpression": { - "argumentTypes": null, - "id": 5645, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17150:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17135:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17170:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5647, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17162:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5649, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17162:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17135:37:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5651, - "nodeType": "ExpressionStatement", - "src": "17135:37:8" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5655, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5627, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5624, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "16989:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5623, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16989:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5626, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "17005:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5625, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17005:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16988:34:8" - }, - "returnParameters": { - "id": 5628, - "nodeType": "ParameterList", - "parameters": [], - "src": "17032:0:8" - }, - "scope": 5764, - "src": "16966:219:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5689, - "nodeType": "Block", - "src": "17515:148:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5663, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17530:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5665, - "indexExpression": { - "argumentTypes": null, - "id": 5664, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17541:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17530:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17562:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17554:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5668, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17554:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17530:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5662, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17522:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17522:43:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5671, - "nodeType": "ExpressionStatement", - "src": "17522:43:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5672, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17572:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5674, - "indexExpression": { - "argumentTypes": null, - "id": 5673, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17583:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17572:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5675, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17595:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17572:26:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5677, - "nodeType": "ExpressionStatement", - "src": "17572:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5678, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17605:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5680, - "indexExpression": { - "argumentTypes": null, - "id": 5679, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17622:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17605:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17655:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5681, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17629:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5683, - "indexExpression": { - "argumentTypes": null, - "id": 5682, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17646:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17629:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "17629:25:8", - "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": 5686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17629:28:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17605:52:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5688, - "nodeType": "ExpressionStatement", - "src": "17605:52:8" - } - ] - }, - "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", - "id": 5690, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addTokenTo", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5660, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5657, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17475:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5656, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17475:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5659, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17488:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5658, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17488:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17474:31:8" - }, - "returnParameters": { - "id": 5661, - "nodeType": "ParameterList", - "parameters": [], - "src": "17515:0:8" - }, - "scope": 5764, - "src": "17455:208:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5724, - "nodeType": "Block", - "src": "18016:151:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5702, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5699, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18039:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5698, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "18031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18031:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5701, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18052:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "18031:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5697, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "18023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18023:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5704, - "nodeType": "ExpressionStatement", - "src": "18023:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5705, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18065:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5707, - "indexExpression": { - "argumentTypes": null, - "id": 5706, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18082:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18065:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18119:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5708, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18091:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5710, - "indexExpression": { - "argumentTypes": null, - "id": 5709, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18108:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18091:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "18091:27:8", - "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": 5713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18091:30:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18065:56:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5715, - "nodeType": "ExpressionStatement", - "src": "18065:56:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5716, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "18128:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5718, - "indexExpression": { - "argumentTypes": null, - "id": 5717, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18139:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18128:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18159:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18151:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18151:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "18128:33:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5723, - "nodeType": "ExpressionStatement", - "src": "18128:33:8" - } - ] - }, - "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", - "id": 5725, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "removeTokenFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5695, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5692, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17974:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5691, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17974:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5694, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17989:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5693, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17989:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17973:33:8" - }, - "returnParameters": { - "id": 5696, - "nodeType": "ParameterList", - "parameters": [], - "src": "18016:0:8" - }, - "scope": 5764, - "src": "17949:218:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5762, - "nodeType": "Block", - "src": "18846:195:8", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 5741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "18857:17:8", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5738, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18858:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 5008, - "src": "18858:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 5740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18858:16:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5745, - "nodeType": "IfStatement", - "src": "18853:51:8", - "trueBody": { - "id": 5744, - "nodeType": "Block", - "src": "18876:28:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5742, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18892:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 5737, - "id": 5743, - "nodeType": "Return", - "src": "18885:11:8" - } - ] - } - }, - { - "assignments": [ - 5747 - ], - "declarations": [ - { - "constant": false, - "id": 5747, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 5762, - "src": "18910:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5746, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "18910:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5756, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5752, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5727, - "src": "18971:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5753, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5731, - "src": "18978:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5754, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5733, - "src": "18988:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5749, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18941:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5748, - "name": "ERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5080, - "src": "18926:14:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", - "typeString": "type(contract ERC721Receiver)" - } - }, - "id": 5750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:19:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Receiver_$5080", - "typeString": "contract ERC721Receiver" - } - }, - "id": 5751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 5079, - "src": "18926:36:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" - } - }, - "id": 5755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:68:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18910:84:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5757, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5747, - "src": "19009:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5758, - "name": "ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5206, - "src": "19019:15:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "19009:25:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5760, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19008:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5737, - "id": 5761, - "nodeType": "Return", - "src": "19001:34:8" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", - "id": 5763, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "checkAndCallSafeTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5734, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5727, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18724:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5726, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18724:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5729, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18744:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18744:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5731, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18762:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5730, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18762:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5733, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18785:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5732, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "18785:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18717:91:8" - }, - "returnParameters": { - "id": 5737, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5736, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18837:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5735, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18837:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18836:6:8" - }, - "scope": 5764, - "src": "18684:357:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "6942:12102:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5765, - "name": "ERC721BasicToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5764, - "src": "19081:16:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", - "typeString": "contract ERC721BasicToken" - } - }, - "id": 5766, - "nodeType": "InheritanceSpecifier", - "src": "19081:16:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187, - 5764 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 5797, - "linearizedBaseContracts": [ - 5797, - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicTokenMock", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5780, - "nodeType": "Block", - "src": "19155:39:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5776, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5768, - "src": "19174:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5777, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5770, - "src": "19179:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5773, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19162:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 5596, - "src": "19162:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19162:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5779, - "nodeType": "ExpressionStatement", - "src": "19162:26:8" - } - ] - }, - "documentation": null, - "id": 5781, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5771, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5768, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19117:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5767, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19117:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5770, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19130:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5769, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19130:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19116:31:8" - }, - "returnParameters": { - "id": 5772, - "nodeType": "ParameterList", - "parameters": [], - "src": "19155:0:8" - }, - "scope": 5797, - "src": "19103:91:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5795, - "nodeType": "Block", - "src": "19239:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5790, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19266:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5789, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "19258:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19258:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5792, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19277:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5786, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19246:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 5622, - "src": "19246:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19246:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5794, - "nodeType": "ExpressionStatement", - "src": "19246:40:8" - } - ] - }, - "documentation": null, - "id": 5796, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5784, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5783, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5796, - "src": "19214:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5782, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19214:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19213:18:8" - }, - "returnParameters": { - "id": 5785, - "nodeType": "ParameterList", - "parameters": [], - "src": "19239:0:8" - }, - "scope": 5797, - "src": "19200:92:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "19048:247:8" - } - ], - "src": "0:19297:8" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:19.969Z", - "devdoc": { - "details": "https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", - "methods": { - "supportsInterface(bytes4)": { - "details": "Interface identification is specified in ERC-165. This function\r uses less than 30,000 gas.\r", - "params": { - "_interfaceId": "The interface identifier, as specified in ERC-165\r" - } - } - }, - "title": "ERC165\r" - }, - "userdoc": { - "methods": { - "supportsInterface(bytes4)": { - "notice": "Query if a contract implements an interface\r" - } - } - } -} \ No newline at end of file diff --git a/src/contracts/ERC20.json b/src/contracts/ERC20.json deleted file mode 100644 index 325821d..0000000 --- a/src/contracts/ERC20.json +++ /dev/null @@ -1,10555 +0,0 @@ -{ - "contractName": "ERC20", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": false, - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "spender", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "spender", - "type": "address" - }, - { - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "spender", - "type": "address" - }, - { - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Implementation of the basic standard token.\\r https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\\r Originally based on code by FirstBlood:\\r https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol\\r * This implementation emits additional Approval events, allowing applications to reconstruct the allowance status for\\r all accounts just by listening to said events. Note that this isn't required by the specification, and other\\r compliant implementations may not do it.\\r\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Function to check the amount of tokens that an owner allowed to a spender.\\r\",\"params\":{\"owner\":\"address The address which owns the funds.\\r\",\"spender\":\"address The address which will spend the funds.\\r\"},\"return\":\"A uint256 specifying the amount of tokens still available for the spender.\\r\"},\"approve(address,uint256)\":{\"details\":\"Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\\r Beware that changing an allowance with this method brings the risk that someone may use both the old\\r and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\\r race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\\r https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\r\",\"params\":{\"spender\":\"The address which will spend the funds.\\r\",\"value\":\"The amount of tokens to be spent.\\r\"}},\"balanceOf(address)\":{\"details\":\"Gets the balance of the specified address.\\r\",\"params\":{\"owner\":\"The address to query the balance of.\\r\"},\"return\":\"An uint256 representing the amount owned by the passed address.\\r\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Decrease the amount of tokens that an owner allowed to a spender.\\r approve should be called when allowed_[_spender] == 0. To decrement\\r allowed value is better to use this function to avoid 2 calls (and wait until\\r the first transaction is mined)\\r From MonolithDAO Token.sol\\r Emits an Approval event.\\r\",\"params\":{\"spender\":\"The address which will spend the funds.\\r\",\"subtractedValue\":\"The amount of tokens to decrease the allowance by.\\r\"}},\"increaseAllowance(address,uint256)\":{\"details\":\"Increase the amount of tokens that an owner allowed to a spender.\\r approve should be called when allowed_[_spender] == 0. To increment\\r allowed value is better to use this function to avoid 2 calls (and wait until\\r the first transaction is mined)\\r From MonolithDAO Token.sol\\r Emits an Approval event.\\r\",\"params\":{\"addedValue\":\"The amount of tokens to increase the allowance by.\\r\",\"spender\":\"The address which will spend the funds.\\r\"}},\"totalSupply()\":{\"details\":\"Total number of tokens in existence\\r\"},\"transfer(address,uint256)\":{\"details\":\"Transfer token for a specified address\\r\",\"params\":{\"to\":\"The address to transfer to.\\r\",\"value\":\"The amount to be transferred.\\r\"}},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfer tokens from one address to another.\\r Note that while this function emits an Approval event, this is not required as per the specification,\\r and other compliant implementations may not emit the event.\\r\",\"params\":{\"from\":\"address The address which you want to send tokens from\\r\",\"to\":\"address The address which you want to transfer to\\r\",\"value\":\"uint256 the amount of tokens to be transferred\\r\"}}},\"title\":\"Standard ERC20 token\\r \"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol\":{\"keccak256\":\"0x83d94afc84930834148f8e00b2b2b624be5e2a910aeb9f508b6e3252648b304a\",\"urls\":[\"bzzr://074edfefdd7f638d059397b8b72e70605bb8eba1e750d8d512d86a5d8abaf966\",\"dweb:/ipfs/QmTPEnc9wjRf7jZ1xzh68sAjusFY5XHCTLpy79yCtCuWrA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b506104e9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806370a082311161005b57806370a0823114610149578063a457c2d71461016f578063a9059cbb1461019b578063dd62ed3e146101c757610088565b8063095ea7b31461008d57806318160ddd146100cd57806323b872dd146100e7578063395093511461011d575b600080fd5b6100b9600480360360408110156100a357600080fd5b506001600160a01b0381351690602001356101f5565b604080519115158252519081900360200190f35b6100d561020b565b60408051918252519081900360200190f35b6100b9600480360360608110156100fd57600080fd5b506001600160a01b03813581169160208101359091169060400135610211565b6100b96004803603604081101561013357600080fd5b506001600160a01b038135169060200135610268565b6100d56004803603602081101561015f57600080fd5b50356001600160a01b03166102a4565b6100b96004803603604081101561018557600080fd5b506001600160a01b0381351690602001356102bf565b6100b9600480360360408110156101b157600080fd5b506001600160a01b0381351690602001356102fb565b6100d5600480360360408110156101dd57600080fd5b506001600160a01b0381358116916020013516610308565b6000610202338484610333565b50600192915050565b60025490565b600061021e8484846103bb565b6001600160a01b03841660009081526001602090815260408083203380855292529091205461025e918691610259908663ffffffff61048616565b610333565b5060019392505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610202918590610259908663ffffffff61049b16565b6001600160a01b031660009081526020819052604090205490565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610202918590610259908663ffffffff61048616565b60006102023384846103bb565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03821661034657600080fd5b6001600160a01b03831661035957600080fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0382166103ce57600080fd5b6001600160a01b0383166000908152602081905260409020546103f7908263ffffffff61048616565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461042c908263ffffffff61049b16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282111561049557600080fd5b50900390565b6000828201838110156104ad57600080fd5b939250505056fea265627a7a7230582015d5d1d47d35501fbb489bdd61b5ceb6c9b96bea5583608ac39939d36ab6302064736f6c63430005090032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100885760003560e01c806370a082311161005b57806370a0823114610149578063a457c2d71461016f578063a9059cbb1461019b578063dd62ed3e146101c757610088565b8063095ea7b31461008d57806318160ddd146100cd57806323b872dd146100e7578063395093511461011d575b600080fd5b6100b9600480360360408110156100a357600080fd5b506001600160a01b0381351690602001356101f5565b604080519115158252519081900360200190f35b6100d561020b565b60408051918252519081900360200190f35b6100b9600480360360608110156100fd57600080fd5b506001600160a01b03813581169160208101359091169060400135610211565b6100b96004803603604081101561013357600080fd5b506001600160a01b038135169060200135610268565b6100d56004803603602081101561015f57600080fd5b50356001600160a01b03166102a4565b6100b96004803603604081101561018557600080fd5b506001600160a01b0381351690602001356102bf565b6100b9600480360360408110156101b157600080fd5b506001600160a01b0381351690602001356102fb565b6100d5600480360360408110156101dd57600080fd5b506001600160a01b0381358116916020013516610308565b6000610202338484610333565b50600192915050565b60025490565b600061021e8484846103bb565b6001600160a01b03841660009081526001602090815260408083203380855292529091205461025e918691610259908663ffffffff61048616565b610333565b5060019392505050565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610202918590610259908663ffffffff61049b16565b6001600160a01b031660009081526020819052604090205490565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610202918590610259908663ffffffff61048616565b60006102023384846103bb565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03821661034657600080fd5b6001600160a01b03831661035957600080fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0382166103ce57600080fd5b6001600160a01b0383166000908152602081905260409020546103f7908263ffffffff61048616565b6001600160a01b03808516600090815260208190526040808220939093559084168152205461042c908263ffffffff61049b16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282111561049557600080fd5b50900390565b6000828201838110156104ad57600080fd5b939250505056fea265627a7a7230582015d5d1d47d35501fbb489bdd61b5ceb6c9b96bea5583608ac39939d36ab6302064736f6c63430005090032", - "sourceMap": "657:7174:19:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;657:7174:19;;;;;;;", - "deployedSourceMap": "657:7174:19:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;657:7174:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2807:148;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2807:148:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;958:91;;;:::i;:::-;;;;;;;;;;;;;;;;3428:228;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3428:228:19;;;;;;;;;;;;;;;;;:::i;4171:203::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4171:203:19;;;;;;;;:::i;1269:106::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1269:106:19;-1:-1:-1;;;;;1269:106:19;;:::i;4894:213::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4894:213:19;;;;;;;;:::i;2020:140::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2020:140:19;;;;;;;;:::i;1714:131::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1714:131:19;;;;;;;;;;:::i;2807:148::-;2872:4;2889:36;2898:10;2910:7;2919:5;2889:8;:36::i;:::-;-1:-1:-1;2943:4:19;2807:148;;;;:::o;958:91::-;1029:12;;958:91;:::o;3428:228::-;3507:4;3524:26;3534:4;3540:2;3544:5;3524:9;:26::i;:::-;-1:-1:-1;;;;;3588:14:19;;;;;;:8;:14;;;;;;;;3576:10;3588:26;;;;;;;;;3561:65;;3570:4;;3588:37;;3619:5;3588:37;:30;:37;:::i;:::-;3561:8;:65::i;:::-;-1:-1:-1;3644:4:19;3428:228;;;;;:::o;4171:203::-;4277:10;4251:4;4298:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;4298:29:19;;;;;;;;;;4251:4;;4268:76;;4289:7;;4298:45;;4332:10;4298:45;:33;:45;:::i;1269:106::-;-1:-1:-1;;;;;1351:16:19;1324:7;1351:16;;;;;;;;;;;;1269:106::o;4894:213::-;5005:10;4979:4;5026:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;5026:29:19;;;;;;;;;;4979:4;;4996:81;;5017:7;;5026:50;;5060:15;5026:50;:33;:50;:::i;2020:140::-;2081:4;2098:32;2108:10;2120:2;2124:5;2098:9;:32::i;1714:131::-;-1:-1:-1;;;;;1813:15:19;;;1786:7;1813:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;1714:131::o;6993:254::-;-1:-1:-1;;;;;7086:21:19;;7078:30;;;;;;-1:-1:-1;;;;;7127:19:19;;7119:28;;;;;;-1:-1:-1;;;;;7160:15:19;;;;;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;:32;;;7208:31;;;;;;;;;;;;;;;;;6993:254;;;:::o;5334:262::-;-1:-1:-1;;;;;5422:16:19;;5414:25;;;;;;-1:-1:-1;;;;;5470:15:19;;:9;:15;;;;;;;;;;;:26;;5490:5;5470:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;5452:15:19;;;:9;:15;;;;;;;;;;;:44;;;;5523:13;;;;;;;:24;;5541:5;5523:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;5507:13:19;;;:9;:13;;;;;;;;;;;;:40;;;;5563:25;;;;;;;5507:13;;5563:25;;;;;;;;;;;;;5334:262;;;:::o;431:150:22:-;489:7;522:1;517;:6;;509:15;;;;;;-1:-1:-1;547:5:22;;;431:150::o;589:::-;647:7;679:5;;;703:6;;;;695:15;;;;;;730:1;589:150;-1:-1:-1;;;589:150:22:o", - "source": "pragma solidity ^0.5.2;\r\n\r\nimport \"./IERC20.sol\";\r\nimport \"./SafeMath.sol\";\r\n\r\n/**\r\n * @title Standard ERC20 token\r\n *\r\n * @dev Implementation of the basic standard token.\r\n * https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\r\n * Originally based on code by FirstBlood:\r\n * https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol\r\n *\r\n * This implementation emits additional Approval events, allowing applications to reconstruct the allowance status for\r\n * all accounts just by listening to said events. Note that this isn't required by the specification, and other\r\n * compliant implementations may not do it.\r\n */\r\ncontract ERC20 is IERC20 {\r\n using SafeMath for uint256;\r\n\r\n mapping (address => uint256) private _balances;\r\n\r\n mapping (address => mapping (address => uint256)) private _allowed;\r\n\r\n uint256 private _totalSupply;\r\n\r\n /**\r\n * @dev Total number of tokens in existence\r\n */\r\n function totalSupply() public view returns (uint256) {\r\n return _totalSupply;\r\n }\r\n\r\n /**\r\n * @dev Gets the balance of the specified address.\r\n * @param owner The address to query the balance of.\r\n * @return An uint256 representing the amount owned by the passed address.\r\n */\r\n function balanceOf(address owner) public view returns (uint256) {\r\n return _balances[owner];\r\n }\r\n\r\n /**\r\n * @dev Function to check the amount of tokens that an owner allowed to a spender.\r\n * @param owner address The address which owns the funds.\r\n * @param spender address The address which will spend the funds.\r\n * @return A uint256 specifying the amount of tokens still available for the spender.\r\n */\r\n function allowance(address owner, address spender) public view returns (uint256) {\r\n return _allowed[owner][spender];\r\n }\r\n\r\n /**\r\n * @dev Transfer token for a specified address\r\n * @param to The address to transfer to.\r\n * @param value The amount to be transferred.\r\n */\r\n function transfer(address to, uint256 value) public returns (bool) {\r\n _transfer(msg.sender, to, value);\r\n return true;\r\n }\r\n\r\n /**\r\n * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\r\n * Beware that changing an allowance with this method brings the risk that someone may use both the old\r\n * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\r\n * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\r\n * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\r\n * @param spender The address which will spend the funds.\r\n * @param value The amount of tokens to be spent.\r\n */\r\n function approve(address spender, uint256 value) public returns (bool) {\r\n _approve(msg.sender, spender, value);\r\n return true;\r\n }\r\n\r\n /**\r\n * @dev Transfer tokens from one address to another.\r\n * Note that while this function emits an Approval event, this is not required as per the specification,\r\n * and other compliant implementations may not emit the event.\r\n * @param from address The address which you want to send tokens from\r\n * @param to address The address which you want to transfer to\r\n * @param value uint256 the amount of tokens to be transferred\r\n */\r\n function transferFrom(address from, address to, uint256 value) public returns (bool) {\r\n _transfer(from, to, value);\r\n _approve(from, msg.sender, _allowed[from][msg.sender].sub(value));\r\n return true;\r\n }\r\n\r\n /**\r\n * @dev Increase the amount of tokens that an owner allowed to a spender.\r\n * approve should be called when allowed_[_spender] == 0. To increment\r\n * allowed value is better to use this function to avoid 2 calls (and wait until\r\n * the first transaction is mined)\r\n * From MonolithDAO Token.sol\r\n * Emits an Approval event.\r\n * @param spender The address which will spend the funds.\r\n * @param addedValue The amount of tokens to increase the allowance by.\r\n */\r\n function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {\r\n _approve(msg.sender, spender, _allowed[msg.sender][spender].add(addedValue));\r\n return true;\r\n }\r\n\r\n /**\r\n * @dev Decrease the amount of tokens that an owner allowed to a spender.\r\n * approve should be called when allowed_[_spender] == 0. To decrement\r\n * allowed value is better to use this function to avoid 2 calls (and wait until\r\n * the first transaction is mined)\r\n * From MonolithDAO Token.sol\r\n * Emits an Approval event.\r\n * @param spender The address which will spend the funds.\r\n * @param subtractedValue The amount of tokens to decrease the allowance by.\r\n */\r\n function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {\r\n _approve(msg.sender, spender, _allowed[msg.sender][spender].sub(subtractedValue));\r\n return true;\r\n }\r\n\r\n /**\r\n * @dev Transfer token for a specified addresses\r\n * @param from The address to transfer from.\r\n * @param to The address to transfer to.\r\n * @param value The amount to be transferred.\r\n */\r\n function _transfer(address from, address to, uint256 value) internal {\r\n require(to != address(0));\r\n\r\n _balances[from] = _balances[from].sub(value);\r\n _balances[to] = _balances[to].add(value);\r\n emit Transfer(from, to, value);\r\n }\r\n\r\n /**\r\n * @dev Internal function that mints an amount of the token and assigns it to\r\n * an account. This encapsulates the modification of balances such that the\r\n * proper events are emitted.\r\n * @param account The account that will receive the created tokens.\r\n * @param value The amount that will be created.\r\n */\r\n function _mint(address account, uint256 value) internal {\r\n require(account != address(0));\r\n\r\n _totalSupply = _totalSupply.add(value);\r\n _balances[account] = _balances[account].add(value);\r\n emit Transfer(address(0), account, value);\r\n }\r\n\r\n /**\r\n * @dev Internal function that burns an amount of the token of a given\r\n * account.\r\n * @param account The account whose tokens will be burnt.\r\n * @param value The amount that will be burnt.\r\n */\r\n function _burn(address account, uint256 value) internal {\r\n require(account != address(0));\r\n\r\n _totalSupply = _totalSupply.sub(value);\r\n _balances[account] = _balances[account].sub(value);\r\n emit Transfer(account, address(0), value);\r\n }\r\n\r\n /**\r\n * @dev Approve an address to spend another addresses' tokens.\r\n * @param owner The address that owns the tokens.\r\n * @param spender The address that will spend the tokens.\r\n * @param value The number of tokens that can be spent.\r\n */\r\n function _approve(address owner, address spender, uint256 value) internal {\r\n require(spender != address(0));\r\n require(owner != address(0));\r\n\r\n _allowed[owner][spender] = value;\r\n emit Approval(owner, spender, value);\r\n }\r\n\r\n /**\r\n * @dev Internal function that burns an amount of the token of a given\r\n * account, deducting from the sender's allowance for said account. Uses the\r\n * internal burn function.\r\n * Emits an Approval event (reflecting the reduced allowance).\r\n * @param account The account whose tokens will be burnt.\r\n * @param value The amount that will be burnt.\r\n */\r\n function _burnFrom(address account, uint256 value) internal {\r\n _burn(account, value);\r\n _approve(account, msg.sender, _allowed[account][msg.sender].sub(value));\r\n }\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\oz\\ERC20.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol", - "exportedSymbols": { - "ERC20": [ - 9650 - ] - }, - "id": 9651, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9269, - "literals": [ - "solidity", - "^", - "0.5", - ".2" - ], - "nodeType": "PragmaDirective", - "src": "0:23:19" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", - "file": "./IERC20.sol", - "id": 9270, - "nodeType": "ImportDirective", - "scope": 9651, - "sourceUnit": 9720, - "src": "27:22:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "./SafeMath.sol", - "id": 9271, - "nodeType": "ImportDirective", - "scope": 9651, - "sourceUnit": 9858, - "src": "51:24:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 9272, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "675:6:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 9273, - "nodeType": "InheritanceSpecifier", - "src": "675:6:19" - } - ], - "contractDependencies": [ - 9719 - ], - "contractKind": "contract", - "documentation": "@title Standard ERC20 token\r\n\n * @dev Implementation of the basic standard token.\r\nhttps://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\r\nOriginally based on code by FirstBlood:\r\nhttps://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol\r\n\n * This implementation emits additional Approval events, allowing applications to reconstruct the allowance status for\r\nall accounts just by listening to said events. Note that this isn't required by the specification, and other\r\ncompliant implementations may not do it.\r", - "fullyImplemented": true, - "id": 9650, - "linearizedBaseContracts": [ - 9650, - 9719 - ], - "name": "ERC20", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 9276, - "libraryName": { - "contractScope": null, - "id": 9274, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "695:8:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "689:27:19", - "typeName": { - "id": 9275, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "708:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 9280, - "name": "_balances", - "nodeType": "VariableDeclaration", - "scope": 9650, - "src": "724:46:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 9279, - "keyType": { - "id": 9277, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "733:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "724:28:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 9278, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "744:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 9286, - "name": "_allowed", - "nodeType": "VariableDeclaration", - "scope": 9650, - "src": "779:66:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 9285, - "keyType": { - "id": 9281, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "788:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "779:49:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 9284, - "keyType": { - "id": 9282, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "808:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "799:28:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 9283, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "819:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 9288, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 9650, - "src": "854:28:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9287, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "854:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 9295, - "nodeType": "Block", - "src": "1011:38:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9293, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9288, - "src": "1029:12:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9292, - "id": 9294, - "nodeType": "Return", - "src": "1022:19:19" - } - ] - }, - "documentation": "@dev Total number of tokens in existence\r", - "id": 9296, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9289, - "nodeType": "ParameterList", - "parameters": [], - "src": "978:2:19" - }, - "returnParameters": { - "id": 9292, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9291, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9296, - "src": "1002:7:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9290, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1002:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1001:9:19" - }, - "scope": 9650, - "src": "958:91:19", - "stateMutability": "view", - "superFunction": 9686, - "visibility": "public" - }, - { - "body": { - "id": 9307, - "nodeType": "Block", - "src": "1333:42:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9303, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9280, - "src": "1351:9:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9305, - "indexExpression": { - "argumentTypes": null, - "id": 9304, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9298, - "src": "1361:5:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1351:16:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9302, - "id": 9306, - "nodeType": "Return", - "src": "1344:23:19" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\r\n@param owner The address to query the balance of.\r\n@return An uint256 representing the amount owned by the passed address.\r", - "id": 9308, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9298, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 9308, - "src": "1288:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9297, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1288:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1287:15:19" - }, - "returnParameters": { - "id": 9302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9308, - "src": "1324:7:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1324:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1323:9:19" - }, - "scope": 9650, - "src": "1269:106:19", - "stateMutability": "view", - "superFunction": 9693, - "visibility": "public" - }, - { - "body": { - "id": 9323, - "nodeType": "Block", - "src": "1795:50:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9317, - "name": "_allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9286, - "src": "1813:8:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 9319, - "indexExpression": { - "argumentTypes": null, - "id": 9318, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9310, - "src": "1822:5:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1813:15:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9321, - "indexExpression": { - "argumentTypes": null, - "id": 9320, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9312, - "src": "1829:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1813:24:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9316, - "id": 9322, - "nodeType": "Return", - "src": "1806:31:19" - } - ] - }, - "documentation": "@dev Function to check the amount of tokens that an owner allowed to a spender.\r\n@param owner address The address which owns the funds.\r\n@param spender address The address which will spend the funds.\r\n@return A uint256 specifying the amount of tokens still available for the spender.\r", - "id": 9324, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9313, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9310, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 9324, - "src": "1733:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9309, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1733:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9312, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 9324, - "src": "1748:15:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9311, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1748:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1732:32:19" - }, - "returnParameters": { - "id": 9316, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9315, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9324, - "src": "1786:7:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9314, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1786:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1785:9:19" - }, - "scope": 9650, - "src": "1714:131:19", - "stateMutability": "view", - "superFunction": 9702, - "visibility": "public" - }, - { - "body": { - "id": 9342, - "nodeType": "Block", - "src": "2087:73:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9334, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "2108:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 9335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2108:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 9336, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9326, - "src": "2120:2:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9337, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9328, - "src": "2124:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9333, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9497, - "src": "2098:9:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 9338, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2098:32:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9339, - "nodeType": "ExpressionStatement", - "src": "2098:32:19" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 9340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2148:4:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 9332, - "id": 9341, - "nodeType": "Return", - "src": "2141:11:19" - } - ] - }, - "documentation": "@dev Transfer token for a specified address\r\n@param to The address to transfer to.\r\n@param value The amount to be transferred.\r", - "id": 9343, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9329, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9326, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 9343, - "src": "2038:10:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9325, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2038:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9328, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9343, - "src": "2050:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9327, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2050:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2037:27:19" - }, - "returnParameters": { - "id": 9332, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9331, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9343, - "src": "2081:4:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9330, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2081:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2080:6:19" - }, - "scope": 9650, - "src": "2020:140:19", - "stateMutability": "nonpayable", - "superFunction": 9661, - "visibility": "public" - }, - { - "body": { - "id": 9361, - "nodeType": "Block", - "src": "2878:77:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9353, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "2898:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 9354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2898:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 9355, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9345, - "src": "2910:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9356, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9347, - "src": "2919:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9352, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9621, - "src": "2889:8:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 9357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2889:36:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9358, - "nodeType": "ExpressionStatement", - "src": "2889:36:19" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 9359, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2943:4:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 9351, - "id": 9360, - "nodeType": "Return", - "src": "2936:11:19" - } - ] - }, - "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\r\nBeware that changing an allowance with this method brings the risk that someone may use both the old\r\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\r\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\r\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\r\n@param spender The address which will spend the funds.\r\n@param value The amount of tokens to be spent.\r", - "id": 9362, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9348, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9345, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 9362, - "src": "2824:15:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9344, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2824:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9347, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9362, - "src": "2841:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9346, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2841:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2823:32:19" - }, - "returnParameters": { - "id": 9351, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9350, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9362, - "src": "2872:4:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9349, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2872:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2871:6:19" - }, - "scope": 9650, - "src": "2807:148:19", - "stateMutability": "nonpayable", - "superFunction": 9670, - "visibility": "public" - }, - { - "body": { - "id": 9396, - "nodeType": "Block", - "src": "3513:143:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9374, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9364, - "src": "3534:4:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9375, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9366, - "src": "3540:2:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9376, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9368, - "src": "3544:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9373, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9497, - "src": "3524:9:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 9377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3524:26:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9378, - "nodeType": "ExpressionStatement", - "src": "3524:26:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9380, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9364, - "src": "3570:4:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9381, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3576:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 9382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3576:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9390, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9368, - "src": "3619:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9383, - "name": "_allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9286, - "src": "3588:8:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 9385, - "indexExpression": { - "argumentTypes": null, - "id": 9384, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9364, - "src": "3597:4:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3588:14:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9388, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9386, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3603:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 9387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3603:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3588:26:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "3588:30:19", - "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": 9391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3588:37:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9379, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9621, - "src": "3561:8:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 9392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3561:65:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9393, - "nodeType": "ExpressionStatement", - "src": "3561:65:19" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 9394, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3644:4:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 9372, - "id": 9395, - "nodeType": "Return", - "src": "3637:11:19" - } - ] - }, - "documentation": "@dev Transfer tokens from one address to another.\r\nNote that while this function emits an Approval event, this is not required as per the specification,\r\nand other compliant implementations may not emit the event.\r\n@param from address The address which you want to send tokens from\r\n@param to address The address which you want to transfer to\r\n@param value uint256 the amount of tokens to be transferred\r", - "id": 9397, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9364, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 9397, - "src": "3450:12:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9363, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3450:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9366, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 9397, - "src": "3464:10:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9365, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3464:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9368, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9397, - "src": "3476:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9367, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3476:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3449:41:19" - }, - "returnParameters": { - "id": 9372, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9371, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9397, - "src": "3507:4:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9370, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3507:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3506:6:19" - }, - "scope": 9650, - "src": "3428:228:19", - "stateMutability": "nonpayable", - "superFunction": 9681, - "visibility": "public" - }, - { - "body": { - "id": 9423, - "nodeType": "Block", - "src": "4257:117:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9407, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "4277:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 9408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4277:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 9409, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9399, - "src": "4289:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9417, - "name": "addedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9401, - "src": "4332:10:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9410, - "name": "_allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9286, - "src": "4298:8:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 9413, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9411, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "4307:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 9412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4307:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4298:20:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9415, - "indexExpression": { - "argumentTypes": null, - "id": 9414, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9399, - "src": "4319:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4298:29:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "4298:33:19", - "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": 9418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4298:45:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9406, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9621, - "src": "4268:8:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 9419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4268:76:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9420, - "nodeType": "ExpressionStatement", - "src": "4268:76:19" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 9421, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4362:4:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 9405, - "id": 9422, - "nodeType": "Return", - "src": "4355:11:19" - } - ] - }, - "documentation": "@dev Increase the amount of tokens that an owner allowed to a spender.\r\napprove should be called when allowed_[_spender] == 0. To increment\r\nallowed value is better to use this function to avoid 2 calls (and wait until\r\nthe first transaction is mined)\r\nFrom MonolithDAO Token.sol\r\nEmits an Approval event.\r\n@param spender The address which will spend the funds.\r\n@param addedValue The amount of tokens to increase the allowance by.\r", - "id": 9424, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increaseAllowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9402, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9399, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 9424, - "src": "4198:15:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9398, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4198:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9401, - "name": "addedValue", - "nodeType": "VariableDeclaration", - "scope": 9424, - "src": "4215:18:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9400, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4215:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4197:37:19" - }, - "returnParameters": { - "id": 9405, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9404, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9424, - "src": "4251:4:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9403, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4251:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4250:6:19" - }, - "scope": 9650, - "src": "4171:203:19", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9450, - "nodeType": "Block", - "src": "4985:122:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9434, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "5005:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 9435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5005:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 9436, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9426, - "src": "5017:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9444, - "name": "subtractedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9428, - "src": "5060:15:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9437, - "name": "_allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9286, - "src": "5026:8:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 9440, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9438, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "5035:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 9439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5035:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5026:20:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9442, - "indexExpression": { - "argumentTypes": null, - "id": 9441, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9426, - "src": "5047:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5026:29:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "5026:33:19", - "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": 9445, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5026:50:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9433, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9621, - "src": "4996:8:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 9446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4996:81:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9447, - "nodeType": "ExpressionStatement", - "src": "4996:81:19" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 9448, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5095:4:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 9432, - "id": 9449, - "nodeType": "Return", - "src": "5088:11:19" - } - ] - }, - "documentation": "@dev Decrease the amount of tokens that an owner allowed to a spender.\r\napprove should be called when allowed_[_spender] == 0. To decrement\r\nallowed value is better to use this function to avoid 2 calls (and wait until\r\nthe first transaction is mined)\r\nFrom MonolithDAO Token.sol\r\nEmits an Approval event.\r\n@param spender The address which will spend the funds.\r\n@param subtractedValue The amount of tokens to decrease the allowance by.\r", - "id": 9451, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decreaseAllowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9429, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9426, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 9451, - "src": "4921:15:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9425, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4921:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9428, - "name": "subtractedValue", - "nodeType": "VariableDeclaration", - "scope": 9451, - "src": "4938:23:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9427, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4938:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4920:42:19" - }, - "returnParameters": { - "id": 9432, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9431, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9451, - "src": "4979:4:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9430, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4979:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4978:6:19" - }, - "scope": 9650, - "src": "4894:213:19", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9496, - "nodeType": "Block", - "src": "5403:193:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 9465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9461, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9455, - "src": "5422:2:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 9463, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5436:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 9462, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5428:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 9464, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5428:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5422:16:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 9460, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "5414:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 9466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5414:25:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9467, - "nodeType": "ExpressionStatement", - "src": "5414:25:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 9477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9468, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9280, - "src": "5452:9:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9470, - "indexExpression": { - "argumentTypes": null, - "id": 9469, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9453, - "src": "5462:4:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5452:15:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9475, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9457, - "src": "5490:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9471, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9280, - "src": "5470:9:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9473, - "indexExpression": { - "argumentTypes": null, - "id": 9472, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9453, - "src": "5480:4:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5470:15:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "5470:19:19", - "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": 9476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5470:26:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5452:44:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9478, - "nodeType": "ExpressionStatement", - "src": "5452:44:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 9488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9479, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9280, - "src": "5507:9:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9481, - "indexExpression": { - "argumentTypes": null, - "id": 9480, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9455, - "src": "5517:2:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5507:13:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9486, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9457, - "src": "5541:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9482, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9280, - "src": "5523:9:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9484, - "indexExpression": { - "argumentTypes": null, - "id": 9483, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9455, - "src": "5533:2:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5523:13:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "5523:17:19", - "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": 9487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5523:24:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5507:40:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9489, - "nodeType": "ExpressionStatement", - "src": "5507:40:19" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9491, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9453, - "src": "5572:4:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9492, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9455, - "src": "5578:2:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9493, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9457, - "src": "5582:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9490, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9710, - "src": "5563:8:19", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 9494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5563:25:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9495, - "nodeType": "EmitStatement", - "src": "5558:30:19" - } - ] - }, - "documentation": "@dev Transfer token for a specified addresses\r\n@param from The address to transfer from.\r\n@param to The address to transfer to.\r\n@param value The amount to be transferred.\r", - "id": 9497, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9453, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 9497, - "src": "5353:12:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9452, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5353:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9455, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 9497, - "src": "5367:10:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9454, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5367:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9457, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9497, - "src": "5379:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5379:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5352:41:19" - }, - "returnParameters": { - "id": 9459, - "nodeType": "ParameterList", - "parameters": [], - "src": "5403:0:19" - }, - "scope": 9650, - "src": "5334:262:19", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 9538, - "nodeType": "Block", - "src": "6004:213:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 9509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9505, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9499, - "src": "6023:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 9507, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6042:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 9506, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6034:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 9508, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6034:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "6023:21:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 9504, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "6015:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 9510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6015:30:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9511, - "nodeType": "ExpressionStatement", - "src": "6015:30:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 9517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9512, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9288, - "src": "6058:12:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9515, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9501, - "src": "6090:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 9513, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9288, - "src": "6073:12:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "6073:16:19", - "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": 9516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6073:23:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6058:38:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9518, - "nodeType": "ExpressionStatement", - "src": "6058:38:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 9528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9519, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9280, - "src": "6107:9:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9521, - "indexExpression": { - "argumentTypes": null, - "id": 9520, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9499, - "src": "6117:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6107:18:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9526, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9501, - "src": "6151:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9522, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9280, - "src": "6128:9:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9524, - "indexExpression": { - "argumentTypes": null, - "id": 9523, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9499, - "src": "6138:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6128:18:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "6128:22:19", - "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": 9527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6128:29:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6107:50:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9529, - "nodeType": "ExpressionStatement", - "src": "6107:50:19" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 9532, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6190:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 9531, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6182:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 9533, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 9534, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9499, - "src": "6194:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9535, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9501, - "src": "6203:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9530, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9710, - "src": "6173:8:19", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 9536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6173:36:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9537, - "nodeType": "EmitStatement", - "src": "6168:41:19" - } - ] - }, - "documentation": "@dev Internal function that mints an amount of the token and assigns it to\r\nan account. This encapsulates the modification of balances such that the\r\nproper events are emitted.\r\n@param account The account that will receive the created tokens.\r\n@param value The amount that will be created.\r", - "id": 9539, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9502, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9499, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 9539, - "src": "5963:15:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9498, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5963:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9501, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9539, - "src": "5980:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9500, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5980:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5962:32:19" - }, - "returnParameters": { - "id": 9503, - "nodeType": "ParameterList", - "parameters": [], - "src": "6004:0:19" - }, - "scope": 9650, - "src": "5948:269:19", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 9580, - "nodeType": "Block", - "src": "6507:213:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 9551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9547, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9541, - "src": "6526:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 9549, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6545:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 9548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6537:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 9550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6537:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "6526:21:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 9546, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "6518:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 9552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6518:30:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9553, - "nodeType": "ExpressionStatement", - "src": "6518:30:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 9559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9554, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9288, - "src": "6561:12:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9557, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9543, - "src": "6593:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 9555, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9288, - "src": "6576:12:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "6576:16:19", - "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": 9558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6576:23:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6561:38:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9560, - "nodeType": "ExpressionStatement", - "src": "6561:38:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 9570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9561, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9280, - "src": "6610:9:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9563, - "indexExpression": { - "argumentTypes": null, - "id": 9562, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9541, - "src": "6620:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6610:18:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9568, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9543, - "src": "6654:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9564, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9280, - "src": "6631:9:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9566, - "indexExpression": { - "argumentTypes": null, - "id": 9565, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9541, - "src": "6641:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6631:18:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "6631:22:19", - "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": 9569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6631:29:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6610:50:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9571, - "nodeType": "ExpressionStatement", - "src": "6610:50:19" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9573, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9541, - "src": "6685:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 9575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6702:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 9574, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6694:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 9576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6694:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 9577, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9543, - "src": "6706:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9572, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9710, - "src": "6676:8:19", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 9578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6676:36:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9579, - "nodeType": "EmitStatement", - "src": "6671:41:19" - } - ] - }, - "documentation": "@dev Internal function that burns an amount of the token of a given\r\naccount.\r\n@param account The account whose tokens will be burnt.\r\n@param value The amount that will be burnt.\r", - "id": 9581, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9544, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9541, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 9581, - "src": "6466:15:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9540, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6466:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9543, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9581, - "src": "6483:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9542, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6483:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6465:32:19" - }, - "returnParameters": { - "id": 9545, - "nodeType": "ParameterList", - "parameters": [], - "src": "6507:0:19" - }, - "scope": 9650, - "src": "6451:269:19", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 9620, - "nodeType": "Block", - "src": "7067:180:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 9595, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9591, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9585, - "src": "7086:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 9593, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7105:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 9592, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7097:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 9594, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7097:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7086:21:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 9590, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "7078:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 9596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7078:30:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9597, - "nodeType": "ExpressionStatement", - "src": "7078:30:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 9603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9599, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9583, - "src": "7127:5:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 9601, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7144:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 9600, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7136:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 9602, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7136:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7127:19:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 9598, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "7119:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 9604, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7119:28:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9605, - "nodeType": "ExpressionStatement", - "src": "7119:28:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 9612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9606, - "name": "_allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9286, - "src": "7160:8:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 9609, - "indexExpression": { - "argumentTypes": null, - "id": 9607, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9583, - "src": "7169:5:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7160:15:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9610, - "indexExpression": { - "argumentTypes": null, - "id": 9608, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9585, - "src": "7176:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7160:24:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9611, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9587, - "src": "7187:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7160:32:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9613, - "nodeType": "ExpressionStatement", - "src": "7160:32:19" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9615, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9583, - "src": "7217:5:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9616, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9585, - "src": "7224:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9617, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9587, - "src": "7233:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9614, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9718, - "src": "7208:8:19", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 9618, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7208:31:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9619, - "nodeType": "EmitStatement", - "src": "7203:36:19" - } - ] - }, - "documentation": "@dev Approve an address to spend another addresses' tokens.\r\n@param owner The address that owns the tokens.\r\n@param spender The address that will spend the tokens.\r\n@param value The number of tokens that can be spent.\r", - "id": 9621, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9583, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 9621, - "src": "7011:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9582, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7011:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9585, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 9621, - "src": "7026:15:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7026:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9587, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9621, - "src": "7043:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9586, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7043:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7010:47:19" - }, - "returnParameters": { - "id": 9589, - "nodeType": "ParameterList", - "parameters": [], - "src": "7067:0:19" - }, - "scope": 9650, - "src": "6993:254:19", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 9648, - "nodeType": "Block", - "src": "7706:122:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9629, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9623, - "src": "7723:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9630, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9625, - "src": "7732:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9628, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9581, - "src": "7717:5:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 9631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7717:21:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9632, - "nodeType": "ExpressionStatement", - "src": "7717:21:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9634, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9623, - "src": "7758:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9635, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "7767:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 9636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7767:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9644, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9625, - "src": "7813:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9637, - "name": "_allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9286, - "src": "7779:8:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 9639, - "indexExpression": { - "argumentTypes": null, - "id": 9638, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9623, - "src": "7788:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7779:17:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9642, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9640, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "7797:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 9641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7797:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7779:29:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "7779:33:19", - "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": 9645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7779:40:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9633, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9621, - "src": "7749:8:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 9646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7749:71:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9647, - "nodeType": "ExpressionStatement", - "src": "7749:71:19" - } - ] - }, - "documentation": "@dev Internal function that burns an amount of the token of a given\r\naccount, deducting from the sender's allowance for said account. Uses the\r\ninternal burn function.\r\nEmits an Approval event (reflecting the reduced allowance).\r\n@param account The account whose tokens will be burnt.\r\n@param value The amount that will be burnt.\r", - "id": 9649, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burnFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9623, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 9649, - "src": "7665:15:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7665:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9625, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9649, - "src": "7682:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7682:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7664:32:19" - }, - "returnParameters": { - "id": 9627, - "nodeType": "ParameterList", - "parameters": [], - "src": "7706:0:19" - }, - "scope": 9650, - "src": "7646:182:19", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 9651, - "src": "657:7174:19" - } - ], - "src": "0:7833:19" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol", - "exportedSymbols": { - "ERC20": [ - 9650 - ] - }, - "id": 9651, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9269, - "literals": [ - "solidity", - "^", - "0.5", - ".2" - ], - "nodeType": "PragmaDirective", - "src": "0:23:19" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", - "file": "./IERC20.sol", - "id": 9270, - "nodeType": "ImportDirective", - "scope": 9651, - "sourceUnit": 9720, - "src": "27:22:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "./SafeMath.sol", - "id": 9271, - "nodeType": "ImportDirective", - "scope": 9651, - "sourceUnit": 9858, - "src": "51:24:19", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 9272, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "675:6:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 9273, - "nodeType": "InheritanceSpecifier", - "src": "675:6:19" - } - ], - "contractDependencies": [ - 9719 - ], - "contractKind": "contract", - "documentation": "@title Standard ERC20 token\r\n\n * @dev Implementation of the basic standard token.\r\nhttps://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\r\nOriginally based on code by FirstBlood:\r\nhttps://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol\r\n\n * This implementation emits additional Approval events, allowing applications to reconstruct the allowance status for\r\nall accounts just by listening to said events. Note that this isn't required by the specification, and other\r\ncompliant implementations may not do it.\r", - "fullyImplemented": true, - "id": 9650, - "linearizedBaseContracts": [ - 9650, - 9719 - ], - "name": "ERC20", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 9276, - "libraryName": { - "contractScope": null, - "id": 9274, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "695:8:19", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "689:27:19", - "typeName": { - "id": 9275, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "708:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 9280, - "name": "_balances", - "nodeType": "VariableDeclaration", - "scope": 9650, - "src": "724:46:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 9279, - "keyType": { - "id": 9277, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "733:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "724:28:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 9278, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "744:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 9286, - "name": "_allowed", - "nodeType": "VariableDeclaration", - "scope": 9650, - "src": "779:66:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 9285, - "keyType": { - "id": 9281, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "788:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "779:49:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 9284, - "keyType": { - "id": 9282, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "808:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "799:28:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 9283, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "819:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 9288, - "name": "_totalSupply", - "nodeType": "VariableDeclaration", - "scope": 9650, - "src": "854:28:19", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9287, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "854:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 9295, - "nodeType": "Block", - "src": "1011:38:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9293, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9288, - "src": "1029:12:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9292, - "id": 9294, - "nodeType": "Return", - "src": "1022:19:19" - } - ] - }, - "documentation": "@dev Total number of tokens in existence\r", - "id": 9296, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9289, - "nodeType": "ParameterList", - "parameters": [], - "src": "978:2:19" - }, - "returnParameters": { - "id": 9292, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9291, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9296, - "src": "1002:7:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9290, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1002:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1001:9:19" - }, - "scope": 9650, - "src": "958:91:19", - "stateMutability": "view", - "superFunction": 9686, - "visibility": "public" - }, - { - "body": { - "id": 9307, - "nodeType": "Block", - "src": "1333:42:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9303, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9280, - "src": "1351:9:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9305, - "indexExpression": { - "argumentTypes": null, - "id": 9304, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9298, - "src": "1361:5:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1351:16:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9302, - "id": 9306, - "nodeType": "Return", - "src": "1344:23:19" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address.\r\n@param owner The address to query the balance of.\r\n@return An uint256 representing the amount owned by the passed address.\r", - "id": 9308, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9299, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9298, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 9308, - "src": "1288:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9297, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1288:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1287:15:19" - }, - "returnParameters": { - "id": 9302, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9301, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9308, - "src": "1324:7:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9300, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1324:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1323:9:19" - }, - "scope": 9650, - "src": "1269:106:19", - "stateMutability": "view", - "superFunction": 9693, - "visibility": "public" - }, - { - "body": { - "id": 9323, - "nodeType": "Block", - "src": "1795:50:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9317, - "name": "_allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9286, - "src": "1813:8:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 9319, - "indexExpression": { - "argumentTypes": null, - "id": 9318, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9310, - "src": "1822:5:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1813:15:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9321, - "indexExpression": { - "argumentTypes": null, - "id": 9320, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9312, - "src": "1829:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1813:24:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9316, - "id": 9322, - "nodeType": "Return", - "src": "1806:31:19" - } - ] - }, - "documentation": "@dev Function to check the amount of tokens that an owner allowed to a spender.\r\n@param owner address The address which owns the funds.\r\n@param spender address The address which will spend the funds.\r\n@return A uint256 specifying the amount of tokens still available for the spender.\r", - "id": 9324, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9313, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9310, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 9324, - "src": "1733:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9309, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1733:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9312, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 9324, - "src": "1748:15:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9311, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1748:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1732:32:19" - }, - "returnParameters": { - "id": 9316, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9315, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9324, - "src": "1786:7:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9314, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1786:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1785:9:19" - }, - "scope": 9650, - "src": "1714:131:19", - "stateMutability": "view", - "superFunction": 9702, - "visibility": "public" - }, - { - "body": { - "id": 9342, - "nodeType": "Block", - "src": "2087:73:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9334, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "2108:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 9335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2108:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 9336, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9326, - "src": "2120:2:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9337, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9328, - "src": "2124:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9333, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9497, - "src": "2098:9:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 9338, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2098:32:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9339, - "nodeType": "ExpressionStatement", - "src": "2098:32:19" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 9340, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2148:4:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 9332, - "id": 9341, - "nodeType": "Return", - "src": "2141:11:19" - } - ] - }, - "documentation": "@dev Transfer token for a specified address\r\n@param to The address to transfer to.\r\n@param value The amount to be transferred.\r", - "id": 9343, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9329, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9326, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 9343, - "src": "2038:10:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9325, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2038:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9328, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9343, - "src": "2050:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9327, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2050:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2037:27:19" - }, - "returnParameters": { - "id": 9332, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9331, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9343, - "src": "2081:4:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9330, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2081:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2080:6:19" - }, - "scope": 9650, - "src": "2020:140:19", - "stateMutability": "nonpayable", - "superFunction": 9661, - "visibility": "public" - }, - { - "body": { - "id": 9361, - "nodeType": "Block", - "src": "2878:77:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9353, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "2898:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 9354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2898:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 9355, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9345, - "src": "2910:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9356, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9347, - "src": "2919:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9352, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9621, - "src": "2889:8:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 9357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2889:36:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9358, - "nodeType": "ExpressionStatement", - "src": "2889:36:19" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 9359, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2943:4:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 9351, - "id": 9360, - "nodeType": "Return", - "src": "2936:11:19" - } - ] - }, - "documentation": "@dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\r\nBeware that changing an allowance with this method brings the risk that someone may use both the old\r\nand the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\r\nrace condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\r\nhttps://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\r\n@param spender The address which will spend the funds.\r\n@param value The amount of tokens to be spent.\r", - "id": 9362, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9348, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9345, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 9362, - "src": "2824:15:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9344, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2824:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9347, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9362, - "src": "2841:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9346, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2841:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2823:32:19" - }, - "returnParameters": { - "id": 9351, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9350, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9362, - "src": "2872:4:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9349, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2872:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2871:6:19" - }, - "scope": 9650, - "src": "2807:148:19", - "stateMutability": "nonpayable", - "superFunction": 9670, - "visibility": "public" - }, - { - "body": { - "id": 9396, - "nodeType": "Block", - "src": "3513:143:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9374, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9364, - "src": "3534:4:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9375, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9366, - "src": "3540:2:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9376, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9368, - "src": "3544:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9373, - "name": "_transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9497, - "src": "3524:9:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 9377, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3524:26:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9378, - "nodeType": "ExpressionStatement", - "src": "3524:26:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9380, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9364, - "src": "3570:4:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9381, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3576:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 9382, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3576:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9390, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9368, - "src": "3619:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9383, - "name": "_allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9286, - "src": "3588:8:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 9385, - "indexExpression": { - "argumentTypes": null, - "id": 9384, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9364, - "src": "3597:4:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3588:14:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9388, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9386, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3603:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 9387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3603:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3588:26:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "3588:30:19", - "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": 9391, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3588:37:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9379, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9621, - "src": "3561:8:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 9392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3561:65:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9393, - "nodeType": "ExpressionStatement", - "src": "3561:65:19" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 9394, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3644:4:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 9372, - "id": 9395, - "nodeType": "Return", - "src": "3637:11:19" - } - ] - }, - "documentation": "@dev Transfer tokens from one address to another.\r\nNote that while this function emits an Approval event, this is not required as per the specification,\r\nand other compliant implementations may not emit the event.\r\n@param from address The address which you want to send tokens from\r\n@param to address The address which you want to transfer to\r\n@param value uint256 the amount of tokens to be transferred\r", - "id": 9397, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9369, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9364, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 9397, - "src": "3450:12:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9363, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3450:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9366, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 9397, - "src": "3464:10:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9365, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3464:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9368, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9397, - "src": "3476:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9367, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3476:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3449:41:19" - }, - "returnParameters": { - "id": 9372, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9371, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9397, - "src": "3507:4:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9370, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3507:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3506:6:19" - }, - "scope": 9650, - "src": "3428:228:19", - "stateMutability": "nonpayable", - "superFunction": 9681, - "visibility": "public" - }, - { - "body": { - "id": 9423, - "nodeType": "Block", - "src": "4257:117:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9407, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "4277:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 9408, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4277:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 9409, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9399, - "src": "4289:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9417, - "name": "addedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9401, - "src": "4332:10:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9410, - "name": "_allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9286, - "src": "4298:8:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 9413, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9411, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "4307:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 9412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4307:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4298:20:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9415, - "indexExpression": { - "argumentTypes": null, - "id": 9414, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9399, - "src": "4319:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4298:29:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "4298:33:19", - "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": 9418, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4298:45:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9406, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9621, - "src": "4268:8:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 9419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4268:76:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9420, - "nodeType": "ExpressionStatement", - "src": "4268:76:19" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 9421, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4362:4:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 9405, - "id": 9422, - "nodeType": "Return", - "src": "4355:11:19" - } - ] - }, - "documentation": "@dev Increase the amount of tokens that an owner allowed to a spender.\r\napprove should be called when allowed_[_spender] == 0. To increment\r\nallowed value is better to use this function to avoid 2 calls (and wait until\r\nthe first transaction is mined)\r\nFrom MonolithDAO Token.sol\r\nEmits an Approval event.\r\n@param spender The address which will spend the funds.\r\n@param addedValue The amount of tokens to increase the allowance by.\r", - "id": 9424, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "increaseAllowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9402, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9399, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 9424, - "src": "4198:15:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9398, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4198:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9401, - "name": "addedValue", - "nodeType": "VariableDeclaration", - "scope": 9424, - "src": "4215:18:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9400, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4215:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4197:37:19" - }, - "returnParameters": { - "id": 9405, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9404, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9424, - "src": "4251:4:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9403, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4251:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4250:6:19" - }, - "scope": 9650, - "src": "4171:203:19", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9450, - "nodeType": "Block", - "src": "4985:122:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9434, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "5005:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 9435, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5005:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 9436, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9426, - "src": "5017:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9444, - "name": "subtractedValue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9428, - "src": "5060:15:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9437, - "name": "_allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9286, - "src": "5026:8:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 9440, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9438, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "5035:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 9439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5035:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5026:20:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9442, - "indexExpression": { - "argumentTypes": null, - "id": 9441, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9426, - "src": "5047:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5026:29:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "5026:33:19", - "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": 9445, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5026:50:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9433, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9621, - "src": "4996:8:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 9446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4996:81:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9447, - "nodeType": "ExpressionStatement", - "src": "4996:81:19" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 9448, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5095:4:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 9432, - "id": 9449, - "nodeType": "Return", - "src": "5088:11:19" - } - ] - }, - "documentation": "@dev Decrease the amount of tokens that an owner allowed to a spender.\r\napprove should be called when allowed_[_spender] == 0. To decrement\r\nallowed value is better to use this function to avoid 2 calls (and wait until\r\nthe first transaction is mined)\r\nFrom MonolithDAO Token.sol\r\nEmits an Approval event.\r\n@param spender The address which will spend the funds.\r\n@param subtractedValue The amount of tokens to decrease the allowance by.\r", - "id": 9451, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decreaseAllowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9429, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9426, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 9451, - "src": "4921:15:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9425, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4921:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9428, - "name": "subtractedValue", - "nodeType": "VariableDeclaration", - "scope": 9451, - "src": "4938:23:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9427, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4938:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4920:42:19" - }, - "returnParameters": { - "id": 9432, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9431, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9451, - "src": "4979:4:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9430, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4979:4:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4978:6:19" - }, - "scope": 9650, - "src": "4894:213:19", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9496, - "nodeType": "Block", - "src": "5403:193:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 9465, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9461, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9455, - "src": "5422:2:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 9463, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5436:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 9462, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5428:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 9464, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5428:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5422:16:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 9460, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "5414:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 9466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5414:25:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9467, - "nodeType": "ExpressionStatement", - "src": "5414:25:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 9477, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9468, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9280, - "src": "5452:9:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9470, - "indexExpression": { - "argumentTypes": null, - "id": 9469, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9453, - "src": "5462:4:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5452:15:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9475, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9457, - "src": "5490:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9471, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9280, - "src": "5470:9:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9473, - "indexExpression": { - "argumentTypes": null, - "id": 9472, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9453, - "src": "5480:4:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5470:15:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9474, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "5470:19:19", - "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": 9476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5470:26:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5452:44:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9478, - "nodeType": "ExpressionStatement", - "src": "5452:44:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 9488, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9479, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9280, - "src": "5507:9:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9481, - "indexExpression": { - "argumentTypes": null, - "id": 9480, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9455, - "src": "5517:2:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "5507:13:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9486, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9457, - "src": "5541:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9482, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9280, - "src": "5523:9:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9484, - "indexExpression": { - "argumentTypes": null, - "id": 9483, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9455, - "src": "5533:2:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5523:13:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9485, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "5523:17:19", - "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": 9487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5523:24:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5507:40:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9489, - "nodeType": "ExpressionStatement", - "src": "5507:40:19" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9491, - "name": "from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9453, - "src": "5572:4:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9492, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9455, - "src": "5578:2:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9493, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9457, - "src": "5582:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9490, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9710, - "src": "5563:8:19", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 9494, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5563:25:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9495, - "nodeType": "EmitStatement", - "src": "5558:30:19" - } - ] - }, - "documentation": "@dev Transfer token for a specified addresses\r\n@param from The address to transfer from.\r\n@param to The address to transfer to.\r\n@param value The amount to be transferred.\r", - "id": 9497, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9458, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9453, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 9497, - "src": "5353:12:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9452, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5353:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9455, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 9497, - "src": "5367:10:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9454, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5367:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9457, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9497, - "src": "5379:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9456, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5379:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5352:41:19" - }, - "returnParameters": { - "id": 9459, - "nodeType": "ParameterList", - "parameters": [], - "src": "5403:0:19" - }, - "scope": 9650, - "src": "5334:262:19", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 9538, - "nodeType": "Block", - "src": "6004:213:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 9509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9505, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9499, - "src": "6023:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 9507, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6042:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 9506, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6034:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 9508, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6034:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "6023:21:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 9504, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "6015:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 9510, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6015:30:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9511, - "nodeType": "ExpressionStatement", - "src": "6015:30:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 9517, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9512, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9288, - "src": "6058:12:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9515, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9501, - "src": "6090:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 9513, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9288, - "src": "6073:12:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "6073:16:19", - "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": 9516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6073:23:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6058:38:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9518, - "nodeType": "ExpressionStatement", - "src": "6058:38:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 9528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9519, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9280, - "src": "6107:9:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9521, - "indexExpression": { - "argumentTypes": null, - "id": 9520, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9499, - "src": "6117:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6107:18:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9526, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9501, - "src": "6151:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9522, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9280, - "src": "6128:9:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9524, - "indexExpression": { - "argumentTypes": null, - "id": 9523, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9499, - "src": "6138:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6128:18:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9525, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "6128:22:19", - "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": 9527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6128:29:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6107:50:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9529, - "nodeType": "ExpressionStatement", - "src": "6107:50:19" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 9532, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6190:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 9531, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6182:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 9533, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6182:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 9534, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9499, - "src": "6194:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9535, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9501, - "src": "6203:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9530, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9710, - "src": "6173:8:19", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 9536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6173:36:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9537, - "nodeType": "EmitStatement", - "src": "6168:41:19" - } - ] - }, - "documentation": "@dev Internal function that mints an amount of the token and assigns it to\r\nan account. This encapsulates the modification of balances such that the\r\nproper events are emitted.\r\n@param account The account that will receive the created tokens.\r\n@param value The amount that will be created.\r", - "id": 9539, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9502, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9499, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 9539, - "src": "5963:15:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9498, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5963:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9501, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9539, - "src": "5980:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9500, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5980:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5962:32:19" - }, - "returnParameters": { - "id": 9503, - "nodeType": "ParameterList", - "parameters": [], - "src": "6004:0:19" - }, - "scope": 9650, - "src": "5948:269:19", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 9580, - "nodeType": "Block", - "src": "6507:213:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 9551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9547, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9541, - "src": "6526:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 9549, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6545:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 9548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6537:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 9550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6537:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "6526:21:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 9546, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "6518:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 9552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6518:30:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9553, - "nodeType": "ExpressionStatement", - "src": "6518:30:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 9559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9554, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9288, - "src": "6561:12:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9557, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9543, - "src": "6593:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 9555, - "name": "_totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9288, - "src": "6576:12:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9556, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "6576:16:19", - "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": 9558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6576:23:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6561:38:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9560, - "nodeType": "ExpressionStatement", - "src": "6561:38:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 9570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9561, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9280, - "src": "6610:9:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9563, - "indexExpression": { - "argumentTypes": null, - "id": 9562, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9541, - "src": "6620:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6610:18:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9568, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9543, - "src": "6654:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9564, - "name": "_balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9280, - "src": "6631:9:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9566, - "indexExpression": { - "argumentTypes": null, - "id": 9565, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9541, - "src": "6641:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6631:18:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9567, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "6631:22:19", - "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": 9569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6631:29:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6610:50:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9571, - "nodeType": "ExpressionStatement", - "src": "6610:50:19" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9573, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9541, - "src": "6685:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 9575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6702:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 9574, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6694:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 9576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6694:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 9577, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9543, - "src": "6706:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9572, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9710, - "src": "6676:8:19", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 9578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6676:36:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9579, - "nodeType": "EmitStatement", - "src": "6671:41:19" - } - ] - }, - "documentation": "@dev Internal function that burns an amount of the token of a given\r\naccount.\r\n@param account The account whose tokens will be burnt.\r\n@param value The amount that will be burnt.\r", - "id": 9581, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9544, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9541, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 9581, - "src": "6466:15:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9540, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6466:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9543, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9581, - "src": "6483:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9542, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6483:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6465:32:19" - }, - "returnParameters": { - "id": 9545, - "nodeType": "ParameterList", - "parameters": [], - "src": "6507:0:19" - }, - "scope": 9650, - "src": "6451:269:19", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 9620, - "nodeType": "Block", - "src": "7067:180:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 9595, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9591, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9585, - "src": "7086:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 9593, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7105:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 9592, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7097:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 9594, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7097:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7086:21:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 9590, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "7078:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 9596, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7078:30:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9597, - "nodeType": "ExpressionStatement", - "src": "7078:30:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 9603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9599, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9583, - "src": "7127:5:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 9601, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7144:1:19", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 9600, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7136:7:19", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 9602, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7136:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7127:19:19", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 9598, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "7119:7:19", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 9604, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7119:28:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9605, - "nodeType": "ExpressionStatement", - "src": "7119:28:19" - }, - { - "expression": { - "argumentTypes": null, - "id": 9612, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9606, - "name": "_allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9286, - "src": "7160:8:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 9609, - "indexExpression": { - "argumentTypes": null, - "id": 9607, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9583, - "src": "7169:5:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7160:15:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9610, - "indexExpression": { - "argumentTypes": null, - "id": 9608, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9585, - "src": "7176:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "7160:24:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9611, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9587, - "src": "7187:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7160:32:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9613, - "nodeType": "ExpressionStatement", - "src": "7160:32:19" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9615, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9583, - "src": "7217:5:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9616, - "name": "spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9585, - "src": "7224:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9617, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9587, - "src": "7233:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9614, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9718, - "src": "7208:8:19", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 9618, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7208:31:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9619, - "nodeType": "EmitStatement", - "src": "7203:36:19" - } - ] - }, - "documentation": "@dev Approve an address to spend another addresses' tokens.\r\n@param owner The address that owns the tokens.\r\n@param spender The address that will spend the tokens.\r\n@param value The number of tokens that can be spent.\r", - "id": 9621, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9588, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9583, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 9621, - "src": "7011:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9582, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7011:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9585, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 9621, - "src": "7026:15:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9584, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7026:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9587, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9621, - "src": "7043:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9586, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7043:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7010:47:19" - }, - "returnParameters": { - "id": 9589, - "nodeType": "ParameterList", - "parameters": [], - "src": "7067:0:19" - }, - "scope": 9650, - "src": "6993:254:19", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 9648, - "nodeType": "Block", - "src": "7706:122:19", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9629, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9623, - "src": "7723:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9630, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9625, - "src": "7732:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9628, - "name": "_burn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9581, - "src": "7717:5:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 9631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7717:21:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9632, - "nodeType": "ExpressionStatement", - "src": "7717:21:19" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9634, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9623, - "src": "7758:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9635, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "7767:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 9636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7767:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9644, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9625, - "src": "7813:5:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9637, - "name": "_allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9286, - "src": "7779:8:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 9639, - "indexExpression": { - "argumentTypes": null, - "id": 9638, - "name": "account", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9623, - "src": "7788:7:19", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7779:17:19", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 9642, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9640, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "7797:3:19", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 9641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7797:10:19", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7779:29:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "7779:33:19", - "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": 9645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7779:40:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9633, - "name": "_approve", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9621, - "src": "7749:8:19", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 9646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7749:71:19", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9647, - "nodeType": "ExpressionStatement", - "src": "7749:71:19" - } - ] - }, - "documentation": "@dev Internal function that burns an amount of the token of a given\r\naccount, deducting from the sender's allowance for said account. Uses the\r\ninternal burn function.\r\nEmits an Approval event (reflecting the reduced allowance).\r\n@param account The account whose tokens will be burnt.\r\n@param value The amount that will be burnt.\r", - "id": 9649, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burnFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9626, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9623, - "name": "account", - "nodeType": "VariableDeclaration", - "scope": 9649, - "src": "7665:15:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9622, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7665:7:19", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9625, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9649, - "src": "7682:13:19", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9624, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7682:7:19", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7664:32:19" - }, - "returnParameters": { - "id": 9627, - "nodeType": "ParameterList", - "parameters": [], - "src": "7706:0:19" - }, - "scope": 9650, - "src": "7646:182:19", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 9651, - "src": "657:7174:19" - } - ], - "src": "0:7833:19" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:20.232Z", - "devdoc": { - "details": "Implementation of the basic standard token.\r https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20.md\r Originally based on code by FirstBlood:\r https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol\r * This implementation emits additional Approval events, allowing applications to reconstruct the allowance status for\r all accounts just by listening to said events. Note that this isn't required by the specification, and other\r compliant implementations may not do it.\r", - "methods": { - "allowance(address,address)": { - "details": "Function to check the amount of tokens that an owner allowed to a spender.\r", - "params": { - "owner": "address The address which owns the funds.\r", - "spender": "address The address which will spend the funds.\r" - }, - "return": "A uint256 specifying the amount of tokens still available for the spender.\r" - }, - "approve(address,uint256)": { - "details": "Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\r Beware that changing an allowance with this method brings the risk that someone may use both the old\r and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\r race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\r https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\r", - "params": { - "spender": "The address which will spend the funds.\r", - "value": "The amount of tokens to be spent.\r" - } - }, - "balanceOf(address)": { - "details": "Gets the balance of the specified address.\r", - "params": { - "owner": "The address to query the balance of.\r" - }, - "return": "An uint256 representing the amount owned by the passed address.\r" - }, - "decreaseAllowance(address,uint256)": { - "details": "Decrease the amount of tokens that an owner allowed to a spender.\r approve should be called when allowed_[_spender] == 0. To decrement\r allowed value is better to use this function to avoid 2 calls (and wait until\r the first transaction is mined)\r From MonolithDAO Token.sol\r Emits an Approval event.\r", - "params": { - "spender": "The address which will spend the funds.\r", - "subtractedValue": "The amount of tokens to decrease the allowance by.\r" - } - }, - "increaseAllowance(address,uint256)": { - "details": "Increase the amount of tokens that an owner allowed to a spender.\r approve should be called when allowed_[_spender] == 0. To increment\r allowed value is better to use this function to avoid 2 calls (and wait until\r the first transaction is mined)\r From MonolithDAO Token.sol\r Emits an Approval event.\r", - "params": { - "addedValue": "The amount of tokens to increase the allowance by.\r", - "spender": "The address which will spend the funds.\r" - } - }, - "totalSupply()": { - "details": "Total number of tokens in existence\r" - }, - "transfer(address,uint256)": { - "details": "Transfer token for a specified address\r", - "params": { - "to": "The address to transfer to.\r", - "value": "The amount to be transferred.\r" - } - }, - "transferFrom(address,address,uint256)": { - "details": "Transfer tokens from one address to another.\r Note that while this function emits an Approval event, this is not required as per the specification,\r and other compliant implementations may not emit the event.\r", - "params": { - "from": "address The address which you want to send tokens from\r", - "to": "address The address which you want to transfer to\r", - "value": "uint256 the amount of tokens to be transferred\r" - } - } - }, - "title": "Standard ERC20 token\r " - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/ERC20Detailed.json b/src/contracts/ERC20Detailed.json deleted file mode 100644 index 60d2d28..0000000 --- a/src/contracts/ERC20Detailed.json +++ /dev/null @@ -1,10699 +0,0 @@ -{ - "contractName": "ERC20Detailed", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "spender", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "who", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "name", - "type": "string" - }, - { - "name": "symbol", - "type": "string" - }, - { - "name": "decimals", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": false, - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"who\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"symbol\",\"type\":\"string\"},{\"name\":\"decimals\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"Optional functions from the ERC20 standard.\\r\",\"methods\":{\"constructor\":{\"details\":\"Sets the values for `name`, `symbol`, and `decimals`. All three of\\r these values are immutable: they can only be set once during\\r construction.\\r\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation.\\r For example, if `decimals` equals `2`, a balance of `505` tokens should\\r be displayed to a user as `5,05` (`505 / 10 ** 2`).\\r * Tokens usually opt for a value of 18, imitating the relationship between\\r Ether and Wei.\\r * NOTE: This information is only used for _display_ purposes: it in\\r no way affects any of the arithmetic of the contract, including\\r {IERC20-balanceOf} and {IERC20-transfer}.\\r\"},\"name()\":{\"details\":\"Returns the name of the token.\\r\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the\\r name.\\r\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol\":\"ERC20Detailed\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol\":{\"keccak256\":\"0x83d94afc84930834148f8e00b2b2b624be5e2a910aeb9f508b6e3252648b304a\",\"urls\":[\"bzzr://074edfefdd7f638d059397b8b72e70605bb8eba1e750d8d512d86a5d8abaf966\",\"dweb:/ipfs/QmTPEnc9wjRf7jZ1xzh68sAjusFY5XHCTLpy79yCtCuWrA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol\":{\"keccak256\":\"0xd97866cc5c8b2c90cd57a126748771aad20762b3c708c30a4412ce17a9b79333\",\"urls\":[\"bzzr://0b6010f15f59b69c79df02987919092e5c44bd47602737eb54f4545237b5e636\",\"dweb:/ipfs/QmbPTbnWnvkWF8PRLgpmoXBr7UpJVyULmVRagrskTpkjyJ\"]}},\"version\":1}", - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity >=0.5.0 < 0.6.0;\r\n\r\nimport \"../oz/SafeMath.sol\";\r\nimport \"../oz/IERC20.sol\";\r\nimport \"../oz/ERC20.sol\";\r\n\r\n/**\r\n * @dev Optional functions from the ERC20 standard.\r\n */\r\ncontract ERC20Detailed is IERC20 {\r\n string private _name;\r\n string private _symbol;\r\n uint8 private _decimals;\r\n\r\n /**\r\n * @dev Sets the values for `name`, `symbol`, and `decimals`. All three of\r\n * these values are immutable: they can only be set once during\r\n * construction.\r\n */\r\n constructor (string memory name, string memory symbol, uint8 decimals) public {\r\n _name = name;\r\n _symbol = symbol;\r\n _decimals = decimals;\r\n }\r\n\r\n /**\r\n * @dev Returns the name of the token.\r\n */\r\n function name() public view returns (string memory) {\r\n return _name;\r\n }\r\n\r\n /**\r\n * @dev Returns the symbol of the token, usually a shorter version of the\r\n * name.\r\n */\r\n function symbol() public view returns (string memory) {\r\n return _symbol;\r\n }\r\n\r\n /**\r\n * @dev Returns the number of decimals used to get its user representation.\r\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\r\n * be displayed to a user as `5,05` (`505 / 10 ** 2`).\r\n *\r\n * Tokens usually opt for a value of 18, imitating the relationship between\r\n * Ether and Wei.\r\n *\r\n * NOTE: This information is only used for _display_ purposes: it in\r\n * no way affects any of the arithmetic of the contract, including\r\n * {IERC20-balanceOf} and {IERC20-transfer}.\r\n */\r\n function decimals() public view returns (uint8) {\r\n return _decimals;\r\n }\r\n}\r\n\r\ninterface IClaimsToken {\r\n\r\n\t/**\r\n\t * @dev This event emits when funds to be deposited are sent to the token contract\r\n\t * @param from contains the address of the sender of the received funds\r\n\t * @param fundsReceived contains the amount of funds received for distribution\r\n\t */\r\n\tevent FundsReceived(address indexed from, uint256 fundsReceived);\r\n\r\n\t/**\r\n\t * @dev This event emits when distributed funds are withdrawn by a token holder.\r\n\t * @param by contains the address of the receiver of funds\r\n\t * @param fundsWithdrawn contains the amount of funds that were withdrawn\r\n\t */\r\n\tevent FundsWithdrawn(address indexed by, uint256 fundsWithdrawn);\r\n\r\n\t/**\r\n\t * @dev Withdraws available funds for user.\r\n\t */\r\n\tfunction withdrawFunds() external payable;\r\n\r\n\t/**\r\n\t * @dev Returns the amount of funds a given address is able to withdraw currently.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t * @return A uint256 representing the available funds for a given account\r\n\t */\r\n\tfunction availableFunds(address _forAddress) external view returns (uint256);\r\n\r\n\t/**\r\n\t * @dev Get cumulative funds received by ClaimsToken.\r\n\t * @return A uint256 representing the total funds received by ClaimsToken\r\n\t */\r\n\tfunction totalReceivedFunds() external view returns (uint256);\r\n}\r\n\r\ncontract ClaimsToken is IClaimsToken, ERC20, ERC20Detailed {\r\n\r\n\tusing SafeMath for uint256;\r\n\r\n\t// cumulative funds received by this contract\r\n\tuint256 public receivedFunds;\r\n\t// cumulative funds received which were already processed for distribution - by user\r\n\tmapping (address => uint256) public processedFunds;\r\n\t// claimed but not yet withdrawn funds for a user\r\n\tmapping (address => uint256) public claimedFunds;\r\n\r\n\r\n\tconstructor(address _owner)\r\n\t\tpublic\r\n\t\tERC20Detailed(\"ClaimsToken\", \"CST\", 18)\r\n\t{\r\n\t\t_mint(_owner, 10000 * (10 ** uint256(18)));\r\n\r\n\t\treceivedFunds = 0;\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Transfer token to a specified address.\r\n\t * Claims funds for both parties, whereby the amount of tokens withdrawn\r\n\t * is inherited by the new token owner.\r\n\t * @param _to The address to transfer to\r\n\t * @param _value The amount to be transferred\r\n\t */\r\n\tfunction transfer(address _to, uint256 _value)\r\n\t\tpublic\r\n\t\treturns (bool)\r\n\t{\r\n\t\t_claimFunds(msg.sender);\r\n\t\t_claimFunds(_to);\r\n\r\n\t\treturn super.transfer(_to, _value);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @dev Transfer tokens from one address to another.\r\n\t * Claims funds for both parties, whereby the amount of tokens withdrawn\r\n\t * is inherited by the new token owner.\r\n\t * @param _from address The address which you want to send tokens from\r\n\t * @param _to address The address which you want to transfer to\r\n\t * @param _value uint256 the amount of tokens to be transferred\r\n\t */\r\n\tfunction transferFrom(address _from, address _to, uint256 _value)\r\n\t\tpublic\r\n\t\treturns (bool)\r\n\t{\r\n\t\t_claimFunds(_from);\r\n\t\t_claimFunds(_to);\r\n\r\n\t\treturn super.transferFrom(_from, _to, _value);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Get cumulative funds received by ClaimsToken.\r\n\t * @return A uint256 representing the total funds received by ClaimsToken\r\n\t */\r\n\tfunction totalReceivedFunds()\r\n\t\texternal\r\n\t\tview\r\n\t\treturns (uint256)\r\n\t{\r\n\t\treturn receivedFunds;\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Returns the amount of funds a given address is able to withdraw currently.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t * @return A uint256 representing the available funds for a given account\r\n\t */\r\n\tfunction availableFunds(address _forAddress)\r\n\t\tpublic\r\n\t\tview\r\n\t\treturns (uint256)\r\n\t{\r\n\t\treturn _calcUnprocessedFunds(_forAddress).add(claimedFunds[_forAddress]);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Increments cumulative received funds by new received funds.\r\n\t * Called when ClaimsToken receives funds.\r\n\t * @param _value Amount of tokens / Ether received\r\n\t */\r\n\tfunction _registerFunds(uint256 _value)\r\n\t\tinternal\r\n\t{\r\n\t\treceivedFunds = receivedFunds.add(_value);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Returns payout for a user which can be withdrawn or claimed.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t */\r\n\tfunction _calcUnprocessedFunds(address _forAddress)\r\n\t\tinternal\r\n\t\tview\r\n\t\treturns (uint256)\r\n\t{\r\n\t\tuint256 newReceivedFunds = receivedFunds.sub(processedFunds[_forAddress]);\r\n\t\treturn balanceOf(_forAddress).mul(newReceivedFunds).div(totalSupply());\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Claims funds for a user.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t */\r\n\tfunction _claimFunds(address _forAddress) internal {\r\n\t\tuint256 unprocessedFunds = _calcUnprocessedFunds(_forAddress);\r\n\r\n\t\tprocessedFunds[_forAddress] = receivedFunds;\r\n\t\tclaimedFunds[_forAddress] = claimedFunds[_forAddress].add(unprocessedFunds);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Sets claimed but not yet withdrawn funds to 0,\r\n\t * marks total received funds as processed and\r\n\t * returns the withdrawable amount for a user.\r\n\t * @return A uint256 representing the withdrawable funds\r\n\t */\r\n\tfunction _prepareWithdraw()\r\n\t\tinternal\r\n\t\treturns (uint256)\r\n\t{\r\n\t\tuint256 withdrawableFunds = availableFunds(msg.sender);\r\n\r\n\t\tprocessedFunds[msg.sender] = receivedFunds;\r\n\t\tclaimedFunds[msg.sender] = 0;\r\n\r\n\t\treturn withdrawableFunds;\r\n\t}\r\n}\r\n\r\ncontract ClaimsTokenERC20Extension is IClaimsToken, ClaimsToken {\r\n\r\n\t// token that ClaimsToken takes in custodianship\r\n\tIERC20 public fundsToken;\r\n\r\n\tmodifier onlyFundsToken () {\r\n\t\trequire(msg.sender == address(fundsToken), \"UNAUTHORIZED_SENDER\");\r\n\t\t_;\r\n\t}\r\n\r\n\tconstructor(address _owner, IERC20 _fundsToken)\r\n\t\tpublic\r\n\t\tClaimsToken(_owner)\r\n\t{\r\n\t\trequire(address(_fundsToken) != address(0));\r\n\r\n\t\tfundsToken = _fundsToken;\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Withdraws available funds for user.\r\n\t */\r\n\tfunction withdrawFunds()\r\n\t\texternal\r\n\t\tpayable\r\n\t{\r\n\t\trequire(msg.value == 0, \"\");\r\n\r\n\t\tuint256 withdrawableFunds = _prepareWithdraw();\r\n\r\n\t\trequire(fundsToken.transfer(msg.sender, withdrawableFunds), \"TRANSFER_FAILED\");\r\n\t}\r\n\r\n\t/**\r\n\t * @dev For ERC223.\r\n\t * Calls _registerFunds(), whereby total received funds (cumulative) gets updated.\r\n\t * @param _sender Sender of tokens\r\n\t * @param _value Amount of tokens\r\n\t */\r\n\tfunction tokenFallback(address _sender, uint256 _value, bytes memory)\r\n\t\tpublic\r\n\t\tonlyFundsToken()\r\n\t{\r\n\t\tif (_value > 0) {\r\n\t\t\t_registerFunds(_value);\r\n\t\t\temit FundsReceived(_sender, _value);\r\n\t\t}\r\n\t}\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\tokens\\ClaimsToken.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol", - "exportedSymbols": { - "ClaimsToken": [ - 10228 - ], - "ClaimsTokenERC20Extension": [ - 10327 - ], - "ERC20Detailed": [ - 9977 - ], - "IClaimsToken": [ - 10005 - ] - }, - "id": 10328, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9919, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:24" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "../oz/SafeMath.sol", - "id": 9920, - "nodeType": "ImportDirective", - "scope": 10328, - "sourceUnit": 9858, - "src": "36:28:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", - "file": "../oz/IERC20.sol", - "id": 9921, - "nodeType": "ImportDirective", - "scope": 10328, - "sourceUnit": 9720, - "src": "66:26:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol", - "file": "../oz/ERC20.sol", - "id": 9922, - "nodeType": "ImportDirective", - "scope": 10328, - "sourceUnit": 9651, - "src": "94:25:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 9923, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "212:6:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 9924, - "nodeType": "InheritanceSpecifier", - "src": "212:6:24" - } - ], - "contractDependencies": [ - 9719 - ], - "contractKind": "contract", - "documentation": "@dev Optional functions from the ERC20 standard.\r", - "fullyImplemented": false, - "id": 9977, - "linearizedBaseContracts": [ - 9977, - 9719 - ], - "name": "ERC20Detailed", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 9926, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 9977, - "src": "226:20:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 9925, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "226:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 9928, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 9977, - "src": "253:22:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 9927, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "253:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 9930, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 9977, - "src": "282:23:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9929, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "282:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 9951, - "nodeType": "Block", - "src": "581:89:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9939, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9926, - "src": "592:5:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9940, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9932, - "src": "600:4:24", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "592:12:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 9942, - "nodeType": "ExpressionStatement", - "src": "592:12:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 9945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9943, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9928, - "src": "615:7:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9944, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9934, - "src": "625:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "615:16:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 9946, - "nodeType": "ExpressionStatement", - "src": "615:16:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 9949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9947, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9930, - "src": "642:9:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9948, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9936, - "src": "654:8:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "642:20:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 9950, - "nodeType": "ExpressionStatement", - "src": "642:20:24" - } - ] - }, - "documentation": "@dev Sets the values for `name`, `symbol`, and `decimals`. All three of\r\nthese values are immutable: they can only be set once during\r\nconstruction.\r", - "id": 9952, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9937, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9932, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 9952, - "src": "516:18:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9931, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "516:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9934, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 9952, - "src": "536:20:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9933, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "536:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9936, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 9952, - "src": "558:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9935, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "558:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "515:58:24" - }, - "returnParameters": { - "id": 9938, - "nodeType": "ParameterList", - "parameters": [], - "src": "581:0:24" - }, - "scope": 9977, - "src": "503:167:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9959, - "nodeType": "Block", - "src": "792:31:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9957, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9926, - "src": "810:5:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 9956, - "id": 9958, - "nodeType": "Return", - "src": "803:12:24" - } - ] - }, - "documentation": "@dev Returns the name of the token.\r", - "id": 9960, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9953, - "nodeType": "ParameterList", - "parameters": [], - "src": "753:2:24" - }, - "returnParameters": { - "id": 9956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9955, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9960, - "src": "777:13:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9954, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "777:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "776:15:24" - }, - "scope": 9977, - "src": "740:83:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9967, - "nodeType": "Block", - "src": "996:33:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9965, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9928, - "src": "1014:7:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 9964, - "id": 9966, - "nodeType": "Return", - "src": "1007:14:24" - } - ] - }, - "documentation": "@dev Returns the symbol of the token, usually a shorter version of the\r\nname.\r", - "id": 9968, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9961, - "nodeType": "ParameterList", - "parameters": [], - "src": "957:2:24" - }, - "returnParameters": { - "id": 9964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9963, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9968, - "src": "981:13:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9962, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "981:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "980:15:24" - }, - "scope": 9977, - "src": "942:87:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9975, - "nodeType": "Block", - "src": "1640:35:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9973, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9930, - "src": "1658:9:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 9972, - "id": 9974, - "nodeType": "Return", - "src": "1651:16:24" - } - ] - }, - "documentation": "@dev Returns the number of decimals used to get its user representation.\r\nFor example, if `decimals` equals `2`, a balance of `505` tokens should\r\nbe displayed to a user as `5,05` (`505 / 10 ** 2`).\r\n\n * Tokens usually opt for a value of 18, imitating the relationship between\r\nEther and Wei.\r\n\n * NOTE: This information is only used for _display_ purposes: it in\r\nno way affects any of the arithmetic of the contract, including\r\n{IERC20-balanceOf} and {IERC20-transfer}.\r", - "id": 9976, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decimals", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9969, - "nodeType": "ParameterList", - "parameters": [], - "src": "1609:2:24" - }, - "returnParameters": { - "id": 9972, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9971, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9976, - "src": "1633:5:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9970, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1633:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1632:7:24" - }, - "scope": 9977, - "src": "1592:83:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 10328, - "src": "186:1492:24" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 10005, - "linearizedBaseContracts": [ - 10005 - ], - "name": "IClaimsToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": "@dev This event emits when funds to be deposited are sent to the token contract\r\n@param from contains the address of the sender of the received funds\r\n@param fundsReceived contains the amount of funds received for distribution\r", - "id": 9983, - "name": "FundsReceived", - "nodeType": "EventDefinition", - "parameters": { - "id": 9982, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9979, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 9983, - "src": "1983:20:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9978, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1983:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9981, - "indexed": false, - "name": "fundsReceived", - "nodeType": "VariableDeclaration", - "scope": 9983, - "src": "2005:21:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9980, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2005:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1982:45:24" - }, - "src": "1963:65:24" - }, - { - "anonymous": false, - "documentation": "@dev This event emits when distributed funds are withdrawn by a token holder.\r\n@param by contains the address of the receiver of funds\r\n@param fundsWithdrawn contains the amount of funds that were withdrawn\r", - "id": 9989, - "name": "FundsWithdrawn", - "nodeType": "EventDefinition", - "parameters": { - "id": 9988, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9985, - "indexed": true, - "name": "by", - "nodeType": "VariableDeclaration", - "scope": 9989, - "src": "2286:18:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9984, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2286:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9987, - "indexed": false, - "name": "fundsWithdrawn", - "nodeType": "VariableDeclaration", - "scope": 9989, - "src": "2306:22:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2306:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2285:44:24" - }, - "src": "2265:65:24" - }, - { - "body": null, - "documentation": "@dev Withdraws available funds for user.\r", - "id": 9992, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "withdrawFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9990, - "nodeType": "ParameterList", - "parameters": [], - "src": "2415:2:24" - }, - "returnParameters": { - "id": 9991, - "nodeType": "ParameterList", - "parameters": [], - "src": "2434:0:24" - }, - "scope": 10005, - "src": "2393:42:24", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", - "id": 9999, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "availableFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9994, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 9999, - "src": "2691:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2691:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2690:21:24" - }, - "returnParameters": { - "id": 9998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9997, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9999, - "src": "2735:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9996, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2735:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2734:9:24" - }, - "scope": 10005, - "src": "2667:77:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", - "id": 10004, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalReceivedFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10000, - "nodeType": "ParameterList", - "parameters": [], - "src": "2920:2:24" - }, - "returnParameters": { - "id": 10003, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10002, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10004, - "src": "2946:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10001, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2946:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2945:9:24" - }, - "scope": 10005, - "src": "2893:62:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 10328, - "src": "1682:1276:24" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10006, - "name": "IClaimsToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10005, - "src": "2986:12:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IClaimsToken_$10005", - "typeString": "contract IClaimsToken" - } - }, - "id": 10007, - "nodeType": "InheritanceSpecifier", - "src": "2986:12:24" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10008, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9650, - "src": "3000:5:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$9650", - "typeString": "contract ERC20" - } - }, - "id": 10009, - "nodeType": "InheritanceSpecifier", - "src": "3000:5:24" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10010, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9977, - "src": "3007:13:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$9977", - "typeString": "contract ERC20Detailed" - } - }, - "id": 10011, - "nodeType": "InheritanceSpecifier", - "src": "3007:13:24" - } - ], - "contractDependencies": [ - 9650, - 9719, - 9977, - 10005 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 10228, - "linearizedBaseContracts": [ - 10228, - 9977, - 9650, - 9719, - 10005 - ], - "name": "ClaimsToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 10014, - "libraryName": { - "contractScope": null, - "id": 10012, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "3033:8:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3027:27:24", - "typeName": { - "id": 10013, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3046:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 10016, - "name": "receivedFunds", - "nodeType": "VariableDeclaration", - "scope": 10228, - "src": "3107:28:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10015, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3107:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 10020, - "name": "processedFunds", - "nodeType": "VariableDeclaration", - "scope": 10228, - "src": "3226:50:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 10019, - "keyType": { - "id": 10017, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3235:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3226:28:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 10018, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3246:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 10024, - "name": "claimedFunds", - "nodeType": "VariableDeclaration", - "scope": 10228, - "src": "3332:48:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 10023, - "keyType": { - "id": 10021, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3341:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3332:28:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 10022, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3352:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 10050, - "nodeType": "Block", - "src": "3471:76:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10035, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10026, - "src": "3482:6:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10043, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 10036, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3490:5:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10041, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 10037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3499:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3138", - "id": 10039, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3513:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - } - ], - "id": 10038, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3505:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 10040, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3505:11:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3499:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10042, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3498:19:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3490:27:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10034, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9539, - "src": "3476:5:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 10044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3476:42:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10045, - "nodeType": "ExpressionStatement", - "src": "3476:42:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10046, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "3525:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 10047, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3541:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3525:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10049, - "nodeType": "ExpressionStatement", - "src": "3525:17:24" - } - ] - }, - "documentation": null, - "id": 10051, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "436c61696d73546f6b656e", - "id": 10029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3443:13:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_25771c0ba9a97de4408886fe552885a1751acfa735dfd2ef9c66e7b9e8871e71", - "typeString": "literal_string \"ClaimsToken\"" - }, - "value": "ClaimsToken" - }, - { - "argumentTypes": null, - "hexValue": "435354", - "id": 10030, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3458:5:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0626086d51c299e905c42b7a28a0add92109e49b12cb2bd2531769201453ab94", - "typeString": "literal_string \"CST\"" - }, - "value": "CST" - }, - { - "argumentTypes": null, - "hexValue": "3138", - "id": 10031, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3465:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - } - ], - "id": 10032, - "modifierName": { - "argumentTypes": null, - "id": 10028, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9977, - "src": "3429:13:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$9977_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3429:39:24" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10027, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10026, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 10051, - "src": "3400:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10025, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3400:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3399:16:24" - }, - "returnParameters": { - "id": 10033, - "nodeType": "ParameterList", - "parameters": [], - "src": "3471:0:24" - }, - "scope": 10228, - "src": "3388:159:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 10075, - "nodeType": "Block", - "src": "3898:95:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10061, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3915:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3915:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 10060, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "3903:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3903:23:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10064, - "nodeType": "ExpressionStatement", - "src": "3903:23:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10066, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10053, - "src": "3943:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10065, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "3931:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3931:16:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10068, - "nodeType": "ExpressionStatement", - "src": "3931:16:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10071, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10053, - "src": "3976:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10072, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10055, - "src": "3981:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10069, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "3961:5:24", - "typeDescriptions": { - "typeIdentifier": "t_super$_ClaimsToken_$10228", - "typeString": "contract super ClaimsToken" - } - }, - "id": 10070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9343, - "src": "3961:14:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 10073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3961:27:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 10059, - "id": 10074, - "nodeType": "Return", - "src": "3954:34:24" - } - ] - }, - "documentation": "@dev Transfer token to a specified address.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _to The address to transfer to\r\n@param _value The amount to be transferred\r", - "id": 10076, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10056, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10053, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 10076, - "src": "3839:11:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10052, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3839:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10055, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10076, - "src": "3852:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10054, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3852:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3838:29:24" - }, - "returnParameters": { - "id": 10059, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10058, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10076, - "src": "3890:4:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10057, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3890:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3889:6:24" - }, - "scope": 10228, - "src": "3821:172:24", - "stateMutability": "nonpayable", - "superFunction": 9343, - "visibility": "public" - }, - { - "body": { - "id": 10102, - "nodeType": "Block", - "src": "4485:101:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10088, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10078, - "src": "4502:5:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10087, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "4490:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4490:18:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10090, - "nodeType": "ExpressionStatement", - "src": "4490:18:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10092, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10080, - "src": "4525:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10091, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "4513:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4513:16:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10094, - "nodeType": "ExpressionStatement", - "src": "4513:16:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10097, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10078, - "src": "4562:5:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10098, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10080, - "src": "4569:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10099, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "4574:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10095, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "4543:5:24", - "typeDescriptions": { - "typeIdentifier": "t_super$_ClaimsToken_$10228", - "typeString": "contract super ClaimsToken" - } - }, - "id": 10096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 9397, - "src": "4543:18:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 10100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4543:38:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 10086, - "id": 10101, - "nodeType": "Return", - "src": "4536:45:24" - } - ] - }, - "documentation": "@dev Transfer tokens from one address to another.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _from address The address which you want to send tokens from\r\n@param _to address The address which you want to transfer to\r\n@param _value uint256 the amount of tokens to be transferred\r", - "id": 10103, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10083, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10078, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4411:13:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10077, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4411:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10080, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4426:11:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10079, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4426:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10082, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4439:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10081, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4439:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4410:44:24" - }, - "returnParameters": { - "id": 10086, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10085, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4477:4:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10084, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4477:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4476:6:24" - }, - "scope": 10228, - "src": "4389:197:24", - "stateMutability": "nonpayable", - "superFunction": 9397, - "visibility": "public" - }, - { - "body": { - "id": 10110, - "nodeType": "Block", - "src": "4808:30:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 10108, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "4820:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10107, - "id": 10109, - "nodeType": "Return", - "src": "4813:20:24" - } - ] - }, - "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", - "id": 10111, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalReceivedFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10104, - "nodeType": "ParameterList", - "parameters": [], - "src": "4762:2:24" - }, - "returnParameters": { - "id": 10107, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10106, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10111, - "src": "4797:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10105, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4797:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4796:9:24" - }, - "scope": 10228, - "src": "4735:103:24", - "stateMutability": "view", - "superFunction": 10004, - "visibility": "external" - }, - { - "body": { - "id": 10127, - "nodeType": "Block", - "src": "5156:82:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10122, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "5207:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10124, - "indexExpression": { - "argumentTypes": null, - "id": 10123, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10113, - "src": "5220:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5207:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10119, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10113, - "src": "5190:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10118, - "name": "_calcUnprocessedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10169, - "src": "5168:21:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5168:34:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "5168:38:24", - "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": 10125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5168:65:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10117, - "id": 10126, - "nodeType": "Return", - "src": "5161:72:24" - } - ] - }, - "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", - "id": 10128, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "availableFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10113, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 10128, - "src": "5094:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10112, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5094:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5093:21:24" - }, - "returnParameters": { - "id": 10117, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10116, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10128, - "src": "5145:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10115, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5145:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5144:9:24" - }, - "scope": 10228, - "src": "5070:168:24", - "stateMutability": "view", - "superFunction": 9999, - "visibility": "public" - }, - { - "body": { - "id": 10140, - "nodeType": "Block", - "src": "5477:51:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 10138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10133, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "5482:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10136, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10130, - "src": "5516:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10134, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "5498:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "5498:17:24", - "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": 10137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5498:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5482:41:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10139, - "nodeType": "ExpressionStatement", - "src": "5482:41:24" - } - ] - }, - "documentation": "@dev Increments cumulative received funds by new received funds.\r\nCalled when ClaimsToken receives funds.\r\n@param _value Amount of tokens / Ether received\r", - "id": 10141, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10131, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10130, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10141, - "src": "5447:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10129, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5447:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5446:16:24" - }, - "returnParameters": { - "id": 10132, - "nodeType": "ParameterList", - "parameters": [], - "src": "5477:0:24" - }, - "scope": 10228, - "src": "5423:105:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10168, - "nodeType": "Block", - "src": "5765:158:24", - "statements": [ - { - "assignments": [ - 10149 - ], - "declarations": [ - { - "constant": false, - "id": 10149, - "name": "newReceivedFunds", - "nodeType": "VariableDeclaration", - "scope": 10168, - "src": "5770:24:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10148, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5770:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10156, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10152, - "name": "processedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "5815:14:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10154, - "indexExpression": { - "argumentTypes": null, - "id": 10153, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10143, - "src": "5830:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5815:27:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10150, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "5797:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "5797:17:24", - "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": 10155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5797:46:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5770:73:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10164, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9296, - "src": "5904:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 10165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5904:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10161, - "name": "newReceivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10149, - "src": "5882:16:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10158, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10143, - "src": "5865:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10157, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9308, - "src": "5855:9:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5855:22:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 9784, - "src": "5855:26:24", - "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": 10162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5855:44:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 9808, - "src": "5855:48:24", - "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": 10166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5855:63:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10147, - "id": 10167, - "nodeType": "Return", - "src": "5848:70:24" - } - ] - }, - "documentation": "@dev Returns payout for a user which can be withdrawn or claimed.\r\n@param _forAddress Address of ClaimsToken holder\r", - "id": 10169, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_calcUnprocessedFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10144, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10143, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 10169, - "src": "5701:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5701:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5700:21:24" - }, - "returnParameters": { - "id": 10147, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10146, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10169, - "src": "5754:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10145, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5754:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5753:9:24" - }, - "scope": 10228, - "src": "5670:253:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10197, - "nodeType": "Block", - "src": "6080:201:24", - "statements": [ - { - "assignments": [ - 10175 - ], - "declarations": [ - { - "constant": false, - "id": 10175, - "name": "unprocessedFunds", - "nodeType": "VariableDeclaration", - "scope": 10197, - "src": "6085:24:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10174, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6085:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10179, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10177, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6134:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10176, - "name": "_calcUnprocessedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10169, - "src": "6112:21:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6112:34:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6085:61:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10180, - "name": "processedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "6153:14:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10182, - "indexExpression": { - "argumentTypes": null, - "id": 10181, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6168:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6153:27:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10183, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "6183:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6153:43:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10185, - "nodeType": "ExpressionStatement", - "src": "6153:43:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10186, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "6201:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10188, - "indexExpression": { - "argumentTypes": null, - "id": 10187, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6214:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6201:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10193, - "name": "unprocessedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10175, - "src": "6259:16:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10189, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "6229:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10191, - "indexExpression": { - "argumentTypes": null, - "id": 10190, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6242:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6229:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "6229:29:24", - "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": 10194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6229:47:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6201:75:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10196, - "nodeType": "ExpressionStatement", - "src": "6201:75:24" - } - ] - }, - "documentation": "@dev Claims funds for a user.\r\n@param _forAddress Address of ClaimsToken holder\r", - "id": 10198, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_claimFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10172, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10171, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 10198, - "src": "6050:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10170, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6050:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6049:21:24" - }, - "returnParameters": { - "id": 10173, - "nodeType": "ParameterList", - "parameters": [], - "src": "6080:0:24" - }, - "scope": 10228, - "src": "6029:252:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10226, - "nodeType": "Block", - "src": "6575:177:24", - "statements": [ - { - "assignments": [ - 10204 - ], - "declarations": [ - { - "constant": false, - "id": 10204, - "name": "withdrawableFunds", - "nodeType": "VariableDeclaration", - "scope": 10226, - "src": "6580:25:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10203, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6580:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10209, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10206, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6623:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6623:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 10205, - "name": "availableFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10128, - "src": "6608:14:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6608:26:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6580:54:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10210, - "name": "processedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "6641:14:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10213, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10211, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6656:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6656:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6641:26:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10214, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "6670:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6641:42:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10216, - "nodeType": "ExpressionStatement", - "src": "6641:42:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10217, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "6688:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10220, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10218, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6701:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6701:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6688:24:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 10221, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6715:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6688:28:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10223, - "nodeType": "ExpressionStatement", - "src": "6688:28:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10224, - "name": "withdrawableFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10204, - "src": "6730:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10202, - "id": 10225, - "nodeType": "Return", - "src": "6723:24:24" - } - ] - }, - "documentation": "@dev Sets claimed but not yet withdrawn funds to 0,\r\nmarks total received funds as processed and\r\nreturns the withdrawable amount for a user.\r\n@return A uint256 representing the withdrawable funds\r", - "id": 10227, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_prepareWithdraw", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10199, - "nodeType": "ParameterList", - "parameters": [], - "src": "6537:2:24" - }, - "returnParameters": { - "id": 10202, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10201, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10227, - "src": "6564:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10200, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6564:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6563:9:24" - }, - "scope": 10228, - "src": "6512:240:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 10328, - "src": "2962:3793:24" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10229, - "name": "IClaimsToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10005, - "src": "6797:12:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IClaimsToken_$10005", - "typeString": "contract IClaimsToken" - } - }, - "id": 10230, - "nodeType": "InheritanceSpecifier", - "src": "6797:12:24" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10231, - "name": "ClaimsToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10228, - "src": "6811:11:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ClaimsToken_$10228", - "typeString": "contract ClaimsToken" - } - }, - "id": 10232, - "nodeType": "InheritanceSpecifier", - "src": "6811:11:24" - } - ], - "contractDependencies": [ - 9650, - 9719, - 9977, - 10005, - 10228 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 10327, - "linearizedBaseContracts": [ - 10327, - 10228, - 9977, - 9650, - 9719, - 10005 - ], - "name": "ClaimsTokenERC20Extension", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 10234, - "name": "fundsToken", - "nodeType": "VariableDeclaration", - "scope": 10327, - "src": "6880:24:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 10233, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "6880:6:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 10247, - "nodeType": "Block", - "src": "6937:81:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 10242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10237, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6950:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6950:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10240, - "name": "fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10234, - "src": "6972:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - ], - "id": 10239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6964:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 10241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6964:19:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6950:33:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "554e415554484f52495a45445f53454e444552", - "id": 10243, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6985:21:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", - "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" - }, - "value": "UNAUTHORIZED_SENDER" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", - "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" - } - ], - "id": 10236, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "6942:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 10244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6942:65:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10245, - "nodeType": "ExpressionStatement", - "src": "6942:65:24" - }, - { - "id": 10246, - "nodeType": "PlaceholderStatement", - "src": "7012:1:24" - } - ] - }, - "documentation": null, - "id": 10248, - "name": "onlyFundsToken", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 10235, - "nodeType": "ParameterList", - "parameters": [], - "src": "6934:2:24" - }, - "src": "6910:108:24", - "visibility": "internal" - }, - { - "body": { - "id": 10272, - "nodeType": "Block", - "src": "7106:84:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 10265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10260, - "name": "_fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10252, - "src": "7127:11:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - ], - "id": 10259, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7119:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 10261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7119:20:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 10263, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7151:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 10262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7143:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 10264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7143:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7119:34:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 10258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "7111:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 10266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7111:43:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10267, - "nodeType": "ExpressionStatement", - "src": "7111:43:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10268, - "name": "fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10234, - "src": "7161:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10269, - "name": "_fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10252, - "src": "7174:11:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "src": "7161:24:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 10271, - "nodeType": "ExpressionStatement", - "src": "7161:24:24" - } - ] - }, - "documentation": null, - "id": 10273, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 10255, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10250, - "src": "7096:6:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 10256, - "modifierName": { - "argumentTypes": null, - "id": 10254, - "name": "ClaimsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10228, - "src": "7084:11:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ClaimsToken_$10228_$", - "typeString": "type(contract ClaimsToken)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7084:19:24" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10253, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10250, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 10273, - "src": "7035:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10249, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7035:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10252, - "name": "_fundsToken", - "nodeType": "VariableDeclaration", - "scope": 10273, - "src": "7051:18:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 10251, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "7051:6:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7034:36:24" - }, - "returnParameters": { - "id": 10257, - "nodeType": "ParameterList", - "parameters": [], - "src": "7106:0:24" - }, - "scope": 10327, - "src": "7023:167:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 10299, - "nodeType": "Block", - "src": "7303:175:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10277, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "7316:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7316:9:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 10279, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7329:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7316:14:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 10281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7332:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 10276, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7308:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 10282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7308:27:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10283, - "nodeType": "ExpressionStatement", - "src": "7308:27:24" - }, - { - "assignments": [ - 10285 - ], - "declarations": [ - { - "constant": false, - "id": 10285, - "name": "withdrawableFunds", - "nodeType": "VariableDeclaration", - "scope": 10299, - "src": "7342:25:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10284, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7342:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10288, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10286, - "name": "_prepareWithdraw", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10227, - "src": "7370:16:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_uint256_$", - "typeString": "function () returns (uint256)" - } - }, - "id": 10287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7370:18:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7342:46:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10292, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "7423:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7423:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 10294, - "name": "withdrawableFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10285, - "src": "7435:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10290, - "name": "fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10234, - "src": "7403:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 10291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9661, - "src": "7403:19:24", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 10295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7403:50:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5452414e534645525f4641494c4544", - "id": 10296, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7455:17:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", - "typeString": "literal_string \"TRANSFER_FAILED\"" - }, - "value": "TRANSFER_FAILED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", - "typeString": "literal_string \"TRANSFER_FAILED\"" - } - ], - "id": 10289, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7395:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 10297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7395:78:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10298, - "nodeType": "ExpressionStatement", - "src": "7395:78:24" - } - ] - }, - "documentation": "@dev Withdraws available funds for user.\r", - "id": 10300, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdrawFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10274, - "nodeType": "ParameterList", - "parameters": [], - "src": "7275:2:24" - }, - "returnParameters": { - "id": 10275, - "nodeType": "ParameterList", - "parameters": [], - "src": "7303:0:24" - }, - "scope": 10327, - "src": "7253:225:24", - "stateMutability": "payable", - "superFunction": 9992, - "visibility": "external" - }, - { - "body": { - "id": 10325, - "nodeType": "Block", - "src": "7777:100:24", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10311, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10304, - "src": "7786:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 10312, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7795:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7786:10:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 10324, - "nodeType": "IfStatement", - "src": "7782:91:24", - "trueBody": { - "id": 10323, - "nodeType": "Block", - "src": "7798:75:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10315, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10304, - "src": "7819:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10314, - "name": "_registerFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10141, - "src": "7804:14:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 10316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7804:22:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10317, - "nodeType": "ExpressionStatement", - "src": "7804:22:24" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10319, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10302, - "src": "7851:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10320, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10304, - "src": "7860:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10318, - "name": "FundsReceived", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9983, - "src": "7837:13:24", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 10321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7837:30:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10322, - "nodeType": "EmitStatement", - "src": "7832:35:24" - } - ] - } - } - ] - }, - "documentation": "@dev For ERC223.\r\nCalls _registerFunds(), whereby total received funds (cumulative) gets updated.\r\n@param _sender Sender of tokens\r\n@param _value Amount of tokens\r", - "id": 10326, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [], - "id": 10309, - "modifierName": { - "argumentTypes": null, - "id": 10308, - "name": "onlyFundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10248, - "src": "7758:14:24", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7758:16:24" - } - ], - "name": "tokenFallback", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10307, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10302, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 10326, - "src": "7698:15:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10301, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7698:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10304, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10326, - "src": "7715:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10303, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7715:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10306, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10326, - "src": "7731:12:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 10305, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7731:5:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7697:47:24" - }, - "returnParameters": { - "id": 10310, - "nodeType": "ParameterList", - "parameters": [], - "src": "7777:0:24" - }, - "scope": 10327, - "src": "7675:202:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 10328, - "src": "6759:1121:24" - } - ], - "src": "0:7882:24" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol", - "exportedSymbols": { - "ClaimsToken": [ - 10228 - ], - "ClaimsTokenERC20Extension": [ - 10327 - ], - "ERC20Detailed": [ - 9977 - ], - "IClaimsToken": [ - 10005 - ] - }, - "id": 10328, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9919, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:24" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "../oz/SafeMath.sol", - "id": 9920, - "nodeType": "ImportDirective", - "scope": 10328, - "sourceUnit": 9858, - "src": "36:28:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", - "file": "../oz/IERC20.sol", - "id": 9921, - "nodeType": "ImportDirective", - "scope": 10328, - "sourceUnit": 9720, - "src": "66:26:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol", - "file": "../oz/ERC20.sol", - "id": 9922, - "nodeType": "ImportDirective", - "scope": 10328, - "sourceUnit": 9651, - "src": "94:25:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 9923, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "212:6:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 9924, - "nodeType": "InheritanceSpecifier", - "src": "212:6:24" - } - ], - "contractDependencies": [ - 9719 - ], - "contractKind": "contract", - "documentation": "@dev Optional functions from the ERC20 standard.\r", - "fullyImplemented": false, - "id": 9977, - "linearizedBaseContracts": [ - 9977, - 9719 - ], - "name": "ERC20Detailed", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 9926, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 9977, - "src": "226:20:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 9925, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "226:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 9928, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 9977, - "src": "253:22:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 9927, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "253:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 9930, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 9977, - "src": "282:23:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9929, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "282:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 9951, - "nodeType": "Block", - "src": "581:89:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9939, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9926, - "src": "592:5:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9940, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9932, - "src": "600:4:24", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "592:12:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 9942, - "nodeType": "ExpressionStatement", - "src": "592:12:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 9945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9943, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9928, - "src": "615:7:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9944, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9934, - "src": "625:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "615:16:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 9946, - "nodeType": "ExpressionStatement", - "src": "615:16:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 9949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9947, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9930, - "src": "642:9:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9948, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9936, - "src": "654:8:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "642:20:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 9950, - "nodeType": "ExpressionStatement", - "src": "642:20:24" - } - ] - }, - "documentation": "@dev Sets the values for `name`, `symbol`, and `decimals`. All three of\r\nthese values are immutable: they can only be set once during\r\nconstruction.\r", - "id": 9952, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9937, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9932, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 9952, - "src": "516:18:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9931, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "516:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9934, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 9952, - "src": "536:20:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9933, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "536:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9936, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 9952, - "src": "558:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9935, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "558:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "515:58:24" - }, - "returnParameters": { - "id": 9938, - "nodeType": "ParameterList", - "parameters": [], - "src": "581:0:24" - }, - "scope": 9977, - "src": "503:167:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9959, - "nodeType": "Block", - "src": "792:31:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9957, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9926, - "src": "810:5:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 9956, - "id": 9958, - "nodeType": "Return", - "src": "803:12:24" - } - ] - }, - "documentation": "@dev Returns the name of the token.\r", - "id": 9960, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9953, - "nodeType": "ParameterList", - "parameters": [], - "src": "753:2:24" - }, - "returnParameters": { - "id": 9956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9955, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9960, - "src": "777:13:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9954, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "777:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "776:15:24" - }, - "scope": 9977, - "src": "740:83:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9967, - "nodeType": "Block", - "src": "996:33:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9965, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9928, - "src": "1014:7:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 9964, - "id": 9966, - "nodeType": "Return", - "src": "1007:14:24" - } - ] - }, - "documentation": "@dev Returns the symbol of the token, usually a shorter version of the\r\nname.\r", - "id": 9968, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9961, - "nodeType": "ParameterList", - "parameters": [], - "src": "957:2:24" - }, - "returnParameters": { - "id": 9964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9963, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9968, - "src": "981:13:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9962, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "981:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "980:15:24" - }, - "scope": 9977, - "src": "942:87:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9975, - "nodeType": "Block", - "src": "1640:35:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9973, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9930, - "src": "1658:9:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 9972, - "id": 9974, - "nodeType": "Return", - "src": "1651:16:24" - } - ] - }, - "documentation": "@dev Returns the number of decimals used to get its user representation.\r\nFor example, if `decimals` equals `2`, a balance of `505` tokens should\r\nbe displayed to a user as `5,05` (`505 / 10 ** 2`).\r\n\n * Tokens usually opt for a value of 18, imitating the relationship between\r\nEther and Wei.\r\n\n * NOTE: This information is only used for _display_ purposes: it in\r\nno way affects any of the arithmetic of the contract, including\r\n{IERC20-balanceOf} and {IERC20-transfer}.\r", - "id": 9976, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decimals", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9969, - "nodeType": "ParameterList", - "parameters": [], - "src": "1609:2:24" - }, - "returnParameters": { - "id": 9972, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9971, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9976, - "src": "1633:5:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9970, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1633:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1632:7:24" - }, - "scope": 9977, - "src": "1592:83:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 10328, - "src": "186:1492:24" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 10005, - "linearizedBaseContracts": [ - 10005 - ], - "name": "IClaimsToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": "@dev This event emits when funds to be deposited are sent to the token contract\r\n@param from contains the address of the sender of the received funds\r\n@param fundsReceived contains the amount of funds received for distribution\r", - "id": 9983, - "name": "FundsReceived", - "nodeType": "EventDefinition", - "parameters": { - "id": 9982, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9979, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 9983, - "src": "1983:20:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9978, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1983:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9981, - "indexed": false, - "name": "fundsReceived", - "nodeType": "VariableDeclaration", - "scope": 9983, - "src": "2005:21:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9980, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2005:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1982:45:24" - }, - "src": "1963:65:24" - }, - { - "anonymous": false, - "documentation": "@dev This event emits when distributed funds are withdrawn by a token holder.\r\n@param by contains the address of the receiver of funds\r\n@param fundsWithdrawn contains the amount of funds that were withdrawn\r", - "id": 9989, - "name": "FundsWithdrawn", - "nodeType": "EventDefinition", - "parameters": { - "id": 9988, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9985, - "indexed": true, - "name": "by", - "nodeType": "VariableDeclaration", - "scope": 9989, - "src": "2286:18:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9984, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2286:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9987, - "indexed": false, - "name": "fundsWithdrawn", - "nodeType": "VariableDeclaration", - "scope": 9989, - "src": "2306:22:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2306:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2285:44:24" - }, - "src": "2265:65:24" - }, - { - "body": null, - "documentation": "@dev Withdraws available funds for user.\r", - "id": 9992, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "withdrawFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9990, - "nodeType": "ParameterList", - "parameters": [], - "src": "2415:2:24" - }, - "returnParameters": { - "id": 9991, - "nodeType": "ParameterList", - "parameters": [], - "src": "2434:0:24" - }, - "scope": 10005, - "src": "2393:42:24", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", - "id": 9999, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "availableFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9994, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 9999, - "src": "2691:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2691:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2690:21:24" - }, - "returnParameters": { - "id": 9998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9997, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9999, - "src": "2735:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9996, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2735:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2734:9:24" - }, - "scope": 10005, - "src": "2667:77:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", - "id": 10004, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalReceivedFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10000, - "nodeType": "ParameterList", - "parameters": [], - "src": "2920:2:24" - }, - "returnParameters": { - "id": 10003, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10002, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10004, - "src": "2946:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10001, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2946:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2945:9:24" - }, - "scope": 10005, - "src": "2893:62:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 10328, - "src": "1682:1276:24" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10006, - "name": "IClaimsToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10005, - "src": "2986:12:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IClaimsToken_$10005", - "typeString": "contract IClaimsToken" - } - }, - "id": 10007, - "nodeType": "InheritanceSpecifier", - "src": "2986:12:24" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10008, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9650, - "src": "3000:5:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$9650", - "typeString": "contract ERC20" - } - }, - "id": 10009, - "nodeType": "InheritanceSpecifier", - "src": "3000:5:24" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10010, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9977, - "src": "3007:13:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$9977", - "typeString": "contract ERC20Detailed" - } - }, - "id": 10011, - "nodeType": "InheritanceSpecifier", - "src": "3007:13:24" - } - ], - "contractDependencies": [ - 9650, - 9719, - 9977, - 10005 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 10228, - "linearizedBaseContracts": [ - 10228, - 9977, - 9650, - 9719, - 10005 - ], - "name": "ClaimsToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 10014, - "libraryName": { - "contractScope": null, - "id": 10012, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "3033:8:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3027:27:24", - "typeName": { - "id": 10013, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3046:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 10016, - "name": "receivedFunds", - "nodeType": "VariableDeclaration", - "scope": 10228, - "src": "3107:28:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10015, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3107:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 10020, - "name": "processedFunds", - "nodeType": "VariableDeclaration", - "scope": 10228, - "src": "3226:50:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 10019, - "keyType": { - "id": 10017, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3235:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3226:28:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 10018, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3246:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 10024, - "name": "claimedFunds", - "nodeType": "VariableDeclaration", - "scope": 10228, - "src": "3332:48:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 10023, - "keyType": { - "id": 10021, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3341:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3332:28:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 10022, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3352:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 10050, - "nodeType": "Block", - "src": "3471:76:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10035, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10026, - "src": "3482:6:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10043, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 10036, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3490:5:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10041, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 10037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3499:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3138", - "id": 10039, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3513:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - } - ], - "id": 10038, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3505:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 10040, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3505:11:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3499:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10042, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3498:19:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3490:27:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10034, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9539, - "src": "3476:5:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 10044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3476:42:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10045, - "nodeType": "ExpressionStatement", - "src": "3476:42:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10046, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "3525:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 10047, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3541:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3525:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10049, - "nodeType": "ExpressionStatement", - "src": "3525:17:24" - } - ] - }, - "documentation": null, - "id": 10051, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "436c61696d73546f6b656e", - "id": 10029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3443:13:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_25771c0ba9a97de4408886fe552885a1751acfa735dfd2ef9c66e7b9e8871e71", - "typeString": "literal_string \"ClaimsToken\"" - }, - "value": "ClaimsToken" - }, - { - "argumentTypes": null, - "hexValue": "435354", - "id": 10030, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3458:5:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0626086d51c299e905c42b7a28a0add92109e49b12cb2bd2531769201453ab94", - "typeString": "literal_string \"CST\"" - }, - "value": "CST" - }, - { - "argumentTypes": null, - "hexValue": "3138", - "id": 10031, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3465:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - } - ], - "id": 10032, - "modifierName": { - "argumentTypes": null, - "id": 10028, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9977, - "src": "3429:13:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$9977_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3429:39:24" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10027, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10026, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 10051, - "src": "3400:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10025, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3400:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3399:16:24" - }, - "returnParameters": { - "id": 10033, - "nodeType": "ParameterList", - "parameters": [], - "src": "3471:0:24" - }, - "scope": 10228, - "src": "3388:159:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 10075, - "nodeType": "Block", - "src": "3898:95:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10061, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3915:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3915:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 10060, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "3903:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3903:23:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10064, - "nodeType": "ExpressionStatement", - "src": "3903:23:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10066, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10053, - "src": "3943:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10065, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "3931:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3931:16:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10068, - "nodeType": "ExpressionStatement", - "src": "3931:16:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10071, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10053, - "src": "3976:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10072, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10055, - "src": "3981:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10069, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "3961:5:24", - "typeDescriptions": { - "typeIdentifier": "t_super$_ClaimsToken_$10228", - "typeString": "contract super ClaimsToken" - } - }, - "id": 10070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9343, - "src": "3961:14:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 10073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3961:27:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 10059, - "id": 10074, - "nodeType": "Return", - "src": "3954:34:24" - } - ] - }, - "documentation": "@dev Transfer token to a specified address.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _to The address to transfer to\r\n@param _value The amount to be transferred\r", - "id": 10076, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10056, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10053, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 10076, - "src": "3839:11:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10052, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3839:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10055, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10076, - "src": "3852:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10054, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3852:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3838:29:24" - }, - "returnParameters": { - "id": 10059, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10058, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10076, - "src": "3890:4:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10057, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3890:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3889:6:24" - }, - "scope": 10228, - "src": "3821:172:24", - "stateMutability": "nonpayable", - "superFunction": 9343, - "visibility": "public" - }, - { - "body": { - "id": 10102, - "nodeType": "Block", - "src": "4485:101:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10088, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10078, - "src": "4502:5:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10087, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "4490:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4490:18:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10090, - "nodeType": "ExpressionStatement", - "src": "4490:18:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10092, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10080, - "src": "4525:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10091, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "4513:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4513:16:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10094, - "nodeType": "ExpressionStatement", - "src": "4513:16:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10097, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10078, - "src": "4562:5:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10098, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10080, - "src": "4569:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10099, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "4574:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10095, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "4543:5:24", - "typeDescriptions": { - "typeIdentifier": "t_super$_ClaimsToken_$10228", - "typeString": "contract super ClaimsToken" - } - }, - "id": 10096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 9397, - "src": "4543:18:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 10100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4543:38:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 10086, - "id": 10101, - "nodeType": "Return", - "src": "4536:45:24" - } - ] - }, - "documentation": "@dev Transfer tokens from one address to another.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _from address The address which you want to send tokens from\r\n@param _to address The address which you want to transfer to\r\n@param _value uint256 the amount of tokens to be transferred\r", - "id": 10103, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10083, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10078, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4411:13:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10077, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4411:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10080, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4426:11:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10079, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4426:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10082, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4439:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10081, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4439:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4410:44:24" - }, - "returnParameters": { - "id": 10086, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10085, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4477:4:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10084, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4477:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4476:6:24" - }, - "scope": 10228, - "src": "4389:197:24", - "stateMutability": "nonpayable", - "superFunction": 9397, - "visibility": "public" - }, - { - "body": { - "id": 10110, - "nodeType": "Block", - "src": "4808:30:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 10108, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "4820:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10107, - "id": 10109, - "nodeType": "Return", - "src": "4813:20:24" - } - ] - }, - "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", - "id": 10111, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalReceivedFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10104, - "nodeType": "ParameterList", - "parameters": [], - "src": "4762:2:24" - }, - "returnParameters": { - "id": 10107, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10106, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10111, - "src": "4797:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10105, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4797:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4796:9:24" - }, - "scope": 10228, - "src": "4735:103:24", - "stateMutability": "view", - "superFunction": 10004, - "visibility": "external" - }, - { - "body": { - "id": 10127, - "nodeType": "Block", - "src": "5156:82:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10122, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "5207:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10124, - "indexExpression": { - "argumentTypes": null, - "id": 10123, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10113, - "src": "5220:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5207:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10119, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10113, - "src": "5190:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10118, - "name": "_calcUnprocessedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10169, - "src": "5168:21:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5168:34:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "5168:38:24", - "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": 10125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5168:65:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10117, - "id": 10126, - "nodeType": "Return", - "src": "5161:72:24" - } - ] - }, - "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", - "id": 10128, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "availableFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10113, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 10128, - "src": "5094:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10112, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5094:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5093:21:24" - }, - "returnParameters": { - "id": 10117, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10116, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10128, - "src": "5145:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10115, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5145:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5144:9:24" - }, - "scope": 10228, - "src": "5070:168:24", - "stateMutability": "view", - "superFunction": 9999, - "visibility": "public" - }, - { - "body": { - "id": 10140, - "nodeType": "Block", - "src": "5477:51:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 10138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10133, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "5482:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10136, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10130, - "src": "5516:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10134, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "5498:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "5498:17:24", - "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": 10137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5498:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5482:41:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10139, - "nodeType": "ExpressionStatement", - "src": "5482:41:24" - } - ] - }, - "documentation": "@dev Increments cumulative received funds by new received funds.\r\nCalled when ClaimsToken receives funds.\r\n@param _value Amount of tokens / Ether received\r", - "id": 10141, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10131, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10130, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10141, - "src": "5447:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10129, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5447:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5446:16:24" - }, - "returnParameters": { - "id": 10132, - "nodeType": "ParameterList", - "parameters": [], - "src": "5477:0:24" - }, - "scope": 10228, - "src": "5423:105:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10168, - "nodeType": "Block", - "src": "5765:158:24", - "statements": [ - { - "assignments": [ - 10149 - ], - "declarations": [ - { - "constant": false, - "id": 10149, - "name": "newReceivedFunds", - "nodeType": "VariableDeclaration", - "scope": 10168, - "src": "5770:24:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10148, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5770:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10156, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10152, - "name": "processedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "5815:14:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10154, - "indexExpression": { - "argumentTypes": null, - "id": 10153, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10143, - "src": "5830:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5815:27:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10150, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "5797:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "5797:17:24", - "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": 10155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5797:46:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5770:73:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10164, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9296, - "src": "5904:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 10165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5904:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10161, - "name": "newReceivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10149, - "src": "5882:16:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10158, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10143, - "src": "5865:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10157, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9308, - "src": "5855:9:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5855:22:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 9784, - "src": "5855:26:24", - "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": 10162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5855:44:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 9808, - "src": "5855:48:24", - "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": 10166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5855:63:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10147, - "id": 10167, - "nodeType": "Return", - "src": "5848:70:24" - } - ] - }, - "documentation": "@dev Returns payout for a user which can be withdrawn or claimed.\r\n@param _forAddress Address of ClaimsToken holder\r", - "id": 10169, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_calcUnprocessedFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10144, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10143, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 10169, - "src": "5701:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5701:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5700:21:24" - }, - "returnParameters": { - "id": 10147, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10146, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10169, - "src": "5754:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10145, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5754:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5753:9:24" - }, - "scope": 10228, - "src": "5670:253:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10197, - "nodeType": "Block", - "src": "6080:201:24", - "statements": [ - { - "assignments": [ - 10175 - ], - "declarations": [ - { - "constant": false, - "id": 10175, - "name": "unprocessedFunds", - "nodeType": "VariableDeclaration", - "scope": 10197, - "src": "6085:24:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10174, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6085:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10179, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10177, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6134:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10176, - "name": "_calcUnprocessedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10169, - "src": "6112:21:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6112:34:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6085:61:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10180, - "name": "processedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "6153:14:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10182, - "indexExpression": { - "argumentTypes": null, - "id": 10181, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6168:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6153:27:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10183, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "6183:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6153:43:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10185, - "nodeType": "ExpressionStatement", - "src": "6153:43:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10186, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "6201:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10188, - "indexExpression": { - "argumentTypes": null, - "id": 10187, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6214:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6201:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10193, - "name": "unprocessedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10175, - "src": "6259:16:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10189, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "6229:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10191, - "indexExpression": { - "argumentTypes": null, - "id": 10190, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6242:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6229:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "6229:29:24", - "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": 10194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6229:47:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6201:75:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10196, - "nodeType": "ExpressionStatement", - "src": "6201:75:24" - } - ] - }, - "documentation": "@dev Claims funds for a user.\r\n@param _forAddress Address of ClaimsToken holder\r", - "id": 10198, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_claimFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10172, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10171, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 10198, - "src": "6050:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10170, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6050:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6049:21:24" - }, - "returnParameters": { - "id": 10173, - "nodeType": "ParameterList", - "parameters": [], - "src": "6080:0:24" - }, - "scope": 10228, - "src": "6029:252:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10226, - "nodeType": "Block", - "src": "6575:177:24", - "statements": [ - { - "assignments": [ - 10204 - ], - "declarations": [ - { - "constant": false, - "id": 10204, - "name": "withdrawableFunds", - "nodeType": "VariableDeclaration", - "scope": 10226, - "src": "6580:25:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10203, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6580:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10209, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10206, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6623:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6623:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 10205, - "name": "availableFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10128, - "src": "6608:14:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6608:26:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6580:54:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10210, - "name": "processedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "6641:14:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10213, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10211, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6656:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6656:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6641:26:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10214, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "6670:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6641:42:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10216, - "nodeType": "ExpressionStatement", - "src": "6641:42:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10217, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "6688:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10220, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10218, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6701:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6701:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6688:24:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 10221, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6715:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6688:28:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10223, - "nodeType": "ExpressionStatement", - "src": "6688:28:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10224, - "name": "withdrawableFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10204, - "src": "6730:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10202, - "id": 10225, - "nodeType": "Return", - "src": "6723:24:24" - } - ] - }, - "documentation": "@dev Sets claimed but not yet withdrawn funds to 0,\r\nmarks total received funds as processed and\r\nreturns the withdrawable amount for a user.\r\n@return A uint256 representing the withdrawable funds\r", - "id": 10227, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_prepareWithdraw", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10199, - "nodeType": "ParameterList", - "parameters": [], - "src": "6537:2:24" - }, - "returnParameters": { - "id": 10202, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10201, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10227, - "src": "6564:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10200, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6564:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6563:9:24" - }, - "scope": 10228, - "src": "6512:240:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 10328, - "src": "2962:3793:24" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10229, - "name": "IClaimsToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10005, - "src": "6797:12:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IClaimsToken_$10005", - "typeString": "contract IClaimsToken" - } - }, - "id": 10230, - "nodeType": "InheritanceSpecifier", - "src": "6797:12:24" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10231, - "name": "ClaimsToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10228, - "src": "6811:11:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ClaimsToken_$10228", - "typeString": "contract ClaimsToken" - } - }, - "id": 10232, - "nodeType": "InheritanceSpecifier", - "src": "6811:11:24" - } - ], - "contractDependencies": [ - 9650, - 9719, - 9977, - 10005, - 10228 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 10327, - "linearizedBaseContracts": [ - 10327, - 10228, - 9977, - 9650, - 9719, - 10005 - ], - "name": "ClaimsTokenERC20Extension", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 10234, - "name": "fundsToken", - "nodeType": "VariableDeclaration", - "scope": 10327, - "src": "6880:24:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 10233, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "6880:6:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 10247, - "nodeType": "Block", - "src": "6937:81:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 10242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10237, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6950:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6950:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10240, - "name": "fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10234, - "src": "6972:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - ], - "id": 10239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6964:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 10241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6964:19:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6950:33:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "554e415554484f52495a45445f53454e444552", - "id": 10243, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6985:21:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", - "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" - }, - "value": "UNAUTHORIZED_SENDER" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", - "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" - } - ], - "id": 10236, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "6942:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 10244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6942:65:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10245, - "nodeType": "ExpressionStatement", - "src": "6942:65:24" - }, - { - "id": 10246, - "nodeType": "PlaceholderStatement", - "src": "7012:1:24" - } - ] - }, - "documentation": null, - "id": 10248, - "name": "onlyFundsToken", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 10235, - "nodeType": "ParameterList", - "parameters": [], - "src": "6934:2:24" - }, - "src": "6910:108:24", - "visibility": "internal" - }, - { - "body": { - "id": 10272, - "nodeType": "Block", - "src": "7106:84:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 10265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10260, - "name": "_fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10252, - "src": "7127:11:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - ], - "id": 10259, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7119:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 10261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7119:20:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 10263, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7151:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 10262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7143:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 10264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7143:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7119:34:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 10258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "7111:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 10266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7111:43:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10267, - "nodeType": "ExpressionStatement", - "src": "7111:43:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10268, - "name": "fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10234, - "src": "7161:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10269, - "name": "_fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10252, - "src": "7174:11:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "src": "7161:24:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 10271, - "nodeType": "ExpressionStatement", - "src": "7161:24:24" - } - ] - }, - "documentation": null, - "id": 10273, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 10255, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10250, - "src": "7096:6:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 10256, - "modifierName": { - "argumentTypes": null, - "id": 10254, - "name": "ClaimsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10228, - "src": "7084:11:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ClaimsToken_$10228_$", - "typeString": "type(contract ClaimsToken)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7084:19:24" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10253, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10250, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 10273, - "src": "7035:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10249, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7035:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10252, - "name": "_fundsToken", - "nodeType": "VariableDeclaration", - "scope": 10273, - "src": "7051:18:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 10251, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "7051:6:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7034:36:24" - }, - "returnParameters": { - "id": 10257, - "nodeType": "ParameterList", - "parameters": [], - "src": "7106:0:24" - }, - "scope": 10327, - "src": "7023:167:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 10299, - "nodeType": "Block", - "src": "7303:175:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10277, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "7316:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7316:9:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 10279, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7329:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7316:14:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 10281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7332:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 10276, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7308:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 10282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7308:27:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10283, - "nodeType": "ExpressionStatement", - "src": "7308:27:24" - }, - { - "assignments": [ - 10285 - ], - "declarations": [ - { - "constant": false, - "id": 10285, - "name": "withdrawableFunds", - "nodeType": "VariableDeclaration", - "scope": 10299, - "src": "7342:25:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10284, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7342:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10288, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10286, - "name": "_prepareWithdraw", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10227, - "src": "7370:16:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_uint256_$", - "typeString": "function () returns (uint256)" - } - }, - "id": 10287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7370:18:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7342:46:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10292, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "7423:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7423:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 10294, - "name": "withdrawableFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10285, - "src": "7435:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10290, - "name": "fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10234, - "src": "7403:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 10291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9661, - "src": "7403:19:24", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 10295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7403:50:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5452414e534645525f4641494c4544", - "id": 10296, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7455:17:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", - "typeString": "literal_string \"TRANSFER_FAILED\"" - }, - "value": "TRANSFER_FAILED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", - "typeString": "literal_string \"TRANSFER_FAILED\"" - } - ], - "id": 10289, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7395:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 10297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7395:78:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10298, - "nodeType": "ExpressionStatement", - "src": "7395:78:24" - } - ] - }, - "documentation": "@dev Withdraws available funds for user.\r", - "id": 10300, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdrawFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10274, - "nodeType": "ParameterList", - "parameters": [], - "src": "7275:2:24" - }, - "returnParameters": { - "id": 10275, - "nodeType": "ParameterList", - "parameters": [], - "src": "7303:0:24" - }, - "scope": 10327, - "src": "7253:225:24", - "stateMutability": "payable", - "superFunction": 9992, - "visibility": "external" - }, - { - "body": { - "id": 10325, - "nodeType": "Block", - "src": "7777:100:24", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10311, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10304, - "src": "7786:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 10312, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7795:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7786:10:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 10324, - "nodeType": "IfStatement", - "src": "7782:91:24", - "trueBody": { - "id": 10323, - "nodeType": "Block", - "src": "7798:75:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10315, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10304, - "src": "7819:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10314, - "name": "_registerFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10141, - "src": "7804:14:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 10316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7804:22:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10317, - "nodeType": "ExpressionStatement", - "src": "7804:22:24" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10319, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10302, - "src": "7851:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10320, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10304, - "src": "7860:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10318, - "name": "FundsReceived", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9983, - "src": "7837:13:24", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 10321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7837:30:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10322, - "nodeType": "EmitStatement", - "src": "7832:35:24" - } - ] - } - } - ] - }, - "documentation": "@dev For ERC223.\r\nCalls _registerFunds(), whereby total received funds (cumulative) gets updated.\r\n@param _sender Sender of tokens\r\n@param _value Amount of tokens\r", - "id": 10326, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [], - "id": 10309, - "modifierName": { - "argumentTypes": null, - "id": 10308, - "name": "onlyFundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10248, - "src": "7758:14:24", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7758:16:24" - } - ], - "name": "tokenFallback", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10307, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10302, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 10326, - "src": "7698:15:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10301, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7698:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10304, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10326, - "src": "7715:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10303, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7715:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10306, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10326, - "src": "7731:12:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 10305, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7731:5:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7697:47:24" - }, - "returnParameters": { - "id": 10310, - "nodeType": "ParameterList", - "parameters": [], - "src": "7777:0:24" - }, - "scope": 10327, - "src": "7675:202:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 10328, - "src": "6759:1121:24" - } - ], - "src": "0:7882:24" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:20.291Z", - "devdoc": { - "details": "Optional functions from the ERC20 standard.\r", - "methods": { - "constructor": { - "details": "Sets the values for `name`, `symbol`, and `decimals`. All three of\r these values are immutable: they can only be set once during\r construction.\r" - }, - "decimals()": { - "details": "Returns the number of decimals used to get its user representation.\r For example, if `decimals` equals `2`, a balance of `505` tokens should\r be displayed to a user as `5,05` (`505 / 10 ** 2`).\r * Tokens usually opt for a value of 18, imitating the relationship between\r Ether and Wei.\r * NOTE: This information is only used for _display_ purposes: it in\r no way affects any of the arithmetic of the contract, including\r {IERC20-balanceOf} and {IERC20-transfer}.\r" - }, - "name()": { - "details": "Returns the name of the token.\r" - }, - "symbol()": { - "details": "Returns the symbol of the token, usually a shorter version of the\r name.\r" - } - } - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/ERC20Token.json b/src/contracts/ERC20Token.json deleted file mode 100644 index 9f7746b..0000000 --- a/src/contracts/ERC20Token.json +++ /dev/null @@ -1,4804 +0,0 @@ -{ - "contractName": "ERC20Token", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_from", - "type": "address" - }, - { - "indexed": false, - "name": "_to", - "type": "address" - }, - { - "indexed": false, - "name": "_value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_owner", - "type": "address" - }, - { - "indexed": false, - "name": "_spender", - "type": "address" - }, - { - "indexed": false, - "name": "_value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "balance", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_spender", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - }, - { - "name": "_spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "remaining", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"remaining\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC20Token.sol\":\"ERC20Token\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC20Token.sol\":{\"keccak256\":\"0x3148ace3c8e413e3e8cb9181826bbb7382fe8fd691fbbe398b0f3291c5ac88f6\",\"urls\":[\"bzzr://f6dae48bd61cf187d97f6dd7b1f14c4216ccda99c9173d87ac59465f9d3a030b\",\"dweb:/ipfs/QmbDe5WTm8sWmUWRbKxtWUrSbyS1T5vgkiVscK94RJb6iS\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/Token.sol\":{\"keccak256\":\"0xdee24120ae0fa14b9200dfa97babfa107aaf668b52eeda93ad672260ede4b74c\",\"urls\":[\"bzzr://2144e06fcebb6227647c4362c7075680ea03074e80e51d37cad0b09092ff06a5\",\"dweb:/ipfs/QmYgcfKEH2DT6brtajHvPRdu6my6CRWH86TXmZCMZeGjfK\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b50610400806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063095ea7b31461006757806318160ddd146100a757806323b872dd146100c157806370a08231146100f7578063a9059cbb1461011d578063dd62ed3e14610149575b600080fd5b6100936004803603604081101561007d57600080fd5b506001600160a01b038135169060200135610177565b604080519115158252519081900360200190f35b6100af6101e9565b60408051918252519081900360200190f35b610093600480360360608110156100d757600080fd5b506001600160a01b038135811691602081013590911690604001356101ef565b6100af6004803603602081101561010d57600080fd5b50356001600160a01b03166102e4565b6100936004803603604081101561013357600080fd5b506001600160a01b0381351690602001356102ff565b6100af6004803603604081101561015f57600080fd5b506001600160a01b03813581169160200135166103a0565b3360008181526002602090815260408083206001600160a01b0387168085529083528184208690558151948552918401919091528281018490525190917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925919081900360600190a15060015b92915050565b60005481565b6001600160a01b038316600090815260016020526040812054821180159061023a57506001600160a01b03841660009081526002602090815260408083203384529091529020548211155b80156102465750600082115b156102d9576001600160a01b038084166000818152600160209081526040808320805488019055938816808352848320805488900390556002825284832033845282529184902080548790039055835191825281019190915280820184905290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a15060016102dd565b5060005b9392505050565b6001600160a01b031660009081526001602052604090205490565b33600090815260016020526040812054821180159061031e5750600082115b1561039857336000818152600160209081526040808320805487900390556001600160a01b03871680845292819020805487019055805193845290830191909152818101849052517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a15060016101e3565b5060006101e3565b6001600160a01b0391821660009081526002602090815260408083209390941682529190915220549056fea265627a7a723058208681f53220fa323e78d439b4571dc752917e081f7e68b24ee6dec3910910b53464736f6c63430005090032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100625760003560e01c8063095ea7b31461006757806318160ddd146100a757806323b872dd146100c157806370a08231146100f7578063a9059cbb1461011d578063dd62ed3e14610149575b600080fd5b6100936004803603604081101561007d57600080fd5b506001600160a01b038135169060200135610177565b604080519115158252519081900360200190f35b6100af6101e9565b60408051918252519081900360200190f35b610093600480360360608110156100d757600080fd5b506001600160a01b038135811691602081013590911690604001356101ef565b6100af6004803603602081101561010d57600080fd5b50356001600160a01b03166102e4565b6100936004803603604081101561013357600080fd5b506001600160a01b0381351690602001356102ff565b6100af6004803603604081101561015f57600080fd5b506001600160a01b03813581169160200135166103a0565b3360008181526002602090815260408083206001600160a01b0387168085529083528184208690558151948552918401919091528281018490525190917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925919081900360600190a15060015b92915050565b60005481565b6001600160a01b038316600090815260016020526040812054821180159061023a57506001600160a01b03841660009081526002602090815260408083203384529091529020548211155b80156102465750600082115b156102d9576001600160a01b038084166000818152600160209081526040808320805488019055938816808352848320805488900390556002825284832033845282529184902080548790039055835191825281019190915280820184905290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a15060016102dd565b5060005b9392505050565b6001600160a01b031660009081526001602052604090205490565b33600090815260016020526040812054821180159061031e5750600082115b1561039857336000818152600160209081526040808320805487900390556001600160a01b03871680845292819020805487019055805193845290830191909152818101849052517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a15060016101e3565b5060006101e3565b6001600160a01b0391821660009081526002602090815260408083209390941682529190915220549056fea265627a7a723058208681f53220fa323e78d439b4571dc752917e081f7e68b24ee6dec3910910b53464736f6c63430005090032", - "sourceMap": "406:2008:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;406:2008:7;;;;;;;", - "deployedSourceMap": "406:2008:7:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;406:2008:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1937:214;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1937:214:7;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;629:26:11;;;:::i;:::-;;;;;;;;;;;;;;;;1133:673:7;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1133:673:7;;;;;;;;;;;;;;;;;:::i;1814:115::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1814:115:7;-1:-1:-1;;;;;1814:115:7;;:::i;444:681::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;444:681:7;;;;;;;;:::i;2159:142::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2159:142:7;;;;;;;;;;:::i;1937:214::-;2037:10;2004:12;2029:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;2029:29:7;;;;;;;;;;;:38;;;2083;;;;;;;;;;;;;;;;;;;2004:12;;2083:38;;;;;;;;;;-1:-1:-1;2139:4:7;1937:214;;;;;:::o;629:26:11:-;;;;:::o;1133:673:7:-;-1:-1:-1;;;;;1480:15:7;;1215:12;1480:15;;;:8;:15;;;;;;:25;-1:-1:-1;1480:25:7;;;:65;;-1:-1:-1;;;;;;1509:14:7;;;;;;:7;:14;;;;;;;;1524:10;1509:26;;;;;;;;:36;-1:-1:-1;1509:36:7;1480:65;:79;;;;;1558:1;1549:6;:10;1480:79;1476:323;;;-1:-1:-1;;;;;1576:13:7;;;;;;;:8;:13;;;;;;;;:23;;;;;;1614:15;;;;;;;;;:25;;;;;;;1654:7;:14;;;;;1669:10;1654:26;;;;;;;;:36;;;;;;;1710:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1760:4:7;1753:11;;1476:323;-1:-1:-1;1791:5:7;1476:323;1133:673;;;;;:::o;1814:115::-;-1:-1:-1;;;;;1905:16:7;1870:15;1905:16;;;:8;:16;;;;;;;1814:115::o;444:681::-;884:10;507:12;875:20;;;:8;:20;;;;;;:30;-1:-1:-1;875:30:7;;;:44;;;918:1;909:6;:10;875:44;871:247;;;945:10;936:20;;;;:8;:20;;;;;;;;:30;;;;;;;-1:-1:-1;;;;;981:13:7;;;;;;;;;:23;;;;;;1024:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1079:4:7;1072:11;;871:247;-1:-1:-1;1110:5:7;1103:12;;2159:142;-1:-1:-1;;;;;2268:15:7;;;2233:17;2268:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;2159:142::o", - "source": "/*\r\nYou should inherit from StandardToken or, for a token like you would want to\r\ndeploy in something like Mist, see HumanStandardToken.sol.\r\n(This implements ONLY the standard functions and NOTHING else.\r\nIf you deploy this, you won't have anything useful.)\r\n\r\nImplements ERC 20 Token standard: https://github.com/ethereum/EIPs/issues/20\r\n.*/\r\npragma solidity >=0.5.0 < 0.6.0;\r\n\r\nimport \"./Token.sol\";\r\n\r\ncontract ERC20Token is Token {\r\n\r\n function transfer(address _to, uint256 _value) public returns (bool success) {\r\n //Default assumes totalSupply can't be over max (2^256 - 1).\r\n //If your token leaves out totalSupply and can issue more tokens as time goes on, you need to check if it doesn't wrap.\r\n //Replace the if with this one instead.\r\n //if (balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]) {\r\n if (balances[msg.sender] >= _value && _value > 0) {\r\n balances[msg.sender] -= _value;\r\n balances[_to] += _value;\r\n emit Transfer(msg.sender, _to, _value);\r\n return true;\r\n } else { return false; }\r\n }\r\n\r\n function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {\r\n //same as above. Replace this line with the following if you want to protect against wrapping uints.\r\n //if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value > balances[_to]) {\r\n if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0) {\r\n balances[_to] += _value;\r\n balances[_from] -= _value;\r\n allowed[_from][msg.sender] -= _value;\r\n emit Transfer(_from, _to, _value);\r\n return true;\r\n } else { return false; }\r\n }\r\n\r\n function balanceOf(address _owner) view public returns (uint256 balance) {\r\n return balances[_owner];\r\n }\r\n\r\n function approve(address _spender, uint256 _value) public returns (bool success) {\r\n allowed[msg.sender][_spender] = _value;\r\n emit Approval(msg.sender, _spender, _value);\r\n return true;\r\n }\r\n\r\n function allowance(address _owner, address _spender) view public returns (uint256 remaining) {\r\n return allowed[_owner][_spender];\r\n }\r\n\r\n mapping (address => uint256) balances;\r\n mapping (address => mapping (address => uint256)) allowed;\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\inherited\\ERC20Token.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC20Token.sol", - "exportedSymbols": { - "ERC20Token": [ - 4989 - ] - }, - "id": 4990, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4808, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "345:32:7" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/Token.sol", - "file": "./Token.sol", - "id": 4809, - "nodeType": "ImportDirective", - "scope": 4990, - "sourceUnit": 6138, - "src": "381:21:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 4810, - "name": "Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6137, - "src": "429:5:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Token_$6137", - "typeString": "contract Token" - } - }, - "id": 4811, - "nodeType": "InheritanceSpecifier", - "src": "429:5:7" - } - ], - "contractDependencies": [ - 6137 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 4989, - "linearizedBaseContracts": [ - 4989, - 6137 - ], - "name": "ERC20Token", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 4857, - "nodeType": "Block", - "src": "521:604:7", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 4829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4820, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "875:8:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4823, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4821, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "884:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "884:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "875:20:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 4824, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4815, - "src": "899:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "875:30:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4826, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4815, - "src": "909:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4827, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "918:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "909:10:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "875:44:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 4855, - "nodeType": "Block", - "src": "1101:17:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 4853, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1110:5:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 4819, - "id": 4854, - "nodeType": "Return", - "src": "1103:12:7" - } - ] - }, - "id": 4856, - "nodeType": "IfStatement", - "src": "871:247:7", - "trueBody": { - "id": 4852, - "nodeType": "Block", - "src": "921:174:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4830, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "936:8:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4833, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4831, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "945:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "945:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "936:20:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 4834, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4815, - "src": "960:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "936:30:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4836, - "nodeType": "ExpressionStatement", - "src": "936:30:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 4841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4837, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "981:8:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4839, - "indexExpression": { - "argumentTypes": null, - "id": 4838, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4813, - "src": "990:3:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "981:13:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 4840, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4815, - "src": "998:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "981:23:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4842, - "nodeType": "ExpressionStatement", - "src": "981:23:7" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4844, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "1033:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1033:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 4846, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4813, - "src": "1045:3:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4847, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4815, - "src": "1050:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4843, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6128, - "src": "1024:8:7", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 4848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1024:33:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4849, - "nodeType": "EmitStatement", - "src": "1019:38:7" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 4850, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1079:4:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 4819, - "id": 4851, - "nodeType": "Return", - "src": "1072:11:7" - } - ] - } - } - ] - }, - "documentation": null, - "id": 4858, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4816, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4813, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 4858, - "src": "462:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4812, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "462:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4815, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 4858, - "src": "475:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4814, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "475:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "461:29:7" - }, - "returnParameters": { - "id": 4819, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4818, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 4858, - "src": "507:12:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4817, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "507:4:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "506:14:7" - }, - "scope": 4989, - "src": "444:681:7", - "stateMutability": "nonpayable", - "superFunction": 6091, - "visibility": "public" - }, - { - "body": { - "id": 4921, - "nodeType": "Block", - "src": "1229:577:7", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 4886, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 4882, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4869, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "1480:8:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4871, - "indexExpression": { - "argumentTypes": null, - "id": 4870, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4860, - "src": "1489:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1480:15:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 4872, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4864, - "src": "1499:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1480:25:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4881, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4874, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4988, - "src": "1509:7:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 4876, - "indexExpression": { - "argumentTypes": null, - "id": 4875, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4860, - "src": "1517:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1509:14:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4879, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4877, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "1524:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1524:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1509:26:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 4880, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4864, - "src": "1539:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1509:36:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1480:65:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4883, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4864, - "src": "1549:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4884, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1558:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1549:10:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1480:79:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 4919, - "nodeType": "Block", - "src": "1782:17:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 4917, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1791:5:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 4868, - "id": 4918, - "nodeType": "Return", - "src": "1784:12:7" - } - ] - }, - "id": 4920, - "nodeType": "IfStatement", - "src": "1476:323:7", - "trueBody": { - "id": 4916, - "nodeType": "Block", - "src": "1561:215:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4887, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "1576:8:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4889, - "indexExpression": { - "argumentTypes": null, - "id": 4888, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4862, - "src": "1585:3:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1576:13:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 4890, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4864, - "src": "1593:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1576:23:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4892, - "nodeType": "ExpressionStatement", - "src": "1576:23:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 4897, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4893, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "1614:8:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4895, - "indexExpression": { - "argumentTypes": null, - "id": 4894, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4860, - "src": "1623:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1614:15:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 4896, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4864, - "src": "1633:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1614:25:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4898, - "nodeType": "ExpressionStatement", - "src": "1614:25:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 4906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4899, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4988, - "src": "1654:7:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 4903, - "indexExpression": { - "argumentTypes": null, - "id": 4900, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4860, - "src": "1662:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1654:14:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4904, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4901, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "1669:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1669:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1654:26:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 4905, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4864, - "src": "1684:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1654:36:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4907, - "nodeType": "ExpressionStatement", - "src": "1654:36:7" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4909, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4860, - "src": "1719:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4910, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4862, - "src": "1726:3:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4911, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4864, - "src": "1731:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4908, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6128, - "src": "1710:8:7", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 4912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1710:28:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4913, - "nodeType": "EmitStatement", - "src": "1705:33:7" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 4914, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1760:4:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 4868, - "id": 4915, - "nodeType": "Return", - "src": "1753:11:7" - } - ] - } - } - ] - }, - "documentation": null, - "id": 4922, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4865, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4860, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 4922, - "src": "1155:13:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4859, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1155:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4862, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 4922, - "src": "1170:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4861, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1170:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4864, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 4922, - "src": "1183:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4863, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1183:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1154:44:7" - }, - "returnParameters": { - "id": 4868, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4867, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 4922, - "src": "1215:12:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4866, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1215:4:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1214:14:7" - }, - "scope": 4989, - "src": "1133:673:7", - "stateMutability": "nonpayable", - "superFunction": 6102, - "visibility": "public" - }, - { - "body": { - "id": 4933, - "nodeType": "Block", - "src": "1887:42:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4929, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "1905:8:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4931, - "indexExpression": { - "argumentTypes": null, - "id": 4930, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4924, - "src": "1914:6:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1905:16:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4928, - "id": 4932, - "nodeType": "Return", - "src": "1898:23:7" - } - ] - }, - "documentation": null, - "id": 4934, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4925, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4924, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 4934, - "src": "1833:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4923, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1833:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1832:16:7" - }, - "returnParameters": { - "id": 4928, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4927, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 4934, - "src": "1870:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4926, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1870:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1869:17:7" - }, - "scope": 4989, - "src": "1814:115:7", - "stateMutability": "view", - "superFunction": 6082, - "visibility": "public" - }, - { - "body": { - "id": 4961, - "nodeType": "Block", - "src": "2018:133:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4943, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4988, - "src": "2029:7:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 4947, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4944, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "2037:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2037:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2029:19:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4948, - "indexExpression": { - "argumentTypes": null, - "id": 4946, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4936, - "src": "2049:8:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2029:29:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4949, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4938, - "src": "2061:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2029:38:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4951, - "nodeType": "ExpressionStatement", - "src": "2029:38:7" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4953, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "2092:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4954, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2092:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 4955, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4936, - "src": "2104:8:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4956, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4938, - "src": "2114:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4952, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6136, - "src": "2083:8:7", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 4957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2083:38:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4958, - "nodeType": "EmitStatement", - "src": "2078:43:7" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 4959, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2139:4:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 4942, - "id": 4960, - "nodeType": "Return", - "src": "2132:11:7" - } - ] - }, - "documentation": null, - "id": 4962, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4939, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4936, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 4962, - "src": "1954:16:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4935, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1954:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4938, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 4962, - "src": "1972:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4937, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1972:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1953:34:7" - }, - "returnParameters": { - "id": 4942, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4941, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 4962, - "src": "2004:12:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4940, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2004:4:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2003:14:7" - }, - "scope": 4989, - "src": "1937:214:7", - "stateMutability": "nonpayable", - "superFunction": 6111, - "visibility": "public" - }, - { - "body": { - "id": 4977, - "nodeType": "Block", - "src": "2252:49:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4971, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4988, - "src": "2268:7:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 4973, - "indexExpression": { - "argumentTypes": null, - "id": 4972, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4964, - "src": "2276:6:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2268:15:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4975, - "indexExpression": { - "argumentTypes": null, - "id": 4974, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4966, - "src": "2284:8:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2268:25:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4970, - "id": 4976, - "nodeType": "Return", - "src": "2261:32:7" - } - ] - }, - "documentation": null, - "id": 4978, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4964, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 4978, - "src": "2178:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4963, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2178:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4966, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 4978, - "src": "2194:16:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4965, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2194:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2177:34:7" - }, - "returnParameters": { - "id": 4970, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4969, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 4978, - "src": "2233:17:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4968, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2233:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2232:19:7" - }, - "scope": 4989, - "src": "2159:142:7", - "stateMutability": "view", - "superFunction": 6120, - "visibility": "public" - }, - { - "constant": false, - "id": 4982, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 4989, - "src": "2309:37:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 4981, - "keyType": { - "id": 4979, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2318:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2309:28:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 4980, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2329:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4988, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 4989, - "src": "2353:57:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 4987, - "keyType": { - "id": 4983, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2362:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2353:49:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 4986, - "keyType": { - "id": 4984, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2382:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2373:28:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 4985, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2393:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - } - ], - "scope": 4990, - "src": "406:2008:7" - } - ], - "src": "345:2071:7" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC20Token.sol", - "exportedSymbols": { - "ERC20Token": [ - 4989 - ] - }, - "id": 4990, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4808, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "345:32:7" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/Token.sol", - "file": "./Token.sol", - "id": 4809, - "nodeType": "ImportDirective", - "scope": 4990, - "sourceUnit": 6138, - "src": "381:21:7", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 4810, - "name": "Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6137, - "src": "429:5:7", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Token_$6137", - "typeString": "contract Token" - } - }, - "id": 4811, - "nodeType": "InheritanceSpecifier", - "src": "429:5:7" - } - ], - "contractDependencies": [ - 6137 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 4989, - "linearizedBaseContracts": [ - 4989, - 6137 - ], - "name": "ERC20Token", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 4857, - "nodeType": "Block", - "src": "521:604:7", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 4829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4825, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4820, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "875:8:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4823, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4821, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "884:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "884:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "875:20:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 4824, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4815, - "src": "899:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "875:30:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4828, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4826, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4815, - "src": "909:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4827, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "918:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "909:10:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "875:44:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 4855, - "nodeType": "Block", - "src": "1101:17:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 4853, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1110:5:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 4819, - "id": 4854, - "nodeType": "Return", - "src": "1103:12:7" - } - ] - }, - "id": 4856, - "nodeType": "IfStatement", - "src": "871:247:7", - "trueBody": { - "id": 4852, - "nodeType": "Block", - "src": "921:174:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4830, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "936:8:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4833, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4831, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "945:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "945:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "936:20:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 4834, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4815, - "src": "960:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "936:30:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4836, - "nodeType": "ExpressionStatement", - "src": "936:30:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 4841, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4837, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "981:8:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4839, - "indexExpression": { - "argumentTypes": null, - "id": 4838, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4813, - "src": "990:3:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "981:13:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 4840, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4815, - "src": "998:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "981:23:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4842, - "nodeType": "ExpressionStatement", - "src": "981:23:7" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4844, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "1033:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1033:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 4846, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4813, - "src": "1045:3:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4847, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4815, - "src": "1050:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4843, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6128, - "src": "1024:8:7", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 4848, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1024:33:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4849, - "nodeType": "EmitStatement", - "src": "1019:38:7" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 4850, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1079:4:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 4819, - "id": 4851, - "nodeType": "Return", - "src": "1072:11:7" - } - ] - } - } - ] - }, - "documentation": null, - "id": 4858, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4816, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4813, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 4858, - "src": "462:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4812, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "462:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4815, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 4858, - "src": "475:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4814, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "475:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "461:29:7" - }, - "returnParameters": { - "id": 4819, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4818, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 4858, - "src": "507:12:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4817, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "507:4:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "506:14:7" - }, - "scope": 4989, - "src": "444:681:7", - "stateMutability": "nonpayable", - "superFunction": 6091, - "visibility": "public" - }, - { - "body": { - "id": 4921, - "nodeType": "Block", - "src": "1229:577:7", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 4886, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 4882, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4869, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "1480:8:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4871, - "indexExpression": { - "argumentTypes": null, - "id": 4870, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4860, - "src": "1489:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1480:15:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 4872, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4864, - "src": "1499:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1480:25:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4881, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4874, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4988, - "src": "1509:7:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 4876, - "indexExpression": { - "argumentTypes": null, - "id": 4875, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4860, - "src": "1517:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1509:14:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4879, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4877, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "1524:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1524:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1509:26:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 4880, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4864, - "src": "1539:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1509:36:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1480:65:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4883, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4864, - "src": "1549:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4884, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1558:1:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1549:10:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "1480:79:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 4919, - "nodeType": "Block", - "src": "1782:17:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 4917, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1791:5:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 4868, - "id": 4918, - "nodeType": "Return", - "src": "1784:12:7" - } - ] - }, - "id": 4920, - "nodeType": "IfStatement", - "src": "1476:323:7", - "trueBody": { - "id": 4916, - "nodeType": "Block", - "src": "1561:215:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4891, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4887, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "1576:8:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4889, - "indexExpression": { - "argumentTypes": null, - "id": 4888, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4862, - "src": "1585:3:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1576:13:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 4890, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4864, - "src": "1593:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1576:23:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4892, - "nodeType": "ExpressionStatement", - "src": "1576:23:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 4897, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4893, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "1614:8:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4895, - "indexExpression": { - "argumentTypes": null, - "id": 4894, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4860, - "src": "1623:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1614:15:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 4896, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4864, - "src": "1633:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1614:25:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4898, - "nodeType": "ExpressionStatement", - "src": "1614:25:7" - }, - { - "expression": { - "argumentTypes": null, - "id": 4906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4899, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4988, - "src": "1654:7:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 4903, - "indexExpression": { - "argumentTypes": null, - "id": 4900, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4860, - "src": "1662:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1654:14:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4904, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4901, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "1669:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4902, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1669:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1654:26:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 4905, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4864, - "src": "1684:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1654:36:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4907, - "nodeType": "ExpressionStatement", - "src": "1654:36:7" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4909, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4860, - "src": "1719:5:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4910, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4862, - "src": "1726:3:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4911, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4864, - "src": "1731:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4908, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6128, - "src": "1710:8:7", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 4912, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1710:28:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4913, - "nodeType": "EmitStatement", - "src": "1705:33:7" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 4914, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1760:4:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 4868, - "id": 4915, - "nodeType": "Return", - "src": "1753:11:7" - } - ] - } - } - ] - }, - "documentation": null, - "id": 4922, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4865, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4860, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 4922, - "src": "1155:13:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4859, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1155:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4862, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 4922, - "src": "1170:11:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4861, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1170:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4864, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 4922, - "src": "1183:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4863, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1183:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1154:44:7" - }, - "returnParameters": { - "id": 4868, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4867, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 4922, - "src": "1215:12:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4866, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1215:4:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1214:14:7" - }, - "scope": 4989, - "src": "1133:673:7", - "stateMutability": "nonpayable", - "superFunction": 6102, - "visibility": "public" - }, - { - "body": { - "id": 4933, - "nodeType": "Block", - "src": "1887:42:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4929, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "1905:8:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4931, - "indexExpression": { - "argumentTypes": null, - "id": 4930, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4924, - "src": "1914:6:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1905:16:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4928, - "id": 4932, - "nodeType": "Return", - "src": "1898:23:7" - } - ] - }, - "documentation": null, - "id": 4934, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4925, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4924, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 4934, - "src": "1833:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4923, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1833:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1832:16:7" - }, - "returnParameters": { - "id": 4928, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4927, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 4934, - "src": "1870:15:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4926, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1870:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1869:17:7" - }, - "scope": 4989, - "src": "1814:115:7", - "stateMutability": "view", - "superFunction": 6082, - "visibility": "public" - }, - { - "body": { - "id": 4961, - "nodeType": "Block", - "src": "2018:133:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4943, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4988, - "src": "2029:7:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 4947, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4944, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "2037:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2037:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2029:19:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4948, - "indexExpression": { - "argumentTypes": null, - "id": 4946, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4936, - "src": "2049:8:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2029:29:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4949, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4938, - "src": "2061:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2029:38:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4951, - "nodeType": "ExpressionStatement", - "src": "2029:38:7" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4953, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "2092:3:7", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 4954, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2092:10:7", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 4955, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4936, - "src": "2104:8:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4956, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4938, - "src": "2114:6:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4952, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6136, - "src": "2083:8:7", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 4957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2083:38:7", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4958, - "nodeType": "EmitStatement", - "src": "2078:43:7" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 4959, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2139:4:7", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 4942, - "id": 4960, - "nodeType": "Return", - "src": "2132:11:7" - } - ] - }, - "documentation": null, - "id": 4962, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4939, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4936, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 4962, - "src": "1954:16:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4935, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1954:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4938, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 4962, - "src": "1972:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4937, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1972:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1953:34:7" - }, - "returnParameters": { - "id": 4942, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4941, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 4962, - "src": "2004:12:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4940, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2004:4:7", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2003:14:7" - }, - "scope": 4989, - "src": "1937:214:7", - "stateMutability": "nonpayable", - "superFunction": 6111, - "visibility": "public" - }, - { - "body": { - "id": 4977, - "nodeType": "Block", - "src": "2252:49:7", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4971, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4988, - "src": "2268:7:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 4973, - "indexExpression": { - "argumentTypes": null, - "id": 4972, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4964, - "src": "2276:6:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2268:15:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 4975, - "indexExpression": { - "argumentTypes": null, - "id": 4974, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4966, - "src": "2284:8:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2268:25:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 4970, - "id": 4976, - "nodeType": "Return", - "src": "2261:32:7" - } - ] - }, - "documentation": null, - "id": 4978, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4967, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4964, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 4978, - "src": "2178:14:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4963, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2178:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4966, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 4978, - "src": "2194:16:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4965, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2194:7:7", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2177:34:7" - }, - "returnParameters": { - "id": 4970, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4969, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 4978, - "src": "2233:17:7", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4968, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2233:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2232:19:7" - }, - "scope": 4989, - "src": "2159:142:7", - "stateMutability": "view", - "superFunction": 6120, - "visibility": "public" - }, - { - "constant": false, - "id": 4982, - "name": "balances", - "nodeType": "VariableDeclaration", - "scope": 4989, - "src": "2309:37:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 4981, - "keyType": { - "id": 4979, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2318:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2309:28:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 4980, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2329:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4988, - "name": "allowed", - "nodeType": "VariableDeclaration", - "scope": 4989, - "src": "2353:57:7", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "typeName": { - "id": 4987, - "keyType": { - "id": 4983, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2362:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2353:49:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - }, - "valueType": { - "id": 4986, - "keyType": { - "id": 4984, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2382:7:7", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2373:28:7", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 4985, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2393:7:7", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - } - }, - "value": null, - "visibility": "internal" - } - ], - "scope": 4990, - "src": "406:2008:7" - } - ], - "src": "345:2071:7" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:19.934Z", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/ERC721Basic.json b/src/contracts/ERC721Basic.json deleted file mode 100644 index 40d8cfe..0000000 --- a/src/contracts/ERC721Basic.json +++ /dev/null @@ -1,21486 +0,0 @@ -{ - "contractName": "ERC721Basic", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "_interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_from", - "type": "address" - }, - { - "indexed": false, - "name": "_to", - "type": "address" - }, - { - "indexed": false, - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_owner", - "type": "address" - }, - { - "indexed": false, - "name": "_approved", - "type": "address" - }, - { - "indexed": false, - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_owner", - "type": "address" - }, - { - "indexed": false, - "name": "_operator", - "type": "address" - }, - { - "indexed": false, - "name": "_approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "_balance", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "name": "_owner", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "exists", - "outputs": [ - { - "name": "_exists", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "name": "_operator", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_operator", - "type": "address" - }, - { - "name": "_approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - }, - { - "name": "_operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_tokenId", - "type": "uint256" - }, - { - "name": "_data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"_interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"_operator\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"exists\",\"outputs\":[{\"name\":\"_exists\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"_balance\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_operator\",\"type\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\\r\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Interface identification is specified in ERC-165. This function\\r uses less than 30,000 gas.\\r\",\"params\":{\"_interfaceId\":\"The interface identifier, as specified in ERC-165\\r\"}}},\"title\":\"ERC721 Non-Fungible Token Standard basic interface\\r\"},\"userdoc\":{\"methods\":{\"supportsInterface(bytes4)\":{\"notice\":\"Query if a contract implements an interface\\r\"}}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":\"ERC721Basic\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":{\"keccak256\":\"0x4dd046a190602871aa9743a94149789c1e14b14f609c68d0f34d72e19bd690ce\",\"urls\":[\"bzzr://ea591dfb88f3591fe4344b7e665024c5aa3e8fb758a0409db79b1885a996b825\",\"dweb:/ipfs/QmXrwJ2TTXMWHBQxuLCqrj96gfh5HCHK57JsCEcXJ84t6z\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity >=0.5.0 < 0.6.0;\r\nimport '../../dao/oz/SafeMath.sol';\r\n\r\n/**\r\n * @title SafeMath\r\n * @dev Math operations with safety checks that throw on error\r\n */\r\n//library SafeMath {\r\n//\r\n// /**\r\n// * @dev Multiplies two numbers, throws on overflow.\r\n// */\r\n// function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// // Gas optimization: this is cheaper than asserting 'a' not being zero, but the\r\n// // benefit is lost if 'b' is also tested.\r\n// // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\r\n// if (a == 0) {\r\n// return 0;\r\n// }\r\n//\r\n// c = a * b;\r\n// assert(c / a == b);\r\n// return c;\r\n// }\r\n//\r\n// /**\r\n// * @dev Integer division of two numbers, truncating the quotient.\r\n// */\r\n// function div(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// // assert(b > 0); // Solidity automatically throws when dividing by 0\r\n// // uint256 c = a / b;\r\n// // assert(a == b * c + a % b); // There is no case in which this doesn't hold\r\n// return a / b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).\r\n// */\r\n// function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// assert(b <= a);\r\n// return a - b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Adds two numbers, throws on overflow.\r\n// */\r\n// function add(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// c = a + b;\r\n// assert(c >= a);\r\n// return c;\r\n// }\r\n//}\r\n\r\n/**\r\n * Utility library of inline functions on addresses\r\n */\r\nlibrary AddressUtils {\r\n\r\n /**\r\n * Returns whether the target address is a contract\r\n * @dev This function will return false if invoked during the constructor of a contract,\r\n * as the code is not actually created until after the constructor finishes.\r\n * @param addr address to check\r\n * @return whether the target address is a contract\r\n */\r\n function isContract(address addr) internal view returns (bool) {\r\n uint256 size;\r\n // XXX Currently there is no better way to check if there is a contract in an address\r\n // than to check the size of the code at that address.\r\n // See https://ethereum.stackexchange.com/a/14016/36603\r\n // for more details about how this works.\r\n // TODO Check this again before the Serenity release, because all addresses will be\r\n // contracts then.\r\n // solium-disable-next-line security/no-inline-assembly\r\n assembly { size := extcodesize(addr) }\r\n return size > 0;\r\n }\r\n\r\n}\r\n\r\n/**\r\n * @title ERC165\r\n * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r\n */\r\ninterface ERC165 {\r\n\r\n /**\r\n * @notice Query if a contract implements an interface\r\n * @param _interfaceId The interface identifier, as specified in ERC-165\r\n * @dev Interface identification is specified in ERC-165. This function\r\n * uses less than 30,000 gas.\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool);\r\n}\r\n\r\n\r\n/**\r\n * @title SupportsInterfaceWithLookup\r\n * @author Matt Condon (@shrugs)\r\n * @dev Implements ERC165 using a lookup table.\r\n */\r\ncontract SupportsInterfaceWithLookup is ERC165 {\r\n bytes4 public constant InterfaceId_ERC165 = 0x01ffc9a7;\r\n /**\r\n * 0x01ffc9a7 ===\r\n * bytes4(keccak256('supportsInterface(bytes4)'))\r\n */\r\n\r\n /**\r\n * @dev a mapping of interface id to whether or not it's supported\r\n */\r\n mapping(bytes4 => bool) internal supportedInterfaces;\r\n\r\n /**\r\n * @dev A contract implementing SupportsInterfaceWithLookup\r\n * implement ERC165 itself\r\n */\r\n constructor()\r\n public\r\n {\r\n _registerInterface(InterfaceId_ERC165);\r\n }\r\n\r\n /**\r\n * @dev implement supportsInterface(bytes4) using a lookup table\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool)\r\n {\r\n return supportedInterfaces[_interfaceId];\r\n }\r\n\r\n /**\r\n * @dev private method for registering an interface\r\n */\r\n function _registerInterface(bytes4 _interfaceId)\r\n internal\r\n {\r\n require(_interfaceId != 0xffffffff);\r\n supportedInterfaces[_interfaceId] = true;\r\n }\r\n}\r\n\r\n/**\r\n * @title ERC721 token receiver interface\r\n * @dev Interface for any contract that wants to support safeTransfers\r\n * from ERC721 asset contracts.\r\n */\r\ncontract ERC721Receiver {\r\n /**\r\n * @dev Magic value to be returned upon successful reception of an NFT\r\n * Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`,\r\n * which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n */\r\n bytes4 internal constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n /**\r\n * @notice Handle the receipt of an NFT\r\n * @dev The ERC721 smart contract calls this function on the recipient\r\n * after a `safetransfer`. This function MAY throw to revert and reject the\r\n * transfer. This function MUST use 50,000 gas or less. Return of other\r\n * than the magic value MUST result in the transaction being reverted.\r\n * Note: the contract address is always the message sender.\r\n * @param _from The sending address\r\n * @param _tokenId The NFT identifier which is being transfered\r\n * @param _data Additional data with no specified format\r\n * @return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n */\r\n function onERC721Received(\r\n address _from,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n returns(bytes4);\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic interface\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721Basic is ERC165 {\r\n event Transfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n );\r\n event Approval(\r\n address _owner,\r\n address _approved,\r\n uint256 _tokenId\r\n );\r\n event ApprovalForAll(\r\n address _owner,\r\n address _operator,\r\n bool _approved\r\n );\r\n\r\n function balanceOf(address _owner) public view returns (uint256 _balance);\r\n function ownerOf(uint256 _tokenId) public view returns (address _owner);\r\n function exists(uint256 _tokenId) public view returns (bool _exists);\r\n\r\n function approve(address _to, uint256 _tokenId) public;\r\n function getApproved(uint256 _tokenId)\r\n public view returns (address _operator);\r\n\r\n function setApprovalForAll(address _operator, bool _approved) public;\r\n function isApprovedForAll(address _owner, address _operator)\r\n public view returns (bool);\r\n\r\n function transferFrom(address _from, address _to, uint256 _tokenId) public;\r\n function safeTransferFrom(address _from, address _to, uint256 _tokenId)\r\n public;\r\n\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public;\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic implementation\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721BasicToken is SupportsInterfaceWithLookup, ERC721Basic {\r\n\r\n bytes4 private constant InterfaceId_ERC721 = 0x80ac58cd;\r\n /*\r\n * 0x80ac58cd ===\r\n * bytes4(keccak256('balanceOf(address)')) ^\r\n * bytes4(keccak256('ownerOf(uint256)')) ^\r\n * bytes4(keccak256('approve(address,uint256)')) ^\r\n * bytes4(keccak256('getApproved(uint256)')) ^\r\n * bytes4(keccak256('setApprovalForAll(address,bool)')) ^\r\n * bytes4(keccak256('isApprovedForAll(address,address)')) ^\r\n * bytes4(keccak256('transferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)'))\r\n */\r\n\r\n bytes4 private constant InterfaceId_ERC721Exists = 0x4f558e79;\r\n /*\r\n * 0x4f558e79 ===\r\n * bytes4(keccak256('exists(uint256)'))\r\n */\r\n\r\n using SafeMath for uint256;\r\n using AddressUtils for address;\r\n\r\n // Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n // which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n bytes4 private constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n // Mapping from token ID to owner\r\n mapping (uint256 => address) internal tokenOwner;\r\n\r\n // Mapping from token ID to approved address\r\n mapping (uint256 => address) internal tokenApprovals;\r\n\r\n // Mapping from owner to number of owned token\r\n mapping (address => uint256) internal ownedTokensCount;\r\n\r\n // Mapping from owner to operator approvals\r\n mapping (address => mapping (address => bool)) internal operatorApprovals;\r\n\r\n\r\n uint public testint;\r\n /**\r\n * @dev Guarantees msg.sender is owner of the given token\r\n * @param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r\n */\r\n modifier onlyOwnerOf(uint256 _tokenId) {\r\n require(ownerOf(_tokenId) == msg.sender);\r\n _;\r\n }\r\n\r\n /**\r\n * @dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n * @param _tokenId uint256 ID of the token to validate\r\n */\r\n modifier canTransfer(uint256 _tokenId) {\r\n require(isApprovedOrOwner(msg.sender, _tokenId));\r\n _;\r\n }\r\n\r\n constructor()\r\n public\r\n {\r\n // register the supported interfaces to conform to ERC721 via ERC165\r\n _registerInterface(InterfaceId_ERC721);\r\n _registerInterface(InterfaceId_ERC721Exists);\r\n }\r\n\r\n /**\r\n * @dev Gets the balance of the specified address\r\n * @param _owner address to query the balance of\r\n * @return uint256 representing the amount owned by the passed address\r\n */\r\n function balanceOf(address _owner) public view returns (uint256) {\r\n require(_owner != address(0));\r\n return ownedTokensCount[_owner];\r\n }\r\n\r\n /**\r\n * @dev Gets the owner of the specified token ID\r\n * @param _tokenId uint256 ID of the token to query the owner of\r\n * @return owner address currently marked as the owner of the given token ID\r\n */\r\n function ownerOf(uint256 _tokenId) public view returns (address) {\r\n address owner = tokenOwner[_tokenId];\r\n require(owner != address(0));\r\n return owner;\r\n }\r\n\r\n /**\r\n * @dev Returns whether the specified token exists\r\n * @param _tokenId uint256 ID of the token to query the existence of\r\n * @return whether the token exists\r\n */\r\n function exists(uint256 _tokenId) public view returns (bool) {\r\n address owner = tokenOwner[_tokenId];\r\n return owner != address(0);\r\n }\r\n\r\n /**\r\n * @dev Approves another address to transfer the given token ID\r\n * The zero address indicates there is no approved address.\r\n * There can only be one approved address per token at a given time.\r\n * Can only be called by the token owner or an approved operator.\r\n * @param _to address to be approved for the given token ID\r\n * @param _tokenId uint256 ID of the token to be approved\r\n */\r\n function approve(address _to, uint256 _tokenId) public {\r\n address owner = ownerOf(_tokenId);\r\n require(_to != owner);\r\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender));\r\n\r\n tokenApprovals[_tokenId] = _to;\r\n emit Approval(owner, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Gets the approved address for a token ID, or zero if no address set\r\n * @param _tokenId uint256 ID of the token to query the approval of\r\n * @return address currently approved for the given token ID\r\n */\r\n function getApproved(uint256 _tokenId) public view returns (address) {\r\n return tokenApprovals[_tokenId];\r\n }\r\n\r\n /**\r\n * @dev Sets or unsets the approval of a given operator\r\n * An operator is allowed to transfer all tokens of the sender on their behalf\r\n * @param _to operator address to set the approval\r\n * @param _approved representing the status of the approval to be set\r\n */\r\n function setApprovalForAll(address _to, bool _approved) public {\r\n require(_to != msg.sender);\r\n operatorApprovals[msg.sender][_to] = _approved;\r\n emit ApprovalForAll(msg.sender, _to, _approved);\r\n }\r\n\r\n /**\r\n * @dev Tells whether an operator is approved by a given owner\r\n * @param _owner owner address which you want to query the approval of\r\n * @param _operator operator address which you want to query the approval of\r\n * @return bool whether the given operator is approved by the given owner\r\n */\r\n function isApprovedForAll(\r\n address _owner,\r\n address _operator\r\n )\r\n public\r\n view\r\n returns (bool)\r\n {\r\n return operatorApprovals[_owner][_operator];\r\n }\r\n\r\n /**\r\n * @dev Transfers the ownership of a given token ID to another address\r\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function transferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n require(_from != address(0));\r\n require(_to != address(0));\r\n\r\n clearApproval(_from, _tokenId);\r\n removeTokenFrom(_from, _tokenId);\r\n addTokenTo(_to, _tokenId);\r\n\r\n emit Transfer(_from, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n *\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n // solium-disable-next-line arg-overflow\r\n safeTransferFrom(_from, _to, _tokenId, \"\");\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes data to send along with a safe transfer check\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n transferFrom(_from, _to, _tokenId);\r\n // solium-disable-next-line arg-overflow\r\n require(checkAndCallSafeTransfer(_from, _to, _tokenId, _data));\r\n }\r\n\r\n /**\r\n * @dev Returns whether the given spender can transfer a given token ID\r\n * @param _spender address of the spender to query\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @return bool whether the msg.sender is approved for the given token ID,\r\n * is an operator of the owner, or is the owner of the token\r\n */\r\n function isApprovedOrOwner(\r\n address _spender,\r\n uint256 _tokenId\r\n )\r\n internal\r\n view\r\n returns (bool)\r\n {\r\n address owner = ownerOf(_tokenId);\r\n // Disable solium check because of\r\n // https://github.com/duaraghav8/Solium/issues/175\r\n // solium-disable-next-line operator-whitespace\r\n return (\r\n _spender == owner ||\r\n getApproved(_tokenId) == _spender ||\r\n isApprovedForAll(owner, _spender)\r\n );\r\n }\r\n\r\n /**\r\n * @dev Internal function to mint a new token\r\n * Reverts if the given token ID already exists\r\n * @param _to The address that will own the minted token\r\n * @param _tokenId uint256 ID of the token to be minted by the msg.sender\r\n */\r\n function _mint(address _to, uint256 _tokenId) internal {\r\n require(_to != address(0));\r\n addTokenTo(_to, _tokenId);\r\n emit Transfer(address(0), _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to burn a specific token\r\n * Reverts if the token does not exist\r\n * @param _tokenId uint256 ID of the token being burned by the msg.sender\r\n */\r\n function _burn(address _owner, uint256 _tokenId) internal {\r\n clearApproval(_owner, _tokenId);\r\n removeTokenFrom(_owner, _tokenId);\r\n emit Transfer(_owner, address(0), _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to clear current approval of a given token ID\r\n * Reverts if the given address is not indeed the owner of the token\r\n * @param _owner owner of the token\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function clearApproval(address _owner, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _owner);\r\n if (tokenApprovals[_tokenId] != address(0)) {\r\n tokenApprovals[_tokenId] = address(0);\r\n }\r\n }\r\n\r\n /**\r\n * @dev Internal function to add a token ID to the list of a given address\r\n * @param _to address representing the new owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r\n */\r\n function addTokenTo(address _to, uint256 _tokenId) internal {\r\n require(tokenOwner[_tokenId] == address(0));\r\n tokenOwner[_tokenId] = _to;\r\n ownedTokensCount[_to] = ownedTokensCount[_to].add(1);\r\n }\r\n\r\n /**\r\n * @dev Internal function to remove a token ID from the list of a given address\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r\n */\r\n function removeTokenFrom(address _from, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _from);\r\n ownedTokensCount[_from] = ownedTokensCount[_from].sub(1);\r\n tokenOwner[_tokenId] = address(0);\r\n }\r\n\r\n /**\r\n * @dev Internal function to invoke `onERC721Received` on a target address\r\n * The call is not executed if the target address is not a contract\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _to target address that will receive the tokens\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes optional data to send along with the call\r\n * @return whether the call correctly returned the expected magic value\r\n */\r\n function checkAndCallSafeTransfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n internal\r\n returns (bool)\r\n {\r\n if (!_to.isContract()) {\r\n return true;\r\n }\r\n bytes4 retval = ERC721Receiver(_to).onERC721Received(\r\n _from, _tokenId, _data);\r\n return (retval == ERC721_RECEIVED);\r\n }\r\n}\r\n\r\ncontract ERC721BasicTokenMock is ERC721BasicToken {\r\n function mint(address _to, uint256 _tokenId) public {\r\n super._mint(_to, _tokenId);\r\n }\r\n\r\n function burn(uint256 _tokenId) public {\r\n super._burn(ownerOf(_tokenId), _tokenId);\r\n }\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\inherited\\ERC721Basic.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", - "exportedSymbols": { - "AddressUtils": [ - 5009 - ], - "ERC165": [ - 5017 - ], - "ERC721Basic": [ - 5187 - ], - "ERC721BasicToken": [ - 5764 - ], - "ERC721BasicTokenMock": [ - 5797 - ], - "ERC721Receiver": [ - 5080 - ], - "SupportsInterfaceWithLookup": [ - 5065 - ] - }, - "id": 5798, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4991, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:8" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "../../dao/oz/SafeMath.sol", - "id": 4992, - "nodeType": "ImportDirective", - "scope": 5798, - "sourceUnit": 9858, - "src": "34:35:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "Utility library of inline functions on addresses\r", - "fullyImplemented": true, - "id": 5009, - "linearizedBaseContracts": [ - 5009 - ], - "name": "AddressUtils", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5007, - "nodeType": "Block", - "src": "2012:524:8", - "statements": [ - { - "assignments": [ - 5000 - ], - "declarations": [ - { - "constant": false, - "id": 5000, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 5007, - "src": "2019:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4999, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2019:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5001, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2019:12:8" - }, - { - "externalReferences": [ - { - "size": { - "declaration": 5000, - "isOffset": false, - "isSlot": false, - "src": "2482:4:8", - "valueSize": 1 - } - }, - { - "addr": { - "declaration": 4994, - "isOffset": false, - "isSlot": false, - "src": "2502:4:8", - "valueSize": 1 - } - } - ], - "id": 5002, - "nodeType": "InlineAssembly", - "operations": "{ size := extcodesize(addr) }", - "src": "2471:38:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5003, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5000, - "src": "2522:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5004, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2529:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2522:8:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4998, - "id": 5006, - "nodeType": "Return", - "src": "2515:15:8" - } - ] - }, - "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", - "id": 5008, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4994, - "name": "addr", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "1969:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1969:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1968:14:8" - }, - "returnParameters": { - "id": 4998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4997, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "2006:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4996, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2006:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2005:6:8" - }, - "scope": 5009, - "src": "1949:587:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "1590:951:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", - "fullyImplemented": false, - "id": 5017, - "linearizedBaseContracts": [ - 5017 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", - "id": 5016, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5012, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5011, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "2950:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5010, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "2950:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2949:21:8" - }, - "returnParameters": { - "id": 5015, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5014, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "3009:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5013, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3009:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3008:6:8" - }, - "scope": 5017, - "src": "2923:92:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 5798, - "src": "2643:375:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5018, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "3196:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5019, - "nodeType": "InheritanceSpecifier", - "src": "3196:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", - "fullyImplemented": true, - "id": 5065, - "linearizedBaseContracts": [ - 5065, - 5017 - ], - "name": "SupportsInterfaceWithLookup", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5022, - "name": "InterfaceId_ERC165", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3208:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5020, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3208:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 5021, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3252:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 5026, - "name": "supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3443:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 5025, - "keyType": { - "id": 5023, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3451:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "3443:23:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 5024, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3461:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 5033, - "nodeType": "Block", - "src": "3638:51:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5030, - "name": "InterfaceId_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5022, - "src": "3664:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5029, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "3645:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3645:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5032, - "nodeType": "ExpressionStatement", - "src": "3645:38:8" - } - ] - }, - "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", - "id": 5034, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5027, - "nodeType": "ParameterList", - "parameters": [], - "src": "3620:2:8" - }, - "returnParameters": { - "id": 5028, - "nodeType": "ParameterList", - "parameters": [], - "src": "3638:0:8" - }, - "scope": 5065, - "src": "3609:80:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5045, - "nodeType": "Block", - "src": "3872:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5041, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "3886:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5043, - "indexExpression": { - "argumentTypes": null, - "id": 5042, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5036, - "src": "3906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3886:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5040, - "id": 5044, - "nodeType": "Return", - "src": "3879:40:8" - } - ] - }, - "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", - "id": 5046, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5037, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5036, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3804:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5035, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3804:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3803:21:8" - }, - "returnParameters": { - "id": 5040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5039, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3863:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5038, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3863:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3862:6:8" - }, - "scope": 5065, - "src": "3777:148:8", - "stateMutability": "view", - "superFunction": 5016, - "visibility": "external" - }, - { - "body": { - "id": 5063, - "nodeType": "Block", - "src": "4066:95:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5052, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4081:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 5053, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4097:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "4081:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5051, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4073:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4073:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5056, - "nodeType": "ExpressionStatement", - "src": "4073:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5057, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "4115:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5059, - "indexExpression": { - "argumentTypes": null, - "id": 5058, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4135:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4115:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4151:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4115:40:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5062, - "nodeType": "ExpressionStatement", - "src": "4115:40:8" - } - ] - }, - "documentation": "@dev private method for registering an interface\r", - "id": 5064, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5049, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5048, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5064, - "src": "4028:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5047, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4028:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4027:21:8" - }, - "returnParameters": { - "id": 5050, - "nodeType": "ParameterList", - "parameters": [], - "src": "4066:0:8" - }, - "scope": 5065, - "src": "4000:161:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "3156:1008:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", - "fullyImplemented": false, - "id": 5080, - "linearizedBaseContracts": [ - 5080 - ], - "name": "ERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5068, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5080, - "src": "4607:53:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5066, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4607:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4650:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "internal" - }, - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", - "id": 5079, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5070, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5364:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5069, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5364:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5072, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5384:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5071, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5384:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5074, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5407:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5073, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5407:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5357:73:8" - }, - "returnParameters": { - "id": 5078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5077, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5456:6:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5076, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "5456:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5455:8:8" - }, - "scope": 5080, - "src": "5332:132:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "4326:1141:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5081, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "5641:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5082, - "nodeType": "InheritanceSpecifier", - "src": "5641:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": false, - "id": 5187, - "linearizedBaseContracts": [ - 5187, - 5017 - ], - "name": "ERC721Basic", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 5090, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 5089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5084, - "indexed": false, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5674:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5083, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5674:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5086, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5695:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5085, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5695:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5088, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5714:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5087, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5714:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5667:69:8" - }, - "src": "5653:84:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5098, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 5097, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5092, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5762:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5091, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5762:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5094, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5784:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5784:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5096, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5809:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5095, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5809:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5755:76:8" - }, - "src": "5741:91:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5106, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 5105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5100, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5863:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5099, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5863:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5102, - "indexed": false, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5885:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5101, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5885:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5104, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5910:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5103, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5910:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5856:73:8" - }, - "src": "5836:94:8" - }, - { - "body": null, - "documentation": null, - "id": 5113, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5109, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5108, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5955:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5107, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5955:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5954:16:8" - }, - "returnParameters": { - "id": 5112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5111, - "name": "_balance", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5992:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5110, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5992:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5991:18:8" - }, - "scope": 5187, - "src": "5936:74:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5120, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5116, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5115, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6031:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5114, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6030:18:8" - }, - "returnParameters": { - "id": 5119, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5118, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6070:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5117, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6070:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6069:16:8" - }, - "scope": 5187, - "src": "6014:72:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5127, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5123, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5122, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6106:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5121, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6106:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6105:18:8" - }, - "returnParameters": { - "id": 5126, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5125, - "name": "_exists", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6145:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5124, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6145:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6144:14:8" - }, - "scope": 5187, - "src": "6090:69:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5134, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5132, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5129, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6182:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6182:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5131, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6195:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6195:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6181:31:8" - }, - "returnParameters": { - "id": 5133, - "nodeType": "ParameterList", - "parameters": [], - "src": "6219:0:8" - }, - "scope": 5187, - "src": "6165:55:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5141, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5136, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6245:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5135, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6245:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6244:18:8" - }, - "returnParameters": { - "id": 5140, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5139, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6289:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5138, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6289:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6288:19:8" - }, - "scope": 5187, - "src": "6224:84:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5148, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5143, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6341:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6341:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5145, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6360:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5144, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6360:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6340:35:8" - }, - "returnParameters": { - "id": 5147, - "nodeType": "ParameterList", - "parameters": [], - "src": "6382:0:8" - }, - "scope": 5187, - "src": "6314:69:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5157, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5150, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6413:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5149, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6413:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5152, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6429:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5151, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6429:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6412:35:8" - }, - "returnParameters": { - "id": 5156, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5155, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6474:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5154, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6474:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6473:6:8" - }, - "scope": 5187, - "src": "6387:93:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5166, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5159, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6508:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5158, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6508:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5161, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6523:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5160, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6523:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5163, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6536:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5162, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6536:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6507:46:8" - }, - "returnParameters": { - "id": 5165, - "nodeType": "ParameterList", - "parameters": [], - "src": "6560:0:8" - }, - "scope": 5187, - "src": "6486:75:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5175, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5168, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6591:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5167, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6591:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5170, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6606:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5169, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6606:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5172, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6619:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6619:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6590:46:8" - }, - "returnParameters": { - "id": 5174, - "nodeType": "ParameterList", - "parameters": [], - "src": "6648:0:8" - }, - "scope": 5187, - "src": "6565:84:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5186, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5177, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6687:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5176, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6687:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5179, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6707:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5178, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6707:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5181, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6725:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5180, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6725:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5183, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6748:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5182, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6748:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6680:91:8" - }, - "returnParameters": { - "id": 5185, - "nodeType": "ParameterList", - "parameters": [], - "src": "6783:0:8" - }, - "scope": 5187, - "src": "6655:129:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "5617:1170:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5188, - "name": "SupportsInterfaceWithLookup", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5065, - "src": "6971:27:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", - "typeString": "contract SupportsInterfaceWithLookup" - } - }, - "id": 5189, - "nodeType": "InheritanceSpecifier", - "src": "6971:27:8" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5190, - "name": "ERC721Basic", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5187, - "src": "7000:11:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Basic_$5187", - "typeString": "contract ERC721Basic" - } - }, - "id": 5191, - "nodeType": "InheritanceSpecifier", - "src": "7000:11:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": true, - "id": 5764, - "linearizedBaseContracts": [ - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5194, - "name": "InterfaceId_ERC721", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7019:55:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5192, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7019:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 5193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7064:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 5197, - "name": "InterfaceId_ERC721Exists", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7668:61:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5195, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7668:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783466353538653739", - "id": 5196, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7719:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1331007097_by_1", - "typeString": "int_const 1331007097" - }, - "value": "0x4f558e79" - }, - "visibility": "private" - }, - { - "id": 5200, - "libraryName": { - "contractScope": null, - "id": 5198, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "7821:8:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "7815:27:8", - "typeName": { - "id": 5199, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7834:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 5203, - "libraryName": { - "contractScope": null, - "id": 5201, - "name": "AddressUtils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5009, - "src": "7852:12:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUtils_$5009", - "typeString": "library AddressUtils" - } - }, - "nodeType": "UsingForDirective", - "src": "7846:31:8", - "typeName": { - "id": 5202, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7869:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "constant": true, - "id": 5206, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8044:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5204, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8044:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5205, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8086:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 5210, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8140:48:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5209, - "keyType": { - "id": 5207, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8149:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8140:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5208, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8160:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5214, - "name": "tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8243:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5213, - "keyType": { - "id": 5211, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8252:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8243:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5212, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8263:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5218, - "name": "ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8352:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 5217, - "keyType": { - "id": 5215, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8361:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8352:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 5216, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8372:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5224, - "name": "operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8460:73:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "typeName": { - "id": 5223, - "keyType": { - "id": 5219, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8469:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8460:46:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 5222, - "keyType": { - "id": 5220, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8489:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8480:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 5221, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8500:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5226, - "name": "testint", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8542:19:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5225, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 5240, - "nodeType": "Block", - "src": "8774:61:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5232, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5228, - "src": "8797:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5231, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "8789:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8789:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5234, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "8810:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8810:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "8789:31:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5230, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "8781:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8781:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5238, - "nodeType": "ExpressionStatement", - "src": "8781:40:8" - }, - { - "id": 5239, - "nodeType": "PlaceholderStatement", - "src": "8828:1:8" - } - ] - }, - "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", - "id": 5241, - "name": "onlyOwnerOf", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5228, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5241, - "src": "8756:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8756:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8755:18:8" - }, - "src": "8735:100:8", - "visibility": "internal" - }, - { - "body": { - "id": 5254, - "nodeType": "Block", - "src": "9041:69:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5247, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "9074:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9074:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5249, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5243, - "src": "9086:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5246, - "name": "isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5567, - "src": "9056:17:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 5250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9056:39:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5245, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9048:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9048:48:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5252, - "nodeType": "ExpressionStatement", - "src": "9048:48:8" - }, - { - "id": 5253, - "nodeType": "PlaceholderStatement", - "src": "9103:1:8" - } - ] - }, - "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", - "id": 5255, - "name": "canTransfer", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5244, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5243, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5255, - "src": "9023:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5242, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9022:18:8" - }, - "src": "9002:108:8", - "visibility": "internal" - }, - { - "body": { - "id": 5266, - "nodeType": "Block", - "src": "9145:176:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5259, - "name": "InterfaceId_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5194, - "src": "9245:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5258, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9226:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9226:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5261, - "nodeType": "ExpressionStatement", - "src": "9226:38:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5263, - "name": "InterfaceId_ERC721Exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5197, - "src": "9290:24:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5262, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9271:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9271:44:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5265, - "nodeType": "ExpressionStatement", - "src": "9271:44:8" - } - ] - }, - "documentation": null, - "id": 5267, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5256, - "nodeType": "ParameterList", - "parameters": [], - "src": "9127:2:8" - }, - "returnParameters": { - "id": 5257, - "nodeType": "ParameterList", - "parameters": [], - "src": "9145:0:8" - }, - "scope": 5764, - "src": "9116:205:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5286, - "nodeType": "Block", - "src": "9585:80:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5275, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9600:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5277, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9618:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5276, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9610:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9610:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "9600:20:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5274, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9592:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9592:29:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5281, - "nodeType": "ExpressionStatement", - "src": "9592:29:8" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5282, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "9635:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5284, - "indexExpression": { - "argumentTypes": null, - "id": 5283, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9652:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9635:24:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5273, - "id": 5285, - "nodeType": "Return", - "src": "9628:31:8" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", - "id": 5287, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5270, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5269, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9539:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5268, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9539:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9538:16:8" - }, - "returnParameters": { - "id": 5273, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5272, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9576:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9576:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9575:9:8" - }, - "scope": 5764, - "src": "9520:145:8", - "stateMutability": "view", - "superFunction": 5113, - "visibility": "public" - }, - { - "body": { - "id": 5310, - "nodeType": "Block", - "src": "9950:103:8", - "statements": [ - { - "assignments": [ - 5295 - ], - "declarations": [ - { - "constant": false, - "id": 5295, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5310, - "src": "9957:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5294, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9957:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5299, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5296, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "9973:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5298, - "indexExpression": { - "argumentTypes": null, - "id": 5297, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5289, - "src": "9984:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9973:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9957:36:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5301, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10008:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10025:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10017:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5304, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10017:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10008:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5300, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10000:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5307, - "nodeType": "ExpressionStatement", - "src": "10000:28:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5308, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10042:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5293, - "id": 5309, - "nodeType": "Return", - "src": "10035:12:8" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", - "id": 5311, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5289, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9902:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5288, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9902:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9901:18:8" - }, - "returnParameters": { - "id": 5293, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5292, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9941:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5291, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9941:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9940:9:8" - }, - "scope": 5764, - "src": "9885:168:8", - "stateMutability": "view", - "superFunction": 5120, - "visibility": "public" - }, - { - "body": { - "id": 5330, - "nodeType": "Block", - "src": "10299:82:8", - "statements": [ - { - "assignments": [ - 5319 - ], - "declarations": [ - { - "constant": false, - "id": 5319, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5330, - "src": "10306:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5318, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10306:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5323, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5320, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "10322:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5322, - "indexExpression": { - "argumentTypes": null, - "id": 5321, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5313, - "src": "10333:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10322:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10306:36:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5324, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5319, - "src": "10356:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5326, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10373:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5325, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10365:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10365:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10356:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5317, - "id": 5329, - "nodeType": "Return", - "src": "10349:26:8" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", - "id": 5331, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5313, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10254:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5312, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10254:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10253:18:8" - }, - "returnParameters": { - "id": 5317, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5316, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10293:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5315, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10293:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10292:6:8" - }, - "scope": 5764, - "src": "10238:143:8", - "stateMutability": "view", - "superFunction": 5127, - "visibility": "public" - }, - { - "body": { - "id": 5375, - "nodeType": "Block", - "src": "10851:229:8", - "statements": [ - { - "assignments": [ - 5339 - ], - "declarations": [ - { - "constant": false, - "id": 5339, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5375, - "src": "10858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5338, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5343, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5341, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "10882:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5340, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "10874:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10874:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10858:33:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5345, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "10906:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 5346, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10913:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5344, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10898:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10898:21:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5349, - "nodeType": "ExpressionStatement", - "src": "10898:21:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5351, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10934:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10934:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5353, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10948:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10934:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5356, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10974:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5357, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10981:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10981:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 5355, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "10957:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10957:35:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "10934:58:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5350, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10926:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10926:67:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5362, - "nodeType": "ExpressionStatement", - "src": "10926:67:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5363, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11002:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5365, - "indexExpression": { - "argumentTypes": null, - "id": 5364, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11017:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11002:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5366, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11029:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "11002:30:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5368, - "nodeType": "ExpressionStatement", - "src": "11002:30:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5370, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "11053:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5371, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11060:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5372, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11065:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5369, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5098, - "src": "11044:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11044:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5374, - "nodeType": "EmitStatement", - "src": "11039:35:8" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", - "id": 5376, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5336, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5333, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10813:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10813:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5335, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10826:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5334, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10826:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10812:31:8" - }, - "returnParameters": { - "id": 5337, - "nodeType": "ParameterList", - "parameters": [], - "src": "10851:0:8" - }, - "scope": 5764, - "src": "10796:284:8", - "stateMutability": "nonpayable", - "superFunction": 5134, - "visibility": "public" - }, - { - "body": { - "id": 5387, - "nodeType": "Block", - "src": "11383:44:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5383, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11397:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5385, - "indexExpression": { - "argumentTypes": null, - "id": 5384, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5378, - "src": "11412:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11397:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5382, - "id": 5386, - "nodeType": "Return", - "src": "11390:31:8" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", - "id": 5388, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5378, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11335:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5377, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11335:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11334:18:8" - }, - "returnParameters": { - "id": 5382, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5381, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11374:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5380, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11374:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11373:9:8" - }, - "scope": 5764, - "src": "11314:113:8", - "stateMutability": "view", - "superFunction": 5141, - "visibility": "public" - }, - { - "body": { - "id": 5418, - "nodeType": "Block", - "src": "11778:146:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5396, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11793:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5397, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11800:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11800:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "11793:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5395, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "11785:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11785:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5401, - "nodeType": "ExpressionStatement", - "src": "11785:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5402, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "11818:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5406, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5403, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11836:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11836:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11818:29:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5407, - "indexExpression": { - "argumentTypes": null, - "id": 5405, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11848:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11818:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5408, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11855:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11818:46:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5410, - "nodeType": "ExpressionStatement", - "src": "11818:46:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5412, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11891:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11891:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5414, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11903:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5415, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11908:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5411, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5106, - "src": "11876:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 5416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11876:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5417, - "nodeType": "EmitStatement", - "src": "11871:47:8" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", - "id": 5419, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5390, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11742:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5389, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11742:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5392, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11755:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5391, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11755:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11741:29:8" - }, - "returnParameters": { - "id": 5394, - "nodeType": "ParameterList", - "parameters": [], - "src": "11778:0:8" - }, - "scope": 5764, - "src": "11715:209:8", - "stateMutability": "nonpayable", - "superFunction": 5148, - "visibility": "public" - }, - { - "body": { - "id": 5434, - "nodeType": "Block", - "src": "12362:56:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5428, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "12376:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5430, - "indexExpression": { - "argumentTypes": null, - "id": 5429, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5421, - "src": "12394:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5432, - "indexExpression": { - "argumentTypes": null, - "id": 5431, - "name": "_operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5423, - "src": "12402:9:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:36:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5427, - "id": 5433, - "nodeType": "Return", - "src": "12369:43:8" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", - "id": 5435, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5424, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5421, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12273:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5420, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12273:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5423, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12294:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5422, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12294:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12266:50:8" - }, - "returnParameters": { - "id": 5427, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5426, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12353:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5425, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12353:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12352:6:8" - }, - "scope": 5764, - "src": "12241:177:8", - "stateMutability": "view", - "superFunction": 5157, - "visibility": "public" - }, - { - "body": { - "id": 5484, - "nodeType": "Block", - "src": "12976:228:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5448, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "12991:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5450, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13008:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5449, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13000:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "12991:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5447, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "12983:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12983:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5454, - "nodeType": "ExpressionStatement", - "src": "12983:28:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5456, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13026:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13041:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5457, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13033:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5459, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13033:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "13026:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5455, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "13018:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13018:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5462, - "nodeType": "ExpressionStatement", - "src": "13018:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5464, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13067:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5465, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13074:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5463, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "13053:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13053:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5467, - "nodeType": "ExpressionStatement", - "src": "13053:30:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5469, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13106:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5470, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13113:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5468, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "13090:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13090:32:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5472, - "nodeType": "ExpressionStatement", - "src": "13090:32:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5474, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13140:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5475, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13145:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5473, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "13129:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13129:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5477, - "nodeType": "ExpressionStatement", - "src": "13129:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5479, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13177:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5480, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13184:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5481, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13189:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5478, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "13168:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13168:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5483, - "nodeType": "EmitStatement", - "src": "13163:35:8" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5485, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5444, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "12963:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5445, - "modifierName": { - "argumentTypes": null, - "id": 5443, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "12951:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12951:21:8" - } - ], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5442, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5437, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12874:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5436, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12874:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5439, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12894:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5438, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12894:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5441, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12912:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5440, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12912:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12867:66:8" - }, - "returnParameters": { - "id": 5446, - "nodeType": "ParameterList", - "parameters": [], - "src": "12976:0:8" - }, - "scope": 5764, - "src": "12846:358:8", - "stateMutability": "nonpayable", - "superFunction": 5166, - "visibility": "public" - }, - { - "body": { - "id": 5504, - "nodeType": "Block", - "src": "13960:101:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5498, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5487, - "src": "14030:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5499, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5489, - "src": "14037:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5500, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "14042:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 5501, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14052:2:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 5497, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5505, - 5535 - ], - "referencedDeclaration": 5535, - "src": "14013:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,uint256,bytes memory)" - } - }, - "id": 5502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14013:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5503, - "nodeType": "ExpressionStatement", - "src": "14013:42:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5505, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5494, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "13947:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5495, - "modifierName": { - "argumentTypes": null, - "id": 5493, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "13935:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13935:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5492, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5487, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5486, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5489, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13878:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5488, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13878:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5491, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13896:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5490, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13896:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13851:66:8" - }, - "returnParameters": { - "id": 5496, - "nodeType": "ParameterList", - "parameters": [], - "src": "13960:0:8" - }, - "scope": 5764, - "src": "13826:235:8", - "stateMutability": "nonpayable", - "superFunction": 5175, - "visibility": "public" - }, - { - "body": { - "id": 5534, - "nodeType": "Block", - "src": "14908:162:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5520, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "14928:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5521, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "14935:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5522, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14940:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5519, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5485 - ], - "referencedDeclaration": 5485, - "src": "14915:12:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14915:34:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5524, - "nodeType": "ExpressionStatement", - "src": "14915:34:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5527, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "15035:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5528, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "15042:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5529, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "15047:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5530, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5513, - "src": "15057:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 5526, - "name": "checkAndCallSafeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5763, - "src": "15010:24:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,address,uint256,bytes memory) returns (bool)" - } - }, - "id": 5531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15010:53:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5525, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "15002:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15002:62:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5533, - "nodeType": "ExpressionStatement", - "src": "15002:62:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", - "id": 5535, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5516, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14895:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5517, - "modifierName": { - "argumentTypes": null, - "id": 5515, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "14883:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14883:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5514, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5507, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14781:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5506, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14781:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5509, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14801:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5508, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14801:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5511, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14819:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5510, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14819:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5513, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14842:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5512, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14842:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14774:91:8" - }, - "returnParameters": { - "id": 5518, - "nodeType": "ParameterList", - "parameters": [], - "src": "14908:0:8" - }, - "scope": 5764, - "src": "14749:321:8", - "stateMutability": "nonpayable", - "superFunction": 5186, - "visibility": "public" - }, - { - "body": { - "id": 5566, - "nodeType": "Block", - "src": "15551:330:8", - "statements": [ - { - "assignments": [ - 5545 - ], - "declarations": [ - { - "constant": false, - "id": 5545, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5566, - "src": "15558:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5544, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15558:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5549, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5547, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15582:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5546, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "15574:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15574:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15558:33:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5550, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15763:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5551, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15775:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15763:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5554, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15803:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5553, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5388 - ], - "referencedDeclaration": 5388, - "src": "15791:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15791:21:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5556, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15816:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15791:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:61:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5560, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15852:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5561, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15859:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5559, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "15835:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15835:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:105:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5564, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "15754:121:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5543, - "id": 5565, - "nodeType": "Return", - "src": "15747:128:8" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", - "id": 5567, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5540, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5537, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15459:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5536, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15459:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5539, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15482:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5538, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15482:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15452:51:8" - }, - "returnParameters": { - "id": 5543, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5542, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15542:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5541, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "15542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15541:6:8" - }, - "scope": 5764, - "src": "15426:455:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5595, - "nodeType": "Block", - "src": "16193:118:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5575, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16208:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16223:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16215:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5578, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16215:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16208:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5574, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "16200:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16200:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5581, - "nodeType": "ExpressionStatement", - "src": "16200:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5583, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16244:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5584, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16249:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5582, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "16233:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16233:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5586, - "nodeType": "ExpressionStatement", - "src": "16233:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16287:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5588, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16279:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5590, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16279:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5591, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16291:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5592, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16296:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5587, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16270:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16270:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5594, - "nodeType": "EmitStatement", - "src": "16265:40:8" - } - ] - }, - "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", - "id": 5596, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5572, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5569, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16153:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5568, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16153:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5571, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16166:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5570, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16166:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16152:31:8" - }, - "returnParameters": { - "id": 5573, - "nodeType": "ParameterList", - "parameters": [], - "src": "16193:0:8" - }, - "scope": 5764, - "src": "16138:173:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5621, - "nodeType": "Block", - "src": "16562:134:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5604, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16583:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5605, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16591:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5603, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "16569:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16569:31:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5607, - "nodeType": "ExpressionStatement", - "src": "16569:31:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5609, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16623:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5610, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16631:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5608, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "16607:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16607:33:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5612, - "nodeType": "ExpressionStatement", - "src": "16607:33:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5614, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16661:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16677:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5615, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16669:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5617, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16669:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5618, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16681:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5613, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16652:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16652:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5620, - "nodeType": "EmitStatement", - "src": "16647:43:8" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", - "id": 5622, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5598, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16519:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16519:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5600, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16535:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16535:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16518:34:8" - }, - "returnParameters": { - "id": 5602, - "nodeType": "ParameterList", - "parameters": [], - "src": "16562:0:8" - }, - "scope": 5764, - "src": "16504:192:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5654, - "nodeType": "Block", - "src": "17032:153:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5631, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17055:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5630, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "17047:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17047:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5633, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5624, - "src": "17068:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17047:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5629, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17039:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17039:36:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5636, - "nodeType": "ExpressionStatement", - "src": "17039:36:8" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5637, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17086:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5639, - "indexExpression": { - "argumentTypes": null, - "id": 5638, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17101:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17086:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17122:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17114:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17114:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17086:38:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5653, - "nodeType": "IfStatement", - "src": "17082:98:8", - "trueBody": { - "id": 5652, - "nodeType": "Block", - "src": "17126:54:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5644, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17135:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5646, - "indexExpression": { - "argumentTypes": null, - "id": 5645, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17150:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17135:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17170:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5647, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17162:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5649, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17162:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17135:37:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5651, - "nodeType": "ExpressionStatement", - "src": "17135:37:8" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5655, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5627, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5624, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "16989:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5623, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16989:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5626, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "17005:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5625, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17005:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16988:34:8" - }, - "returnParameters": { - "id": 5628, - "nodeType": "ParameterList", - "parameters": [], - "src": "17032:0:8" - }, - "scope": 5764, - "src": "16966:219:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5689, - "nodeType": "Block", - "src": "17515:148:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5663, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17530:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5665, - "indexExpression": { - "argumentTypes": null, - "id": 5664, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17541:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17530:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17562:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17554:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5668, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17554:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17530:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5662, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17522:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17522:43:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5671, - "nodeType": "ExpressionStatement", - "src": "17522:43:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5672, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17572:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5674, - "indexExpression": { - "argumentTypes": null, - "id": 5673, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17583:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17572:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5675, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17595:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17572:26:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5677, - "nodeType": "ExpressionStatement", - "src": "17572:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5678, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17605:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5680, - "indexExpression": { - "argumentTypes": null, - "id": 5679, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17622:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17605:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17655:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5681, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17629:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5683, - "indexExpression": { - "argumentTypes": null, - "id": 5682, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17646:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17629:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "17629:25:8", - "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": 5686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17629:28:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17605:52:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5688, - "nodeType": "ExpressionStatement", - "src": "17605:52:8" - } - ] - }, - "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", - "id": 5690, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addTokenTo", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5660, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5657, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17475:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5656, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17475:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5659, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17488:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5658, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17488:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17474:31:8" - }, - "returnParameters": { - "id": 5661, - "nodeType": "ParameterList", - "parameters": [], - "src": "17515:0:8" - }, - "scope": 5764, - "src": "17455:208:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5724, - "nodeType": "Block", - "src": "18016:151:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5702, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5699, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18039:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5698, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "18031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18031:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5701, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18052:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "18031:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5697, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "18023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18023:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5704, - "nodeType": "ExpressionStatement", - "src": "18023:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5705, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18065:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5707, - "indexExpression": { - "argumentTypes": null, - "id": 5706, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18082:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18065:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18119:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5708, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18091:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5710, - "indexExpression": { - "argumentTypes": null, - "id": 5709, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18108:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18091:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "18091:27:8", - "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": 5713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18091:30:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18065:56:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5715, - "nodeType": "ExpressionStatement", - "src": "18065:56:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5716, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "18128:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5718, - "indexExpression": { - "argumentTypes": null, - "id": 5717, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18139:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18128:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18159:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18151:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18151:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "18128:33:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5723, - "nodeType": "ExpressionStatement", - "src": "18128:33:8" - } - ] - }, - "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", - "id": 5725, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "removeTokenFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5695, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5692, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17974:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5691, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17974:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5694, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17989:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5693, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17989:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17973:33:8" - }, - "returnParameters": { - "id": 5696, - "nodeType": "ParameterList", - "parameters": [], - "src": "18016:0:8" - }, - "scope": 5764, - "src": "17949:218:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5762, - "nodeType": "Block", - "src": "18846:195:8", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 5741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "18857:17:8", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5738, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18858:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 5008, - "src": "18858:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 5740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18858:16:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5745, - "nodeType": "IfStatement", - "src": "18853:51:8", - "trueBody": { - "id": 5744, - "nodeType": "Block", - "src": "18876:28:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5742, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18892:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 5737, - "id": 5743, - "nodeType": "Return", - "src": "18885:11:8" - } - ] - } - }, - { - "assignments": [ - 5747 - ], - "declarations": [ - { - "constant": false, - "id": 5747, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 5762, - "src": "18910:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5746, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "18910:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5756, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5752, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5727, - "src": "18971:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5753, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5731, - "src": "18978:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5754, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5733, - "src": "18988:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5749, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18941:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5748, - "name": "ERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5080, - "src": "18926:14:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", - "typeString": "type(contract ERC721Receiver)" - } - }, - "id": 5750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:19:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Receiver_$5080", - "typeString": "contract ERC721Receiver" - } - }, - "id": 5751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 5079, - "src": "18926:36:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" - } - }, - "id": 5755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:68:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18910:84:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5757, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5747, - "src": "19009:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5758, - "name": "ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5206, - "src": "19019:15:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "19009:25:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5760, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19008:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5737, - "id": 5761, - "nodeType": "Return", - "src": "19001:34:8" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", - "id": 5763, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "checkAndCallSafeTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5734, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5727, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18724:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5726, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18724:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5729, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18744:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18744:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5731, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18762:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5730, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18762:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5733, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18785:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5732, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "18785:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18717:91:8" - }, - "returnParameters": { - "id": 5737, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5736, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18837:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5735, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18837:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18836:6:8" - }, - "scope": 5764, - "src": "18684:357:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "6942:12102:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5765, - "name": "ERC721BasicToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5764, - "src": "19081:16:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", - "typeString": "contract ERC721BasicToken" - } - }, - "id": 5766, - "nodeType": "InheritanceSpecifier", - "src": "19081:16:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187, - 5764 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 5797, - "linearizedBaseContracts": [ - 5797, - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicTokenMock", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5780, - "nodeType": "Block", - "src": "19155:39:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5776, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5768, - "src": "19174:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5777, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5770, - "src": "19179:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5773, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19162:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 5596, - "src": "19162:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19162:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5779, - "nodeType": "ExpressionStatement", - "src": "19162:26:8" - } - ] - }, - "documentation": null, - "id": 5781, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5771, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5768, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19117:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5767, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19117:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5770, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19130:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5769, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19130:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19116:31:8" - }, - "returnParameters": { - "id": 5772, - "nodeType": "ParameterList", - "parameters": [], - "src": "19155:0:8" - }, - "scope": 5797, - "src": "19103:91:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5795, - "nodeType": "Block", - "src": "19239:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5790, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19266:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5789, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "19258:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19258:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5792, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19277:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5786, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19246:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 5622, - "src": "19246:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19246:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5794, - "nodeType": "ExpressionStatement", - "src": "19246:40:8" - } - ] - }, - "documentation": null, - "id": 5796, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5784, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5783, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5796, - "src": "19214:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5782, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19214:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19213:18:8" - }, - "returnParameters": { - "id": 5785, - "nodeType": "ParameterList", - "parameters": [], - "src": "19239:0:8" - }, - "scope": 5797, - "src": "19200:92:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "19048:247:8" - } - ], - "src": "0:19297:8" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", - "exportedSymbols": { - "AddressUtils": [ - 5009 - ], - "ERC165": [ - 5017 - ], - "ERC721Basic": [ - 5187 - ], - "ERC721BasicToken": [ - 5764 - ], - "ERC721BasicTokenMock": [ - 5797 - ], - "ERC721Receiver": [ - 5080 - ], - "SupportsInterfaceWithLookup": [ - 5065 - ] - }, - "id": 5798, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4991, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:8" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "../../dao/oz/SafeMath.sol", - "id": 4992, - "nodeType": "ImportDirective", - "scope": 5798, - "sourceUnit": 9858, - "src": "34:35:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "Utility library of inline functions on addresses\r", - "fullyImplemented": true, - "id": 5009, - "linearizedBaseContracts": [ - 5009 - ], - "name": "AddressUtils", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5007, - "nodeType": "Block", - "src": "2012:524:8", - "statements": [ - { - "assignments": [ - 5000 - ], - "declarations": [ - { - "constant": false, - "id": 5000, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 5007, - "src": "2019:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4999, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2019:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5001, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2019:12:8" - }, - { - "externalReferences": [ - { - "size": { - "declaration": 5000, - "isOffset": false, - "isSlot": false, - "src": "2482:4:8", - "valueSize": 1 - } - }, - { - "addr": { - "declaration": 4994, - "isOffset": false, - "isSlot": false, - "src": "2502:4:8", - "valueSize": 1 - } - } - ], - "id": 5002, - "nodeType": "InlineAssembly", - "operations": "{ size := extcodesize(addr) }", - "src": "2471:38:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5003, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5000, - "src": "2522:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5004, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2529:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2522:8:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4998, - "id": 5006, - "nodeType": "Return", - "src": "2515:15:8" - } - ] - }, - "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", - "id": 5008, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4994, - "name": "addr", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "1969:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1969:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1968:14:8" - }, - "returnParameters": { - "id": 4998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4997, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "2006:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4996, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2006:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2005:6:8" - }, - "scope": 5009, - "src": "1949:587:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "1590:951:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", - "fullyImplemented": false, - "id": 5017, - "linearizedBaseContracts": [ - 5017 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", - "id": 5016, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5012, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5011, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "2950:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5010, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "2950:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2949:21:8" - }, - "returnParameters": { - "id": 5015, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5014, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "3009:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5013, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3009:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3008:6:8" - }, - "scope": 5017, - "src": "2923:92:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 5798, - "src": "2643:375:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5018, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "3196:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5019, - "nodeType": "InheritanceSpecifier", - "src": "3196:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", - "fullyImplemented": true, - "id": 5065, - "linearizedBaseContracts": [ - 5065, - 5017 - ], - "name": "SupportsInterfaceWithLookup", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5022, - "name": "InterfaceId_ERC165", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3208:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5020, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3208:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 5021, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3252:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 5026, - "name": "supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3443:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 5025, - "keyType": { - "id": 5023, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3451:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "3443:23:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 5024, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3461:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 5033, - "nodeType": "Block", - "src": "3638:51:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5030, - "name": "InterfaceId_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5022, - "src": "3664:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5029, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "3645:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3645:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5032, - "nodeType": "ExpressionStatement", - "src": "3645:38:8" - } - ] - }, - "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", - "id": 5034, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5027, - "nodeType": "ParameterList", - "parameters": [], - "src": "3620:2:8" - }, - "returnParameters": { - "id": 5028, - "nodeType": "ParameterList", - "parameters": [], - "src": "3638:0:8" - }, - "scope": 5065, - "src": "3609:80:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5045, - "nodeType": "Block", - "src": "3872:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5041, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "3886:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5043, - "indexExpression": { - "argumentTypes": null, - "id": 5042, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5036, - "src": "3906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3886:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5040, - "id": 5044, - "nodeType": "Return", - "src": "3879:40:8" - } - ] - }, - "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", - "id": 5046, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5037, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5036, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3804:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5035, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3804:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3803:21:8" - }, - "returnParameters": { - "id": 5040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5039, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3863:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5038, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3863:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3862:6:8" - }, - "scope": 5065, - "src": "3777:148:8", - "stateMutability": "view", - "superFunction": 5016, - "visibility": "external" - }, - { - "body": { - "id": 5063, - "nodeType": "Block", - "src": "4066:95:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5052, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4081:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 5053, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4097:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "4081:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5051, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4073:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4073:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5056, - "nodeType": "ExpressionStatement", - "src": "4073:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5057, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "4115:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5059, - "indexExpression": { - "argumentTypes": null, - "id": 5058, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4135:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4115:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4151:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4115:40:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5062, - "nodeType": "ExpressionStatement", - "src": "4115:40:8" - } - ] - }, - "documentation": "@dev private method for registering an interface\r", - "id": 5064, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5049, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5048, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5064, - "src": "4028:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5047, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4028:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4027:21:8" - }, - "returnParameters": { - "id": 5050, - "nodeType": "ParameterList", - "parameters": [], - "src": "4066:0:8" - }, - "scope": 5065, - "src": "4000:161:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "3156:1008:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", - "fullyImplemented": false, - "id": 5080, - "linearizedBaseContracts": [ - 5080 - ], - "name": "ERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5068, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5080, - "src": "4607:53:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5066, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4607:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4650:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "internal" - }, - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", - "id": 5079, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5070, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5364:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5069, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5364:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5072, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5384:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5071, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5384:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5074, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5407:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5073, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5407:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5357:73:8" - }, - "returnParameters": { - "id": 5078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5077, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5456:6:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5076, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "5456:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5455:8:8" - }, - "scope": 5080, - "src": "5332:132:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "4326:1141:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5081, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "5641:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5082, - "nodeType": "InheritanceSpecifier", - "src": "5641:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": false, - "id": 5187, - "linearizedBaseContracts": [ - 5187, - 5017 - ], - "name": "ERC721Basic", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 5090, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 5089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5084, - "indexed": false, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5674:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5083, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5674:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5086, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5695:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5085, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5695:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5088, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5714:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5087, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5714:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5667:69:8" - }, - "src": "5653:84:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5098, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 5097, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5092, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5762:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5091, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5762:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5094, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5784:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5784:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5096, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5809:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5095, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5809:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5755:76:8" - }, - "src": "5741:91:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5106, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 5105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5100, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5863:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5099, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5863:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5102, - "indexed": false, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5885:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5101, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5885:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5104, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5910:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5103, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5910:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5856:73:8" - }, - "src": "5836:94:8" - }, - { - "body": null, - "documentation": null, - "id": 5113, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5109, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5108, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5955:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5107, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5955:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5954:16:8" - }, - "returnParameters": { - "id": 5112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5111, - "name": "_balance", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5992:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5110, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5992:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5991:18:8" - }, - "scope": 5187, - "src": "5936:74:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5120, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5116, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5115, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6031:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5114, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6030:18:8" - }, - "returnParameters": { - "id": 5119, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5118, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6070:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5117, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6070:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6069:16:8" - }, - "scope": 5187, - "src": "6014:72:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5127, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5123, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5122, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6106:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5121, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6106:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6105:18:8" - }, - "returnParameters": { - "id": 5126, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5125, - "name": "_exists", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6145:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5124, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6145:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6144:14:8" - }, - "scope": 5187, - "src": "6090:69:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5134, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5132, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5129, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6182:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6182:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5131, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6195:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6195:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6181:31:8" - }, - "returnParameters": { - "id": 5133, - "nodeType": "ParameterList", - "parameters": [], - "src": "6219:0:8" - }, - "scope": 5187, - "src": "6165:55:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5141, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5136, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6245:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5135, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6245:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6244:18:8" - }, - "returnParameters": { - "id": 5140, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5139, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6289:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5138, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6289:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6288:19:8" - }, - "scope": 5187, - "src": "6224:84:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5148, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5143, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6341:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6341:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5145, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6360:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5144, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6360:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6340:35:8" - }, - "returnParameters": { - "id": 5147, - "nodeType": "ParameterList", - "parameters": [], - "src": "6382:0:8" - }, - "scope": 5187, - "src": "6314:69:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5157, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5150, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6413:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5149, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6413:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5152, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6429:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5151, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6429:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6412:35:8" - }, - "returnParameters": { - "id": 5156, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5155, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6474:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5154, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6474:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6473:6:8" - }, - "scope": 5187, - "src": "6387:93:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5166, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5159, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6508:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5158, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6508:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5161, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6523:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5160, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6523:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5163, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6536:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5162, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6536:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6507:46:8" - }, - "returnParameters": { - "id": 5165, - "nodeType": "ParameterList", - "parameters": [], - "src": "6560:0:8" - }, - "scope": 5187, - "src": "6486:75:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5175, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5168, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6591:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5167, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6591:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5170, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6606:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5169, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6606:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5172, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6619:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6619:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6590:46:8" - }, - "returnParameters": { - "id": 5174, - "nodeType": "ParameterList", - "parameters": [], - "src": "6648:0:8" - }, - "scope": 5187, - "src": "6565:84:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5186, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5177, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6687:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5176, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6687:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5179, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6707:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5178, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6707:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5181, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6725:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5180, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6725:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5183, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6748:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5182, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6748:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6680:91:8" - }, - "returnParameters": { - "id": 5185, - "nodeType": "ParameterList", - "parameters": [], - "src": "6783:0:8" - }, - "scope": 5187, - "src": "6655:129:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "5617:1170:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5188, - "name": "SupportsInterfaceWithLookup", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5065, - "src": "6971:27:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", - "typeString": "contract SupportsInterfaceWithLookup" - } - }, - "id": 5189, - "nodeType": "InheritanceSpecifier", - "src": "6971:27:8" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5190, - "name": "ERC721Basic", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5187, - "src": "7000:11:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Basic_$5187", - "typeString": "contract ERC721Basic" - } - }, - "id": 5191, - "nodeType": "InheritanceSpecifier", - "src": "7000:11:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": true, - "id": 5764, - "linearizedBaseContracts": [ - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5194, - "name": "InterfaceId_ERC721", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7019:55:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5192, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7019:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 5193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7064:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 5197, - "name": "InterfaceId_ERC721Exists", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7668:61:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5195, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7668:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783466353538653739", - "id": 5196, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7719:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1331007097_by_1", - "typeString": "int_const 1331007097" - }, - "value": "0x4f558e79" - }, - "visibility": "private" - }, - { - "id": 5200, - "libraryName": { - "contractScope": null, - "id": 5198, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "7821:8:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "7815:27:8", - "typeName": { - "id": 5199, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7834:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 5203, - "libraryName": { - "contractScope": null, - "id": 5201, - "name": "AddressUtils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5009, - "src": "7852:12:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUtils_$5009", - "typeString": "library AddressUtils" - } - }, - "nodeType": "UsingForDirective", - "src": "7846:31:8", - "typeName": { - "id": 5202, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7869:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "constant": true, - "id": 5206, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8044:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5204, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8044:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5205, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8086:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 5210, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8140:48:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5209, - "keyType": { - "id": 5207, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8149:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8140:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5208, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8160:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5214, - "name": "tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8243:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5213, - "keyType": { - "id": 5211, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8252:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8243:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5212, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8263:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5218, - "name": "ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8352:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 5217, - "keyType": { - "id": 5215, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8361:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8352:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 5216, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8372:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5224, - "name": "operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8460:73:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "typeName": { - "id": 5223, - "keyType": { - "id": 5219, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8469:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8460:46:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 5222, - "keyType": { - "id": 5220, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8489:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8480:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 5221, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8500:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5226, - "name": "testint", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8542:19:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5225, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 5240, - "nodeType": "Block", - "src": "8774:61:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5232, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5228, - "src": "8797:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5231, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "8789:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8789:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5234, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "8810:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8810:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "8789:31:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5230, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "8781:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8781:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5238, - "nodeType": "ExpressionStatement", - "src": "8781:40:8" - }, - { - "id": 5239, - "nodeType": "PlaceholderStatement", - "src": "8828:1:8" - } - ] - }, - "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", - "id": 5241, - "name": "onlyOwnerOf", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5228, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5241, - "src": "8756:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8756:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8755:18:8" - }, - "src": "8735:100:8", - "visibility": "internal" - }, - { - "body": { - "id": 5254, - "nodeType": "Block", - "src": "9041:69:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5247, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "9074:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9074:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5249, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5243, - "src": "9086:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5246, - "name": "isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5567, - "src": "9056:17:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 5250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9056:39:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5245, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9048:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9048:48:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5252, - "nodeType": "ExpressionStatement", - "src": "9048:48:8" - }, - { - "id": 5253, - "nodeType": "PlaceholderStatement", - "src": "9103:1:8" - } - ] - }, - "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", - "id": 5255, - "name": "canTransfer", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5244, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5243, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5255, - "src": "9023:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5242, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9022:18:8" - }, - "src": "9002:108:8", - "visibility": "internal" - }, - { - "body": { - "id": 5266, - "nodeType": "Block", - "src": "9145:176:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5259, - "name": "InterfaceId_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5194, - "src": "9245:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5258, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9226:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9226:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5261, - "nodeType": "ExpressionStatement", - "src": "9226:38:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5263, - "name": "InterfaceId_ERC721Exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5197, - "src": "9290:24:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5262, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9271:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9271:44:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5265, - "nodeType": "ExpressionStatement", - "src": "9271:44:8" - } - ] - }, - "documentation": null, - "id": 5267, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5256, - "nodeType": "ParameterList", - "parameters": [], - "src": "9127:2:8" - }, - "returnParameters": { - "id": 5257, - "nodeType": "ParameterList", - "parameters": [], - "src": "9145:0:8" - }, - "scope": 5764, - "src": "9116:205:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5286, - "nodeType": "Block", - "src": "9585:80:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5275, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9600:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5277, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9618:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5276, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9610:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9610:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "9600:20:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5274, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9592:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9592:29:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5281, - "nodeType": "ExpressionStatement", - "src": "9592:29:8" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5282, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "9635:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5284, - "indexExpression": { - "argumentTypes": null, - "id": 5283, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9652:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9635:24:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5273, - "id": 5285, - "nodeType": "Return", - "src": "9628:31:8" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", - "id": 5287, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5270, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5269, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9539:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5268, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9539:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9538:16:8" - }, - "returnParameters": { - "id": 5273, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5272, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9576:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9576:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9575:9:8" - }, - "scope": 5764, - "src": "9520:145:8", - "stateMutability": "view", - "superFunction": 5113, - "visibility": "public" - }, - { - "body": { - "id": 5310, - "nodeType": "Block", - "src": "9950:103:8", - "statements": [ - { - "assignments": [ - 5295 - ], - "declarations": [ - { - "constant": false, - "id": 5295, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5310, - "src": "9957:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5294, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9957:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5299, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5296, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "9973:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5298, - "indexExpression": { - "argumentTypes": null, - "id": 5297, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5289, - "src": "9984:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9973:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9957:36:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5301, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10008:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10025:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10017:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5304, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10017:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10008:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5300, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10000:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5307, - "nodeType": "ExpressionStatement", - "src": "10000:28:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5308, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10042:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5293, - "id": 5309, - "nodeType": "Return", - "src": "10035:12:8" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", - "id": 5311, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5289, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9902:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5288, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9902:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9901:18:8" - }, - "returnParameters": { - "id": 5293, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5292, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9941:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5291, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9941:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9940:9:8" - }, - "scope": 5764, - "src": "9885:168:8", - "stateMutability": "view", - "superFunction": 5120, - "visibility": "public" - }, - { - "body": { - "id": 5330, - "nodeType": "Block", - "src": "10299:82:8", - "statements": [ - { - "assignments": [ - 5319 - ], - "declarations": [ - { - "constant": false, - "id": 5319, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5330, - "src": "10306:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5318, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10306:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5323, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5320, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "10322:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5322, - "indexExpression": { - "argumentTypes": null, - "id": 5321, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5313, - "src": "10333:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10322:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10306:36:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5324, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5319, - "src": "10356:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5326, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10373:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5325, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10365:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10365:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10356:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5317, - "id": 5329, - "nodeType": "Return", - "src": "10349:26:8" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", - "id": 5331, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5313, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10254:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5312, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10254:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10253:18:8" - }, - "returnParameters": { - "id": 5317, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5316, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10293:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5315, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10293:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10292:6:8" - }, - "scope": 5764, - "src": "10238:143:8", - "stateMutability": "view", - "superFunction": 5127, - "visibility": "public" - }, - { - "body": { - "id": 5375, - "nodeType": "Block", - "src": "10851:229:8", - "statements": [ - { - "assignments": [ - 5339 - ], - "declarations": [ - { - "constant": false, - "id": 5339, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5375, - "src": "10858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5338, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5343, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5341, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "10882:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5340, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "10874:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10874:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10858:33:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5345, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "10906:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 5346, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10913:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5344, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10898:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10898:21:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5349, - "nodeType": "ExpressionStatement", - "src": "10898:21:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5351, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10934:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10934:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5353, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10948:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10934:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5356, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10974:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5357, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10981:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10981:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 5355, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "10957:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10957:35:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "10934:58:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5350, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10926:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10926:67:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5362, - "nodeType": "ExpressionStatement", - "src": "10926:67:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5363, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11002:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5365, - "indexExpression": { - "argumentTypes": null, - "id": 5364, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11017:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11002:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5366, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11029:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "11002:30:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5368, - "nodeType": "ExpressionStatement", - "src": "11002:30:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5370, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "11053:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5371, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11060:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5372, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11065:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5369, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5098, - "src": "11044:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11044:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5374, - "nodeType": "EmitStatement", - "src": "11039:35:8" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", - "id": 5376, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5336, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5333, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10813:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10813:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5335, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10826:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5334, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10826:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10812:31:8" - }, - "returnParameters": { - "id": 5337, - "nodeType": "ParameterList", - "parameters": [], - "src": "10851:0:8" - }, - "scope": 5764, - "src": "10796:284:8", - "stateMutability": "nonpayable", - "superFunction": 5134, - "visibility": "public" - }, - { - "body": { - "id": 5387, - "nodeType": "Block", - "src": "11383:44:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5383, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11397:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5385, - "indexExpression": { - "argumentTypes": null, - "id": 5384, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5378, - "src": "11412:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11397:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5382, - "id": 5386, - "nodeType": "Return", - "src": "11390:31:8" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", - "id": 5388, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5378, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11335:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5377, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11335:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11334:18:8" - }, - "returnParameters": { - "id": 5382, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5381, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11374:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5380, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11374:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11373:9:8" - }, - "scope": 5764, - "src": "11314:113:8", - "stateMutability": "view", - "superFunction": 5141, - "visibility": "public" - }, - { - "body": { - "id": 5418, - "nodeType": "Block", - "src": "11778:146:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5396, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11793:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5397, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11800:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11800:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "11793:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5395, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "11785:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11785:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5401, - "nodeType": "ExpressionStatement", - "src": "11785:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5402, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "11818:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5406, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5403, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11836:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11836:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11818:29:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5407, - "indexExpression": { - "argumentTypes": null, - "id": 5405, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11848:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11818:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5408, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11855:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11818:46:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5410, - "nodeType": "ExpressionStatement", - "src": "11818:46:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5412, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11891:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11891:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5414, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11903:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5415, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11908:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5411, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5106, - "src": "11876:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 5416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11876:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5417, - "nodeType": "EmitStatement", - "src": "11871:47:8" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", - "id": 5419, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5390, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11742:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5389, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11742:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5392, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11755:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5391, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11755:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11741:29:8" - }, - "returnParameters": { - "id": 5394, - "nodeType": "ParameterList", - "parameters": [], - "src": "11778:0:8" - }, - "scope": 5764, - "src": "11715:209:8", - "stateMutability": "nonpayable", - "superFunction": 5148, - "visibility": "public" - }, - { - "body": { - "id": 5434, - "nodeType": "Block", - "src": "12362:56:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5428, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "12376:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5430, - "indexExpression": { - "argumentTypes": null, - "id": 5429, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5421, - "src": "12394:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5432, - "indexExpression": { - "argumentTypes": null, - "id": 5431, - "name": "_operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5423, - "src": "12402:9:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:36:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5427, - "id": 5433, - "nodeType": "Return", - "src": "12369:43:8" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", - "id": 5435, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5424, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5421, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12273:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5420, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12273:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5423, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12294:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5422, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12294:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12266:50:8" - }, - "returnParameters": { - "id": 5427, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5426, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12353:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5425, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12353:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12352:6:8" - }, - "scope": 5764, - "src": "12241:177:8", - "stateMutability": "view", - "superFunction": 5157, - "visibility": "public" - }, - { - "body": { - "id": 5484, - "nodeType": "Block", - "src": "12976:228:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5448, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "12991:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5450, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13008:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5449, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13000:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "12991:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5447, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "12983:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12983:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5454, - "nodeType": "ExpressionStatement", - "src": "12983:28:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5456, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13026:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13041:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5457, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13033:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5459, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13033:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "13026:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5455, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "13018:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13018:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5462, - "nodeType": "ExpressionStatement", - "src": "13018:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5464, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13067:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5465, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13074:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5463, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "13053:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13053:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5467, - "nodeType": "ExpressionStatement", - "src": "13053:30:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5469, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13106:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5470, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13113:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5468, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "13090:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13090:32:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5472, - "nodeType": "ExpressionStatement", - "src": "13090:32:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5474, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13140:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5475, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13145:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5473, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "13129:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13129:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5477, - "nodeType": "ExpressionStatement", - "src": "13129:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5479, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13177:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5480, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13184:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5481, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13189:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5478, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "13168:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13168:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5483, - "nodeType": "EmitStatement", - "src": "13163:35:8" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5485, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5444, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "12963:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5445, - "modifierName": { - "argumentTypes": null, - "id": 5443, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "12951:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12951:21:8" - } - ], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5442, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5437, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12874:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5436, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12874:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5439, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12894:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5438, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12894:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5441, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12912:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5440, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12912:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12867:66:8" - }, - "returnParameters": { - "id": 5446, - "nodeType": "ParameterList", - "parameters": [], - "src": "12976:0:8" - }, - "scope": 5764, - "src": "12846:358:8", - "stateMutability": "nonpayable", - "superFunction": 5166, - "visibility": "public" - }, - { - "body": { - "id": 5504, - "nodeType": "Block", - "src": "13960:101:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5498, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5487, - "src": "14030:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5499, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5489, - "src": "14037:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5500, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "14042:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 5501, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14052:2:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 5497, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5505, - 5535 - ], - "referencedDeclaration": 5535, - "src": "14013:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,uint256,bytes memory)" - } - }, - "id": 5502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14013:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5503, - "nodeType": "ExpressionStatement", - "src": "14013:42:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5505, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5494, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "13947:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5495, - "modifierName": { - "argumentTypes": null, - "id": 5493, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "13935:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13935:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5492, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5487, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5486, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5489, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13878:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5488, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13878:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5491, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13896:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5490, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13896:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13851:66:8" - }, - "returnParameters": { - "id": 5496, - "nodeType": "ParameterList", - "parameters": [], - "src": "13960:0:8" - }, - "scope": 5764, - "src": "13826:235:8", - "stateMutability": "nonpayable", - "superFunction": 5175, - "visibility": "public" - }, - { - "body": { - "id": 5534, - "nodeType": "Block", - "src": "14908:162:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5520, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "14928:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5521, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "14935:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5522, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14940:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5519, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5485 - ], - "referencedDeclaration": 5485, - "src": "14915:12:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14915:34:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5524, - "nodeType": "ExpressionStatement", - "src": "14915:34:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5527, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "15035:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5528, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "15042:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5529, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "15047:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5530, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5513, - "src": "15057:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 5526, - "name": "checkAndCallSafeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5763, - "src": "15010:24:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,address,uint256,bytes memory) returns (bool)" - } - }, - "id": 5531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15010:53:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5525, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "15002:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15002:62:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5533, - "nodeType": "ExpressionStatement", - "src": "15002:62:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", - "id": 5535, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5516, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14895:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5517, - "modifierName": { - "argumentTypes": null, - "id": 5515, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "14883:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14883:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5514, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5507, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14781:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5506, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14781:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5509, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14801:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5508, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14801:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5511, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14819:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5510, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14819:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5513, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14842:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5512, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14842:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14774:91:8" - }, - "returnParameters": { - "id": 5518, - "nodeType": "ParameterList", - "parameters": [], - "src": "14908:0:8" - }, - "scope": 5764, - "src": "14749:321:8", - "stateMutability": "nonpayable", - "superFunction": 5186, - "visibility": "public" - }, - { - "body": { - "id": 5566, - "nodeType": "Block", - "src": "15551:330:8", - "statements": [ - { - "assignments": [ - 5545 - ], - "declarations": [ - { - "constant": false, - "id": 5545, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5566, - "src": "15558:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5544, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15558:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5549, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5547, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15582:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5546, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "15574:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15574:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15558:33:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5550, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15763:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5551, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15775:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15763:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5554, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15803:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5553, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5388 - ], - "referencedDeclaration": 5388, - "src": "15791:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15791:21:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5556, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15816:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15791:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:61:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5560, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15852:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5561, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15859:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5559, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "15835:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15835:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:105:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5564, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "15754:121:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5543, - "id": 5565, - "nodeType": "Return", - "src": "15747:128:8" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", - "id": 5567, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5540, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5537, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15459:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5536, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15459:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5539, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15482:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5538, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15482:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15452:51:8" - }, - "returnParameters": { - "id": 5543, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5542, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15542:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5541, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "15542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15541:6:8" - }, - "scope": 5764, - "src": "15426:455:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5595, - "nodeType": "Block", - "src": "16193:118:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5575, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16208:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16223:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16215:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5578, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16215:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16208:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5574, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "16200:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16200:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5581, - "nodeType": "ExpressionStatement", - "src": "16200:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5583, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16244:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5584, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16249:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5582, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "16233:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16233:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5586, - "nodeType": "ExpressionStatement", - "src": "16233:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16287:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5588, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16279:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5590, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16279:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5591, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16291:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5592, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16296:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5587, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16270:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16270:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5594, - "nodeType": "EmitStatement", - "src": "16265:40:8" - } - ] - }, - "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", - "id": 5596, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5572, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5569, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16153:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5568, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16153:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5571, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16166:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5570, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16166:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16152:31:8" - }, - "returnParameters": { - "id": 5573, - "nodeType": "ParameterList", - "parameters": [], - "src": "16193:0:8" - }, - "scope": 5764, - "src": "16138:173:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5621, - "nodeType": "Block", - "src": "16562:134:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5604, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16583:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5605, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16591:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5603, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "16569:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16569:31:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5607, - "nodeType": "ExpressionStatement", - "src": "16569:31:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5609, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16623:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5610, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16631:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5608, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "16607:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16607:33:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5612, - "nodeType": "ExpressionStatement", - "src": "16607:33:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5614, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16661:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16677:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5615, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16669:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5617, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16669:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5618, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16681:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5613, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16652:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16652:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5620, - "nodeType": "EmitStatement", - "src": "16647:43:8" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", - "id": 5622, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5598, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16519:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16519:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5600, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16535:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16535:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16518:34:8" - }, - "returnParameters": { - "id": 5602, - "nodeType": "ParameterList", - "parameters": [], - "src": "16562:0:8" - }, - "scope": 5764, - "src": "16504:192:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5654, - "nodeType": "Block", - "src": "17032:153:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5631, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17055:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5630, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "17047:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17047:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5633, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5624, - "src": "17068:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17047:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5629, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17039:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17039:36:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5636, - "nodeType": "ExpressionStatement", - "src": "17039:36:8" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5637, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17086:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5639, - "indexExpression": { - "argumentTypes": null, - "id": 5638, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17101:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17086:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17122:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17114:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17114:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17086:38:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5653, - "nodeType": "IfStatement", - "src": "17082:98:8", - "trueBody": { - "id": 5652, - "nodeType": "Block", - "src": "17126:54:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5644, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17135:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5646, - "indexExpression": { - "argumentTypes": null, - "id": 5645, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17150:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17135:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17170:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5647, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17162:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5649, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17162:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17135:37:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5651, - "nodeType": "ExpressionStatement", - "src": "17135:37:8" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5655, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5627, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5624, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "16989:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5623, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16989:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5626, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "17005:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5625, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17005:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16988:34:8" - }, - "returnParameters": { - "id": 5628, - "nodeType": "ParameterList", - "parameters": [], - "src": "17032:0:8" - }, - "scope": 5764, - "src": "16966:219:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5689, - "nodeType": "Block", - "src": "17515:148:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5663, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17530:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5665, - "indexExpression": { - "argumentTypes": null, - "id": 5664, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17541:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17530:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17562:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17554:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5668, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17554:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17530:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5662, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17522:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17522:43:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5671, - "nodeType": "ExpressionStatement", - "src": "17522:43:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5672, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17572:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5674, - "indexExpression": { - "argumentTypes": null, - "id": 5673, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17583:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17572:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5675, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17595:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17572:26:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5677, - "nodeType": "ExpressionStatement", - "src": "17572:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5678, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17605:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5680, - "indexExpression": { - "argumentTypes": null, - "id": 5679, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17622:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17605:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17655:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5681, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17629:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5683, - "indexExpression": { - "argumentTypes": null, - "id": 5682, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17646:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17629:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "17629:25:8", - "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": 5686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17629:28:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17605:52:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5688, - "nodeType": "ExpressionStatement", - "src": "17605:52:8" - } - ] - }, - "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", - "id": 5690, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addTokenTo", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5660, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5657, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17475:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5656, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17475:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5659, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17488:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5658, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17488:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17474:31:8" - }, - "returnParameters": { - "id": 5661, - "nodeType": "ParameterList", - "parameters": [], - "src": "17515:0:8" - }, - "scope": 5764, - "src": "17455:208:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5724, - "nodeType": "Block", - "src": "18016:151:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5702, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5699, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18039:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5698, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "18031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18031:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5701, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18052:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "18031:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5697, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "18023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18023:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5704, - "nodeType": "ExpressionStatement", - "src": "18023:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5705, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18065:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5707, - "indexExpression": { - "argumentTypes": null, - "id": 5706, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18082:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18065:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18119:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5708, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18091:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5710, - "indexExpression": { - "argumentTypes": null, - "id": 5709, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18108:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18091:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "18091:27:8", - "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": 5713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18091:30:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18065:56:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5715, - "nodeType": "ExpressionStatement", - "src": "18065:56:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5716, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "18128:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5718, - "indexExpression": { - "argumentTypes": null, - "id": 5717, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18139:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18128:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18159:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18151:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18151:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "18128:33:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5723, - "nodeType": "ExpressionStatement", - "src": "18128:33:8" - } - ] - }, - "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", - "id": 5725, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "removeTokenFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5695, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5692, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17974:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5691, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17974:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5694, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17989:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5693, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17989:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17973:33:8" - }, - "returnParameters": { - "id": 5696, - "nodeType": "ParameterList", - "parameters": [], - "src": "18016:0:8" - }, - "scope": 5764, - "src": "17949:218:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5762, - "nodeType": "Block", - "src": "18846:195:8", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 5741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "18857:17:8", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5738, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18858:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 5008, - "src": "18858:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 5740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18858:16:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5745, - "nodeType": "IfStatement", - "src": "18853:51:8", - "trueBody": { - "id": 5744, - "nodeType": "Block", - "src": "18876:28:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5742, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18892:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 5737, - "id": 5743, - "nodeType": "Return", - "src": "18885:11:8" - } - ] - } - }, - { - "assignments": [ - 5747 - ], - "declarations": [ - { - "constant": false, - "id": 5747, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 5762, - "src": "18910:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5746, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "18910:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5756, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5752, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5727, - "src": "18971:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5753, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5731, - "src": "18978:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5754, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5733, - "src": "18988:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5749, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18941:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5748, - "name": "ERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5080, - "src": "18926:14:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", - "typeString": "type(contract ERC721Receiver)" - } - }, - "id": 5750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:19:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Receiver_$5080", - "typeString": "contract ERC721Receiver" - } - }, - "id": 5751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 5079, - "src": "18926:36:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" - } - }, - "id": 5755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:68:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18910:84:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5757, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5747, - "src": "19009:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5758, - "name": "ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5206, - "src": "19019:15:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "19009:25:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5760, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19008:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5737, - "id": 5761, - "nodeType": "Return", - "src": "19001:34:8" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", - "id": 5763, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "checkAndCallSafeTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5734, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5727, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18724:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5726, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18724:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5729, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18744:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18744:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5731, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18762:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5730, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18762:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5733, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18785:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5732, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "18785:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18717:91:8" - }, - "returnParameters": { - "id": 5737, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5736, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18837:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5735, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18837:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18836:6:8" - }, - "scope": 5764, - "src": "18684:357:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "6942:12102:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5765, - "name": "ERC721BasicToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5764, - "src": "19081:16:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", - "typeString": "contract ERC721BasicToken" - } - }, - "id": 5766, - "nodeType": "InheritanceSpecifier", - "src": "19081:16:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187, - 5764 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 5797, - "linearizedBaseContracts": [ - 5797, - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicTokenMock", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5780, - "nodeType": "Block", - "src": "19155:39:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5776, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5768, - "src": "19174:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5777, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5770, - "src": "19179:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5773, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19162:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 5596, - "src": "19162:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19162:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5779, - "nodeType": "ExpressionStatement", - "src": "19162:26:8" - } - ] - }, - "documentation": null, - "id": 5781, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5771, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5768, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19117:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5767, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19117:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5770, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19130:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5769, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19130:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19116:31:8" - }, - "returnParameters": { - "id": 5772, - "nodeType": "ParameterList", - "parameters": [], - "src": "19155:0:8" - }, - "scope": 5797, - "src": "19103:91:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5795, - "nodeType": "Block", - "src": "19239:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5790, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19266:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5789, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "19258:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19258:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5792, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19277:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5786, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19246:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 5622, - "src": "19246:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19246:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5794, - "nodeType": "ExpressionStatement", - "src": "19246:40:8" - } - ] - }, - "documentation": null, - "id": 5796, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5784, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5783, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5796, - "src": "19214:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5782, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19214:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19213:18:8" - }, - "returnParameters": { - "id": 5785, - "nodeType": "ParameterList", - "parameters": [], - "src": "19239:0:8" - }, - "scope": 5797, - "src": "19200:92:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "19048:247:8" - } - ], - "src": "0:19297:8" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:19.988Z", - "devdoc": { - "details": "see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "methods": { - "supportsInterface(bytes4)": { - "details": "Interface identification is specified in ERC-165. This function\r uses less than 30,000 gas.\r", - "params": { - "_interfaceId": "The interface identifier, as specified in ERC-165\r" - } - } - }, - "title": "ERC721 Non-Fungible Token Standard basic interface\r" - }, - "userdoc": { - "methods": { - "supportsInterface(bytes4)": { - "notice": "Query if a contract implements an interface\r" - } - } - } -} \ No newline at end of file diff --git a/src/contracts/ERC721BasicToken.json b/src/contracts/ERC721BasicToken.json deleted file mode 100644 index 79520a2..0000000 --- a/src/contracts/ERC721BasicToken.json +++ /dev/null @@ -1,21588 +0,0 @@ -{ - "contractName": "ERC721BasicToken", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "_interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "InterfaceId_ERC165", - "outputs": [ - { - "name": "", - "type": "bytes4" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "testint", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_from", - "type": "address" - }, - { - "indexed": false, - "name": "_to", - "type": "address" - }, - { - "indexed": false, - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_owner", - "type": "address" - }, - { - "indexed": false, - "name": "_approved", - "type": "address" - }, - { - "indexed": false, - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_owner", - "type": "address" - }, - { - "indexed": false, - "name": "_operator", - "type": "address" - }, - { - "indexed": false, - "name": "_approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "exists", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - }, - { - "name": "_operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_tokenId", - "type": "uint256" - }, - { - "name": "_data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"_interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"InterfaceId_ERC165\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"exists\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"testint\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\\r\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Approves another address to transfer the given token ID\\r The zero address indicates there is no approved address.\\r There can only be one approved address per token at a given time.\\r Can only be called by the token owner or an approved operator.\\r\",\"params\":{\"_to\":\"address to be approved for the given token ID\\r\",\"_tokenId\":\"uint256 ID of the token to be approved\\r\"}},\"balanceOf(address)\":{\"details\":\"Gets the balance of the specified address\\r\",\"params\":{\"_owner\":\"address to query the balance of\\r\"},\"return\":\"uint256 representing the amount owned by the passed address\\r\"},\"exists(uint256)\":{\"details\":\"Returns whether the specified token exists\\r\",\"params\":{\"_tokenId\":\"uint256 ID of the token to query the existence of\\r\"},\"return\":\"whether the token exists\\r\"},\"getApproved(uint256)\":{\"details\":\"Gets the approved address for a token ID, or zero if no address set\\r\",\"params\":{\"_tokenId\":\"uint256 ID of the token to query the approval of\\r\"},\"return\":\"address currently approved for the given token ID\\r\"},\"isApprovedForAll(address,address)\":{\"details\":\"Tells whether an operator is approved by a given owner\\r\",\"params\":{\"_operator\":\"operator address which you want to query the approval of\\r\",\"_owner\":\"owner address which you want to query the approval of\\r\"},\"return\":\"bool whether the given operator is approved by the given owner\\r\"},\"ownerOf(uint256)\":{\"details\":\"Gets the owner of the specified token ID\\r\",\"params\":{\"_tokenId\":\"uint256 ID of the token to query the owner of\\r\"},\"return\":\"owner address currently marked as the owner of the given token ID\\r\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers the ownership of a given token ID to another address\\r If the target address is a contract, it must implement `onERC721Received`,\\r which is called upon a safe transfer, and return the magic value\\r `bytes4(keccak256(\\\"onERC721Received(address,uint256,bytes)\\\"))`; otherwise,\\r the transfer is reverted.\\r * Requires the msg sender to be the owner, approved, or operator\\r\",\"params\":{\"_from\":\"current owner of the token\\r\",\"_to\":\"address to receive the ownership of the given token ID\\r\",\"_tokenId\":\"uint256 ID of the token to be transferred\\r\"}},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers the ownership of a given token ID to another address\\r If the target address is a contract, it must implement `onERC721Received`,\\r which is called upon a safe transfer, and return the magic value\\r `bytes4(keccak256(\\\"onERC721Received(address,uint256,bytes)\\\"))`; otherwise,\\r the transfer is reverted.\\r Requires the msg sender to be the owner, approved, or operator\\r\",\"params\":{\"_data\":\"bytes data to send along with a safe transfer check\\r\",\"_from\":\"current owner of the token\\r\",\"_to\":\"address to receive the ownership of the given token ID\\r\",\"_tokenId\":\"uint256 ID of the token to be transferred\\r\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"Sets or unsets the approval of a given operator\\r An operator is allowed to transfer all tokens of the sender on their behalf\\r\",\"params\":{\"_approved\":\"representing the status of the approval to be set\\r\",\"_to\":\"operator address to set the approval\\r\"}},\"supportsInterface(bytes4)\":{\"details\":\"implement supportsInterface(bytes4) using a lookup table\\r\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers the ownership of a given token ID to another address\\r Usage of this method is discouraged, use `safeTransferFrom` whenever possible\\r Requires the msg sender to be the owner, approved, or operator\\r\",\"params\":{\"_from\":\"current owner of the token\\r\",\"_to\":\"address to receive the ownership of the given token ID\\r\",\"_tokenId\":\"uint256 ID of the token to be transferred\\r\"}}},\"title\":\"ERC721 Non-Fungible Token Standard basic implementation\\r\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":\"ERC721BasicToken\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":{\"keccak256\":\"0x4dd046a190602871aa9743a94149789c1e14b14f609c68d0f34d72e19bd690ce\",\"urls\":[\"bzzr://ea591dfb88f3591fe4344b7e665024c5aa3e8fb758a0409db79b1885a996b825\",\"dweb:/ipfs/QmXrwJ2TTXMWHBQxuLCqrj96gfh5HCHK57JsCEcXJ84t6z\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b506100437f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b036100ac16565b6100757f80ac58cd000000000000000000000000000000000000000000000000000000006001600160e01b036100ac16565b6100a77f4f558e79000000000000000000000000000000000000000000000000000000006001600160e01b036100ac16565b610118565b7fffffffff0000000000000000000000000000000000000000000000000000000080821614156100db57600080fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152602081905260409020805460ff19166001179055565b610a5c806101276000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80634f558e791161008c578063a22cb46511610066578063a22cb46514610279578063b88d4fde146102a7578063e701c4641461036d578063e985e9c514610375576100cf565b80634f558e79146102075780636352211e1461022457806370a0823114610241576100cf565b806301ffc9a7146100d4578063081812fc1461010f578063095ea7b31461014857806319fa8f501461017657806323b872dd1461019b57806342842e0e146101d1575b600080fd5b6100fb600480360360208110156100ea57600080fd5b50356001600160e01b0319166103a3565b604080519115158252519081900360200190f35b61012c6004803603602081101561012557600080fd5b50356103c2565b604080516001600160a01b039092168252519081900360200190f35b6101746004803603604081101561015e57600080fd5b506001600160a01b0381351690602001356103dd565b005b61017e6104a3565b604080516001600160e01b03199092168252519081900360200190f35b610174600480360360608110156101b157600080fd5b506001600160a01b038135811691602081013590911690604001356104ae565b610174600480360360608110156101e757600080fd5b506001600160a01b03813581169160208101359091169060400135610556565b6100fb6004803603602081101561021d57600080fd5b503561058b565b61012c6004803603602081101561023a57600080fd5b50356105a8565b6102676004803603602081101561025757600080fd5b50356001600160a01b03166105d0565b60408051918252519081900360200190f35b6101746004803603604081101561028f57600080fd5b506001600160a01b0381351690602001351515610601565b610174600480360360808110156102bd57600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156102f857600080fd5b82018360208201111561030a57600080fd5b8035906020019184600183028401116401000000008311171561032c57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061068c945050505050565b6102676106c7565b6100fb6004803603604081101561038b57600080fd5b506001600160a01b03813581169160200135166106cd565b6001600160e01b03191660009081526020819052604090205460ff1690565b6000908152600260205260409020546001600160a01b031690565b60006103e8826105a8565b9050806001600160a01b0316836001600160a01b0316141561040957600080fd5b336001600160a01b0382161480610425575061042581336106cd565b61042e57600080fd5b60008281526002602090815260409182902080546001600160a01b038088166001600160a01b03199092168217909255835191851682529181019190915280820184905290517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259181900360600190a1505050565b6301ffc9a760e01b81565b806104b933826106fb565b6104c257600080fd5b6001600160a01b0384166104d557600080fd5b6001600160a01b0383166104e857600080fd5b6104f2848361075a565b6104fc84836107be565b6105068383610847565b604080516001600160a01b0380871682528516602082015280820184905290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a150505050565b8061056133826106fb565b61056a57600080fd5b6105858484846040518060200160405280600081525061068c565b50505050565b6000908152600160205260409020546001600160a01b0316151590565b6000818152600160205260408120546001600160a01b0316806105ca57600080fd5b92915050565b60006001600160a01b0382166105e557600080fd5b506001600160a01b031660009081526003602052604090205490565b6001600160a01b03821633141561061757600080fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805486151560ff19909116811790915581519485529184019290925282820152517f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319181900360600190a15050565b8161069733826106fb565b6106a057600080fd5b6106ab8585856104ae565b6106b7858585856108ca565b6106c057600080fd5b5050505050565b60055481565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b600080610707836105a8565b9050806001600160a01b0316846001600160a01b031614806107425750836001600160a01b0316610737846103c2565b6001600160a01b0316145b80610752575061075281856106cd565b949350505050565b816001600160a01b031661076d826105a8565b6001600160a01b03161461078057600080fd5b6000818152600260205260409020546001600160a01b0316156107ba57600081815260026020526040902080546001600160a01b03191690555b5050565b816001600160a01b03166107d1826105a8565b6001600160a01b0316146107e457600080fd5b6001600160a01b03821660009081526003602052604090205461080e90600163ffffffff6109f316565b6001600160a01b0390921660009081526003602090815260408083209490945591815260019091522080546001600160a01b0319169055565b6000818152600160205260409020546001600160a01b03161561086957600080fd5b600081815260016020818152604080842080546001600160a01b0319166001600160a01b03881690811790915584526003909152909120546108aa91610a08565b6001600160a01b0390921660009081526003602052604090209190915550565b60006108de846001600160a01b0316610a21565b6108ea57506001610752565b60405163785cf2dd60e11b81526001600160a01b0386811660048301908152602483018690526060604484019081528551606485015285516000949389169363f0b9e5ba938b938a938a936084019060208501908083838d5b8381101561095b578181015183820152602001610943565b50505050905090810190601f1680156109885780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1580156109a957600080fd5b505af11580156109bd573d6000803e3d6000fd5b505050506040513d60208110156109d357600080fd5b50516001600160e01b03191663785cf2dd60e11b14915050949350505050565b600082821115610a0257600080fd5b50900390565b600082820183811015610a1a57600080fd5b9392505050565b3b15159056fea265627a7a723058202cd746fd806b5453e2bdc74b43d9c5e7bfd2405fac94a43ac3a07995a59d5c4464736f6c63430005090032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c80634f558e791161008c578063a22cb46511610066578063a22cb46514610279578063b88d4fde146102a7578063e701c4641461036d578063e985e9c514610375576100cf565b80634f558e79146102075780636352211e1461022457806370a0823114610241576100cf565b806301ffc9a7146100d4578063081812fc1461010f578063095ea7b31461014857806319fa8f501461017657806323b872dd1461019b57806342842e0e146101d1575b600080fd5b6100fb600480360360208110156100ea57600080fd5b50356001600160e01b0319166103a3565b604080519115158252519081900360200190f35b61012c6004803603602081101561012557600080fd5b50356103c2565b604080516001600160a01b039092168252519081900360200190f35b6101746004803603604081101561015e57600080fd5b506001600160a01b0381351690602001356103dd565b005b61017e6104a3565b604080516001600160e01b03199092168252519081900360200190f35b610174600480360360608110156101b157600080fd5b506001600160a01b038135811691602081013590911690604001356104ae565b610174600480360360608110156101e757600080fd5b506001600160a01b03813581169160208101359091169060400135610556565b6100fb6004803603602081101561021d57600080fd5b503561058b565b61012c6004803603602081101561023a57600080fd5b50356105a8565b6102676004803603602081101561025757600080fd5b50356001600160a01b03166105d0565b60408051918252519081900360200190f35b6101746004803603604081101561028f57600080fd5b506001600160a01b0381351690602001351515610601565b610174600480360360808110156102bd57600080fd5b6001600160a01b038235811692602081013590911691604082013591908101906080810160608201356401000000008111156102f857600080fd5b82018360208201111561030a57600080fd5b8035906020019184600183028401116401000000008311171561032c57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061068c945050505050565b6102676106c7565b6100fb6004803603604081101561038b57600080fd5b506001600160a01b03813581169160200135166106cd565b6001600160e01b03191660009081526020819052604090205460ff1690565b6000908152600260205260409020546001600160a01b031690565b60006103e8826105a8565b9050806001600160a01b0316836001600160a01b0316141561040957600080fd5b336001600160a01b0382161480610425575061042581336106cd565b61042e57600080fd5b60008281526002602090815260409182902080546001600160a01b038088166001600160a01b03199092168217909255835191851682529181019190915280820184905290517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259181900360600190a1505050565b6301ffc9a760e01b81565b806104b933826106fb565b6104c257600080fd5b6001600160a01b0384166104d557600080fd5b6001600160a01b0383166104e857600080fd5b6104f2848361075a565b6104fc84836107be565b6105068383610847565b604080516001600160a01b0380871682528516602082015280820184905290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a150505050565b8061056133826106fb565b61056a57600080fd5b6105858484846040518060200160405280600081525061068c565b50505050565b6000908152600160205260409020546001600160a01b0316151590565b6000818152600160205260408120546001600160a01b0316806105ca57600080fd5b92915050565b60006001600160a01b0382166105e557600080fd5b506001600160a01b031660009081526003602052604090205490565b6001600160a01b03821633141561061757600080fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805486151560ff19909116811790915581519485529184019290925282820152517f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319181900360600190a15050565b8161069733826106fb565b6106a057600080fd5b6106ab8585856104ae565b6106b7858585856108ca565b6106c057600080fd5b5050505050565b60055481565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b600080610707836105a8565b9050806001600160a01b0316846001600160a01b031614806107425750836001600160a01b0316610737846103c2565b6001600160a01b0316145b80610752575061075281856106cd565b949350505050565b816001600160a01b031661076d826105a8565b6001600160a01b03161461078057600080fd5b6000818152600260205260409020546001600160a01b0316156107ba57600081815260026020526040902080546001600160a01b03191690555b5050565b816001600160a01b03166107d1826105a8565b6001600160a01b0316146107e457600080fd5b6001600160a01b03821660009081526003602052604090205461080e90600163ffffffff6109f316565b6001600160a01b0390921660009081526003602090815260408083209490945591815260019091522080546001600160a01b0319169055565b6000818152600160205260409020546001600160a01b03161561086957600080fd5b600081815260016020818152604080842080546001600160a01b0319166001600160a01b03881690811790915584526003909152909120546108aa91610a08565b6001600160a01b0390921660009081526003602052604090209190915550565b60006108de846001600160a01b0316610a21565b6108ea57506001610752565b60405163785cf2dd60e11b81526001600160a01b0386811660048301908152602483018690526060604484019081528551606485015285516000949389169363f0b9e5ba938b938a938a936084019060208501908083838d5b8381101561095b578181015183820152602001610943565b50505050905090810190601f1680156109885780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1580156109a957600080fd5b505af11580156109bd573d6000803e3d6000fd5b505050506040513d60208110156109d357600080fd5b50516001600160e01b03191663785cf2dd60e11b14915050949350505050565b600082821115610a0257600080fd5b50900390565b600082820183811015610a1a57600080fd5b9392505050565b3b15159056fea265627a7a723058202cd746fd806b5453e2bdc74b43d9c5e7bfd2405fac94a43ac3a07995a59d5c4464736f6c63430005090032", - "sourceMap": "6942:12102:8:-;;;9116:205;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3645:38:8;3664:18;-1:-1:-1;;;;;3645:18:8;:38;:::i;:::-;9226;9245:18;-1:-1:-1;;;;;9226:18:8;:38;:::i;:::-;9271:44;9290:24;-1:-1:-1;;;;;9271:18:8;:44;:::i;:::-;6942:12102;;4000:161;4081:26;;;;;;4073:35;;;;;;4115:33;;:19;:33;;;;;;;;;;:40;;-1:-1:-1;;4115:40:8;4151:4;4115:40;;;4000:161::o;6942:12102::-;;;;;;;", - "deployedSourceMap": "6942:12102:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6942:12102:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3777:148;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3777:148:8;-1:-1:-1;;;;;;3777:148:8;;:::i;:::-;;;;;;;;;;;;;;;;;;11314:113;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11314:113:8;;:::i;:::-;;;;-1:-1:-1;;;;;11314:113:8;;;;;;;;;;;;;;10796:284;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10796:284:8;;;;;;;;:::i;:::-;;3208:54;;;:::i;:::-;;;;-1:-1:-1;;;;;;3208:54:8;;;;;;;;;;;;;;12846:358;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12846:358:8;;;;;;;;;;;;;;;;;:::i;13826:235::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13826:235:8;;;;;;;;;;;;;;;;;:::i;10238:143::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10238:143:8;;:::i;9885:168::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9885:168:8;;:::i;9520:145::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9520:145:8;-1:-1:-1;;;;;9520:145:8;;:::i;:::-;;;;;;;;;;;;;;;;11715:209;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11715:209:8;;;;;;;;;;:::i;14749:321::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;14749:321:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;14749:321:8;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;14749:321:8;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;14749:321:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;14749:321:8;;-1:-1:-1;14749:321:8;;-1:-1:-1;;;;;14749:321:8:i;8542:19::-;;;:::i;12241:177::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12241:177:8;;;;;;;;;;:::i;3777:148::-;-1:-1:-1;;;;;;3886:33:8;3863:4;3886:33;;;;;;;;;;;;;;3777:148::o;11314:113::-;11374:7;11397:24;;;:14;:24;;;;;;-1:-1:-1;;;;;11397:24:8;;11314:113::o;10796:284::-;10858:13;10874:17;10882:8;10874:7;:17::i;:::-;10858:33;;10913:5;-1:-1:-1;;;;;10906:12:8;:3;-1:-1:-1;;;;;10906:12:8;;;10898:21;;;;;;10934:10;-1:-1:-1;;;;;10934:19:8;;;;:58;;;10957:35;10974:5;10981:10;10957:16;:35::i;:::-;10926:67;;;;;;11002:24;;;;:14;:24;;;;;;;;;:30;;-1:-1:-1;;;;;11002:30:8;;;-1:-1:-1;;;;;;11002:30:8;;;;;;;;11044;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10796:284;;;:::o;3208:54::-;-1:-1:-1;;;3208:54:8;:::o;12846:358::-;12963:8;9056:39;9074:10;9086:8;9056:17;:39::i;:::-;9048:48;;;;;;-1:-1:-1;;;;;12991:19:8;;12983:28;;;;;;-1:-1:-1;;;;;13026:17:8;;13018:26;;;;;;13053:30;13067:5;13074:8;13053:13;:30::i;:::-;13090:32;13106:5;13113:8;13090:15;:32::i;:::-;13129:25;13140:3;13145:8;13129:10;:25::i;:::-;13168:30;;;-1:-1:-1;;;;;13168:30:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;12846:358;;;;:::o;13826:235::-;13947:8;9056:39;9074:10;9086:8;9056:17;:39::i;:::-;9048:48;;;;;;14013:42;14030:5;14037:3;14042:8;14013:42;;;;;;;;;;;;:16;:42::i;:::-;13826:235;;;;:::o;10238:143::-;10293:4;10322:20;;;:10;:20;;;;;;-1:-1:-1;;;;;10322:20:8;10356:19;;;10238:143::o;9885:168::-;9941:7;9973:20;;;:10;:20;;;;;;-1:-1:-1;;;;;9973:20:8;10008:19;10000:28;;;;;;10042:5;9885:168;-1:-1:-1;;9885:168:8:o;9520:145::-;9576:7;-1:-1:-1;;;;;9600:20:8;;9592:29;;;;;;-1:-1:-1;;;;;;9635:24:8;;;;;:16;:24;;;;;;;9520:145::o;11715:209::-;-1:-1:-1;;;;;11793:17:8;;11800:10;11793:17;;11785:26;;;;;;11836:10;11818:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;11818:34:8;;;;;;;;;;;;:46;;;;;-1:-1:-1;;11818:46:8;;;;;;;;11876:42;;;;;;;;;;;;;;;;;;;;;;;;;;11715:209;;:::o;14749:321::-;14895:8;9056:39;9074:10;9086:8;9056:17;:39::i;:::-;9048:48;;;;;;14915:34;14928:5;14935:3;14940:8;14915:12;:34::i;:::-;15010:53;15035:5;15042:3;15047:8;15057:5;15010:24;:53::i;:::-;15002:62;;;;;;14749:321;;;;;:::o;8542:19::-;;;;:::o;12241:177::-;-1:-1:-1;;;;;12376:25:8;;;12353:4;12376:25;;;:17;:25;;;;;;;;:36;;;;;;;;;;;;;;;12241:177::o;15426:455::-;15542:4;15558:13;15574:17;15582:8;15574:7;:17::i;:::-;15558:33;;15775:5;-1:-1:-1;;;;;15763:17:8;:8;-1:-1:-1;;;;;15763:17:8;;:61;;;;15816:8;-1:-1:-1;;;;;15791:33:8;:21;15803:8;15791:11;:21::i;:::-;-1:-1:-1;;;;;15791:33:8;;15763:61;:105;;;;15835:33;15852:5;15859:8;15835:16;:33::i;:::-;15747:128;15426:455;-1:-1:-1;;;;15426:455:8:o;16966:219::-;17068:6;-1:-1:-1;;;;;17047:27:8;:17;17055:8;17047:7;:17::i;:::-;-1:-1:-1;;;;;17047:27:8;;17039:36;;;;;;17122:1;17086:24;;;:14;:24;;;;;;-1:-1:-1;;;;;17086:24:8;:38;17082:98;;17170:1;17135:24;;;:14;:24;;;;;:37;;-1:-1:-1;;;;;;17135:37:8;;;17082:98;16966:219;;:::o;17949:218::-;18052:5;-1:-1:-1;;;;;18031:26:8;:17;18039:8;18031:7;:17::i;:::-;-1:-1:-1;;;;;18031:26:8;;18023:35;;;;;;-1:-1:-1;;;;;18091:23:8;;;;;;:16;:23;;;;;;:30;;18119:1;18091:30;:27;:30;:::i;:::-;-1:-1:-1;;;;;18065:23:8;;;;;;;:16;:23;;;;;;;;:56;;;;18128:20;;;:10;:20;;;;:33;;-1:-1:-1;;;;;;18128:33:8;;;17949:218::o;17455:208::-;17562:1;17530:20;;;:10;:20;;;;;;-1:-1:-1;;;;;17530:20:8;:34;17522:43;;;;;;17572:20;;;;:10;:20;;;;;;;;:26;;-1:-1:-1;;;;;;17572:26:8;-1:-1:-1;;;;;17572:26:8;;;;;;;;17629:21;;:16;:21;;;;;;;:28;;:25;:28::i;:::-;-1:-1:-1;;;;;17605:21:8;;;;;;;:16;:21;;;;;:52;;;;-1:-1:-1;17455:208:8:o;18684:357::-;18837:4;18858:16;:3;-1:-1:-1;;;;;18858:14:8;;:16::i;:::-;18853:51;;-1:-1:-1;18892:4:8;18885:11;;18853:51;18926:68;;-1:-1:-1;;;18926:68:8;;-1:-1:-1;;;;;18926:68:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18910:13;;18926:36;;;;;;18971:5;;18978:8;;18988:5;;18926:68;;;;;;;;;;18910:13;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;18926:68:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18926:68:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18926:68:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18926:68:8;-1:-1:-1;;;;;;19009:25:8;-1:-1:-1;;;19009:25:8;;-1:-1:-1;;18684:357:8;;;;;;:::o;431:150:22:-;489:7;522:1;517;:6;;509:15;;;;;;-1:-1:-1;547:5:22;;;431:150::o;589:::-;647:7;679:5;;;703:6;;;;695:15;;;;;;730:1;589:150;-1:-1:-1;;;589:150:22:o;1949:587:8:-;2490:17;2522:8;;;1949:587::o", - "source": "pragma solidity >=0.5.0 < 0.6.0;\r\nimport '../../dao/oz/SafeMath.sol';\r\n\r\n/**\r\n * @title SafeMath\r\n * @dev Math operations with safety checks that throw on error\r\n */\r\n//library SafeMath {\r\n//\r\n// /**\r\n// * @dev Multiplies two numbers, throws on overflow.\r\n// */\r\n// function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// // Gas optimization: this is cheaper than asserting 'a' not being zero, but the\r\n// // benefit is lost if 'b' is also tested.\r\n// // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\r\n// if (a == 0) {\r\n// return 0;\r\n// }\r\n//\r\n// c = a * b;\r\n// assert(c / a == b);\r\n// return c;\r\n// }\r\n//\r\n// /**\r\n// * @dev Integer division of two numbers, truncating the quotient.\r\n// */\r\n// function div(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// // assert(b > 0); // Solidity automatically throws when dividing by 0\r\n// // uint256 c = a / b;\r\n// // assert(a == b * c + a % b); // There is no case in which this doesn't hold\r\n// return a / b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).\r\n// */\r\n// function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// assert(b <= a);\r\n// return a - b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Adds two numbers, throws on overflow.\r\n// */\r\n// function add(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// c = a + b;\r\n// assert(c >= a);\r\n// return c;\r\n// }\r\n//}\r\n\r\n/**\r\n * Utility library of inline functions on addresses\r\n */\r\nlibrary AddressUtils {\r\n\r\n /**\r\n * Returns whether the target address is a contract\r\n * @dev This function will return false if invoked during the constructor of a contract,\r\n * as the code is not actually created until after the constructor finishes.\r\n * @param addr address to check\r\n * @return whether the target address is a contract\r\n */\r\n function isContract(address addr) internal view returns (bool) {\r\n uint256 size;\r\n // XXX Currently there is no better way to check if there is a contract in an address\r\n // than to check the size of the code at that address.\r\n // See https://ethereum.stackexchange.com/a/14016/36603\r\n // for more details about how this works.\r\n // TODO Check this again before the Serenity release, because all addresses will be\r\n // contracts then.\r\n // solium-disable-next-line security/no-inline-assembly\r\n assembly { size := extcodesize(addr) }\r\n return size > 0;\r\n }\r\n\r\n}\r\n\r\n/**\r\n * @title ERC165\r\n * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r\n */\r\ninterface ERC165 {\r\n\r\n /**\r\n * @notice Query if a contract implements an interface\r\n * @param _interfaceId The interface identifier, as specified in ERC-165\r\n * @dev Interface identification is specified in ERC-165. This function\r\n * uses less than 30,000 gas.\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool);\r\n}\r\n\r\n\r\n/**\r\n * @title SupportsInterfaceWithLookup\r\n * @author Matt Condon (@shrugs)\r\n * @dev Implements ERC165 using a lookup table.\r\n */\r\ncontract SupportsInterfaceWithLookup is ERC165 {\r\n bytes4 public constant InterfaceId_ERC165 = 0x01ffc9a7;\r\n /**\r\n * 0x01ffc9a7 ===\r\n * bytes4(keccak256('supportsInterface(bytes4)'))\r\n */\r\n\r\n /**\r\n * @dev a mapping of interface id to whether or not it's supported\r\n */\r\n mapping(bytes4 => bool) internal supportedInterfaces;\r\n\r\n /**\r\n * @dev A contract implementing SupportsInterfaceWithLookup\r\n * implement ERC165 itself\r\n */\r\n constructor()\r\n public\r\n {\r\n _registerInterface(InterfaceId_ERC165);\r\n }\r\n\r\n /**\r\n * @dev implement supportsInterface(bytes4) using a lookup table\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool)\r\n {\r\n return supportedInterfaces[_interfaceId];\r\n }\r\n\r\n /**\r\n * @dev private method for registering an interface\r\n */\r\n function _registerInterface(bytes4 _interfaceId)\r\n internal\r\n {\r\n require(_interfaceId != 0xffffffff);\r\n supportedInterfaces[_interfaceId] = true;\r\n }\r\n}\r\n\r\n/**\r\n * @title ERC721 token receiver interface\r\n * @dev Interface for any contract that wants to support safeTransfers\r\n * from ERC721 asset contracts.\r\n */\r\ncontract ERC721Receiver {\r\n /**\r\n * @dev Magic value to be returned upon successful reception of an NFT\r\n * Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`,\r\n * which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n */\r\n bytes4 internal constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n /**\r\n * @notice Handle the receipt of an NFT\r\n * @dev The ERC721 smart contract calls this function on the recipient\r\n * after a `safetransfer`. This function MAY throw to revert and reject the\r\n * transfer. This function MUST use 50,000 gas or less. Return of other\r\n * than the magic value MUST result in the transaction being reverted.\r\n * Note: the contract address is always the message sender.\r\n * @param _from The sending address\r\n * @param _tokenId The NFT identifier which is being transfered\r\n * @param _data Additional data with no specified format\r\n * @return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n */\r\n function onERC721Received(\r\n address _from,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n returns(bytes4);\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic interface\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721Basic is ERC165 {\r\n event Transfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n );\r\n event Approval(\r\n address _owner,\r\n address _approved,\r\n uint256 _tokenId\r\n );\r\n event ApprovalForAll(\r\n address _owner,\r\n address _operator,\r\n bool _approved\r\n );\r\n\r\n function balanceOf(address _owner) public view returns (uint256 _balance);\r\n function ownerOf(uint256 _tokenId) public view returns (address _owner);\r\n function exists(uint256 _tokenId) public view returns (bool _exists);\r\n\r\n function approve(address _to, uint256 _tokenId) public;\r\n function getApproved(uint256 _tokenId)\r\n public view returns (address _operator);\r\n\r\n function setApprovalForAll(address _operator, bool _approved) public;\r\n function isApprovedForAll(address _owner, address _operator)\r\n public view returns (bool);\r\n\r\n function transferFrom(address _from, address _to, uint256 _tokenId) public;\r\n function safeTransferFrom(address _from, address _to, uint256 _tokenId)\r\n public;\r\n\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public;\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic implementation\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721BasicToken is SupportsInterfaceWithLookup, ERC721Basic {\r\n\r\n bytes4 private constant InterfaceId_ERC721 = 0x80ac58cd;\r\n /*\r\n * 0x80ac58cd ===\r\n * bytes4(keccak256('balanceOf(address)')) ^\r\n * bytes4(keccak256('ownerOf(uint256)')) ^\r\n * bytes4(keccak256('approve(address,uint256)')) ^\r\n * bytes4(keccak256('getApproved(uint256)')) ^\r\n * bytes4(keccak256('setApprovalForAll(address,bool)')) ^\r\n * bytes4(keccak256('isApprovedForAll(address,address)')) ^\r\n * bytes4(keccak256('transferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)'))\r\n */\r\n\r\n bytes4 private constant InterfaceId_ERC721Exists = 0x4f558e79;\r\n /*\r\n * 0x4f558e79 ===\r\n * bytes4(keccak256('exists(uint256)'))\r\n */\r\n\r\n using SafeMath for uint256;\r\n using AddressUtils for address;\r\n\r\n // Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n // which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n bytes4 private constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n // Mapping from token ID to owner\r\n mapping (uint256 => address) internal tokenOwner;\r\n\r\n // Mapping from token ID to approved address\r\n mapping (uint256 => address) internal tokenApprovals;\r\n\r\n // Mapping from owner to number of owned token\r\n mapping (address => uint256) internal ownedTokensCount;\r\n\r\n // Mapping from owner to operator approvals\r\n mapping (address => mapping (address => bool)) internal operatorApprovals;\r\n\r\n\r\n uint public testint;\r\n /**\r\n * @dev Guarantees msg.sender is owner of the given token\r\n * @param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r\n */\r\n modifier onlyOwnerOf(uint256 _tokenId) {\r\n require(ownerOf(_tokenId) == msg.sender);\r\n _;\r\n }\r\n\r\n /**\r\n * @dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n * @param _tokenId uint256 ID of the token to validate\r\n */\r\n modifier canTransfer(uint256 _tokenId) {\r\n require(isApprovedOrOwner(msg.sender, _tokenId));\r\n _;\r\n }\r\n\r\n constructor()\r\n public\r\n {\r\n // register the supported interfaces to conform to ERC721 via ERC165\r\n _registerInterface(InterfaceId_ERC721);\r\n _registerInterface(InterfaceId_ERC721Exists);\r\n }\r\n\r\n /**\r\n * @dev Gets the balance of the specified address\r\n * @param _owner address to query the balance of\r\n * @return uint256 representing the amount owned by the passed address\r\n */\r\n function balanceOf(address _owner) public view returns (uint256) {\r\n require(_owner != address(0));\r\n return ownedTokensCount[_owner];\r\n }\r\n\r\n /**\r\n * @dev Gets the owner of the specified token ID\r\n * @param _tokenId uint256 ID of the token to query the owner of\r\n * @return owner address currently marked as the owner of the given token ID\r\n */\r\n function ownerOf(uint256 _tokenId) public view returns (address) {\r\n address owner = tokenOwner[_tokenId];\r\n require(owner != address(0));\r\n return owner;\r\n }\r\n\r\n /**\r\n * @dev Returns whether the specified token exists\r\n * @param _tokenId uint256 ID of the token to query the existence of\r\n * @return whether the token exists\r\n */\r\n function exists(uint256 _tokenId) public view returns (bool) {\r\n address owner = tokenOwner[_tokenId];\r\n return owner != address(0);\r\n }\r\n\r\n /**\r\n * @dev Approves another address to transfer the given token ID\r\n * The zero address indicates there is no approved address.\r\n * There can only be one approved address per token at a given time.\r\n * Can only be called by the token owner or an approved operator.\r\n * @param _to address to be approved for the given token ID\r\n * @param _tokenId uint256 ID of the token to be approved\r\n */\r\n function approve(address _to, uint256 _tokenId) public {\r\n address owner = ownerOf(_tokenId);\r\n require(_to != owner);\r\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender));\r\n\r\n tokenApprovals[_tokenId] = _to;\r\n emit Approval(owner, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Gets the approved address for a token ID, or zero if no address set\r\n * @param _tokenId uint256 ID of the token to query the approval of\r\n * @return address currently approved for the given token ID\r\n */\r\n function getApproved(uint256 _tokenId) public view returns (address) {\r\n return tokenApprovals[_tokenId];\r\n }\r\n\r\n /**\r\n * @dev Sets or unsets the approval of a given operator\r\n * An operator is allowed to transfer all tokens of the sender on their behalf\r\n * @param _to operator address to set the approval\r\n * @param _approved representing the status of the approval to be set\r\n */\r\n function setApprovalForAll(address _to, bool _approved) public {\r\n require(_to != msg.sender);\r\n operatorApprovals[msg.sender][_to] = _approved;\r\n emit ApprovalForAll(msg.sender, _to, _approved);\r\n }\r\n\r\n /**\r\n * @dev Tells whether an operator is approved by a given owner\r\n * @param _owner owner address which you want to query the approval of\r\n * @param _operator operator address which you want to query the approval of\r\n * @return bool whether the given operator is approved by the given owner\r\n */\r\n function isApprovedForAll(\r\n address _owner,\r\n address _operator\r\n )\r\n public\r\n view\r\n returns (bool)\r\n {\r\n return operatorApprovals[_owner][_operator];\r\n }\r\n\r\n /**\r\n * @dev Transfers the ownership of a given token ID to another address\r\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function transferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n require(_from != address(0));\r\n require(_to != address(0));\r\n\r\n clearApproval(_from, _tokenId);\r\n removeTokenFrom(_from, _tokenId);\r\n addTokenTo(_to, _tokenId);\r\n\r\n emit Transfer(_from, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n *\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n // solium-disable-next-line arg-overflow\r\n safeTransferFrom(_from, _to, _tokenId, \"\");\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes data to send along with a safe transfer check\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n transferFrom(_from, _to, _tokenId);\r\n // solium-disable-next-line arg-overflow\r\n require(checkAndCallSafeTransfer(_from, _to, _tokenId, _data));\r\n }\r\n\r\n /**\r\n * @dev Returns whether the given spender can transfer a given token ID\r\n * @param _spender address of the spender to query\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @return bool whether the msg.sender is approved for the given token ID,\r\n * is an operator of the owner, or is the owner of the token\r\n */\r\n function isApprovedOrOwner(\r\n address _spender,\r\n uint256 _tokenId\r\n )\r\n internal\r\n view\r\n returns (bool)\r\n {\r\n address owner = ownerOf(_tokenId);\r\n // Disable solium check because of\r\n // https://github.com/duaraghav8/Solium/issues/175\r\n // solium-disable-next-line operator-whitespace\r\n return (\r\n _spender == owner ||\r\n getApproved(_tokenId) == _spender ||\r\n isApprovedForAll(owner, _spender)\r\n );\r\n }\r\n\r\n /**\r\n * @dev Internal function to mint a new token\r\n * Reverts if the given token ID already exists\r\n * @param _to The address that will own the minted token\r\n * @param _tokenId uint256 ID of the token to be minted by the msg.sender\r\n */\r\n function _mint(address _to, uint256 _tokenId) internal {\r\n require(_to != address(0));\r\n addTokenTo(_to, _tokenId);\r\n emit Transfer(address(0), _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to burn a specific token\r\n * Reverts if the token does not exist\r\n * @param _tokenId uint256 ID of the token being burned by the msg.sender\r\n */\r\n function _burn(address _owner, uint256 _tokenId) internal {\r\n clearApproval(_owner, _tokenId);\r\n removeTokenFrom(_owner, _tokenId);\r\n emit Transfer(_owner, address(0), _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to clear current approval of a given token ID\r\n * Reverts if the given address is not indeed the owner of the token\r\n * @param _owner owner of the token\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function clearApproval(address _owner, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _owner);\r\n if (tokenApprovals[_tokenId] != address(0)) {\r\n tokenApprovals[_tokenId] = address(0);\r\n }\r\n }\r\n\r\n /**\r\n * @dev Internal function to add a token ID to the list of a given address\r\n * @param _to address representing the new owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r\n */\r\n function addTokenTo(address _to, uint256 _tokenId) internal {\r\n require(tokenOwner[_tokenId] == address(0));\r\n tokenOwner[_tokenId] = _to;\r\n ownedTokensCount[_to] = ownedTokensCount[_to].add(1);\r\n }\r\n\r\n /**\r\n * @dev Internal function to remove a token ID from the list of a given address\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r\n */\r\n function removeTokenFrom(address _from, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _from);\r\n ownedTokensCount[_from] = ownedTokensCount[_from].sub(1);\r\n tokenOwner[_tokenId] = address(0);\r\n }\r\n\r\n /**\r\n * @dev Internal function to invoke `onERC721Received` on a target address\r\n * The call is not executed if the target address is not a contract\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _to target address that will receive the tokens\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes optional data to send along with the call\r\n * @return whether the call correctly returned the expected magic value\r\n */\r\n function checkAndCallSafeTransfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n internal\r\n returns (bool)\r\n {\r\n if (!_to.isContract()) {\r\n return true;\r\n }\r\n bytes4 retval = ERC721Receiver(_to).onERC721Received(\r\n _from, _tokenId, _data);\r\n return (retval == ERC721_RECEIVED);\r\n }\r\n}\r\n\r\ncontract ERC721BasicTokenMock is ERC721BasicToken {\r\n function mint(address _to, uint256 _tokenId) public {\r\n super._mint(_to, _tokenId);\r\n }\r\n\r\n function burn(uint256 _tokenId) public {\r\n super._burn(ownerOf(_tokenId), _tokenId);\r\n }\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\inherited\\ERC721Basic.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", - "exportedSymbols": { - "AddressUtils": [ - 5009 - ], - "ERC165": [ - 5017 - ], - "ERC721Basic": [ - 5187 - ], - "ERC721BasicToken": [ - 5764 - ], - "ERC721BasicTokenMock": [ - 5797 - ], - "ERC721Receiver": [ - 5080 - ], - "SupportsInterfaceWithLookup": [ - 5065 - ] - }, - "id": 5798, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4991, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:8" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "../../dao/oz/SafeMath.sol", - "id": 4992, - "nodeType": "ImportDirective", - "scope": 5798, - "sourceUnit": 9858, - "src": "34:35:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "Utility library of inline functions on addresses\r", - "fullyImplemented": true, - "id": 5009, - "linearizedBaseContracts": [ - 5009 - ], - "name": "AddressUtils", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5007, - "nodeType": "Block", - "src": "2012:524:8", - "statements": [ - { - "assignments": [ - 5000 - ], - "declarations": [ - { - "constant": false, - "id": 5000, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 5007, - "src": "2019:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4999, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2019:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5001, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2019:12:8" - }, - { - "externalReferences": [ - { - "size": { - "declaration": 5000, - "isOffset": false, - "isSlot": false, - "src": "2482:4:8", - "valueSize": 1 - } - }, - { - "addr": { - "declaration": 4994, - "isOffset": false, - "isSlot": false, - "src": "2502:4:8", - "valueSize": 1 - } - } - ], - "id": 5002, - "nodeType": "InlineAssembly", - "operations": "{ size := extcodesize(addr) }", - "src": "2471:38:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5003, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5000, - "src": "2522:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5004, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2529:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2522:8:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4998, - "id": 5006, - "nodeType": "Return", - "src": "2515:15:8" - } - ] - }, - "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", - "id": 5008, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4994, - "name": "addr", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "1969:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1969:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1968:14:8" - }, - "returnParameters": { - "id": 4998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4997, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "2006:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4996, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2006:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2005:6:8" - }, - "scope": 5009, - "src": "1949:587:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "1590:951:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", - "fullyImplemented": false, - "id": 5017, - "linearizedBaseContracts": [ - 5017 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", - "id": 5016, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5012, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5011, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "2950:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5010, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "2950:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2949:21:8" - }, - "returnParameters": { - "id": 5015, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5014, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "3009:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5013, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3009:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3008:6:8" - }, - "scope": 5017, - "src": "2923:92:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 5798, - "src": "2643:375:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5018, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "3196:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5019, - "nodeType": "InheritanceSpecifier", - "src": "3196:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", - "fullyImplemented": true, - "id": 5065, - "linearizedBaseContracts": [ - 5065, - 5017 - ], - "name": "SupportsInterfaceWithLookup", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5022, - "name": "InterfaceId_ERC165", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3208:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5020, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3208:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 5021, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3252:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 5026, - "name": "supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3443:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 5025, - "keyType": { - "id": 5023, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3451:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "3443:23:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 5024, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3461:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 5033, - "nodeType": "Block", - "src": "3638:51:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5030, - "name": "InterfaceId_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5022, - "src": "3664:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5029, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "3645:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3645:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5032, - "nodeType": "ExpressionStatement", - "src": "3645:38:8" - } - ] - }, - "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", - "id": 5034, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5027, - "nodeType": "ParameterList", - "parameters": [], - "src": "3620:2:8" - }, - "returnParameters": { - "id": 5028, - "nodeType": "ParameterList", - "parameters": [], - "src": "3638:0:8" - }, - "scope": 5065, - "src": "3609:80:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5045, - "nodeType": "Block", - "src": "3872:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5041, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "3886:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5043, - "indexExpression": { - "argumentTypes": null, - "id": 5042, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5036, - "src": "3906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3886:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5040, - "id": 5044, - "nodeType": "Return", - "src": "3879:40:8" - } - ] - }, - "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", - "id": 5046, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5037, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5036, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3804:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5035, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3804:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3803:21:8" - }, - "returnParameters": { - "id": 5040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5039, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3863:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5038, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3863:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3862:6:8" - }, - "scope": 5065, - "src": "3777:148:8", - "stateMutability": "view", - "superFunction": 5016, - "visibility": "external" - }, - { - "body": { - "id": 5063, - "nodeType": "Block", - "src": "4066:95:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5052, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4081:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 5053, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4097:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "4081:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5051, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4073:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4073:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5056, - "nodeType": "ExpressionStatement", - "src": "4073:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5057, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "4115:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5059, - "indexExpression": { - "argumentTypes": null, - "id": 5058, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4135:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4115:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4151:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4115:40:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5062, - "nodeType": "ExpressionStatement", - "src": "4115:40:8" - } - ] - }, - "documentation": "@dev private method for registering an interface\r", - "id": 5064, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5049, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5048, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5064, - "src": "4028:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5047, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4028:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4027:21:8" - }, - "returnParameters": { - "id": 5050, - "nodeType": "ParameterList", - "parameters": [], - "src": "4066:0:8" - }, - "scope": 5065, - "src": "4000:161:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "3156:1008:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", - "fullyImplemented": false, - "id": 5080, - "linearizedBaseContracts": [ - 5080 - ], - "name": "ERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5068, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5080, - "src": "4607:53:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5066, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4607:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4650:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "internal" - }, - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", - "id": 5079, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5070, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5364:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5069, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5364:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5072, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5384:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5071, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5384:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5074, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5407:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5073, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5407:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5357:73:8" - }, - "returnParameters": { - "id": 5078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5077, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5456:6:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5076, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "5456:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5455:8:8" - }, - "scope": 5080, - "src": "5332:132:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "4326:1141:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5081, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "5641:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5082, - "nodeType": "InheritanceSpecifier", - "src": "5641:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": false, - "id": 5187, - "linearizedBaseContracts": [ - 5187, - 5017 - ], - "name": "ERC721Basic", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 5090, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 5089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5084, - "indexed": false, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5674:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5083, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5674:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5086, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5695:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5085, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5695:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5088, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5714:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5087, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5714:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5667:69:8" - }, - "src": "5653:84:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5098, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 5097, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5092, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5762:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5091, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5762:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5094, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5784:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5784:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5096, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5809:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5095, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5809:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5755:76:8" - }, - "src": "5741:91:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5106, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 5105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5100, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5863:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5099, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5863:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5102, - "indexed": false, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5885:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5101, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5885:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5104, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5910:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5103, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5910:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5856:73:8" - }, - "src": "5836:94:8" - }, - { - "body": null, - "documentation": null, - "id": 5113, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5109, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5108, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5955:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5107, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5955:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5954:16:8" - }, - "returnParameters": { - "id": 5112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5111, - "name": "_balance", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5992:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5110, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5992:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5991:18:8" - }, - "scope": 5187, - "src": "5936:74:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5120, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5116, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5115, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6031:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5114, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6030:18:8" - }, - "returnParameters": { - "id": 5119, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5118, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6070:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5117, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6070:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6069:16:8" - }, - "scope": 5187, - "src": "6014:72:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5127, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5123, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5122, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6106:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5121, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6106:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6105:18:8" - }, - "returnParameters": { - "id": 5126, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5125, - "name": "_exists", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6145:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5124, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6145:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6144:14:8" - }, - "scope": 5187, - "src": "6090:69:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5134, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5132, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5129, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6182:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6182:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5131, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6195:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6195:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6181:31:8" - }, - "returnParameters": { - "id": 5133, - "nodeType": "ParameterList", - "parameters": [], - "src": "6219:0:8" - }, - "scope": 5187, - "src": "6165:55:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5141, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5136, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6245:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5135, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6245:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6244:18:8" - }, - "returnParameters": { - "id": 5140, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5139, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6289:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5138, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6289:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6288:19:8" - }, - "scope": 5187, - "src": "6224:84:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5148, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5143, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6341:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6341:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5145, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6360:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5144, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6360:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6340:35:8" - }, - "returnParameters": { - "id": 5147, - "nodeType": "ParameterList", - "parameters": [], - "src": "6382:0:8" - }, - "scope": 5187, - "src": "6314:69:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5157, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5150, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6413:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5149, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6413:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5152, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6429:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5151, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6429:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6412:35:8" - }, - "returnParameters": { - "id": 5156, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5155, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6474:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5154, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6474:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6473:6:8" - }, - "scope": 5187, - "src": "6387:93:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5166, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5159, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6508:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5158, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6508:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5161, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6523:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5160, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6523:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5163, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6536:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5162, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6536:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6507:46:8" - }, - "returnParameters": { - "id": 5165, - "nodeType": "ParameterList", - "parameters": [], - "src": "6560:0:8" - }, - "scope": 5187, - "src": "6486:75:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5175, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5168, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6591:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5167, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6591:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5170, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6606:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5169, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6606:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5172, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6619:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6619:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6590:46:8" - }, - "returnParameters": { - "id": 5174, - "nodeType": "ParameterList", - "parameters": [], - "src": "6648:0:8" - }, - "scope": 5187, - "src": "6565:84:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5186, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5177, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6687:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5176, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6687:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5179, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6707:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5178, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6707:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5181, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6725:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5180, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6725:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5183, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6748:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5182, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6748:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6680:91:8" - }, - "returnParameters": { - "id": 5185, - "nodeType": "ParameterList", - "parameters": [], - "src": "6783:0:8" - }, - "scope": 5187, - "src": "6655:129:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "5617:1170:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5188, - "name": "SupportsInterfaceWithLookup", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5065, - "src": "6971:27:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", - "typeString": "contract SupportsInterfaceWithLookup" - } - }, - "id": 5189, - "nodeType": "InheritanceSpecifier", - "src": "6971:27:8" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5190, - "name": "ERC721Basic", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5187, - "src": "7000:11:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Basic_$5187", - "typeString": "contract ERC721Basic" - } - }, - "id": 5191, - "nodeType": "InheritanceSpecifier", - "src": "7000:11:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": true, - "id": 5764, - "linearizedBaseContracts": [ - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5194, - "name": "InterfaceId_ERC721", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7019:55:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5192, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7019:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 5193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7064:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 5197, - "name": "InterfaceId_ERC721Exists", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7668:61:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5195, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7668:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783466353538653739", - "id": 5196, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7719:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1331007097_by_1", - "typeString": "int_const 1331007097" - }, - "value": "0x4f558e79" - }, - "visibility": "private" - }, - { - "id": 5200, - "libraryName": { - "contractScope": null, - "id": 5198, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "7821:8:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "7815:27:8", - "typeName": { - "id": 5199, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7834:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 5203, - "libraryName": { - "contractScope": null, - "id": 5201, - "name": "AddressUtils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5009, - "src": "7852:12:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUtils_$5009", - "typeString": "library AddressUtils" - } - }, - "nodeType": "UsingForDirective", - "src": "7846:31:8", - "typeName": { - "id": 5202, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7869:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "constant": true, - "id": 5206, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8044:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5204, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8044:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5205, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8086:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 5210, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8140:48:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5209, - "keyType": { - "id": 5207, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8149:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8140:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5208, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8160:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5214, - "name": "tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8243:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5213, - "keyType": { - "id": 5211, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8252:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8243:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5212, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8263:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5218, - "name": "ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8352:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 5217, - "keyType": { - "id": 5215, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8361:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8352:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 5216, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8372:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5224, - "name": "operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8460:73:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "typeName": { - "id": 5223, - "keyType": { - "id": 5219, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8469:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8460:46:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 5222, - "keyType": { - "id": 5220, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8489:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8480:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 5221, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8500:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5226, - "name": "testint", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8542:19:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5225, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 5240, - "nodeType": "Block", - "src": "8774:61:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5232, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5228, - "src": "8797:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5231, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "8789:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8789:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5234, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "8810:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8810:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "8789:31:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5230, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "8781:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8781:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5238, - "nodeType": "ExpressionStatement", - "src": "8781:40:8" - }, - { - "id": 5239, - "nodeType": "PlaceholderStatement", - "src": "8828:1:8" - } - ] - }, - "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", - "id": 5241, - "name": "onlyOwnerOf", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5228, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5241, - "src": "8756:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8756:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8755:18:8" - }, - "src": "8735:100:8", - "visibility": "internal" - }, - { - "body": { - "id": 5254, - "nodeType": "Block", - "src": "9041:69:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5247, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "9074:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9074:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5249, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5243, - "src": "9086:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5246, - "name": "isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5567, - "src": "9056:17:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 5250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9056:39:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5245, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9048:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9048:48:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5252, - "nodeType": "ExpressionStatement", - "src": "9048:48:8" - }, - { - "id": 5253, - "nodeType": "PlaceholderStatement", - "src": "9103:1:8" - } - ] - }, - "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", - "id": 5255, - "name": "canTransfer", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5244, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5243, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5255, - "src": "9023:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5242, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9022:18:8" - }, - "src": "9002:108:8", - "visibility": "internal" - }, - { - "body": { - "id": 5266, - "nodeType": "Block", - "src": "9145:176:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5259, - "name": "InterfaceId_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5194, - "src": "9245:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5258, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9226:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9226:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5261, - "nodeType": "ExpressionStatement", - "src": "9226:38:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5263, - "name": "InterfaceId_ERC721Exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5197, - "src": "9290:24:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5262, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9271:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9271:44:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5265, - "nodeType": "ExpressionStatement", - "src": "9271:44:8" - } - ] - }, - "documentation": null, - "id": 5267, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5256, - "nodeType": "ParameterList", - "parameters": [], - "src": "9127:2:8" - }, - "returnParameters": { - "id": 5257, - "nodeType": "ParameterList", - "parameters": [], - "src": "9145:0:8" - }, - "scope": 5764, - "src": "9116:205:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5286, - "nodeType": "Block", - "src": "9585:80:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5275, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9600:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5277, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9618:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5276, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9610:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9610:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "9600:20:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5274, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9592:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9592:29:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5281, - "nodeType": "ExpressionStatement", - "src": "9592:29:8" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5282, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "9635:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5284, - "indexExpression": { - "argumentTypes": null, - "id": 5283, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9652:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9635:24:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5273, - "id": 5285, - "nodeType": "Return", - "src": "9628:31:8" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", - "id": 5287, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5270, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5269, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9539:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5268, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9539:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9538:16:8" - }, - "returnParameters": { - "id": 5273, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5272, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9576:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9576:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9575:9:8" - }, - "scope": 5764, - "src": "9520:145:8", - "stateMutability": "view", - "superFunction": 5113, - "visibility": "public" - }, - { - "body": { - "id": 5310, - "nodeType": "Block", - "src": "9950:103:8", - "statements": [ - { - "assignments": [ - 5295 - ], - "declarations": [ - { - "constant": false, - "id": 5295, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5310, - "src": "9957:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5294, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9957:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5299, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5296, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "9973:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5298, - "indexExpression": { - "argumentTypes": null, - "id": 5297, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5289, - "src": "9984:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9973:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9957:36:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5301, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10008:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10025:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10017:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5304, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10017:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10008:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5300, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10000:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5307, - "nodeType": "ExpressionStatement", - "src": "10000:28:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5308, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10042:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5293, - "id": 5309, - "nodeType": "Return", - "src": "10035:12:8" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", - "id": 5311, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5289, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9902:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5288, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9902:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9901:18:8" - }, - "returnParameters": { - "id": 5293, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5292, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9941:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5291, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9941:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9940:9:8" - }, - "scope": 5764, - "src": "9885:168:8", - "stateMutability": "view", - "superFunction": 5120, - "visibility": "public" - }, - { - "body": { - "id": 5330, - "nodeType": "Block", - "src": "10299:82:8", - "statements": [ - { - "assignments": [ - 5319 - ], - "declarations": [ - { - "constant": false, - "id": 5319, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5330, - "src": "10306:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5318, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10306:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5323, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5320, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "10322:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5322, - "indexExpression": { - "argumentTypes": null, - "id": 5321, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5313, - "src": "10333:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10322:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10306:36:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5324, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5319, - "src": "10356:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5326, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10373:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5325, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10365:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10365:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10356:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5317, - "id": 5329, - "nodeType": "Return", - "src": "10349:26:8" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", - "id": 5331, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5313, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10254:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5312, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10254:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10253:18:8" - }, - "returnParameters": { - "id": 5317, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5316, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10293:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5315, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10293:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10292:6:8" - }, - "scope": 5764, - "src": "10238:143:8", - "stateMutability": "view", - "superFunction": 5127, - "visibility": "public" - }, - { - "body": { - "id": 5375, - "nodeType": "Block", - "src": "10851:229:8", - "statements": [ - { - "assignments": [ - 5339 - ], - "declarations": [ - { - "constant": false, - "id": 5339, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5375, - "src": "10858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5338, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5343, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5341, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "10882:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5340, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "10874:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10874:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10858:33:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5345, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "10906:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 5346, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10913:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5344, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10898:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10898:21:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5349, - "nodeType": "ExpressionStatement", - "src": "10898:21:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5351, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10934:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10934:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5353, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10948:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10934:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5356, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10974:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5357, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10981:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10981:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 5355, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "10957:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10957:35:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "10934:58:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5350, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10926:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10926:67:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5362, - "nodeType": "ExpressionStatement", - "src": "10926:67:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5363, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11002:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5365, - "indexExpression": { - "argumentTypes": null, - "id": 5364, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11017:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11002:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5366, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11029:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "11002:30:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5368, - "nodeType": "ExpressionStatement", - "src": "11002:30:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5370, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "11053:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5371, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11060:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5372, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11065:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5369, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5098, - "src": "11044:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11044:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5374, - "nodeType": "EmitStatement", - "src": "11039:35:8" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", - "id": 5376, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5336, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5333, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10813:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10813:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5335, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10826:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5334, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10826:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10812:31:8" - }, - "returnParameters": { - "id": 5337, - "nodeType": "ParameterList", - "parameters": [], - "src": "10851:0:8" - }, - "scope": 5764, - "src": "10796:284:8", - "stateMutability": "nonpayable", - "superFunction": 5134, - "visibility": "public" - }, - { - "body": { - "id": 5387, - "nodeType": "Block", - "src": "11383:44:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5383, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11397:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5385, - "indexExpression": { - "argumentTypes": null, - "id": 5384, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5378, - "src": "11412:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11397:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5382, - "id": 5386, - "nodeType": "Return", - "src": "11390:31:8" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", - "id": 5388, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5378, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11335:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5377, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11335:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11334:18:8" - }, - "returnParameters": { - "id": 5382, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5381, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11374:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5380, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11374:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11373:9:8" - }, - "scope": 5764, - "src": "11314:113:8", - "stateMutability": "view", - "superFunction": 5141, - "visibility": "public" - }, - { - "body": { - "id": 5418, - "nodeType": "Block", - "src": "11778:146:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5396, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11793:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5397, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11800:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11800:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "11793:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5395, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "11785:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11785:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5401, - "nodeType": "ExpressionStatement", - "src": "11785:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5402, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "11818:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5406, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5403, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11836:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11836:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11818:29:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5407, - "indexExpression": { - "argumentTypes": null, - "id": 5405, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11848:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11818:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5408, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11855:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11818:46:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5410, - "nodeType": "ExpressionStatement", - "src": "11818:46:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5412, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11891:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11891:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5414, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11903:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5415, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11908:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5411, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5106, - "src": "11876:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 5416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11876:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5417, - "nodeType": "EmitStatement", - "src": "11871:47:8" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", - "id": 5419, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5390, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11742:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5389, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11742:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5392, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11755:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5391, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11755:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11741:29:8" - }, - "returnParameters": { - "id": 5394, - "nodeType": "ParameterList", - "parameters": [], - "src": "11778:0:8" - }, - "scope": 5764, - "src": "11715:209:8", - "stateMutability": "nonpayable", - "superFunction": 5148, - "visibility": "public" - }, - { - "body": { - "id": 5434, - "nodeType": "Block", - "src": "12362:56:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5428, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "12376:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5430, - "indexExpression": { - "argumentTypes": null, - "id": 5429, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5421, - "src": "12394:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5432, - "indexExpression": { - "argumentTypes": null, - "id": 5431, - "name": "_operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5423, - "src": "12402:9:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:36:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5427, - "id": 5433, - "nodeType": "Return", - "src": "12369:43:8" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", - "id": 5435, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5424, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5421, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12273:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5420, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12273:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5423, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12294:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5422, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12294:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12266:50:8" - }, - "returnParameters": { - "id": 5427, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5426, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12353:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5425, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12353:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12352:6:8" - }, - "scope": 5764, - "src": "12241:177:8", - "stateMutability": "view", - "superFunction": 5157, - "visibility": "public" - }, - { - "body": { - "id": 5484, - "nodeType": "Block", - "src": "12976:228:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5448, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "12991:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5450, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13008:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5449, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13000:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "12991:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5447, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "12983:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12983:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5454, - "nodeType": "ExpressionStatement", - "src": "12983:28:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5456, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13026:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13041:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5457, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13033:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5459, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13033:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "13026:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5455, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "13018:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13018:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5462, - "nodeType": "ExpressionStatement", - "src": "13018:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5464, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13067:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5465, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13074:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5463, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "13053:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13053:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5467, - "nodeType": "ExpressionStatement", - "src": "13053:30:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5469, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13106:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5470, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13113:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5468, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "13090:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13090:32:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5472, - "nodeType": "ExpressionStatement", - "src": "13090:32:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5474, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13140:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5475, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13145:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5473, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "13129:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13129:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5477, - "nodeType": "ExpressionStatement", - "src": "13129:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5479, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13177:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5480, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13184:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5481, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13189:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5478, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "13168:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13168:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5483, - "nodeType": "EmitStatement", - "src": "13163:35:8" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5485, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5444, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "12963:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5445, - "modifierName": { - "argumentTypes": null, - "id": 5443, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "12951:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12951:21:8" - } - ], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5442, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5437, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12874:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5436, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12874:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5439, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12894:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5438, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12894:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5441, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12912:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5440, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12912:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12867:66:8" - }, - "returnParameters": { - "id": 5446, - "nodeType": "ParameterList", - "parameters": [], - "src": "12976:0:8" - }, - "scope": 5764, - "src": "12846:358:8", - "stateMutability": "nonpayable", - "superFunction": 5166, - "visibility": "public" - }, - { - "body": { - "id": 5504, - "nodeType": "Block", - "src": "13960:101:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5498, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5487, - "src": "14030:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5499, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5489, - "src": "14037:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5500, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "14042:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 5501, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14052:2:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 5497, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5505, - 5535 - ], - "referencedDeclaration": 5535, - "src": "14013:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,uint256,bytes memory)" - } - }, - "id": 5502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14013:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5503, - "nodeType": "ExpressionStatement", - "src": "14013:42:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5505, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5494, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "13947:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5495, - "modifierName": { - "argumentTypes": null, - "id": 5493, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "13935:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13935:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5492, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5487, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5486, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5489, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13878:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5488, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13878:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5491, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13896:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5490, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13896:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13851:66:8" - }, - "returnParameters": { - "id": 5496, - "nodeType": "ParameterList", - "parameters": [], - "src": "13960:0:8" - }, - "scope": 5764, - "src": "13826:235:8", - "stateMutability": "nonpayable", - "superFunction": 5175, - "visibility": "public" - }, - { - "body": { - "id": 5534, - "nodeType": "Block", - "src": "14908:162:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5520, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "14928:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5521, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "14935:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5522, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14940:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5519, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5485 - ], - "referencedDeclaration": 5485, - "src": "14915:12:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14915:34:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5524, - "nodeType": "ExpressionStatement", - "src": "14915:34:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5527, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "15035:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5528, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "15042:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5529, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "15047:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5530, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5513, - "src": "15057:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 5526, - "name": "checkAndCallSafeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5763, - "src": "15010:24:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,address,uint256,bytes memory) returns (bool)" - } - }, - "id": 5531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15010:53:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5525, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "15002:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15002:62:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5533, - "nodeType": "ExpressionStatement", - "src": "15002:62:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", - "id": 5535, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5516, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14895:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5517, - "modifierName": { - "argumentTypes": null, - "id": 5515, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "14883:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14883:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5514, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5507, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14781:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5506, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14781:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5509, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14801:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5508, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14801:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5511, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14819:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5510, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14819:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5513, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14842:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5512, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14842:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14774:91:8" - }, - "returnParameters": { - "id": 5518, - "nodeType": "ParameterList", - "parameters": [], - "src": "14908:0:8" - }, - "scope": 5764, - "src": "14749:321:8", - "stateMutability": "nonpayable", - "superFunction": 5186, - "visibility": "public" - }, - { - "body": { - "id": 5566, - "nodeType": "Block", - "src": "15551:330:8", - "statements": [ - { - "assignments": [ - 5545 - ], - "declarations": [ - { - "constant": false, - "id": 5545, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5566, - "src": "15558:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5544, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15558:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5549, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5547, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15582:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5546, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "15574:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15574:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15558:33:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5550, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15763:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5551, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15775:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15763:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5554, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15803:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5553, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5388 - ], - "referencedDeclaration": 5388, - "src": "15791:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15791:21:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5556, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15816:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15791:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:61:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5560, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15852:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5561, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15859:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5559, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "15835:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15835:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:105:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5564, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "15754:121:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5543, - "id": 5565, - "nodeType": "Return", - "src": "15747:128:8" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", - "id": 5567, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5540, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5537, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15459:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5536, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15459:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5539, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15482:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5538, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15482:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15452:51:8" - }, - "returnParameters": { - "id": 5543, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5542, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15542:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5541, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "15542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15541:6:8" - }, - "scope": 5764, - "src": "15426:455:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5595, - "nodeType": "Block", - "src": "16193:118:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5575, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16208:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16223:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16215:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5578, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16215:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16208:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5574, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "16200:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16200:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5581, - "nodeType": "ExpressionStatement", - "src": "16200:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5583, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16244:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5584, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16249:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5582, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "16233:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16233:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5586, - "nodeType": "ExpressionStatement", - "src": "16233:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16287:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5588, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16279:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5590, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16279:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5591, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16291:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5592, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16296:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5587, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16270:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16270:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5594, - "nodeType": "EmitStatement", - "src": "16265:40:8" - } - ] - }, - "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", - "id": 5596, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5572, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5569, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16153:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5568, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16153:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5571, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16166:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5570, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16166:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16152:31:8" - }, - "returnParameters": { - "id": 5573, - "nodeType": "ParameterList", - "parameters": [], - "src": "16193:0:8" - }, - "scope": 5764, - "src": "16138:173:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5621, - "nodeType": "Block", - "src": "16562:134:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5604, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16583:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5605, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16591:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5603, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "16569:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16569:31:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5607, - "nodeType": "ExpressionStatement", - "src": "16569:31:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5609, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16623:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5610, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16631:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5608, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "16607:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16607:33:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5612, - "nodeType": "ExpressionStatement", - "src": "16607:33:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5614, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16661:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16677:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5615, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16669:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5617, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16669:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5618, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16681:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5613, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16652:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16652:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5620, - "nodeType": "EmitStatement", - "src": "16647:43:8" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", - "id": 5622, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5598, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16519:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16519:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5600, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16535:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16535:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16518:34:8" - }, - "returnParameters": { - "id": 5602, - "nodeType": "ParameterList", - "parameters": [], - "src": "16562:0:8" - }, - "scope": 5764, - "src": "16504:192:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5654, - "nodeType": "Block", - "src": "17032:153:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5631, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17055:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5630, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "17047:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17047:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5633, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5624, - "src": "17068:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17047:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5629, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17039:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17039:36:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5636, - "nodeType": "ExpressionStatement", - "src": "17039:36:8" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5637, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17086:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5639, - "indexExpression": { - "argumentTypes": null, - "id": 5638, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17101:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17086:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17122:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17114:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17114:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17086:38:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5653, - "nodeType": "IfStatement", - "src": "17082:98:8", - "trueBody": { - "id": 5652, - "nodeType": "Block", - "src": "17126:54:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5644, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17135:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5646, - "indexExpression": { - "argumentTypes": null, - "id": 5645, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17150:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17135:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17170:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5647, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17162:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5649, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17162:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17135:37:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5651, - "nodeType": "ExpressionStatement", - "src": "17135:37:8" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5655, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5627, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5624, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "16989:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5623, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16989:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5626, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "17005:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5625, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17005:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16988:34:8" - }, - "returnParameters": { - "id": 5628, - "nodeType": "ParameterList", - "parameters": [], - "src": "17032:0:8" - }, - "scope": 5764, - "src": "16966:219:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5689, - "nodeType": "Block", - "src": "17515:148:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5663, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17530:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5665, - "indexExpression": { - "argumentTypes": null, - "id": 5664, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17541:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17530:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17562:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17554:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5668, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17554:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17530:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5662, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17522:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17522:43:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5671, - "nodeType": "ExpressionStatement", - "src": "17522:43:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5672, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17572:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5674, - "indexExpression": { - "argumentTypes": null, - "id": 5673, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17583:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17572:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5675, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17595:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17572:26:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5677, - "nodeType": "ExpressionStatement", - "src": "17572:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5678, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17605:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5680, - "indexExpression": { - "argumentTypes": null, - "id": 5679, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17622:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17605:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17655:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5681, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17629:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5683, - "indexExpression": { - "argumentTypes": null, - "id": 5682, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17646:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17629:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "17629:25:8", - "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": 5686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17629:28:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17605:52:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5688, - "nodeType": "ExpressionStatement", - "src": "17605:52:8" - } - ] - }, - "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", - "id": 5690, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addTokenTo", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5660, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5657, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17475:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5656, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17475:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5659, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17488:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5658, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17488:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17474:31:8" - }, - "returnParameters": { - "id": 5661, - "nodeType": "ParameterList", - "parameters": [], - "src": "17515:0:8" - }, - "scope": 5764, - "src": "17455:208:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5724, - "nodeType": "Block", - "src": "18016:151:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5702, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5699, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18039:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5698, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "18031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18031:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5701, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18052:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "18031:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5697, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "18023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18023:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5704, - "nodeType": "ExpressionStatement", - "src": "18023:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5705, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18065:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5707, - "indexExpression": { - "argumentTypes": null, - "id": 5706, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18082:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18065:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18119:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5708, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18091:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5710, - "indexExpression": { - "argumentTypes": null, - "id": 5709, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18108:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18091:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "18091:27:8", - "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": 5713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18091:30:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18065:56:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5715, - "nodeType": "ExpressionStatement", - "src": "18065:56:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5716, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "18128:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5718, - "indexExpression": { - "argumentTypes": null, - "id": 5717, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18139:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18128:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18159:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18151:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18151:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "18128:33:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5723, - "nodeType": "ExpressionStatement", - "src": "18128:33:8" - } - ] - }, - "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", - "id": 5725, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "removeTokenFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5695, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5692, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17974:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5691, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17974:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5694, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17989:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5693, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17989:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17973:33:8" - }, - "returnParameters": { - "id": 5696, - "nodeType": "ParameterList", - "parameters": [], - "src": "18016:0:8" - }, - "scope": 5764, - "src": "17949:218:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5762, - "nodeType": "Block", - "src": "18846:195:8", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 5741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "18857:17:8", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5738, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18858:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 5008, - "src": "18858:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 5740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18858:16:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5745, - "nodeType": "IfStatement", - "src": "18853:51:8", - "trueBody": { - "id": 5744, - "nodeType": "Block", - "src": "18876:28:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5742, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18892:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 5737, - "id": 5743, - "nodeType": "Return", - "src": "18885:11:8" - } - ] - } - }, - { - "assignments": [ - 5747 - ], - "declarations": [ - { - "constant": false, - "id": 5747, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 5762, - "src": "18910:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5746, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "18910:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5756, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5752, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5727, - "src": "18971:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5753, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5731, - "src": "18978:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5754, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5733, - "src": "18988:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5749, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18941:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5748, - "name": "ERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5080, - "src": "18926:14:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", - "typeString": "type(contract ERC721Receiver)" - } - }, - "id": 5750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:19:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Receiver_$5080", - "typeString": "contract ERC721Receiver" - } - }, - "id": 5751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 5079, - "src": "18926:36:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" - } - }, - "id": 5755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:68:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18910:84:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5757, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5747, - "src": "19009:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5758, - "name": "ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5206, - "src": "19019:15:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "19009:25:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5760, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19008:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5737, - "id": 5761, - "nodeType": "Return", - "src": "19001:34:8" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", - "id": 5763, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "checkAndCallSafeTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5734, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5727, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18724:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5726, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18724:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5729, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18744:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18744:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5731, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18762:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5730, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18762:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5733, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18785:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5732, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "18785:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18717:91:8" - }, - "returnParameters": { - "id": 5737, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5736, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18837:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5735, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18837:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18836:6:8" - }, - "scope": 5764, - "src": "18684:357:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "6942:12102:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5765, - "name": "ERC721BasicToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5764, - "src": "19081:16:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", - "typeString": "contract ERC721BasicToken" - } - }, - "id": 5766, - "nodeType": "InheritanceSpecifier", - "src": "19081:16:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187, - 5764 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 5797, - "linearizedBaseContracts": [ - 5797, - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicTokenMock", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5780, - "nodeType": "Block", - "src": "19155:39:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5776, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5768, - "src": "19174:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5777, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5770, - "src": "19179:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5773, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19162:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 5596, - "src": "19162:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19162:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5779, - "nodeType": "ExpressionStatement", - "src": "19162:26:8" - } - ] - }, - "documentation": null, - "id": 5781, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5771, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5768, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19117:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5767, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19117:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5770, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19130:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5769, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19130:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19116:31:8" - }, - "returnParameters": { - "id": 5772, - "nodeType": "ParameterList", - "parameters": [], - "src": "19155:0:8" - }, - "scope": 5797, - "src": "19103:91:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5795, - "nodeType": "Block", - "src": "19239:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5790, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19266:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5789, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "19258:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19258:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5792, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19277:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5786, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19246:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 5622, - "src": "19246:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19246:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5794, - "nodeType": "ExpressionStatement", - "src": "19246:40:8" - } - ] - }, - "documentation": null, - "id": 5796, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5784, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5783, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5796, - "src": "19214:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5782, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19214:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19213:18:8" - }, - "returnParameters": { - "id": 5785, - "nodeType": "ParameterList", - "parameters": [], - "src": "19239:0:8" - }, - "scope": 5797, - "src": "19200:92:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "19048:247:8" - } - ], - "src": "0:19297:8" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", - "exportedSymbols": { - "AddressUtils": [ - 5009 - ], - "ERC165": [ - 5017 - ], - "ERC721Basic": [ - 5187 - ], - "ERC721BasicToken": [ - 5764 - ], - "ERC721BasicTokenMock": [ - 5797 - ], - "ERC721Receiver": [ - 5080 - ], - "SupportsInterfaceWithLookup": [ - 5065 - ] - }, - "id": 5798, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4991, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:8" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "../../dao/oz/SafeMath.sol", - "id": 4992, - "nodeType": "ImportDirective", - "scope": 5798, - "sourceUnit": 9858, - "src": "34:35:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "Utility library of inline functions on addresses\r", - "fullyImplemented": true, - "id": 5009, - "linearizedBaseContracts": [ - 5009 - ], - "name": "AddressUtils", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5007, - "nodeType": "Block", - "src": "2012:524:8", - "statements": [ - { - "assignments": [ - 5000 - ], - "declarations": [ - { - "constant": false, - "id": 5000, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 5007, - "src": "2019:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4999, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2019:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5001, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2019:12:8" - }, - { - "externalReferences": [ - { - "size": { - "declaration": 5000, - "isOffset": false, - "isSlot": false, - "src": "2482:4:8", - "valueSize": 1 - } - }, - { - "addr": { - "declaration": 4994, - "isOffset": false, - "isSlot": false, - "src": "2502:4:8", - "valueSize": 1 - } - } - ], - "id": 5002, - "nodeType": "InlineAssembly", - "operations": "{ size := extcodesize(addr) }", - "src": "2471:38:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5003, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5000, - "src": "2522:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5004, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2529:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2522:8:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4998, - "id": 5006, - "nodeType": "Return", - "src": "2515:15:8" - } - ] - }, - "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", - "id": 5008, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4994, - "name": "addr", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "1969:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1969:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1968:14:8" - }, - "returnParameters": { - "id": 4998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4997, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "2006:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4996, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2006:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2005:6:8" - }, - "scope": 5009, - "src": "1949:587:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "1590:951:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", - "fullyImplemented": false, - "id": 5017, - "linearizedBaseContracts": [ - 5017 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", - "id": 5016, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5012, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5011, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "2950:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5010, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "2950:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2949:21:8" - }, - "returnParameters": { - "id": 5015, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5014, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "3009:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5013, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3009:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3008:6:8" - }, - "scope": 5017, - "src": "2923:92:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 5798, - "src": "2643:375:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5018, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "3196:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5019, - "nodeType": "InheritanceSpecifier", - "src": "3196:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", - "fullyImplemented": true, - "id": 5065, - "linearizedBaseContracts": [ - 5065, - 5017 - ], - "name": "SupportsInterfaceWithLookup", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5022, - "name": "InterfaceId_ERC165", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3208:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5020, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3208:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 5021, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3252:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 5026, - "name": "supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3443:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 5025, - "keyType": { - "id": 5023, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3451:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "3443:23:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 5024, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3461:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 5033, - "nodeType": "Block", - "src": "3638:51:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5030, - "name": "InterfaceId_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5022, - "src": "3664:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5029, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "3645:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3645:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5032, - "nodeType": "ExpressionStatement", - "src": "3645:38:8" - } - ] - }, - "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", - "id": 5034, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5027, - "nodeType": "ParameterList", - "parameters": [], - "src": "3620:2:8" - }, - "returnParameters": { - "id": 5028, - "nodeType": "ParameterList", - "parameters": [], - "src": "3638:0:8" - }, - "scope": 5065, - "src": "3609:80:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5045, - "nodeType": "Block", - "src": "3872:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5041, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "3886:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5043, - "indexExpression": { - "argumentTypes": null, - "id": 5042, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5036, - "src": "3906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3886:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5040, - "id": 5044, - "nodeType": "Return", - "src": "3879:40:8" - } - ] - }, - "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", - "id": 5046, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5037, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5036, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3804:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5035, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3804:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3803:21:8" - }, - "returnParameters": { - "id": 5040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5039, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3863:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5038, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3863:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3862:6:8" - }, - "scope": 5065, - "src": "3777:148:8", - "stateMutability": "view", - "superFunction": 5016, - "visibility": "external" - }, - { - "body": { - "id": 5063, - "nodeType": "Block", - "src": "4066:95:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5052, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4081:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 5053, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4097:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "4081:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5051, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4073:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4073:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5056, - "nodeType": "ExpressionStatement", - "src": "4073:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5057, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "4115:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5059, - "indexExpression": { - "argumentTypes": null, - "id": 5058, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4135:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4115:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4151:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4115:40:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5062, - "nodeType": "ExpressionStatement", - "src": "4115:40:8" - } - ] - }, - "documentation": "@dev private method for registering an interface\r", - "id": 5064, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5049, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5048, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5064, - "src": "4028:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5047, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4028:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4027:21:8" - }, - "returnParameters": { - "id": 5050, - "nodeType": "ParameterList", - "parameters": [], - "src": "4066:0:8" - }, - "scope": 5065, - "src": "4000:161:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "3156:1008:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", - "fullyImplemented": false, - "id": 5080, - "linearizedBaseContracts": [ - 5080 - ], - "name": "ERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5068, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5080, - "src": "4607:53:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5066, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4607:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4650:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "internal" - }, - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", - "id": 5079, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5070, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5364:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5069, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5364:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5072, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5384:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5071, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5384:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5074, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5407:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5073, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5407:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5357:73:8" - }, - "returnParameters": { - "id": 5078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5077, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5456:6:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5076, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "5456:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5455:8:8" - }, - "scope": 5080, - "src": "5332:132:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "4326:1141:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5081, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "5641:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5082, - "nodeType": "InheritanceSpecifier", - "src": "5641:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": false, - "id": 5187, - "linearizedBaseContracts": [ - 5187, - 5017 - ], - "name": "ERC721Basic", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 5090, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 5089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5084, - "indexed": false, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5674:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5083, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5674:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5086, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5695:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5085, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5695:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5088, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5714:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5087, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5714:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5667:69:8" - }, - "src": "5653:84:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5098, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 5097, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5092, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5762:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5091, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5762:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5094, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5784:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5784:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5096, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5809:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5095, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5809:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5755:76:8" - }, - "src": "5741:91:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5106, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 5105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5100, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5863:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5099, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5863:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5102, - "indexed": false, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5885:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5101, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5885:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5104, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5910:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5103, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5910:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5856:73:8" - }, - "src": "5836:94:8" - }, - { - "body": null, - "documentation": null, - "id": 5113, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5109, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5108, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5955:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5107, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5955:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5954:16:8" - }, - "returnParameters": { - "id": 5112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5111, - "name": "_balance", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5992:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5110, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5992:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5991:18:8" - }, - "scope": 5187, - "src": "5936:74:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5120, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5116, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5115, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6031:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5114, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6030:18:8" - }, - "returnParameters": { - "id": 5119, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5118, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6070:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5117, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6070:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6069:16:8" - }, - "scope": 5187, - "src": "6014:72:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5127, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5123, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5122, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6106:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5121, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6106:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6105:18:8" - }, - "returnParameters": { - "id": 5126, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5125, - "name": "_exists", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6145:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5124, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6145:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6144:14:8" - }, - "scope": 5187, - "src": "6090:69:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5134, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5132, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5129, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6182:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6182:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5131, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6195:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6195:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6181:31:8" - }, - "returnParameters": { - "id": 5133, - "nodeType": "ParameterList", - "parameters": [], - "src": "6219:0:8" - }, - "scope": 5187, - "src": "6165:55:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5141, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5136, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6245:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5135, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6245:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6244:18:8" - }, - "returnParameters": { - "id": 5140, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5139, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6289:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5138, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6289:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6288:19:8" - }, - "scope": 5187, - "src": "6224:84:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5148, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5143, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6341:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6341:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5145, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6360:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5144, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6360:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6340:35:8" - }, - "returnParameters": { - "id": 5147, - "nodeType": "ParameterList", - "parameters": [], - "src": "6382:0:8" - }, - "scope": 5187, - "src": "6314:69:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5157, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5150, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6413:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5149, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6413:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5152, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6429:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5151, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6429:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6412:35:8" - }, - "returnParameters": { - "id": 5156, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5155, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6474:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5154, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6474:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6473:6:8" - }, - "scope": 5187, - "src": "6387:93:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5166, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5159, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6508:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5158, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6508:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5161, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6523:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5160, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6523:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5163, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6536:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5162, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6536:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6507:46:8" - }, - "returnParameters": { - "id": 5165, - "nodeType": "ParameterList", - "parameters": [], - "src": "6560:0:8" - }, - "scope": 5187, - "src": "6486:75:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5175, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5168, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6591:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5167, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6591:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5170, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6606:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5169, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6606:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5172, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6619:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6619:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6590:46:8" - }, - "returnParameters": { - "id": 5174, - "nodeType": "ParameterList", - "parameters": [], - "src": "6648:0:8" - }, - "scope": 5187, - "src": "6565:84:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5186, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5177, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6687:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5176, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6687:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5179, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6707:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5178, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6707:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5181, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6725:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5180, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6725:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5183, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6748:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5182, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6748:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6680:91:8" - }, - "returnParameters": { - "id": 5185, - "nodeType": "ParameterList", - "parameters": [], - "src": "6783:0:8" - }, - "scope": 5187, - "src": "6655:129:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "5617:1170:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5188, - "name": "SupportsInterfaceWithLookup", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5065, - "src": "6971:27:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", - "typeString": "contract SupportsInterfaceWithLookup" - } - }, - "id": 5189, - "nodeType": "InheritanceSpecifier", - "src": "6971:27:8" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5190, - "name": "ERC721Basic", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5187, - "src": "7000:11:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Basic_$5187", - "typeString": "contract ERC721Basic" - } - }, - "id": 5191, - "nodeType": "InheritanceSpecifier", - "src": "7000:11:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": true, - "id": 5764, - "linearizedBaseContracts": [ - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5194, - "name": "InterfaceId_ERC721", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7019:55:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5192, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7019:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 5193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7064:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 5197, - "name": "InterfaceId_ERC721Exists", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7668:61:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5195, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7668:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783466353538653739", - "id": 5196, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7719:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1331007097_by_1", - "typeString": "int_const 1331007097" - }, - "value": "0x4f558e79" - }, - "visibility": "private" - }, - { - "id": 5200, - "libraryName": { - "contractScope": null, - "id": 5198, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "7821:8:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "7815:27:8", - "typeName": { - "id": 5199, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7834:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 5203, - "libraryName": { - "contractScope": null, - "id": 5201, - "name": "AddressUtils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5009, - "src": "7852:12:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUtils_$5009", - "typeString": "library AddressUtils" - } - }, - "nodeType": "UsingForDirective", - "src": "7846:31:8", - "typeName": { - "id": 5202, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7869:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "constant": true, - "id": 5206, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8044:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5204, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8044:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5205, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8086:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 5210, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8140:48:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5209, - "keyType": { - "id": 5207, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8149:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8140:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5208, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8160:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5214, - "name": "tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8243:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5213, - "keyType": { - "id": 5211, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8252:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8243:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5212, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8263:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5218, - "name": "ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8352:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 5217, - "keyType": { - "id": 5215, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8361:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8352:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 5216, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8372:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5224, - "name": "operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8460:73:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "typeName": { - "id": 5223, - "keyType": { - "id": 5219, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8469:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8460:46:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 5222, - "keyType": { - "id": 5220, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8489:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8480:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 5221, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8500:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5226, - "name": "testint", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8542:19:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5225, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 5240, - "nodeType": "Block", - "src": "8774:61:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5232, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5228, - "src": "8797:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5231, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "8789:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8789:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5234, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "8810:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8810:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "8789:31:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5230, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "8781:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8781:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5238, - "nodeType": "ExpressionStatement", - "src": "8781:40:8" - }, - { - "id": 5239, - "nodeType": "PlaceholderStatement", - "src": "8828:1:8" - } - ] - }, - "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", - "id": 5241, - "name": "onlyOwnerOf", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5228, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5241, - "src": "8756:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8756:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8755:18:8" - }, - "src": "8735:100:8", - "visibility": "internal" - }, - { - "body": { - "id": 5254, - "nodeType": "Block", - "src": "9041:69:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5247, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "9074:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9074:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5249, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5243, - "src": "9086:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5246, - "name": "isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5567, - "src": "9056:17:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 5250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9056:39:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5245, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9048:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9048:48:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5252, - "nodeType": "ExpressionStatement", - "src": "9048:48:8" - }, - { - "id": 5253, - "nodeType": "PlaceholderStatement", - "src": "9103:1:8" - } - ] - }, - "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", - "id": 5255, - "name": "canTransfer", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5244, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5243, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5255, - "src": "9023:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5242, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9022:18:8" - }, - "src": "9002:108:8", - "visibility": "internal" - }, - { - "body": { - "id": 5266, - "nodeType": "Block", - "src": "9145:176:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5259, - "name": "InterfaceId_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5194, - "src": "9245:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5258, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9226:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9226:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5261, - "nodeType": "ExpressionStatement", - "src": "9226:38:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5263, - "name": "InterfaceId_ERC721Exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5197, - "src": "9290:24:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5262, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9271:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9271:44:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5265, - "nodeType": "ExpressionStatement", - "src": "9271:44:8" - } - ] - }, - "documentation": null, - "id": 5267, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5256, - "nodeType": "ParameterList", - "parameters": [], - "src": "9127:2:8" - }, - "returnParameters": { - "id": 5257, - "nodeType": "ParameterList", - "parameters": [], - "src": "9145:0:8" - }, - "scope": 5764, - "src": "9116:205:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5286, - "nodeType": "Block", - "src": "9585:80:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5275, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9600:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5277, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9618:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5276, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9610:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9610:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "9600:20:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5274, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9592:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9592:29:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5281, - "nodeType": "ExpressionStatement", - "src": "9592:29:8" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5282, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "9635:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5284, - "indexExpression": { - "argumentTypes": null, - "id": 5283, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9652:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9635:24:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5273, - "id": 5285, - "nodeType": "Return", - "src": "9628:31:8" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", - "id": 5287, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5270, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5269, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9539:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5268, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9539:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9538:16:8" - }, - "returnParameters": { - "id": 5273, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5272, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9576:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9576:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9575:9:8" - }, - "scope": 5764, - "src": "9520:145:8", - "stateMutability": "view", - "superFunction": 5113, - "visibility": "public" - }, - { - "body": { - "id": 5310, - "nodeType": "Block", - "src": "9950:103:8", - "statements": [ - { - "assignments": [ - 5295 - ], - "declarations": [ - { - "constant": false, - "id": 5295, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5310, - "src": "9957:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5294, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9957:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5299, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5296, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "9973:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5298, - "indexExpression": { - "argumentTypes": null, - "id": 5297, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5289, - "src": "9984:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9973:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9957:36:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5301, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10008:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10025:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10017:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5304, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10017:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10008:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5300, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10000:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5307, - "nodeType": "ExpressionStatement", - "src": "10000:28:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5308, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10042:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5293, - "id": 5309, - "nodeType": "Return", - "src": "10035:12:8" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", - "id": 5311, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5289, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9902:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5288, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9902:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9901:18:8" - }, - "returnParameters": { - "id": 5293, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5292, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9941:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5291, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9941:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9940:9:8" - }, - "scope": 5764, - "src": "9885:168:8", - "stateMutability": "view", - "superFunction": 5120, - "visibility": "public" - }, - { - "body": { - "id": 5330, - "nodeType": "Block", - "src": "10299:82:8", - "statements": [ - { - "assignments": [ - 5319 - ], - "declarations": [ - { - "constant": false, - "id": 5319, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5330, - "src": "10306:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5318, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10306:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5323, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5320, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "10322:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5322, - "indexExpression": { - "argumentTypes": null, - "id": 5321, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5313, - "src": "10333:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10322:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10306:36:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5324, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5319, - "src": "10356:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5326, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10373:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5325, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10365:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10365:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10356:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5317, - "id": 5329, - "nodeType": "Return", - "src": "10349:26:8" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", - "id": 5331, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5313, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10254:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5312, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10254:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10253:18:8" - }, - "returnParameters": { - "id": 5317, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5316, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10293:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5315, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10293:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10292:6:8" - }, - "scope": 5764, - "src": "10238:143:8", - "stateMutability": "view", - "superFunction": 5127, - "visibility": "public" - }, - { - "body": { - "id": 5375, - "nodeType": "Block", - "src": "10851:229:8", - "statements": [ - { - "assignments": [ - 5339 - ], - "declarations": [ - { - "constant": false, - "id": 5339, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5375, - "src": "10858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5338, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5343, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5341, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "10882:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5340, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "10874:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10874:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10858:33:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5345, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "10906:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 5346, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10913:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5344, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10898:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10898:21:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5349, - "nodeType": "ExpressionStatement", - "src": "10898:21:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5351, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10934:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10934:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5353, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10948:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10934:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5356, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10974:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5357, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10981:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10981:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 5355, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "10957:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10957:35:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "10934:58:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5350, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10926:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10926:67:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5362, - "nodeType": "ExpressionStatement", - "src": "10926:67:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5363, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11002:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5365, - "indexExpression": { - "argumentTypes": null, - "id": 5364, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11017:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11002:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5366, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11029:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "11002:30:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5368, - "nodeType": "ExpressionStatement", - "src": "11002:30:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5370, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "11053:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5371, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11060:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5372, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11065:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5369, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5098, - "src": "11044:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11044:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5374, - "nodeType": "EmitStatement", - "src": "11039:35:8" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", - "id": 5376, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5336, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5333, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10813:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10813:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5335, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10826:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5334, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10826:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10812:31:8" - }, - "returnParameters": { - "id": 5337, - "nodeType": "ParameterList", - "parameters": [], - "src": "10851:0:8" - }, - "scope": 5764, - "src": "10796:284:8", - "stateMutability": "nonpayable", - "superFunction": 5134, - "visibility": "public" - }, - { - "body": { - "id": 5387, - "nodeType": "Block", - "src": "11383:44:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5383, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11397:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5385, - "indexExpression": { - "argumentTypes": null, - "id": 5384, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5378, - "src": "11412:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11397:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5382, - "id": 5386, - "nodeType": "Return", - "src": "11390:31:8" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", - "id": 5388, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5378, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11335:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5377, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11335:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11334:18:8" - }, - "returnParameters": { - "id": 5382, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5381, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11374:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5380, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11374:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11373:9:8" - }, - "scope": 5764, - "src": "11314:113:8", - "stateMutability": "view", - "superFunction": 5141, - "visibility": "public" - }, - { - "body": { - "id": 5418, - "nodeType": "Block", - "src": "11778:146:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5396, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11793:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5397, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11800:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11800:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "11793:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5395, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "11785:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11785:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5401, - "nodeType": "ExpressionStatement", - "src": "11785:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5402, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "11818:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5406, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5403, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11836:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11836:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11818:29:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5407, - "indexExpression": { - "argumentTypes": null, - "id": 5405, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11848:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11818:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5408, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11855:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11818:46:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5410, - "nodeType": "ExpressionStatement", - "src": "11818:46:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5412, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11891:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11891:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5414, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11903:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5415, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11908:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5411, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5106, - "src": "11876:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 5416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11876:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5417, - "nodeType": "EmitStatement", - "src": "11871:47:8" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", - "id": 5419, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5390, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11742:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5389, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11742:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5392, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11755:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5391, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11755:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11741:29:8" - }, - "returnParameters": { - "id": 5394, - "nodeType": "ParameterList", - "parameters": [], - "src": "11778:0:8" - }, - "scope": 5764, - "src": "11715:209:8", - "stateMutability": "nonpayable", - "superFunction": 5148, - "visibility": "public" - }, - { - "body": { - "id": 5434, - "nodeType": "Block", - "src": "12362:56:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5428, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "12376:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5430, - "indexExpression": { - "argumentTypes": null, - "id": 5429, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5421, - "src": "12394:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5432, - "indexExpression": { - "argumentTypes": null, - "id": 5431, - "name": "_operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5423, - "src": "12402:9:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:36:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5427, - "id": 5433, - "nodeType": "Return", - "src": "12369:43:8" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", - "id": 5435, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5424, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5421, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12273:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5420, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12273:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5423, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12294:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5422, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12294:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12266:50:8" - }, - "returnParameters": { - "id": 5427, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5426, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12353:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5425, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12353:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12352:6:8" - }, - "scope": 5764, - "src": "12241:177:8", - "stateMutability": "view", - "superFunction": 5157, - "visibility": "public" - }, - { - "body": { - "id": 5484, - "nodeType": "Block", - "src": "12976:228:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5448, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "12991:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5450, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13008:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5449, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13000:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "12991:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5447, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "12983:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12983:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5454, - "nodeType": "ExpressionStatement", - "src": "12983:28:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5456, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13026:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13041:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5457, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13033:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5459, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13033:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "13026:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5455, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "13018:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13018:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5462, - "nodeType": "ExpressionStatement", - "src": "13018:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5464, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13067:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5465, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13074:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5463, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "13053:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13053:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5467, - "nodeType": "ExpressionStatement", - "src": "13053:30:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5469, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13106:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5470, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13113:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5468, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "13090:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13090:32:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5472, - "nodeType": "ExpressionStatement", - "src": "13090:32:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5474, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13140:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5475, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13145:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5473, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "13129:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13129:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5477, - "nodeType": "ExpressionStatement", - "src": "13129:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5479, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13177:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5480, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13184:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5481, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13189:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5478, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "13168:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13168:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5483, - "nodeType": "EmitStatement", - "src": "13163:35:8" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5485, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5444, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "12963:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5445, - "modifierName": { - "argumentTypes": null, - "id": 5443, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "12951:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12951:21:8" - } - ], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5442, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5437, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12874:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5436, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12874:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5439, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12894:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5438, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12894:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5441, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12912:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5440, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12912:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12867:66:8" - }, - "returnParameters": { - "id": 5446, - "nodeType": "ParameterList", - "parameters": [], - "src": "12976:0:8" - }, - "scope": 5764, - "src": "12846:358:8", - "stateMutability": "nonpayable", - "superFunction": 5166, - "visibility": "public" - }, - { - "body": { - "id": 5504, - "nodeType": "Block", - "src": "13960:101:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5498, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5487, - "src": "14030:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5499, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5489, - "src": "14037:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5500, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "14042:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 5501, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14052:2:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 5497, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5505, - 5535 - ], - "referencedDeclaration": 5535, - "src": "14013:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,uint256,bytes memory)" - } - }, - "id": 5502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14013:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5503, - "nodeType": "ExpressionStatement", - "src": "14013:42:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5505, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5494, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "13947:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5495, - "modifierName": { - "argumentTypes": null, - "id": 5493, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "13935:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13935:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5492, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5487, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5486, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5489, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13878:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5488, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13878:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5491, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13896:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5490, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13896:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13851:66:8" - }, - "returnParameters": { - "id": 5496, - "nodeType": "ParameterList", - "parameters": [], - "src": "13960:0:8" - }, - "scope": 5764, - "src": "13826:235:8", - "stateMutability": "nonpayable", - "superFunction": 5175, - "visibility": "public" - }, - { - "body": { - "id": 5534, - "nodeType": "Block", - "src": "14908:162:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5520, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "14928:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5521, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "14935:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5522, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14940:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5519, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5485 - ], - "referencedDeclaration": 5485, - "src": "14915:12:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14915:34:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5524, - "nodeType": "ExpressionStatement", - "src": "14915:34:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5527, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "15035:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5528, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "15042:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5529, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "15047:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5530, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5513, - "src": "15057:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 5526, - "name": "checkAndCallSafeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5763, - "src": "15010:24:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,address,uint256,bytes memory) returns (bool)" - } - }, - "id": 5531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15010:53:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5525, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "15002:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15002:62:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5533, - "nodeType": "ExpressionStatement", - "src": "15002:62:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", - "id": 5535, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5516, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14895:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5517, - "modifierName": { - "argumentTypes": null, - "id": 5515, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "14883:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14883:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5514, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5507, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14781:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5506, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14781:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5509, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14801:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5508, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14801:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5511, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14819:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5510, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14819:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5513, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14842:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5512, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14842:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14774:91:8" - }, - "returnParameters": { - "id": 5518, - "nodeType": "ParameterList", - "parameters": [], - "src": "14908:0:8" - }, - "scope": 5764, - "src": "14749:321:8", - "stateMutability": "nonpayable", - "superFunction": 5186, - "visibility": "public" - }, - { - "body": { - "id": 5566, - "nodeType": "Block", - "src": "15551:330:8", - "statements": [ - { - "assignments": [ - 5545 - ], - "declarations": [ - { - "constant": false, - "id": 5545, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5566, - "src": "15558:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5544, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15558:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5549, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5547, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15582:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5546, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "15574:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15574:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15558:33:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5550, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15763:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5551, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15775:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15763:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5554, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15803:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5553, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5388 - ], - "referencedDeclaration": 5388, - "src": "15791:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15791:21:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5556, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15816:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15791:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:61:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5560, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15852:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5561, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15859:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5559, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "15835:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15835:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:105:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5564, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "15754:121:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5543, - "id": 5565, - "nodeType": "Return", - "src": "15747:128:8" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", - "id": 5567, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5540, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5537, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15459:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5536, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15459:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5539, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15482:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5538, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15482:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15452:51:8" - }, - "returnParameters": { - "id": 5543, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5542, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15542:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5541, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "15542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15541:6:8" - }, - "scope": 5764, - "src": "15426:455:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5595, - "nodeType": "Block", - "src": "16193:118:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5575, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16208:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16223:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16215:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5578, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16215:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16208:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5574, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "16200:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16200:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5581, - "nodeType": "ExpressionStatement", - "src": "16200:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5583, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16244:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5584, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16249:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5582, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "16233:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16233:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5586, - "nodeType": "ExpressionStatement", - "src": "16233:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16287:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5588, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16279:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5590, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16279:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5591, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16291:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5592, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16296:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5587, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16270:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16270:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5594, - "nodeType": "EmitStatement", - "src": "16265:40:8" - } - ] - }, - "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", - "id": 5596, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5572, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5569, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16153:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5568, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16153:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5571, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16166:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5570, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16166:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16152:31:8" - }, - "returnParameters": { - "id": 5573, - "nodeType": "ParameterList", - "parameters": [], - "src": "16193:0:8" - }, - "scope": 5764, - "src": "16138:173:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5621, - "nodeType": "Block", - "src": "16562:134:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5604, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16583:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5605, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16591:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5603, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "16569:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16569:31:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5607, - "nodeType": "ExpressionStatement", - "src": "16569:31:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5609, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16623:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5610, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16631:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5608, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "16607:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16607:33:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5612, - "nodeType": "ExpressionStatement", - "src": "16607:33:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5614, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16661:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16677:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5615, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16669:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5617, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16669:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5618, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16681:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5613, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16652:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16652:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5620, - "nodeType": "EmitStatement", - "src": "16647:43:8" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", - "id": 5622, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5598, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16519:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16519:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5600, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16535:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16535:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16518:34:8" - }, - "returnParameters": { - "id": 5602, - "nodeType": "ParameterList", - "parameters": [], - "src": "16562:0:8" - }, - "scope": 5764, - "src": "16504:192:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5654, - "nodeType": "Block", - "src": "17032:153:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5631, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17055:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5630, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "17047:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17047:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5633, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5624, - "src": "17068:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17047:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5629, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17039:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17039:36:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5636, - "nodeType": "ExpressionStatement", - "src": "17039:36:8" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5637, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17086:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5639, - "indexExpression": { - "argumentTypes": null, - "id": 5638, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17101:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17086:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17122:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17114:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17114:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17086:38:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5653, - "nodeType": "IfStatement", - "src": "17082:98:8", - "trueBody": { - "id": 5652, - "nodeType": "Block", - "src": "17126:54:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5644, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17135:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5646, - "indexExpression": { - "argumentTypes": null, - "id": 5645, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17150:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17135:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17170:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5647, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17162:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5649, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17162:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17135:37:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5651, - "nodeType": "ExpressionStatement", - "src": "17135:37:8" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5655, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5627, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5624, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "16989:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5623, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16989:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5626, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "17005:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5625, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17005:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16988:34:8" - }, - "returnParameters": { - "id": 5628, - "nodeType": "ParameterList", - "parameters": [], - "src": "17032:0:8" - }, - "scope": 5764, - "src": "16966:219:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5689, - "nodeType": "Block", - "src": "17515:148:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5663, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17530:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5665, - "indexExpression": { - "argumentTypes": null, - "id": 5664, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17541:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17530:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17562:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17554:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5668, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17554:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17530:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5662, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17522:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17522:43:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5671, - "nodeType": "ExpressionStatement", - "src": "17522:43:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5672, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17572:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5674, - "indexExpression": { - "argumentTypes": null, - "id": 5673, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17583:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17572:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5675, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17595:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17572:26:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5677, - "nodeType": "ExpressionStatement", - "src": "17572:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5678, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17605:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5680, - "indexExpression": { - "argumentTypes": null, - "id": 5679, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17622:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17605:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17655:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5681, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17629:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5683, - "indexExpression": { - "argumentTypes": null, - "id": 5682, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17646:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17629:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "17629:25:8", - "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": 5686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17629:28:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17605:52:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5688, - "nodeType": "ExpressionStatement", - "src": "17605:52:8" - } - ] - }, - "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", - "id": 5690, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addTokenTo", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5660, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5657, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17475:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5656, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17475:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5659, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17488:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5658, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17488:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17474:31:8" - }, - "returnParameters": { - "id": 5661, - "nodeType": "ParameterList", - "parameters": [], - "src": "17515:0:8" - }, - "scope": 5764, - "src": "17455:208:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5724, - "nodeType": "Block", - "src": "18016:151:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5702, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5699, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18039:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5698, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "18031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18031:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5701, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18052:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "18031:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5697, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "18023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18023:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5704, - "nodeType": "ExpressionStatement", - "src": "18023:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5705, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18065:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5707, - "indexExpression": { - "argumentTypes": null, - "id": 5706, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18082:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18065:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18119:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5708, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18091:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5710, - "indexExpression": { - "argumentTypes": null, - "id": 5709, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18108:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18091:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "18091:27:8", - "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": 5713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18091:30:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18065:56:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5715, - "nodeType": "ExpressionStatement", - "src": "18065:56:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5716, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "18128:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5718, - "indexExpression": { - "argumentTypes": null, - "id": 5717, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18139:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18128:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18159:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18151:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18151:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "18128:33:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5723, - "nodeType": "ExpressionStatement", - "src": "18128:33:8" - } - ] - }, - "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", - "id": 5725, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "removeTokenFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5695, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5692, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17974:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5691, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17974:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5694, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17989:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5693, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17989:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17973:33:8" - }, - "returnParameters": { - "id": 5696, - "nodeType": "ParameterList", - "parameters": [], - "src": "18016:0:8" - }, - "scope": 5764, - "src": "17949:218:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5762, - "nodeType": "Block", - "src": "18846:195:8", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 5741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "18857:17:8", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5738, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18858:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 5008, - "src": "18858:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 5740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18858:16:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5745, - "nodeType": "IfStatement", - "src": "18853:51:8", - "trueBody": { - "id": 5744, - "nodeType": "Block", - "src": "18876:28:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5742, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18892:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 5737, - "id": 5743, - "nodeType": "Return", - "src": "18885:11:8" - } - ] - } - }, - { - "assignments": [ - 5747 - ], - "declarations": [ - { - "constant": false, - "id": 5747, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 5762, - "src": "18910:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5746, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "18910:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5756, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5752, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5727, - "src": "18971:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5753, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5731, - "src": "18978:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5754, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5733, - "src": "18988:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5749, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18941:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5748, - "name": "ERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5080, - "src": "18926:14:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", - "typeString": "type(contract ERC721Receiver)" - } - }, - "id": 5750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:19:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Receiver_$5080", - "typeString": "contract ERC721Receiver" - } - }, - "id": 5751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 5079, - "src": "18926:36:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" - } - }, - "id": 5755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:68:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18910:84:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5757, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5747, - "src": "19009:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5758, - "name": "ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5206, - "src": "19019:15:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "19009:25:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5760, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19008:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5737, - "id": 5761, - "nodeType": "Return", - "src": "19001:34:8" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", - "id": 5763, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "checkAndCallSafeTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5734, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5727, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18724:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5726, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18724:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5729, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18744:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18744:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5731, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18762:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5730, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18762:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5733, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18785:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5732, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "18785:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18717:91:8" - }, - "returnParameters": { - "id": 5737, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5736, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18837:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5735, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18837:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18836:6:8" - }, - "scope": 5764, - "src": "18684:357:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "6942:12102:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5765, - "name": "ERC721BasicToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5764, - "src": "19081:16:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", - "typeString": "contract ERC721BasicToken" - } - }, - "id": 5766, - "nodeType": "InheritanceSpecifier", - "src": "19081:16:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187, - 5764 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 5797, - "linearizedBaseContracts": [ - 5797, - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicTokenMock", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5780, - "nodeType": "Block", - "src": "19155:39:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5776, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5768, - "src": "19174:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5777, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5770, - "src": "19179:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5773, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19162:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 5596, - "src": "19162:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19162:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5779, - "nodeType": "ExpressionStatement", - "src": "19162:26:8" - } - ] - }, - "documentation": null, - "id": 5781, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5771, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5768, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19117:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5767, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19117:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5770, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19130:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5769, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19130:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19116:31:8" - }, - "returnParameters": { - "id": 5772, - "nodeType": "ParameterList", - "parameters": [], - "src": "19155:0:8" - }, - "scope": 5797, - "src": "19103:91:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5795, - "nodeType": "Block", - "src": "19239:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5790, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19266:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5789, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "19258:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19258:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5792, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19277:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5786, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19246:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 5622, - "src": "19246:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19246:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5794, - "nodeType": "ExpressionStatement", - "src": "19246:40:8" - } - ] - }, - "documentation": null, - "id": 5796, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5784, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5783, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5796, - "src": "19214:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5782, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19214:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19213:18:8" - }, - "returnParameters": { - "id": 5785, - "nodeType": "ParameterList", - "parameters": [], - "src": "19239:0:8" - }, - "scope": 5797, - "src": "19200:92:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "19048:247:8" - } - ], - "src": "0:19297:8" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:20.006Z", - "devdoc": { - "details": "see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "methods": { - "approve(address,uint256)": { - "details": "Approves another address to transfer the given token ID\r The zero address indicates there is no approved address.\r There can only be one approved address per token at a given time.\r Can only be called by the token owner or an approved operator.\r", - "params": { - "_to": "address to be approved for the given token ID\r", - "_tokenId": "uint256 ID of the token to be approved\r" - } - }, - "balanceOf(address)": { - "details": "Gets the balance of the specified address\r", - "params": { - "_owner": "address to query the balance of\r" - }, - "return": "uint256 representing the amount owned by the passed address\r" - }, - "exists(uint256)": { - "details": "Returns whether the specified token exists\r", - "params": { - "_tokenId": "uint256 ID of the token to query the existence of\r" - }, - "return": "whether the token exists\r" - }, - "getApproved(uint256)": { - "details": "Gets the approved address for a token ID, or zero if no address set\r", - "params": { - "_tokenId": "uint256 ID of the token to query the approval of\r" - }, - "return": "address currently approved for the given token ID\r" - }, - "isApprovedForAll(address,address)": { - "details": "Tells whether an operator is approved by a given owner\r", - "params": { - "_operator": "operator address which you want to query the approval of\r", - "_owner": "owner address which you want to query the approval of\r" - }, - "return": "bool whether the given operator is approved by the given owner\r" - }, - "ownerOf(uint256)": { - "details": "Gets the owner of the specified token ID\r", - "params": { - "_tokenId": "uint256 ID of the token to query the owner of\r" - }, - "return": "owner address currently marked as the owner of the given token ID\r" - }, - "safeTransferFrom(address,address,uint256)": { - "details": "Safely transfers the ownership of a given token ID to another address\r If the target address is a contract, it must implement `onERC721Received`,\r which is called upon a safe transfer, and return the magic value\r `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r the transfer is reverted.\r * Requires the msg sender to be the owner, approved, or operator\r", - "params": { - "_from": "current owner of the token\r", - "_to": "address to receive the ownership of the given token ID\r", - "_tokenId": "uint256 ID of the token to be transferred\r" - } - }, - "safeTransferFrom(address,address,uint256,bytes)": { - "details": "Safely transfers the ownership of a given token ID to another address\r If the target address is a contract, it must implement `onERC721Received`,\r which is called upon a safe transfer, and return the magic value\r `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r the transfer is reverted.\r Requires the msg sender to be the owner, approved, or operator\r", - "params": { - "_data": "bytes data to send along with a safe transfer check\r", - "_from": "current owner of the token\r", - "_to": "address to receive the ownership of the given token ID\r", - "_tokenId": "uint256 ID of the token to be transferred\r" - } - }, - "setApprovalForAll(address,bool)": { - "details": "Sets or unsets the approval of a given operator\r An operator is allowed to transfer all tokens of the sender on their behalf\r", - "params": { - "_approved": "representing the status of the approval to be set\r", - "_to": "operator address to set the approval\r" - } - }, - "supportsInterface(bytes4)": { - "details": "implement supportsInterface(bytes4) using a lookup table\r" - }, - "transferFrom(address,address,uint256)": { - "details": "Transfers the ownership of a given token ID to another address\r Usage of this method is discouraged, use `safeTransferFrom` whenever possible\r Requires the msg sender to be the owner, approved, or operator\r", - "params": { - "_from": "current owner of the token\r", - "_to": "address to receive the ownership of the given token ID\r", - "_tokenId": "uint256 ID of the token to be transferred\r" - } - } - }, - "title": "ERC721 Non-Fungible Token Standard basic implementation\r" - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/ERC721BasicTokenMock.json b/src/contracts/ERC721BasicTokenMock.json deleted file mode 100644 index 2096189..0000000 --- a/src/contracts/ERC721BasicTokenMock.json +++ /dev/null @@ -1,21612 +0,0 @@ -{ - "contractName": "ERC721BasicTokenMock", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "_interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "getApproved", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "InterfaceId_ERC165", - "outputs": [ - { - "name": "", - "type": "bytes4" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "exists", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "ownerOf", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_approved", - "type": "bool" - } - ], - "name": "setApprovalForAll", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_tokenId", - "type": "uint256" - }, - { - "name": "_data", - "type": "bytes" - } - ], - "name": "safeTransferFrom", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "testint", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - }, - { - "name": "_operator", - "type": "address" - } - ], - "name": "isApprovedForAll", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_from", - "type": "address" - }, - { - "indexed": false, - "name": "_to", - "type": "address" - }, - { - "indexed": false, - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_owner", - "type": "address" - }, - { - "indexed": false, - "name": "_approved", - "type": "address" - }, - { - "indexed": false, - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_owner", - "type": "address" - }, - { - "indexed": false, - "name": "_operator", - "type": "address" - }, - { - "indexed": false, - "name": "_approved", - "type": "bool" - } - ], - "name": "ApprovalForAll", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "mint", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_tokenId", - "type": "uint256" - } - ], - "name": "burn", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"_interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"InterfaceId_ERC165\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"exists\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"testint\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_approved\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_operator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"approve(address,uint256)\":{\"details\":\"Approves another address to transfer the given token ID\\r The zero address indicates there is no approved address.\\r There can only be one approved address per token at a given time.\\r Can only be called by the token owner or an approved operator.\\r\",\"params\":{\"_to\":\"address to be approved for the given token ID\\r\",\"_tokenId\":\"uint256 ID of the token to be approved\\r\"}},\"balanceOf(address)\":{\"details\":\"Gets the balance of the specified address\\r\",\"params\":{\"_owner\":\"address to query the balance of\\r\"},\"return\":\"uint256 representing the amount owned by the passed address\\r\"},\"exists(uint256)\":{\"details\":\"Returns whether the specified token exists\\r\",\"params\":{\"_tokenId\":\"uint256 ID of the token to query the existence of\\r\"},\"return\":\"whether the token exists\\r\"},\"getApproved(uint256)\":{\"details\":\"Gets the approved address for a token ID, or zero if no address set\\r\",\"params\":{\"_tokenId\":\"uint256 ID of the token to query the approval of\\r\"},\"return\":\"address currently approved for the given token ID\\r\"},\"isApprovedForAll(address,address)\":{\"details\":\"Tells whether an operator is approved by a given owner\\r\",\"params\":{\"_operator\":\"operator address which you want to query the approval of\\r\",\"_owner\":\"owner address which you want to query the approval of\\r\"},\"return\":\"bool whether the given operator is approved by the given owner\\r\"},\"ownerOf(uint256)\":{\"details\":\"Gets the owner of the specified token ID\\r\",\"params\":{\"_tokenId\":\"uint256 ID of the token to query the owner of\\r\"},\"return\":\"owner address currently marked as the owner of the given token ID\\r\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers the ownership of a given token ID to another address\\r If the target address is a contract, it must implement `onERC721Received`,\\r which is called upon a safe transfer, and return the magic value\\r `bytes4(keccak256(\\\"onERC721Received(address,uint256,bytes)\\\"))`; otherwise,\\r the transfer is reverted.\\r * Requires the msg sender to be the owner, approved, or operator\\r\",\"params\":{\"_from\":\"current owner of the token\\r\",\"_to\":\"address to receive the ownership of the given token ID\\r\",\"_tokenId\":\"uint256 ID of the token to be transferred\\r\"}},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers the ownership of a given token ID to another address\\r If the target address is a contract, it must implement `onERC721Received`,\\r which is called upon a safe transfer, and return the magic value\\r `bytes4(keccak256(\\\"onERC721Received(address,uint256,bytes)\\\"))`; otherwise,\\r the transfer is reverted.\\r Requires the msg sender to be the owner, approved, or operator\\r\",\"params\":{\"_data\":\"bytes data to send along with a safe transfer check\\r\",\"_from\":\"current owner of the token\\r\",\"_to\":\"address to receive the ownership of the given token ID\\r\",\"_tokenId\":\"uint256 ID of the token to be transferred\\r\"}},\"setApprovalForAll(address,bool)\":{\"details\":\"Sets or unsets the approval of a given operator\\r An operator is allowed to transfer all tokens of the sender on their behalf\\r\",\"params\":{\"_approved\":\"representing the status of the approval to be set\\r\",\"_to\":\"operator address to set the approval\\r\"}},\"supportsInterface(bytes4)\":{\"details\":\"implement supportsInterface(bytes4) using a lookup table\\r\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers the ownership of a given token ID to another address\\r Usage of this method is discouraged, use `safeTransferFrom` whenever possible\\r Requires the msg sender to be the owner, approved, or operator\\r\",\"params\":{\"_from\":\"current owner of the token\\r\",\"_to\":\"address to receive the ownership of the given token ID\\r\",\"_tokenId\":\"uint256 ID of the token to be transferred\\r\"}}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":\"ERC721BasicTokenMock\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":{\"keccak256\":\"0x4dd046a190602871aa9743a94149789c1e14b14f609c68d0f34d72e19bd690ce\",\"urls\":[\"bzzr://ea591dfb88f3591fe4344b7e665024c5aa3e8fb758a0409db79b1885a996b825\",\"dweb:/ipfs/QmXrwJ2TTXMWHBQxuLCqrj96gfh5HCHK57JsCEcXJ84t6z\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", - "bytecode": "0x60806040526100367f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b0361009f16565b6100687f80ac58cd000000000000000000000000000000000000000000000000000000006001600160e01b0361009f16565b61009a7f4f558e79000000000000000000000000000000000000000000000000000000006001600160e01b0361009f16565b61010b565b7fffffffff0000000000000000000000000000000000000000000000000000000080821614156100ce57600080fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152602081905260409020805460ff19166001179055565b610bb78061011a6000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c806342966c6811610097578063a22cb46511610066578063a22cb465146102e8578063b88d4fde14610316578063e701c464146103dc578063e985e9c5146103e4576100f5565b806342966c68146102595780634f558e79146102765780636352211e1461029357806370a08231146102b0576100f5565b806319fa8f50116100d357806319fa8f501461019c57806323b872dd146101c157806340c10f19146101f757806342842e0e14610223576100f5565b806301ffc9a7146100fa578063081812fc14610135578063095ea7b31461016e575b600080fd5b6101216004803603602081101561011057600080fd5b50356001600160e01b031916610412565b604080519115158252519081900360200190f35b6101526004803603602081101561014b57600080fd5b5035610431565b604080516001600160a01b039092168252519081900360200190f35b61019a6004803603604081101561018457600080fd5b506001600160a01b03813516906020013561044c565b005b6101a4610512565b604080516001600160e01b03199092168252519081900360200190f35b61019a600480360360608110156101d757600080fd5b506001600160a01b0381358116916020810135909116906040013561051d565b61019a6004803603604081101561020d57600080fd5b506001600160a01b0381351690602001356105c5565b61019a6004803603606081101561023957600080fd5b506001600160a01b038135811691602081013590911690604001356105d3565b61019a6004803603602081101561026f57600080fd5b5035610608565b6101216004803603602081101561028c57600080fd5b503561061d565b610152600480360360208110156102a957600080fd5b503561063a565b6102d6600480360360208110156102c657600080fd5b50356001600160a01b0316610662565b60408051918252519081900360200190f35b61019a600480360360408110156102fe57600080fd5b506001600160a01b0381351690602001351515610693565b61019a6004803603608081101561032c57600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561036757600080fd5b82018360208201111561037957600080fd5b8035906020019184600183028401116401000000008311171561039b57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061071e945050505050565b6102d6610759565b610121600480360360408110156103fa57600080fd5b506001600160a01b038135811691602001351661075f565b6001600160e01b03191660009081526020819052604090205460ff1690565b6000908152600260205260409020546001600160a01b031690565b60006104578261063a565b9050806001600160a01b0316836001600160a01b0316141561047857600080fd5b336001600160a01b03821614806104945750610494813361075f565b61049d57600080fd5b60008281526002602090815260409182902080546001600160a01b038088166001600160a01b03199092168217909255835191851682529181019190915280820184905290517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259181900360600190a1505050565b6301ffc9a760e01b81565b80610528338261078d565b61053157600080fd5b6001600160a01b03841661054457600080fd5b6001600160a01b03831661055757600080fd5b61056184836107ec565b61056b848361084e565b61057583836108d7565b604080516001600160a01b0380871682528516602082015280820184905290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a150505050565b6105cf828261095a565b5050565b806105de338261078d565b6105e757600080fd5b6106028484846040518060200160405280600081525061071e565b50505050565b61061a6106148261063a565b826109c4565b50565b6000908152600160205260409020546001600160a01b0316151590565b6000818152600160205260408120546001600160a01b03168061065c57600080fd5b92915050565b60006001600160a01b03821661067757600080fd5b506001600160a01b031660009081526003602052604090205490565b6001600160a01b0382163314156106a957600080fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805486151560ff19909116811790915581519485529184019290925282820152517f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319181900360600190a15050565b81610729338261078d565b61073257600080fd5b61073d85858561051d565b61074985858585610a25565b61075257600080fd5b5050505050565b60055481565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000806107998361063a565b9050806001600160a01b0316846001600160a01b031614806107d45750836001600160a01b03166107c984610431565b6001600160a01b0316145b806107e457506107e4818561075f565b949350505050565b816001600160a01b03166107ff8261063a565b6001600160a01b03161461081257600080fd5b6000818152600260205260409020546001600160a01b0316156105cf57600090815260026020526040902080546001600160a01b031916905550565b816001600160a01b03166108618261063a565b6001600160a01b03161461087457600080fd5b6001600160a01b03821660009081526003602052604090205461089e90600163ffffffff610b4e16565b6001600160a01b0390921660009081526003602090815260408083209490945591815260019091522080546001600160a01b0319169055565b6000818152600160205260409020546001600160a01b0316156108f957600080fd5b600081815260016020818152604080842080546001600160a01b0319166001600160a01b038816908117909155845260039091529091205461093a91610b63565b6001600160a01b0390921660009081526003602052604090209190915550565b6001600160a01b03821661096d57600080fd5b61097782826108d7565b60408051600081526001600160a01b038416602082015280820183905290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a15050565b6109ce82826107ec565b6109d8828261084e565b604080516001600160a01b03841681526000602082015280820183905290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a15050565b6000610a39846001600160a01b0316610b7c565b610a45575060016107e4565b60405163785cf2dd60e11b81526001600160a01b0386811660048301908152602483018690526060604484019081528551606485015285516000949389169363f0b9e5ba938b938a938a936084019060208501908083838d5b83811015610ab6578181015183820152602001610a9e565b50505050905090810190601f168015610ae35780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b158015610b0457600080fd5b505af1158015610b18573d6000803e3d6000fd5b505050506040513d6020811015610b2e57600080fd5b50516001600160e01b03191663785cf2dd60e11b14915050949350505050565b600082821115610b5d57600080fd5b50900390565b600082820183811015610b7557600080fd5b9392505050565b3b15159056fea265627a7a72305820f2d7895c160c1b744d766fce345dc3b0176d1fd852d183f00566d42e896bb00864736f6c63430005090032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c806342966c6811610097578063a22cb46511610066578063a22cb465146102e8578063b88d4fde14610316578063e701c464146103dc578063e985e9c5146103e4576100f5565b806342966c68146102595780634f558e79146102765780636352211e1461029357806370a08231146102b0576100f5565b806319fa8f50116100d357806319fa8f501461019c57806323b872dd146101c157806340c10f19146101f757806342842e0e14610223576100f5565b806301ffc9a7146100fa578063081812fc14610135578063095ea7b31461016e575b600080fd5b6101216004803603602081101561011057600080fd5b50356001600160e01b031916610412565b604080519115158252519081900360200190f35b6101526004803603602081101561014b57600080fd5b5035610431565b604080516001600160a01b039092168252519081900360200190f35b61019a6004803603604081101561018457600080fd5b506001600160a01b03813516906020013561044c565b005b6101a4610512565b604080516001600160e01b03199092168252519081900360200190f35b61019a600480360360608110156101d757600080fd5b506001600160a01b0381358116916020810135909116906040013561051d565b61019a6004803603604081101561020d57600080fd5b506001600160a01b0381351690602001356105c5565b61019a6004803603606081101561023957600080fd5b506001600160a01b038135811691602081013590911690604001356105d3565b61019a6004803603602081101561026f57600080fd5b5035610608565b6101216004803603602081101561028c57600080fd5b503561061d565b610152600480360360208110156102a957600080fd5b503561063a565b6102d6600480360360208110156102c657600080fd5b50356001600160a01b0316610662565b60408051918252519081900360200190f35b61019a600480360360408110156102fe57600080fd5b506001600160a01b0381351690602001351515610693565b61019a6004803603608081101561032c57600080fd5b6001600160a01b0382358116926020810135909116916040820135919081019060808101606082013564010000000081111561036757600080fd5b82018360208201111561037957600080fd5b8035906020019184600183028401116401000000008311171561039b57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061071e945050505050565b6102d6610759565b610121600480360360408110156103fa57600080fd5b506001600160a01b038135811691602001351661075f565b6001600160e01b03191660009081526020819052604090205460ff1690565b6000908152600260205260409020546001600160a01b031690565b60006104578261063a565b9050806001600160a01b0316836001600160a01b0316141561047857600080fd5b336001600160a01b03821614806104945750610494813361075f565b61049d57600080fd5b60008281526002602090815260409182902080546001600160a01b038088166001600160a01b03199092168217909255835191851682529181019190915280820184905290517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259181900360600190a1505050565b6301ffc9a760e01b81565b80610528338261078d565b61053157600080fd5b6001600160a01b03841661054457600080fd5b6001600160a01b03831661055757600080fd5b61056184836107ec565b61056b848361084e565b61057583836108d7565b604080516001600160a01b0380871682528516602082015280820184905290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a150505050565b6105cf828261095a565b5050565b806105de338261078d565b6105e757600080fd5b6106028484846040518060200160405280600081525061071e565b50505050565b61061a6106148261063a565b826109c4565b50565b6000908152600160205260409020546001600160a01b0316151590565b6000818152600160205260408120546001600160a01b03168061065c57600080fd5b92915050565b60006001600160a01b03821661067757600080fd5b506001600160a01b031660009081526003602052604090205490565b6001600160a01b0382163314156106a957600080fd5b3360008181526004602090815260408083206001600160a01b03871680855290835292819020805486151560ff19909116811790915581519485529184019290925282820152517f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c319181900360600190a15050565b81610729338261078d565b61073257600080fd5b61073d85858561051d565b61074985858585610a25565b61075257600080fd5b5050505050565b60055481565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000806107998361063a565b9050806001600160a01b0316846001600160a01b031614806107d45750836001600160a01b03166107c984610431565b6001600160a01b0316145b806107e457506107e4818561075f565b949350505050565b816001600160a01b03166107ff8261063a565b6001600160a01b03161461081257600080fd5b6000818152600260205260409020546001600160a01b0316156105cf57600090815260026020526040902080546001600160a01b031916905550565b816001600160a01b03166108618261063a565b6001600160a01b03161461087457600080fd5b6001600160a01b03821660009081526003602052604090205461089e90600163ffffffff610b4e16565b6001600160a01b0390921660009081526003602090815260408083209490945591815260019091522080546001600160a01b0319169055565b6000818152600160205260409020546001600160a01b0316156108f957600080fd5b600081815260016020818152604080842080546001600160a01b0319166001600160a01b038816908117909155845260039091529091205461093a91610b63565b6001600160a01b0390921660009081526003602052604090209190915550565b6001600160a01b03821661096d57600080fd5b61097782826108d7565b60408051600081526001600160a01b038416602082015280820183905290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a15050565b6109ce82826107ec565b6109d8828261084e565b604080516001600160a01b03841681526000602082015280820183905290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a15050565b6000610a39846001600160a01b0316610b7c565b610a45575060016107e4565b60405163785cf2dd60e11b81526001600160a01b0386811660048301908152602483018690526060604484019081528551606485015285516000949389169363f0b9e5ba938b938a938a936084019060208501908083838d5b83811015610ab6578181015183820152602001610a9e565b50505050905090810190601f168015610ae35780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b158015610b0457600080fd5b505af1158015610b18573d6000803e3d6000fd5b505050506040513d6020811015610b2e57600080fd5b50516001600160e01b03191663785cf2dd60e11b14915050949350505050565b600082821115610b5d57600080fd5b50900390565b600082820183811015610b7557600080fd5b9392505050565b3b15159056fea265627a7a72305820f2d7895c160c1b744d766fce345dc3b0176d1fd852d183f00566d42e896bb00864736f6c63430005090032", - "sourceMap": "19048:247:8:-;;;3645:38;3664:18;-1:-1:-1;;;;;3645:18:8;:38;:::i;:::-;9226;9245:18;-1:-1:-1;;;;;9226:18:8;:38;:::i;:::-;9271:44;9290:24;-1:-1:-1;;;;;9271:18:8;:44;:::i;:::-;19048:247;;4000:161;4081:26;;;;;;4073:35;;;;;;4115:33;;:19;:33;;;;;;;;;;:40;;-1:-1:-1;;4115:40:8;4151:4;4115:40;;;4000:161::o;19048:247::-;;;;;;;", - "deployedSourceMap": "19048:247:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19048:247:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3777:148;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3777:148:8;-1:-1:-1;;;;;;3777:148:8;;:::i;:::-;;;;;;;;;;;;;;;;;;11314:113;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;11314:113:8;;:::i;:::-;;;;-1:-1:-1;;;;;11314:113:8;;;;;;;;;;;;;;10796:284;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;10796:284:8;;;;;;;;:::i;:::-;;3208:54;;;:::i;:::-;;;;-1:-1:-1;;;;;;3208:54:8;;;;;;;;;;;;;;12846:358;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12846:358:8;;;;;;;;;;;;;;;;;:::i;19103:91::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;19103:91:8;;;;;;;;:::i;13826:235::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;13826:235:8;;;;;;;;;;;;;;;;;:::i;19200:92::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;19200:92:8;;:::i;10238:143::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10238:143:8;;:::i;9885:168::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9885:168:8;;:::i;9520:145::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9520:145:8;-1:-1:-1;;;;;9520:145:8;;:::i;:::-;;;;;;;;;;;;;;;;11715:209;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;11715:209:8;;;;;;;;;;:::i;14749:321::-;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;14749:321:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;14749:321:8;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;14749:321:8;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;14749:321:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;14749:321:8;;-1:-1:-1;14749:321:8;;-1:-1:-1;;;;;14749:321:8:i;8542:19::-;;;:::i;12241:177::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;12241:177:8;;;;;;;;;;:::i;3777:148::-;-1:-1:-1;;;;;;3886:33:8;3863:4;3886:33;;;;;;;;;;;;;;3777:148::o;11314:113::-;11374:7;11397:24;;;:14;:24;;;;;;-1:-1:-1;;;;;11397:24:8;;11314:113::o;10796:284::-;10858:13;10874:17;10882:8;10874:7;:17::i;:::-;10858:33;;10913:5;-1:-1:-1;;;;;10906:12:8;:3;-1:-1:-1;;;;;10906:12:8;;;10898:21;;;;;;10934:10;-1:-1:-1;;;;;10934:19:8;;;;:58;;;10957:35;10974:5;10981:10;10957:16;:35::i;:::-;10926:67;;;;;;11002:24;;;;:14;:24;;;;;;;;;:30;;-1:-1:-1;;;;;11002:30:8;;;-1:-1:-1;;;;;;11002:30:8;;;;;;;;11044;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10796:284;;;:::o;3208:54::-;-1:-1:-1;;;3208:54:8;:::o;12846:358::-;12963:8;9056:39;9074:10;9086:8;9056:17;:39::i;:::-;9048:48;;;;;;-1:-1:-1;;;;;12991:19:8;;12983:28;;;;;;-1:-1:-1;;;;;13026:17:8;;13018:26;;;;;;13053:30;13067:5;13074:8;13053:13;:30::i;:::-;13090:32;13106:5;13113:8;13090:15;:32::i;:::-;13129:25;13140:3;13145:8;13129:10;:25::i;:::-;13168:30;;;-1:-1:-1;;;;;13168:30:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;12846:358;;;;:::o;19103:91::-;19162:26;19174:3;19179:8;19162:11;:26::i;:::-;19103:91;;:::o;13826:235::-;13947:8;9056:39;9074:10;9086:8;9056:17;:39::i;:::-;9048:48;;;;;;14013:42;14030:5;14037:3;14042:8;14013:42;;;;;;;;;;;;:16;:42::i;:::-;13826:235;;;;:::o;19200:92::-;19246:40;19258:17;19266:8;19258:7;:17::i;:::-;19277:8;19246:11;:40::i;:::-;19200:92;:::o;10238:143::-;10293:4;10322:20;;;:10;:20;;;;;;-1:-1:-1;;;;;10322:20:8;10356:19;;;10238:143::o;9885:168::-;9941:7;9973:20;;;:10;:20;;;;;;-1:-1:-1;;;;;9973:20:8;10008:19;10000:28;;;;;;10042:5;9885:168;-1:-1:-1;;9885:168:8:o;9520:145::-;9576:7;-1:-1:-1;;;;;9600:20:8;;9592:29;;;;;;-1:-1:-1;;;;;;9635:24:8;;;;;:16;:24;;;;;;;9520:145::o;11715:209::-;-1:-1:-1;;;;;11793:17:8;;11800:10;11793:17;;11785:26;;;;;;11836:10;11818:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;11818:34:8;;;;;;;;;;;;:46;;;;;-1:-1:-1;;11818:46:8;;;;;;;;11876:42;;;;;;;;;;;;;;;;;;;;;;;;;;11715:209;;:::o;14749:321::-;14895:8;9056:39;9074:10;9086:8;9056:17;:39::i;:::-;9048:48;;;;;;14915:34;14928:5;14935:3;14940:8;14915:12;:34::i;:::-;15010:53;15035:5;15042:3;15047:8;15057:5;15010:24;:53::i;:::-;15002:62;;;;;;14749:321;;;;;:::o;8542:19::-;;;;:::o;12241:177::-;-1:-1:-1;;;;;12376:25:8;;;12353:4;12376:25;;;:17;:25;;;;;;;;:36;;;;;;;;;;;;;;;12241:177::o;15426:455::-;15542:4;15558:13;15574:17;15582:8;15574:7;:17::i;:::-;15558:33;;15775:5;-1:-1:-1;;;;;15763:17:8;:8;-1:-1:-1;;;;;15763:17:8;;:61;;;;15816:8;-1:-1:-1;;;;;15791:33:8;:21;15803:8;15791:11;:21::i;:::-;-1:-1:-1;;;;;15791:33:8;;15763:61;:105;;;;15835:33;15852:5;15859:8;15835:16;:33::i;:::-;15747:128;15426:455;-1:-1:-1;;;;15426:455:8:o;16966:219::-;17068:6;-1:-1:-1;;;;;17047:27:8;:17;17055:8;17047:7;:17::i;:::-;-1:-1:-1;;;;;17047:27:8;;17039:36;;;;;;17122:1;17086:24;;;:14;:24;;;;;;-1:-1:-1;;;;;17086:24:8;:38;17082:98;;17170:1;17135:24;;;:14;:24;;;;;:37;;-1:-1:-1;;;;;;17135:37:8;;;-1:-1:-1;16966:219:8:o;17949:218::-;18052:5;-1:-1:-1;;;;;18031:26:8;:17;18039:8;18031:7;:17::i;:::-;-1:-1:-1;;;;;18031:26:8;;18023:35;;;;;;-1:-1:-1;;;;;18091:23:8;;;;;;:16;:23;;;;;;:30;;18119:1;18091:30;:27;:30;:::i;:::-;-1:-1:-1;;;;;18065:23:8;;;;;;;:16;:23;;;;;;;;:56;;;;18128:20;;;:10;:20;;;;:33;;-1:-1:-1;;;;;;18128:33:8;;;17949:218::o;17455:208::-;17562:1;17530:20;;;:10;:20;;;;;;-1:-1:-1;;;;;17530:20:8;:34;17522:43;;;;;;17572:20;;;;:10;:20;;;;;;;;:26;;-1:-1:-1;;;;;;17572:26:8;-1:-1:-1;;;;;17572:26:8;;;;;;;;17629:21;;:16;:21;;;;;;;:28;;:25;:28::i;:::-;-1:-1:-1;;;;;17605:21:8;;;;;;;:16;:21;;;;;:52;;;;-1:-1:-1;17455:208:8:o;16138:173::-;-1:-1:-1;;;;;16208:17:8;;16200:26;;;;;;16233:25;16244:3;16249:8;16233:10;:25::i;:::-;16270:35;;;16287:1;16270:35;;-1:-1:-1;;;;;16270:35:8;;;;;;;;;;;;;;;;;;;;;;;16138:173;;:::o;16504:192::-;16569:31;16583:6;16591:8;16569:13;:31::i;:::-;16607:33;16623:6;16631:8;16607:15;:33::i;:::-;16652:38;;;-1:-1:-1;;;;;16652:38:8;;;;16677:1;16652:38;;;;;;;;;;;;;;;;;;;;;16504:192;;:::o;18684:357::-;18837:4;18858:16;:3;-1:-1:-1;;;;;18858:14:8;;:16::i;:::-;18853:51;;-1:-1:-1;18892:4:8;18885:11;;18853:51;18926:68;;-1:-1:-1;;;18926:68:8;;-1:-1:-1;;;;;18926:68:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18910:13;;18926:36;;;;;;18971:5;;18978:8;;18988:5;;18926:68;;;;;;;;;;18910:13;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;18926:68:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18926:68:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18926:68:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;18926:68:8;-1:-1:-1;;;;;;19009:25:8;-1:-1:-1;;;19009:25:8;;-1:-1:-1;;18684:357:8;;;;;;:::o;431:150:22:-;489:7;522:1;517;:6;;509:15;;;;;;-1:-1:-1;547:5:22;;;431:150::o;589:::-;647:7;679:5;;;703:6;;;;695:15;;;;;;730:1;589:150;-1:-1:-1;;;589:150:22:o;1949:587:8:-;2490:17;2522:8;;;1949:587::o", - "source": "pragma solidity >=0.5.0 < 0.6.0;\r\nimport '../../dao/oz/SafeMath.sol';\r\n\r\n/**\r\n * @title SafeMath\r\n * @dev Math operations with safety checks that throw on error\r\n */\r\n//library SafeMath {\r\n//\r\n// /**\r\n// * @dev Multiplies two numbers, throws on overflow.\r\n// */\r\n// function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// // Gas optimization: this is cheaper than asserting 'a' not being zero, but the\r\n// // benefit is lost if 'b' is also tested.\r\n// // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\r\n// if (a == 0) {\r\n// return 0;\r\n// }\r\n//\r\n// c = a * b;\r\n// assert(c / a == b);\r\n// return c;\r\n// }\r\n//\r\n// /**\r\n// * @dev Integer division of two numbers, truncating the quotient.\r\n// */\r\n// function div(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// // assert(b > 0); // Solidity automatically throws when dividing by 0\r\n// // uint256 c = a / b;\r\n// // assert(a == b * c + a % b); // There is no case in which this doesn't hold\r\n// return a / b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).\r\n// */\r\n// function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// assert(b <= a);\r\n// return a - b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Adds two numbers, throws on overflow.\r\n// */\r\n// function add(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// c = a + b;\r\n// assert(c >= a);\r\n// return c;\r\n// }\r\n//}\r\n\r\n/**\r\n * Utility library of inline functions on addresses\r\n */\r\nlibrary AddressUtils {\r\n\r\n /**\r\n * Returns whether the target address is a contract\r\n * @dev This function will return false if invoked during the constructor of a contract,\r\n * as the code is not actually created until after the constructor finishes.\r\n * @param addr address to check\r\n * @return whether the target address is a contract\r\n */\r\n function isContract(address addr) internal view returns (bool) {\r\n uint256 size;\r\n // XXX Currently there is no better way to check if there is a contract in an address\r\n // than to check the size of the code at that address.\r\n // See https://ethereum.stackexchange.com/a/14016/36603\r\n // for more details about how this works.\r\n // TODO Check this again before the Serenity release, because all addresses will be\r\n // contracts then.\r\n // solium-disable-next-line security/no-inline-assembly\r\n assembly { size := extcodesize(addr) }\r\n return size > 0;\r\n }\r\n\r\n}\r\n\r\n/**\r\n * @title ERC165\r\n * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r\n */\r\ninterface ERC165 {\r\n\r\n /**\r\n * @notice Query if a contract implements an interface\r\n * @param _interfaceId The interface identifier, as specified in ERC-165\r\n * @dev Interface identification is specified in ERC-165. This function\r\n * uses less than 30,000 gas.\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool);\r\n}\r\n\r\n\r\n/**\r\n * @title SupportsInterfaceWithLookup\r\n * @author Matt Condon (@shrugs)\r\n * @dev Implements ERC165 using a lookup table.\r\n */\r\ncontract SupportsInterfaceWithLookup is ERC165 {\r\n bytes4 public constant InterfaceId_ERC165 = 0x01ffc9a7;\r\n /**\r\n * 0x01ffc9a7 ===\r\n * bytes4(keccak256('supportsInterface(bytes4)'))\r\n */\r\n\r\n /**\r\n * @dev a mapping of interface id to whether or not it's supported\r\n */\r\n mapping(bytes4 => bool) internal supportedInterfaces;\r\n\r\n /**\r\n * @dev A contract implementing SupportsInterfaceWithLookup\r\n * implement ERC165 itself\r\n */\r\n constructor()\r\n public\r\n {\r\n _registerInterface(InterfaceId_ERC165);\r\n }\r\n\r\n /**\r\n * @dev implement supportsInterface(bytes4) using a lookup table\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool)\r\n {\r\n return supportedInterfaces[_interfaceId];\r\n }\r\n\r\n /**\r\n * @dev private method for registering an interface\r\n */\r\n function _registerInterface(bytes4 _interfaceId)\r\n internal\r\n {\r\n require(_interfaceId != 0xffffffff);\r\n supportedInterfaces[_interfaceId] = true;\r\n }\r\n}\r\n\r\n/**\r\n * @title ERC721 token receiver interface\r\n * @dev Interface for any contract that wants to support safeTransfers\r\n * from ERC721 asset contracts.\r\n */\r\ncontract ERC721Receiver {\r\n /**\r\n * @dev Magic value to be returned upon successful reception of an NFT\r\n * Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`,\r\n * which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n */\r\n bytes4 internal constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n /**\r\n * @notice Handle the receipt of an NFT\r\n * @dev The ERC721 smart contract calls this function on the recipient\r\n * after a `safetransfer`. This function MAY throw to revert and reject the\r\n * transfer. This function MUST use 50,000 gas or less. Return of other\r\n * than the magic value MUST result in the transaction being reverted.\r\n * Note: the contract address is always the message sender.\r\n * @param _from The sending address\r\n * @param _tokenId The NFT identifier which is being transfered\r\n * @param _data Additional data with no specified format\r\n * @return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n */\r\n function onERC721Received(\r\n address _from,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n returns(bytes4);\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic interface\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721Basic is ERC165 {\r\n event Transfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n );\r\n event Approval(\r\n address _owner,\r\n address _approved,\r\n uint256 _tokenId\r\n );\r\n event ApprovalForAll(\r\n address _owner,\r\n address _operator,\r\n bool _approved\r\n );\r\n\r\n function balanceOf(address _owner) public view returns (uint256 _balance);\r\n function ownerOf(uint256 _tokenId) public view returns (address _owner);\r\n function exists(uint256 _tokenId) public view returns (bool _exists);\r\n\r\n function approve(address _to, uint256 _tokenId) public;\r\n function getApproved(uint256 _tokenId)\r\n public view returns (address _operator);\r\n\r\n function setApprovalForAll(address _operator, bool _approved) public;\r\n function isApprovedForAll(address _owner, address _operator)\r\n public view returns (bool);\r\n\r\n function transferFrom(address _from, address _to, uint256 _tokenId) public;\r\n function safeTransferFrom(address _from, address _to, uint256 _tokenId)\r\n public;\r\n\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public;\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic implementation\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721BasicToken is SupportsInterfaceWithLookup, ERC721Basic {\r\n\r\n bytes4 private constant InterfaceId_ERC721 = 0x80ac58cd;\r\n /*\r\n * 0x80ac58cd ===\r\n * bytes4(keccak256('balanceOf(address)')) ^\r\n * bytes4(keccak256('ownerOf(uint256)')) ^\r\n * bytes4(keccak256('approve(address,uint256)')) ^\r\n * bytes4(keccak256('getApproved(uint256)')) ^\r\n * bytes4(keccak256('setApprovalForAll(address,bool)')) ^\r\n * bytes4(keccak256('isApprovedForAll(address,address)')) ^\r\n * bytes4(keccak256('transferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)'))\r\n */\r\n\r\n bytes4 private constant InterfaceId_ERC721Exists = 0x4f558e79;\r\n /*\r\n * 0x4f558e79 ===\r\n * bytes4(keccak256('exists(uint256)'))\r\n */\r\n\r\n using SafeMath for uint256;\r\n using AddressUtils for address;\r\n\r\n // Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n // which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n bytes4 private constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n // Mapping from token ID to owner\r\n mapping (uint256 => address) internal tokenOwner;\r\n\r\n // Mapping from token ID to approved address\r\n mapping (uint256 => address) internal tokenApprovals;\r\n\r\n // Mapping from owner to number of owned token\r\n mapping (address => uint256) internal ownedTokensCount;\r\n\r\n // Mapping from owner to operator approvals\r\n mapping (address => mapping (address => bool)) internal operatorApprovals;\r\n\r\n\r\n uint public testint;\r\n /**\r\n * @dev Guarantees msg.sender is owner of the given token\r\n * @param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r\n */\r\n modifier onlyOwnerOf(uint256 _tokenId) {\r\n require(ownerOf(_tokenId) == msg.sender);\r\n _;\r\n }\r\n\r\n /**\r\n * @dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n * @param _tokenId uint256 ID of the token to validate\r\n */\r\n modifier canTransfer(uint256 _tokenId) {\r\n require(isApprovedOrOwner(msg.sender, _tokenId));\r\n _;\r\n }\r\n\r\n constructor()\r\n public\r\n {\r\n // register the supported interfaces to conform to ERC721 via ERC165\r\n _registerInterface(InterfaceId_ERC721);\r\n _registerInterface(InterfaceId_ERC721Exists);\r\n }\r\n\r\n /**\r\n * @dev Gets the balance of the specified address\r\n * @param _owner address to query the balance of\r\n * @return uint256 representing the amount owned by the passed address\r\n */\r\n function balanceOf(address _owner) public view returns (uint256) {\r\n require(_owner != address(0));\r\n return ownedTokensCount[_owner];\r\n }\r\n\r\n /**\r\n * @dev Gets the owner of the specified token ID\r\n * @param _tokenId uint256 ID of the token to query the owner of\r\n * @return owner address currently marked as the owner of the given token ID\r\n */\r\n function ownerOf(uint256 _tokenId) public view returns (address) {\r\n address owner = tokenOwner[_tokenId];\r\n require(owner != address(0));\r\n return owner;\r\n }\r\n\r\n /**\r\n * @dev Returns whether the specified token exists\r\n * @param _tokenId uint256 ID of the token to query the existence of\r\n * @return whether the token exists\r\n */\r\n function exists(uint256 _tokenId) public view returns (bool) {\r\n address owner = tokenOwner[_tokenId];\r\n return owner != address(0);\r\n }\r\n\r\n /**\r\n * @dev Approves another address to transfer the given token ID\r\n * The zero address indicates there is no approved address.\r\n * There can only be one approved address per token at a given time.\r\n * Can only be called by the token owner or an approved operator.\r\n * @param _to address to be approved for the given token ID\r\n * @param _tokenId uint256 ID of the token to be approved\r\n */\r\n function approve(address _to, uint256 _tokenId) public {\r\n address owner = ownerOf(_tokenId);\r\n require(_to != owner);\r\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender));\r\n\r\n tokenApprovals[_tokenId] = _to;\r\n emit Approval(owner, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Gets the approved address for a token ID, or zero if no address set\r\n * @param _tokenId uint256 ID of the token to query the approval of\r\n * @return address currently approved for the given token ID\r\n */\r\n function getApproved(uint256 _tokenId) public view returns (address) {\r\n return tokenApprovals[_tokenId];\r\n }\r\n\r\n /**\r\n * @dev Sets or unsets the approval of a given operator\r\n * An operator is allowed to transfer all tokens of the sender on their behalf\r\n * @param _to operator address to set the approval\r\n * @param _approved representing the status of the approval to be set\r\n */\r\n function setApprovalForAll(address _to, bool _approved) public {\r\n require(_to != msg.sender);\r\n operatorApprovals[msg.sender][_to] = _approved;\r\n emit ApprovalForAll(msg.sender, _to, _approved);\r\n }\r\n\r\n /**\r\n * @dev Tells whether an operator is approved by a given owner\r\n * @param _owner owner address which you want to query the approval of\r\n * @param _operator operator address which you want to query the approval of\r\n * @return bool whether the given operator is approved by the given owner\r\n */\r\n function isApprovedForAll(\r\n address _owner,\r\n address _operator\r\n )\r\n public\r\n view\r\n returns (bool)\r\n {\r\n return operatorApprovals[_owner][_operator];\r\n }\r\n\r\n /**\r\n * @dev Transfers the ownership of a given token ID to another address\r\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function transferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n require(_from != address(0));\r\n require(_to != address(0));\r\n\r\n clearApproval(_from, _tokenId);\r\n removeTokenFrom(_from, _tokenId);\r\n addTokenTo(_to, _tokenId);\r\n\r\n emit Transfer(_from, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n *\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n // solium-disable-next-line arg-overflow\r\n safeTransferFrom(_from, _to, _tokenId, \"\");\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes data to send along with a safe transfer check\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n transferFrom(_from, _to, _tokenId);\r\n // solium-disable-next-line arg-overflow\r\n require(checkAndCallSafeTransfer(_from, _to, _tokenId, _data));\r\n }\r\n\r\n /**\r\n * @dev Returns whether the given spender can transfer a given token ID\r\n * @param _spender address of the spender to query\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @return bool whether the msg.sender is approved for the given token ID,\r\n * is an operator of the owner, or is the owner of the token\r\n */\r\n function isApprovedOrOwner(\r\n address _spender,\r\n uint256 _tokenId\r\n )\r\n internal\r\n view\r\n returns (bool)\r\n {\r\n address owner = ownerOf(_tokenId);\r\n // Disable solium check because of\r\n // https://github.com/duaraghav8/Solium/issues/175\r\n // solium-disable-next-line operator-whitespace\r\n return (\r\n _spender == owner ||\r\n getApproved(_tokenId) == _spender ||\r\n isApprovedForAll(owner, _spender)\r\n );\r\n }\r\n\r\n /**\r\n * @dev Internal function to mint a new token\r\n * Reverts if the given token ID already exists\r\n * @param _to The address that will own the minted token\r\n * @param _tokenId uint256 ID of the token to be minted by the msg.sender\r\n */\r\n function _mint(address _to, uint256 _tokenId) internal {\r\n require(_to != address(0));\r\n addTokenTo(_to, _tokenId);\r\n emit Transfer(address(0), _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to burn a specific token\r\n * Reverts if the token does not exist\r\n * @param _tokenId uint256 ID of the token being burned by the msg.sender\r\n */\r\n function _burn(address _owner, uint256 _tokenId) internal {\r\n clearApproval(_owner, _tokenId);\r\n removeTokenFrom(_owner, _tokenId);\r\n emit Transfer(_owner, address(0), _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to clear current approval of a given token ID\r\n * Reverts if the given address is not indeed the owner of the token\r\n * @param _owner owner of the token\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function clearApproval(address _owner, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _owner);\r\n if (tokenApprovals[_tokenId] != address(0)) {\r\n tokenApprovals[_tokenId] = address(0);\r\n }\r\n }\r\n\r\n /**\r\n * @dev Internal function to add a token ID to the list of a given address\r\n * @param _to address representing the new owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r\n */\r\n function addTokenTo(address _to, uint256 _tokenId) internal {\r\n require(tokenOwner[_tokenId] == address(0));\r\n tokenOwner[_tokenId] = _to;\r\n ownedTokensCount[_to] = ownedTokensCount[_to].add(1);\r\n }\r\n\r\n /**\r\n * @dev Internal function to remove a token ID from the list of a given address\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r\n */\r\n function removeTokenFrom(address _from, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _from);\r\n ownedTokensCount[_from] = ownedTokensCount[_from].sub(1);\r\n tokenOwner[_tokenId] = address(0);\r\n }\r\n\r\n /**\r\n * @dev Internal function to invoke `onERC721Received` on a target address\r\n * The call is not executed if the target address is not a contract\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _to target address that will receive the tokens\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes optional data to send along with the call\r\n * @return whether the call correctly returned the expected magic value\r\n */\r\n function checkAndCallSafeTransfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n internal\r\n returns (bool)\r\n {\r\n if (!_to.isContract()) {\r\n return true;\r\n }\r\n bytes4 retval = ERC721Receiver(_to).onERC721Received(\r\n _from, _tokenId, _data);\r\n return (retval == ERC721_RECEIVED);\r\n }\r\n}\r\n\r\ncontract ERC721BasicTokenMock is ERC721BasicToken {\r\n function mint(address _to, uint256 _tokenId) public {\r\n super._mint(_to, _tokenId);\r\n }\r\n\r\n function burn(uint256 _tokenId) public {\r\n super._burn(ownerOf(_tokenId), _tokenId);\r\n }\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\inherited\\ERC721Basic.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", - "exportedSymbols": { - "AddressUtils": [ - 5009 - ], - "ERC165": [ - 5017 - ], - "ERC721Basic": [ - 5187 - ], - "ERC721BasicToken": [ - 5764 - ], - "ERC721BasicTokenMock": [ - 5797 - ], - "ERC721Receiver": [ - 5080 - ], - "SupportsInterfaceWithLookup": [ - 5065 - ] - }, - "id": 5798, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4991, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:8" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "../../dao/oz/SafeMath.sol", - "id": 4992, - "nodeType": "ImportDirective", - "scope": 5798, - "sourceUnit": 9858, - "src": "34:35:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "Utility library of inline functions on addresses\r", - "fullyImplemented": true, - "id": 5009, - "linearizedBaseContracts": [ - 5009 - ], - "name": "AddressUtils", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5007, - "nodeType": "Block", - "src": "2012:524:8", - "statements": [ - { - "assignments": [ - 5000 - ], - "declarations": [ - { - "constant": false, - "id": 5000, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 5007, - "src": "2019:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4999, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2019:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5001, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2019:12:8" - }, - { - "externalReferences": [ - { - "size": { - "declaration": 5000, - "isOffset": false, - "isSlot": false, - "src": "2482:4:8", - "valueSize": 1 - } - }, - { - "addr": { - "declaration": 4994, - "isOffset": false, - "isSlot": false, - "src": "2502:4:8", - "valueSize": 1 - } - } - ], - "id": 5002, - "nodeType": "InlineAssembly", - "operations": "{ size := extcodesize(addr) }", - "src": "2471:38:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5003, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5000, - "src": "2522:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5004, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2529:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2522:8:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4998, - "id": 5006, - "nodeType": "Return", - "src": "2515:15:8" - } - ] - }, - "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", - "id": 5008, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4994, - "name": "addr", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "1969:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1969:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1968:14:8" - }, - "returnParameters": { - "id": 4998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4997, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "2006:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4996, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2006:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2005:6:8" - }, - "scope": 5009, - "src": "1949:587:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "1590:951:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", - "fullyImplemented": false, - "id": 5017, - "linearizedBaseContracts": [ - 5017 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", - "id": 5016, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5012, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5011, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "2950:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5010, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "2950:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2949:21:8" - }, - "returnParameters": { - "id": 5015, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5014, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "3009:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5013, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3009:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3008:6:8" - }, - "scope": 5017, - "src": "2923:92:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 5798, - "src": "2643:375:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5018, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "3196:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5019, - "nodeType": "InheritanceSpecifier", - "src": "3196:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", - "fullyImplemented": true, - "id": 5065, - "linearizedBaseContracts": [ - 5065, - 5017 - ], - "name": "SupportsInterfaceWithLookup", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5022, - "name": "InterfaceId_ERC165", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3208:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5020, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3208:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 5021, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3252:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 5026, - "name": "supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3443:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 5025, - "keyType": { - "id": 5023, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3451:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "3443:23:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 5024, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3461:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 5033, - "nodeType": "Block", - "src": "3638:51:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5030, - "name": "InterfaceId_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5022, - "src": "3664:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5029, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "3645:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3645:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5032, - "nodeType": "ExpressionStatement", - "src": "3645:38:8" - } - ] - }, - "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", - "id": 5034, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5027, - "nodeType": "ParameterList", - "parameters": [], - "src": "3620:2:8" - }, - "returnParameters": { - "id": 5028, - "nodeType": "ParameterList", - "parameters": [], - "src": "3638:0:8" - }, - "scope": 5065, - "src": "3609:80:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5045, - "nodeType": "Block", - "src": "3872:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5041, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "3886:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5043, - "indexExpression": { - "argumentTypes": null, - "id": 5042, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5036, - "src": "3906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3886:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5040, - "id": 5044, - "nodeType": "Return", - "src": "3879:40:8" - } - ] - }, - "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", - "id": 5046, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5037, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5036, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3804:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5035, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3804:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3803:21:8" - }, - "returnParameters": { - "id": 5040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5039, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3863:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5038, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3863:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3862:6:8" - }, - "scope": 5065, - "src": "3777:148:8", - "stateMutability": "view", - "superFunction": 5016, - "visibility": "external" - }, - { - "body": { - "id": 5063, - "nodeType": "Block", - "src": "4066:95:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5052, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4081:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 5053, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4097:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "4081:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5051, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4073:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4073:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5056, - "nodeType": "ExpressionStatement", - "src": "4073:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5057, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "4115:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5059, - "indexExpression": { - "argumentTypes": null, - "id": 5058, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4135:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4115:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4151:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4115:40:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5062, - "nodeType": "ExpressionStatement", - "src": "4115:40:8" - } - ] - }, - "documentation": "@dev private method for registering an interface\r", - "id": 5064, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5049, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5048, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5064, - "src": "4028:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5047, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4028:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4027:21:8" - }, - "returnParameters": { - "id": 5050, - "nodeType": "ParameterList", - "parameters": [], - "src": "4066:0:8" - }, - "scope": 5065, - "src": "4000:161:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "3156:1008:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", - "fullyImplemented": false, - "id": 5080, - "linearizedBaseContracts": [ - 5080 - ], - "name": "ERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5068, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5080, - "src": "4607:53:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5066, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4607:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4650:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "internal" - }, - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", - "id": 5079, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5070, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5364:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5069, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5364:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5072, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5384:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5071, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5384:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5074, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5407:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5073, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5407:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5357:73:8" - }, - "returnParameters": { - "id": 5078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5077, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5456:6:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5076, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "5456:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5455:8:8" - }, - "scope": 5080, - "src": "5332:132:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "4326:1141:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5081, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "5641:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5082, - "nodeType": "InheritanceSpecifier", - "src": "5641:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": false, - "id": 5187, - "linearizedBaseContracts": [ - 5187, - 5017 - ], - "name": "ERC721Basic", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 5090, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 5089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5084, - "indexed": false, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5674:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5083, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5674:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5086, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5695:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5085, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5695:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5088, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5714:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5087, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5714:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5667:69:8" - }, - "src": "5653:84:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5098, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 5097, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5092, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5762:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5091, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5762:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5094, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5784:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5784:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5096, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5809:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5095, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5809:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5755:76:8" - }, - "src": "5741:91:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5106, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 5105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5100, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5863:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5099, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5863:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5102, - "indexed": false, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5885:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5101, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5885:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5104, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5910:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5103, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5910:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5856:73:8" - }, - "src": "5836:94:8" - }, - { - "body": null, - "documentation": null, - "id": 5113, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5109, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5108, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5955:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5107, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5955:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5954:16:8" - }, - "returnParameters": { - "id": 5112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5111, - "name": "_balance", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5992:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5110, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5992:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5991:18:8" - }, - "scope": 5187, - "src": "5936:74:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5120, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5116, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5115, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6031:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5114, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6030:18:8" - }, - "returnParameters": { - "id": 5119, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5118, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6070:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5117, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6070:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6069:16:8" - }, - "scope": 5187, - "src": "6014:72:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5127, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5123, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5122, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6106:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5121, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6106:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6105:18:8" - }, - "returnParameters": { - "id": 5126, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5125, - "name": "_exists", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6145:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5124, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6145:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6144:14:8" - }, - "scope": 5187, - "src": "6090:69:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5134, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5132, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5129, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6182:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6182:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5131, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6195:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6195:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6181:31:8" - }, - "returnParameters": { - "id": 5133, - "nodeType": "ParameterList", - "parameters": [], - "src": "6219:0:8" - }, - "scope": 5187, - "src": "6165:55:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5141, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5136, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6245:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5135, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6245:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6244:18:8" - }, - "returnParameters": { - "id": 5140, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5139, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6289:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5138, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6289:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6288:19:8" - }, - "scope": 5187, - "src": "6224:84:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5148, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5143, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6341:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6341:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5145, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6360:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5144, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6360:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6340:35:8" - }, - "returnParameters": { - "id": 5147, - "nodeType": "ParameterList", - "parameters": [], - "src": "6382:0:8" - }, - "scope": 5187, - "src": "6314:69:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5157, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5150, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6413:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5149, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6413:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5152, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6429:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5151, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6429:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6412:35:8" - }, - "returnParameters": { - "id": 5156, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5155, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6474:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5154, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6474:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6473:6:8" - }, - "scope": 5187, - "src": "6387:93:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5166, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5159, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6508:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5158, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6508:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5161, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6523:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5160, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6523:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5163, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6536:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5162, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6536:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6507:46:8" - }, - "returnParameters": { - "id": 5165, - "nodeType": "ParameterList", - "parameters": [], - "src": "6560:0:8" - }, - "scope": 5187, - "src": "6486:75:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5175, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5168, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6591:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5167, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6591:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5170, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6606:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5169, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6606:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5172, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6619:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6619:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6590:46:8" - }, - "returnParameters": { - "id": 5174, - "nodeType": "ParameterList", - "parameters": [], - "src": "6648:0:8" - }, - "scope": 5187, - "src": "6565:84:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5186, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5177, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6687:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5176, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6687:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5179, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6707:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5178, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6707:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5181, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6725:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5180, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6725:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5183, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6748:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5182, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6748:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6680:91:8" - }, - "returnParameters": { - "id": 5185, - "nodeType": "ParameterList", - "parameters": [], - "src": "6783:0:8" - }, - "scope": 5187, - "src": "6655:129:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "5617:1170:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5188, - "name": "SupportsInterfaceWithLookup", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5065, - "src": "6971:27:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", - "typeString": "contract SupportsInterfaceWithLookup" - } - }, - "id": 5189, - "nodeType": "InheritanceSpecifier", - "src": "6971:27:8" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5190, - "name": "ERC721Basic", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5187, - "src": "7000:11:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Basic_$5187", - "typeString": "contract ERC721Basic" - } - }, - "id": 5191, - "nodeType": "InheritanceSpecifier", - "src": "7000:11:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": true, - "id": 5764, - "linearizedBaseContracts": [ - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5194, - "name": "InterfaceId_ERC721", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7019:55:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5192, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7019:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 5193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7064:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 5197, - "name": "InterfaceId_ERC721Exists", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7668:61:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5195, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7668:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783466353538653739", - "id": 5196, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7719:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1331007097_by_1", - "typeString": "int_const 1331007097" - }, - "value": "0x4f558e79" - }, - "visibility": "private" - }, - { - "id": 5200, - "libraryName": { - "contractScope": null, - "id": 5198, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "7821:8:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "7815:27:8", - "typeName": { - "id": 5199, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7834:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 5203, - "libraryName": { - "contractScope": null, - "id": 5201, - "name": "AddressUtils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5009, - "src": "7852:12:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUtils_$5009", - "typeString": "library AddressUtils" - } - }, - "nodeType": "UsingForDirective", - "src": "7846:31:8", - "typeName": { - "id": 5202, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7869:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "constant": true, - "id": 5206, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8044:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5204, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8044:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5205, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8086:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 5210, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8140:48:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5209, - "keyType": { - "id": 5207, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8149:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8140:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5208, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8160:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5214, - "name": "tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8243:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5213, - "keyType": { - "id": 5211, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8252:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8243:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5212, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8263:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5218, - "name": "ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8352:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 5217, - "keyType": { - "id": 5215, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8361:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8352:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 5216, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8372:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5224, - "name": "operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8460:73:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "typeName": { - "id": 5223, - "keyType": { - "id": 5219, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8469:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8460:46:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 5222, - "keyType": { - "id": 5220, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8489:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8480:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 5221, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8500:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5226, - "name": "testint", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8542:19:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5225, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 5240, - "nodeType": "Block", - "src": "8774:61:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5232, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5228, - "src": "8797:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5231, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "8789:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8789:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5234, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "8810:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8810:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "8789:31:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5230, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "8781:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8781:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5238, - "nodeType": "ExpressionStatement", - "src": "8781:40:8" - }, - { - "id": 5239, - "nodeType": "PlaceholderStatement", - "src": "8828:1:8" - } - ] - }, - "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", - "id": 5241, - "name": "onlyOwnerOf", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5228, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5241, - "src": "8756:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8756:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8755:18:8" - }, - "src": "8735:100:8", - "visibility": "internal" - }, - { - "body": { - "id": 5254, - "nodeType": "Block", - "src": "9041:69:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5247, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "9074:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9074:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5249, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5243, - "src": "9086:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5246, - "name": "isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5567, - "src": "9056:17:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 5250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9056:39:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5245, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9048:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9048:48:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5252, - "nodeType": "ExpressionStatement", - "src": "9048:48:8" - }, - { - "id": 5253, - "nodeType": "PlaceholderStatement", - "src": "9103:1:8" - } - ] - }, - "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", - "id": 5255, - "name": "canTransfer", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5244, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5243, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5255, - "src": "9023:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5242, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9022:18:8" - }, - "src": "9002:108:8", - "visibility": "internal" - }, - { - "body": { - "id": 5266, - "nodeType": "Block", - "src": "9145:176:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5259, - "name": "InterfaceId_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5194, - "src": "9245:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5258, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9226:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9226:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5261, - "nodeType": "ExpressionStatement", - "src": "9226:38:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5263, - "name": "InterfaceId_ERC721Exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5197, - "src": "9290:24:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5262, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9271:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9271:44:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5265, - "nodeType": "ExpressionStatement", - "src": "9271:44:8" - } - ] - }, - "documentation": null, - "id": 5267, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5256, - "nodeType": "ParameterList", - "parameters": [], - "src": "9127:2:8" - }, - "returnParameters": { - "id": 5257, - "nodeType": "ParameterList", - "parameters": [], - "src": "9145:0:8" - }, - "scope": 5764, - "src": "9116:205:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5286, - "nodeType": "Block", - "src": "9585:80:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5275, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9600:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5277, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9618:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5276, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9610:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9610:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "9600:20:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5274, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9592:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9592:29:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5281, - "nodeType": "ExpressionStatement", - "src": "9592:29:8" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5282, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "9635:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5284, - "indexExpression": { - "argumentTypes": null, - "id": 5283, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9652:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9635:24:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5273, - "id": 5285, - "nodeType": "Return", - "src": "9628:31:8" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", - "id": 5287, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5270, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5269, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9539:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5268, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9539:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9538:16:8" - }, - "returnParameters": { - "id": 5273, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5272, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9576:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9576:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9575:9:8" - }, - "scope": 5764, - "src": "9520:145:8", - "stateMutability": "view", - "superFunction": 5113, - "visibility": "public" - }, - { - "body": { - "id": 5310, - "nodeType": "Block", - "src": "9950:103:8", - "statements": [ - { - "assignments": [ - 5295 - ], - "declarations": [ - { - "constant": false, - "id": 5295, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5310, - "src": "9957:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5294, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9957:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5299, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5296, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "9973:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5298, - "indexExpression": { - "argumentTypes": null, - "id": 5297, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5289, - "src": "9984:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9973:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9957:36:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5301, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10008:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10025:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10017:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5304, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10017:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10008:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5300, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10000:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5307, - "nodeType": "ExpressionStatement", - "src": "10000:28:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5308, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10042:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5293, - "id": 5309, - "nodeType": "Return", - "src": "10035:12:8" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", - "id": 5311, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5289, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9902:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5288, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9902:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9901:18:8" - }, - "returnParameters": { - "id": 5293, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5292, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9941:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5291, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9941:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9940:9:8" - }, - "scope": 5764, - "src": "9885:168:8", - "stateMutability": "view", - "superFunction": 5120, - "visibility": "public" - }, - { - "body": { - "id": 5330, - "nodeType": "Block", - "src": "10299:82:8", - "statements": [ - { - "assignments": [ - 5319 - ], - "declarations": [ - { - "constant": false, - "id": 5319, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5330, - "src": "10306:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5318, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10306:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5323, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5320, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "10322:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5322, - "indexExpression": { - "argumentTypes": null, - "id": 5321, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5313, - "src": "10333:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10322:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10306:36:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5324, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5319, - "src": "10356:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5326, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10373:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5325, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10365:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10365:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10356:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5317, - "id": 5329, - "nodeType": "Return", - "src": "10349:26:8" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", - "id": 5331, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5313, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10254:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5312, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10254:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10253:18:8" - }, - "returnParameters": { - "id": 5317, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5316, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10293:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5315, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10293:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10292:6:8" - }, - "scope": 5764, - "src": "10238:143:8", - "stateMutability": "view", - "superFunction": 5127, - "visibility": "public" - }, - { - "body": { - "id": 5375, - "nodeType": "Block", - "src": "10851:229:8", - "statements": [ - { - "assignments": [ - 5339 - ], - "declarations": [ - { - "constant": false, - "id": 5339, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5375, - "src": "10858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5338, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5343, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5341, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "10882:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5340, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "10874:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10874:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10858:33:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5345, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "10906:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 5346, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10913:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5344, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10898:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10898:21:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5349, - "nodeType": "ExpressionStatement", - "src": "10898:21:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5351, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10934:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10934:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5353, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10948:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10934:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5356, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10974:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5357, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10981:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10981:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 5355, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "10957:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10957:35:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "10934:58:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5350, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10926:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10926:67:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5362, - "nodeType": "ExpressionStatement", - "src": "10926:67:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5363, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11002:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5365, - "indexExpression": { - "argumentTypes": null, - "id": 5364, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11017:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11002:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5366, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11029:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "11002:30:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5368, - "nodeType": "ExpressionStatement", - "src": "11002:30:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5370, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "11053:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5371, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11060:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5372, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11065:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5369, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5098, - "src": "11044:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11044:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5374, - "nodeType": "EmitStatement", - "src": "11039:35:8" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", - "id": 5376, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5336, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5333, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10813:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10813:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5335, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10826:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5334, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10826:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10812:31:8" - }, - "returnParameters": { - "id": 5337, - "nodeType": "ParameterList", - "parameters": [], - "src": "10851:0:8" - }, - "scope": 5764, - "src": "10796:284:8", - "stateMutability": "nonpayable", - "superFunction": 5134, - "visibility": "public" - }, - { - "body": { - "id": 5387, - "nodeType": "Block", - "src": "11383:44:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5383, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11397:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5385, - "indexExpression": { - "argumentTypes": null, - "id": 5384, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5378, - "src": "11412:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11397:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5382, - "id": 5386, - "nodeType": "Return", - "src": "11390:31:8" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", - "id": 5388, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5378, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11335:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5377, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11335:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11334:18:8" - }, - "returnParameters": { - "id": 5382, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5381, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11374:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5380, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11374:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11373:9:8" - }, - "scope": 5764, - "src": "11314:113:8", - "stateMutability": "view", - "superFunction": 5141, - "visibility": "public" - }, - { - "body": { - "id": 5418, - "nodeType": "Block", - "src": "11778:146:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5396, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11793:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5397, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11800:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11800:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "11793:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5395, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "11785:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11785:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5401, - "nodeType": "ExpressionStatement", - "src": "11785:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5402, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "11818:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5406, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5403, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11836:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11836:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11818:29:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5407, - "indexExpression": { - "argumentTypes": null, - "id": 5405, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11848:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11818:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5408, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11855:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11818:46:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5410, - "nodeType": "ExpressionStatement", - "src": "11818:46:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5412, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11891:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11891:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5414, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11903:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5415, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11908:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5411, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5106, - "src": "11876:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 5416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11876:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5417, - "nodeType": "EmitStatement", - "src": "11871:47:8" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", - "id": 5419, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5390, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11742:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5389, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11742:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5392, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11755:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5391, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11755:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11741:29:8" - }, - "returnParameters": { - "id": 5394, - "nodeType": "ParameterList", - "parameters": [], - "src": "11778:0:8" - }, - "scope": 5764, - "src": "11715:209:8", - "stateMutability": "nonpayable", - "superFunction": 5148, - "visibility": "public" - }, - { - "body": { - "id": 5434, - "nodeType": "Block", - "src": "12362:56:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5428, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "12376:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5430, - "indexExpression": { - "argumentTypes": null, - "id": 5429, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5421, - "src": "12394:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5432, - "indexExpression": { - "argumentTypes": null, - "id": 5431, - "name": "_operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5423, - "src": "12402:9:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:36:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5427, - "id": 5433, - "nodeType": "Return", - "src": "12369:43:8" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", - "id": 5435, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5424, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5421, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12273:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5420, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12273:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5423, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12294:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5422, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12294:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12266:50:8" - }, - "returnParameters": { - "id": 5427, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5426, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12353:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5425, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12353:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12352:6:8" - }, - "scope": 5764, - "src": "12241:177:8", - "stateMutability": "view", - "superFunction": 5157, - "visibility": "public" - }, - { - "body": { - "id": 5484, - "nodeType": "Block", - "src": "12976:228:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5448, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "12991:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5450, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13008:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5449, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13000:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "12991:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5447, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "12983:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12983:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5454, - "nodeType": "ExpressionStatement", - "src": "12983:28:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5456, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13026:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13041:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5457, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13033:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5459, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13033:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "13026:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5455, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "13018:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13018:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5462, - "nodeType": "ExpressionStatement", - "src": "13018:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5464, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13067:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5465, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13074:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5463, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "13053:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13053:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5467, - "nodeType": "ExpressionStatement", - "src": "13053:30:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5469, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13106:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5470, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13113:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5468, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "13090:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13090:32:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5472, - "nodeType": "ExpressionStatement", - "src": "13090:32:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5474, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13140:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5475, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13145:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5473, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "13129:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13129:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5477, - "nodeType": "ExpressionStatement", - "src": "13129:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5479, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13177:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5480, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13184:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5481, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13189:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5478, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "13168:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13168:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5483, - "nodeType": "EmitStatement", - "src": "13163:35:8" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5485, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5444, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "12963:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5445, - "modifierName": { - "argumentTypes": null, - "id": 5443, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "12951:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12951:21:8" - } - ], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5442, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5437, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12874:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5436, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12874:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5439, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12894:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5438, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12894:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5441, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12912:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5440, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12912:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12867:66:8" - }, - "returnParameters": { - "id": 5446, - "nodeType": "ParameterList", - "parameters": [], - "src": "12976:0:8" - }, - "scope": 5764, - "src": "12846:358:8", - "stateMutability": "nonpayable", - "superFunction": 5166, - "visibility": "public" - }, - { - "body": { - "id": 5504, - "nodeType": "Block", - "src": "13960:101:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5498, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5487, - "src": "14030:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5499, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5489, - "src": "14037:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5500, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "14042:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 5501, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14052:2:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 5497, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5505, - 5535 - ], - "referencedDeclaration": 5535, - "src": "14013:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,uint256,bytes memory)" - } - }, - "id": 5502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14013:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5503, - "nodeType": "ExpressionStatement", - "src": "14013:42:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5505, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5494, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "13947:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5495, - "modifierName": { - "argumentTypes": null, - "id": 5493, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "13935:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13935:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5492, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5487, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5486, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5489, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13878:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5488, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13878:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5491, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13896:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5490, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13896:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13851:66:8" - }, - "returnParameters": { - "id": 5496, - "nodeType": "ParameterList", - "parameters": [], - "src": "13960:0:8" - }, - "scope": 5764, - "src": "13826:235:8", - "stateMutability": "nonpayable", - "superFunction": 5175, - "visibility": "public" - }, - { - "body": { - "id": 5534, - "nodeType": "Block", - "src": "14908:162:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5520, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "14928:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5521, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "14935:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5522, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14940:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5519, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5485 - ], - "referencedDeclaration": 5485, - "src": "14915:12:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14915:34:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5524, - "nodeType": "ExpressionStatement", - "src": "14915:34:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5527, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "15035:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5528, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "15042:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5529, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "15047:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5530, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5513, - "src": "15057:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 5526, - "name": "checkAndCallSafeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5763, - "src": "15010:24:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,address,uint256,bytes memory) returns (bool)" - } - }, - "id": 5531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15010:53:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5525, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "15002:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15002:62:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5533, - "nodeType": "ExpressionStatement", - "src": "15002:62:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", - "id": 5535, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5516, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14895:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5517, - "modifierName": { - "argumentTypes": null, - "id": 5515, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "14883:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14883:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5514, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5507, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14781:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5506, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14781:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5509, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14801:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5508, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14801:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5511, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14819:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5510, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14819:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5513, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14842:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5512, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14842:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14774:91:8" - }, - "returnParameters": { - "id": 5518, - "nodeType": "ParameterList", - "parameters": [], - "src": "14908:0:8" - }, - "scope": 5764, - "src": "14749:321:8", - "stateMutability": "nonpayable", - "superFunction": 5186, - "visibility": "public" - }, - { - "body": { - "id": 5566, - "nodeType": "Block", - "src": "15551:330:8", - "statements": [ - { - "assignments": [ - 5545 - ], - "declarations": [ - { - "constant": false, - "id": 5545, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5566, - "src": "15558:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5544, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15558:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5549, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5547, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15582:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5546, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "15574:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15574:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15558:33:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5550, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15763:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5551, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15775:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15763:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5554, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15803:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5553, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5388 - ], - "referencedDeclaration": 5388, - "src": "15791:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15791:21:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5556, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15816:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15791:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:61:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5560, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15852:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5561, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15859:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5559, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "15835:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15835:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:105:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5564, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "15754:121:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5543, - "id": 5565, - "nodeType": "Return", - "src": "15747:128:8" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", - "id": 5567, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5540, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5537, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15459:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5536, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15459:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5539, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15482:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5538, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15482:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15452:51:8" - }, - "returnParameters": { - "id": 5543, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5542, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15542:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5541, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "15542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15541:6:8" - }, - "scope": 5764, - "src": "15426:455:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5595, - "nodeType": "Block", - "src": "16193:118:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5575, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16208:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16223:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16215:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5578, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16215:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16208:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5574, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "16200:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16200:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5581, - "nodeType": "ExpressionStatement", - "src": "16200:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5583, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16244:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5584, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16249:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5582, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "16233:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16233:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5586, - "nodeType": "ExpressionStatement", - "src": "16233:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16287:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5588, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16279:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5590, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16279:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5591, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16291:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5592, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16296:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5587, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16270:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16270:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5594, - "nodeType": "EmitStatement", - "src": "16265:40:8" - } - ] - }, - "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", - "id": 5596, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5572, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5569, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16153:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5568, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16153:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5571, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16166:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5570, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16166:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16152:31:8" - }, - "returnParameters": { - "id": 5573, - "nodeType": "ParameterList", - "parameters": [], - "src": "16193:0:8" - }, - "scope": 5764, - "src": "16138:173:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5621, - "nodeType": "Block", - "src": "16562:134:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5604, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16583:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5605, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16591:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5603, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "16569:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16569:31:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5607, - "nodeType": "ExpressionStatement", - "src": "16569:31:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5609, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16623:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5610, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16631:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5608, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "16607:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16607:33:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5612, - "nodeType": "ExpressionStatement", - "src": "16607:33:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5614, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16661:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16677:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5615, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16669:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5617, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16669:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5618, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16681:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5613, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16652:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16652:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5620, - "nodeType": "EmitStatement", - "src": "16647:43:8" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", - "id": 5622, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5598, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16519:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16519:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5600, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16535:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16535:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16518:34:8" - }, - "returnParameters": { - "id": 5602, - "nodeType": "ParameterList", - "parameters": [], - "src": "16562:0:8" - }, - "scope": 5764, - "src": "16504:192:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5654, - "nodeType": "Block", - "src": "17032:153:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5631, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17055:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5630, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "17047:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17047:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5633, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5624, - "src": "17068:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17047:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5629, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17039:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17039:36:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5636, - "nodeType": "ExpressionStatement", - "src": "17039:36:8" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5637, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17086:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5639, - "indexExpression": { - "argumentTypes": null, - "id": 5638, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17101:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17086:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17122:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17114:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17114:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17086:38:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5653, - "nodeType": "IfStatement", - "src": "17082:98:8", - "trueBody": { - "id": 5652, - "nodeType": "Block", - "src": "17126:54:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5644, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17135:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5646, - "indexExpression": { - "argumentTypes": null, - "id": 5645, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17150:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17135:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17170:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5647, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17162:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5649, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17162:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17135:37:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5651, - "nodeType": "ExpressionStatement", - "src": "17135:37:8" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5655, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5627, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5624, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "16989:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5623, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16989:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5626, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "17005:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5625, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17005:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16988:34:8" - }, - "returnParameters": { - "id": 5628, - "nodeType": "ParameterList", - "parameters": [], - "src": "17032:0:8" - }, - "scope": 5764, - "src": "16966:219:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5689, - "nodeType": "Block", - "src": "17515:148:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5663, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17530:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5665, - "indexExpression": { - "argumentTypes": null, - "id": 5664, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17541:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17530:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17562:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17554:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5668, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17554:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17530:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5662, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17522:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17522:43:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5671, - "nodeType": "ExpressionStatement", - "src": "17522:43:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5672, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17572:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5674, - "indexExpression": { - "argumentTypes": null, - "id": 5673, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17583:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17572:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5675, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17595:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17572:26:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5677, - "nodeType": "ExpressionStatement", - "src": "17572:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5678, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17605:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5680, - "indexExpression": { - "argumentTypes": null, - "id": 5679, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17622:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17605:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17655:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5681, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17629:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5683, - "indexExpression": { - "argumentTypes": null, - "id": 5682, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17646:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17629:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "17629:25:8", - "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": 5686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17629:28:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17605:52:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5688, - "nodeType": "ExpressionStatement", - "src": "17605:52:8" - } - ] - }, - "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", - "id": 5690, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addTokenTo", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5660, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5657, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17475:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5656, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17475:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5659, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17488:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5658, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17488:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17474:31:8" - }, - "returnParameters": { - "id": 5661, - "nodeType": "ParameterList", - "parameters": [], - "src": "17515:0:8" - }, - "scope": 5764, - "src": "17455:208:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5724, - "nodeType": "Block", - "src": "18016:151:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5702, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5699, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18039:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5698, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "18031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18031:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5701, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18052:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "18031:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5697, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "18023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18023:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5704, - "nodeType": "ExpressionStatement", - "src": "18023:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5705, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18065:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5707, - "indexExpression": { - "argumentTypes": null, - "id": 5706, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18082:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18065:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18119:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5708, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18091:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5710, - "indexExpression": { - "argumentTypes": null, - "id": 5709, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18108:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18091:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "18091:27:8", - "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": 5713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18091:30:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18065:56:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5715, - "nodeType": "ExpressionStatement", - "src": "18065:56:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5716, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "18128:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5718, - "indexExpression": { - "argumentTypes": null, - "id": 5717, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18139:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18128:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18159:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18151:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18151:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "18128:33:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5723, - "nodeType": "ExpressionStatement", - "src": "18128:33:8" - } - ] - }, - "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", - "id": 5725, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "removeTokenFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5695, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5692, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17974:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5691, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17974:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5694, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17989:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5693, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17989:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17973:33:8" - }, - "returnParameters": { - "id": 5696, - "nodeType": "ParameterList", - "parameters": [], - "src": "18016:0:8" - }, - "scope": 5764, - "src": "17949:218:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5762, - "nodeType": "Block", - "src": "18846:195:8", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 5741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "18857:17:8", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5738, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18858:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 5008, - "src": "18858:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 5740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18858:16:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5745, - "nodeType": "IfStatement", - "src": "18853:51:8", - "trueBody": { - "id": 5744, - "nodeType": "Block", - "src": "18876:28:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5742, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18892:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 5737, - "id": 5743, - "nodeType": "Return", - "src": "18885:11:8" - } - ] - } - }, - { - "assignments": [ - 5747 - ], - "declarations": [ - { - "constant": false, - "id": 5747, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 5762, - "src": "18910:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5746, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "18910:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5756, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5752, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5727, - "src": "18971:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5753, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5731, - "src": "18978:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5754, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5733, - "src": "18988:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5749, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18941:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5748, - "name": "ERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5080, - "src": "18926:14:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", - "typeString": "type(contract ERC721Receiver)" - } - }, - "id": 5750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:19:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Receiver_$5080", - "typeString": "contract ERC721Receiver" - } - }, - "id": 5751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 5079, - "src": "18926:36:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" - } - }, - "id": 5755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:68:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18910:84:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5757, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5747, - "src": "19009:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5758, - "name": "ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5206, - "src": "19019:15:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "19009:25:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5760, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19008:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5737, - "id": 5761, - "nodeType": "Return", - "src": "19001:34:8" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", - "id": 5763, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "checkAndCallSafeTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5734, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5727, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18724:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5726, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18724:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5729, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18744:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18744:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5731, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18762:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5730, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18762:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5733, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18785:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5732, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "18785:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18717:91:8" - }, - "returnParameters": { - "id": 5737, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5736, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18837:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5735, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18837:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18836:6:8" - }, - "scope": 5764, - "src": "18684:357:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "6942:12102:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5765, - "name": "ERC721BasicToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5764, - "src": "19081:16:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", - "typeString": "contract ERC721BasicToken" - } - }, - "id": 5766, - "nodeType": "InheritanceSpecifier", - "src": "19081:16:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187, - 5764 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 5797, - "linearizedBaseContracts": [ - 5797, - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicTokenMock", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5780, - "nodeType": "Block", - "src": "19155:39:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5776, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5768, - "src": "19174:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5777, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5770, - "src": "19179:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5773, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19162:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 5596, - "src": "19162:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19162:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5779, - "nodeType": "ExpressionStatement", - "src": "19162:26:8" - } - ] - }, - "documentation": null, - "id": 5781, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5771, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5768, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19117:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5767, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19117:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5770, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19130:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5769, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19130:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19116:31:8" - }, - "returnParameters": { - "id": 5772, - "nodeType": "ParameterList", - "parameters": [], - "src": "19155:0:8" - }, - "scope": 5797, - "src": "19103:91:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5795, - "nodeType": "Block", - "src": "19239:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5790, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19266:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5789, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "19258:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19258:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5792, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19277:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5786, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19246:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 5622, - "src": "19246:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19246:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5794, - "nodeType": "ExpressionStatement", - "src": "19246:40:8" - } - ] - }, - "documentation": null, - "id": 5796, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5784, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5783, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5796, - "src": "19214:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5782, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19214:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19213:18:8" - }, - "returnParameters": { - "id": 5785, - "nodeType": "ParameterList", - "parameters": [], - "src": "19239:0:8" - }, - "scope": 5797, - "src": "19200:92:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "19048:247:8" - } - ], - "src": "0:19297:8" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", - "exportedSymbols": { - "AddressUtils": [ - 5009 - ], - "ERC165": [ - 5017 - ], - "ERC721Basic": [ - 5187 - ], - "ERC721BasicToken": [ - 5764 - ], - "ERC721BasicTokenMock": [ - 5797 - ], - "ERC721Receiver": [ - 5080 - ], - "SupportsInterfaceWithLookup": [ - 5065 - ] - }, - "id": 5798, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4991, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:8" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "../../dao/oz/SafeMath.sol", - "id": 4992, - "nodeType": "ImportDirective", - "scope": 5798, - "sourceUnit": 9858, - "src": "34:35:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "Utility library of inline functions on addresses\r", - "fullyImplemented": true, - "id": 5009, - "linearizedBaseContracts": [ - 5009 - ], - "name": "AddressUtils", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5007, - "nodeType": "Block", - "src": "2012:524:8", - "statements": [ - { - "assignments": [ - 5000 - ], - "declarations": [ - { - "constant": false, - "id": 5000, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 5007, - "src": "2019:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4999, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2019:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5001, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2019:12:8" - }, - { - "externalReferences": [ - { - "size": { - "declaration": 5000, - "isOffset": false, - "isSlot": false, - "src": "2482:4:8", - "valueSize": 1 - } - }, - { - "addr": { - "declaration": 4994, - "isOffset": false, - "isSlot": false, - "src": "2502:4:8", - "valueSize": 1 - } - } - ], - "id": 5002, - "nodeType": "InlineAssembly", - "operations": "{ size := extcodesize(addr) }", - "src": "2471:38:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5003, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5000, - "src": "2522:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5004, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2529:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2522:8:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4998, - "id": 5006, - "nodeType": "Return", - "src": "2515:15:8" - } - ] - }, - "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", - "id": 5008, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4994, - "name": "addr", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "1969:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1969:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1968:14:8" - }, - "returnParameters": { - "id": 4998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4997, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "2006:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4996, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2006:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2005:6:8" - }, - "scope": 5009, - "src": "1949:587:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "1590:951:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", - "fullyImplemented": false, - "id": 5017, - "linearizedBaseContracts": [ - 5017 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", - "id": 5016, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5012, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5011, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "2950:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5010, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "2950:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2949:21:8" - }, - "returnParameters": { - "id": 5015, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5014, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "3009:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5013, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3009:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3008:6:8" - }, - "scope": 5017, - "src": "2923:92:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 5798, - "src": "2643:375:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5018, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "3196:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5019, - "nodeType": "InheritanceSpecifier", - "src": "3196:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", - "fullyImplemented": true, - "id": 5065, - "linearizedBaseContracts": [ - 5065, - 5017 - ], - "name": "SupportsInterfaceWithLookup", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5022, - "name": "InterfaceId_ERC165", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3208:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5020, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3208:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 5021, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3252:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 5026, - "name": "supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3443:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 5025, - "keyType": { - "id": 5023, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3451:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "3443:23:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 5024, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3461:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 5033, - "nodeType": "Block", - "src": "3638:51:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5030, - "name": "InterfaceId_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5022, - "src": "3664:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5029, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "3645:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3645:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5032, - "nodeType": "ExpressionStatement", - "src": "3645:38:8" - } - ] - }, - "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", - "id": 5034, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5027, - "nodeType": "ParameterList", - "parameters": [], - "src": "3620:2:8" - }, - "returnParameters": { - "id": 5028, - "nodeType": "ParameterList", - "parameters": [], - "src": "3638:0:8" - }, - "scope": 5065, - "src": "3609:80:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5045, - "nodeType": "Block", - "src": "3872:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5041, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "3886:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5043, - "indexExpression": { - "argumentTypes": null, - "id": 5042, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5036, - "src": "3906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3886:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5040, - "id": 5044, - "nodeType": "Return", - "src": "3879:40:8" - } - ] - }, - "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", - "id": 5046, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5037, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5036, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3804:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5035, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3804:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3803:21:8" - }, - "returnParameters": { - "id": 5040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5039, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3863:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5038, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3863:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3862:6:8" - }, - "scope": 5065, - "src": "3777:148:8", - "stateMutability": "view", - "superFunction": 5016, - "visibility": "external" - }, - { - "body": { - "id": 5063, - "nodeType": "Block", - "src": "4066:95:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5052, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4081:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 5053, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4097:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "4081:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5051, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4073:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4073:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5056, - "nodeType": "ExpressionStatement", - "src": "4073:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5057, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "4115:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5059, - "indexExpression": { - "argumentTypes": null, - "id": 5058, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4135:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4115:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4151:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4115:40:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5062, - "nodeType": "ExpressionStatement", - "src": "4115:40:8" - } - ] - }, - "documentation": "@dev private method for registering an interface\r", - "id": 5064, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5049, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5048, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5064, - "src": "4028:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5047, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4028:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4027:21:8" - }, - "returnParameters": { - "id": 5050, - "nodeType": "ParameterList", - "parameters": [], - "src": "4066:0:8" - }, - "scope": 5065, - "src": "4000:161:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "3156:1008:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", - "fullyImplemented": false, - "id": 5080, - "linearizedBaseContracts": [ - 5080 - ], - "name": "ERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5068, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5080, - "src": "4607:53:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5066, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4607:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4650:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "internal" - }, - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", - "id": 5079, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5070, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5364:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5069, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5364:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5072, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5384:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5071, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5384:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5074, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5407:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5073, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5407:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5357:73:8" - }, - "returnParameters": { - "id": 5078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5077, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5456:6:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5076, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "5456:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5455:8:8" - }, - "scope": 5080, - "src": "5332:132:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "4326:1141:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5081, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "5641:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5082, - "nodeType": "InheritanceSpecifier", - "src": "5641:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": false, - "id": 5187, - "linearizedBaseContracts": [ - 5187, - 5017 - ], - "name": "ERC721Basic", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 5090, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 5089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5084, - "indexed": false, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5674:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5083, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5674:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5086, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5695:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5085, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5695:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5088, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5714:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5087, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5714:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5667:69:8" - }, - "src": "5653:84:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5098, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 5097, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5092, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5762:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5091, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5762:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5094, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5784:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5784:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5096, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5809:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5095, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5809:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5755:76:8" - }, - "src": "5741:91:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5106, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 5105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5100, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5863:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5099, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5863:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5102, - "indexed": false, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5885:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5101, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5885:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5104, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5910:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5103, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5910:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5856:73:8" - }, - "src": "5836:94:8" - }, - { - "body": null, - "documentation": null, - "id": 5113, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5109, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5108, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5955:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5107, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5955:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5954:16:8" - }, - "returnParameters": { - "id": 5112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5111, - "name": "_balance", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5992:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5110, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5992:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5991:18:8" - }, - "scope": 5187, - "src": "5936:74:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5120, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5116, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5115, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6031:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5114, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6030:18:8" - }, - "returnParameters": { - "id": 5119, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5118, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6070:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5117, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6070:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6069:16:8" - }, - "scope": 5187, - "src": "6014:72:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5127, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5123, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5122, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6106:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5121, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6106:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6105:18:8" - }, - "returnParameters": { - "id": 5126, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5125, - "name": "_exists", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6145:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5124, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6145:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6144:14:8" - }, - "scope": 5187, - "src": "6090:69:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5134, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5132, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5129, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6182:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6182:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5131, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6195:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6195:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6181:31:8" - }, - "returnParameters": { - "id": 5133, - "nodeType": "ParameterList", - "parameters": [], - "src": "6219:0:8" - }, - "scope": 5187, - "src": "6165:55:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5141, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5136, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6245:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5135, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6245:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6244:18:8" - }, - "returnParameters": { - "id": 5140, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5139, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6289:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5138, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6289:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6288:19:8" - }, - "scope": 5187, - "src": "6224:84:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5148, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5143, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6341:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6341:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5145, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6360:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5144, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6360:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6340:35:8" - }, - "returnParameters": { - "id": 5147, - "nodeType": "ParameterList", - "parameters": [], - "src": "6382:0:8" - }, - "scope": 5187, - "src": "6314:69:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5157, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5150, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6413:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5149, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6413:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5152, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6429:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5151, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6429:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6412:35:8" - }, - "returnParameters": { - "id": 5156, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5155, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6474:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5154, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6474:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6473:6:8" - }, - "scope": 5187, - "src": "6387:93:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5166, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5159, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6508:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5158, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6508:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5161, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6523:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5160, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6523:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5163, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6536:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5162, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6536:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6507:46:8" - }, - "returnParameters": { - "id": 5165, - "nodeType": "ParameterList", - "parameters": [], - "src": "6560:0:8" - }, - "scope": 5187, - "src": "6486:75:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5175, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5168, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6591:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5167, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6591:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5170, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6606:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5169, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6606:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5172, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6619:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6619:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6590:46:8" - }, - "returnParameters": { - "id": 5174, - "nodeType": "ParameterList", - "parameters": [], - "src": "6648:0:8" - }, - "scope": 5187, - "src": "6565:84:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5186, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5177, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6687:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5176, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6687:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5179, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6707:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5178, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6707:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5181, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6725:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5180, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6725:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5183, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6748:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5182, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6748:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6680:91:8" - }, - "returnParameters": { - "id": 5185, - "nodeType": "ParameterList", - "parameters": [], - "src": "6783:0:8" - }, - "scope": 5187, - "src": "6655:129:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "5617:1170:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5188, - "name": "SupportsInterfaceWithLookup", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5065, - "src": "6971:27:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", - "typeString": "contract SupportsInterfaceWithLookup" - } - }, - "id": 5189, - "nodeType": "InheritanceSpecifier", - "src": "6971:27:8" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5190, - "name": "ERC721Basic", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5187, - "src": "7000:11:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Basic_$5187", - "typeString": "contract ERC721Basic" - } - }, - "id": 5191, - "nodeType": "InheritanceSpecifier", - "src": "7000:11:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": true, - "id": 5764, - "linearizedBaseContracts": [ - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5194, - "name": "InterfaceId_ERC721", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7019:55:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5192, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7019:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 5193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7064:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 5197, - "name": "InterfaceId_ERC721Exists", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7668:61:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5195, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7668:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783466353538653739", - "id": 5196, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7719:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1331007097_by_1", - "typeString": "int_const 1331007097" - }, - "value": "0x4f558e79" - }, - "visibility": "private" - }, - { - "id": 5200, - "libraryName": { - "contractScope": null, - "id": 5198, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "7821:8:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "7815:27:8", - "typeName": { - "id": 5199, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7834:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 5203, - "libraryName": { - "contractScope": null, - "id": 5201, - "name": "AddressUtils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5009, - "src": "7852:12:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUtils_$5009", - "typeString": "library AddressUtils" - } - }, - "nodeType": "UsingForDirective", - "src": "7846:31:8", - "typeName": { - "id": 5202, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7869:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "constant": true, - "id": 5206, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8044:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5204, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8044:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5205, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8086:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 5210, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8140:48:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5209, - "keyType": { - "id": 5207, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8149:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8140:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5208, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8160:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5214, - "name": "tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8243:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5213, - "keyType": { - "id": 5211, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8252:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8243:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5212, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8263:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5218, - "name": "ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8352:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 5217, - "keyType": { - "id": 5215, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8361:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8352:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 5216, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8372:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5224, - "name": "operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8460:73:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "typeName": { - "id": 5223, - "keyType": { - "id": 5219, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8469:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8460:46:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 5222, - "keyType": { - "id": 5220, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8489:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8480:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 5221, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8500:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5226, - "name": "testint", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8542:19:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5225, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 5240, - "nodeType": "Block", - "src": "8774:61:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5232, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5228, - "src": "8797:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5231, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "8789:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8789:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5234, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "8810:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8810:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "8789:31:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5230, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "8781:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8781:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5238, - "nodeType": "ExpressionStatement", - "src": "8781:40:8" - }, - { - "id": 5239, - "nodeType": "PlaceholderStatement", - "src": "8828:1:8" - } - ] - }, - "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", - "id": 5241, - "name": "onlyOwnerOf", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5228, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5241, - "src": "8756:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8756:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8755:18:8" - }, - "src": "8735:100:8", - "visibility": "internal" - }, - { - "body": { - "id": 5254, - "nodeType": "Block", - "src": "9041:69:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5247, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "9074:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9074:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5249, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5243, - "src": "9086:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5246, - "name": "isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5567, - "src": "9056:17:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 5250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9056:39:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5245, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9048:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9048:48:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5252, - "nodeType": "ExpressionStatement", - "src": "9048:48:8" - }, - { - "id": 5253, - "nodeType": "PlaceholderStatement", - "src": "9103:1:8" - } - ] - }, - "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", - "id": 5255, - "name": "canTransfer", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5244, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5243, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5255, - "src": "9023:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5242, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9022:18:8" - }, - "src": "9002:108:8", - "visibility": "internal" - }, - { - "body": { - "id": 5266, - "nodeType": "Block", - "src": "9145:176:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5259, - "name": "InterfaceId_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5194, - "src": "9245:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5258, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9226:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9226:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5261, - "nodeType": "ExpressionStatement", - "src": "9226:38:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5263, - "name": "InterfaceId_ERC721Exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5197, - "src": "9290:24:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5262, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9271:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9271:44:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5265, - "nodeType": "ExpressionStatement", - "src": "9271:44:8" - } - ] - }, - "documentation": null, - "id": 5267, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5256, - "nodeType": "ParameterList", - "parameters": [], - "src": "9127:2:8" - }, - "returnParameters": { - "id": 5257, - "nodeType": "ParameterList", - "parameters": [], - "src": "9145:0:8" - }, - "scope": 5764, - "src": "9116:205:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5286, - "nodeType": "Block", - "src": "9585:80:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5275, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9600:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5277, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9618:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5276, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9610:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9610:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "9600:20:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5274, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9592:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9592:29:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5281, - "nodeType": "ExpressionStatement", - "src": "9592:29:8" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5282, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "9635:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5284, - "indexExpression": { - "argumentTypes": null, - "id": 5283, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9652:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9635:24:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5273, - "id": 5285, - "nodeType": "Return", - "src": "9628:31:8" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", - "id": 5287, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5270, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5269, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9539:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5268, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9539:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9538:16:8" - }, - "returnParameters": { - "id": 5273, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5272, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9576:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9576:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9575:9:8" - }, - "scope": 5764, - "src": "9520:145:8", - "stateMutability": "view", - "superFunction": 5113, - "visibility": "public" - }, - { - "body": { - "id": 5310, - "nodeType": "Block", - "src": "9950:103:8", - "statements": [ - { - "assignments": [ - 5295 - ], - "declarations": [ - { - "constant": false, - "id": 5295, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5310, - "src": "9957:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5294, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9957:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5299, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5296, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "9973:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5298, - "indexExpression": { - "argumentTypes": null, - "id": 5297, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5289, - "src": "9984:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9973:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9957:36:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5301, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10008:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10025:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10017:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5304, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10017:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10008:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5300, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10000:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5307, - "nodeType": "ExpressionStatement", - "src": "10000:28:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5308, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10042:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5293, - "id": 5309, - "nodeType": "Return", - "src": "10035:12:8" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", - "id": 5311, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5289, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9902:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5288, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9902:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9901:18:8" - }, - "returnParameters": { - "id": 5293, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5292, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9941:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5291, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9941:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9940:9:8" - }, - "scope": 5764, - "src": "9885:168:8", - "stateMutability": "view", - "superFunction": 5120, - "visibility": "public" - }, - { - "body": { - "id": 5330, - "nodeType": "Block", - "src": "10299:82:8", - "statements": [ - { - "assignments": [ - 5319 - ], - "declarations": [ - { - "constant": false, - "id": 5319, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5330, - "src": "10306:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5318, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10306:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5323, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5320, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "10322:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5322, - "indexExpression": { - "argumentTypes": null, - "id": 5321, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5313, - "src": "10333:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10322:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10306:36:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5324, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5319, - "src": "10356:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5326, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10373:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5325, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10365:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10365:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10356:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5317, - "id": 5329, - "nodeType": "Return", - "src": "10349:26:8" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", - "id": 5331, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5313, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10254:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5312, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10254:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10253:18:8" - }, - "returnParameters": { - "id": 5317, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5316, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10293:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5315, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10293:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10292:6:8" - }, - "scope": 5764, - "src": "10238:143:8", - "stateMutability": "view", - "superFunction": 5127, - "visibility": "public" - }, - { - "body": { - "id": 5375, - "nodeType": "Block", - "src": "10851:229:8", - "statements": [ - { - "assignments": [ - 5339 - ], - "declarations": [ - { - "constant": false, - "id": 5339, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5375, - "src": "10858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5338, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5343, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5341, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "10882:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5340, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "10874:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10874:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10858:33:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5345, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "10906:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 5346, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10913:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5344, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10898:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10898:21:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5349, - "nodeType": "ExpressionStatement", - "src": "10898:21:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5351, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10934:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10934:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5353, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10948:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10934:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5356, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10974:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5357, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10981:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10981:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 5355, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "10957:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10957:35:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "10934:58:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5350, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10926:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10926:67:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5362, - "nodeType": "ExpressionStatement", - "src": "10926:67:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5363, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11002:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5365, - "indexExpression": { - "argumentTypes": null, - "id": 5364, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11017:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11002:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5366, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11029:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "11002:30:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5368, - "nodeType": "ExpressionStatement", - "src": "11002:30:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5370, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "11053:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5371, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11060:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5372, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11065:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5369, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5098, - "src": "11044:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11044:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5374, - "nodeType": "EmitStatement", - "src": "11039:35:8" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", - "id": 5376, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5336, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5333, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10813:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10813:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5335, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10826:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5334, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10826:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10812:31:8" - }, - "returnParameters": { - "id": 5337, - "nodeType": "ParameterList", - "parameters": [], - "src": "10851:0:8" - }, - "scope": 5764, - "src": "10796:284:8", - "stateMutability": "nonpayable", - "superFunction": 5134, - "visibility": "public" - }, - { - "body": { - "id": 5387, - "nodeType": "Block", - "src": "11383:44:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5383, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11397:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5385, - "indexExpression": { - "argumentTypes": null, - "id": 5384, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5378, - "src": "11412:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11397:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5382, - "id": 5386, - "nodeType": "Return", - "src": "11390:31:8" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", - "id": 5388, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5378, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11335:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5377, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11335:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11334:18:8" - }, - "returnParameters": { - "id": 5382, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5381, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11374:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5380, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11374:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11373:9:8" - }, - "scope": 5764, - "src": "11314:113:8", - "stateMutability": "view", - "superFunction": 5141, - "visibility": "public" - }, - { - "body": { - "id": 5418, - "nodeType": "Block", - "src": "11778:146:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5396, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11793:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5397, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11800:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11800:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "11793:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5395, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "11785:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11785:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5401, - "nodeType": "ExpressionStatement", - "src": "11785:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5402, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "11818:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5406, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5403, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11836:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11836:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11818:29:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5407, - "indexExpression": { - "argumentTypes": null, - "id": 5405, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11848:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11818:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5408, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11855:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11818:46:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5410, - "nodeType": "ExpressionStatement", - "src": "11818:46:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5412, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11891:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11891:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5414, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11903:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5415, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11908:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5411, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5106, - "src": "11876:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 5416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11876:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5417, - "nodeType": "EmitStatement", - "src": "11871:47:8" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", - "id": 5419, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5390, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11742:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5389, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11742:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5392, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11755:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5391, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11755:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11741:29:8" - }, - "returnParameters": { - "id": 5394, - "nodeType": "ParameterList", - "parameters": [], - "src": "11778:0:8" - }, - "scope": 5764, - "src": "11715:209:8", - "stateMutability": "nonpayable", - "superFunction": 5148, - "visibility": "public" - }, - { - "body": { - "id": 5434, - "nodeType": "Block", - "src": "12362:56:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5428, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "12376:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5430, - "indexExpression": { - "argumentTypes": null, - "id": 5429, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5421, - "src": "12394:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5432, - "indexExpression": { - "argumentTypes": null, - "id": 5431, - "name": "_operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5423, - "src": "12402:9:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:36:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5427, - "id": 5433, - "nodeType": "Return", - "src": "12369:43:8" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", - "id": 5435, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5424, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5421, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12273:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5420, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12273:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5423, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12294:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5422, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12294:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12266:50:8" - }, - "returnParameters": { - "id": 5427, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5426, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12353:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5425, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12353:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12352:6:8" - }, - "scope": 5764, - "src": "12241:177:8", - "stateMutability": "view", - "superFunction": 5157, - "visibility": "public" - }, - { - "body": { - "id": 5484, - "nodeType": "Block", - "src": "12976:228:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5448, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "12991:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5450, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13008:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5449, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13000:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "12991:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5447, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "12983:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12983:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5454, - "nodeType": "ExpressionStatement", - "src": "12983:28:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5456, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13026:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13041:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5457, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13033:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5459, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13033:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "13026:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5455, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "13018:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13018:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5462, - "nodeType": "ExpressionStatement", - "src": "13018:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5464, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13067:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5465, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13074:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5463, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "13053:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13053:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5467, - "nodeType": "ExpressionStatement", - "src": "13053:30:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5469, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13106:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5470, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13113:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5468, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "13090:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13090:32:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5472, - "nodeType": "ExpressionStatement", - "src": "13090:32:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5474, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13140:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5475, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13145:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5473, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "13129:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13129:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5477, - "nodeType": "ExpressionStatement", - "src": "13129:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5479, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13177:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5480, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13184:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5481, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13189:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5478, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "13168:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13168:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5483, - "nodeType": "EmitStatement", - "src": "13163:35:8" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5485, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5444, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "12963:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5445, - "modifierName": { - "argumentTypes": null, - "id": 5443, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "12951:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12951:21:8" - } - ], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5442, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5437, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12874:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5436, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12874:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5439, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12894:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5438, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12894:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5441, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12912:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5440, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12912:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12867:66:8" - }, - "returnParameters": { - "id": 5446, - "nodeType": "ParameterList", - "parameters": [], - "src": "12976:0:8" - }, - "scope": 5764, - "src": "12846:358:8", - "stateMutability": "nonpayable", - "superFunction": 5166, - "visibility": "public" - }, - { - "body": { - "id": 5504, - "nodeType": "Block", - "src": "13960:101:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5498, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5487, - "src": "14030:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5499, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5489, - "src": "14037:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5500, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "14042:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 5501, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14052:2:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 5497, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5505, - 5535 - ], - "referencedDeclaration": 5535, - "src": "14013:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,uint256,bytes memory)" - } - }, - "id": 5502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14013:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5503, - "nodeType": "ExpressionStatement", - "src": "14013:42:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5505, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5494, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "13947:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5495, - "modifierName": { - "argumentTypes": null, - "id": 5493, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "13935:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13935:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5492, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5487, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5486, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5489, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13878:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5488, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13878:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5491, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13896:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5490, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13896:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13851:66:8" - }, - "returnParameters": { - "id": 5496, - "nodeType": "ParameterList", - "parameters": [], - "src": "13960:0:8" - }, - "scope": 5764, - "src": "13826:235:8", - "stateMutability": "nonpayable", - "superFunction": 5175, - "visibility": "public" - }, - { - "body": { - "id": 5534, - "nodeType": "Block", - "src": "14908:162:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5520, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "14928:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5521, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "14935:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5522, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14940:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5519, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5485 - ], - "referencedDeclaration": 5485, - "src": "14915:12:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14915:34:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5524, - "nodeType": "ExpressionStatement", - "src": "14915:34:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5527, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "15035:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5528, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "15042:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5529, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "15047:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5530, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5513, - "src": "15057:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 5526, - "name": "checkAndCallSafeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5763, - "src": "15010:24:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,address,uint256,bytes memory) returns (bool)" - } - }, - "id": 5531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15010:53:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5525, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "15002:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15002:62:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5533, - "nodeType": "ExpressionStatement", - "src": "15002:62:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", - "id": 5535, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5516, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14895:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5517, - "modifierName": { - "argumentTypes": null, - "id": 5515, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "14883:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14883:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5514, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5507, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14781:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5506, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14781:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5509, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14801:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5508, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14801:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5511, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14819:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5510, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14819:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5513, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14842:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5512, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14842:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14774:91:8" - }, - "returnParameters": { - "id": 5518, - "nodeType": "ParameterList", - "parameters": [], - "src": "14908:0:8" - }, - "scope": 5764, - "src": "14749:321:8", - "stateMutability": "nonpayable", - "superFunction": 5186, - "visibility": "public" - }, - { - "body": { - "id": 5566, - "nodeType": "Block", - "src": "15551:330:8", - "statements": [ - { - "assignments": [ - 5545 - ], - "declarations": [ - { - "constant": false, - "id": 5545, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5566, - "src": "15558:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5544, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15558:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5549, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5547, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15582:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5546, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "15574:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15574:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15558:33:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5550, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15763:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5551, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15775:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15763:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5554, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15803:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5553, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5388 - ], - "referencedDeclaration": 5388, - "src": "15791:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15791:21:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5556, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15816:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15791:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:61:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5560, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15852:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5561, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15859:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5559, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "15835:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15835:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:105:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5564, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "15754:121:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5543, - "id": 5565, - "nodeType": "Return", - "src": "15747:128:8" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", - "id": 5567, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5540, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5537, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15459:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5536, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15459:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5539, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15482:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5538, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15482:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15452:51:8" - }, - "returnParameters": { - "id": 5543, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5542, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15542:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5541, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "15542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15541:6:8" - }, - "scope": 5764, - "src": "15426:455:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5595, - "nodeType": "Block", - "src": "16193:118:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5575, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16208:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16223:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16215:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5578, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16215:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16208:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5574, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "16200:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16200:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5581, - "nodeType": "ExpressionStatement", - "src": "16200:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5583, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16244:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5584, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16249:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5582, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "16233:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16233:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5586, - "nodeType": "ExpressionStatement", - "src": "16233:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16287:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5588, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16279:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5590, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16279:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5591, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16291:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5592, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16296:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5587, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16270:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16270:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5594, - "nodeType": "EmitStatement", - "src": "16265:40:8" - } - ] - }, - "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", - "id": 5596, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5572, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5569, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16153:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5568, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16153:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5571, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16166:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5570, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16166:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16152:31:8" - }, - "returnParameters": { - "id": 5573, - "nodeType": "ParameterList", - "parameters": [], - "src": "16193:0:8" - }, - "scope": 5764, - "src": "16138:173:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5621, - "nodeType": "Block", - "src": "16562:134:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5604, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16583:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5605, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16591:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5603, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "16569:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16569:31:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5607, - "nodeType": "ExpressionStatement", - "src": "16569:31:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5609, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16623:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5610, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16631:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5608, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "16607:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16607:33:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5612, - "nodeType": "ExpressionStatement", - "src": "16607:33:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5614, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16661:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16677:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5615, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16669:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5617, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16669:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5618, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16681:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5613, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16652:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16652:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5620, - "nodeType": "EmitStatement", - "src": "16647:43:8" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", - "id": 5622, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5598, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16519:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16519:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5600, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16535:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16535:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16518:34:8" - }, - "returnParameters": { - "id": 5602, - "nodeType": "ParameterList", - "parameters": [], - "src": "16562:0:8" - }, - "scope": 5764, - "src": "16504:192:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5654, - "nodeType": "Block", - "src": "17032:153:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5631, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17055:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5630, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "17047:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17047:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5633, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5624, - "src": "17068:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17047:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5629, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17039:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17039:36:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5636, - "nodeType": "ExpressionStatement", - "src": "17039:36:8" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5637, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17086:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5639, - "indexExpression": { - "argumentTypes": null, - "id": 5638, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17101:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17086:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17122:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17114:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17114:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17086:38:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5653, - "nodeType": "IfStatement", - "src": "17082:98:8", - "trueBody": { - "id": 5652, - "nodeType": "Block", - "src": "17126:54:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5644, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17135:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5646, - "indexExpression": { - "argumentTypes": null, - "id": 5645, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17150:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17135:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17170:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5647, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17162:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5649, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17162:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17135:37:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5651, - "nodeType": "ExpressionStatement", - "src": "17135:37:8" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5655, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5627, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5624, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "16989:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5623, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16989:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5626, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "17005:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5625, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17005:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16988:34:8" - }, - "returnParameters": { - "id": 5628, - "nodeType": "ParameterList", - "parameters": [], - "src": "17032:0:8" - }, - "scope": 5764, - "src": "16966:219:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5689, - "nodeType": "Block", - "src": "17515:148:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5663, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17530:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5665, - "indexExpression": { - "argumentTypes": null, - "id": 5664, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17541:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17530:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17562:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17554:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5668, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17554:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17530:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5662, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17522:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17522:43:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5671, - "nodeType": "ExpressionStatement", - "src": "17522:43:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5672, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17572:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5674, - "indexExpression": { - "argumentTypes": null, - "id": 5673, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17583:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17572:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5675, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17595:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17572:26:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5677, - "nodeType": "ExpressionStatement", - "src": "17572:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5678, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17605:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5680, - "indexExpression": { - "argumentTypes": null, - "id": 5679, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17622:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17605:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17655:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5681, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17629:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5683, - "indexExpression": { - "argumentTypes": null, - "id": 5682, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17646:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17629:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "17629:25:8", - "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": 5686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17629:28:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17605:52:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5688, - "nodeType": "ExpressionStatement", - "src": "17605:52:8" - } - ] - }, - "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", - "id": 5690, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addTokenTo", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5660, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5657, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17475:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5656, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17475:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5659, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17488:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5658, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17488:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17474:31:8" - }, - "returnParameters": { - "id": 5661, - "nodeType": "ParameterList", - "parameters": [], - "src": "17515:0:8" - }, - "scope": 5764, - "src": "17455:208:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5724, - "nodeType": "Block", - "src": "18016:151:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5702, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5699, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18039:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5698, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "18031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18031:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5701, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18052:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "18031:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5697, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "18023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18023:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5704, - "nodeType": "ExpressionStatement", - "src": "18023:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5705, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18065:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5707, - "indexExpression": { - "argumentTypes": null, - "id": 5706, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18082:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18065:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18119:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5708, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18091:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5710, - "indexExpression": { - "argumentTypes": null, - "id": 5709, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18108:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18091:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "18091:27:8", - "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": 5713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18091:30:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18065:56:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5715, - "nodeType": "ExpressionStatement", - "src": "18065:56:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5716, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "18128:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5718, - "indexExpression": { - "argumentTypes": null, - "id": 5717, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18139:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18128:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18159:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18151:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18151:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "18128:33:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5723, - "nodeType": "ExpressionStatement", - "src": "18128:33:8" - } - ] - }, - "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", - "id": 5725, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "removeTokenFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5695, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5692, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17974:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5691, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17974:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5694, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17989:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5693, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17989:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17973:33:8" - }, - "returnParameters": { - "id": 5696, - "nodeType": "ParameterList", - "parameters": [], - "src": "18016:0:8" - }, - "scope": 5764, - "src": "17949:218:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5762, - "nodeType": "Block", - "src": "18846:195:8", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 5741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "18857:17:8", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5738, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18858:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 5008, - "src": "18858:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 5740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18858:16:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5745, - "nodeType": "IfStatement", - "src": "18853:51:8", - "trueBody": { - "id": 5744, - "nodeType": "Block", - "src": "18876:28:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5742, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18892:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 5737, - "id": 5743, - "nodeType": "Return", - "src": "18885:11:8" - } - ] - } - }, - { - "assignments": [ - 5747 - ], - "declarations": [ - { - "constant": false, - "id": 5747, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 5762, - "src": "18910:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5746, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "18910:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5756, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5752, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5727, - "src": "18971:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5753, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5731, - "src": "18978:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5754, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5733, - "src": "18988:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5749, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18941:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5748, - "name": "ERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5080, - "src": "18926:14:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", - "typeString": "type(contract ERC721Receiver)" - } - }, - "id": 5750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:19:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Receiver_$5080", - "typeString": "contract ERC721Receiver" - } - }, - "id": 5751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 5079, - "src": "18926:36:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" - } - }, - "id": 5755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:68:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18910:84:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5757, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5747, - "src": "19009:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5758, - "name": "ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5206, - "src": "19019:15:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "19009:25:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5760, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19008:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5737, - "id": 5761, - "nodeType": "Return", - "src": "19001:34:8" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", - "id": 5763, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "checkAndCallSafeTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5734, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5727, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18724:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5726, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18724:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5729, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18744:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18744:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5731, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18762:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5730, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18762:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5733, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18785:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5732, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "18785:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18717:91:8" - }, - "returnParameters": { - "id": 5737, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5736, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18837:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5735, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18837:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18836:6:8" - }, - "scope": 5764, - "src": "18684:357:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "6942:12102:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5765, - "name": "ERC721BasicToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5764, - "src": "19081:16:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", - "typeString": "contract ERC721BasicToken" - } - }, - "id": 5766, - "nodeType": "InheritanceSpecifier", - "src": "19081:16:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187, - 5764 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 5797, - "linearizedBaseContracts": [ - 5797, - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicTokenMock", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5780, - "nodeType": "Block", - "src": "19155:39:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5776, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5768, - "src": "19174:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5777, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5770, - "src": "19179:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5773, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19162:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 5596, - "src": "19162:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19162:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5779, - "nodeType": "ExpressionStatement", - "src": "19162:26:8" - } - ] - }, - "documentation": null, - "id": 5781, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5771, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5768, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19117:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5767, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19117:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5770, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19130:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5769, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19130:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19116:31:8" - }, - "returnParameters": { - "id": 5772, - "nodeType": "ParameterList", - "parameters": [], - "src": "19155:0:8" - }, - "scope": 5797, - "src": "19103:91:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5795, - "nodeType": "Block", - "src": "19239:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5790, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19266:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5789, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "19258:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19258:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5792, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19277:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5786, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19246:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 5622, - "src": "19246:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19246:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5794, - "nodeType": "ExpressionStatement", - "src": "19246:40:8" - } - ] - }, - "documentation": null, - "id": 5796, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5784, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5783, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5796, - "src": "19214:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5782, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19214:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19213:18:8" - }, - "returnParameters": { - "id": 5785, - "nodeType": "ParameterList", - "parameters": [], - "src": "19239:0:8" - }, - "scope": 5797, - "src": "19200:92:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "19048:247:8" - } - ], - "src": "0:19297:8" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:20.030Z", - "devdoc": { - "methods": { - "approve(address,uint256)": { - "details": "Approves another address to transfer the given token ID\r The zero address indicates there is no approved address.\r There can only be one approved address per token at a given time.\r Can only be called by the token owner or an approved operator.\r", - "params": { - "_to": "address to be approved for the given token ID\r", - "_tokenId": "uint256 ID of the token to be approved\r" - } - }, - "balanceOf(address)": { - "details": "Gets the balance of the specified address\r", - "params": { - "_owner": "address to query the balance of\r" - }, - "return": "uint256 representing the amount owned by the passed address\r" - }, - "exists(uint256)": { - "details": "Returns whether the specified token exists\r", - "params": { - "_tokenId": "uint256 ID of the token to query the existence of\r" - }, - "return": "whether the token exists\r" - }, - "getApproved(uint256)": { - "details": "Gets the approved address for a token ID, or zero if no address set\r", - "params": { - "_tokenId": "uint256 ID of the token to query the approval of\r" - }, - "return": "address currently approved for the given token ID\r" - }, - "isApprovedForAll(address,address)": { - "details": "Tells whether an operator is approved by a given owner\r", - "params": { - "_operator": "operator address which you want to query the approval of\r", - "_owner": "owner address which you want to query the approval of\r" - }, - "return": "bool whether the given operator is approved by the given owner\r" - }, - "ownerOf(uint256)": { - "details": "Gets the owner of the specified token ID\r", - "params": { - "_tokenId": "uint256 ID of the token to query the owner of\r" - }, - "return": "owner address currently marked as the owner of the given token ID\r" - }, - "safeTransferFrom(address,address,uint256)": { - "details": "Safely transfers the ownership of a given token ID to another address\r If the target address is a contract, it must implement `onERC721Received`,\r which is called upon a safe transfer, and return the magic value\r `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r the transfer is reverted.\r * Requires the msg sender to be the owner, approved, or operator\r", - "params": { - "_from": "current owner of the token\r", - "_to": "address to receive the ownership of the given token ID\r", - "_tokenId": "uint256 ID of the token to be transferred\r" - } - }, - "safeTransferFrom(address,address,uint256,bytes)": { - "details": "Safely transfers the ownership of a given token ID to another address\r If the target address is a contract, it must implement `onERC721Received`,\r which is called upon a safe transfer, and return the magic value\r `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r the transfer is reverted.\r Requires the msg sender to be the owner, approved, or operator\r", - "params": { - "_data": "bytes data to send along with a safe transfer check\r", - "_from": "current owner of the token\r", - "_to": "address to receive the ownership of the given token ID\r", - "_tokenId": "uint256 ID of the token to be transferred\r" - } - }, - "setApprovalForAll(address,bool)": { - "details": "Sets or unsets the approval of a given operator\r An operator is allowed to transfer all tokens of the sender on their behalf\r", - "params": { - "_approved": "representing the status of the approval to be set\r", - "_to": "operator address to set the approval\r" - } - }, - "supportsInterface(bytes4)": { - "details": "implement supportsInterface(bytes4) using a lookup table\r" - }, - "transferFrom(address,address,uint256)": { - "details": "Transfers the ownership of a given token ID to another address\r Usage of this method is discouraged, use `safeTransferFrom` whenever possible\r Requires the msg sender to be the owner, approved, or operator\r", - "params": { - "_from": "current owner of the token\r", - "_to": "address to receive the ownership of the given token ID\r", - "_tokenId": "uint256 ID of the token to be transferred\r" - } - } - } - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/ERC721Receiver.json b/src/contracts/ERC721Receiver.json deleted file mode 100644 index 9cf742e..0000000 --- a/src/contracts/ERC721Receiver.json +++ /dev/null @@ -1,21226 +0,0 @@ -{ - "contractName": "ERC721Receiver", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_tokenId", - "type": "uint256" - }, - { - "name": "_data", - "type": "bytes" - } - ], - "name": "onERC721Received", - "outputs": [ - { - "name": "", - "type": "bytes4" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers\\r from ERC721 asset contracts.\\r\",\"methods\":{\"onERC721Received(address,uint256,bytes)\":{\"details\":\"The ERC721 smart contract calls this function on the recipient\\r after a `safetransfer`. This function MAY throw to revert and reject the\\r transfer. This function MUST use 50,000 gas or less. Return of other\\r than the magic value MUST result in the transaction being reverted.\\r Note: the contract address is always the message sender.\\r\",\"params\":{\"_data\":\"Additional data with no specified format\\r\",\"_from\":\"The sending address\\r\",\"_tokenId\":\"The NFT identifier which is being transfered\\r\"},\"return\":\"`bytes4(keccak256(\\\"onERC721Received(address,uint256,bytes)\\\"))`\\r\"}},\"title\":\"ERC721 token receiver interface\\r\"},\"userdoc\":{\"methods\":{\"onERC721Received(address,uint256,bytes)\":{\"notice\":\"Handle the receipt of an NFT\\r\"}}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":\"ERC721Receiver\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":{\"keccak256\":\"0x4dd046a190602871aa9743a94149789c1e14b14f609c68d0f34d72e19bd690ce\",\"urls\":[\"bzzr://ea591dfb88f3591fe4344b7e665024c5aa3e8fb758a0409db79b1885a996b825\",\"dweb:/ipfs/QmXrwJ2TTXMWHBQxuLCqrj96gfh5HCHK57JsCEcXJ84t6z\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity >=0.5.0 < 0.6.0;\r\nimport '../../dao/oz/SafeMath.sol';\r\n\r\n/**\r\n * @title SafeMath\r\n * @dev Math operations with safety checks that throw on error\r\n */\r\n//library SafeMath {\r\n//\r\n// /**\r\n// * @dev Multiplies two numbers, throws on overflow.\r\n// */\r\n// function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// // Gas optimization: this is cheaper than asserting 'a' not being zero, but the\r\n// // benefit is lost if 'b' is also tested.\r\n// // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\r\n// if (a == 0) {\r\n// return 0;\r\n// }\r\n//\r\n// c = a * b;\r\n// assert(c / a == b);\r\n// return c;\r\n// }\r\n//\r\n// /**\r\n// * @dev Integer division of two numbers, truncating the quotient.\r\n// */\r\n// function div(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// // assert(b > 0); // Solidity automatically throws when dividing by 0\r\n// // uint256 c = a / b;\r\n// // assert(a == b * c + a % b); // There is no case in which this doesn't hold\r\n// return a / b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).\r\n// */\r\n// function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// assert(b <= a);\r\n// return a - b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Adds two numbers, throws on overflow.\r\n// */\r\n// function add(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// c = a + b;\r\n// assert(c >= a);\r\n// return c;\r\n// }\r\n//}\r\n\r\n/**\r\n * Utility library of inline functions on addresses\r\n */\r\nlibrary AddressUtils {\r\n\r\n /**\r\n * Returns whether the target address is a contract\r\n * @dev This function will return false if invoked during the constructor of a contract,\r\n * as the code is not actually created until after the constructor finishes.\r\n * @param addr address to check\r\n * @return whether the target address is a contract\r\n */\r\n function isContract(address addr) internal view returns (bool) {\r\n uint256 size;\r\n // XXX Currently there is no better way to check if there is a contract in an address\r\n // than to check the size of the code at that address.\r\n // See https://ethereum.stackexchange.com/a/14016/36603\r\n // for more details about how this works.\r\n // TODO Check this again before the Serenity release, because all addresses will be\r\n // contracts then.\r\n // solium-disable-next-line security/no-inline-assembly\r\n assembly { size := extcodesize(addr) }\r\n return size > 0;\r\n }\r\n\r\n}\r\n\r\n/**\r\n * @title ERC165\r\n * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r\n */\r\ninterface ERC165 {\r\n\r\n /**\r\n * @notice Query if a contract implements an interface\r\n * @param _interfaceId The interface identifier, as specified in ERC-165\r\n * @dev Interface identification is specified in ERC-165. This function\r\n * uses less than 30,000 gas.\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool);\r\n}\r\n\r\n\r\n/**\r\n * @title SupportsInterfaceWithLookup\r\n * @author Matt Condon (@shrugs)\r\n * @dev Implements ERC165 using a lookup table.\r\n */\r\ncontract SupportsInterfaceWithLookup is ERC165 {\r\n bytes4 public constant InterfaceId_ERC165 = 0x01ffc9a7;\r\n /**\r\n * 0x01ffc9a7 ===\r\n * bytes4(keccak256('supportsInterface(bytes4)'))\r\n */\r\n\r\n /**\r\n * @dev a mapping of interface id to whether or not it's supported\r\n */\r\n mapping(bytes4 => bool) internal supportedInterfaces;\r\n\r\n /**\r\n * @dev A contract implementing SupportsInterfaceWithLookup\r\n * implement ERC165 itself\r\n */\r\n constructor()\r\n public\r\n {\r\n _registerInterface(InterfaceId_ERC165);\r\n }\r\n\r\n /**\r\n * @dev implement supportsInterface(bytes4) using a lookup table\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool)\r\n {\r\n return supportedInterfaces[_interfaceId];\r\n }\r\n\r\n /**\r\n * @dev private method for registering an interface\r\n */\r\n function _registerInterface(bytes4 _interfaceId)\r\n internal\r\n {\r\n require(_interfaceId != 0xffffffff);\r\n supportedInterfaces[_interfaceId] = true;\r\n }\r\n}\r\n\r\n/**\r\n * @title ERC721 token receiver interface\r\n * @dev Interface for any contract that wants to support safeTransfers\r\n * from ERC721 asset contracts.\r\n */\r\ncontract ERC721Receiver {\r\n /**\r\n * @dev Magic value to be returned upon successful reception of an NFT\r\n * Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`,\r\n * which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n */\r\n bytes4 internal constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n /**\r\n * @notice Handle the receipt of an NFT\r\n * @dev The ERC721 smart contract calls this function on the recipient\r\n * after a `safetransfer`. This function MAY throw to revert and reject the\r\n * transfer. This function MUST use 50,000 gas or less. Return of other\r\n * than the magic value MUST result in the transaction being reverted.\r\n * Note: the contract address is always the message sender.\r\n * @param _from The sending address\r\n * @param _tokenId The NFT identifier which is being transfered\r\n * @param _data Additional data with no specified format\r\n * @return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n */\r\n function onERC721Received(\r\n address _from,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n returns(bytes4);\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic interface\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721Basic is ERC165 {\r\n event Transfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n );\r\n event Approval(\r\n address _owner,\r\n address _approved,\r\n uint256 _tokenId\r\n );\r\n event ApprovalForAll(\r\n address _owner,\r\n address _operator,\r\n bool _approved\r\n );\r\n\r\n function balanceOf(address _owner) public view returns (uint256 _balance);\r\n function ownerOf(uint256 _tokenId) public view returns (address _owner);\r\n function exists(uint256 _tokenId) public view returns (bool _exists);\r\n\r\n function approve(address _to, uint256 _tokenId) public;\r\n function getApproved(uint256 _tokenId)\r\n public view returns (address _operator);\r\n\r\n function setApprovalForAll(address _operator, bool _approved) public;\r\n function isApprovedForAll(address _owner, address _operator)\r\n public view returns (bool);\r\n\r\n function transferFrom(address _from, address _to, uint256 _tokenId) public;\r\n function safeTransferFrom(address _from, address _to, uint256 _tokenId)\r\n public;\r\n\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public;\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic implementation\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721BasicToken is SupportsInterfaceWithLookup, ERC721Basic {\r\n\r\n bytes4 private constant InterfaceId_ERC721 = 0x80ac58cd;\r\n /*\r\n * 0x80ac58cd ===\r\n * bytes4(keccak256('balanceOf(address)')) ^\r\n * bytes4(keccak256('ownerOf(uint256)')) ^\r\n * bytes4(keccak256('approve(address,uint256)')) ^\r\n * bytes4(keccak256('getApproved(uint256)')) ^\r\n * bytes4(keccak256('setApprovalForAll(address,bool)')) ^\r\n * bytes4(keccak256('isApprovedForAll(address,address)')) ^\r\n * bytes4(keccak256('transferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)'))\r\n */\r\n\r\n bytes4 private constant InterfaceId_ERC721Exists = 0x4f558e79;\r\n /*\r\n * 0x4f558e79 ===\r\n * bytes4(keccak256('exists(uint256)'))\r\n */\r\n\r\n using SafeMath for uint256;\r\n using AddressUtils for address;\r\n\r\n // Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n // which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n bytes4 private constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n // Mapping from token ID to owner\r\n mapping (uint256 => address) internal tokenOwner;\r\n\r\n // Mapping from token ID to approved address\r\n mapping (uint256 => address) internal tokenApprovals;\r\n\r\n // Mapping from owner to number of owned token\r\n mapping (address => uint256) internal ownedTokensCount;\r\n\r\n // Mapping from owner to operator approvals\r\n mapping (address => mapping (address => bool)) internal operatorApprovals;\r\n\r\n\r\n uint public testint;\r\n /**\r\n * @dev Guarantees msg.sender is owner of the given token\r\n * @param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r\n */\r\n modifier onlyOwnerOf(uint256 _tokenId) {\r\n require(ownerOf(_tokenId) == msg.sender);\r\n _;\r\n }\r\n\r\n /**\r\n * @dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n * @param _tokenId uint256 ID of the token to validate\r\n */\r\n modifier canTransfer(uint256 _tokenId) {\r\n require(isApprovedOrOwner(msg.sender, _tokenId));\r\n _;\r\n }\r\n\r\n constructor()\r\n public\r\n {\r\n // register the supported interfaces to conform to ERC721 via ERC165\r\n _registerInterface(InterfaceId_ERC721);\r\n _registerInterface(InterfaceId_ERC721Exists);\r\n }\r\n\r\n /**\r\n * @dev Gets the balance of the specified address\r\n * @param _owner address to query the balance of\r\n * @return uint256 representing the amount owned by the passed address\r\n */\r\n function balanceOf(address _owner) public view returns (uint256) {\r\n require(_owner != address(0));\r\n return ownedTokensCount[_owner];\r\n }\r\n\r\n /**\r\n * @dev Gets the owner of the specified token ID\r\n * @param _tokenId uint256 ID of the token to query the owner of\r\n * @return owner address currently marked as the owner of the given token ID\r\n */\r\n function ownerOf(uint256 _tokenId) public view returns (address) {\r\n address owner = tokenOwner[_tokenId];\r\n require(owner != address(0));\r\n return owner;\r\n }\r\n\r\n /**\r\n * @dev Returns whether the specified token exists\r\n * @param _tokenId uint256 ID of the token to query the existence of\r\n * @return whether the token exists\r\n */\r\n function exists(uint256 _tokenId) public view returns (bool) {\r\n address owner = tokenOwner[_tokenId];\r\n return owner != address(0);\r\n }\r\n\r\n /**\r\n * @dev Approves another address to transfer the given token ID\r\n * The zero address indicates there is no approved address.\r\n * There can only be one approved address per token at a given time.\r\n * Can only be called by the token owner or an approved operator.\r\n * @param _to address to be approved for the given token ID\r\n * @param _tokenId uint256 ID of the token to be approved\r\n */\r\n function approve(address _to, uint256 _tokenId) public {\r\n address owner = ownerOf(_tokenId);\r\n require(_to != owner);\r\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender));\r\n\r\n tokenApprovals[_tokenId] = _to;\r\n emit Approval(owner, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Gets the approved address for a token ID, or zero if no address set\r\n * @param _tokenId uint256 ID of the token to query the approval of\r\n * @return address currently approved for the given token ID\r\n */\r\n function getApproved(uint256 _tokenId) public view returns (address) {\r\n return tokenApprovals[_tokenId];\r\n }\r\n\r\n /**\r\n * @dev Sets or unsets the approval of a given operator\r\n * An operator is allowed to transfer all tokens of the sender on their behalf\r\n * @param _to operator address to set the approval\r\n * @param _approved representing the status of the approval to be set\r\n */\r\n function setApprovalForAll(address _to, bool _approved) public {\r\n require(_to != msg.sender);\r\n operatorApprovals[msg.sender][_to] = _approved;\r\n emit ApprovalForAll(msg.sender, _to, _approved);\r\n }\r\n\r\n /**\r\n * @dev Tells whether an operator is approved by a given owner\r\n * @param _owner owner address which you want to query the approval of\r\n * @param _operator operator address which you want to query the approval of\r\n * @return bool whether the given operator is approved by the given owner\r\n */\r\n function isApprovedForAll(\r\n address _owner,\r\n address _operator\r\n )\r\n public\r\n view\r\n returns (bool)\r\n {\r\n return operatorApprovals[_owner][_operator];\r\n }\r\n\r\n /**\r\n * @dev Transfers the ownership of a given token ID to another address\r\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function transferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n require(_from != address(0));\r\n require(_to != address(0));\r\n\r\n clearApproval(_from, _tokenId);\r\n removeTokenFrom(_from, _tokenId);\r\n addTokenTo(_to, _tokenId);\r\n\r\n emit Transfer(_from, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n *\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n // solium-disable-next-line arg-overflow\r\n safeTransferFrom(_from, _to, _tokenId, \"\");\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes data to send along with a safe transfer check\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n transferFrom(_from, _to, _tokenId);\r\n // solium-disable-next-line arg-overflow\r\n require(checkAndCallSafeTransfer(_from, _to, _tokenId, _data));\r\n }\r\n\r\n /**\r\n * @dev Returns whether the given spender can transfer a given token ID\r\n * @param _spender address of the spender to query\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @return bool whether the msg.sender is approved for the given token ID,\r\n * is an operator of the owner, or is the owner of the token\r\n */\r\n function isApprovedOrOwner(\r\n address _spender,\r\n uint256 _tokenId\r\n )\r\n internal\r\n view\r\n returns (bool)\r\n {\r\n address owner = ownerOf(_tokenId);\r\n // Disable solium check because of\r\n // https://github.com/duaraghav8/Solium/issues/175\r\n // solium-disable-next-line operator-whitespace\r\n return (\r\n _spender == owner ||\r\n getApproved(_tokenId) == _spender ||\r\n isApprovedForAll(owner, _spender)\r\n );\r\n }\r\n\r\n /**\r\n * @dev Internal function to mint a new token\r\n * Reverts if the given token ID already exists\r\n * @param _to The address that will own the minted token\r\n * @param _tokenId uint256 ID of the token to be minted by the msg.sender\r\n */\r\n function _mint(address _to, uint256 _tokenId) internal {\r\n require(_to != address(0));\r\n addTokenTo(_to, _tokenId);\r\n emit Transfer(address(0), _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to burn a specific token\r\n * Reverts if the token does not exist\r\n * @param _tokenId uint256 ID of the token being burned by the msg.sender\r\n */\r\n function _burn(address _owner, uint256 _tokenId) internal {\r\n clearApproval(_owner, _tokenId);\r\n removeTokenFrom(_owner, _tokenId);\r\n emit Transfer(_owner, address(0), _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to clear current approval of a given token ID\r\n * Reverts if the given address is not indeed the owner of the token\r\n * @param _owner owner of the token\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function clearApproval(address _owner, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _owner);\r\n if (tokenApprovals[_tokenId] != address(0)) {\r\n tokenApprovals[_tokenId] = address(0);\r\n }\r\n }\r\n\r\n /**\r\n * @dev Internal function to add a token ID to the list of a given address\r\n * @param _to address representing the new owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r\n */\r\n function addTokenTo(address _to, uint256 _tokenId) internal {\r\n require(tokenOwner[_tokenId] == address(0));\r\n tokenOwner[_tokenId] = _to;\r\n ownedTokensCount[_to] = ownedTokensCount[_to].add(1);\r\n }\r\n\r\n /**\r\n * @dev Internal function to remove a token ID from the list of a given address\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r\n */\r\n function removeTokenFrom(address _from, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _from);\r\n ownedTokensCount[_from] = ownedTokensCount[_from].sub(1);\r\n tokenOwner[_tokenId] = address(0);\r\n }\r\n\r\n /**\r\n * @dev Internal function to invoke `onERC721Received` on a target address\r\n * The call is not executed if the target address is not a contract\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _to target address that will receive the tokens\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes optional data to send along with the call\r\n * @return whether the call correctly returned the expected magic value\r\n */\r\n function checkAndCallSafeTransfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n internal\r\n returns (bool)\r\n {\r\n if (!_to.isContract()) {\r\n return true;\r\n }\r\n bytes4 retval = ERC721Receiver(_to).onERC721Received(\r\n _from, _tokenId, _data);\r\n return (retval == ERC721_RECEIVED);\r\n }\r\n}\r\n\r\ncontract ERC721BasicTokenMock is ERC721BasicToken {\r\n function mint(address _to, uint256 _tokenId) public {\r\n super._mint(_to, _tokenId);\r\n }\r\n\r\n function burn(uint256 _tokenId) public {\r\n super._burn(ownerOf(_tokenId), _tokenId);\r\n }\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\inherited\\ERC721Basic.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", - "exportedSymbols": { - "AddressUtils": [ - 5009 - ], - "ERC165": [ - 5017 - ], - "ERC721Basic": [ - 5187 - ], - "ERC721BasicToken": [ - 5764 - ], - "ERC721BasicTokenMock": [ - 5797 - ], - "ERC721Receiver": [ - 5080 - ], - "SupportsInterfaceWithLookup": [ - 5065 - ] - }, - "id": 5798, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4991, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:8" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "../../dao/oz/SafeMath.sol", - "id": 4992, - "nodeType": "ImportDirective", - "scope": 5798, - "sourceUnit": 9858, - "src": "34:35:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "Utility library of inline functions on addresses\r", - "fullyImplemented": true, - "id": 5009, - "linearizedBaseContracts": [ - 5009 - ], - "name": "AddressUtils", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5007, - "nodeType": "Block", - "src": "2012:524:8", - "statements": [ - { - "assignments": [ - 5000 - ], - "declarations": [ - { - "constant": false, - "id": 5000, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 5007, - "src": "2019:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4999, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2019:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5001, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2019:12:8" - }, - { - "externalReferences": [ - { - "size": { - "declaration": 5000, - "isOffset": false, - "isSlot": false, - "src": "2482:4:8", - "valueSize": 1 - } - }, - { - "addr": { - "declaration": 4994, - "isOffset": false, - "isSlot": false, - "src": "2502:4:8", - "valueSize": 1 - } - } - ], - "id": 5002, - "nodeType": "InlineAssembly", - "operations": "{ size := extcodesize(addr) }", - "src": "2471:38:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5003, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5000, - "src": "2522:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5004, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2529:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2522:8:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4998, - "id": 5006, - "nodeType": "Return", - "src": "2515:15:8" - } - ] - }, - "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", - "id": 5008, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4994, - "name": "addr", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "1969:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1969:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1968:14:8" - }, - "returnParameters": { - "id": 4998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4997, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "2006:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4996, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2006:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2005:6:8" - }, - "scope": 5009, - "src": "1949:587:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "1590:951:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", - "fullyImplemented": false, - "id": 5017, - "linearizedBaseContracts": [ - 5017 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", - "id": 5016, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5012, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5011, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "2950:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5010, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "2950:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2949:21:8" - }, - "returnParameters": { - "id": 5015, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5014, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "3009:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5013, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3009:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3008:6:8" - }, - "scope": 5017, - "src": "2923:92:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 5798, - "src": "2643:375:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5018, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "3196:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5019, - "nodeType": "InheritanceSpecifier", - "src": "3196:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", - "fullyImplemented": true, - "id": 5065, - "linearizedBaseContracts": [ - 5065, - 5017 - ], - "name": "SupportsInterfaceWithLookup", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5022, - "name": "InterfaceId_ERC165", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3208:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5020, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3208:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 5021, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3252:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 5026, - "name": "supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3443:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 5025, - "keyType": { - "id": 5023, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3451:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "3443:23:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 5024, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3461:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 5033, - "nodeType": "Block", - "src": "3638:51:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5030, - "name": "InterfaceId_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5022, - "src": "3664:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5029, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "3645:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3645:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5032, - "nodeType": "ExpressionStatement", - "src": "3645:38:8" - } - ] - }, - "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", - "id": 5034, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5027, - "nodeType": "ParameterList", - "parameters": [], - "src": "3620:2:8" - }, - "returnParameters": { - "id": 5028, - "nodeType": "ParameterList", - "parameters": [], - "src": "3638:0:8" - }, - "scope": 5065, - "src": "3609:80:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5045, - "nodeType": "Block", - "src": "3872:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5041, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "3886:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5043, - "indexExpression": { - "argumentTypes": null, - "id": 5042, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5036, - "src": "3906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3886:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5040, - "id": 5044, - "nodeType": "Return", - "src": "3879:40:8" - } - ] - }, - "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", - "id": 5046, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5037, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5036, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3804:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5035, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3804:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3803:21:8" - }, - "returnParameters": { - "id": 5040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5039, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3863:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5038, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3863:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3862:6:8" - }, - "scope": 5065, - "src": "3777:148:8", - "stateMutability": "view", - "superFunction": 5016, - "visibility": "external" - }, - { - "body": { - "id": 5063, - "nodeType": "Block", - "src": "4066:95:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5052, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4081:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 5053, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4097:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "4081:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5051, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4073:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4073:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5056, - "nodeType": "ExpressionStatement", - "src": "4073:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5057, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "4115:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5059, - "indexExpression": { - "argumentTypes": null, - "id": 5058, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4135:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4115:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4151:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4115:40:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5062, - "nodeType": "ExpressionStatement", - "src": "4115:40:8" - } - ] - }, - "documentation": "@dev private method for registering an interface\r", - "id": 5064, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5049, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5048, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5064, - "src": "4028:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5047, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4028:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4027:21:8" - }, - "returnParameters": { - "id": 5050, - "nodeType": "ParameterList", - "parameters": [], - "src": "4066:0:8" - }, - "scope": 5065, - "src": "4000:161:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "3156:1008:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", - "fullyImplemented": false, - "id": 5080, - "linearizedBaseContracts": [ - 5080 - ], - "name": "ERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5068, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5080, - "src": "4607:53:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5066, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4607:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4650:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "internal" - }, - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", - "id": 5079, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5070, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5364:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5069, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5364:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5072, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5384:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5071, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5384:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5074, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5407:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5073, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5407:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5357:73:8" - }, - "returnParameters": { - "id": 5078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5077, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5456:6:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5076, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "5456:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5455:8:8" - }, - "scope": 5080, - "src": "5332:132:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "4326:1141:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5081, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "5641:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5082, - "nodeType": "InheritanceSpecifier", - "src": "5641:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": false, - "id": 5187, - "linearizedBaseContracts": [ - 5187, - 5017 - ], - "name": "ERC721Basic", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 5090, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 5089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5084, - "indexed": false, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5674:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5083, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5674:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5086, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5695:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5085, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5695:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5088, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5714:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5087, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5714:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5667:69:8" - }, - "src": "5653:84:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5098, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 5097, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5092, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5762:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5091, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5762:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5094, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5784:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5784:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5096, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5809:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5095, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5809:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5755:76:8" - }, - "src": "5741:91:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5106, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 5105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5100, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5863:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5099, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5863:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5102, - "indexed": false, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5885:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5101, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5885:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5104, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5910:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5103, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5910:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5856:73:8" - }, - "src": "5836:94:8" - }, - { - "body": null, - "documentation": null, - "id": 5113, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5109, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5108, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5955:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5107, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5955:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5954:16:8" - }, - "returnParameters": { - "id": 5112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5111, - "name": "_balance", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5992:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5110, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5992:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5991:18:8" - }, - "scope": 5187, - "src": "5936:74:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5120, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5116, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5115, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6031:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5114, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6030:18:8" - }, - "returnParameters": { - "id": 5119, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5118, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6070:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5117, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6070:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6069:16:8" - }, - "scope": 5187, - "src": "6014:72:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5127, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5123, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5122, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6106:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5121, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6106:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6105:18:8" - }, - "returnParameters": { - "id": 5126, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5125, - "name": "_exists", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6145:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5124, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6145:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6144:14:8" - }, - "scope": 5187, - "src": "6090:69:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5134, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5132, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5129, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6182:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6182:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5131, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6195:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6195:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6181:31:8" - }, - "returnParameters": { - "id": 5133, - "nodeType": "ParameterList", - "parameters": [], - "src": "6219:0:8" - }, - "scope": 5187, - "src": "6165:55:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5141, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5136, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6245:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5135, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6245:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6244:18:8" - }, - "returnParameters": { - "id": 5140, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5139, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6289:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5138, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6289:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6288:19:8" - }, - "scope": 5187, - "src": "6224:84:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5148, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5143, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6341:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6341:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5145, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6360:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5144, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6360:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6340:35:8" - }, - "returnParameters": { - "id": 5147, - "nodeType": "ParameterList", - "parameters": [], - "src": "6382:0:8" - }, - "scope": 5187, - "src": "6314:69:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5157, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5150, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6413:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5149, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6413:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5152, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6429:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5151, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6429:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6412:35:8" - }, - "returnParameters": { - "id": 5156, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5155, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6474:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5154, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6474:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6473:6:8" - }, - "scope": 5187, - "src": "6387:93:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5166, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5159, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6508:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5158, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6508:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5161, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6523:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5160, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6523:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5163, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6536:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5162, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6536:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6507:46:8" - }, - "returnParameters": { - "id": 5165, - "nodeType": "ParameterList", - "parameters": [], - "src": "6560:0:8" - }, - "scope": 5187, - "src": "6486:75:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5175, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5168, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6591:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5167, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6591:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5170, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6606:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5169, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6606:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5172, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6619:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6619:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6590:46:8" - }, - "returnParameters": { - "id": 5174, - "nodeType": "ParameterList", - "parameters": [], - "src": "6648:0:8" - }, - "scope": 5187, - "src": "6565:84:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5186, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5177, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6687:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5176, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6687:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5179, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6707:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5178, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6707:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5181, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6725:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5180, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6725:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5183, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6748:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5182, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6748:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6680:91:8" - }, - "returnParameters": { - "id": 5185, - "nodeType": "ParameterList", - "parameters": [], - "src": "6783:0:8" - }, - "scope": 5187, - "src": "6655:129:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "5617:1170:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5188, - "name": "SupportsInterfaceWithLookup", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5065, - "src": "6971:27:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", - "typeString": "contract SupportsInterfaceWithLookup" - } - }, - "id": 5189, - "nodeType": "InheritanceSpecifier", - "src": "6971:27:8" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5190, - "name": "ERC721Basic", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5187, - "src": "7000:11:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Basic_$5187", - "typeString": "contract ERC721Basic" - } - }, - "id": 5191, - "nodeType": "InheritanceSpecifier", - "src": "7000:11:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": true, - "id": 5764, - "linearizedBaseContracts": [ - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5194, - "name": "InterfaceId_ERC721", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7019:55:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5192, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7019:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 5193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7064:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 5197, - "name": "InterfaceId_ERC721Exists", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7668:61:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5195, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7668:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783466353538653739", - "id": 5196, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7719:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1331007097_by_1", - "typeString": "int_const 1331007097" - }, - "value": "0x4f558e79" - }, - "visibility": "private" - }, - { - "id": 5200, - "libraryName": { - "contractScope": null, - "id": 5198, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "7821:8:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "7815:27:8", - "typeName": { - "id": 5199, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7834:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 5203, - "libraryName": { - "contractScope": null, - "id": 5201, - "name": "AddressUtils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5009, - "src": "7852:12:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUtils_$5009", - "typeString": "library AddressUtils" - } - }, - "nodeType": "UsingForDirective", - "src": "7846:31:8", - "typeName": { - "id": 5202, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7869:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "constant": true, - "id": 5206, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8044:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5204, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8044:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5205, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8086:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 5210, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8140:48:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5209, - "keyType": { - "id": 5207, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8149:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8140:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5208, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8160:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5214, - "name": "tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8243:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5213, - "keyType": { - "id": 5211, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8252:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8243:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5212, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8263:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5218, - "name": "ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8352:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 5217, - "keyType": { - "id": 5215, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8361:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8352:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 5216, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8372:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5224, - "name": "operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8460:73:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "typeName": { - "id": 5223, - "keyType": { - "id": 5219, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8469:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8460:46:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 5222, - "keyType": { - "id": 5220, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8489:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8480:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 5221, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8500:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5226, - "name": "testint", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8542:19:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5225, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 5240, - "nodeType": "Block", - "src": "8774:61:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5232, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5228, - "src": "8797:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5231, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "8789:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8789:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5234, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "8810:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8810:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "8789:31:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5230, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "8781:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8781:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5238, - "nodeType": "ExpressionStatement", - "src": "8781:40:8" - }, - { - "id": 5239, - "nodeType": "PlaceholderStatement", - "src": "8828:1:8" - } - ] - }, - "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", - "id": 5241, - "name": "onlyOwnerOf", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5228, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5241, - "src": "8756:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8756:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8755:18:8" - }, - "src": "8735:100:8", - "visibility": "internal" - }, - { - "body": { - "id": 5254, - "nodeType": "Block", - "src": "9041:69:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5247, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "9074:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9074:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5249, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5243, - "src": "9086:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5246, - "name": "isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5567, - "src": "9056:17:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 5250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9056:39:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5245, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9048:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9048:48:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5252, - "nodeType": "ExpressionStatement", - "src": "9048:48:8" - }, - { - "id": 5253, - "nodeType": "PlaceholderStatement", - "src": "9103:1:8" - } - ] - }, - "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", - "id": 5255, - "name": "canTransfer", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5244, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5243, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5255, - "src": "9023:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5242, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9022:18:8" - }, - "src": "9002:108:8", - "visibility": "internal" - }, - { - "body": { - "id": 5266, - "nodeType": "Block", - "src": "9145:176:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5259, - "name": "InterfaceId_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5194, - "src": "9245:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5258, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9226:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9226:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5261, - "nodeType": "ExpressionStatement", - "src": "9226:38:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5263, - "name": "InterfaceId_ERC721Exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5197, - "src": "9290:24:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5262, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9271:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9271:44:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5265, - "nodeType": "ExpressionStatement", - "src": "9271:44:8" - } - ] - }, - "documentation": null, - "id": 5267, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5256, - "nodeType": "ParameterList", - "parameters": [], - "src": "9127:2:8" - }, - "returnParameters": { - "id": 5257, - "nodeType": "ParameterList", - "parameters": [], - "src": "9145:0:8" - }, - "scope": 5764, - "src": "9116:205:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5286, - "nodeType": "Block", - "src": "9585:80:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5275, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9600:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5277, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9618:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5276, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9610:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9610:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "9600:20:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5274, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9592:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9592:29:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5281, - "nodeType": "ExpressionStatement", - "src": "9592:29:8" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5282, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "9635:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5284, - "indexExpression": { - "argumentTypes": null, - "id": 5283, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9652:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9635:24:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5273, - "id": 5285, - "nodeType": "Return", - "src": "9628:31:8" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", - "id": 5287, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5270, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5269, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9539:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5268, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9539:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9538:16:8" - }, - "returnParameters": { - "id": 5273, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5272, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9576:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9576:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9575:9:8" - }, - "scope": 5764, - "src": "9520:145:8", - "stateMutability": "view", - "superFunction": 5113, - "visibility": "public" - }, - { - "body": { - "id": 5310, - "nodeType": "Block", - "src": "9950:103:8", - "statements": [ - { - "assignments": [ - 5295 - ], - "declarations": [ - { - "constant": false, - "id": 5295, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5310, - "src": "9957:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5294, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9957:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5299, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5296, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "9973:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5298, - "indexExpression": { - "argumentTypes": null, - "id": 5297, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5289, - "src": "9984:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9973:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9957:36:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5301, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10008:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10025:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10017:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5304, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10017:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10008:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5300, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10000:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5307, - "nodeType": "ExpressionStatement", - "src": "10000:28:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5308, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10042:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5293, - "id": 5309, - "nodeType": "Return", - "src": "10035:12:8" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", - "id": 5311, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5289, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9902:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5288, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9902:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9901:18:8" - }, - "returnParameters": { - "id": 5293, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5292, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9941:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5291, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9941:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9940:9:8" - }, - "scope": 5764, - "src": "9885:168:8", - "stateMutability": "view", - "superFunction": 5120, - "visibility": "public" - }, - { - "body": { - "id": 5330, - "nodeType": "Block", - "src": "10299:82:8", - "statements": [ - { - "assignments": [ - 5319 - ], - "declarations": [ - { - "constant": false, - "id": 5319, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5330, - "src": "10306:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5318, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10306:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5323, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5320, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "10322:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5322, - "indexExpression": { - "argumentTypes": null, - "id": 5321, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5313, - "src": "10333:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10322:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10306:36:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5324, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5319, - "src": "10356:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5326, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10373:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5325, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10365:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10365:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10356:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5317, - "id": 5329, - "nodeType": "Return", - "src": "10349:26:8" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", - "id": 5331, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5313, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10254:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5312, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10254:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10253:18:8" - }, - "returnParameters": { - "id": 5317, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5316, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10293:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5315, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10293:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10292:6:8" - }, - "scope": 5764, - "src": "10238:143:8", - "stateMutability": "view", - "superFunction": 5127, - "visibility": "public" - }, - { - "body": { - "id": 5375, - "nodeType": "Block", - "src": "10851:229:8", - "statements": [ - { - "assignments": [ - 5339 - ], - "declarations": [ - { - "constant": false, - "id": 5339, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5375, - "src": "10858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5338, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5343, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5341, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "10882:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5340, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "10874:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10874:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10858:33:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5345, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "10906:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 5346, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10913:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5344, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10898:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10898:21:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5349, - "nodeType": "ExpressionStatement", - "src": "10898:21:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5351, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10934:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10934:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5353, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10948:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10934:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5356, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10974:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5357, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10981:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10981:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 5355, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "10957:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10957:35:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "10934:58:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5350, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10926:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10926:67:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5362, - "nodeType": "ExpressionStatement", - "src": "10926:67:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5363, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11002:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5365, - "indexExpression": { - "argumentTypes": null, - "id": 5364, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11017:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11002:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5366, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11029:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "11002:30:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5368, - "nodeType": "ExpressionStatement", - "src": "11002:30:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5370, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "11053:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5371, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11060:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5372, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11065:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5369, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5098, - "src": "11044:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11044:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5374, - "nodeType": "EmitStatement", - "src": "11039:35:8" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", - "id": 5376, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5336, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5333, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10813:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10813:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5335, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10826:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5334, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10826:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10812:31:8" - }, - "returnParameters": { - "id": 5337, - "nodeType": "ParameterList", - "parameters": [], - "src": "10851:0:8" - }, - "scope": 5764, - "src": "10796:284:8", - "stateMutability": "nonpayable", - "superFunction": 5134, - "visibility": "public" - }, - { - "body": { - "id": 5387, - "nodeType": "Block", - "src": "11383:44:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5383, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11397:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5385, - "indexExpression": { - "argumentTypes": null, - "id": 5384, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5378, - "src": "11412:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11397:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5382, - "id": 5386, - "nodeType": "Return", - "src": "11390:31:8" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", - "id": 5388, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5378, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11335:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5377, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11335:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11334:18:8" - }, - "returnParameters": { - "id": 5382, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5381, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11374:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5380, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11374:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11373:9:8" - }, - "scope": 5764, - "src": "11314:113:8", - "stateMutability": "view", - "superFunction": 5141, - "visibility": "public" - }, - { - "body": { - "id": 5418, - "nodeType": "Block", - "src": "11778:146:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5396, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11793:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5397, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11800:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11800:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "11793:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5395, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "11785:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11785:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5401, - "nodeType": "ExpressionStatement", - "src": "11785:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5402, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "11818:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5406, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5403, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11836:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11836:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11818:29:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5407, - "indexExpression": { - "argumentTypes": null, - "id": 5405, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11848:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11818:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5408, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11855:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11818:46:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5410, - "nodeType": "ExpressionStatement", - "src": "11818:46:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5412, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11891:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11891:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5414, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11903:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5415, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11908:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5411, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5106, - "src": "11876:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 5416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11876:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5417, - "nodeType": "EmitStatement", - "src": "11871:47:8" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", - "id": 5419, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5390, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11742:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5389, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11742:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5392, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11755:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5391, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11755:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11741:29:8" - }, - "returnParameters": { - "id": 5394, - "nodeType": "ParameterList", - "parameters": [], - "src": "11778:0:8" - }, - "scope": 5764, - "src": "11715:209:8", - "stateMutability": "nonpayable", - "superFunction": 5148, - "visibility": "public" - }, - { - "body": { - "id": 5434, - "nodeType": "Block", - "src": "12362:56:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5428, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "12376:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5430, - "indexExpression": { - "argumentTypes": null, - "id": 5429, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5421, - "src": "12394:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5432, - "indexExpression": { - "argumentTypes": null, - "id": 5431, - "name": "_operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5423, - "src": "12402:9:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:36:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5427, - "id": 5433, - "nodeType": "Return", - "src": "12369:43:8" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", - "id": 5435, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5424, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5421, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12273:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5420, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12273:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5423, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12294:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5422, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12294:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12266:50:8" - }, - "returnParameters": { - "id": 5427, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5426, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12353:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5425, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12353:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12352:6:8" - }, - "scope": 5764, - "src": "12241:177:8", - "stateMutability": "view", - "superFunction": 5157, - "visibility": "public" - }, - { - "body": { - "id": 5484, - "nodeType": "Block", - "src": "12976:228:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5448, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "12991:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5450, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13008:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5449, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13000:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "12991:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5447, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "12983:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12983:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5454, - "nodeType": "ExpressionStatement", - "src": "12983:28:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5456, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13026:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13041:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5457, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13033:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5459, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13033:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "13026:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5455, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "13018:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13018:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5462, - "nodeType": "ExpressionStatement", - "src": "13018:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5464, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13067:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5465, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13074:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5463, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "13053:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13053:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5467, - "nodeType": "ExpressionStatement", - "src": "13053:30:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5469, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13106:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5470, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13113:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5468, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "13090:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13090:32:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5472, - "nodeType": "ExpressionStatement", - "src": "13090:32:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5474, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13140:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5475, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13145:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5473, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "13129:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13129:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5477, - "nodeType": "ExpressionStatement", - "src": "13129:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5479, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13177:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5480, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13184:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5481, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13189:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5478, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "13168:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13168:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5483, - "nodeType": "EmitStatement", - "src": "13163:35:8" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5485, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5444, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "12963:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5445, - "modifierName": { - "argumentTypes": null, - "id": 5443, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "12951:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12951:21:8" - } - ], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5442, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5437, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12874:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5436, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12874:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5439, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12894:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5438, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12894:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5441, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12912:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5440, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12912:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12867:66:8" - }, - "returnParameters": { - "id": 5446, - "nodeType": "ParameterList", - "parameters": [], - "src": "12976:0:8" - }, - "scope": 5764, - "src": "12846:358:8", - "stateMutability": "nonpayable", - "superFunction": 5166, - "visibility": "public" - }, - { - "body": { - "id": 5504, - "nodeType": "Block", - "src": "13960:101:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5498, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5487, - "src": "14030:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5499, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5489, - "src": "14037:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5500, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "14042:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 5501, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14052:2:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 5497, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5505, - 5535 - ], - "referencedDeclaration": 5535, - "src": "14013:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,uint256,bytes memory)" - } - }, - "id": 5502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14013:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5503, - "nodeType": "ExpressionStatement", - "src": "14013:42:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5505, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5494, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "13947:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5495, - "modifierName": { - "argumentTypes": null, - "id": 5493, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "13935:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13935:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5492, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5487, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5486, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5489, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13878:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5488, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13878:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5491, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13896:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5490, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13896:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13851:66:8" - }, - "returnParameters": { - "id": 5496, - "nodeType": "ParameterList", - "parameters": [], - "src": "13960:0:8" - }, - "scope": 5764, - "src": "13826:235:8", - "stateMutability": "nonpayable", - "superFunction": 5175, - "visibility": "public" - }, - { - "body": { - "id": 5534, - "nodeType": "Block", - "src": "14908:162:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5520, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "14928:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5521, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "14935:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5522, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14940:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5519, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5485 - ], - "referencedDeclaration": 5485, - "src": "14915:12:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14915:34:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5524, - "nodeType": "ExpressionStatement", - "src": "14915:34:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5527, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "15035:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5528, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "15042:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5529, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "15047:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5530, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5513, - "src": "15057:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 5526, - "name": "checkAndCallSafeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5763, - "src": "15010:24:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,address,uint256,bytes memory) returns (bool)" - } - }, - "id": 5531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15010:53:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5525, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "15002:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15002:62:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5533, - "nodeType": "ExpressionStatement", - "src": "15002:62:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", - "id": 5535, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5516, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14895:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5517, - "modifierName": { - "argumentTypes": null, - "id": 5515, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "14883:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14883:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5514, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5507, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14781:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5506, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14781:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5509, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14801:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5508, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14801:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5511, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14819:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5510, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14819:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5513, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14842:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5512, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14842:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14774:91:8" - }, - "returnParameters": { - "id": 5518, - "nodeType": "ParameterList", - "parameters": [], - "src": "14908:0:8" - }, - "scope": 5764, - "src": "14749:321:8", - "stateMutability": "nonpayable", - "superFunction": 5186, - "visibility": "public" - }, - { - "body": { - "id": 5566, - "nodeType": "Block", - "src": "15551:330:8", - "statements": [ - { - "assignments": [ - 5545 - ], - "declarations": [ - { - "constant": false, - "id": 5545, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5566, - "src": "15558:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5544, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15558:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5549, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5547, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15582:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5546, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "15574:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15574:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15558:33:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5550, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15763:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5551, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15775:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15763:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5554, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15803:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5553, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5388 - ], - "referencedDeclaration": 5388, - "src": "15791:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15791:21:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5556, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15816:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15791:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:61:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5560, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15852:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5561, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15859:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5559, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "15835:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15835:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:105:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5564, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "15754:121:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5543, - "id": 5565, - "nodeType": "Return", - "src": "15747:128:8" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", - "id": 5567, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5540, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5537, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15459:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5536, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15459:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5539, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15482:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5538, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15482:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15452:51:8" - }, - "returnParameters": { - "id": 5543, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5542, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15542:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5541, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "15542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15541:6:8" - }, - "scope": 5764, - "src": "15426:455:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5595, - "nodeType": "Block", - "src": "16193:118:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5575, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16208:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16223:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16215:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5578, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16215:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16208:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5574, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "16200:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16200:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5581, - "nodeType": "ExpressionStatement", - "src": "16200:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5583, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16244:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5584, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16249:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5582, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "16233:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16233:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5586, - "nodeType": "ExpressionStatement", - "src": "16233:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16287:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5588, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16279:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5590, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16279:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5591, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16291:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5592, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16296:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5587, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16270:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16270:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5594, - "nodeType": "EmitStatement", - "src": "16265:40:8" - } - ] - }, - "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", - "id": 5596, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5572, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5569, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16153:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5568, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16153:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5571, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16166:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5570, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16166:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16152:31:8" - }, - "returnParameters": { - "id": 5573, - "nodeType": "ParameterList", - "parameters": [], - "src": "16193:0:8" - }, - "scope": 5764, - "src": "16138:173:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5621, - "nodeType": "Block", - "src": "16562:134:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5604, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16583:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5605, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16591:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5603, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "16569:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16569:31:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5607, - "nodeType": "ExpressionStatement", - "src": "16569:31:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5609, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16623:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5610, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16631:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5608, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "16607:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16607:33:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5612, - "nodeType": "ExpressionStatement", - "src": "16607:33:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5614, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16661:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16677:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5615, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16669:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5617, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16669:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5618, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16681:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5613, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16652:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16652:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5620, - "nodeType": "EmitStatement", - "src": "16647:43:8" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", - "id": 5622, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5598, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16519:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16519:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5600, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16535:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16535:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16518:34:8" - }, - "returnParameters": { - "id": 5602, - "nodeType": "ParameterList", - "parameters": [], - "src": "16562:0:8" - }, - "scope": 5764, - "src": "16504:192:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5654, - "nodeType": "Block", - "src": "17032:153:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5631, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17055:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5630, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "17047:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17047:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5633, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5624, - "src": "17068:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17047:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5629, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17039:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17039:36:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5636, - "nodeType": "ExpressionStatement", - "src": "17039:36:8" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5637, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17086:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5639, - "indexExpression": { - "argumentTypes": null, - "id": 5638, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17101:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17086:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17122:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17114:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17114:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17086:38:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5653, - "nodeType": "IfStatement", - "src": "17082:98:8", - "trueBody": { - "id": 5652, - "nodeType": "Block", - "src": "17126:54:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5644, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17135:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5646, - "indexExpression": { - "argumentTypes": null, - "id": 5645, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17150:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17135:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17170:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5647, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17162:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5649, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17162:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17135:37:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5651, - "nodeType": "ExpressionStatement", - "src": "17135:37:8" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5655, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5627, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5624, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "16989:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5623, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16989:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5626, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "17005:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5625, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17005:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16988:34:8" - }, - "returnParameters": { - "id": 5628, - "nodeType": "ParameterList", - "parameters": [], - "src": "17032:0:8" - }, - "scope": 5764, - "src": "16966:219:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5689, - "nodeType": "Block", - "src": "17515:148:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5663, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17530:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5665, - "indexExpression": { - "argumentTypes": null, - "id": 5664, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17541:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17530:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17562:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17554:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5668, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17554:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17530:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5662, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17522:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17522:43:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5671, - "nodeType": "ExpressionStatement", - "src": "17522:43:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5672, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17572:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5674, - "indexExpression": { - "argumentTypes": null, - "id": 5673, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17583:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17572:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5675, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17595:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17572:26:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5677, - "nodeType": "ExpressionStatement", - "src": "17572:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5678, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17605:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5680, - "indexExpression": { - "argumentTypes": null, - "id": 5679, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17622:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17605:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17655:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5681, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17629:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5683, - "indexExpression": { - "argumentTypes": null, - "id": 5682, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17646:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17629:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "17629:25:8", - "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": 5686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17629:28:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17605:52:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5688, - "nodeType": "ExpressionStatement", - "src": "17605:52:8" - } - ] - }, - "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", - "id": 5690, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addTokenTo", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5660, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5657, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17475:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5656, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17475:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5659, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17488:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5658, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17488:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17474:31:8" - }, - "returnParameters": { - "id": 5661, - "nodeType": "ParameterList", - "parameters": [], - "src": "17515:0:8" - }, - "scope": 5764, - "src": "17455:208:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5724, - "nodeType": "Block", - "src": "18016:151:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5702, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5699, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18039:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5698, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "18031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18031:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5701, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18052:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "18031:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5697, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "18023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18023:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5704, - "nodeType": "ExpressionStatement", - "src": "18023:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5705, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18065:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5707, - "indexExpression": { - "argumentTypes": null, - "id": 5706, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18082:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18065:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18119:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5708, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18091:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5710, - "indexExpression": { - "argumentTypes": null, - "id": 5709, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18108:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18091:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "18091:27:8", - "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": 5713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18091:30:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18065:56:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5715, - "nodeType": "ExpressionStatement", - "src": "18065:56:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5716, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "18128:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5718, - "indexExpression": { - "argumentTypes": null, - "id": 5717, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18139:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18128:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18159:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18151:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18151:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "18128:33:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5723, - "nodeType": "ExpressionStatement", - "src": "18128:33:8" - } - ] - }, - "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", - "id": 5725, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "removeTokenFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5695, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5692, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17974:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5691, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17974:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5694, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17989:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5693, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17989:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17973:33:8" - }, - "returnParameters": { - "id": 5696, - "nodeType": "ParameterList", - "parameters": [], - "src": "18016:0:8" - }, - "scope": 5764, - "src": "17949:218:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5762, - "nodeType": "Block", - "src": "18846:195:8", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 5741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "18857:17:8", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5738, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18858:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 5008, - "src": "18858:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 5740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18858:16:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5745, - "nodeType": "IfStatement", - "src": "18853:51:8", - "trueBody": { - "id": 5744, - "nodeType": "Block", - "src": "18876:28:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5742, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18892:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 5737, - "id": 5743, - "nodeType": "Return", - "src": "18885:11:8" - } - ] - } - }, - { - "assignments": [ - 5747 - ], - "declarations": [ - { - "constant": false, - "id": 5747, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 5762, - "src": "18910:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5746, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "18910:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5756, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5752, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5727, - "src": "18971:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5753, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5731, - "src": "18978:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5754, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5733, - "src": "18988:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5749, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18941:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5748, - "name": "ERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5080, - "src": "18926:14:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", - "typeString": "type(contract ERC721Receiver)" - } - }, - "id": 5750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:19:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Receiver_$5080", - "typeString": "contract ERC721Receiver" - } - }, - "id": 5751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 5079, - "src": "18926:36:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" - } - }, - "id": 5755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:68:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18910:84:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5757, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5747, - "src": "19009:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5758, - "name": "ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5206, - "src": "19019:15:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "19009:25:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5760, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19008:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5737, - "id": 5761, - "nodeType": "Return", - "src": "19001:34:8" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", - "id": 5763, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "checkAndCallSafeTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5734, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5727, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18724:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5726, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18724:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5729, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18744:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18744:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5731, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18762:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5730, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18762:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5733, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18785:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5732, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "18785:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18717:91:8" - }, - "returnParameters": { - "id": 5737, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5736, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18837:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5735, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18837:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18836:6:8" - }, - "scope": 5764, - "src": "18684:357:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "6942:12102:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5765, - "name": "ERC721BasicToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5764, - "src": "19081:16:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", - "typeString": "contract ERC721BasicToken" - } - }, - "id": 5766, - "nodeType": "InheritanceSpecifier", - "src": "19081:16:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187, - 5764 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 5797, - "linearizedBaseContracts": [ - 5797, - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicTokenMock", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5780, - "nodeType": "Block", - "src": "19155:39:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5776, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5768, - "src": "19174:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5777, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5770, - "src": "19179:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5773, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19162:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 5596, - "src": "19162:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19162:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5779, - "nodeType": "ExpressionStatement", - "src": "19162:26:8" - } - ] - }, - "documentation": null, - "id": 5781, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5771, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5768, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19117:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5767, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19117:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5770, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19130:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5769, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19130:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19116:31:8" - }, - "returnParameters": { - "id": 5772, - "nodeType": "ParameterList", - "parameters": [], - "src": "19155:0:8" - }, - "scope": 5797, - "src": "19103:91:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5795, - "nodeType": "Block", - "src": "19239:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5790, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19266:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5789, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "19258:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19258:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5792, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19277:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5786, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19246:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 5622, - "src": "19246:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19246:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5794, - "nodeType": "ExpressionStatement", - "src": "19246:40:8" - } - ] - }, - "documentation": null, - "id": 5796, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5784, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5783, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5796, - "src": "19214:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5782, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19214:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19213:18:8" - }, - "returnParameters": { - "id": 5785, - "nodeType": "ParameterList", - "parameters": [], - "src": "19239:0:8" - }, - "scope": 5797, - "src": "19200:92:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "19048:247:8" - } - ], - "src": "0:19297:8" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", - "exportedSymbols": { - "AddressUtils": [ - 5009 - ], - "ERC165": [ - 5017 - ], - "ERC721Basic": [ - 5187 - ], - "ERC721BasicToken": [ - 5764 - ], - "ERC721BasicTokenMock": [ - 5797 - ], - "ERC721Receiver": [ - 5080 - ], - "SupportsInterfaceWithLookup": [ - 5065 - ] - }, - "id": 5798, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4991, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:8" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "../../dao/oz/SafeMath.sol", - "id": 4992, - "nodeType": "ImportDirective", - "scope": 5798, - "sourceUnit": 9858, - "src": "34:35:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "Utility library of inline functions on addresses\r", - "fullyImplemented": true, - "id": 5009, - "linearizedBaseContracts": [ - 5009 - ], - "name": "AddressUtils", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5007, - "nodeType": "Block", - "src": "2012:524:8", - "statements": [ - { - "assignments": [ - 5000 - ], - "declarations": [ - { - "constant": false, - "id": 5000, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 5007, - "src": "2019:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4999, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2019:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5001, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2019:12:8" - }, - { - "externalReferences": [ - { - "size": { - "declaration": 5000, - "isOffset": false, - "isSlot": false, - "src": "2482:4:8", - "valueSize": 1 - } - }, - { - "addr": { - "declaration": 4994, - "isOffset": false, - "isSlot": false, - "src": "2502:4:8", - "valueSize": 1 - } - } - ], - "id": 5002, - "nodeType": "InlineAssembly", - "operations": "{ size := extcodesize(addr) }", - "src": "2471:38:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5003, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5000, - "src": "2522:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5004, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2529:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2522:8:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4998, - "id": 5006, - "nodeType": "Return", - "src": "2515:15:8" - } - ] - }, - "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", - "id": 5008, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4994, - "name": "addr", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "1969:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1969:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1968:14:8" - }, - "returnParameters": { - "id": 4998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4997, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "2006:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4996, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2006:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2005:6:8" - }, - "scope": 5009, - "src": "1949:587:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "1590:951:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", - "fullyImplemented": false, - "id": 5017, - "linearizedBaseContracts": [ - 5017 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", - "id": 5016, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5012, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5011, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "2950:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5010, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "2950:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2949:21:8" - }, - "returnParameters": { - "id": 5015, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5014, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "3009:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5013, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3009:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3008:6:8" - }, - "scope": 5017, - "src": "2923:92:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 5798, - "src": "2643:375:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5018, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "3196:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5019, - "nodeType": "InheritanceSpecifier", - "src": "3196:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", - "fullyImplemented": true, - "id": 5065, - "linearizedBaseContracts": [ - 5065, - 5017 - ], - "name": "SupportsInterfaceWithLookup", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5022, - "name": "InterfaceId_ERC165", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3208:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5020, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3208:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 5021, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3252:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 5026, - "name": "supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3443:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 5025, - "keyType": { - "id": 5023, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3451:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "3443:23:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 5024, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3461:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 5033, - "nodeType": "Block", - "src": "3638:51:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5030, - "name": "InterfaceId_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5022, - "src": "3664:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5029, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "3645:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3645:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5032, - "nodeType": "ExpressionStatement", - "src": "3645:38:8" - } - ] - }, - "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", - "id": 5034, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5027, - "nodeType": "ParameterList", - "parameters": [], - "src": "3620:2:8" - }, - "returnParameters": { - "id": 5028, - "nodeType": "ParameterList", - "parameters": [], - "src": "3638:0:8" - }, - "scope": 5065, - "src": "3609:80:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5045, - "nodeType": "Block", - "src": "3872:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5041, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "3886:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5043, - "indexExpression": { - "argumentTypes": null, - "id": 5042, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5036, - "src": "3906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3886:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5040, - "id": 5044, - "nodeType": "Return", - "src": "3879:40:8" - } - ] - }, - "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", - "id": 5046, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5037, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5036, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3804:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5035, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3804:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3803:21:8" - }, - "returnParameters": { - "id": 5040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5039, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3863:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5038, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3863:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3862:6:8" - }, - "scope": 5065, - "src": "3777:148:8", - "stateMutability": "view", - "superFunction": 5016, - "visibility": "external" - }, - { - "body": { - "id": 5063, - "nodeType": "Block", - "src": "4066:95:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5052, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4081:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 5053, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4097:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "4081:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5051, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4073:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4073:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5056, - "nodeType": "ExpressionStatement", - "src": "4073:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5057, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "4115:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5059, - "indexExpression": { - "argumentTypes": null, - "id": 5058, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4135:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4115:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4151:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4115:40:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5062, - "nodeType": "ExpressionStatement", - "src": "4115:40:8" - } - ] - }, - "documentation": "@dev private method for registering an interface\r", - "id": 5064, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5049, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5048, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5064, - "src": "4028:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5047, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4028:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4027:21:8" - }, - "returnParameters": { - "id": 5050, - "nodeType": "ParameterList", - "parameters": [], - "src": "4066:0:8" - }, - "scope": 5065, - "src": "4000:161:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "3156:1008:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", - "fullyImplemented": false, - "id": 5080, - "linearizedBaseContracts": [ - 5080 - ], - "name": "ERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5068, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5080, - "src": "4607:53:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5066, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4607:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4650:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "internal" - }, - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", - "id": 5079, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5070, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5364:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5069, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5364:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5072, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5384:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5071, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5384:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5074, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5407:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5073, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5407:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5357:73:8" - }, - "returnParameters": { - "id": 5078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5077, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5456:6:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5076, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "5456:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5455:8:8" - }, - "scope": 5080, - "src": "5332:132:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "4326:1141:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5081, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "5641:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5082, - "nodeType": "InheritanceSpecifier", - "src": "5641:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": false, - "id": 5187, - "linearizedBaseContracts": [ - 5187, - 5017 - ], - "name": "ERC721Basic", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 5090, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 5089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5084, - "indexed": false, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5674:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5083, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5674:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5086, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5695:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5085, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5695:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5088, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5714:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5087, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5714:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5667:69:8" - }, - "src": "5653:84:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5098, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 5097, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5092, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5762:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5091, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5762:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5094, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5784:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5784:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5096, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5809:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5095, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5809:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5755:76:8" - }, - "src": "5741:91:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5106, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 5105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5100, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5863:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5099, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5863:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5102, - "indexed": false, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5885:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5101, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5885:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5104, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5910:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5103, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5910:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5856:73:8" - }, - "src": "5836:94:8" - }, - { - "body": null, - "documentation": null, - "id": 5113, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5109, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5108, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5955:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5107, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5955:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5954:16:8" - }, - "returnParameters": { - "id": 5112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5111, - "name": "_balance", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5992:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5110, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5992:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5991:18:8" - }, - "scope": 5187, - "src": "5936:74:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5120, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5116, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5115, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6031:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5114, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6030:18:8" - }, - "returnParameters": { - "id": 5119, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5118, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6070:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5117, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6070:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6069:16:8" - }, - "scope": 5187, - "src": "6014:72:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5127, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5123, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5122, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6106:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5121, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6106:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6105:18:8" - }, - "returnParameters": { - "id": 5126, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5125, - "name": "_exists", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6145:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5124, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6145:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6144:14:8" - }, - "scope": 5187, - "src": "6090:69:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5134, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5132, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5129, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6182:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6182:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5131, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6195:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6195:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6181:31:8" - }, - "returnParameters": { - "id": 5133, - "nodeType": "ParameterList", - "parameters": [], - "src": "6219:0:8" - }, - "scope": 5187, - "src": "6165:55:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5141, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5136, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6245:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5135, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6245:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6244:18:8" - }, - "returnParameters": { - "id": 5140, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5139, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6289:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5138, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6289:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6288:19:8" - }, - "scope": 5187, - "src": "6224:84:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5148, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5143, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6341:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6341:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5145, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6360:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5144, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6360:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6340:35:8" - }, - "returnParameters": { - "id": 5147, - "nodeType": "ParameterList", - "parameters": [], - "src": "6382:0:8" - }, - "scope": 5187, - "src": "6314:69:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5157, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5150, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6413:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5149, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6413:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5152, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6429:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5151, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6429:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6412:35:8" - }, - "returnParameters": { - "id": 5156, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5155, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6474:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5154, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6474:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6473:6:8" - }, - "scope": 5187, - "src": "6387:93:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5166, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5159, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6508:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5158, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6508:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5161, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6523:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5160, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6523:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5163, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6536:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5162, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6536:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6507:46:8" - }, - "returnParameters": { - "id": 5165, - "nodeType": "ParameterList", - "parameters": [], - "src": "6560:0:8" - }, - "scope": 5187, - "src": "6486:75:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5175, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5168, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6591:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5167, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6591:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5170, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6606:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5169, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6606:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5172, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6619:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6619:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6590:46:8" - }, - "returnParameters": { - "id": 5174, - "nodeType": "ParameterList", - "parameters": [], - "src": "6648:0:8" - }, - "scope": 5187, - "src": "6565:84:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5186, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5177, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6687:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5176, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6687:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5179, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6707:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5178, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6707:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5181, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6725:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5180, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6725:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5183, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6748:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5182, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6748:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6680:91:8" - }, - "returnParameters": { - "id": 5185, - "nodeType": "ParameterList", - "parameters": [], - "src": "6783:0:8" - }, - "scope": 5187, - "src": "6655:129:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "5617:1170:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5188, - "name": "SupportsInterfaceWithLookup", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5065, - "src": "6971:27:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", - "typeString": "contract SupportsInterfaceWithLookup" - } - }, - "id": 5189, - "nodeType": "InheritanceSpecifier", - "src": "6971:27:8" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5190, - "name": "ERC721Basic", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5187, - "src": "7000:11:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Basic_$5187", - "typeString": "contract ERC721Basic" - } - }, - "id": 5191, - "nodeType": "InheritanceSpecifier", - "src": "7000:11:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": true, - "id": 5764, - "linearizedBaseContracts": [ - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5194, - "name": "InterfaceId_ERC721", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7019:55:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5192, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7019:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 5193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7064:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 5197, - "name": "InterfaceId_ERC721Exists", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7668:61:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5195, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7668:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783466353538653739", - "id": 5196, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7719:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1331007097_by_1", - "typeString": "int_const 1331007097" - }, - "value": "0x4f558e79" - }, - "visibility": "private" - }, - { - "id": 5200, - "libraryName": { - "contractScope": null, - "id": 5198, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "7821:8:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "7815:27:8", - "typeName": { - "id": 5199, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7834:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 5203, - "libraryName": { - "contractScope": null, - "id": 5201, - "name": "AddressUtils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5009, - "src": "7852:12:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUtils_$5009", - "typeString": "library AddressUtils" - } - }, - "nodeType": "UsingForDirective", - "src": "7846:31:8", - "typeName": { - "id": 5202, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7869:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "constant": true, - "id": 5206, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8044:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5204, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8044:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5205, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8086:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 5210, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8140:48:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5209, - "keyType": { - "id": 5207, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8149:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8140:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5208, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8160:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5214, - "name": "tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8243:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5213, - "keyType": { - "id": 5211, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8252:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8243:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5212, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8263:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5218, - "name": "ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8352:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 5217, - "keyType": { - "id": 5215, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8361:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8352:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 5216, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8372:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5224, - "name": "operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8460:73:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "typeName": { - "id": 5223, - "keyType": { - "id": 5219, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8469:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8460:46:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 5222, - "keyType": { - "id": 5220, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8489:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8480:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 5221, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8500:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5226, - "name": "testint", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8542:19:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5225, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 5240, - "nodeType": "Block", - "src": "8774:61:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5232, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5228, - "src": "8797:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5231, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "8789:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8789:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5234, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "8810:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8810:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "8789:31:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5230, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "8781:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8781:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5238, - "nodeType": "ExpressionStatement", - "src": "8781:40:8" - }, - { - "id": 5239, - "nodeType": "PlaceholderStatement", - "src": "8828:1:8" - } - ] - }, - "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", - "id": 5241, - "name": "onlyOwnerOf", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5228, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5241, - "src": "8756:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8756:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8755:18:8" - }, - "src": "8735:100:8", - "visibility": "internal" - }, - { - "body": { - "id": 5254, - "nodeType": "Block", - "src": "9041:69:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5247, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "9074:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9074:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5249, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5243, - "src": "9086:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5246, - "name": "isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5567, - "src": "9056:17:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 5250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9056:39:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5245, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9048:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9048:48:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5252, - "nodeType": "ExpressionStatement", - "src": "9048:48:8" - }, - { - "id": 5253, - "nodeType": "PlaceholderStatement", - "src": "9103:1:8" - } - ] - }, - "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", - "id": 5255, - "name": "canTransfer", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5244, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5243, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5255, - "src": "9023:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5242, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9022:18:8" - }, - "src": "9002:108:8", - "visibility": "internal" - }, - { - "body": { - "id": 5266, - "nodeType": "Block", - "src": "9145:176:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5259, - "name": "InterfaceId_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5194, - "src": "9245:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5258, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9226:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9226:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5261, - "nodeType": "ExpressionStatement", - "src": "9226:38:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5263, - "name": "InterfaceId_ERC721Exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5197, - "src": "9290:24:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5262, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9271:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9271:44:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5265, - "nodeType": "ExpressionStatement", - "src": "9271:44:8" - } - ] - }, - "documentation": null, - "id": 5267, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5256, - "nodeType": "ParameterList", - "parameters": [], - "src": "9127:2:8" - }, - "returnParameters": { - "id": 5257, - "nodeType": "ParameterList", - "parameters": [], - "src": "9145:0:8" - }, - "scope": 5764, - "src": "9116:205:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5286, - "nodeType": "Block", - "src": "9585:80:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5275, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9600:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5277, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9618:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5276, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9610:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9610:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "9600:20:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5274, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9592:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9592:29:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5281, - "nodeType": "ExpressionStatement", - "src": "9592:29:8" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5282, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "9635:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5284, - "indexExpression": { - "argumentTypes": null, - "id": 5283, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9652:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9635:24:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5273, - "id": 5285, - "nodeType": "Return", - "src": "9628:31:8" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", - "id": 5287, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5270, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5269, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9539:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5268, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9539:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9538:16:8" - }, - "returnParameters": { - "id": 5273, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5272, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9576:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9576:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9575:9:8" - }, - "scope": 5764, - "src": "9520:145:8", - "stateMutability": "view", - "superFunction": 5113, - "visibility": "public" - }, - { - "body": { - "id": 5310, - "nodeType": "Block", - "src": "9950:103:8", - "statements": [ - { - "assignments": [ - 5295 - ], - "declarations": [ - { - "constant": false, - "id": 5295, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5310, - "src": "9957:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5294, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9957:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5299, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5296, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "9973:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5298, - "indexExpression": { - "argumentTypes": null, - "id": 5297, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5289, - "src": "9984:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9973:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9957:36:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5301, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10008:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10025:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10017:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5304, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10017:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10008:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5300, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10000:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5307, - "nodeType": "ExpressionStatement", - "src": "10000:28:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5308, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10042:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5293, - "id": 5309, - "nodeType": "Return", - "src": "10035:12:8" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", - "id": 5311, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5289, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9902:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5288, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9902:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9901:18:8" - }, - "returnParameters": { - "id": 5293, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5292, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9941:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5291, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9941:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9940:9:8" - }, - "scope": 5764, - "src": "9885:168:8", - "stateMutability": "view", - "superFunction": 5120, - "visibility": "public" - }, - { - "body": { - "id": 5330, - "nodeType": "Block", - "src": "10299:82:8", - "statements": [ - { - "assignments": [ - 5319 - ], - "declarations": [ - { - "constant": false, - "id": 5319, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5330, - "src": "10306:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5318, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10306:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5323, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5320, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "10322:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5322, - "indexExpression": { - "argumentTypes": null, - "id": 5321, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5313, - "src": "10333:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10322:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10306:36:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5324, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5319, - "src": "10356:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5326, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10373:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5325, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10365:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10365:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10356:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5317, - "id": 5329, - "nodeType": "Return", - "src": "10349:26:8" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", - "id": 5331, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5313, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10254:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5312, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10254:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10253:18:8" - }, - "returnParameters": { - "id": 5317, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5316, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10293:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5315, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10293:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10292:6:8" - }, - "scope": 5764, - "src": "10238:143:8", - "stateMutability": "view", - "superFunction": 5127, - "visibility": "public" - }, - { - "body": { - "id": 5375, - "nodeType": "Block", - "src": "10851:229:8", - "statements": [ - { - "assignments": [ - 5339 - ], - "declarations": [ - { - "constant": false, - "id": 5339, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5375, - "src": "10858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5338, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5343, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5341, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "10882:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5340, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "10874:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10874:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10858:33:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5345, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "10906:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 5346, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10913:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5344, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10898:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10898:21:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5349, - "nodeType": "ExpressionStatement", - "src": "10898:21:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5351, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10934:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10934:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5353, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10948:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10934:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5356, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10974:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5357, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10981:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10981:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 5355, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "10957:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10957:35:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "10934:58:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5350, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10926:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10926:67:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5362, - "nodeType": "ExpressionStatement", - "src": "10926:67:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5363, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11002:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5365, - "indexExpression": { - "argumentTypes": null, - "id": 5364, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11017:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11002:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5366, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11029:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "11002:30:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5368, - "nodeType": "ExpressionStatement", - "src": "11002:30:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5370, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "11053:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5371, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11060:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5372, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11065:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5369, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5098, - "src": "11044:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11044:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5374, - "nodeType": "EmitStatement", - "src": "11039:35:8" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", - "id": 5376, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5336, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5333, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10813:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10813:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5335, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10826:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5334, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10826:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10812:31:8" - }, - "returnParameters": { - "id": 5337, - "nodeType": "ParameterList", - "parameters": [], - "src": "10851:0:8" - }, - "scope": 5764, - "src": "10796:284:8", - "stateMutability": "nonpayable", - "superFunction": 5134, - "visibility": "public" - }, - { - "body": { - "id": 5387, - "nodeType": "Block", - "src": "11383:44:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5383, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11397:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5385, - "indexExpression": { - "argumentTypes": null, - "id": 5384, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5378, - "src": "11412:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11397:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5382, - "id": 5386, - "nodeType": "Return", - "src": "11390:31:8" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", - "id": 5388, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5378, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11335:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5377, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11335:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11334:18:8" - }, - "returnParameters": { - "id": 5382, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5381, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11374:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5380, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11374:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11373:9:8" - }, - "scope": 5764, - "src": "11314:113:8", - "stateMutability": "view", - "superFunction": 5141, - "visibility": "public" - }, - { - "body": { - "id": 5418, - "nodeType": "Block", - "src": "11778:146:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5396, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11793:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5397, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11800:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11800:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "11793:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5395, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "11785:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11785:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5401, - "nodeType": "ExpressionStatement", - "src": "11785:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5402, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "11818:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5406, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5403, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11836:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11836:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11818:29:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5407, - "indexExpression": { - "argumentTypes": null, - "id": 5405, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11848:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11818:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5408, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11855:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11818:46:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5410, - "nodeType": "ExpressionStatement", - "src": "11818:46:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5412, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11891:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11891:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5414, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11903:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5415, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11908:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5411, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5106, - "src": "11876:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 5416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11876:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5417, - "nodeType": "EmitStatement", - "src": "11871:47:8" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", - "id": 5419, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5390, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11742:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5389, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11742:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5392, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11755:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5391, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11755:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11741:29:8" - }, - "returnParameters": { - "id": 5394, - "nodeType": "ParameterList", - "parameters": [], - "src": "11778:0:8" - }, - "scope": 5764, - "src": "11715:209:8", - "stateMutability": "nonpayable", - "superFunction": 5148, - "visibility": "public" - }, - { - "body": { - "id": 5434, - "nodeType": "Block", - "src": "12362:56:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5428, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "12376:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5430, - "indexExpression": { - "argumentTypes": null, - "id": 5429, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5421, - "src": "12394:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5432, - "indexExpression": { - "argumentTypes": null, - "id": 5431, - "name": "_operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5423, - "src": "12402:9:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:36:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5427, - "id": 5433, - "nodeType": "Return", - "src": "12369:43:8" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", - "id": 5435, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5424, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5421, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12273:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5420, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12273:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5423, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12294:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5422, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12294:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12266:50:8" - }, - "returnParameters": { - "id": 5427, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5426, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12353:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5425, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12353:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12352:6:8" - }, - "scope": 5764, - "src": "12241:177:8", - "stateMutability": "view", - "superFunction": 5157, - "visibility": "public" - }, - { - "body": { - "id": 5484, - "nodeType": "Block", - "src": "12976:228:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5448, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "12991:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5450, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13008:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5449, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13000:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "12991:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5447, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "12983:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12983:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5454, - "nodeType": "ExpressionStatement", - "src": "12983:28:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5456, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13026:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13041:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5457, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13033:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5459, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13033:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "13026:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5455, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "13018:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13018:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5462, - "nodeType": "ExpressionStatement", - "src": "13018:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5464, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13067:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5465, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13074:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5463, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "13053:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13053:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5467, - "nodeType": "ExpressionStatement", - "src": "13053:30:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5469, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13106:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5470, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13113:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5468, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "13090:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13090:32:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5472, - "nodeType": "ExpressionStatement", - "src": "13090:32:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5474, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13140:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5475, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13145:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5473, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "13129:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13129:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5477, - "nodeType": "ExpressionStatement", - "src": "13129:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5479, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13177:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5480, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13184:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5481, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13189:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5478, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "13168:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13168:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5483, - "nodeType": "EmitStatement", - "src": "13163:35:8" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5485, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5444, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "12963:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5445, - "modifierName": { - "argumentTypes": null, - "id": 5443, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "12951:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12951:21:8" - } - ], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5442, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5437, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12874:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5436, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12874:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5439, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12894:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5438, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12894:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5441, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12912:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5440, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12912:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12867:66:8" - }, - "returnParameters": { - "id": 5446, - "nodeType": "ParameterList", - "parameters": [], - "src": "12976:0:8" - }, - "scope": 5764, - "src": "12846:358:8", - "stateMutability": "nonpayable", - "superFunction": 5166, - "visibility": "public" - }, - { - "body": { - "id": 5504, - "nodeType": "Block", - "src": "13960:101:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5498, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5487, - "src": "14030:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5499, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5489, - "src": "14037:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5500, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "14042:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 5501, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14052:2:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 5497, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5505, - 5535 - ], - "referencedDeclaration": 5535, - "src": "14013:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,uint256,bytes memory)" - } - }, - "id": 5502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14013:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5503, - "nodeType": "ExpressionStatement", - "src": "14013:42:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5505, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5494, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "13947:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5495, - "modifierName": { - "argumentTypes": null, - "id": 5493, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "13935:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13935:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5492, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5487, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5486, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5489, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13878:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5488, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13878:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5491, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13896:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5490, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13896:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13851:66:8" - }, - "returnParameters": { - "id": 5496, - "nodeType": "ParameterList", - "parameters": [], - "src": "13960:0:8" - }, - "scope": 5764, - "src": "13826:235:8", - "stateMutability": "nonpayable", - "superFunction": 5175, - "visibility": "public" - }, - { - "body": { - "id": 5534, - "nodeType": "Block", - "src": "14908:162:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5520, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "14928:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5521, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "14935:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5522, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14940:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5519, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5485 - ], - "referencedDeclaration": 5485, - "src": "14915:12:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14915:34:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5524, - "nodeType": "ExpressionStatement", - "src": "14915:34:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5527, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "15035:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5528, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "15042:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5529, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "15047:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5530, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5513, - "src": "15057:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 5526, - "name": "checkAndCallSafeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5763, - "src": "15010:24:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,address,uint256,bytes memory) returns (bool)" - } - }, - "id": 5531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15010:53:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5525, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "15002:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15002:62:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5533, - "nodeType": "ExpressionStatement", - "src": "15002:62:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", - "id": 5535, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5516, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14895:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5517, - "modifierName": { - "argumentTypes": null, - "id": 5515, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "14883:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14883:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5514, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5507, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14781:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5506, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14781:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5509, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14801:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5508, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14801:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5511, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14819:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5510, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14819:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5513, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14842:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5512, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14842:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14774:91:8" - }, - "returnParameters": { - "id": 5518, - "nodeType": "ParameterList", - "parameters": [], - "src": "14908:0:8" - }, - "scope": 5764, - "src": "14749:321:8", - "stateMutability": "nonpayable", - "superFunction": 5186, - "visibility": "public" - }, - { - "body": { - "id": 5566, - "nodeType": "Block", - "src": "15551:330:8", - "statements": [ - { - "assignments": [ - 5545 - ], - "declarations": [ - { - "constant": false, - "id": 5545, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5566, - "src": "15558:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5544, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15558:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5549, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5547, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15582:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5546, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "15574:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15574:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15558:33:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5550, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15763:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5551, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15775:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15763:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5554, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15803:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5553, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5388 - ], - "referencedDeclaration": 5388, - "src": "15791:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15791:21:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5556, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15816:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15791:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:61:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5560, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15852:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5561, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15859:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5559, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "15835:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15835:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:105:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5564, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "15754:121:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5543, - "id": 5565, - "nodeType": "Return", - "src": "15747:128:8" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", - "id": 5567, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5540, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5537, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15459:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5536, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15459:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5539, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15482:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5538, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15482:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15452:51:8" - }, - "returnParameters": { - "id": 5543, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5542, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15542:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5541, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "15542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15541:6:8" - }, - "scope": 5764, - "src": "15426:455:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5595, - "nodeType": "Block", - "src": "16193:118:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5575, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16208:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16223:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16215:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5578, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16215:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16208:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5574, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "16200:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16200:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5581, - "nodeType": "ExpressionStatement", - "src": "16200:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5583, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16244:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5584, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16249:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5582, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "16233:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16233:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5586, - "nodeType": "ExpressionStatement", - "src": "16233:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16287:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5588, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16279:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5590, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16279:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5591, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16291:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5592, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16296:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5587, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16270:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16270:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5594, - "nodeType": "EmitStatement", - "src": "16265:40:8" - } - ] - }, - "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", - "id": 5596, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5572, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5569, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16153:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5568, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16153:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5571, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16166:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5570, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16166:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16152:31:8" - }, - "returnParameters": { - "id": 5573, - "nodeType": "ParameterList", - "parameters": [], - "src": "16193:0:8" - }, - "scope": 5764, - "src": "16138:173:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5621, - "nodeType": "Block", - "src": "16562:134:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5604, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16583:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5605, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16591:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5603, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "16569:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16569:31:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5607, - "nodeType": "ExpressionStatement", - "src": "16569:31:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5609, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16623:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5610, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16631:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5608, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "16607:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16607:33:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5612, - "nodeType": "ExpressionStatement", - "src": "16607:33:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5614, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16661:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16677:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5615, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16669:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5617, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16669:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5618, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16681:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5613, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16652:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16652:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5620, - "nodeType": "EmitStatement", - "src": "16647:43:8" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", - "id": 5622, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5598, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16519:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16519:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5600, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16535:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16535:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16518:34:8" - }, - "returnParameters": { - "id": 5602, - "nodeType": "ParameterList", - "parameters": [], - "src": "16562:0:8" - }, - "scope": 5764, - "src": "16504:192:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5654, - "nodeType": "Block", - "src": "17032:153:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5631, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17055:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5630, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "17047:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17047:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5633, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5624, - "src": "17068:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17047:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5629, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17039:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17039:36:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5636, - "nodeType": "ExpressionStatement", - "src": "17039:36:8" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5637, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17086:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5639, - "indexExpression": { - "argumentTypes": null, - "id": 5638, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17101:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17086:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17122:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17114:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17114:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17086:38:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5653, - "nodeType": "IfStatement", - "src": "17082:98:8", - "trueBody": { - "id": 5652, - "nodeType": "Block", - "src": "17126:54:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5644, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17135:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5646, - "indexExpression": { - "argumentTypes": null, - "id": 5645, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17150:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17135:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17170:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5647, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17162:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5649, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17162:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17135:37:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5651, - "nodeType": "ExpressionStatement", - "src": "17135:37:8" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5655, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5627, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5624, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "16989:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5623, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16989:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5626, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "17005:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5625, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17005:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16988:34:8" - }, - "returnParameters": { - "id": 5628, - "nodeType": "ParameterList", - "parameters": [], - "src": "17032:0:8" - }, - "scope": 5764, - "src": "16966:219:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5689, - "nodeType": "Block", - "src": "17515:148:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5663, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17530:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5665, - "indexExpression": { - "argumentTypes": null, - "id": 5664, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17541:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17530:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17562:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17554:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5668, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17554:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17530:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5662, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17522:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17522:43:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5671, - "nodeType": "ExpressionStatement", - "src": "17522:43:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5672, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17572:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5674, - "indexExpression": { - "argumentTypes": null, - "id": 5673, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17583:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17572:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5675, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17595:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17572:26:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5677, - "nodeType": "ExpressionStatement", - "src": "17572:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5678, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17605:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5680, - "indexExpression": { - "argumentTypes": null, - "id": 5679, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17622:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17605:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17655:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5681, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17629:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5683, - "indexExpression": { - "argumentTypes": null, - "id": 5682, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17646:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17629:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "17629:25:8", - "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": 5686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17629:28:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17605:52:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5688, - "nodeType": "ExpressionStatement", - "src": "17605:52:8" - } - ] - }, - "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", - "id": 5690, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addTokenTo", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5660, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5657, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17475:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5656, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17475:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5659, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17488:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5658, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17488:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17474:31:8" - }, - "returnParameters": { - "id": 5661, - "nodeType": "ParameterList", - "parameters": [], - "src": "17515:0:8" - }, - "scope": 5764, - "src": "17455:208:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5724, - "nodeType": "Block", - "src": "18016:151:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5702, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5699, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18039:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5698, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "18031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18031:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5701, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18052:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "18031:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5697, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "18023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18023:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5704, - "nodeType": "ExpressionStatement", - "src": "18023:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5705, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18065:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5707, - "indexExpression": { - "argumentTypes": null, - "id": 5706, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18082:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18065:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18119:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5708, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18091:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5710, - "indexExpression": { - "argumentTypes": null, - "id": 5709, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18108:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18091:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "18091:27:8", - "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": 5713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18091:30:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18065:56:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5715, - "nodeType": "ExpressionStatement", - "src": "18065:56:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5716, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "18128:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5718, - "indexExpression": { - "argumentTypes": null, - "id": 5717, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18139:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18128:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18159:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18151:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18151:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "18128:33:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5723, - "nodeType": "ExpressionStatement", - "src": "18128:33:8" - } - ] - }, - "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", - "id": 5725, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "removeTokenFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5695, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5692, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17974:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5691, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17974:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5694, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17989:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5693, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17989:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17973:33:8" - }, - "returnParameters": { - "id": 5696, - "nodeType": "ParameterList", - "parameters": [], - "src": "18016:0:8" - }, - "scope": 5764, - "src": "17949:218:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5762, - "nodeType": "Block", - "src": "18846:195:8", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 5741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "18857:17:8", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5738, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18858:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 5008, - "src": "18858:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 5740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18858:16:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5745, - "nodeType": "IfStatement", - "src": "18853:51:8", - "trueBody": { - "id": 5744, - "nodeType": "Block", - "src": "18876:28:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5742, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18892:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 5737, - "id": 5743, - "nodeType": "Return", - "src": "18885:11:8" - } - ] - } - }, - { - "assignments": [ - 5747 - ], - "declarations": [ - { - "constant": false, - "id": 5747, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 5762, - "src": "18910:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5746, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "18910:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5756, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5752, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5727, - "src": "18971:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5753, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5731, - "src": "18978:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5754, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5733, - "src": "18988:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5749, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18941:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5748, - "name": "ERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5080, - "src": "18926:14:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", - "typeString": "type(contract ERC721Receiver)" - } - }, - "id": 5750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:19:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Receiver_$5080", - "typeString": "contract ERC721Receiver" - } - }, - "id": 5751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 5079, - "src": "18926:36:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" - } - }, - "id": 5755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:68:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18910:84:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5757, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5747, - "src": "19009:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5758, - "name": "ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5206, - "src": "19019:15:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "19009:25:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5760, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19008:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5737, - "id": 5761, - "nodeType": "Return", - "src": "19001:34:8" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", - "id": 5763, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "checkAndCallSafeTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5734, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5727, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18724:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5726, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18724:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5729, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18744:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18744:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5731, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18762:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5730, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18762:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5733, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18785:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5732, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "18785:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18717:91:8" - }, - "returnParameters": { - "id": 5737, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5736, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18837:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5735, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18837:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18836:6:8" - }, - "scope": 5764, - "src": "18684:357:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "6942:12102:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5765, - "name": "ERC721BasicToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5764, - "src": "19081:16:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", - "typeString": "contract ERC721BasicToken" - } - }, - "id": 5766, - "nodeType": "InheritanceSpecifier", - "src": "19081:16:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187, - 5764 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 5797, - "linearizedBaseContracts": [ - 5797, - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicTokenMock", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5780, - "nodeType": "Block", - "src": "19155:39:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5776, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5768, - "src": "19174:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5777, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5770, - "src": "19179:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5773, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19162:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 5596, - "src": "19162:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19162:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5779, - "nodeType": "ExpressionStatement", - "src": "19162:26:8" - } - ] - }, - "documentation": null, - "id": 5781, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5771, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5768, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19117:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5767, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19117:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5770, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19130:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5769, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19130:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19116:31:8" - }, - "returnParameters": { - "id": 5772, - "nodeType": "ParameterList", - "parameters": [], - "src": "19155:0:8" - }, - "scope": 5797, - "src": "19103:91:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5795, - "nodeType": "Block", - "src": "19239:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5790, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19266:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5789, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "19258:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19258:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5792, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19277:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5786, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19246:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 5622, - "src": "19246:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19246:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5794, - "nodeType": "ExpressionStatement", - "src": "19246:40:8" - } - ] - }, - "documentation": null, - "id": 5796, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5784, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5783, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5796, - "src": "19214:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5782, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19214:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19213:18:8" - }, - "returnParameters": { - "id": 5785, - "nodeType": "ParameterList", - "parameters": [], - "src": "19239:0:8" - }, - "scope": 5797, - "src": "19200:92:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "19048:247:8" - } - ], - "src": "0:19297:8" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:20.062Z", - "devdoc": { - "details": "Interface for any contract that wants to support safeTransfers\r from ERC721 asset contracts.\r", - "methods": { - "onERC721Received(address,uint256,bytes)": { - "details": "The ERC721 smart contract calls this function on the recipient\r after a `safetransfer`. This function MAY throw to revert and reject the\r transfer. This function MUST use 50,000 gas or less. Return of other\r than the magic value MUST result in the transaction being reverted.\r Note: the contract address is always the message sender.\r", - "params": { - "_data": "Additional data with no specified format\r", - "_from": "The sending address\r", - "_tokenId": "The NFT identifier which is being transfered\r" - }, - "return": "`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r" - } - }, - "title": "ERC721 token receiver interface\r" - }, - "userdoc": { - "methods": { - "onERC721Received(address,uint256,bytes)": { - "notice": "Handle the receipt of an NFT\r" - } - } - } -} \ No newline at end of file diff --git a/src/contracts/GitFundedGrant.json b/src/contracts/GitFundedGrant.json deleted file mode 100644 index 4ef89ec..0000000 --- a/src/contracts/GitFundedGrant.json +++ /dev/null @@ -1,19761 +0,0 @@ -{ - "contractName": "GitFundedGrant", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "active", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "issues", - "outputs": [ - { - "name": "title", - "type": "string" - }, - { - "name": "amount", - "type": "uint256" - }, - { - "name": "allocated", - "type": "uint256" - }, - { - "name": "bountyId", - "type": "uint256" - }, - { - "name": "recipient", - "type": "address" - }, - { - "name": "status", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "contractStartTime", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "title", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "version", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalCurrentMembers", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "minorVersion", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "repoId", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "users", - "outputs": [ - { - "name": "exists", - "type": "bool" - }, - { - "name": "delegateKey", - "type": "address" - }, - { - "name": "balance", - "type": "uint256" - }, - { - "name": "shares", - "type": "uint256" - }, - { - "name": "role", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "expenses", - "outputs": [ - { - "name": "title", - "type": "string" - }, - { - "name": "amount", - "type": "uint256" - }, - { - "name": "allocated", - "type": "uint256" - }, - { - "name": "recipient", - "type": "address" - }, - { - "name": "status", - "type": "uint8" - }, - { - "name": "proposalIndex", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "availableFund", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "admin", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "i_repoId", - "type": "string" - }, - { - "name": "i_title", - "type": "string" - }, - { - "name": "i_budget", - "type": "uint256" - }, - { - "name": "i_admin", - "type": "address" - }, - { - "name": "i_bountyAddress", - "type": "address" - }, - { - "name": "i_tokenAddress", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "constant": false, - "inputs": [ - { - "name": "daoAddress", - "type": "address" - } - ], - "name": "initialize", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "destroy", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "fetchProject", - "outputs": [ - { - "name": "", - "type": "string" - }, - { - "name": "", - "type": "string" - }, - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_title", - "type": "string" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "applicant", - "type": "address" - }, - { - "name": "sharesRequested", - "type": "uint256" - }, - { - "name": "lootRequested", - "type": "uint256" - }, - { - "name": "tributeOffered", - "type": "uint256" - }, - { - "name": "tributeToken", - "type": "address" - }, - { - "name": "paymentRequested", - "type": "uint256" - }, - { - "name": "paymentToken", - "type": "address" - }, - { - "name": "details", - "type": "string" - } - ], - "name": "addExpense", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "expenseIndex", - "type": "uint256" - } - ], - "name": "acceptExpense", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "expenseIndex", - "type": "uint256" - } - ], - "name": "sponsorExpense", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "expenseIndex", - "type": "uint256" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "acceptPartialExpense", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [], - "name": "fundProject", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "recipient", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - } - ], - "name": "transferFund", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getExpensesCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getIssuesCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_title", - "type": "string" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "addIssue", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "issueIndex", - "type": "uint256" - }, - { - "name": "signature", - "type": "bytes" - }, - { - "name": "_issuers", - "type": "address[]" - }, - { - "name": "_approvers", - "type": "address[]" - }, - { - "name": "_data", - "type": "string" - }, - { - "name": "_deadline", - "type": "uint256" - }, - { - "name": "_token", - "type": "address" - }, - { - "name": "_tokenVersion", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "acceptIssueWithNoFund", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "issueIndex", - "type": "uint256" - }, - { - "name": "signature", - "type": "bytes" - }, - { - "name": "_issuers", - "type": "address[]" - }, - { - "name": "_approvers", - "type": "address[]" - }, - { - "name": "_data", - "type": "string" - }, - { - "name": "_deadline", - "type": "uint256" - }, - { - "name": "_token", - "type": "address" - }, - { - "name": "_tokenVersion", - "type": "uint256" - }, - { - "name": "_depositAmount", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "acceptIssue", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "recipient", - "type": "address" - } - ], - "name": "swipe", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "issueIndex", - "type": "uint256" - }, - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "fundIssue", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"issueIndex\",\"type\":\"uint256\"},{\"name\":\"signature\",\"type\":\"bytes\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_tokenVersion\",\"type\":\"uint256\"},{\"name\":\"_depositAmount\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"acceptIssue\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"active\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"issues\",\"outputs\":[{\"name\":\"title\",\"type\":\"string\"},{\"name\":\"amount\",\"type\":\"uint256\"},{\"name\":\"allocated\",\"type\":\"uint256\"},{\"name\":\"bountyId\",\"type\":\"uint256\"},{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"status\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"contractStartTime\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"expenseIndex\",\"type\":\"uint256\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"acceptPartialExpense\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getExpensesCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"expenseIndex\",\"type\":\"uint256\"}],\"name\":\"acceptExpense\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_title\",\"type\":\"string\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"addIssue\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"expenseIndex\",\"type\":\"uint256\"}],\"name\":\"sponsorExpense\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"title\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getIssuesCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalCurrentMembers\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"issueIndex\",\"type\":\"uint256\"},{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"fundIssue\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"minorVersion\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"destroy\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"fetchProject\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"string\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"repoId\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"users\",\"outputs\":[{\"name\":\"exists\",\"type\":\"bool\"},{\"name\":\"delegateKey\",\"type\":\"address\"},{\"name\":\"balance\",\"type\":\"uint256\"},{\"name\":\"shares\",\"type\":\"uint256\"},{\"name\":\"role\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"issueIndex\",\"type\":\"uint256\"},{\"name\":\"signature\",\"type\":\"bytes\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_tokenVersion\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"acceptIssueWithNoFund\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"expenses\",\"outputs\":[{\"name\":\"title\",\"type\":\"string\"},{\"name\":\"amount\",\"type\":\"uint256\"},{\"name\":\"allocated\",\"type\":\"uint256\"},{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"status\",\"type\":\"uint8\"},{\"name\":\"proposalIndex\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"daoAddress\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\"}],\"name\":\"swipe\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"availableFund\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"fundProject\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_title\",\"type\":\"string\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"applicant\",\"type\":\"address\"},{\"name\":\"sharesRequested\",\"type\":\"uint256\"},{\"name\":\"lootRequested\",\"type\":\"uint256\"},{\"name\":\"tributeOffered\",\"type\":\"uint256\"},{\"name\":\"tributeToken\",\"type\":\"address\"},{\"name\":\"paymentRequested\",\"type\":\"uint256\"},{\"name\":\"paymentToken\",\"type\":\"address\"},{\"name\":\"details\",\"type\":\"string\"}],\"name\":\"addExpense\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"recipient\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFund\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"i_repoId\",\"type\":\"string\"},{\"name\":\"i_title\",\"type\":\"string\"},{\"name\":\"i_budget\",\"type\":\"uint256\"},{\"name\":\"i_admin\",\"type\":\"address\"},{\"name\":\"i_bountyAddress\",\"type\":\"address\"},{\"name\":\"i_tokenAddress\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/GitFundedGrant.sol\":\"GitFundedGrant\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/GitFundedGrant.sol\":{\"keccak256\":\"0x8e4e4e93ef49625069d01d78121332f364556da1659eb2d8fb66315620da1e80\",\"urls\":[\"bzzr://b7351fd42bacdcb7066bc03507f0f3d41c71357d27f7bc21ffea0fa6aeaf7962\",\"dweb:/ipfs/QmPfSjuKcowi3F6YMr9a8qrsCLvcyFx5NacP6yBoJtwFKo\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/iBountiesMetaTxRelayer.sol\":{\"keccak256\":\"0x2c7a62683ee97ced4a5d82a5d24524d49e4e0ff8a8c7a4586e6450e590e6f917\",\"urls\":[\"bzzr://b01b873559523fad3de083f16b2d265f41de56a4b2d8d13955ec5c6e79a0d53f\",\"dweb:/ipfs/QmUkBDYA6czW2yFAypaw6EwreqN3795GYaG8PsYh2w5SC3\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Governance.sol\":{\"keccak256\":\"0x6008b164e82e38bbae1f88843ec8963a73a722963b941dd9bde72d4a0e849d80\",\"urls\":[\"bzzr://310d76b367fcb8cd744884b5e57e2a08ee9995ab845909d50f11f14c5f530273\",\"dweb:/ipfs/QmRVebN3g2R9R7HENS45ctw5Cn4wGLr65f8nGjtYkPW2jb\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol\":{\"keccak256\":\"0xa8ace5b5ac3322c9019470d2a1ad1342ef5d984da3d4818554e703b65ceda667\",\"urls\":[\"bzzr://b38168eab9d05f21a7576958f33878d9d31877a12f1f14bda390f3f4fbdaa2a4\",\"dweb:/ipfs/QmWa9cX9gzUkyM9yVwfhd6FsSeh1jpV62sBzdGJm6jRPRX\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/iGovernance.sol\":{\"keccak256\":\"0x2e3ecc4629568c30886c401376a98f196c7d8dafbf1dbce95296e0ca553cb85f\",\"urls\":[\"bzzr://a69865ec2501d5c618498843782e9c014b0903e4a6dc79511303fc5c53372534\",\"dweb:/ipfs/QmWX6FLo2pNaQQXfyVebLSc2VAi4yJNqiVLNSMUcouVyZa\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol\":{\"keccak256\":\"0x8d08add2e57d2885eb9cda96d2ce54056015247de9adfea8e13c78bb2d9233f2\",\"urls\":[\"bzzr://24804e36486f935a9e98bf507193d1b160db755edba6c9d124a894aef3741ada\",\"dweb:/ipfs/QmauQVeYbGgqJDNxKAceFj1hFD1gfCfAXNBA8vCh3aGYKA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", - "bytecode": "0x6080604052600160008181558180556003805460ff19169092179091556004553480156200002c57600080fd5b5060405162002a1f38038062002a1f833981810160405260c08110156200005257600080fd5b8101908080516401000000008111156200006b57600080fd5b820160208101848111156200007f57600080fd5b81516401000000008111828201871017156200009a57600080fd5b50509291906020018051640100000000811115620000b757600080fd5b82016020810184811115620000cb57600080fd5b8151640100000000811182820187101715620000e657600080fd5b5050602080830151604084015160608501516080909501518851949750919550939290916200011b91600c91890190620001a4565b5084516200013190600d906020880190620001a4565b5050600e92909255600b80546001600160a01b039283166001600160a01b0319918216179091556000600f556010805460068054958516959093169490941790915561010060ff19909316600117838104909216909202610100600160a81b031990911617905550504260025562000249565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001e757805160ff191683800117855562000217565b8280016001018555821562000217579182015b8281111562000217578251825591602001919060010190620001fa565b506200022592915062000229565b5090565b6200024691905b8082111562000225576000815560010162000230565b90565b6127c680620002596000396000f3fe6080604052600436106101b75760003560e01c80637436f3dc116100ec578063c4d66de81161008a578063d63dc66111610064578063d63dc66114610d21578063dff3ad6914610d29578063e2dc35e014610ea0578063f851a44014610ecc576101b7565b8063c4d66de814610ca6578063cce7db5814610cd9578063d0cb3cd114610d0c576101b7565b806391fc17b4116100c657806391fc17b414610911578063a87430ba14610926578063a9a74bd6146109a6578063af4afe0a14610c02576101b7565b80637436f3dc1461081a57806383197ef01461082f5780638c3006c714610844576101b7565b806322dffcbb1161015957806350b594471161013357806350b594471461071e57806354fd4d501461073357806360d41290146107485780636415921d1461075d576101b7565b806322dffcbb146105b757806325a287ce1461066a5780634a79d50c14610694576101b7565b80630c3d5157116101955780630c3d5157146105215780630d0f3f5d146105485780630daded9514610578578063125ede9d1461058d576101b7565b8063013e9128146101bc57806302fb0c5e1461041357806304e15de51461043c575b600080fd5b61041160048036036101408110156101d357600080fd5b81359190810190604081016020820135600160201b8111156101f457600080fd5b82018360208201111561020657600080fd5b803590602001918460018302840111600160201b8311171561022757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561027957600080fd5b82018360208201111561028b57600080fd5b803590602001918460208302840111600160201b831117156102ac57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156102fb57600080fd5b82018360208201111561030d57600080fd5b803590602001918460208302840111600160201b8311171561032e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561037d57600080fd5b82018360208201111561038f57600080fd5b803590602001918460018302840111600160201b831117156103b057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505082359350506001600160a01b03602083013516916040810135915060608101359060800135610efd565b005b34801561041f57600080fd5b50610428611300565b604080519115158252519081900360200190f35b34801561044857600080fd5b506104666004803603602081101561045f57600080fd5b5035611309565b6040518080602001878152602001868152602001858152602001846001600160a01b03166001600160a01b031681526020018360048111156104a457fe5b60ff168152602001828103825288818151815260200191508051906020019080838360005b838110156104e15781810151838201526020016104c9565b50505050905090810190601f16801561050e5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b34801561052d57600080fd5b506105366113e7565b60408051918252519081900360200190f35b34801561055457600080fd5b506104116004803603604081101561056b57600080fd5b50803590602001356113ed565b34801561058457600080fd5b50610536611596565b34801561059957600080fd5b50610411600480360360208110156105b057600080fd5b503561159d565b3480156105c357600080fd5b50610411600480360360408110156105da57600080fd5b810190602081018135600160201b8111156105f457600080fd5b82018360208201111561060657600080fd5b803590602001918460018302840111600160201b8311171561062757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550509135925061178c915050565b34801561067657600080fd5b506104116004803603602081101561068d57600080fd5b50356118a0565b3480156106a057600080fd5b506106a9611940565b6040805160208082528351818301528351919283929083019185019080838360005b838110156106e35781810151838201526020016106cb565b50505050905090810190601f1680156107105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561072a57600080fd5b506105366119ce565b34801561073f57600080fd5b506105366119d4565b34801561075457600080fd5b506105366119da565b34801561076957600080fd5b506104116004803603608081101561078057600080fd5b81359190810190604081016020820135600160201b8111156107a157600080fd5b8201836020820111156107b357600080fd5b803590602001918460018302840111600160201b831117156107d457600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050823593505050602001356119e0565b34801561082657600080fd5b50610536611b69565b34801561083b57600080fd5b50610411611b6f565b34801561085057600080fd5b50610859611bcd565b60408051908101849052606081018390526001600160a01b038216608082015260a08082528651908201528551819060208083019160c08401918a019080838360005b838110156108b457818101518382015260200161089c565b50505050905090810190601f1680156108e15780820380516001836020036101000a031916815260200191505b508381038252875181528751602091820191890190808383600083156104e15781810151838201526020016104c9565b34801561091d57600080fd5b506106a9611d21565b34801561093257600080fd5b506109596004803603602081101561094957600080fd5b50356001600160a01b0316611d7c565b6040805186151581526001600160a01b0386166020820152908101849052606081018390526080810182600281111561098e57fe5b60ff1681526020019550505050505060405180910390f35b3480156109b257600080fd5b5061041160048036036101208110156109ca57600080fd5b81359190810190604081016020820135600160201b8111156109eb57600080fd5b8201836020820111156109fd57600080fd5b803590602001918460018302840111600160201b83111715610a1e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115610a7057600080fd5b820183602082011115610a8257600080fd5b803590602001918460208302840111600160201b83111715610aa357600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610af257600080fd5b820183602082011115610b0457600080fd5b803590602001918460208302840111600160201b83111715610b2557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610b7457600080fd5b820183602082011115610b8657600080fd5b803590602001918460018302840111600160201b83111715610ba757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505082359350506001600160a01b03602083013516916040810135915060600135611db7565b348015610c0e57600080fd5b50610c2c60048036036020811015610c2557600080fd5b5035612164565b6040518080602001878152602001868152602001856001600160a01b03166001600160a01b03168152602001846003811115610c6457fe5b60ff16815260200183815260200182810382528881815181526020019150805190602001908083836000838110156104e15781810151838201526020016104c9565b348015610cb257600080fd5b5061041160048036036020811015610cc957600080fd5b50356001600160a01b0316612243565b348015610ce557600080fd5b5061041160048036036020811015610cfc57600080fd5b50356001600160a01b03166122b5565b348015610d1857600080fd5b5061053661233f565b610411612345565b348015610d3557600080fd5b506104116004803603610140811015610d4d57600080fd5b810190602081018135600160201b811115610d6757600080fd5b820183602082011115610d7957600080fd5b803590602001918460018302840111600160201b83111715610d9a57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092958435956001600160a01b03602087013581169660408101359650606081013595506080810135945060a081013582169360c08201359360e08301359093169290916101208101906101000135600160201b811115610e2c57600080fd5b820183602082011115610e3e57600080fd5b803590602001918460018302840111600160201b83111715610e5f57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061235d945050505050565b61041160048036036040811015610eb657600080fd5b506001600160a01b03813516906020013561258d565b348015610ed857600080fd5b50610ee1612629565b604080516001600160a01b039092168252519081900360200190f35b600b546001600160a01b03163314610f4d576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600060098b81548110610f5c57fe5b60009182526020822060016005909202010154915060098c81548110610f7e57fe5b906000526020600020906005020160040160149054906101000a900460ff166004811115610fa857fe5b14610ffa576040805162461bcd60e51b815260206004820152601960248201527f50726f6a656374206973206e6f7420696e206261636b6c6f6700000000000000604482015290519081900360640190fd5b80600f541015611047576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b600160098c8154811061105657fe5b906000526020600020906005020160040160146101000a81548160ff0219169083600481111561108257fe5b0217905550600f80548290039055600980548291908d9081106110a157fe5b906000526020600020906005020160020181905550600660009054906101000a90046001600160a01b03166001600160a01b031663b1e6bcbb828c8c8c8c8c8c8c8c8c6040518b63ffffffff1660e01b815260040180806020018060200180602001806020018a8152602001896001600160a01b03166001600160a01b0316815260200188815260200187815260200186815260200185810385528e818151815260200191508051906020019080838360005b8381101561116c578181015183820152602001611154565b50505050905090810190601f1680156111995780820380516001836020036101000a031916815260200191505b5085810384528d818151815260200191508051906020019060200280838360005b838110156111d25781810151838201526020016111ba565b5050505090500185810383528c818151815260200191508051906020019060200280838360005b838110156112115781810151838201526020016111f9565b5050505090500185810382528b818151815260200191508051906020019080838360005b8381101561124d578181015183820152602001611235565b50505050905090810190601f16801561127a5780820380516001836020036101000a031916815260200191505b509d50505050505050505050505050506020604051808303818588803b1580156112a357600080fd5b505af11580156112b7573d6000803e3d6000fd5b50505050506040513d60208110156112ce57600080fd5b5051600980548d9081106112de57fe5b9060005260206000209060050201600301819055505050505050505050505050565b60035460ff1681565b6009818154811061131657fe5b60009182526020918290206005919091020180546040805160026001841615610100026000190190931692909204601f8101859004850283018501909152808252919350918391908301828280156113af5780601f10611384576101008083540402835291602001916113af565b820191906000526020600020905b81548152906001019060200180831161139257829003601f168201915b50505050600183015460028401546003850154600490950154939491939092506001600160a01b03811690600160a01b900460ff1686565b60025481565b600b546001600160a01b0316331461143d576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b60006008838154811061144c57fe5b906000526020600020906005020160030160149054906101000a900460ff16600381111561147657fe5b1461148057600080fd5b80600f5410156114cd576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b6001600883815481106114dc57fe5b906000526020600020906005020160030160146101000a81548160ff0219169083600381111561150857fe5b0217905550600f80548290039055600880548291908490811061152757fe5b9060005260206000209060050201600201819055506008828154811061154957fe5b600091825260208220600360059092020101546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015611591573d6000803e3d6000fd5b505050565b6008545b90565b600b546001600160a01b031633146115ed576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b6000600882815481106115fc57fe5b906000526020600020906005020160040154905060006008838154811061161f57fe5b6000918252602082206001600590920201015491506008848154811061164157fe5b906000526020600020906005020160030160149054906101000a900460ff16600381111561166b57fe5b1461167557600080fd5b80600f5410156116c2576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b6002600884815481106116d157fe5b906000526020600020906005020160030160146101000a81548160ff021916908360038111156116fd57fe5b0217905550600f80548290039055600880548291908590811061171c57fe5b9060005260206000209060050201600201819055506008838154811061173e57fe5b600091825260208220600360059092020101546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015611786573d6000803e3d6000fd5b50505050565b611794612666565b6040518060c001604052808481526020018381526020016000815260200160008152602001336001600160a01b03168152602001600060048111156117d557fe5b90526009805460018101808355600092909252825180519394509192849260059092027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af019161182a918391602001906126af565b506020820151600182015560408201516002820155606082015160038201556080820151600480830180546001600160a01b0319166001600160a01b039093169290921780835560a0850151929160ff60a01b1990911690600160a01b90849081111561189357fe5b0217905550505050505050565b6007546040805163025d1b6560e61b81526004810184905290516001600160a01b0390921691639746d940916024808201926020929091908290030181600087803b1580156118ee57600080fd5b505af1158015611902573d6000803e3d6000fd5b505050506040513d602081101561191857600080fd5b5051600880548390811061192857fe5b90600052602060002090600502016004018190555050565b600d805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156119c65780601f1061199b576101008083540402835291602001916119c6565b820191906000526020600020905b8154815290600101906020018083116119a957829003601f168201915b505050505081565b60095490565b60005481565b60045481565b6000600985815481106119ef57fe5b60009182526020909120600360059092020101549050600160098681548110611a1457fe5b906000526020600020906005020160040160149054906101000a900460ff166004811115611a3e57fe5b14611a4857600080fd5b8260098681548110611a5657fe5b906000526020600020906005020160020160008282540192505081905550600660009054906101000a90046001600160a01b03166001600160a01b031663432326a984868487876040518663ffffffff1660e01b81526004018080602001858152602001848152602001838152602001828103825286818151815260200191508051906020019080838360005b83811015611afb578181015183820152602001611ae3565b50505050905090810190601f168015611b285780820380516001836020036101000a031916815260200191505b50955050505050506000604051808303818588803b158015611b4957600080fd5b505af1158015611b5d573d6000803e3d6000fd5b50505050505050505050565b60015481565b600b546001600160a01b03163314611bbf576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600b546001600160a01b0316ff5b600e54600f54600b54600c8054604080516020601f600260001960018716156101000201909516949094049384018190048102820181019092528281526060968796600096879687969095600d956001600160a01b0390931692918791830182828015611c7b5780601f10611c5057610100808354040283529160200191611c7b565b820191906000526020600020905b815481529060010190602001808311611c5e57829003601f168201915b5050875460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959a5089945092508401905082828015611d095780601f10611cde57610100808354040283529160200191611d09565b820191906000526020600020905b815481529060010190602001808311611cec57829003601f168201915b50989e939d50959b5093995091975095505050505050565b600c805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156119c65780601f1061199b576101008083540402835291602001916119c6565b600a60205260009081526040902080546001820154600283015460039093015460ff808416946101009094046001600160a01b031693911685565b600b546001600160a01b03163314611e07576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600060098a81548110611e1657fe5b60009182526020822060016005909202010154915060098b81548110611e3857fe5b906000526020600020906005020160040160149054906101000a900460ff166004811115611e6257fe5b14611e6c57600080fd5b80600f541015611eb9576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b600160098b81548110611ec857fe5b906000526020600020906005020160040160146101000a81548160ff02191690836004811115611ef457fe5b0217905550600f80548290039055600980548291908c908110611f1357fe5b906000526020600020906005020160020181905550600660009054906101000a90046001600160a01b03166001600160a01b031663df4015fc8a8a8a8a8a8a8a8a6040518963ffffffff1660e01b81526004018080602001806020018060200180602001898152602001886001600160a01b03166001600160a01b0316815260200187815260200186815260200185810385528d818151815260200191508051906020019080838360005b83811015611fd6578181015183820152602001611fbe565b50505050905090810190601f1680156120035780820380516001836020036101000a031916815260200191505b5085810384528c5181528c51602091820191808f01910280838360005b83811015612038578181015183820152602001612020565b5050505090500185810383528b818151815260200191508051906020019060200280838360005b8381101561207757818101518382015260200161205f565b5050505090500185810382528a818151815260200191508051906020019080838360005b838110156120b357818101518382015260200161209b565b50505050905090810190601f1680156120e05780820380516001836020036101000a031916815260200191505b509c50505050505050505050505050602060405180830381600087803b15801561210957600080fd5b505af115801561211d573d6000803e3d6000fd5b505050506040513d602081101561213357600080fd5b5051600980548c90811061214357fe5b90600052602060002090600502016003018190555050505050505050505050565b6008818154811061217157fe5b60009182526020918290206005919091020180546040805160026001841615610100026000190190931692909204601f81018590048502830185019091528082529193509183919083018282801561220a5780601f106121df5761010080835404028352916020019161220a565b820191906000526020600020905b8154815290600101906020018083116121ed57829003601f168201915b50505050600183015460028401546003850154600490950154939491939092506001600160a01b03821691600160a01b900460ff169086565b600b546001600160a01b03163314612293576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b600b546001600160a01b03163314612305576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b6040516001600160a01b03821690303180156108fc02916000818181858888f1935050505015801561233b573d6000803e3d6000fd5b5050565b600f5481565b600f54612358903463ffffffff61263816565b600f55565b61236561272d565b6040805160c0810182528c8152602081018c90526000918101829052336060820152906080820190815260006020918201819052600880546001810180835591909252835180519495509093859360059093027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301926123e99284929101906126af565b5060208201516001820155604082015160028201556060820151600380830180546001600160a01b0319166001600160a01b03909316929092178083556080850151929160ff60a01b1990911690600160a01b90849081111561244857fe5b021790555060a0919091015160049182015560075460405163590f940b60e01b81526001600160a01b038d8116938201938452602482018d9052604482018c9052606482018b9052898116608483015260a4820189905287811660c483015261010060e483019081528751610104840152875191909316945063590f940b938e938e938e938e938e938e938e938e9392916101240190602085019080838360005b838110156125015781810151838201526020016124e9565b50505050905090810190601f16801561252e5780820380516001836020036101000a031916815260200191505b509950505050505050505050602060405180830381600087803b15801561255457600080fd5b505af1158015612568573d6000803e3d6000fd5b505050506040513d602081101561257e57600080fd5b50505050505050505050505050565b600b546001600160a01b031633146125dd576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600f546125f0908263ffffffff61265116565b600f556040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611591573d6000803e3d6000fd5b600b546001600160a01b031681565b60008282018381101561264a57600080fd5b9392505050565b60008282111561266057600080fd5b50900390565b6040518060c001604052806060815260200160008152602001600081526020016000815260200160006001600160a01b03168152602001600060048111156126aa57fe5b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106126f057805160ff191683800117855561271d565b8280016001018555821561271d579182015b8281111561271d578251825591602001919060010190612702565b50612729929150612777565b5090565b6040518060c0016040528060608152602001600081526020016000815260200160006001600160a01b031681526020016000600381111561276a57fe5b8152602001600081525090565b61159a91905b80821115612729576000815560010161277d56fea265627a7a723058200e546ac39b5535e507ab2dfeb382697613f80eb1cf6f25c1eeea6059d0901a6964736f6c63430005090032", - "deployedBytecode": "0x6080604052600436106101b75760003560e01c80637436f3dc116100ec578063c4d66de81161008a578063d63dc66111610064578063d63dc66114610d21578063dff3ad6914610d29578063e2dc35e014610ea0578063f851a44014610ecc576101b7565b8063c4d66de814610ca6578063cce7db5814610cd9578063d0cb3cd114610d0c576101b7565b806391fc17b4116100c657806391fc17b414610911578063a87430ba14610926578063a9a74bd6146109a6578063af4afe0a14610c02576101b7565b80637436f3dc1461081a57806383197ef01461082f5780638c3006c714610844576101b7565b806322dffcbb1161015957806350b594471161013357806350b594471461071e57806354fd4d501461073357806360d41290146107485780636415921d1461075d576101b7565b806322dffcbb146105b757806325a287ce1461066a5780634a79d50c14610694576101b7565b80630c3d5157116101955780630c3d5157146105215780630d0f3f5d146105485780630daded9514610578578063125ede9d1461058d576101b7565b8063013e9128146101bc57806302fb0c5e1461041357806304e15de51461043c575b600080fd5b61041160048036036101408110156101d357600080fd5b81359190810190604081016020820135600160201b8111156101f457600080fd5b82018360208201111561020657600080fd5b803590602001918460018302840111600160201b8311171561022757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561027957600080fd5b82018360208201111561028b57600080fd5b803590602001918460208302840111600160201b831117156102ac57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156102fb57600080fd5b82018360208201111561030d57600080fd5b803590602001918460208302840111600160201b8311171561032e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561037d57600080fd5b82018360208201111561038f57600080fd5b803590602001918460018302840111600160201b831117156103b057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505082359350506001600160a01b03602083013516916040810135915060608101359060800135610efd565b005b34801561041f57600080fd5b50610428611300565b604080519115158252519081900360200190f35b34801561044857600080fd5b506104666004803603602081101561045f57600080fd5b5035611309565b6040518080602001878152602001868152602001858152602001846001600160a01b03166001600160a01b031681526020018360048111156104a457fe5b60ff168152602001828103825288818151815260200191508051906020019080838360005b838110156104e15781810151838201526020016104c9565b50505050905090810190601f16801561050e5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b34801561052d57600080fd5b506105366113e7565b60408051918252519081900360200190f35b34801561055457600080fd5b506104116004803603604081101561056b57600080fd5b50803590602001356113ed565b34801561058457600080fd5b50610536611596565b34801561059957600080fd5b50610411600480360360208110156105b057600080fd5b503561159d565b3480156105c357600080fd5b50610411600480360360408110156105da57600080fd5b810190602081018135600160201b8111156105f457600080fd5b82018360208201111561060657600080fd5b803590602001918460018302840111600160201b8311171561062757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550509135925061178c915050565b34801561067657600080fd5b506104116004803603602081101561068d57600080fd5b50356118a0565b3480156106a057600080fd5b506106a9611940565b6040805160208082528351818301528351919283929083019185019080838360005b838110156106e35781810151838201526020016106cb565b50505050905090810190601f1680156107105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561072a57600080fd5b506105366119ce565b34801561073f57600080fd5b506105366119d4565b34801561075457600080fd5b506105366119da565b34801561076957600080fd5b506104116004803603608081101561078057600080fd5b81359190810190604081016020820135600160201b8111156107a157600080fd5b8201836020820111156107b357600080fd5b803590602001918460018302840111600160201b831117156107d457600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050823593505050602001356119e0565b34801561082657600080fd5b50610536611b69565b34801561083b57600080fd5b50610411611b6f565b34801561085057600080fd5b50610859611bcd565b60408051908101849052606081018390526001600160a01b038216608082015260a08082528651908201528551819060208083019160c08401918a019080838360005b838110156108b457818101518382015260200161089c565b50505050905090810190601f1680156108e15780820380516001836020036101000a031916815260200191505b508381038252875181528751602091820191890190808383600083156104e15781810151838201526020016104c9565b34801561091d57600080fd5b506106a9611d21565b34801561093257600080fd5b506109596004803603602081101561094957600080fd5b50356001600160a01b0316611d7c565b6040805186151581526001600160a01b0386166020820152908101849052606081018390526080810182600281111561098e57fe5b60ff1681526020019550505050505060405180910390f35b3480156109b257600080fd5b5061041160048036036101208110156109ca57600080fd5b81359190810190604081016020820135600160201b8111156109eb57600080fd5b8201836020820111156109fd57600080fd5b803590602001918460018302840111600160201b83111715610a1e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115610a7057600080fd5b820183602082011115610a8257600080fd5b803590602001918460208302840111600160201b83111715610aa357600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610af257600080fd5b820183602082011115610b0457600080fd5b803590602001918460208302840111600160201b83111715610b2557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610b7457600080fd5b820183602082011115610b8657600080fd5b803590602001918460018302840111600160201b83111715610ba757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505082359350506001600160a01b03602083013516916040810135915060600135611db7565b348015610c0e57600080fd5b50610c2c60048036036020811015610c2557600080fd5b5035612164565b6040518080602001878152602001868152602001856001600160a01b03166001600160a01b03168152602001846003811115610c6457fe5b60ff16815260200183815260200182810382528881815181526020019150805190602001908083836000838110156104e15781810151838201526020016104c9565b348015610cb257600080fd5b5061041160048036036020811015610cc957600080fd5b50356001600160a01b0316612243565b348015610ce557600080fd5b5061041160048036036020811015610cfc57600080fd5b50356001600160a01b03166122b5565b348015610d1857600080fd5b5061053661233f565b610411612345565b348015610d3557600080fd5b506104116004803603610140811015610d4d57600080fd5b810190602081018135600160201b811115610d6757600080fd5b820183602082011115610d7957600080fd5b803590602001918460018302840111600160201b83111715610d9a57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092958435956001600160a01b03602087013581169660408101359650606081013595506080810135945060a081013582169360c08201359360e08301359093169290916101208101906101000135600160201b811115610e2c57600080fd5b820183602082011115610e3e57600080fd5b803590602001918460018302840111600160201b83111715610e5f57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061235d945050505050565b61041160048036036040811015610eb657600080fd5b506001600160a01b03813516906020013561258d565b348015610ed857600080fd5b50610ee1612629565b604080516001600160a01b039092168252519081900360200190f35b600b546001600160a01b03163314610f4d576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600060098b81548110610f5c57fe5b60009182526020822060016005909202010154915060098c81548110610f7e57fe5b906000526020600020906005020160040160149054906101000a900460ff166004811115610fa857fe5b14610ffa576040805162461bcd60e51b815260206004820152601960248201527f50726f6a656374206973206e6f7420696e206261636b6c6f6700000000000000604482015290519081900360640190fd5b80600f541015611047576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b600160098c8154811061105657fe5b906000526020600020906005020160040160146101000a81548160ff0219169083600481111561108257fe5b0217905550600f80548290039055600980548291908d9081106110a157fe5b906000526020600020906005020160020181905550600660009054906101000a90046001600160a01b03166001600160a01b031663b1e6bcbb828c8c8c8c8c8c8c8c8c6040518b63ffffffff1660e01b815260040180806020018060200180602001806020018a8152602001896001600160a01b03166001600160a01b0316815260200188815260200187815260200186815260200185810385528e818151815260200191508051906020019080838360005b8381101561116c578181015183820152602001611154565b50505050905090810190601f1680156111995780820380516001836020036101000a031916815260200191505b5085810384528d818151815260200191508051906020019060200280838360005b838110156111d25781810151838201526020016111ba565b5050505090500185810383528c818151815260200191508051906020019060200280838360005b838110156112115781810151838201526020016111f9565b5050505090500185810382528b818151815260200191508051906020019080838360005b8381101561124d578181015183820152602001611235565b50505050905090810190601f16801561127a5780820380516001836020036101000a031916815260200191505b509d50505050505050505050505050506020604051808303818588803b1580156112a357600080fd5b505af11580156112b7573d6000803e3d6000fd5b50505050506040513d60208110156112ce57600080fd5b5051600980548d9081106112de57fe5b9060005260206000209060050201600301819055505050505050505050505050565b60035460ff1681565b6009818154811061131657fe5b60009182526020918290206005919091020180546040805160026001841615610100026000190190931692909204601f8101859004850283018501909152808252919350918391908301828280156113af5780601f10611384576101008083540402835291602001916113af565b820191906000526020600020905b81548152906001019060200180831161139257829003601f168201915b50505050600183015460028401546003850154600490950154939491939092506001600160a01b03811690600160a01b900460ff1686565b60025481565b600b546001600160a01b0316331461143d576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b60006008838154811061144c57fe5b906000526020600020906005020160030160149054906101000a900460ff16600381111561147657fe5b1461148057600080fd5b80600f5410156114cd576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b6001600883815481106114dc57fe5b906000526020600020906005020160030160146101000a81548160ff0219169083600381111561150857fe5b0217905550600f80548290039055600880548291908490811061152757fe5b9060005260206000209060050201600201819055506008828154811061154957fe5b600091825260208220600360059092020101546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015611591573d6000803e3d6000fd5b505050565b6008545b90565b600b546001600160a01b031633146115ed576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b6000600882815481106115fc57fe5b906000526020600020906005020160040154905060006008838154811061161f57fe5b6000918252602082206001600590920201015491506008848154811061164157fe5b906000526020600020906005020160030160149054906101000a900460ff16600381111561166b57fe5b1461167557600080fd5b80600f5410156116c2576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b6002600884815481106116d157fe5b906000526020600020906005020160030160146101000a81548160ff021916908360038111156116fd57fe5b0217905550600f80548290039055600880548291908590811061171c57fe5b9060005260206000209060050201600201819055506008838154811061173e57fe5b600091825260208220600360059092020101546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015611786573d6000803e3d6000fd5b50505050565b611794612666565b6040518060c001604052808481526020018381526020016000815260200160008152602001336001600160a01b03168152602001600060048111156117d557fe5b90526009805460018101808355600092909252825180519394509192849260059092027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af019161182a918391602001906126af565b506020820151600182015560408201516002820155606082015160038201556080820151600480830180546001600160a01b0319166001600160a01b039093169290921780835560a0850151929160ff60a01b1990911690600160a01b90849081111561189357fe5b0217905550505050505050565b6007546040805163025d1b6560e61b81526004810184905290516001600160a01b0390921691639746d940916024808201926020929091908290030181600087803b1580156118ee57600080fd5b505af1158015611902573d6000803e3d6000fd5b505050506040513d602081101561191857600080fd5b5051600880548390811061192857fe5b90600052602060002090600502016004018190555050565b600d805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156119c65780601f1061199b576101008083540402835291602001916119c6565b820191906000526020600020905b8154815290600101906020018083116119a957829003601f168201915b505050505081565b60095490565b60005481565b60045481565b6000600985815481106119ef57fe5b60009182526020909120600360059092020101549050600160098681548110611a1457fe5b906000526020600020906005020160040160149054906101000a900460ff166004811115611a3e57fe5b14611a4857600080fd5b8260098681548110611a5657fe5b906000526020600020906005020160020160008282540192505081905550600660009054906101000a90046001600160a01b03166001600160a01b031663432326a984868487876040518663ffffffff1660e01b81526004018080602001858152602001848152602001838152602001828103825286818151815260200191508051906020019080838360005b83811015611afb578181015183820152602001611ae3565b50505050905090810190601f168015611b285780820380516001836020036101000a031916815260200191505b50955050505050506000604051808303818588803b158015611b4957600080fd5b505af1158015611b5d573d6000803e3d6000fd5b50505050505050505050565b60015481565b600b546001600160a01b03163314611bbf576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600b546001600160a01b0316ff5b600e54600f54600b54600c8054604080516020601f600260001960018716156101000201909516949094049384018190048102820181019092528281526060968796600096879687969095600d956001600160a01b0390931692918791830182828015611c7b5780601f10611c5057610100808354040283529160200191611c7b565b820191906000526020600020905b815481529060010190602001808311611c5e57829003601f168201915b5050875460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959a5089945092508401905082828015611d095780601f10611cde57610100808354040283529160200191611d09565b820191906000526020600020905b815481529060010190602001808311611cec57829003601f168201915b50989e939d50959b5093995091975095505050505050565b600c805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156119c65780601f1061199b576101008083540402835291602001916119c6565b600a60205260009081526040902080546001820154600283015460039093015460ff808416946101009094046001600160a01b031693911685565b600b546001600160a01b03163314611e07576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600060098a81548110611e1657fe5b60009182526020822060016005909202010154915060098b81548110611e3857fe5b906000526020600020906005020160040160149054906101000a900460ff166004811115611e6257fe5b14611e6c57600080fd5b80600f541015611eb9576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b600160098b81548110611ec857fe5b906000526020600020906005020160040160146101000a81548160ff02191690836004811115611ef457fe5b0217905550600f80548290039055600980548291908c908110611f1357fe5b906000526020600020906005020160020181905550600660009054906101000a90046001600160a01b03166001600160a01b031663df4015fc8a8a8a8a8a8a8a8a6040518963ffffffff1660e01b81526004018080602001806020018060200180602001898152602001886001600160a01b03166001600160a01b0316815260200187815260200186815260200185810385528d818151815260200191508051906020019080838360005b83811015611fd6578181015183820152602001611fbe565b50505050905090810190601f1680156120035780820380516001836020036101000a031916815260200191505b5085810384528c5181528c51602091820191808f01910280838360005b83811015612038578181015183820152602001612020565b5050505090500185810383528b818151815260200191508051906020019060200280838360005b8381101561207757818101518382015260200161205f565b5050505090500185810382528a818151815260200191508051906020019080838360005b838110156120b357818101518382015260200161209b565b50505050905090810190601f1680156120e05780820380516001836020036101000a031916815260200191505b509c50505050505050505050505050602060405180830381600087803b15801561210957600080fd5b505af115801561211d573d6000803e3d6000fd5b505050506040513d602081101561213357600080fd5b5051600980548c90811061214357fe5b90600052602060002090600502016003018190555050505050505050505050565b6008818154811061217157fe5b60009182526020918290206005919091020180546040805160026001841615610100026000190190931692909204601f81018590048502830185019091528082529193509183919083018282801561220a5780601f106121df5761010080835404028352916020019161220a565b820191906000526020600020905b8154815290600101906020018083116121ed57829003601f168201915b50505050600183015460028401546003850154600490950154939491939092506001600160a01b03821691600160a01b900460ff169086565b600b546001600160a01b03163314612293576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b600b546001600160a01b03163314612305576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b6040516001600160a01b03821690303180156108fc02916000818181858888f1935050505015801561233b573d6000803e3d6000fd5b5050565b600f5481565b600f54612358903463ffffffff61263816565b600f55565b61236561272d565b6040805160c0810182528c8152602081018c90526000918101829052336060820152906080820190815260006020918201819052600880546001810180835591909252835180519495509093859360059093027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301926123e99284929101906126af565b5060208201516001820155604082015160028201556060820151600380830180546001600160a01b0319166001600160a01b03909316929092178083556080850151929160ff60a01b1990911690600160a01b90849081111561244857fe5b021790555060a0919091015160049182015560075460405163590f940b60e01b81526001600160a01b038d8116938201938452602482018d9052604482018c9052606482018b9052898116608483015260a4820189905287811660c483015261010060e483019081528751610104840152875191909316945063590f940b938e938e938e938e938e938e938e938e9392916101240190602085019080838360005b838110156125015781810151838201526020016124e9565b50505050905090810190601f16801561252e5780820380516001836020036101000a031916815260200191505b509950505050505050505050602060405180830381600087803b15801561255457600080fd5b505af1158015612568573d6000803e3d6000fd5b505050506040513d602081101561257e57600080fd5b50505050505050505050505050565b600b546001600160a01b031633146125dd576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600f546125f0908263ffffffff61265116565b600f556040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611591573d6000803e3d6000fd5b600b546001600160a01b031681565b60008282018381101561264a57600080fd5b9392505050565b60008282111561266057600080fd5b50900390565b6040518060c001604052806060815260200160008152602001600081526020016000815260200160006001600160a01b03168152602001600060048111156126aa57fe5b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106126f057805160ff191683800117855561271d565b8280016001018555821561271d579182015b8281111561271d578251825591602001919060010190612702565b50612729929150612777565b5090565b6040518060c0016040528060608152602001600081526020016000815260200160006001600160a01b031681526020016000600381111561276a57fe5b8152602001600081525090565b61159a91905b80821115612729576000815560010161277d56fea265627a7a723058200e546ac39b5535e507ab2dfeb382697613f80eb1cf6f25c1eeea6059d0901a6964736f6c63430005090032", - "sourceMap": "183:8070:0:-;;;240:1;218:23;;;;248:28;;;321:25;;;-1:-1:-1;;321:25:0;;;;;;;353:35;;471:488;5:2:-1;;;;30:1;27;20:12;5:2;471:488:0;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;471:488:0;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;261:11;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;0:372;;471:488:0;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;261:11;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;-1:-1;;471:488:0;;;;;;;;;;;;;;;;;;641:17;;471:488;;-1:-1:-1;471:488:0;;-1:-1:-1;471:488:0;;;;641:17;;:6;;:17;;;;:::i;:::-;-1:-1:-1;665:15:0;;;;:5;;:15;;;;;:::i;:::-;-1:-1:-1;;687:6:0;:17;;;;711:5;:15;;-1:-1:-1;;;;;;711:15:0;;;-1:-1:-1;;;;;711:15:0;;;;;;;-1:-1:-1;733:13:0;:17;757:4;:11;;843:2;:42;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;757:11:0;;;-1:-1:-1;757:11:0;892:27;;;711:15;907:12;;;;;;;892:27;;;;;;-1:-1:-1;;948:3:0;928:17;:23;183:8070;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;183:8070:0;;;-1:-1:-1;183:8070:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "183:8070:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6925:825;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;6925:825:0;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;6925:825:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6925:825:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6925:825:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6925:825:0;;;;;;;;-1:-1:-1;6925:825:0;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;6925:825:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6925:825:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6925:825:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6925:825:0;;;;;;;;-1:-1:-1;6925:825:0;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;6925:825:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6925:825:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6925:825:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6925:825:0;;;;;;;;-1:-1:-1;6925:825:0;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;6925:825:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6925:825:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6925:825:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6925:825:0;;-1:-1:-1;;6925:825:0;;;-1:-1:-1;;;6925:825:0;;;;-1:-1:-1;;;;;6925:825:0;;;;;;;;;;;;;;;;:::i;:::-;;321:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;321:25:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;2457:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2457:21:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2457:21:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2457:21:0;;;;;;;-1:-1:-1;2457:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2457:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;283:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;283:29:0;;;:::i;:::-;;;;;;;;;;;;;;;;4711:433;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4711:433:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4711:433:0;;;;;;;:::i;5444:90::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5444:90:0;;;:::i;3748:734::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3748:734:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3748:734:0;;:::i;5757:195::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5757:195:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5757:195:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;5757:195:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5757:195:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;5757:195:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;5757:195:0;;-1:-1:-1;;5757:195:0;;;-1:-1:-1;5757:195:0;;-1:-1:-1;;5757:195:0:i;4486:137::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4486:137:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4486:137:0;;:::i;2587:19::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2587:19:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2587:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5540:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5540:86:0;;;:::i;218:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;218:23:0;;;:::i;353:35::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;353:35:0;;;:::i;7880:370::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7880:370:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;7880:370:0;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;7880:370:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7880:370:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;7880:370:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;7880:370:0;;-1:-1:-1;;7880:370:0;;;-1:-1:-1;;;7880:370:0;;;;:::i;248:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;248:28:0;;;:::i;2968:74::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2968:74:0;;;:::i;3048:163::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3048:163:0;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3048:163:0;;;;;;-1:-1:-1;3048:163:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3048:163:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3048:163:0;;;;;;;;;;;;;;;;;;;;;;23:1:-1;27:10;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;2562:20:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2562:20:0;;;:::i;2485:37::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2485:37:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2485:37:0;-1:-1:-1;;;;;2485:37:0;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;2485:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6005:837;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6005:837:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;6005:837:0;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;6005:837:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6005:837:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6005:837:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6005:837:0;;;;;;;;-1:-1:-1;6005:837:0;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;6005:837:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6005:837:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6005:837:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6005:837:0;;;;;;;;-1:-1:-1;6005:837:0;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;6005:837:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6005:837:0;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;-1:-1;;;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6005:837:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6005:837:0;;;;;;;;-1:-1:-1;6005:837:0;;-1:-1:-1;;;;;5:28;;2:2;;;46:1;43;36:12;2:2;6005:837:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6005:837:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;6005:837:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;6005:837:0;;-1:-1:-1;;6005:837:0;;;-1:-1:-1;;;6005:837:0;;;;-1:-1:-1;;;;;6005:837:0;;;;;;;;;;;:::i;2427:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2427:25:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2427:25:0;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2427:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;1016:102:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1016:102:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1016:102:0;-1:-1:-1;;;;;1016:102:0;;:::i;7756:117::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7756:117:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7756:117:0;-1:-1:-1;;;;;7756:117:0;;:::i;2641:25::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2641:25:0;;;:::i;5152:101::-;;;:::i;3217:525::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3217:525:0;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;3217:525:0;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;3217:525:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3217:525:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3217:525:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;3217:525:0;;;;;-1:-1:-1;;;;;3217:525:0;;;;;;;;;;;;-1:-1:-1;3217:525:0;;;;;-1:-1:-1;3217:525:0;;;;;-1:-1:-1;;3217:525:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5:28;;2:2;;;46:1;43;36:12;2:2;3217:525:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3217:525:0;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;-1:-1;;;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3217:525:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;3217:525:0;;-1:-1:-1;3217:525:0;;-1:-1:-1;;;;;3217:525:0:i;5259:177::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5259:177:0;;-1:-1:-1;;;;;5259:177:0;;;;;;:::i;2529:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2529:28:0;;;:::i;:::-;;;;-1:-1:-1;;;;;2529:28:0;;;;;;;;;;;;;;6925:825;2827:5;;-1:-1:-1;;;;;2827:5:0;2813:10;:19;2805:46;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;;;;7237:11;7251:6;7258:10;7251:18;;;;;;;;;;;;;;;:25;:18;;;;;:25;;;-1:-1:-1;7291:6:0;7298:10;7291:18;;;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;:48;;;;;;;;;7283:86;;;;;-1:-1:-1;;;7283:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;7401:6;7384:13;;:23;;7376:55;;;;;-1:-1:-1;;;7376:55:0;;;;;;;;;;;;-1:-1:-1;;;7376:55:0;;;;;;;;;;;;;;;7470:16;7442:6;7449:10;7442:18;;;;;;;;;;;;;;;;;;:25;;;:44;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7493:13:0;:23;;;;;;;7523:6;:18;;7510:6;;7523;7530:10;;7523:18;;;;;;;;;;;;;;;;:28;;:38;;;;7598:2;;;;;;;;;-1:-1:-1;;;;;7598:2:0;-1:-1:-1;;;;;7598:25:0;;7630:6;7638:9;7649:8;7666:10;7678:5;7685:9;7696:6;7704:13;7719:14;7735:6;7598:144;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7598:144:0;-1:-1:-1;;;;;7598:144:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7598:144:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7598:144:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7598:144:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7598:144:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7598:144:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7598:144:0;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7598:144:0;7570:6;:18;;7577:10;;7570:18;;;;;;;;;;;;;;;;:27;;:172;;;;2860:1;6925:825;;;;;;;;;;:::o;321:25::-;;;;;;:::o;2457:21::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2457:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2457:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;2457:21:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2457:21:0;;;-1:-1:-1;;;2457:21:0;;;;;:::o;283:29::-;;;;:::o;4711:433::-;2827:5;;-1:-1:-1;;;;;2827:5:0;2813:10;:19;2805:46;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;;;;4840:21;4807:8;4816:12;4807:22;;;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;:54;;;;;;;;;4799:63;;;;;;4894:6;4877:13;;:23;;4869:55;;;;;-1:-1:-1;;;4869:55:0;;;;;;;;;;;;-1:-1:-1;;;4869:55:0;;;;;;;;;;;;;;;4967:32;4935:8;4944:12;4935:22;;;;;;;;;;;;;;;;;;:29;;;:64;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5006:13:0;:23;;;;;;;5036:8;:22;;5023:6;;5036:8;5045:12;;5036:22;;;;;;;;;;;;;;;;:32;;:42;;;;5085:8;5094:12;5085:22;;;;;;;;;;;;;;;;;;;;;:32;;;:49;;-1:-1:-1;;;;;5085:32:0;;;;:49;;;;;;;;:22;:49;;:32;:49;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;5085:49:0;4711:433;;:::o;5444:90::-;5513:8;:15;5444:90;;:::o;3748:734::-;2827:5;;-1:-1:-1;;;;;2827:5:0;2813:10;:19;2805:46;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;;;;3816:10;3829:8;3838:12;3829:22;;;;;;;;;;;;;;;;;;:36;;;3816:49;;4099:11;4113:8;4122:12;4113:22;;;;;;;;;;;;;;;:29;:22;;;;;:29;;;-1:-1:-1;4157:8:0;4166:12;4157:22;;;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;:54;;;;;;;;;4149:63;;;;;;4244:6;4227:13;;:23;;4219:55;;;;;-1:-1:-1;;;4219:55:0;;;;;;;;;;;;-1:-1:-1;;;4219:55:0;;;;;;;;;;;;;;;4317:22;4285:8;4294:12;4285:22;;;;;;;;;;;;;;;;;;:29;;;:54;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4346:13:0;:23;;;;;;;4376:8;:22;;4363:6;;4376:8;4385:12;;4376:22;;;;;;;;;;;;;;;;:32;;:42;;;;4425:8;4434:12;4425:22;;;;;;;;;;;;;;;;;;;;;:32;;;:49;;-1:-1:-1;;;;;4425:32:0;;;;:49;;;;;;;;:22;:49;;:32;:49;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4425:49:0;2860:1;;3748:734;:::o;5757:195::-;5831:18;;:::i;:::-;5852:61;;;;;;;;;;;;;;;;;-1:-1:-1;5852:61:0;;;;;;;;;;;;5881:10;5852:61;;;;;-1:-1:-1;5852:61:0;;;5924:6;27:10:-1;;39:1;23:18;;45:23;;;-1:-1;5924:18:0;;;;;;;;5831:82;;-1:-1:-1;23:18;;5831:82:0;;5924:18;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;5924:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5924:18:0;-1:-1:-1;;;;;5924:18:0;;;;;;;;;;-1:-1:-1;5924:18:0;;;;;-1:-1:-1;;;;5924:18:0;;;;-1:-1:-1;;;;5924:18:0;;;;;;;;;;;;;;;;;5757:195;;;:::o;4486:137::-;4584:3;;:33;;;-1:-1:-1;;;4584:33:0;;;;;;;;;;-1:-1:-1;;;;;4584:3:0;;;;:19;;:33;;;;;;;;;;;;;;;-1:-1:-1;4584:3:0;:33;;;5:2:-1;;;;30:1;27;20:12;5:2;4584:33:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4584:33:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4584:33:0;4544:8;:22;;4553:12;;4544:22;;;;;;;;;;;;;;;;:36;;:73;;;;4486:137;:::o;2587:19::-;;;;;;;;;;;;;;;-1:-1:-1;;2587:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5540:86::-;5607:6;:13;5540:86;:::o;218:23::-;;;;:::o;353:35::-;;;;:::o;7880:370::-;8007:14;8022:6;8029:10;8022:18;;;;;;;;;;;;;;;;:27;:18;;;;;:27;;;-1:-1:-1;8097:16:0;8068:6;8075:10;8068:18;;;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;:45;;;;;;;;;8060:54;;;;;;8156:7;8123:6;8130:10;8123:18;;;;;;;;;;;;;;;;:28;:18;;;;;:28;;;;:40;;;;;;;;8172:2;;:69;;-1:-1:-1;;;8172:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8172:2:0;;;;:17;;8196:7;;8205:10;;8216:9;;8196:7;;8234:6;;8172:69;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8172:69:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8172:69:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8172:69:0;;;;;7880:370;;;;;:::o;248:28::-;;;;:::o;2968:74::-;2827:5;;-1:-1:-1;;;;;2827:5:0;2813:10;:19;2805:46;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;;;;3028:5;;-1:-1:-1;;;;;3028:5:0;3015:19;3048:163;3176:6;;3184:13;;3199:5;;3161:6;3153:52;;;;;;;3199:5;;3153:52;;;;-1:-1:-1;;3153:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;3093:13;;;;-1:-1:-1;;;;;;3161:6:0;;3169:5;;-1:-1:-1;;;;;3199:5:0;;;;3153:52;3161:6;;3153:52;;;3161:6;3153:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;3153:52:0;;;;;;;;;;;;;-1:-1:-1;;3153:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3153:52:0;;-1:-1:-1;3153:52:0;-1:-1:-1;3153:52:0;;;-1:-1:-1;3153:52:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3153:52:0;;;;-1:-1:-1;3153:52:0;;-1:-1:-1;3153:52:0;;-1:-1:-1;3153:52:0;;-1:-1:-1;3048:163:0;-1:-1:-1;;;;;;3048:163:0:o;2562:20::-;;;;;;;;;;;;;;;-1:-1:-1;;2562:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2485:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2485:37:0;;;;;:::o;6005:837::-;2827:5;;-1:-1:-1;;;;;2827:5:0;2813:10;:19;2805:46;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;;;;6361:11;6375:6;6382:10;6375:18;;;;;;;;;;;;;;;:25;:18;;;;;:25;;;-1:-1:-1;6419:6:0;6426:10;6419:18;;;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;:48;;;;;;;;;6411:57;;;;;;6504:6;6487:13;;:23;;6479:55;;;;;-1:-1:-1;;;6479:55:0;;;;;;;;;;;;-1:-1:-1;;;6479:55:0;;;;;;;;;;;;;;;6577:16;6549:6;6556:10;6549:18;;;;;;;;;;;;;;;;;;:25;;;:44;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6604:13:0;:23;;;;;;;6638:6;:18;;6621:6;;6638;6645:10;;6638:18;;;;;;;;;;;;;;;;:28;;:38;;;;6719:2;;;;;;;;;-1:-1:-1;;;;;6719:2:0;-1:-1:-1;;;;;6719:18:0;;6738:9;6749:8;6772:10;6784:5;6791:9;6802:6;6810:13;6825:6;6719:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6719:113:0;-1:-1:-1;;;;;6719:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6719:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6719:113:0;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6719:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6719:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6719:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6719:113:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;6719:113:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6719:113:0;6689:6;:18;;6696:10;;6689:18;;;;;;;;;;;;;;;;:27;;:143;;;;2860:1;6005:837;;;;;;;;;:::o;2427:25::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2427:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2427:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;2427:25:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2427:25:0;;;-1:-1:-1;;;2427:25:0;;;;;;:::o;1016:102::-;2827:5;;-1:-1:-1;;;;;2827:5:0;2813:10;:19;2805:46;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;;;;1082:3;:28;;-1:-1:-1;;;;;;1082:28:0;-1:-1:-1;;;;;1082:28:0;;;;;;;;;;1016:102::o;7756:117::-;2827:5;;-1:-1:-1;;;;;2827:5:0;2813:10;:19;2805:46;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;;;;7826:41;;-1:-1:-1;;;;;7826:18:0;;;7853:4;7845:21;7826:41;;;;;;;;;7845:21;7826:18;:41;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;7826:41:0;7756:117;:::o;2641:25::-;;;;:::o;5152:101::-;5215:13;;:28;;5233:9;5215:28;:17;:28;:::i;:::-;5199:13;:44;5152:101::o;3217:525::-;3484:22;;:::i;:::-;3509:64;;;;;;;;;;;;;;;;;-1:-1:-1;3509:64:0;;;;;;3537:10;3509:64;;;;;;;;;;;3571:1;3509:64;;;;;;;3580:8;27:10:-1;;39:1;23:18;;45:23;;;3580:22:0;;;;;;;;3484:89;;-1:-1:-1;23:18;;3484:89:0;;3580:22;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;3580:22:0;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;3580:22:0;-1:-1:-1;;;;;3580:22:0;;;;;;;;;;;;;;;;-1:-1:-1;;;;3580:22:0;;;;-1:-1:-1;;;;3580:22:0;;;;;;;;;;;;;-1:-1:-1;3580:22:0;;;;;;;;;;;3609:3;;:125;;-1:-1:-1;;;3609:125:0;;-1:-1:-1;;;;;3609:125:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:3;:125;;;;;;;;;;;;;;:3;;;;;-1:-1:-1;;;3609:125:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3609:125:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3609:125:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3609:125:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;;;;;;;;3217:525:0:o;5259:177::-;2827:5;;-1:-1:-1;;;;;2827:5:0;2813:10;:19;2805:46;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;-1:-1:-1;;;2805:46:0;;;;;;;;;;;;;;;5370:13;;:24;;5388:5;5370:24;:17;:24;:::i;:::-;5354:13;:40;5401:25;;-1:-1:-1;;;;;5401:18:0;;;:25;;;;;;;;;;;;:18;:25;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;2529:28:0;;;-1:-1:-1;;;;;2529:28:0;;:::o;589:150:22:-;647:7;679:5;;;703:6;;;;695:15;;;;;;730:1;589:150;-1:-1:-1;;;589:150:22:o;431:::-;489:7;522:1;517;:6;;509:15;;;;;;-1:-1:-1;547:5:22;;;431:150::o;183:8070:0:-;;;;;;;;;;;;;-1:-1:-1;183:8070:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;183:8070:0;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;183:8070:0;;;-1:-1:-1;183:8070:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;183:8070:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;", - "source": "pragma solidity >=0.5.0 < 0.6.0;\r\nimport \"./dao/oz/SafeMath.sol\";\r\nimport './bounties/iBountiesMetaTxRelayer.sol';\r\nimport './dao/iGovernance.sol';\r\nimport './dao/Governance.sol';\r\n\r\ncontract GitFundedGrant {\r\n\r\n\r\n uint public version = 1;\r\n uint public minorVersion = 1;\r\n uint public contractStartTime;\r\n\r\n bool public active = true;\r\n uint public totalCurrentMembers = 0;\r\n iGovernance ig;\r\n iBountiesMetaTxRelayer ib;\r\n Governance dao;\r\n\r\n\r\n constructor(string memory i_repoId, string memory i_title, uint i_budget, address payable i_admin, address i_bountyAddress, address i_tokenAddress)\r\n public\r\n {\r\n\r\n repoId = i_repoId;\r\n title = i_title;\r\n budget = i_budget;\r\n admin = i_admin;\r\n availableFund = 0;\r\n live = true;\r\n\r\n //bountiesContract = BountiesMetaTxRelayer(i_bountyAddress);\r\n ib=iBountiesMetaTxRelayer(i_bountyAddress);\r\n tokenAddress = tokenAddress;\r\n\r\n contractStartTime = now;\r\n\r\n }\r\n\r\n // Initiate all the contracts used by GitFunded\r\n function initialize(address daoAddress) onlyAdmin public {\r\n\r\n dao = Governance(daoAddress);\r\n\r\n }\r\n\r\n using SafeMath for uint256;\r\n\r\n\r\n enum ExpenseStatus {\r\n PENDING,\r\n PARTIALLY_ACCEPTED,\r\n ACCEPTED,\r\n REJECTED\r\n }\r\n\r\n enum IssueStatus {\r\n BACKLOG,\r\n TODO,\r\n DOING,\r\n DONE,\r\n REJECTED\r\n }\r\n\r\n /*\r\n * Admin: Project initiator. New admins can be added by the existing ones\r\n * Member: Any funder and initial contributors will be the project members\r\n * Contributor: Direct project contributors or can be added by other project members\r\n */\r\n enum Role {\r\n ADMIN,\r\n MEMBER,\r\n CONTRIBUTOR\r\n\r\n }\r\n\r\n // Stores details of different types of users: Admin/ Member/ Contributor\r\n struct User {\r\n bool exists;\r\n address delegateKey;\r\n uint balance;\r\n uint256 shares;\r\n Role role;\r\n }\r\n\r\n\r\n // New expense structure\r\n // TODO: The expense amount should be maintained in dollar\r\n struct Expense {\r\n string title;\r\n uint amount; // In Ether\r\n uint allocated; // In Ether\r\n address payable recipient;\r\n ExpenseStatus status;\r\n uint proposalIndex;\r\n }\r\n\r\n // New issue structure\r\n // TODO: The issue amount should be maintained in dollar\r\n struct Issue {\r\n string title;\r\n uint amount; // In Ether\r\n uint allocated; // In Ether\r\n uint bountyId;\r\n address payable recipient;\r\n IssueStatus status;\r\n }\r\n\r\n\r\n Expense[] public expenses;\r\n Issue[] public issues;\r\n\r\n mapping(address => User) public users;\r\n\r\n address payable public admin;\r\n string public repoId;\r\n string public title;\r\n uint budget; // In dollars\r\n uint public availableFund; // In Ether\r\n bool live;\r\n //BountiesMetaTxRelayer public bountiesContract;\r\n address tokenAddress;\r\n\r\n modifier onlyAdmin {\r\n require(msg.sender == admin, \"Not Authorised\");\r\n _;\r\n }\r\n\r\n modifier onlyWhenActive() {\r\n require(active, \"Project is not active\");\r\n _;\r\n }\r\n\r\n\r\n function destroy() public onlyAdmin {\r\n selfdestruct(admin);\r\n }\r\n\r\n function fetchProject() view public returns (string memory, string memory, uint, uint, address) {\r\n\r\n return (repoId, title, budget, availableFund, admin);\r\n }\r\n\r\n function addExpense(string memory _title, uint _amount, address applicant, uint sharesRequested, uint lootRequested, uint tributeOffered,\r\n address tributeToken, uint paymentRequested, address paymentToken, string memory details) public {\r\n\r\n Expense memory expense = Expense(_title, _amount, 0, msg.sender, ExpenseStatus.PENDING,0);\r\n expenses.push(expense);\r\n dao.submitProposal(applicant,sharesRequested,lootRequested,tributeOffered,tributeToken,paymentRequested,paymentToken,details);\r\n\r\n }\r\n\r\n function acceptExpense(uint expenseIndex) onlyAdmin public {\r\n\r\n uint index = expenses[expenseIndex].proposalIndex;\r\n\r\n // TODO: The proposal needs to be pass (commented to pass the test)\r\n// Governance.Proposal memory proposal = dao.proposals(dao.proposalQueue(index));\r\n// require (proposal.flags[2]==true,\"Proposal not passed\");\r\n\r\n uint amount = expenses[expenseIndex].amount;\r\n require(expenses[expenseIndex].status == ExpenseStatus.PENDING);\r\n require(availableFund >= amount, \"Funds not available\");\r\n\r\n\r\n expenses[expenseIndex].status = ExpenseStatus.ACCEPTED;\r\n availableFund -= amount;\r\n expenses[expenseIndex].allocated = amount;\r\n expenses[expenseIndex].recipient.transfer(amount);\r\n\r\n }\r\n function sponsorExpense (uint expenseIndex) public {\r\n expenses[expenseIndex].proposalIndex = dao.sponsorProposal(expenseIndex);\r\n }\r\n\r\n\r\n // TODO: Merge this logic with the acceptExpense by overloading the function\r\n function acceptPartialExpense(uint expenseIndex, uint amount) onlyAdmin public {\r\n\r\n require(expenses[expenseIndex].status == ExpenseStatus.PENDING);\r\n require(availableFund >= amount, \"Funds not available\");\r\n\r\n\r\n expenses[expenseIndex].status = ExpenseStatus.PARTIALLY_ACCEPTED;\r\n availableFund -= amount;\r\n expenses[expenseIndex].allocated = amount;\r\n expenses[expenseIndex].recipient.transfer(amount);\r\n\r\n\r\n }\r\n\r\n\r\n function fundProject() payable public {\r\n\r\n availableFund = availableFund.add(msg.value);\r\n\r\n\r\n }\r\n\r\n function transferFund(address payable recipient, uint value) onlyAdmin payable public {\r\n\r\n availableFund = availableFund.sub(value);\r\n recipient.transfer(value);\r\n\r\n\r\n }\r\n\r\n\r\n function getExpensesCount() public view returns (uint) {\r\n return expenses.length;\r\n }\r\n\r\n function getIssuesCount() public view returns (uint) {\r\n return issues.length;\r\n }\r\n\r\n\r\n // Bounties related methods are called for Issues\r\n\r\n\r\n //TODO: Modify the Issue struct to store more bounty details\r\n function addIssue(string memory _title, uint _amount) public {\r\n\r\n Issue memory issue = Issue(_title, _amount, 0, 0, msg.sender, IssueStatus.BACKLOG);\r\n issues.push(issue);\r\n\r\n }\r\n // A bounty will be created without funding\r\n function acceptIssueWithNoFund(uint issueIndex,\r\n bytes memory signature,\r\n address payable[] memory _issuers,\r\n address[] memory _approvers,\r\n string memory _data,\r\n uint _deadline,\r\n address _token,\r\n uint _tokenVersion,\r\n uint _nonce) onlyAdmin public {\r\n\r\n uint amount = issues[issueIndex].amount;\r\n require(issues[issueIndex].status == IssueStatus.BACKLOG);\r\n require(availableFund >= amount, \"Funds not available\");\r\n\r\n\r\n issues[issueIndex].status = IssueStatus.TODO;\r\n availableFund -= amount;\r\n issues[issueIndex].allocated = amount;\r\n\r\n issues[issueIndex].bountyId = ib.metaIssueBounty(signature, _issuers,\r\n _approvers, _data, _deadline, _token, _tokenVersion, _nonce);\r\n\r\n }\r\n\r\n\r\n // A bounty will be created by funding it with the existing grant amount\r\n function acceptIssue(uint issueIndex,\r\n bytes memory signature,\r\n address payable[] memory _issuers,\r\n address[] memory _approvers,\r\n string memory _data,\r\n uint _deadline,\r\n address _token,\r\n uint _tokenVersion,\r\n uint _depositAmount,\r\n uint _nonce) onlyAdmin public payable {\r\n\r\n uint amount = issues[issueIndex].amount;\r\n require(issues[issueIndex].status == IssueStatus.BACKLOG, \"Project is not in backlog\");\r\n require(availableFund >= amount, \"Funds not available\");\r\n\r\n\r\n issues[issueIndex].status = IssueStatus.TODO;\r\n availableFund -= amount;\r\n issues[issueIndex].allocated = amount;\r\n\r\n issues[issueIndex].bountyId=ib.metaIssueAndContribute.value(amount)(signature, _issuers,\r\n _approvers, _data, _deadline, _token, _tokenVersion, _depositAmount, _nonce);\r\n\r\n }\r\n\r\n function swipe(address payable recipient) external onlyAdmin {\r\n\r\n recipient.transfer(address(this).balance);\r\n }\r\n\r\n\r\n function fundIssue(\r\n uint issueIndex,\r\n bytes memory _signature,\r\n uint _amount,\r\n uint _nonce) public {\r\n\r\n uint _bountyId=issues[issueIndex].bountyId;\r\n\r\n require(issues[issueIndex].status == IssueStatus.TODO);\r\n issues[issueIndex].allocated += _amount;\r\n ib.metaContribute.value(_amount)(_signature,_bountyId,_amount,_nonce);\r\n\r\n }\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\GitFundedGrant.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/GitFundedGrant.sol", - "exportedSymbols": { - "GitFundedGrant": [ - 742 - ] - }, - "id": 743, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:0" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "./dao/oz/SafeMath.sol", - "id": 2, - "nodeType": "ImportDirective", - "scope": 743, - "sourceUnit": 9858, - "src": "34:31:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/iBountiesMetaTxRelayer.sol", - "file": "./bounties/iBountiesMetaTxRelayer.sol", - "id": 3, - "nodeType": "ImportDirective", - "scope": 743, - "sourceUnit": 4807, - "src": "67:47:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/iGovernance.sol", - "file": "./dao/iGovernance.sol", - "id": 4, - "nodeType": "ImportDirective", - "scope": 743, - "sourceUnit": 9268, - "src": "116:31:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Governance.sol", - "file": "./dao/Governance.sol", - "id": 5, - "nodeType": "ImportDirective", - "scope": 743, - "sourceUnit": 7481, - "src": "149:30:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 742, - "linearizedBaseContracts": [ - 742 - ], - "name": "GitFundedGrant", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 8, - "name": "version", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "218:23:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "218:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31", - "id": 7, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "240:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 11, - "name": "minorVersion", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "248:28:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "248:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31", - "id": 10, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "275:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 13, - "name": "contractStartTime", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "283:29:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "283:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 16, - "name": "active", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "321:25:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 14, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "321:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 15, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "342:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 19, - "name": "totalCurrentMembers", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "353:35:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "353:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 18, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "387:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 21, - "name": "ig", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "395:14:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_iGovernance_$9267", - "typeString": "contract iGovernance" - }, - "typeName": { - "contractScope": null, - "id": 20, - "name": "iGovernance", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9267, - "src": "395:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_iGovernance_$9267", - "typeString": "contract iGovernance" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 23, - "name": "ib", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "416:25:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", - "typeString": "contract iBountiesMetaTxRelayer" - }, - "typeName": { - "contractScope": null, - "id": 22, - "name": "iBountiesMetaTxRelayer", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4806, - "src": "416:22:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", - "typeString": "contract iBountiesMetaTxRelayer" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 25, - "name": "dao", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "448:14:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - }, - "typeName": { - "contractScope": null, - "id": 24, - "name": "Governance", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7480, - "src": "448:10:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 78, - "nodeType": "Block", - "src": "632:327:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 42, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 40, - "name": "repoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 162, - "src": "641:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 41, - "name": "i_repoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27, - "src": "650:8:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "641:17:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 43, - "nodeType": "ExpressionStatement", - "src": "641:17:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 46, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 44, - "name": "title", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 164, - "src": "665:5:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 45, - "name": "i_title", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 29, - "src": "673:7:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "665:15:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 47, - "nodeType": "ExpressionStatement", - "src": "665:15:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 50, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 48, - "name": "budget", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 166, - "src": "687:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 49, - "name": "i_budget", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "696:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "687:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 51, - "nodeType": "ExpressionStatement", - "src": "687:17:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 54, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 52, - "name": "admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 160, - "src": "711:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 53, - "name": "i_admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33, - "src": "719:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "711:15:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 55, - "nodeType": "ExpressionStatement", - "src": "711:15:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 58, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 56, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "733:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 57, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "749:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "733:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 59, - "nodeType": "ExpressionStatement", - "src": "733:17:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 62, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 60, - "name": "live", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 170, - "src": "757:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 61, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "764:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "757:11:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 63, - "nodeType": "ExpressionStatement", - "src": "757:11:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 68, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 64, - "name": "ib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "843:2:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", - "typeString": "contract iBountiesMetaTxRelayer" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 66, - "name": "i_bountyAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "869:15:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 65, - "name": "iBountiesMetaTxRelayer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4806, - "src": "846:22:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_iBountiesMetaTxRelayer_$4806_$", - "typeString": "type(contract iBountiesMetaTxRelayer)" - } - }, - "id": 67, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "846:39:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", - "typeString": "contract iBountiesMetaTxRelayer" - } - }, - "src": "843:42:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", - "typeString": "contract iBountiesMetaTxRelayer" - } - }, - "id": 69, - "nodeType": "ExpressionStatement", - "src": "843:42:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 72, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 70, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 172, - "src": "892:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 71, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 172, - "src": "907:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "892:27:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 73, - "nodeType": "ExpressionStatement", - "src": "892:27:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 76, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 74, - "name": "contractStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13, - "src": "928:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 75, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10413, - "src": "948:3:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "928:23:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 77, - "nodeType": "ExpressionStatement", - "src": "928:23:0" - } - ] - }, - "documentation": null, - "id": 79, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 38, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 27, - "name": "i_repoId", - "nodeType": "VariableDeclaration", - "scope": 79, - "src": "483:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 26, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "483:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 29, - "name": "i_title", - "nodeType": "VariableDeclaration", - "scope": 79, - "src": "507:21:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 28, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "507:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 31, - "name": "i_budget", - "nodeType": "VariableDeclaration", - "scope": 79, - "src": "530:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 30, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "530:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 33, - "name": "i_admin", - "nodeType": "VariableDeclaration", - "scope": 79, - "src": "545:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 32, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "545:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 35, - "name": "i_bountyAddress", - "nodeType": "VariableDeclaration", - "scope": 79, - "src": "570:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 34, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "570:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 37, - "name": "i_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 79, - "src": "595:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 36, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "595:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "482:136:0" - }, - "returnParameters": { - "id": 39, - "nodeType": "ParameterList", - "parameters": [], - "src": "632:0:0" - }, - "scope": 742, - "src": "471:488:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 92, - "nodeType": "Block", - "src": "1073:45:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 90, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 86, - "name": "dao", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "1082:3:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 88, - "name": "daoAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 81, - "src": "1099:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 87, - "name": "Governance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7480, - "src": "1088:10:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Governance_$7480_$", - "typeString": "type(contract Governance)" - } - }, - "id": 89, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1088:22:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - }, - "src": "1082:28:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - }, - "id": 91, - "nodeType": "ExpressionStatement", - "src": "1082:28:0" - } - ] - }, - "documentation": null, - "id": 93, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 84, - "modifierName": { - "argumentTypes": null, - "id": 83, - "name": "onlyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "1056:9:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1056:9:0" - } - ], - "name": "initialize", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 82, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 81, - "name": "daoAddress", - "nodeType": "VariableDeclaration", - "scope": 93, - "src": "1036:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 80, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1036:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1035:20:0" - }, - "returnParameters": { - "id": 85, - "nodeType": "ParameterList", - "parameters": [], - "src": "1073:0:0" - }, - "scope": 742, - "src": "1016:102:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "id": 96, - "libraryName": { - "contractScope": null, - "id": 94, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "1130:8:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "1124:27:0", - "typeName": { - "id": 95, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1143:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "GitFundedGrant.ExpenseStatus", - "id": 101, - "members": [ - { - "id": 97, - "name": "PENDING", - "nodeType": "EnumValue", - "src": "1185:7:0" - }, - { - "id": 98, - "name": "PARTIALLY_ACCEPTED", - "nodeType": "EnumValue", - "src": "1199:18:0" - }, - { - "id": 99, - "name": "ACCEPTED", - "nodeType": "EnumValue", - "src": "1224:8:0" - }, - { - "id": 100, - "name": "REJECTED", - "nodeType": "EnumValue", - "src": "1239:8:0" - } - ], - "name": "ExpenseStatus", - "nodeType": "EnumDefinition", - "src": "1159:93:0" - }, - { - "canonicalName": "GitFundedGrant.IssueStatus", - "id": 107, - "members": [ - { - "id": 102, - "name": "BACKLOG", - "nodeType": "EnumValue", - "src": "1282:7:0" - }, - { - "id": 103, - "name": "TODO", - "nodeType": "EnumValue", - "src": "1296:4:0" - }, - { - "id": 104, - "name": "DOING", - "nodeType": "EnumValue", - "src": "1307:5:0" - }, - { - "id": 105, - "name": "DONE", - "nodeType": "EnumValue", - "src": "1319:4:0" - }, - { - "id": 106, - "name": "REJECTED", - "nodeType": "EnumValue", - "src": "1330:8:0" - } - ], - "name": "IssueStatus", - "nodeType": "EnumDefinition", - "src": "1258:85:0" - }, - { - "canonicalName": "GitFundedGrant.Role", - "id": 111, - "members": [ - { - "id": 108, - "name": "ADMIN", - "nodeType": "EnumValue", - "src": "1618:5:0" - }, - { - "id": 109, - "name": "MEMBER", - "nodeType": "EnumValue", - "src": "1630:6:0" - }, - { - "id": 110, - "name": "CONTRIBUTOR", - "nodeType": "EnumValue", - "src": "1643:11:0" - } - ], - "name": "Role", - "nodeType": "EnumDefinition", - "src": "1601:60:0" - }, - { - "canonicalName": "GitFundedGrant.User", - "id": 122, - "members": [ - { - "constant": false, - "id": 113, - "name": "exists", - "nodeType": "VariableDeclaration", - "scope": 122, - "src": "1763:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 112, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1763:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 115, - "name": "delegateKey", - "nodeType": "VariableDeclaration", - "scope": 122, - "src": "1781:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 114, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1781:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 117, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 122, - "src": "1807:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 116, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1807:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 119, - "name": "shares", - "nodeType": "VariableDeclaration", - "scope": 122, - "src": "1826:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 118, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1826:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 121, - "name": "role", - "nodeType": "VariableDeclaration", - "scope": 122, - "src": "1847:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Role_$111", - "typeString": "enum GitFundedGrant.Role" - }, - "typeName": { - "contractScope": null, - "id": 120, - "name": "Role", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 111, - "src": "1847:4:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Role_$111", - "typeString": "enum GitFundedGrant.Role" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "User", - "nodeType": "StructDefinition", - "scope": 742, - "src": "1744:118:0", - "visibility": "public" - }, - { - "canonicalName": "GitFundedGrant.Expense", - "id": 135, - "members": [ - { - "constant": false, - "id": 124, - "name": "title", - "nodeType": "VariableDeclaration", - "scope": 135, - "src": "1983:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 123, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1983:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 126, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 135, - "src": "2002:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 125, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2002:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 128, - "name": "allocated", - "nodeType": "VariableDeclaration", - "scope": 135, - "src": "2032:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 127, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2032:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 130, - "name": "recipient", - "nodeType": "VariableDeclaration", - "scope": 135, - "src": "2065:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 129, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2065:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 132, - "name": "status", - "nodeType": "VariableDeclaration", - "scope": 135, - "src": "2097:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - }, - "typeName": { - "contractScope": null, - "id": 131, - "name": "ExpenseStatus", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 101, - "src": "2097:13:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 134, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 135, - "src": "2124:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 133, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2124:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Expense", - "nodeType": "StructDefinition", - "scope": 742, - "src": "1961:187:0", - "visibility": "public" - }, - { - "canonicalName": "GitFundedGrant.Issue", - "id": 148, - "members": [ - { - "constant": false, - "id": 137, - "name": "title", - "nodeType": "VariableDeclaration", - "scope": 148, - "src": "2261:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 136, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2261:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 139, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 148, - "src": "2280:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 138, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2280:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 141, - "name": "allocated", - "nodeType": "VariableDeclaration", - "scope": 148, - "src": "2310:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 140, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2310:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 143, - "name": "bountyId", - "nodeType": "VariableDeclaration", - "scope": 148, - "src": "2343:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 142, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2343:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 145, - "name": "recipient", - "nodeType": "VariableDeclaration", - "scope": 148, - "src": "2363:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 144, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2363:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 147, - "name": "status", - "nodeType": "VariableDeclaration", - "scope": 148, - "src": "2395:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - }, - "typeName": { - "contractScope": null, - "id": 146, - "name": "IssueStatus", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 107, - "src": "2395:11:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Issue", - "nodeType": "StructDefinition", - "scope": 742, - "src": "2241:178:0", - "visibility": "public" - }, - { - "constant": false, - "id": 151, - "name": "expenses", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "2427:25:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 149, - "name": "Expense", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 135, - "src": "2427:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage_ptr", - "typeString": "struct GitFundedGrant.Expense" - } - }, - "id": 150, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2427:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage_ptr", - "typeString": "struct GitFundedGrant.Expense[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 154, - "name": "issues", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "2457:21:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 152, - "name": "Issue", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 148, - "src": "2457:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage_ptr", - "typeString": "struct GitFundedGrant.Issue" - } - }, - "id": 153, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2457:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage_ptr", - "typeString": "struct GitFundedGrant.Issue[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 158, - "name": "users", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "2485:37:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_User_$122_storage_$", - "typeString": "mapping(address => struct GitFundedGrant.User)" - }, - "typeName": { - "id": 157, - "keyType": { - "id": 155, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2493:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2485:24:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_User_$122_storage_$", - "typeString": "mapping(address => struct GitFundedGrant.User)" - }, - "valueType": { - "contractScope": null, - "id": 156, - "name": "User", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 122, - "src": "2504:4:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_User_$122_storage_ptr", - "typeString": "struct GitFundedGrant.User" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 160, - "name": "admin", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "2529:28:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 159, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2529:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 162, - "name": "repoId", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "2562:20:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 161, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2562:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 164, - "name": "title", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "2587:19:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 163, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2587:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 166, - "name": "budget", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "2611:11:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 165, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2611:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 168, - "name": "availableFund", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "2641:25:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 167, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2641:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 170, - "name": "live", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "2683:9:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 169, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2683:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 172, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "2749:20:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 171, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2749:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 183, - "nodeType": "Block", - "src": "2796:71:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 175, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "2813:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2813:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 177, - "name": "admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 160, - "src": "2827:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "2813:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4e6f7420417574686f7269736564", - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2834:16:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_176ed4ceac838408d8da5199a6fb82c380ff1fc682f88be96c591ec96e5f2042", - "typeString": "literal_string \"Not Authorised\"" - }, - "value": "Not Authorised" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_176ed4ceac838408d8da5199a6fb82c380ff1fc682f88be96c591ec96e5f2042", - "typeString": "literal_string \"Not Authorised\"" - } - ], - "id": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "2805:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2805:46:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 181, - "nodeType": "ExpressionStatement", - "src": "2805:46:0" - }, - { - "id": 182, - "nodeType": "PlaceholderStatement", - "src": "2860:1:0" - } - ] - }, - "documentation": null, - "id": 184, - "name": "onlyAdmin", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [], - "src": "2796:0:0" - }, - "src": "2776:91:0", - "visibility": "internal" - }, - { - "body": { - "id": 192, - "nodeType": "Block", - "src": "2899:61:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 187, - "name": "active", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "2914:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "50726f6a656374206973206e6f7420616374697665", - "id": 188, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2922:23:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b9940373385e930b80d39946ce71106932213e2e05030240272fd8cb58e2b65e", - "typeString": "literal_string \"Project is not active\"" - }, - "value": "Project is not active" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b9940373385e930b80d39946ce71106932213e2e05030240272fd8cb58e2b65e", - "typeString": "literal_string \"Project is not active\"" - } - ], - "id": 186, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "2906:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2906:40:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 190, - "nodeType": "ExpressionStatement", - "src": "2906:40:0" - }, - { - "id": 191, - "nodeType": "PlaceholderStatement", - "src": "2953:1:0" - } - ] - }, - "documentation": null, - "id": 193, - "name": "onlyWhenActive", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 185, - "nodeType": "ParameterList", - "parameters": [], - "src": "2896:2:0" - }, - "src": "2873:87:0", - "visibility": "internal" - }, - { - "body": { - "id": 202, - "nodeType": "Block", - "src": "3004:38:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 199, - "name": "admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 160, - "src": "3028:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 198, - "name": "selfdestruct", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10419, - "src": "3015:12:0", - "typeDescriptions": { - "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$", - "typeString": "function (address payable)" - } - }, - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3015:19:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 201, - "nodeType": "ExpressionStatement", - "src": "3015:19:0" - } - ] - }, - "documentation": null, - "id": 203, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 196, - "modifierName": { - "argumentTypes": null, - "id": 195, - "name": "onlyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "2994:9:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2994:9:0" - } - ], - "name": "destroy", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 194, - "nodeType": "ParameterList", - "parameters": [], - "src": "2984:2:0" - }, - "returnParameters": { - "id": 197, - "nodeType": "ParameterList", - "parameters": [], - "src": "3004:0:0" - }, - "scope": 742, - "src": "2968:74:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "3144:67:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 216, - "name": "repoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 162, - "src": "3161:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "argumentTypes": null, - "id": 217, - "name": "title", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 164, - "src": "3169:5:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "argumentTypes": null, - "id": 218, - "name": "budget", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 166, - "src": "3176:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 219, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "3184:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 220, - "name": "admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 160, - "src": "3199:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "id": 221, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3160:45:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_string_storage_$_t_string_storage_$_t_uint256_$_t_uint256_$_t_address_payable_$", - "typeString": "tuple(string storage ref,string storage ref,uint256,uint256,address payable)" - } - }, - "functionReturnParameters": 215, - "id": 222, - "nodeType": "Return", - "src": "3153:52:0" - } - ] - }, - "documentation": null, - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "fetchProject", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 204, - "nodeType": "ParameterList", - "parameters": [], - "src": "3069:2:0" - }, - "returnParameters": { - "id": 215, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 206, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "3093:13:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 205, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3093:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 208, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "3108:13:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 207, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3108:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 210, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "3123:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 209, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3123:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 212, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "3129:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 211, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3129:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 214, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "3135:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 213, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3135:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3092:51:0" - }, - "scope": 742, - "src": "3048:163:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 279, - "nodeType": "Block", - "src": "3475:267:0", - "statements": [ - { - "assignments": [ - 248 - ], - "declarations": [ - { - "constant": false, - "id": 248, - "name": "expense", - "nodeType": "VariableDeclaration", - "scope": 279, - "src": "3484:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_memory_ptr", - "typeString": "struct GitFundedGrant.Expense" - }, - "typeName": { - "contractScope": null, - "id": 247, - "name": "Expense", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 135, - "src": "3484:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage_ptr", - "typeString": "struct GitFundedGrant.Expense" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 259, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 250, - "name": "_title", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "3517:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 251, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "3525:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 252, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3534:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 253, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3537:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3537:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 255, - "name": "ExpenseStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "3549:13:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ExpenseStatus_$101_$", - "typeString": "type(enum GitFundedGrant.ExpenseStatus)" - } - }, - "id": 256, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "PENDING", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3549:21:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 257, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3571:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 249, - "name": "Expense", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "3509:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Expense_$135_storage_ptr_$", - "typeString": "type(struct GitFundedGrant.Expense storage pointer)" - } - }, - "id": 258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3509:64:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_memory", - "typeString": "struct GitFundedGrant.Expense memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3484:89:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 263, - "name": "expense", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "3594:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_memory_ptr", - "typeString": "struct GitFundedGrant.Expense memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Expense_$135_memory_ptr", - "typeString": "struct GitFundedGrant.Expense memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 260, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "3580:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3580:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Expense_$135_storage_$returns$_t_uint256_$", - "typeString": "function (struct GitFundedGrant.Expense storage ref) returns (uint256)" - } - }, - "id": 264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3580:22:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 265, - "nodeType": "ExpressionStatement", - "src": "3580:22:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 269, - "name": "applicant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "3628:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 270, - "name": "sharesRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 232, - "src": "3638:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 271, - "name": "lootRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "3654:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 272, - "name": "tributeOffered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 236, - "src": "3668:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 273, - "name": "tributeToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 238, - "src": "3683:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 274, - "name": "paymentRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 240, - "src": "3696:16:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 275, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 242, - "src": "3713:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 276, - "name": "details", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 244, - "src": "3726:7:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 266, - "name": "dao", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "3609:3:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - }, - "id": 268, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "submitProposal", - "nodeType": "MemberAccess", - "referencedDeclaration": 6726, - "src": "3609:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (address,uint256,uint256,uint256,address,uint256,address,string memory) external returns (uint256)" - } - }, - "id": 277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3609:125:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 278, - "nodeType": "ExpressionStatement", - "src": "3609:125:0" - } - ] - }, - "documentation": null, - "id": 280, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addExpense", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 245, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "_title", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "3237:20:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 225, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3237:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "3259:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3259:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 230, - "name": "applicant", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "3273:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 229, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3273:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 232, - "name": "sharesRequested", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "3292:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 231, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3292:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 234, - "name": "lootRequested", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "3314:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 233, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3314:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 236, - "name": "tributeOffered", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "3334:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 235, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3334:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 238, - "name": "tributeToken", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "3378:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 237, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3378:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 240, - "name": "paymentRequested", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "3400:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 239, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3400:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 242, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "3423:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 241, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3423:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 244, - "name": "details", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "3445:21:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 243, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3445:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3236:231:0" - }, - "returnParameters": { - "id": 246, - "nodeType": "ParameterList", - "parameters": [], - "src": "3475:0:0" - }, - "scope": 742, - "src": "3217:525:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 345, - "nodeType": "Block", - "src": "3807:675:0", - "statements": [ - { - "assignments": [ - 288 - ], - "declarations": [ - { - "constant": false, - "id": 288, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 345, - "src": "3816:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 287, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3816:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 293, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 289, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "3829:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 291, - "indexExpression": { - "argumentTypes": null, - "id": 290, - "name": "expenseIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "3838:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3829:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage", - "typeString": "struct GitFundedGrant.Expense storage ref" - } - }, - "id": 292, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "proposalIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 134, - "src": "3829:36:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3816:49:0" - }, - { - "assignments": [ - 295 - ], - "declarations": [ - { - "constant": false, - "id": 295, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 345, - "src": "4099:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4099:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 300, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 296, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "4113:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 298, - "indexExpression": { - "argumentTypes": null, - "id": 297, - "name": "expenseIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "4122:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4113:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage", - "typeString": "struct GitFundedGrant.Expense storage ref" - } - }, - "id": 299, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amount", - "nodeType": "MemberAccess", - "referencedDeclaration": 126, - "src": "4113:29:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4099:43:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - }, - "id": 308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 302, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "4157:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 304, - "indexExpression": { - "argumentTypes": null, - "id": 303, - "name": "expenseIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "4166:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4157:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage", - "typeString": "struct GitFundedGrant.Expense storage ref" - } - }, - "id": 305, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 132, - "src": "4157:29:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 306, - "name": "ExpenseStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "4190:13:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ExpenseStatus_$101_$", - "typeString": "type(enum GitFundedGrant.ExpenseStatus)" - } - }, - "id": 307, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "PENDING", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4190:21:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - } - }, - "src": "4157:54:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 301, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4149:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4149:63:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 310, - "nodeType": "ExpressionStatement", - "src": "4149:63:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 312, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "4227:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 313, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "4244:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4227:23:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "46756e6473206e6f7420617661696c61626c65", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4252:21:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", - "typeString": "literal_string \"Funds not available\"" - }, - "value": "Funds not available" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", - "typeString": "literal_string \"Funds not available\"" - } - ], - "id": 311, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "4219:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4219:55:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "4219:55:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 318, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "4285:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 320, - "indexExpression": { - "argumentTypes": null, - "id": 319, - "name": "expenseIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "4294:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4285:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage", - "typeString": "struct GitFundedGrant.Expense storage ref" - } - }, - "id": 321, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 132, - "src": "4285:29:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 322, - "name": "ExpenseStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "4317:13:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ExpenseStatus_$101_$", - "typeString": "type(enum GitFundedGrant.ExpenseStatus)" - } - }, - "id": 323, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "ACCEPTED", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4317:22:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - } - }, - "src": "4285:54:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - } - }, - "id": 325, - "nodeType": "ExpressionStatement", - "src": "4285:54:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 326, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "4346:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 327, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "4363:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4346:23:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "nodeType": "ExpressionStatement", - "src": "4346:23:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 330, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "4376:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 332, - "indexExpression": { - "argumentTypes": null, - "id": 331, - "name": "expenseIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "4385:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4376:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage", - "typeString": "struct GitFundedGrant.Expense storage ref" - } - }, - "id": 333, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "allocated", - "nodeType": "MemberAccess", - "referencedDeclaration": 128, - "src": "4376:32:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 334, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "4412:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4376:42:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 336, - "nodeType": "ExpressionStatement", - "src": "4376:42:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 342, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "4467:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 337, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "4425:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 339, - "indexExpression": { - "argumentTypes": null, - "id": 338, - "name": "expenseIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "4434:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4425:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage", - "typeString": "struct GitFundedGrant.Expense storage ref" - } - }, - "id": 340, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "recipient", - "nodeType": "MemberAccess", - "referencedDeclaration": 130, - "src": "4425:32:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4425:41:0", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4425:49:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 344, - "nodeType": "ExpressionStatement", - "src": "4425:49:0" - } - ] - }, - "documentation": null, - "id": 346, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 285, - "modifierName": { - "argumentTypes": null, - "id": 284, - "name": "onlyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "3790:9:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3790:9:0" - } - ], - "name": "acceptExpense", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 283, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 282, - "name": "expenseIndex", - "nodeType": "VariableDeclaration", - "scope": 346, - "src": "3771:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 281, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3771:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3770:19:0" - }, - "returnParameters": { - "id": 286, - "nodeType": "ParameterList", - "parameters": [], - "src": "3807:0:0" - }, - "scope": 742, - "src": "3748:734:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 361, - "nodeType": "Block", - "src": "4537:86:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 351, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "4544:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 353, - "indexExpression": { - "argumentTypes": null, - "id": 352, - "name": "expenseIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "4553:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4544:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage", - "typeString": "struct GitFundedGrant.Expense storage ref" - } - }, - "id": 354, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "proposalIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 134, - "src": "4544:36:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 357, - "name": "expenseIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "4604:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 355, - "name": "dao", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "4584:3:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - }, - "id": 356, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sponsorProposal", - "nodeType": "MemberAccess", - "referencedDeclaration": 6932, - "src": "4584:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) external returns (uint256)" - } - }, - "id": 358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4584:33:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4544:73:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 360, - "nodeType": "ExpressionStatement", - "src": "4544:73:0" - } - ] - }, - "documentation": null, - "id": 362, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sponsorExpense", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 349, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 348, - "name": "expenseIndex", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "4511:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 347, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4511:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4510:19:0" - }, - "returnParameters": { - "id": 350, - "nodeType": "ParameterList", - "parameters": [], - "src": "4537:0:0" - }, - "scope": 742, - "src": "4486:137:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 415, - "nodeType": "Block", - "src": "4790:354:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - }, - "id": 378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 372, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "4807:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 374, - "indexExpression": { - "argumentTypes": null, - "id": 373, - "name": "expenseIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 364, - "src": "4816:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4807:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage", - "typeString": "struct GitFundedGrant.Expense storage ref" - } - }, - "id": 375, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 132, - "src": "4807:29:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 376, - "name": "ExpenseStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "4840:13:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ExpenseStatus_$101_$", - "typeString": "type(enum GitFundedGrant.ExpenseStatus)" - } - }, - "id": 377, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "PENDING", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4840:21:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - } - }, - "src": "4807:54:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4799:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4799:63:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 380, - "nodeType": "ExpressionStatement", - "src": "4799:63:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 382, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "4877:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 383, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "4894:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4877:23:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "46756e6473206e6f7420617661696c61626c65", - "id": 385, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4902:21:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", - "typeString": "literal_string \"Funds not available\"" - }, - "value": "Funds not available" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", - "typeString": "literal_string \"Funds not available\"" - } - ], - "id": 381, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "4869:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4869:55:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 387, - "nodeType": "ExpressionStatement", - "src": "4869:55:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 388, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "4935:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 390, - "indexExpression": { - "argumentTypes": null, - "id": 389, - "name": "expenseIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 364, - "src": "4944:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4935:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage", - "typeString": "struct GitFundedGrant.Expense storage ref" - } - }, - "id": 391, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 132, - "src": "4935:29:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 392, - "name": "ExpenseStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "4967:13:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ExpenseStatus_$101_$", - "typeString": "type(enum GitFundedGrant.ExpenseStatus)" - } - }, - "id": 393, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "PARTIALLY_ACCEPTED", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4967:32:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - } - }, - "src": "4935:64:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - } - }, - "id": 395, - "nodeType": "ExpressionStatement", - "src": "4935:64:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 396, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "5006:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 397, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "5023:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5006:23:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 399, - "nodeType": "ExpressionStatement", - "src": "5006:23:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 405, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 400, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "5036:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 402, - "indexExpression": { - "argumentTypes": null, - "id": 401, - "name": "expenseIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 364, - "src": "5045:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5036:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage", - "typeString": "struct GitFundedGrant.Expense storage ref" - } - }, - "id": 403, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "allocated", - "nodeType": "MemberAccess", - "referencedDeclaration": 128, - "src": "5036:32:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 404, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "5072:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5036:42:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 406, - "nodeType": "ExpressionStatement", - "src": "5036:42:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 412, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "5127:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 407, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "5085:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 409, - "indexExpression": { - "argumentTypes": null, - "id": 408, - "name": "expenseIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 364, - "src": "5094:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5085:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage", - "typeString": "struct GitFundedGrant.Expense storage ref" - } - }, - "id": 410, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "recipient", - "nodeType": "MemberAccess", - "referencedDeclaration": 130, - "src": "5085:32:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 411, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5085:41:0", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5085:49:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 414, - "nodeType": "ExpressionStatement", - "src": "5085:49:0" - } - ] - }, - "documentation": null, - "id": 416, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 369, - "modifierName": { - "argumentTypes": null, - "id": 368, - "name": "onlyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "4773:9:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4773:9:0" - } - ], - "name": "acceptPartialExpense", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 364, - "name": "expenseIndex", - "nodeType": "VariableDeclaration", - "scope": 416, - "src": "4741:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 363, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4741:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 366, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 416, - "src": "4760:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 365, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4760:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4740:32:0" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "4790:0:0" - }, - "scope": 742, - "src": "4711:433:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 427, - "nodeType": "Block", - "src": "5190:63:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 419, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "5199:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 422, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "5233:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5233:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 420, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "5215:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "5215:17:0", - "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": 424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5215:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5199:44:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 426, - "nodeType": "ExpressionStatement", - "src": "5199:44:0" - } - ] - }, - "documentation": null, - "id": 428, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "fundProject", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 417, - "nodeType": "ParameterList", - "parameters": [], - "src": "5172:2:0" - }, - "returnParameters": { - "id": 418, - "nodeType": "ParameterList", - "parameters": [], - "src": "5190:0:0" - }, - "scope": 742, - "src": "5152:101:0", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 450, - "nodeType": "Block", - "src": "5345:91:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 437, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "5354:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 440, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "5388:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 438, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "5370:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "5370:17:0", - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5370:24:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5354:40:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 443, - "nodeType": "ExpressionStatement", - "src": "5354:40:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 447, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "5420:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 444, - "name": "recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 430, - "src": "5401:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5401:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5401:25:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 449, - "nodeType": "ExpressionStatement", - "src": "5401:25:0" - } - ] - }, - "documentation": null, - "id": 451, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 435, - "modifierName": { - "argumentTypes": null, - "id": 434, - "name": "onlyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "5320:9:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5320:9:0" - } - ], - "name": "transferFund", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 433, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 430, - "name": "recipient", - "nodeType": "VariableDeclaration", - "scope": 451, - "src": "5281:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 429, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5281:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 432, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 451, - "src": "5308:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 431, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5308:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5280:39:0" - }, - "returnParameters": { - "id": 436, - "nodeType": "ParameterList", - "parameters": [], - "src": "5345:0:0" - }, - "scope": 742, - "src": "5259:177:0", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 459, - "nodeType": "Block", - "src": "5499:35:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 456, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "5513:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 457, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5513:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 455, - "id": 458, - "nodeType": "Return", - "src": "5506:22:0" - } - ] - }, - "documentation": null, - "id": 460, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getExpensesCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 452, - "nodeType": "ParameterList", - "parameters": [], - "src": "5469:2:0" - }, - "returnParameters": { - "id": 455, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 454, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 460, - "src": "5493:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 453, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5493:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5492:6:0" - }, - "scope": 742, - "src": "5444:90:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 468, - "nodeType": "Block", - "src": "5593:33:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 465, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "5607:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 466, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5607:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 464, - "id": 467, - "nodeType": "Return", - "src": "5600:20:0" - } - ] - }, - "documentation": null, - "id": 469, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getIssuesCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [], - "src": "5563:2:0" - }, - "returnParameters": { - "id": 464, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 463, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 469, - "src": "5587:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5587:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5586:6:0" - }, - "scope": 742, - "src": "5540:86:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 495, - "nodeType": "Block", - "src": "5818:134:0", - "statements": [ - { - "assignments": [ - 477 - ], - "declarations": [ - { - "constant": false, - "id": 477, - "name": "issue", - "nodeType": "VariableDeclaration", - "scope": 495, - "src": "5831:18:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_memory_ptr", - "typeString": "struct GitFundedGrant.Issue" - }, - "typeName": { - "contractScope": null, - "id": 476, - "name": "Issue", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 148, - "src": "5831:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage_ptr", - "typeString": "struct GitFundedGrant.Issue" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 488, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 479, - "name": "_title", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 471, - "src": "5858:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 480, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 473, - "src": "5866:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 481, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5875:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 482, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5878:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 483, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "5881:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5881:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 485, - "name": "IssueStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "5893:11:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_IssueStatus_$107_$", - "typeString": "type(enum GitFundedGrant.IssueStatus)" - } - }, - "id": 486, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "BACKLOG", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5893:19:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - ], - "id": 478, - "name": "Issue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 148, - "src": "5852:5:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Issue_$148_storage_ptr_$", - "typeString": "type(struct GitFundedGrant.Issue storage pointer)" - } - }, - "id": 487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5852:61:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_memory", - "typeString": "struct GitFundedGrant.Issue memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5831:82:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 492, - "name": "issue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 477, - "src": "5936:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_memory_ptr", - "typeString": "struct GitFundedGrant.Issue memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Issue_$148_memory_ptr", - "typeString": "struct GitFundedGrant.Issue memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 489, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "5924:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5924:11:0", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Issue_$148_storage_$returns$_t_uint256_$", - "typeString": "function (struct GitFundedGrant.Issue storage ref) returns (uint256)" - } - }, - "id": 493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5924:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 494, - "nodeType": "ExpressionStatement", - "src": "5924:18:0" - } - ] - }, - "documentation": null, - "id": 496, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addIssue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 474, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 471, - "name": "_title", - "nodeType": "VariableDeclaration", - "scope": 496, - "src": "5775:20:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 470, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5775:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 473, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 496, - "src": "5797:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 472, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5797:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5774:36:0" - }, - "returnParameters": { - "id": 475, - "nodeType": "ParameterList", - "parameters": [], - "src": "5818:0:0" - }, - "scope": 742, - "src": "5757:195:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 581, - "nodeType": "Block", - "src": "6348:494:0", - "statements": [ - { - "assignments": [ - 522 - ], - "declarations": [ - { - "constant": false, - "id": 522, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 581, - "src": "6361:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 521, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6361:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 527, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 523, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "6375:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 525, - "indexExpression": { - "argumentTypes": null, - "id": 524, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 498, - "src": "6382:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6375:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 526, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amount", - "nodeType": "MemberAccess", - "referencedDeclaration": 139, - "src": "6375:25:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6361:39:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - }, - "id": 535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 529, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "6419:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 531, - "indexExpression": { - "argumentTypes": null, - "id": 530, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 498, - "src": "6426:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6419:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 532, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 147, - "src": "6419:25:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 533, - "name": "IssueStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "6448:11:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_IssueStatus_$107_$", - "typeString": "type(enum GitFundedGrant.IssueStatus)" - } - }, - "id": 534, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "BACKLOG", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6448:19:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "src": "6419:48:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 528, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "6411:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6411:57:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 537, - "nodeType": "ExpressionStatement", - "src": "6411:57:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 539, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "6487:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 540, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "6504:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6487:23:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "46756e6473206e6f7420617661696c61626c65", - "id": 542, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6512:21:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", - "typeString": "literal_string \"Funds not available\"" - }, - "value": "Funds not available" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", - "typeString": "literal_string \"Funds not available\"" - } - ], - "id": 538, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "6479:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6479:55:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 544, - "nodeType": "ExpressionStatement", - "src": "6479:55:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 545, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "6549:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 547, - "indexExpression": { - "argumentTypes": null, - "id": 546, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 498, - "src": "6556:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6549:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 548, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 147, - "src": "6549:25:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 549, - "name": "IssueStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "6577:11:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_IssueStatus_$107_$", - "typeString": "type(enum GitFundedGrant.IssueStatus)" - } - }, - "id": 550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "TODO", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6577:16:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "src": "6549:44:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "id": 552, - "nodeType": "ExpressionStatement", - "src": "6549:44:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 553, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "6604:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 554, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "6621:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6604:23:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 556, - "nodeType": "ExpressionStatement", - "src": "6604:23:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 557, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "6638:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 559, - "indexExpression": { - "argumentTypes": null, - "id": 558, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 498, - "src": "6645:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6638:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 560, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "allocated", - "nodeType": "MemberAccess", - "referencedDeclaration": 141, - "src": "6638:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 561, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "6670:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6638:38:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 563, - "nodeType": "ExpressionStatement", - "src": "6638:38:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 564, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "6689:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 565, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 498, - "src": "6696:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6689:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 567, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "bountyId", - "nodeType": "MemberAccess", - "referencedDeclaration": 143, - "src": "6689:27:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 570, - "name": "signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 500, - "src": "6738:9:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 571, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 503, - "src": "6749:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 572, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 506, - "src": "6772:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 508, - "src": "6784:5:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 510, - "src": "6791:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 575, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "6802:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 576, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "6810:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 577, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 516, - "src": "6825:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 568, - "name": "ib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "6719:2:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", - "typeString": "contract iBountiesMetaTxRelayer" - } - }, - "id": 569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "metaIssueBounty", - "nodeType": "MemberAccess", - "referencedDeclaration": 4537, - "src": "6719:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (bytes memory,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256) external returns (uint256)" - } - }, - "id": 578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6719:113:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6689:143:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 580, - "nodeType": "ExpressionStatement", - "src": "6689:143:0" - } - ] - }, - "documentation": null, - "id": 582, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 519, - "modifierName": { - "argumentTypes": null, - "id": 518, - "name": "onlyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "6331:9:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6331:9:0" - } - ], - "name": "acceptIssueWithNoFund", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 517, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 498, - "name": "issueIndex", - "nodeType": "VariableDeclaration", - "scope": 582, - "src": "6036:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 497, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6036:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 500, - "name": "signature", - "nodeType": "VariableDeclaration", - "scope": 582, - "src": "6066:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 499, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6066:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 503, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 582, - "src": "6103:33:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 501, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6103:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 502, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6103:17:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 506, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 582, - "src": "6151:27:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 504, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6151:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 505, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6151:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 508, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 582, - "src": "6193:19:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 507, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6193:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 510, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 582, - "src": "6227:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 509, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6227:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 512, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 582, - "src": "6256:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 511, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6256:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 514, - "name": "_tokenVersion", - "nodeType": "VariableDeclaration", - "scope": 582, - "src": "6285:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 513, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6285:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 516, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 582, - "src": "6318:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 515, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6318:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6035:295:0" - }, - "returnParameters": { - "id": 520, - "nodeType": "ParameterList", - "parameters": [], - "src": "6348:0:0" - }, - "scope": 742, - "src": "6005:837:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 674, - "nodeType": "Block", - "src": "7228:522:0", - "statements": [ - { - "assignments": [ - 610 - ], - "declarations": [ - { - "constant": false, - "id": 610, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 674, - "src": "7237:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 609, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7237:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 615, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 611, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "7251:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 613, - "indexExpression": { - "argumentTypes": null, - "id": 612, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 584, - "src": "7258:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7251:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 614, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amount", - "nodeType": "MemberAccess", - "referencedDeclaration": 139, - "src": "7251:25:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7237:39:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - }, - "id": 623, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 617, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "7291:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 619, - "indexExpression": { - "argumentTypes": null, - "id": 618, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 584, - "src": "7298:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7291:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 620, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 147, - "src": "7291:25:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 621, - "name": "IssueStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "7320:11:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_IssueStatus_$107_$", - "typeString": "type(enum GitFundedGrant.IssueStatus)" - } - }, - "id": 622, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "BACKLOG", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7320:19:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "src": "7291:48:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "50726f6a656374206973206e6f7420696e206261636b6c6f67", - "id": 624, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7341:27:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e017887d840fc949a9b314cdaa0d1854d946edb479801781961ce41ea66163a1", - "typeString": "literal_string \"Project is not in backlog\"" - }, - "value": "Project is not in backlog" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e017887d840fc949a9b314cdaa0d1854d946edb479801781961ce41ea66163a1", - "typeString": "literal_string \"Project is not in backlog\"" - } - ], - "id": 616, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7283:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 625, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7283:86:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 626, - "nodeType": "ExpressionStatement", - "src": "7283:86:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 628, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "7384:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 629, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 610, - "src": "7401:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7384:23:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "46756e6473206e6f7420617661696c61626c65", - "id": 631, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7409:21:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", - "typeString": "literal_string \"Funds not available\"" - }, - "value": "Funds not available" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", - "typeString": "literal_string \"Funds not available\"" - } - ], - "id": 627, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7376:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7376:55:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 633, - "nodeType": "ExpressionStatement", - "src": "7376:55:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 634, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "7442:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 636, - "indexExpression": { - "argumentTypes": null, - "id": 635, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 584, - "src": "7449:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7442:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 637, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 147, - "src": "7442:25:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 638, - "name": "IssueStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "7470:11:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_IssueStatus_$107_$", - "typeString": "type(enum GitFundedGrant.IssueStatus)" - } - }, - "id": 639, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "TODO", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7470:16:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "src": "7442:44:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "id": 641, - "nodeType": "ExpressionStatement", - "src": "7442:44:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 642, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "7493:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 643, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 610, - "src": "7510:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7493:23:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 645, - "nodeType": "ExpressionStatement", - "src": "7493:23:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 646, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "7523:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 648, - "indexExpression": { - "argumentTypes": null, - "id": 647, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 584, - "src": "7530:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7523:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 649, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "allocated", - "nodeType": "MemberAccess", - "referencedDeclaration": 141, - "src": "7523:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 650, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 610, - "src": "7555:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7523:38:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "7523:38:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 653, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "7570:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 655, - "indexExpression": { - "argumentTypes": null, - "id": 654, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 584, - "src": "7577:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7570:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 656, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "bountyId", - "nodeType": "MemberAccess", - "referencedDeclaration": 143, - "src": "7570:27:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 662, - "name": "signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 586, - "src": "7638:9:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 663, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "7649:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 664, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "7666:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 665, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 594, - "src": "7678:5:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 666, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "7685:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 667, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "7696:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 668, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "7704:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 669, - "name": "_depositAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 602, - "src": "7719:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 670, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 604, - "src": "7735:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "arguments": [ - { - "argumentTypes": null, - "id": 660, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 610, - "src": "7630:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 657, - "name": "ib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "7598:2:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", - "typeString": "contract iBountiesMetaTxRelayer" - } - }, - "id": 658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "metaIssueAndContribute", - "nodeType": "MemberAccess", - "referencedDeclaration": 4562, - "src": "7598:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_bytes_memory_ptr_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (bytes memory,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256,uint256) payable external returns (uint256)" - } - }, - "id": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7598:31:0", - "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_bytes_memory_ptr_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$value_$", - "typeString": "function (uint256) returns (function (bytes memory,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256,uint256) payable external returns (uint256))" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7598:39:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_bytes_memory_ptr_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$value", - "typeString": "function (bytes memory,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256,uint256) payable external returns (uint256)" - } - }, - "id": 671, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7598:144:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7570:172:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 673, - "nodeType": "ExpressionStatement", - "src": "7570:172:0" - } - ] - }, - "documentation": null, - "id": 675, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 607, - "modifierName": { - "argumentTypes": null, - "id": 606, - "name": "onlyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "7203:9:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7203:9:0" - } - ], - "name": "acceptIssue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 605, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 584, - "name": "issueIndex", - "nodeType": "VariableDeclaration", - "scope": 675, - "src": "6946:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 583, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6946:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 586, - "name": "signature", - "nodeType": "VariableDeclaration", - "scope": 675, - "src": "6968:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 585, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6968:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 589, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 675, - "src": "6997:33:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 587, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6997:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 588, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6997:17:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 592, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 675, - "src": "7037:27:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 590, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7037:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 591, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7037:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 594, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 675, - "src": "7071:19:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 593, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7071:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 596, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 675, - "src": "7097:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 595, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7097:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 675, - "src": "7118:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7118:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "_tokenVersion", - "nodeType": "VariableDeclaration", - "scope": 675, - "src": "7139:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7139:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 602, - "name": "_depositAmount", - "nodeType": "VariableDeclaration", - "scope": 675, - "src": "7164:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 601, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7164:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 604, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 675, - "src": "7190:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 603, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7190:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6945:257:0" - }, - "returnParameters": { - "id": 608, - "nodeType": "ParameterList", - "parameters": [], - "src": "7228:0:0" - }, - "scope": 742, - "src": "6925:825:0", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 691, - "nodeType": "Block", - "src": "7817:56:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 686, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10439, - "src": "7853:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GitFundedGrant_$742", - "typeString": "contract GitFundedGrant" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_GitFundedGrant_$742", - "typeString": "contract GitFundedGrant" - } - ], - "id": 685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7845:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7845:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 688, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7845:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 682, - "name": "recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "7826:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7826:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 689, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7826:41:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 690, - "nodeType": "ExpressionStatement", - "src": "7826:41:0" - } - ] - }, - "documentation": null, - "id": 692, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 680, - "modifierName": { - "argumentTypes": null, - "id": 679, - "name": "onlyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "7807:9:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7807:9:0" - } - ], - "name": "swipe", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 678, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 677, - "name": "recipient", - "nodeType": "VariableDeclaration", - "scope": 692, - "src": "7771:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7771:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7770:27:0" - }, - "returnParameters": { - "id": 681, - "nodeType": "ParameterList", - "parameters": [], - "src": "7817:0:0" - }, - "scope": 742, - "src": "7756:117:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 740, - "nodeType": "Block", - "src": "7996:254:0", - "statements": [ - { - "assignments": [ - 704 - ], - "declarations": [ - { - "constant": false, - "id": 704, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 740, - "src": "8007:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 703, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8007:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 709, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 705, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "8022:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 707, - "indexExpression": { - "argumentTypes": null, - "id": 706, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 694, - "src": "8029:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8022:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 708, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bountyId", - "nodeType": "MemberAccess", - "referencedDeclaration": 143, - "src": "8022:27:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8007:42:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - }, - "id": 717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 711, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "8068:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 713, - "indexExpression": { - "argumentTypes": null, - "id": 712, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 694, - "src": "8075:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8068:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 714, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 147, - "src": "8068:25:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 715, - "name": "IssueStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "8097:11:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_IssueStatus_$107_$", - "typeString": "type(enum GitFundedGrant.IssueStatus)" - } - }, - "id": 716, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "TODO", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8097:16:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "src": "8068:45:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 710, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "8060:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8060:54:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 719, - "nodeType": "ExpressionStatement", - "src": "8060:54:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 720, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "8123:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 722, - "indexExpression": { - "argumentTypes": null, - "id": 721, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 694, - "src": "8130:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8123:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 723, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "allocated", - "nodeType": "MemberAccess", - "referencedDeclaration": 141, - "src": "8123:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 724, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "8156:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8123:40:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 726, - "nodeType": "ExpressionStatement", - "src": "8123:40:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 734, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 696, - "src": "8205:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 735, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 704, - "src": "8216:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 736, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "8226:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 737, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 700, - "src": "8234:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "arguments": [ - { - "argumentTypes": null, - "id": 732, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "8196:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 727, - "name": "ib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "8172:2:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", - "typeString": "contract iBountiesMetaTxRelayer" - } - }, - "id": 730, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "metaContribute", - "nodeType": "MemberAccess", - "referencedDeclaration": 4573, - "src": "8172:17:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (bytes memory,uint256,uint256,uint256) payable external" - } - }, - "id": 731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8172:23:0", - "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$value_$", - "typeString": "function (uint256) returns (function (bytes memory,uint256,uint256,uint256) payable external)" - } - }, - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8172:32:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$value", - "typeString": "function (bytes memory,uint256,uint256,uint256) payable external" - } - }, - "id": 738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8172:69:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 739, - "nodeType": "ExpressionStatement", - "src": "8172:69:0" - } - ] - }, - "documentation": null, - "id": 741, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "fundIssue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 701, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 694, - "name": "issueIndex", - "nodeType": "VariableDeclaration", - "scope": 741, - "src": "7905:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 693, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7905:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 696, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 741, - "src": "7927:23:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 695, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7927:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 698, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 741, - "src": "7957:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 697, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7957:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 700, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 741, - "src": "7976:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 699, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7976:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7898:90:0" - }, - "returnParameters": { - "id": 702, - "nodeType": "ParameterList", - "parameters": [], - "src": "7996:0:0" - }, - "scope": 742, - "src": "7880:370:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 743, - "src": "183:8070:0" - } - ], - "src": "0:8255:0" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/GitFundedGrant.sol", - "exportedSymbols": { - "GitFundedGrant": [ - 742 - ] - }, - "id": 743, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 1, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:0" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "./dao/oz/SafeMath.sol", - "id": 2, - "nodeType": "ImportDirective", - "scope": 743, - "sourceUnit": 9858, - "src": "34:31:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/iBountiesMetaTxRelayer.sol", - "file": "./bounties/iBountiesMetaTxRelayer.sol", - "id": 3, - "nodeType": "ImportDirective", - "scope": 743, - "sourceUnit": 4807, - "src": "67:47:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/iGovernance.sol", - "file": "./dao/iGovernance.sol", - "id": 4, - "nodeType": "ImportDirective", - "scope": 743, - "sourceUnit": 9268, - "src": "116:31:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Governance.sol", - "file": "./dao/Governance.sol", - "id": 5, - "nodeType": "ImportDirective", - "scope": 743, - "sourceUnit": 7481, - "src": "149:30:0", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 742, - "linearizedBaseContracts": [ - 742 - ], - "name": "GitFundedGrant", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 8, - "name": "version", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "218:23:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "218:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31", - "id": 7, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "240:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 11, - "name": "minorVersion", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "248:28:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "248:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "31", - "id": 10, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "275:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 13, - "name": "contractStartTime", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "283:29:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 12, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "283:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 16, - "name": "active", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "321:25:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 14, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "321:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 15, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "342:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 19, - "name": "totalCurrentMembers", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "353:35:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 17, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "353:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 18, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "387:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 21, - "name": "ig", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "395:14:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_iGovernance_$9267", - "typeString": "contract iGovernance" - }, - "typeName": { - "contractScope": null, - "id": 20, - "name": "iGovernance", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9267, - "src": "395:11:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_iGovernance_$9267", - "typeString": "contract iGovernance" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 23, - "name": "ib", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "416:25:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", - "typeString": "contract iBountiesMetaTxRelayer" - }, - "typeName": { - "contractScope": null, - "id": 22, - "name": "iBountiesMetaTxRelayer", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4806, - "src": "416:22:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", - "typeString": "contract iBountiesMetaTxRelayer" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 25, - "name": "dao", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "448:14:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - }, - "typeName": { - "contractScope": null, - "id": 24, - "name": "Governance", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7480, - "src": "448:10:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 78, - "nodeType": "Block", - "src": "632:327:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 42, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 40, - "name": "repoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 162, - "src": "641:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 41, - "name": "i_repoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 27, - "src": "650:8:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "641:17:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 43, - "nodeType": "ExpressionStatement", - "src": "641:17:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 46, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 44, - "name": "title", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 164, - "src": "665:5:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 45, - "name": "i_title", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 29, - "src": "673:7:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "665:15:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 47, - "nodeType": "ExpressionStatement", - "src": "665:15:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 50, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 48, - "name": "budget", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 166, - "src": "687:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 49, - "name": "i_budget", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 31, - "src": "696:8:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "687:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 51, - "nodeType": "ExpressionStatement", - "src": "687:17:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 54, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 52, - "name": "admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 160, - "src": "711:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 53, - "name": "i_admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 33, - "src": "719:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "711:15:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 55, - "nodeType": "ExpressionStatement", - "src": "711:15:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 58, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 56, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "733:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 57, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "749:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "733:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 59, - "nodeType": "ExpressionStatement", - "src": "733:17:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 62, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 60, - "name": "live", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 170, - "src": "757:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 61, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "764:4:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "757:11:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 63, - "nodeType": "ExpressionStatement", - "src": "757:11:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 68, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 64, - "name": "ib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "843:2:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", - "typeString": "contract iBountiesMetaTxRelayer" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 66, - "name": "i_bountyAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "869:15:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 65, - "name": "iBountiesMetaTxRelayer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4806, - "src": "846:22:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_iBountiesMetaTxRelayer_$4806_$", - "typeString": "type(contract iBountiesMetaTxRelayer)" - } - }, - "id": 67, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "846:39:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", - "typeString": "contract iBountiesMetaTxRelayer" - } - }, - "src": "843:42:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", - "typeString": "contract iBountiesMetaTxRelayer" - } - }, - "id": 69, - "nodeType": "ExpressionStatement", - "src": "843:42:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 72, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 70, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 172, - "src": "892:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 71, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 172, - "src": "907:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "892:27:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 73, - "nodeType": "ExpressionStatement", - "src": "892:27:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 76, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 74, - "name": "contractStartTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 13, - "src": "928:17:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 75, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10413, - "src": "948:3:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "928:23:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 77, - "nodeType": "ExpressionStatement", - "src": "928:23:0" - } - ] - }, - "documentation": null, - "id": 79, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 38, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 27, - "name": "i_repoId", - "nodeType": "VariableDeclaration", - "scope": 79, - "src": "483:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 26, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "483:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 29, - "name": "i_title", - "nodeType": "VariableDeclaration", - "scope": 79, - "src": "507:21:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 28, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "507:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 31, - "name": "i_budget", - "nodeType": "VariableDeclaration", - "scope": 79, - "src": "530:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 30, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "530:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 33, - "name": "i_admin", - "nodeType": "VariableDeclaration", - "scope": 79, - "src": "545:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 32, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "545:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 35, - "name": "i_bountyAddress", - "nodeType": "VariableDeclaration", - "scope": 79, - "src": "570:23:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 34, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "570:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 37, - "name": "i_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 79, - "src": "595:22:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 36, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "595:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "482:136:0" - }, - "returnParameters": { - "id": 39, - "nodeType": "ParameterList", - "parameters": [], - "src": "632:0:0" - }, - "scope": 742, - "src": "471:488:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 92, - "nodeType": "Block", - "src": "1073:45:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 90, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 86, - "name": "dao", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "1082:3:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 88, - "name": "daoAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 81, - "src": "1099:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 87, - "name": "Governance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7480, - "src": "1088:10:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Governance_$7480_$", - "typeString": "type(contract Governance)" - } - }, - "id": 89, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1088:22:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - }, - "src": "1082:28:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - }, - "id": 91, - "nodeType": "ExpressionStatement", - "src": "1082:28:0" - } - ] - }, - "documentation": null, - "id": 93, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 84, - "modifierName": { - "argumentTypes": null, - "id": 83, - "name": "onlyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "1056:9:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "1056:9:0" - } - ], - "name": "initialize", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 82, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 81, - "name": "daoAddress", - "nodeType": "VariableDeclaration", - "scope": 93, - "src": "1036:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 80, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1036:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1035:20:0" - }, - "returnParameters": { - "id": 85, - "nodeType": "ParameterList", - "parameters": [], - "src": "1073:0:0" - }, - "scope": 742, - "src": "1016:102:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "id": 96, - "libraryName": { - "contractScope": null, - "id": 94, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "1130:8:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "1124:27:0", - "typeName": { - "id": 95, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1143:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "GitFundedGrant.ExpenseStatus", - "id": 101, - "members": [ - { - "id": 97, - "name": "PENDING", - "nodeType": "EnumValue", - "src": "1185:7:0" - }, - { - "id": 98, - "name": "PARTIALLY_ACCEPTED", - "nodeType": "EnumValue", - "src": "1199:18:0" - }, - { - "id": 99, - "name": "ACCEPTED", - "nodeType": "EnumValue", - "src": "1224:8:0" - }, - { - "id": 100, - "name": "REJECTED", - "nodeType": "EnumValue", - "src": "1239:8:0" - } - ], - "name": "ExpenseStatus", - "nodeType": "EnumDefinition", - "src": "1159:93:0" - }, - { - "canonicalName": "GitFundedGrant.IssueStatus", - "id": 107, - "members": [ - { - "id": 102, - "name": "BACKLOG", - "nodeType": "EnumValue", - "src": "1282:7:0" - }, - { - "id": 103, - "name": "TODO", - "nodeType": "EnumValue", - "src": "1296:4:0" - }, - { - "id": 104, - "name": "DOING", - "nodeType": "EnumValue", - "src": "1307:5:0" - }, - { - "id": 105, - "name": "DONE", - "nodeType": "EnumValue", - "src": "1319:4:0" - }, - { - "id": 106, - "name": "REJECTED", - "nodeType": "EnumValue", - "src": "1330:8:0" - } - ], - "name": "IssueStatus", - "nodeType": "EnumDefinition", - "src": "1258:85:0" - }, - { - "canonicalName": "GitFundedGrant.Role", - "id": 111, - "members": [ - { - "id": 108, - "name": "ADMIN", - "nodeType": "EnumValue", - "src": "1618:5:0" - }, - { - "id": 109, - "name": "MEMBER", - "nodeType": "EnumValue", - "src": "1630:6:0" - }, - { - "id": 110, - "name": "CONTRIBUTOR", - "nodeType": "EnumValue", - "src": "1643:11:0" - } - ], - "name": "Role", - "nodeType": "EnumDefinition", - "src": "1601:60:0" - }, - { - "canonicalName": "GitFundedGrant.User", - "id": 122, - "members": [ - { - "constant": false, - "id": 113, - "name": "exists", - "nodeType": "VariableDeclaration", - "scope": 122, - "src": "1763:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 112, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1763:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 115, - "name": "delegateKey", - "nodeType": "VariableDeclaration", - "scope": 122, - "src": "1781:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 114, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1781:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 117, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 122, - "src": "1807:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 116, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1807:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 119, - "name": "shares", - "nodeType": "VariableDeclaration", - "scope": 122, - "src": "1826:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 118, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1826:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 121, - "name": "role", - "nodeType": "VariableDeclaration", - "scope": 122, - "src": "1847:9:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Role_$111", - "typeString": "enum GitFundedGrant.Role" - }, - "typeName": { - "contractScope": null, - "id": 120, - "name": "Role", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 111, - "src": "1847:4:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Role_$111", - "typeString": "enum GitFundedGrant.Role" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "User", - "nodeType": "StructDefinition", - "scope": 742, - "src": "1744:118:0", - "visibility": "public" - }, - { - "canonicalName": "GitFundedGrant.Expense", - "id": 135, - "members": [ - { - "constant": false, - "id": 124, - "name": "title", - "nodeType": "VariableDeclaration", - "scope": 135, - "src": "1983:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 123, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1983:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 126, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 135, - "src": "2002:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 125, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2002:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 128, - "name": "allocated", - "nodeType": "VariableDeclaration", - "scope": 135, - "src": "2032:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 127, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2032:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 130, - "name": "recipient", - "nodeType": "VariableDeclaration", - "scope": 135, - "src": "2065:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 129, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2065:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 132, - "name": "status", - "nodeType": "VariableDeclaration", - "scope": 135, - "src": "2097:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - }, - "typeName": { - "contractScope": null, - "id": 131, - "name": "ExpenseStatus", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 101, - "src": "2097:13:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 134, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 135, - "src": "2124:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 133, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2124:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Expense", - "nodeType": "StructDefinition", - "scope": 742, - "src": "1961:187:0", - "visibility": "public" - }, - { - "canonicalName": "GitFundedGrant.Issue", - "id": 148, - "members": [ - { - "constant": false, - "id": 137, - "name": "title", - "nodeType": "VariableDeclaration", - "scope": 148, - "src": "2261:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 136, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2261:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 139, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 148, - "src": "2280:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 138, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2280:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 141, - "name": "allocated", - "nodeType": "VariableDeclaration", - "scope": 148, - "src": "2310:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 140, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2310:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 143, - "name": "bountyId", - "nodeType": "VariableDeclaration", - "scope": 148, - "src": "2343:13:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 142, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2343:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 145, - "name": "recipient", - "nodeType": "VariableDeclaration", - "scope": 148, - "src": "2363:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 144, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2363:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 147, - "name": "status", - "nodeType": "VariableDeclaration", - "scope": 148, - "src": "2395:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - }, - "typeName": { - "contractScope": null, - "id": 146, - "name": "IssueStatus", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 107, - "src": "2395:11:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Issue", - "nodeType": "StructDefinition", - "scope": 742, - "src": "2241:178:0", - "visibility": "public" - }, - { - "constant": false, - "id": 151, - "name": "expenses", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "2427:25:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 149, - "name": "Expense", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 135, - "src": "2427:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage_ptr", - "typeString": "struct GitFundedGrant.Expense" - } - }, - "id": 150, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2427:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage_ptr", - "typeString": "struct GitFundedGrant.Expense[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 154, - "name": "issues", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "2457:21:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 152, - "name": "Issue", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 148, - "src": "2457:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage_ptr", - "typeString": "struct GitFundedGrant.Issue" - } - }, - "id": 153, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2457:7:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage_ptr", - "typeString": "struct GitFundedGrant.Issue[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 158, - "name": "users", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "2485:37:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_User_$122_storage_$", - "typeString": "mapping(address => struct GitFundedGrant.User)" - }, - "typeName": { - "id": 157, - "keyType": { - "id": 155, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2493:7:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "2485:24:0", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_User_$122_storage_$", - "typeString": "mapping(address => struct GitFundedGrant.User)" - }, - "valueType": { - "contractScope": null, - "id": 156, - "name": "User", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 122, - "src": "2504:4:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_User_$122_storage_ptr", - "typeString": "struct GitFundedGrant.User" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 160, - "name": "admin", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "2529:28:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 159, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2529:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 162, - "name": "repoId", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "2562:20:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 161, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2562:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 164, - "name": "title", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "2587:19:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 163, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2587:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 166, - "name": "budget", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "2611:11:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 165, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2611:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 168, - "name": "availableFund", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "2641:25:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 167, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2641:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 170, - "name": "live", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "2683:9:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 169, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2683:4:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 172, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 742, - "src": "2749:20:0", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 171, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2749:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 183, - "nodeType": "Block", - "src": "2796:71:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 175, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "2813:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2813:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 177, - "name": "admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 160, - "src": "2827:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "2813:19:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "4e6f7420417574686f7269736564", - "id": 179, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2834:16:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_176ed4ceac838408d8da5199a6fb82c380ff1fc682f88be96c591ec96e5f2042", - "typeString": "literal_string \"Not Authorised\"" - }, - "value": "Not Authorised" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_176ed4ceac838408d8da5199a6fb82c380ff1fc682f88be96c591ec96e5f2042", - "typeString": "literal_string \"Not Authorised\"" - } - ], - "id": 174, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "2805:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 180, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2805:46:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 181, - "nodeType": "ExpressionStatement", - "src": "2805:46:0" - }, - { - "id": 182, - "nodeType": "PlaceholderStatement", - "src": "2860:1:0" - } - ] - }, - "documentation": null, - "id": 184, - "name": "onlyAdmin", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 173, - "nodeType": "ParameterList", - "parameters": [], - "src": "2796:0:0" - }, - "src": "2776:91:0", - "visibility": "internal" - }, - { - "body": { - "id": 192, - "nodeType": "Block", - "src": "2899:61:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 187, - "name": "active", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 16, - "src": "2914:6:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "50726f6a656374206973206e6f7420616374697665", - "id": 188, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2922:23:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_b9940373385e930b80d39946ce71106932213e2e05030240272fd8cb58e2b65e", - "typeString": "literal_string \"Project is not active\"" - }, - "value": "Project is not active" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_b9940373385e930b80d39946ce71106932213e2e05030240272fd8cb58e2b65e", - "typeString": "literal_string \"Project is not active\"" - } - ], - "id": 186, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "2906:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 189, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2906:40:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 190, - "nodeType": "ExpressionStatement", - "src": "2906:40:0" - }, - { - "id": 191, - "nodeType": "PlaceholderStatement", - "src": "2953:1:0" - } - ] - }, - "documentation": null, - "id": 193, - "name": "onlyWhenActive", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 185, - "nodeType": "ParameterList", - "parameters": [], - "src": "2896:2:0" - }, - "src": "2873:87:0", - "visibility": "internal" - }, - { - "body": { - "id": 202, - "nodeType": "Block", - "src": "3004:38:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 199, - "name": "admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 160, - "src": "3028:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 198, - "name": "selfdestruct", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10419, - "src": "3015:12:0", - "typeDescriptions": { - "typeIdentifier": "t_function_selfdestruct_nonpayable$_t_address_payable_$returns$__$", - "typeString": "function (address payable)" - } - }, - "id": 200, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3015:19:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 201, - "nodeType": "ExpressionStatement", - "src": "3015:19:0" - } - ] - }, - "documentation": null, - "id": 203, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 196, - "modifierName": { - "argumentTypes": null, - "id": 195, - "name": "onlyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "2994:9:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "2994:9:0" - } - ], - "name": "destroy", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 194, - "nodeType": "ParameterList", - "parameters": [], - "src": "2984:2:0" - }, - "returnParameters": { - "id": 197, - "nodeType": "ParameterList", - "parameters": [], - "src": "3004:0:0" - }, - "scope": 742, - "src": "2968:74:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 223, - "nodeType": "Block", - "src": "3144:67:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 216, - "name": "repoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 162, - "src": "3161:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "argumentTypes": null, - "id": 217, - "name": "title", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 164, - "src": "3169:5:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - { - "argumentTypes": null, - "id": 218, - "name": "budget", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 166, - "src": "3176:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 219, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "3184:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 220, - "name": "admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 160, - "src": "3199:5:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "id": 221, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3160:45:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_string_storage_$_t_string_storage_$_t_uint256_$_t_uint256_$_t_address_payable_$", - "typeString": "tuple(string storage ref,string storage ref,uint256,uint256,address payable)" - } - }, - "functionReturnParameters": 215, - "id": 222, - "nodeType": "Return", - "src": "3153:52:0" - } - ] - }, - "documentation": null, - "id": 224, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "fetchProject", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 204, - "nodeType": "ParameterList", - "parameters": [], - "src": "3069:2:0" - }, - "returnParameters": { - "id": 215, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 206, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "3093:13:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 205, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3093:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 208, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "3108:13:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 207, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3108:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 210, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "3123:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 209, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3123:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 212, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "3129:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 211, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3129:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 214, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 224, - "src": "3135:7:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 213, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3135:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3092:51:0" - }, - "scope": 742, - "src": "3048:163:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 279, - "nodeType": "Block", - "src": "3475:267:0", - "statements": [ - { - "assignments": [ - 248 - ], - "declarations": [ - { - "constant": false, - "id": 248, - "name": "expense", - "nodeType": "VariableDeclaration", - "scope": 279, - "src": "3484:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_memory_ptr", - "typeString": "struct GitFundedGrant.Expense" - }, - "typeName": { - "contractScope": null, - "id": 247, - "name": "Expense", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 135, - "src": "3484:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage_ptr", - "typeString": "struct GitFundedGrant.Expense" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 259, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 250, - "name": "_title", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 226, - "src": "3517:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 251, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 228, - "src": "3525:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 252, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3534:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 253, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3537:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3537:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 255, - "name": "ExpenseStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "3549:13:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ExpenseStatus_$101_$", - "typeString": "type(enum GitFundedGrant.ExpenseStatus)" - } - }, - "id": 256, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "PENDING", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3549:21:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 257, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3571:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 249, - "name": "Expense", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "3509:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Expense_$135_storage_ptr_$", - "typeString": "type(struct GitFundedGrant.Expense storage pointer)" - } - }, - "id": 258, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3509:64:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_memory", - "typeString": "struct GitFundedGrant.Expense memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3484:89:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 263, - "name": "expense", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 248, - "src": "3594:7:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_memory_ptr", - "typeString": "struct GitFundedGrant.Expense memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Expense_$135_memory_ptr", - "typeString": "struct GitFundedGrant.Expense memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 260, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "3580:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3580:13:0", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Expense_$135_storage_$returns$_t_uint256_$", - "typeString": "function (struct GitFundedGrant.Expense storage ref) returns (uint256)" - } - }, - "id": 264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3580:22:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 265, - "nodeType": "ExpressionStatement", - "src": "3580:22:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 269, - "name": "applicant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 230, - "src": "3628:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 270, - "name": "sharesRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 232, - "src": "3638:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 271, - "name": "lootRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 234, - "src": "3654:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 272, - "name": "tributeOffered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 236, - "src": "3668:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 273, - "name": "tributeToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 238, - "src": "3683:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 274, - "name": "paymentRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 240, - "src": "3696:16:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 275, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 242, - "src": "3713:12:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 276, - "name": "details", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 244, - "src": "3726:7:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 266, - "name": "dao", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "3609:3:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - }, - "id": 268, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "submitProposal", - "nodeType": "MemberAccess", - "referencedDeclaration": 6726, - "src": "3609:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (address,uint256,uint256,uint256,address,uint256,address,string memory) external returns (uint256)" - } - }, - "id": 277, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3609:125:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 278, - "nodeType": "ExpressionStatement", - "src": "3609:125:0" - } - ] - }, - "documentation": null, - "id": 280, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addExpense", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 245, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 226, - "name": "_title", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "3237:20:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 225, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3237:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 228, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "3259:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 227, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3259:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 230, - "name": "applicant", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "3273:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 229, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3273:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 232, - "name": "sharesRequested", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "3292:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 231, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3292:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 234, - "name": "lootRequested", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "3314:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 233, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3314:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 236, - "name": "tributeOffered", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "3334:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 235, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3334:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 238, - "name": "tributeToken", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "3378:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 237, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3378:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 240, - "name": "paymentRequested", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "3400:21:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 239, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3400:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 242, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "3423:20:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 241, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3423:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 244, - "name": "details", - "nodeType": "VariableDeclaration", - "scope": 280, - "src": "3445:21:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 243, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3445:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3236:231:0" - }, - "returnParameters": { - "id": 246, - "nodeType": "ParameterList", - "parameters": [], - "src": "3475:0:0" - }, - "scope": 742, - "src": "3217:525:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 345, - "nodeType": "Block", - "src": "3807:675:0", - "statements": [ - { - "assignments": [ - 288 - ], - "declarations": [ - { - "constant": false, - "id": 288, - "name": "index", - "nodeType": "VariableDeclaration", - "scope": 345, - "src": "3816:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 287, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3816:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 293, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 289, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "3829:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 291, - "indexExpression": { - "argumentTypes": null, - "id": 290, - "name": "expenseIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "3838:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3829:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage", - "typeString": "struct GitFundedGrant.Expense storage ref" - } - }, - "id": 292, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "proposalIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 134, - "src": "3829:36:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "3816:49:0" - }, - { - "assignments": [ - 295 - ], - "declarations": [ - { - "constant": false, - "id": 295, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 345, - "src": "4099:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 294, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4099:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 300, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 296, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "4113:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 298, - "indexExpression": { - "argumentTypes": null, - "id": 297, - "name": "expenseIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "4122:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4113:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage", - "typeString": "struct GitFundedGrant.Expense storage ref" - } - }, - "id": 299, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amount", - "nodeType": "MemberAccess", - "referencedDeclaration": 126, - "src": "4113:29:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "4099:43:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - }, - "id": 308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 302, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "4157:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 304, - "indexExpression": { - "argumentTypes": null, - "id": 303, - "name": "expenseIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "4166:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4157:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage", - "typeString": "struct GitFundedGrant.Expense storage ref" - } - }, - "id": 305, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 132, - "src": "4157:29:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 306, - "name": "ExpenseStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "4190:13:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ExpenseStatus_$101_$", - "typeString": "type(enum GitFundedGrant.ExpenseStatus)" - } - }, - "id": 307, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "PENDING", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4190:21:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - } - }, - "src": "4157:54:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 301, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4149:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 309, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4149:63:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 310, - "nodeType": "ExpressionStatement", - "src": "4149:63:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 312, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "4227:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 313, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "4244:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4227:23:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "46756e6473206e6f7420617661696c61626c65", - "id": 315, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4252:21:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", - "typeString": "literal_string \"Funds not available\"" - }, - "value": "Funds not available" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", - "typeString": "literal_string \"Funds not available\"" - } - ], - "id": 311, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "4219:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4219:55:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 317, - "nodeType": "ExpressionStatement", - "src": "4219:55:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 318, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "4285:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 320, - "indexExpression": { - "argumentTypes": null, - "id": 319, - "name": "expenseIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "4294:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4285:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage", - "typeString": "struct GitFundedGrant.Expense storage ref" - } - }, - "id": 321, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 132, - "src": "4285:29:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 322, - "name": "ExpenseStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "4317:13:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ExpenseStatus_$101_$", - "typeString": "type(enum GitFundedGrant.ExpenseStatus)" - } - }, - "id": 323, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "ACCEPTED", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4317:22:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - } - }, - "src": "4285:54:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - } - }, - "id": 325, - "nodeType": "ExpressionStatement", - "src": "4285:54:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 326, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "4346:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 327, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "4363:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4346:23:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 329, - "nodeType": "ExpressionStatement", - "src": "4346:23:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 330, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "4376:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 332, - "indexExpression": { - "argumentTypes": null, - "id": 331, - "name": "expenseIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "4385:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4376:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage", - "typeString": "struct GitFundedGrant.Expense storage ref" - } - }, - "id": 333, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "allocated", - "nodeType": "MemberAccess", - "referencedDeclaration": 128, - "src": "4376:32:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 334, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "4412:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4376:42:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 336, - "nodeType": "ExpressionStatement", - "src": "4376:42:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 342, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 295, - "src": "4467:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 337, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "4425:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 339, - "indexExpression": { - "argumentTypes": null, - "id": 338, - "name": "expenseIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 282, - "src": "4434:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4425:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage", - "typeString": "struct GitFundedGrant.Expense storage ref" - } - }, - "id": 340, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "recipient", - "nodeType": "MemberAccess", - "referencedDeclaration": 130, - "src": "4425:32:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 341, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4425:41:0", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4425:49:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 344, - "nodeType": "ExpressionStatement", - "src": "4425:49:0" - } - ] - }, - "documentation": null, - "id": 346, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 285, - "modifierName": { - "argumentTypes": null, - "id": 284, - "name": "onlyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "3790:9:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "3790:9:0" - } - ], - "name": "acceptExpense", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 283, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 282, - "name": "expenseIndex", - "nodeType": "VariableDeclaration", - "scope": 346, - "src": "3771:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 281, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3771:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3770:19:0" - }, - "returnParameters": { - "id": 286, - "nodeType": "ParameterList", - "parameters": [], - "src": "3807:0:0" - }, - "scope": 742, - "src": "3748:734:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 361, - "nodeType": "Block", - "src": "4537:86:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 351, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "4544:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 353, - "indexExpression": { - "argumentTypes": null, - "id": 352, - "name": "expenseIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "4553:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4544:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage", - "typeString": "struct GitFundedGrant.Expense storage ref" - } - }, - "id": 354, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "proposalIndex", - "nodeType": "MemberAccess", - "referencedDeclaration": 134, - "src": "4544:36:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 357, - "name": "expenseIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 348, - "src": "4604:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 355, - "name": "dao", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 25, - "src": "4584:3:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Governance_$7480", - "typeString": "contract Governance" - } - }, - "id": 356, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sponsorProposal", - "nodeType": "MemberAccess", - "referencedDeclaration": 6932, - "src": "4584:19:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) external returns (uint256)" - } - }, - "id": 358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4584:33:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4544:73:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 360, - "nodeType": "ExpressionStatement", - "src": "4544:73:0" - } - ] - }, - "documentation": null, - "id": 362, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sponsorExpense", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 349, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 348, - "name": "expenseIndex", - "nodeType": "VariableDeclaration", - "scope": 362, - "src": "4511:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 347, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4511:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4510:19:0" - }, - "returnParameters": { - "id": 350, - "nodeType": "ParameterList", - "parameters": [], - "src": "4537:0:0" - }, - "scope": 742, - "src": "4486:137:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 415, - "nodeType": "Block", - "src": "4790:354:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - }, - "id": 378, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 372, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "4807:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 374, - "indexExpression": { - "argumentTypes": null, - "id": 373, - "name": "expenseIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 364, - "src": "4816:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4807:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage", - "typeString": "struct GitFundedGrant.Expense storage ref" - } - }, - "id": 375, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 132, - "src": "4807:29:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 376, - "name": "ExpenseStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "4840:13:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ExpenseStatus_$101_$", - "typeString": "type(enum GitFundedGrant.ExpenseStatus)" - } - }, - "id": 377, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "PENDING", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4840:21:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - } - }, - "src": "4807:54:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 371, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4799:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 379, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4799:63:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 380, - "nodeType": "ExpressionStatement", - "src": "4799:63:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 384, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 382, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "4877:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 383, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "4894:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "4877:23:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "46756e6473206e6f7420617661696c61626c65", - "id": 385, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4902:21:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", - "typeString": "literal_string \"Funds not available\"" - }, - "value": "Funds not available" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", - "typeString": "literal_string \"Funds not available\"" - } - ], - "id": 381, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "4869:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4869:55:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 387, - "nodeType": "ExpressionStatement", - "src": "4869:55:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 388, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "4935:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 390, - "indexExpression": { - "argumentTypes": null, - "id": 389, - "name": "expenseIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 364, - "src": "4944:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4935:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage", - "typeString": "struct GitFundedGrant.Expense storage ref" - } - }, - "id": 391, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 132, - "src": "4935:29:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 392, - "name": "ExpenseStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 101, - "src": "4967:13:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_ExpenseStatus_$101_$", - "typeString": "type(enum GitFundedGrant.ExpenseStatus)" - } - }, - "id": 393, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "PARTIALLY_ACCEPTED", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "4967:32:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - } - }, - "src": "4935:64:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_ExpenseStatus_$101", - "typeString": "enum GitFundedGrant.ExpenseStatus" - } - }, - "id": 395, - "nodeType": "ExpressionStatement", - "src": "4935:64:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 396, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "5006:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 397, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "5023:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5006:23:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 399, - "nodeType": "ExpressionStatement", - "src": "5006:23:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 405, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 400, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "5036:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 402, - "indexExpression": { - "argumentTypes": null, - "id": 401, - "name": "expenseIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 364, - "src": "5045:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5036:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage", - "typeString": "struct GitFundedGrant.Expense storage ref" - } - }, - "id": 403, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "allocated", - "nodeType": "MemberAccess", - "referencedDeclaration": 128, - "src": "5036:32:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 404, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "5072:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5036:42:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 406, - "nodeType": "ExpressionStatement", - "src": "5036:42:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 412, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 366, - "src": "5127:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 407, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "5085:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 409, - "indexExpression": { - "argumentTypes": null, - "id": 408, - "name": "expenseIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 364, - "src": "5094:12:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5085:22:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Expense_$135_storage", - "typeString": "struct GitFundedGrant.Expense storage ref" - } - }, - "id": 410, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "recipient", - "nodeType": "MemberAccess", - "referencedDeclaration": 130, - "src": "5085:32:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 411, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5085:41:0", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5085:49:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 414, - "nodeType": "ExpressionStatement", - "src": "5085:49:0" - } - ] - }, - "documentation": null, - "id": 416, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 369, - "modifierName": { - "argumentTypes": null, - "id": 368, - "name": "onlyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "4773:9:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "4773:9:0" - } - ], - "name": "acceptPartialExpense", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 364, - "name": "expenseIndex", - "nodeType": "VariableDeclaration", - "scope": 416, - "src": "4741:17:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 363, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4741:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 366, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 416, - "src": "4760:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 365, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4760:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4740:32:0" - }, - "returnParameters": { - "id": 370, - "nodeType": "ParameterList", - "parameters": [], - "src": "4790:0:0" - }, - "scope": 742, - "src": "4711:433:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 427, - "nodeType": "Block", - "src": "5190:63:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 419, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "5199:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 422, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "5233:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5233:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 420, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "5215:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 421, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "5215:17:0", - "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": 424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5215:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5199:44:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 426, - "nodeType": "ExpressionStatement", - "src": "5199:44:0" - } - ] - }, - "documentation": null, - "id": 428, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "fundProject", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 417, - "nodeType": "ParameterList", - "parameters": [], - "src": "5172:2:0" - }, - "returnParameters": { - "id": 418, - "nodeType": "ParameterList", - "parameters": [], - "src": "5190:0:0" - }, - "scope": 742, - "src": "5152:101:0", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 450, - "nodeType": "Block", - "src": "5345:91:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 437, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "5354:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 440, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "5388:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 438, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "5370:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "5370:17:0", - "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": 441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5370:24:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5354:40:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 443, - "nodeType": "ExpressionStatement", - "src": "5354:40:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 447, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 432, - "src": "5420:5:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 444, - "name": "recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 430, - "src": "5401:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5401:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5401:25:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 449, - "nodeType": "ExpressionStatement", - "src": "5401:25:0" - } - ] - }, - "documentation": null, - "id": 451, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 435, - "modifierName": { - "argumentTypes": null, - "id": 434, - "name": "onlyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "5320:9:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "5320:9:0" - } - ], - "name": "transferFund", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 433, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 430, - "name": "recipient", - "nodeType": "VariableDeclaration", - "scope": 451, - "src": "5281:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 429, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5281:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 432, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 451, - "src": "5308:10:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 431, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5308:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5280:39:0" - }, - "returnParameters": { - "id": 436, - "nodeType": "ParameterList", - "parameters": [], - "src": "5345:0:0" - }, - "scope": 742, - "src": "5259:177:0", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 459, - "nodeType": "Block", - "src": "5499:35:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 456, - "name": "expenses", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 151, - "src": "5513:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Expense_$135_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Expense storage ref[] storage ref" - } - }, - "id": 457, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5513:15:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 455, - "id": 458, - "nodeType": "Return", - "src": "5506:22:0" - } - ] - }, - "documentation": null, - "id": 460, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getExpensesCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 452, - "nodeType": "ParameterList", - "parameters": [], - "src": "5469:2:0" - }, - "returnParameters": { - "id": 455, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 454, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 460, - "src": "5493:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 453, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5493:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5492:6:0" - }, - "scope": 742, - "src": "5444:90:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 468, - "nodeType": "Block", - "src": "5593:33:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 465, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "5607:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 466, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5607:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 464, - "id": 467, - "nodeType": "Return", - "src": "5600:20:0" - } - ] - }, - "documentation": null, - "id": 469, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getIssuesCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 461, - "nodeType": "ParameterList", - "parameters": [], - "src": "5563:2:0" - }, - "returnParameters": { - "id": 464, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 463, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 469, - "src": "5587:4:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5587:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5586:6:0" - }, - "scope": 742, - "src": "5540:86:0", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 495, - "nodeType": "Block", - "src": "5818:134:0", - "statements": [ - { - "assignments": [ - 477 - ], - "declarations": [ - { - "constant": false, - "id": 477, - "name": "issue", - "nodeType": "VariableDeclaration", - "scope": 495, - "src": "5831:18:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_memory_ptr", - "typeString": "struct GitFundedGrant.Issue" - }, - "typeName": { - "contractScope": null, - "id": 476, - "name": "Issue", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 148, - "src": "5831:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage_ptr", - "typeString": "struct GitFundedGrant.Issue" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 488, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 479, - "name": "_title", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 471, - "src": "5858:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 480, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 473, - "src": "5866:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 481, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5875:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 482, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5878:1:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 483, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "5881:3:0", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 484, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5881:10:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 485, - "name": "IssueStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "5893:11:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_IssueStatus_$107_$", - "typeString": "type(enum GitFundedGrant.IssueStatus)" - } - }, - "id": 486, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "BACKLOG", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5893:19:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - ], - "id": 478, - "name": "Issue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 148, - "src": "5852:5:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Issue_$148_storage_ptr_$", - "typeString": "type(struct GitFundedGrant.Issue storage pointer)" - } - }, - "id": 487, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5852:61:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_memory", - "typeString": "struct GitFundedGrant.Issue memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5831:82:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 492, - "name": "issue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 477, - "src": "5936:5:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_memory_ptr", - "typeString": "struct GitFundedGrant.Issue memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Issue_$148_memory_ptr", - "typeString": "struct GitFundedGrant.Issue memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 489, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "5924:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5924:11:0", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Issue_$148_storage_$returns$_t_uint256_$", - "typeString": "function (struct GitFundedGrant.Issue storage ref) returns (uint256)" - } - }, - "id": 493, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5924:18:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 494, - "nodeType": "ExpressionStatement", - "src": "5924:18:0" - } - ] - }, - "documentation": null, - "id": 496, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addIssue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 474, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 471, - "name": "_title", - "nodeType": "VariableDeclaration", - "scope": 496, - "src": "5775:20:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 470, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5775:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 473, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 496, - "src": "5797:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 472, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "5797:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5774:36:0" - }, - "returnParameters": { - "id": 475, - "nodeType": "ParameterList", - "parameters": [], - "src": "5818:0:0" - }, - "scope": 742, - "src": "5757:195:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 581, - "nodeType": "Block", - "src": "6348:494:0", - "statements": [ - { - "assignments": [ - 522 - ], - "declarations": [ - { - "constant": false, - "id": 522, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 581, - "src": "6361:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 521, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6361:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 527, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 523, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "6375:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 525, - "indexExpression": { - "argumentTypes": null, - "id": 524, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 498, - "src": "6382:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6375:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 526, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amount", - "nodeType": "MemberAccess", - "referencedDeclaration": 139, - "src": "6375:25:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6361:39:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - }, - "id": 535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 529, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "6419:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 531, - "indexExpression": { - "argumentTypes": null, - "id": 530, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 498, - "src": "6426:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6419:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 532, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 147, - "src": "6419:25:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 533, - "name": "IssueStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "6448:11:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_IssueStatus_$107_$", - "typeString": "type(enum GitFundedGrant.IssueStatus)" - } - }, - "id": 534, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "BACKLOG", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6448:19:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "src": "6419:48:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 528, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "6411:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6411:57:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 537, - "nodeType": "ExpressionStatement", - "src": "6411:57:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 541, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 539, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "6487:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 540, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "6504:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6487:23:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "46756e6473206e6f7420617661696c61626c65", - "id": 542, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6512:21:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", - "typeString": "literal_string \"Funds not available\"" - }, - "value": "Funds not available" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", - "typeString": "literal_string \"Funds not available\"" - } - ], - "id": 538, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "6479:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6479:55:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 544, - "nodeType": "ExpressionStatement", - "src": "6479:55:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 545, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "6549:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 547, - "indexExpression": { - "argumentTypes": null, - "id": 546, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 498, - "src": "6556:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6549:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 548, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 147, - "src": "6549:25:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 549, - "name": "IssueStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "6577:11:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_IssueStatus_$107_$", - "typeString": "type(enum GitFundedGrant.IssueStatus)" - } - }, - "id": 550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "TODO", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6577:16:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "src": "6549:44:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "id": 552, - "nodeType": "ExpressionStatement", - "src": "6549:44:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 553, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "6604:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 554, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "6621:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6604:23:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 556, - "nodeType": "ExpressionStatement", - "src": "6604:23:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 557, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "6638:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 559, - "indexExpression": { - "argumentTypes": null, - "id": 558, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 498, - "src": "6645:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6638:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 560, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "allocated", - "nodeType": "MemberAccess", - "referencedDeclaration": 141, - "src": "6638:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 561, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 522, - "src": "6670:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6638:38:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 563, - "nodeType": "ExpressionStatement", - "src": "6638:38:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 564, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "6689:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 566, - "indexExpression": { - "argumentTypes": null, - "id": 565, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 498, - "src": "6696:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6689:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 567, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "bountyId", - "nodeType": "MemberAccess", - "referencedDeclaration": 143, - "src": "6689:27:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 570, - "name": "signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 500, - "src": "6738:9:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 571, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 503, - "src": "6749:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 572, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 506, - "src": "6772:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 573, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 508, - "src": "6784:5:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 574, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 510, - "src": "6791:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 575, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "6802:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 576, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 514, - "src": "6810:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 577, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 516, - "src": "6825:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 568, - "name": "ib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "6719:2:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", - "typeString": "contract iBountiesMetaTxRelayer" - } - }, - "id": 569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "metaIssueBounty", - "nodeType": "MemberAccess", - "referencedDeclaration": 4537, - "src": "6719:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_bytes_memory_ptr_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (bytes memory,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256) external returns (uint256)" - } - }, - "id": 578, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6719:113:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6689:143:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 580, - "nodeType": "ExpressionStatement", - "src": "6689:143:0" - } - ] - }, - "documentation": null, - "id": 582, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 519, - "modifierName": { - "argumentTypes": null, - "id": 518, - "name": "onlyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "6331:9:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "6331:9:0" - } - ], - "name": "acceptIssueWithNoFund", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 517, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 498, - "name": "issueIndex", - "nodeType": "VariableDeclaration", - "scope": 582, - "src": "6036:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 497, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6036:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 500, - "name": "signature", - "nodeType": "VariableDeclaration", - "scope": 582, - "src": "6066:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 499, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6066:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 503, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 582, - "src": "6103:33:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 501, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6103:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 502, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6103:17:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 506, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 582, - "src": "6151:27:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 504, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6151:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 505, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6151:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 508, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 582, - "src": "6193:19:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 507, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6193:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 510, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 582, - "src": "6227:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 509, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6227:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 512, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 582, - "src": "6256:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 511, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6256:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 514, - "name": "_tokenVersion", - "nodeType": "VariableDeclaration", - "scope": 582, - "src": "6285:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 513, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6285:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 516, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 582, - "src": "6318:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 515, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6318:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6035:295:0" - }, - "returnParameters": { - "id": 520, - "nodeType": "ParameterList", - "parameters": [], - "src": "6348:0:0" - }, - "scope": 742, - "src": "6005:837:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 674, - "nodeType": "Block", - "src": "7228:522:0", - "statements": [ - { - "assignments": [ - 610 - ], - "declarations": [ - { - "constant": false, - "id": 610, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 674, - "src": "7237:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 609, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7237:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 615, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 611, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "7251:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 613, - "indexExpression": { - "argumentTypes": null, - "id": 612, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 584, - "src": "7258:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7251:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 614, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amount", - "nodeType": "MemberAccess", - "referencedDeclaration": 139, - "src": "7251:25:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7237:39:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - }, - "id": 623, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 617, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "7291:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 619, - "indexExpression": { - "argumentTypes": null, - "id": 618, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 584, - "src": "7298:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7291:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 620, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 147, - "src": "7291:25:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 621, - "name": "IssueStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "7320:11:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_IssueStatus_$107_$", - "typeString": "type(enum GitFundedGrant.IssueStatus)" - } - }, - "id": 622, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "BACKLOG", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7320:19:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "src": "7291:48:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "50726f6a656374206973206e6f7420696e206261636b6c6f67", - "id": 624, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7341:27:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e017887d840fc949a9b314cdaa0d1854d946edb479801781961ce41ea66163a1", - "typeString": "literal_string \"Project is not in backlog\"" - }, - "value": "Project is not in backlog" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e017887d840fc949a9b314cdaa0d1854d946edb479801781961ce41ea66163a1", - "typeString": "literal_string \"Project is not in backlog\"" - } - ], - "id": 616, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7283:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 625, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7283:86:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 626, - "nodeType": "ExpressionStatement", - "src": "7283:86:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 630, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 628, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "7384:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 629, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 610, - "src": "7401:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7384:23:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "46756e6473206e6f7420617661696c61626c65", - "id": 631, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7409:21:0", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", - "typeString": "literal_string \"Funds not available\"" - }, - "value": "Funds not available" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cf3d7f3297aea4c9ea2bc50a286891beb7df066c5a30149ae20a3ec82d8d1ecc", - "typeString": "literal_string \"Funds not available\"" - } - ], - "id": 627, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7376:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7376:55:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 633, - "nodeType": "ExpressionStatement", - "src": "7376:55:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 634, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "7442:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 636, - "indexExpression": { - "argumentTypes": null, - "id": 635, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 584, - "src": "7449:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7442:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 637, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 147, - "src": "7442:25:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 638, - "name": "IssueStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "7470:11:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_IssueStatus_$107_$", - "typeString": "type(enum GitFundedGrant.IssueStatus)" - } - }, - "id": 639, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "TODO", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7470:16:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "src": "7442:44:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "id": 641, - "nodeType": "ExpressionStatement", - "src": "7442:44:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 644, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 642, - "name": "availableFund", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 168, - "src": "7493:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 643, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 610, - "src": "7510:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7493:23:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 645, - "nodeType": "ExpressionStatement", - "src": "7493:23:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 646, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "7523:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 648, - "indexExpression": { - "argumentTypes": null, - "id": 647, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 584, - "src": "7530:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7523:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 649, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "allocated", - "nodeType": "MemberAccess", - "referencedDeclaration": 141, - "src": "7523:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 650, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 610, - "src": "7555:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7523:38:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 652, - "nodeType": "ExpressionStatement", - "src": "7523:38:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 672, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 653, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "7570:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 655, - "indexExpression": { - "argumentTypes": null, - "id": 654, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 584, - "src": "7577:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7570:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 656, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "bountyId", - "nodeType": "MemberAccess", - "referencedDeclaration": 143, - "src": "7570:27:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 662, - "name": "signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 586, - "src": "7638:9:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 663, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 589, - "src": "7649:8:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 664, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 592, - "src": "7666:10:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 665, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 594, - "src": "7678:5:0", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 666, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 596, - "src": "7685:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 667, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 598, - "src": "7696:6:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 668, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 600, - "src": "7704:13:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 669, - "name": "_depositAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 602, - "src": "7719:14:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 670, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 604, - "src": "7735:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "arguments": [ - { - "argumentTypes": null, - "id": 660, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 610, - "src": "7630:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 657, - "name": "ib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "7598:2:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", - "typeString": "contract iBountiesMetaTxRelayer" - } - }, - "id": 658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "metaIssueAndContribute", - "nodeType": "MemberAccess", - "referencedDeclaration": 4562, - "src": "7598:25:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_bytes_memory_ptr_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (bytes memory,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256,uint256) payable external returns (uint256)" - } - }, - "id": 659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7598:31:0", - "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_bytes_memory_ptr_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$value_$", - "typeString": "function (uint256) returns (function (bytes memory,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256,uint256) payable external returns (uint256))" - } - }, - "id": 661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7598:39:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_bytes_memory_ptr_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$value", - "typeString": "function (bytes memory,address payable[] memory,address[] memory,string memory,uint256,address,uint256,uint256,uint256) payable external returns (uint256)" - } - }, - "id": 671, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7598:144:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7570:172:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 673, - "nodeType": "ExpressionStatement", - "src": "7570:172:0" - } - ] - }, - "documentation": null, - "id": 675, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 607, - "modifierName": { - "argumentTypes": null, - "id": 606, - "name": "onlyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "7203:9:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7203:9:0" - } - ], - "name": "acceptIssue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 605, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 584, - "name": "issueIndex", - "nodeType": "VariableDeclaration", - "scope": 675, - "src": "6946:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 583, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6946:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 586, - "name": "signature", - "nodeType": "VariableDeclaration", - "scope": 675, - "src": "6968:22:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 585, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6968:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 589, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 675, - "src": "6997:33:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 587, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6997:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 588, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6997:17:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 592, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 675, - "src": "7037:27:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 590, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7037:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 591, - "length": null, - "nodeType": "ArrayTypeName", - "src": "7037:9:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 594, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 675, - "src": "7071:19:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 593, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "7071:6:0", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 596, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 675, - "src": "7097:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 595, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7097:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 598, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 675, - "src": "7118:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7118:7:0", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 600, - "name": "_tokenVersion", - "nodeType": "VariableDeclaration", - "scope": 675, - "src": "7139:18:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 599, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7139:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 602, - "name": "_depositAmount", - "nodeType": "VariableDeclaration", - "scope": 675, - "src": "7164:19:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 601, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7164:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 604, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 675, - "src": "7190:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 603, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7190:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6945:257:0" - }, - "returnParameters": { - "id": 608, - "nodeType": "ParameterList", - "parameters": [], - "src": "7228:0:0" - }, - "scope": 742, - "src": "6925:825:0", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 691, - "nodeType": "Block", - "src": "7817:56:0", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 686, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10439, - "src": "7853:4:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GitFundedGrant_$742", - "typeString": "contract GitFundedGrant" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_GitFundedGrant_$742", - "typeString": "contract GitFundedGrant" - } - ], - "id": 685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7845:7:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7845:13:0", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 688, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7845:21:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 682, - "name": "recipient", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 677, - "src": "7826:9:0", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7826:18:0", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 689, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7826:41:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 690, - "nodeType": "ExpressionStatement", - "src": "7826:41:0" - } - ] - }, - "documentation": null, - "id": 692, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 680, - "modifierName": { - "argumentTypes": null, - "id": 679, - "name": "onlyAdmin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 184, - "src": "7807:9:0", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7807:9:0" - } - ], - "name": "swipe", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 678, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 677, - "name": "recipient", - "nodeType": "VariableDeclaration", - "scope": 692, - "src": "7771:25:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 676, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7771:15:0", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7770:27:0" - }, - "returnParameters": { - "id": 681, - "nodeType": "ParameterList", - "parameters": [], - "src": "7817:0:0" - }, - "scope": 742, - "src": "7756:117:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 740, - "nodeType": "Block", - "src": "7996:254:0", - "statements": [ - { - "assignments": [ - 704 - ], - "declarations": [ - { - "constant": false, - "id": 704, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 740, - "src": "8007:14:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 703, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8007:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 709, - "initialValue": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 705, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "8022:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 707, - "indexExpression": { - "argumentTypes": null, - "id": 706, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 694, - "src": "8029:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8022:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 708, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "bountyId", - "nodeType": "MemberAccess", - "referencedDeclaration": 143, - "src": "8022:27:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8007:42:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - }, - "id": 717, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 711, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "8068:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 713, - "indexExpression": { - "argumentTypes": null, - "id": 712, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 694, - "src": "8075:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8068:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 714, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "status", - "nodeType": "MemberAccess", - "referencedDeclaration": 147, - "src": "8068:25:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 715, - "name": "IssueStatus", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 107, - "src": "8097:11:0", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_IssueStatus_$107_$", - "typeString": "type(enum GitFundedGrant.IssueStatus)" - } - }, - "id": 716, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "TODO", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8097:16:0", - "typeDescriptions": { - "typeIdentifier": "t_enum$_IssueStatus_$107", - "typeString": "enum GitFundedGrant.IssueStatus" - } - }, - "src": "8068:45:0", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 710, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "8060:7:0", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 718, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8060:54:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 719, - "nodeType": "ExpressionStatement", - "src": "8060:54:0" - }, - { - "expression": { - "argumentTypes": null, - "id": 725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 720, - "name": "issues", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 154, - "src": "8123:6:0", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Issue_$148_storage_$dyn_storage", - "typeString": "struct GitFundedGrant.Issue storage ref[] storage ref" - } - }, - "id": 722, - "indexExpression": { - "argumentTypes": null, - "id": 721, - "name": "issueIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 694, - "src": "8130:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8123:18:0", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Issue_$148_storage", - "typeString": "struct GitFundedGrant.Issue storage ref" - } - }, - "id": 723, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "allocated", - "nodeType": "MemberAccess", - "referencedDeclaration": 141, - "src": "8123:28:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 724, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "8156:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8123:40:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 726, - "nodeType": "ExpressionStatement", - "src": "8123:40:0" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 734, - "name": "_signature", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 696, - "src": "8205:10:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - }, - { - "argumentTypes": null, - "id": 735, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 704, - "src": "8216:9:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 736, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "8226:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 737, - "name": "_nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 700, - "src": "8234:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "arguments": [ - { - "argumentTypes": null, - "id": 732, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 698, - "src": "8196:7:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 727, - "name": "ib", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "8172:2:0", - "typeDescriptions": { - "typeIdentifier": "t_contract$_iBountiesMetaTxRelayer_$4806", - "typeString": "contract iBountiesMetaTxRelayer" - } - }, - "id": 730, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "metaContribute", - "nodeType": "MemberAccess", - "referencedDeclaration": 4573, - "src": "8172:17:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (bytes memory,uint256,uint256,uint256) payable external" - } - }, - "id": 731, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8172:23:0", - "typeDescriptions": { - "typeIdentifier": "t_function_setvalue_nonpayable$_t_uint256_$returns$_t_function_external_payable$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$value_$", - "typeString": "function (uint256) returns (function (bytes memory,uint256,uint256,uint256) payable external)" - } - }, - "id": 733, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8172:32:0", - "typeDescriptions": { - "typeIdentifier": "t_function_external_payable$_t_bytes_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$value", - "typeString": "function (bytes memory,uint256,uint256,uint256) payable external" - } - }, - "id": 738, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8172:69:0", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 739, - "nodeType": "ExpressionStatement", - "src": "8172:69:0" - } - ] - }, - "documentation": null, - "id": 741, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "fundIssue", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 701, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 694, - "name": "issueIndex", - "nodeType": "VariableDeclaration", - "scope": 741, - "src": "7905:15:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 693, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7905:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 696, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 741, - "src": "7927:23:0", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 695, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7927:5:0", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 698, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 741, - "src": "7957:12:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 697, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7957:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 700, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 741, - "src": "7976:11:0", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 699, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7976:4:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7898:90:0" - }, - "returnParameters": { - "id": 702, - "nodeType": "ParameterList", - "parameters": [], - "src": "7996:0:0" - }, - "scope": 742, - "src": "7880:370:0", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 743, - "src": "183:8070:0" - } - ], - "src": "0:8255:0" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:19.745Z", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/GitFundedGrantFactory.json b/src/contracts/GitFundedGrantFactory.json deleted file mode 100644 index 39dec81..0000000 --- a/src/contracts/GitFundedGrantFactory.json +++ /dev/null @@ -1,3197 +0,0 @@ -{ - "contractName": "GitFundedGrantFactory", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "projectCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - }, - { - "name": "", - "type": "uint256" - } - ], - "name": "projects", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_bountyAddress", - "type": "address" - }, - { - "name": "_tokenAddress", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "repoId", - "type": "string" - }, - { - "indexed": false, - "name": "title", - "type": "string" - }, - { - "indexed": false, - "name": "budget", - "type": "uint256" - }, - { - "indexed": false, - "name": "availableFund", - "type": "uint256" - }, - { - "indexed": false, - "name": "admin", - "type": "address" - } - ], - "name": "projectAdded", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "repoId", - "type": "string" - }, - { - "name": "title", - "type": "string" - }, - { - "name": "budget", - "type": "uint256" - } - ], - "name": "newProject", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getContractAddress", - "outputs": [ - { - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getProjectsCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"getContractAddress\",\"outputs\":[{\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"projectCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"},{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"projects\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"repoId\",\"type\":\"string\"},{\"name\":\"title\",\"type\":\"string\"},{\"name\":\"budget\",\"type\":\"uint256\"}],\"name\":\"newProject\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getProjectsCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_bountyAddress\",\"type\":\"address\"},{\"name\":\"_tokenAddress\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"repoId\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"title\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"budget\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"availableFund\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"projectAdded\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/GitFundedGrantFactory.sol\":\"GitFundedGrantFactory\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/GitFundedGrant.sol\":{\"keccak256\":\"0x8e4e4e93ef49625069d01d78121332f364556da1659eb2d8fb66315620da1e80\",\"urls\":[\"bzzr://b7351fd42bacdcb7066bc03507f0f3d41c71357d27f7bc21ffea0fa6aeaf7962\",\"dweb:/ipfs/QmPfSjuKcowi3F6YMr9a8qrsCLvcyFx5NacP6yBoJtwFKo\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/GitFundedGrantFactory.sol\":{\"keccak256\":\"0x4335d74031b142c4432f5fda5e4a69e730509ac24d63be8afecf210d1de78380\",\"urls\":[\"bzzr://3a9573f5d08b544768a55274b7e5dc79e540babf774d9a83c29c63f5062d7dc9\",\"dweb:/ipfs/QmbCzeHPeLQwXaSegfwdmT6itik8FeWPNnk29z3ajDrMgN\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/iBountiesMetaTxRelayer.sol\":{\"keccak256\":\"0x2c7a62683ee97ced4a5d82a5d24524d49e4e0ff8a8c7a4586e6450e590e6f917\",\"urls\":[\"bzzr://b01b873559523fad3de083f16b2d265f41de56a4b2d8d13955ec5c6e79a0d53f\",\"dweb:/ipfs/QmUkBDYA6czW2yFAypaw6EwreqN3795GYaG8PsYh2w5SC3\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Governance.sol\":{\"keccak256\":\"0x6008b164e82e38bbae1f88843ec8963a73a722963b941dd9bde72d4a0e849d80\",\"urls\":[\"bzzr://310d76b367fcb8cd744884b5e57e2a08ee9995ab845909d50f11f14c5f530273\",\"dweb:/ipfs/QmRVebN3g2R9R7HENS45ctw5Cn4wGLr65f8nGjtYkPW2jb\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol\":{\"keccak256\":\"0xa8ace5b5ac3322c9019470d2a1ad1342ef5d984da3d4818554e703b65ceda667\",\"urls\":[\"bzzr://b38168eab9d05f21a7576958f33878d9d31877a12f1f14bda390f3f4fbdaa2a4\",\"dweb:/ipfs/QmWa9cX9gzUkyM9yVwfhd6FsSeh1jpV62sBzdGJm6jRPRX\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/iGovernance.sol\":{\"keccak256\":\"0x2e3ecc4629568c30886c401376a98f196c7d8dafbf1dbce95296e0ca553cb85f\",\"urls\":[\"bzzr://a69865ec2501d5c618498843782e9c014b0903e4a6dc79511303fc5c53372534\",\"dweb:/ipfs/QmWX6FLo2pNaQQXfyVebLSc2VAi4yJNqiVLNSMUcouVyZa\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol\":{\"keccak256\":\"0x8d08add2e57d2885eb9cda96d2ce54056015247de9adfea8e13c78bb2d9233f2\",\"urls\":[\"bzzr://24804e36486f935a9e98bf507193d1b160db755edba6c9d124a894aef3741ada\",\"dweb:/ipfs/QmauQVeYbGgqJDNxKAceFj1hFD1gfCfAXNBA8vCh3aGYKA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", - "bytecode": "0x60806040526000805534801561001457600080fd5b506040516130813803806130818339818101604052604081101561003757600080fd5b508051602090910151600180546001600160a01b039384166001600160a01b031991821617909155600280549390921692169190911790556130038061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806332a2c5d01461005c57806336fbad26146100b45780637ecdd3c5146100ce578063954db47414610116578063e4a8f18b14610245575b600080fd5b61006461024d565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156100a0578181015183820152602001610088565b505050509050019250505060405180910390f35b6100bc6102b8565b60408051918252519081900360200190f35b6100fa600480360360408110156100e457600080fd5b506001600160a01b0381351690602001356102be565b604080516001600160a01b039092168252519081900360200190f35b6100fa6004803603606081101561012c57600080fd5b81019060208101813564010000000081111561014757600080fd5b82018360208201111561015957600080fd5b8035906020019184600183028401116401000000008311171561017b57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156101ce57600080fd5b8201836020820111156101e057600080fd5b8035906020019184600183028401116401000000008311171561020257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050913592506102f3915050565b6100bc61059c565b336000908152600360209081526040918290208054835181840281018401909452808452606093928301828280156102ae57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610290575b5050505050905090565b60005481565b600360205281600052604060002081815481106102d757fe5b6000918252602090912001546001600160a01b03169150829050565b600154600254604051600092839287928792879233926001600160a01b039283169290911690610322906105a2565b604081018590526001600160a01b0380851660608301528381166080830152821660a082015260c08082528751908201528651819060208083019160e08401918b019080838360005b8381101561038357818101518382015260200161036b565b50505050905090810190601f1680156103b05780820380516001836020036101000a031916815260200191505b5083810382528851815288516020918201918a019080838360005b838110156103e35781810151838201526020016103cb565b50505050905090810190601f1680156104105780820380516001836020036101000a031916815260200191505b5098505050505050505050604051809103906000f080158015610437573d6000803e3d6000fd5b503360008181526003602090815260408083208054600180820183559185528385200180546001600160a01b0319166001600160a01b03881617905583540183558051908101889052606081018390526080810184905260a08082528a519082015289519495507fa4802727cd9ec0d1fcbf51f260983cba0fd67d1ce8b069f1d8d2ddeb0e8adbf3948a948a948a949093919282918281019160c08401918a01908083838a5b838110156104f55781810151838201526020016104dd565b50505050905090810190601f1680156105225780820380516001836020036101000a031916815260200191505b50838103825287518152875160209182019189019080838360005b8381101561055557818101518382015260200161053d565b50505050905090810190601f1680156105825780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a1949350505050565b60005490565b612a1f806105b08339019056fe6080604052600160008181558180556003805460ff19169092179091556004553480156200002c57600080fd5b5060405162002a1f38038062002a1f833981810160405260c08110156200005257600080fd5b8101908080516401000000008111156200006b57600080fd5b820160208101848111156200007f57600080fd5b81516401000000008111828201871017156200009a57600080fd5b50509291906020018051640100000000811115620000b757600080fd5b82016020810184811115620000cb57600080fd5b8151640100000000811182820187101715620000e657600080fd5b5050602080830151604084015160608501516080909501518851949750919550939290916200011b91600c91890190620001a4565b5084516200013190600d906020880190620001a4565b5050600e92909255600b80546001600160a01b039283166001600160a01b0319918216179091556000600f556010805460068054958516959093169490941790915561010060ff19909316600117838104909216909202610100600160a81b031990911617905550504260025562000249565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001e757805160ff191683800117855562000217565b8280016001018555821562000217579182015b8281111562000217578251825591602001919060010190620001fa565b506200022592915062000229565b5090565b6200024691905b8082111562000225576000815560010162000230565b90565b6127c680620002596000396000f3fe6080604052600436106101b75760003560e01c80637436f3dc116100ec578063c4d66de81161008a578063d63dc66111610064578063d63dc66114610d21578063dff3ad6914610d29578063e2dc35e014610ea0578063f851a44014610ecc576101b7565b8063c4d66de814610ca6578063cce7db5814610cd9578063d0cb3cd114610d0c576101b7565b806391fc17b4116100c657806391fc17b414610911578063a87430ba14610926578063a9a74bd6146109a6578063af4afe0a14610c02576101b7565b80637436f3dc1461081a57806383197ef01461082f5780638c3006c714610844576101b7565b806322dffcbb1161015957806350b594471161013357806350b594471461071e57806354fd4d501461073357806360d41290146107485780636415921d1461075d576101b7565b806322dffcbb146105b757806325a287ce1461066a5780634a79d50c14610694576101b7565b80630c3d5157116101955780630c3d5157146105215780630d0f3f5d146105485780630daded9514610578578063125ede9d1461058d576101b7565b8063013e9128146101bc57806302fb0c5e1461041357806304e15de51461043c575b600080fd5b61041160048036036101408110156101d357600080fd5b81359190810190604081016020820135600160201b8111156101f457600080fd5b82018360208201111561020657600080fd5b803590602001918460018302840111600160201b8311171561022757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561027957600080fd5b82018360208201111561028b57600080fd5b803590602001918460208302840111600160201b831117156102ac57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156102fb57600080fd5b82018360208201111561030d57600080fd5b803590602001918460208302840111600160201b8311171561032e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561037d57600080fd5b82018360208201111561038f57600080fd5b803590602001918460018302840111600160201b831117156103b057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505082359350506001600160a01b03602083013516916040810135915060608101359060800135610efd565b005b34801561041f57600080fd5b50610428611300565b604080519115158252519081900360200190f35b34801561044857600080fd5b506104666004803603602081101561045f57600080fd5b5035611309565b6040518080602001878152602001868152602001858152602001846001600160a01b03166001600160a01b031681526020018360048111156104a457fe5b60ff168152602001828103825288818151815260200191508051906020019080838360005b838110156104e15781810151838201526020016104c9565b50505050905090810190601f16801561050e5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b34801561052d57600080fd5b506105366113e7565b60408051918252519081900360200190f35b34801561055457600080fd5b506104116004803603604081101561056b57600080fd5b50803590602001356113ed565b34801561058457600080fd5b50610536611596565b34801561059957600080fd5b50610411600480360360208110156105b057600080fd5b503561159d565b3480156105c357600080fd5b50610411600480360360408110156105da57600080fd5b810190602081018135600160201b8111156105f457600080fd5b82018360208201111561060657600080fd5b803590602001918460018302840111600160201b8311171561062757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550509135925061178c915050565b34801561067657600080fd5b506104116004803603602081101561068d57600080fd5b50356118a0565b3480156106a057600080fd5b506106a9611940565b6040805160208082528351818301528351919283929083019185019080838360005b838110156106e35781810151838201526020016106cb565b50505050905090810190601f1680156107105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561072a57600080fd5b506105366119ce565b34801561073f57600080fd5b506105366119d4565b34801561075457600080fd5b506105366119da565b34801561076957600080fd5b506104116004803603608081101561078057600080fd5b81359190810190604081016020820135600160201b8111156107a157600080fd5b8201836020820111156107b357600080fd5b803590602001918460018302840111600160201b831117156107d457600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050823593505050602001356119e0565b34801561082657600080fd5b50610536611b69565b34801561083b57600080fd5b50610411611b6f565b34801561085057600080fd5b50610859611bcd565b60408051908101849052606081018390526001600160a01b038216608082015260a08082528651908201528551819060208083019160c08401918a019080838360005b838110156108b457818101518382015260200161089c565b50505050905090810190601f1680156108e15780820380516001836020036101000a031916815260200191505b508381038252875181528751602091820191890190808383600083156104e15781810151838201526020016104c9565b34801561091d57600080fd5b506106a9611d21565b34801561093257600080fd5b506109596004803603602081101561094957600080fd5b50356001600160a01b0316611d7c565b6040805186151581526001600160a01b0386166020820152908101849052606081018390526080810182600281111561098e57fe5b60ff1681526020019550505050505060405180910390f35b3480156109b257600080fd5b5061041160048036036101208110156109ca57600080fd5b81359190810190604081016020820135600160201b8111156109eb57600080fd5b8201836020820111156109fd57600080fd5b803590602001918460018302840111600160201b83111715610a1e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115610a7057600080fd5b820183602082011115610a8257600080fd5b803590602001918460208302840111600160201b83111715610aa357600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610af257600080fd5b820183602082011115610b0457600080fd5b803590602001918460208302840111600160201b83111715610b2557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610b7457600080fd5b820183602082011115610b8657600080fd5b803590602001918460018302840111600160201b83111715610ba757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505082359350506001600160a01b03602083013516916040810135915060600135611db7565b348015610c0e57600080fd5b50610c2c60048036036020811015610c2557600080fd5b5035612164565b6040518080602001878152602001868152602001856001600160a01b03166001600160a01b03168152602001846003811115610c6457fe5b60ff16815260200183815260200182810382528881815181526020019150805190602001908083836000838110156104e15781810151838201526020016104c9565b348015610cb257600080fd5b5061041160048036036020811015610cc957600080fd5b50356001600160a01b0316612243565b348015610ce557600080fd5b5061041160048036036020811015610cfc57600080fd5b50356001600160a01b03166122b5565b348015610d1857600080fd5b5061053661233f565b610411612345565b348015610d3557600080fd5b506104116004803603610140811015610d4d57600080fd5b810190602081018135600160201b811115610d6757600080fd5b820183602082011115610d7957600080fd5b803590602001918460018302840111600160201b83111715610d9a57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092958435956001600160a01b03602087013581169660408101359650606081013595506080810135945060a081013582169360c08201359360e08301359093169290916101208101906101000135600160201b811115610e2c57600080fd5b820183602082011115610e3e57600080fd5b803590602001918460018302840111600160201b83111715610e5f57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061235d945050505050565b61041160048036036040811015610eb657600080fd5b506001600160a01b03813516906020013561258d565b348015610ed857600080fd5b50610ee1612629565b604080516001600160a01b039092168252519081900360200190f35b600b546001600160a01b03163314610f4d576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600060098b81548110610f5c57fe5b60009182526020822060016005909202010154915060098c81548110610f7e57fe5b906000526020600020906005020160040160149054906101000a900460ff166004811115610fa857fe5b14610ffa576040805162461bcd60e51b815260206004820152601960248201527f50726f6a656374206973206e6f7420696e206261636b6c6f6700000000000000604482015290519081900360640190fd5b80600f541015611047576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b600160098c8154811061105657fe5b906000526020600020906005020160040160146101000a81548160ff0219169083600481111561108257fe5b0217905550600f80548290039055600980548291908d9081106110a157fe5b906000526020600020906005020160020181905550600660009054906101000a90046001600160a01b03166001600160a01b031663b1e6bcbb828c8c8c8c8c8c8c8c8c6040518b63ffffffff1660e01b815260040180806020018060200180602001806020018a8152602001896001600160a01b03166001600160a01b0316815260200188815260200187815260200186815260200185810385528e818151815260200191508051906020019080838360005b8381101561116c578181015183820152602001611154565b50505050905090810190601f1680156111995780820380516001836020036101000a031916815260200191505b5085810384528d818151815260200191508051906020019060200280838360005b838110156111d25781810151838201526020016111ba565b5050505090500185810383528c818151815260200191508051906020019060200280838360005b838110156112115781810151838201526020016111f9565b5050505090500185810382528b818151815260200191508051906020019080838360005b8381101561124d578181015183820152602001611235565b50505050905090810190601f16801561127a5780820380516001836020036101000a031916815260200191505b509d50505050505050505050505050506020604051808303818588803b1580156112a357600080fd5b505af11580156112b7573d6000803e3d6000fd5b50505050506040513d60208110156112ce57600080fd5b5051600980548d9081106112de57fe5b9060005260206000209060050201600301819055505050505050505050505050565b60035460ff1681565b6009818154811061131657fe5b60009182526020918290206005919091020180546040805160026001841615610100026000190190931692909204601f8101859004850283018501909152808252919350918391908301828280156113af5780601f10611384576101008083540402835291602001916113af565b820191906000526020600020905b81548152906001019060200180831161139257829003601f168201915b50505050600183015460028401546003850154600490950154939491939092506001600160a01b03811690600160a01b900460ff1686565b60025481565b600b546001600160a01b0316331461143d576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b60006008838154811061144c57fe5b906000526020600020906005020160030160149054906101000a900460ff16600381111561147657fe5b1461148057600080fd5b80600f5410156114cd576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b6001600883815481106114dc57fe5b906000526020600020906005020160030160146101000a81548160ff0219169083600381111561150857fe5b0217905550600f80548290039055600880548291908490811061152757fe5b9060005260206000209060050201600201819055506008828154811061154957fe5b600091825260208220600360059092020101546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015611591573d6000803e3d6000fd5b505050565b6008545b90565b600b546001600160a01b031633146115ed576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b6000600882815481106115fc57fe5b906000526020600020906005020160040154905060006008838154811061161f57fe5b6000918252602082206001600590920201015491506008848154811061164157fe5b906000526020600020906005020160030160149054906101000a900460ff16600381111561166b57fe5b1461167557600080fd5b80600f5410156116c2576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b6002600884815481106116d157fe5b906000526020600020906005020160030160146101000a81548160ff021916908360038111156116fd57fe5b0217905550600f80548290039055600880548291908590811061171c57fe5b9060005260206000209060050201600201819055506008838154811061173e57fe5b600091825260208220600360059092020101546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015611786573d6000803e3d6000fd5b50505050565b611794612666565b6040518060c001604052808481526020018381526020016000815260200160008152602001336001600160a01b03168152602001600060048111156117d557fe5b90526009805460018101808355600092909252825180519394509192849260059092027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af019161182a918391602001906126af565b506020820151600182015560408201516002820155606082015160038201556080820151600480830180546001600160a01b0319166001600160a01b039093169290921780835560a0850151929160ff60a01b1990911690600160a01b90849081111561189357fe5b0217905550505050505050565b6007546040805163025d1b6560e61b81526004810184905290516001600160a01b0390921691639746d940916024808201926020929091908290030181600087803b1580156118ee57600080fd5b505af1158015611902573d6000803e3d6000fd5b505050506040513d602081101561191857600080fd5b5051600880548390811061192857fe5b90600052602060002090600502016004018190555050565b600d805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156119c65780601f1061199b576101008083540402835291602001916119c6565b820191906000526020600020905b8154815290600101906020018083116119a957829003601f168201915b505050505081565b60095490565b60005481565b60045481565b6000600985815481106119ef57fe5b60009182526020909120600360059092020101549050600160098681548110611a1457fe5b906000526020600020906005020160040160149054906101000a900460ff166004811115611a3e57fe5b14611a4857600080fd5b8260098681548110611a5657fe5b906000526020600020906005020160020160008282540192505081905550600660009054906101000a90046001600160a01b03166001600160a01b031663432326a984868487876040518663ffffffff1660e01b81526004018080602001858152602001848152602001838152602001828103825286818151815260200191508051906020019080838360005b83811015611afb578181015183820152602001611ae3565b50505050905090810190601f168015611b285780820380516001836020036101000a031916815260200191505b50955050505050506000604051808303818588803b158015611b4957600080fd5b505af1158015611b5d573d6000803e3d6000fd5b50505050505050505050565b60015481565b600b546001600160a01b03163314611bbf576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600b546001600160a01b0316ff5b600e54600f54600b54600c8054604080516020601f600260001960018716156101000201909516949094049384018190048102820181019092528281526060968796600096879687969095600d956001600160a01b0390931692918791830182828015611c7b5780601f10611c5057610100808354040283529160200191611c7b565b820191906000526020600020905b815481529060010190602001808311611c5e57829003601f168201915b5050875460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959a5089945092508401905082828015611d095780601f10611cde57610100808354040283529160200191611d09565b820191906000526020600020905b815481529060010190602001808311611cec57829003601f168201915b50989e939d50959b5093995091975095505050505050565b600c805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156119c65780601f1061199b576101008083540402835291602001916119c6565b600a60205260009081526040902080546001820154600283015460039093015460ff808416946101009094046001600160a01b031693911685565b600b546001600160a01b03163314611e07576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600060098a81548110611e1657fe5b60009182526020822060016005909202010154915060098b81548110611e3857fe5b906000526020600020906005020160040160149054906101000a900460ff166004811115611e6257fe5b14611e6c57600080fd5b80600f541015611eb9576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b600160098b81548110611ec857fe5b906000526020600020906005020160040160146101000a81548160ff02191690836004811115611ef457fe5b0217905550600f80548290039055600980548291908c908110611f1357fe5b906000526020600020906005020160020181905550600660009054906101000a90046001600160a01b03166001600160a01b031663df4015fc8a8a8a8a8a8a8a8a6040518963ffffffff1660e01b81526004018080602001806020018060200180602001898152602001886001600160a01b03166001600160a01b0316815260200187815260200186815260200185810385528d818151815260200191508051906020019080838360005b83811015611fd6578181015183820152602001611fbe565b50505050905090810190601f1680156120035780820380516001836020036101000a031916815260200191505b5085810384528c5181528c51602091820191808f01910280838360005b83811015612038578181015183820152602001612020565b5050505090500185810383528b818151815260200191508051906020019060200280838360005b8381101561207757818101518382015260200161205f565b5050505090500185810382528a818151815260200191508051906020019080838360005b838110156120b357818101518382015260200161209b565b50505050905090810190601f1680156120e05780820380516001836020036101000a031916815260200191505b509c50505050505050505050505050602060405180830381600087803b15801561210957600080fd5b505af115801561211d573d6000803e3d6000fd5b505050506040513d602081101561213357600080fd5b5051600980548c90811061214357fe5b90600052602060002090600502016003018190555050505050505050505050565b6008818154811061217157fe5b60009182526020918290206005919091020180546040805160026001841615610100026000190190931692909204601f81018590048502830185019091528082529193509183919083018282801561220a5780601f106121df5761010080835404028352916020019161220a565b820191906000526020600020905b8154815290600101906020018083116121ed57829003601f168201915b50505050600183015460028401546003850154600490950154939491939092506001600160a01b03821691600160a01b900460ff169086565b600b546001600160a01b03163314612293576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b600b546001600160a01b03163314612305576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b6040516001600160a01b03821690303180156108fc02916000818181858888f1935050505015801561233b573d6000803e3d6000fd5b5050565b600f5481565b600f54612358903463ffffffff61263816565b600f55565b61236561272d565b6040805160c0810182528c8152602081018c90526000918101829052336060820152906080820190815260006020918201819052600880546001810180835591909252835180519495509093859360059093027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301926123e99284929101906126af565b5060208201516001820155604082015160028201556060820151600380830180546001600160a01b0319166001600160a01b03909316929092178083556080850151929160ff60a01b1990911690600160a01b90849081111561244857fe5b021790555060a0919091015160049182015560075460405163590f940b60e01b81526001600160a01b038d8116938201938452602482018d9052604482018c9052606482018b9052898116608483015260a4820189905287811660c483015261010060e483019081528751610104840152875191909316945063590f940b938e938e938e938e938e938e938e938e9392916101240190602085019080838360005b838110156125015781810151838201526020016124e9565b50505050905090810190601f16801561252e5780820380516001836020036101000a031916815260200191505b509950505050505050505050602060405180830381600087803b15801561255457600080fd5b505af1158015612568573d6000803e3d6000fd5b505050506040513d602081101561257e57600080fd5b50505050505050505050505050565b600b546001600160a01b031633146125dd576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600f546125f0908263ffffffff61265116565b600f556040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611591573d6000803e3d6000fd5b600b546001600160a01b031681565b60008282018381101561264a57600080fd5b9392505050565b60008282111561266057600080fd5b50900390565b6040518060c001604052806060815260200160008152602001600081526020016000815260200160006001600160a01b03168152602001600060048111156126aa57fe5b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106126f057805160ff191683800117855561271d565b8280016001018555821561271d579182015b8281111561271d578251825591602001919060010190612702565b50612729929150612777565b5090565b6040518060c0016040528060608152602001600081526020016000815260200160006001600160a01b031681526020016000600381111561276a57fe5b8152602001600081525090565b61159a91905b80821115612729576000815560010161277d56fea265627a7a723058200e546ac39b5535e507ab2dfeb382697613f80eb1cf6f25c1eeea6059d0901a6964736f6c63430005090032a265627a7a72305820e3be4db12b5f52aa7ebaa1ac9409c2c002ff7cd791dc2fc0d4cf1e142b97968064736f6c63430005090032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c806332a2c5d01461005c57806336fbad26146100b45780637ecdd3c5146100ce578063954db47414610116578063e4a8f18b14610245575b600080fd5b61006461024d565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156100a0578181015183820152602001610088565b505050509050019250505060405180910390f35b6100bc6102b8565b60408051918252519081900360200190f35b6100fa600480360360408110156100e457600080fd5b506001600160a01b0381351690602001356102be565b604080516001600160a01b039092168252519081900360200190f35b6100fa6004803603606081101561012c57600080fd5b81019060208101813564010000000081111561014757600080fd5b82018360208201111561015957600080fd5b8035906020019184600183028401116401000000008311171561017b57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156101ce57600080fd5b8201836020820111156101e057600080fd5b8035906020019184600183028401116401000000008311171561020257600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050913592506102f3915050565b6100bc61059c565b336000908152600360209081526040918290208054835181840281018401909452808452606093928301828280156102ae57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610290575b5050505050905090565b60005481565b600360205281600052604060002081815481106102d757fe5b6000918252602090912001546001600160a01b03169150829050565b600154600254604051600092839287928792879233926001600160a01b039283169290911690610322906105a2565b604081018590526001600160a01b0380851660608301528381166080830152821660a082015260c08082528751908201528651819060208083019160e08401918b019080838360005b8381101561038357818101518382015260200161036b565b50505050905090810190601f1680156103b05780820380516001836020036101000a031916815260200191505b5083810382528851815288516020918201918a019080838360005b838110156103e35781810151838201526020016103cb565b50505050905090810190601f1680156104105780820380516001836020036101000a031916815260200191505b5098505050505050505050604051809103906000f080158015610437573d6000803e3d6000fd5b503360008181526003602090815260408083208054600180820183559185528385200180546001600160a01b0319166001600160a01b03881617905583540183558051908101889052606081018390526080810184905260a08082528a519082015289519495507fa4802727cd9ec0d1fcbf51f260983cba0fd67d1ce8b069f1d8d2ddeb0e8adbf3948a948a948a949093919282918281019160c08401918a01908083838a5b838110156104f55781810151838201526020016104dd565b50505050905090810190601f1680156105225780820380516001836020036101000a031916815260200191505b50838103825287518152875160209182019189019080838360005b8381101561055557818101518382015260200161053d565b50505050905090810190601f1680156105825780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a1949350505050565b60005490565b612a1f806105b08339019056fe6080604052600160008181558180556003805460ff19169092179091556004553480156200002c57600080fd5b5060405162002a1f38038062002a1f833981810160405260c08110156200005257600080fd5b8101908080516401000000008111156200006b57600080fd5b820160208101848111156200007f57600080fd5b81516401000000008111828201871017156200009a57600080fd5b50509291906020018051640100000000811115620000b757600080fd5b82016020810184811115620000cb57600080fd5b8151640100000000811182820187101715620000e657600080fd5b5050602080830151604084015160608501516080909501518851949750919550939290916200011b91600c91890190620001a4565b5084516200013190600d906020880190620001a4565b5050600e92909255600b80546001600160a01b039283166001600160a01b0319918216179091556000600f556010805460068054958516959093169490941790915561010060ff19909316600117838104909216909202610100600160a81b031990911617905550504260025562000249565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620001e757805160ff191683800117855562000217565b8280016001018555821562000217579182015b8281111562000217578251825591602001919060010190620001fa565b506200022592915062000229565b5090565b6200024691905b8082111562000225576000815560010162000230565b90565b6127c680620002596000396000f3fe6080604052600436106101b75760003560e01c80637436f3dc116100ec578063c4d66de81161008a578063d63dc66111610064578063d63dc66114610d21578063dff3ad6914610d29578063e2dc35e014610ea0578063f851a44014610ecc576101b7565b8063c4d66de814610ca6578063cce7db5814610cd9578063d0cb3cd114610d0c576101b7565b806391fc17b4116100c657806391fc17b414610911578063a87430ba14610926578063a9a74bd6146109a6578063af4afe0a14610c02576101b7565b80637436f3dc1461081a57806383197ef01461082f5780638c3006c714610844576101b7565b806322dffcbb1161015957806350b594471161013357806350b594471461071e57806354fd4d501461073357806360d41290146107485780636415921d1461075d576101b7565b806322dffcbb146105b757806325a287ce1461066a5780634a79d50c14610694576101b7565b80630c3d5157116101955780630c3d5157146105215780630d0f3f5d146105485780630daded9514610578578063125ede9d1461058d576101b7565b8063013e9128146101bc57806302fb0c5e1461041357806304e15de51461043c575b600080fd5b61041160048036036101408110156101d357600080fd5b81359190810190604081016020820135600160201b8111156101f457600080fd5b82018360208201111561020657600080fd5b803590602001918460018302840111600160201b8311171561022757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b81111561027957600080fd5b82018360208201111561028b57600080fd5b803590602001918460208302840111600160201b831117156102ac57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156102fb57600080fd5b82018360208201111561030d57600080fd5b803590602001918460208302840111600160201b8311171561032e57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561037d57600080fd5b82018360208201111561038f57600080fd5b803590602001918460018302840111600160201b831117156103b057600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505082359350506001600160a01b03602083013516916040810135915060608101359060800135610efd565b005b34801561041f57600080fd5b50610428611300565b604080519115158252519081900360200190f35b34801561044857600080fd5b506104666004803603602081101561045f57600080fd5b5035611309565b6040518080602001878152602001868152602001858152602001846001600160a01b03166001600160a01b031681526020018360048111156104a457fe5b60ff168152602001828103825288818151815260200191508051906020019080838360005b838110156104e15781810151838201526020016104c9565b50505050905090810190601f16801561050e5780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390f35b34801561052d57600080fd5b506105366113e7565b60408051918252519081900360200190f35b34801561055457600080fd5b506104116004803603604081101561056b57600080fd5b50803590602001356113ed565b34801561058457600080fd5b50610536611596565b34801561059957600080fd5b50610411600480360360208110156105b057600080fd5b503561159d565b3480156105c357600080fd5b50610411600480360360408110156105da57600080fd5b810190602081018135600160201b8111156105f457600080fd5b82018360208201111561060657600080fd5b803590602001918460018302840111600160201b8311171561062757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550509135925061178c915050565b34801561067657600080fd5b506104116004803603602081101561068d57600080fd5b50356118a0565b3480156106a057600080fd5b506106a9611940565b6040805160208082528351818301528351919283929083019185019080838360005b838110156106e35781810151838201526020016106cb565b50505050905090810190601f1680156107105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561072a57600080fd5b506105366119ce565b34801561073f57600080fd5b506105366119d4565b34801561075457600080fd5b506105366119da565b34801561076957600080fd5b506104116004803603608081101561078057600080fd5b81359190810190604081016020820135600160201b8111156107a157600080fd5b8201836020820111156107b357600080fd5b803590602001918460018302840111600160201b831117156107d457600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050823593505050602001356119e0565b34801561082657600080fd5b50610536611b69565b34801561083b57600080fd5b50610411611b6f565b34801561085057600080fd5b50610859611bcd565b60408051908101849052606081018390526001600160a01b038216608082015260a08082528651908201528551819060208083019160c08401918a019080838360005b838110156108b457818101518382015260200161089c565b50505050905090810190601f1680156108e15780820380516001836020036101000a031916815260200191505b508381038252875181528751602091820191890190808383600083156104e15781810151838201526020016104c9565b34801561091d57600080fd5b506106a9611d21565b34801561093257600080fd5b506109596004803603602081101561094957600080fd5b50356001600160a01b0316611d7c565b6040805186151581526001600160a01b0386166020820152908101849052606081018390526080810182600281111561098e57fe5b60ff1681526020019550505050505060405180910390f35b3480156109b257600080fd5b5061041160048036036101208110156109ca57600080fd5b81359190810190604081016020820135600160201b8111156109eb57600080fd5b8201836020820111156109fd57600080fd5b803590602001918460018302840111600160201b83111715610a1e57600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295949360208101935035915050600160201b811115610a7057600080fd5b820183602082011115610a8257600080fd5b803590602001918460208302840111600160201b83111715610aa357600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610af257600080fd5b820183602082011115610b0457600080fd5b803590602001918460208302840111600160201b83111715610b2557600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b811115610b7457600080fd5b820183602082011115610b8657600080fd5b803590602001918460018302840111600160201b83111715610ba757600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295505082359350506001600160a01b03602083013516916040810135915060600135611db7565b348015610c0e57600080fd5b50610c2c60048036036020811015610c2557600080fd5b5035612164565b6040518080602001878152602001868152602001856001600160a01b03166001600160a01b03168152602001846003811115610c6457fe5b60ff16815260200183815260200182810382528881815181526020019150805190602001908083836000838110156104e15781810151838201526020016104c9565b348015610cb257600080fd5b5061041160048036036020811015610cc957600080fd5b50356001600160a01b0316612243565b348015610ce557600080fd5b5061041160048036036020811015610cfc57600080fd5b50356001600160a01b03166122b5565b348015610d1857600080fd5b5061053661233f565b610411612345565b348015610d3557600080fd5b506104116004803603610140811015610d4d57600080fd5b810190602081018135600160201b811115610d6757600080fd5b820183602082011115610d7957600080fd5b803590602001918460018302840111600160201b83111715610d9a57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092958435956001600160a01b03602087013581169660408101359650606081013595506080810135945060a081013582169360c08201359360e08301359093169290916101208101906101000135600160201b811115610e2c57600080fd5b820183602082011115610e3e57600080fd5b803590602001918460018302840111600160201b83111715610e5f57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061235d945050505050565b61041160048036036040811015610eb657600080fd5b506001600160a01b03813516906020013561258d565b348015610ed857600080fd5b50610ee1612629565b604080516001600160a01b039092168252519081900360200190f35b600b546001600160a01b03163314610f4d576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600060098b81548110610f5c57fe5b60009182526020822060016005909202010154915060098c81548110610f7e57fe5b906000526020600020906005020160040160149054906101000a900460ff166004811115610fa857fe5b14610ffa576040805162461bcd60e51b815260206004820152601960248201527f50726f6a656374206973206e6f7420696e206261636b6c6f6700000000000000604482015290519081900360640190fd5b80600f541015611047576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b600160098c8154811061105657fe5b906000526020600020906005020160040160146101000a81548160ff0219169083600481111561108257fe5b0217905550600f80548290039055600980548291908d9081106110a157fe5b906000526020600020906005020160020181905550600660009054906101000a90046001600160a01b03166001600160a01b031663b1e6bcbb828c8c8c8c8c8c8c8c8c6040518b63ffffffff1660e01b815260040180806020018060200180602001806020018a8152602001896001600160a01b03166001600160a01b0316815260200188815260200187815260200186815260200185810385528e818151815260200191508051906020019080838360005b8381101561116c578181015183820152602001611154565b50505050905090810190601f1680156111995780820380516001836020036101000a031916815260200191505b5085810384528d818151815260200191508051906020019060200280838360005b838110156111d25781810151838201526020016111ba565b5050505090500185810383528c818151815260200191508051906020019060200280838360005b838110156112115781810151838201526020016111f9565b5050505090500185810382528b818151815260200191508051906020019080838360005b8381101561124d578181015183820152602001611235565b50505050905090810190601f16801561127a5780820380516001836020036101000a031916815260200191505b509d50505050505050505050505050506020604051808303818588803b1580156112a357600080fd5b505af11580156112b7573d6000803e3d6000fd5b50505050506040513d60208110156112ce57600080fd5b5051600980548d9081106112de57fe5b9060005260206000209060050201600301819055505050505050505050505050565b60035460ff1681565b6009818154811061131657fe5b60009182526020918290206005919091020180546040805160026001841615610100026000190190931692909204601f8101859004850283018501909152808252919350918391908301828280156113af5780601f10611384576101008083540402835291602001916113af565b820191906000526020600020905b81548152906001019060200180831161139257829003601f168201915b50505050600183015460028401546003850154600490950154939491939092506001600160a01b03811690600160a01b900460ff1686565b60025481565b600b546001600160a01b0316331461143d576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b60006008838154811061144c57fe5b906000526020600020906005020160030160149054906101000a900460ff16600381111561147657fe5b1461148057600080fd5b80600f5410156114cd576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b6001600883815481106114dc57fe5b906000526020600020906005020160030160146101000a81548160ff0219169083600381111561150857fe5b0217905550600f80548290039055600880548291908490811061152757fe5b9060005260206000209060050201600201819055506008828154811061154957fe5b600091825260208220600360059092020101546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015611591573d6000803e3d6000fd5b505050565b6008545b90565b600b546001600160a01b031633146115ed576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b6000600882815481106115fc57fe5b906000526020600020906005020160040154905060006008838154811061161f57fe5b6000918252602082206001600590920201015491506008848154811061164157fe5b906000526020600020906005020160030160149054906101000a900460ff16600381111561166b57fe5b1461167557600080fd5b80600f5410156116c2576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b6002600884815481106116d157fe5b906000526020600020906005020160030160146101000a81548160ff021916908360038111156116fd57fe5b0217905550600f80548290039055600880548291908590811061171c57fe5b9060005260206000209060050201600201819055506008838154811061173e57fe5b600091825260208220600360059092020101546040516001600160a01b039091169183156108fc02918491818181858888f19350505050158015611786573d6000803e3d6000fd5b50505050565b611794612666565b6040518060c001604052808481526020018381526020016000815260200160008152602001336001600160a01b03168152602001600060048111156117d557fe5b90526009805460018101808355600092909252825180519394509192849260059092027f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af019161182a918391602001906126af565b506020820151600182015560408201516002820155606082015160038201556080820151600480830180546001600160a01b0319166001600160a01b039093169290921780835560a0850151929160ff60a01b1990911690600160a01b90849081111561189357fe5b0217905550505050505050565b6007546040805163025d1b6560e61b81526004810184905290516001600160a01b0390921691639746d940916024808201926020929091908290030181600087803b1580156118ee57600080fd5b505af1158015611902573d6000803e3d6000fd5b505050506040513d602081101561191857600080fd5b5051600880548390811061192857fe5b90600052602060002090600502016004018190555050565b600d805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156119c65780601f1061199b576101008083540402835291602001916119c6565b820191906000526020600020905b8154815290600101906020018083116119a957829003601f168201915b505050505081565b60095490565b60005481565b60045481565b6000600985815481106119ef57fe5b60009182526020909120600360059092020101549050600160098681548110611a1457fe5b906000526020600020906005020160040160149054906101000a900460ff166004811115611a3e57fe5b14611a4857600080fd5b8260098681548110611a5657fe5b906000526020600020906005020160020160008282540192505081905550600660009054906101000a90046001600160a01b03166001600160a01b031663432326a984868487876040518663ffffffff1660e01b81526004018080602001858152602001848152602001838152602001828103825286818151815260200191508051906020019080838360005b83811015611afb578181015183820152602001611ae3565b50505050905090810190601f168015611b285780820380516001836020036101000a031916815260200191505b50955050505050506000604051808303818588803b158015611b4957600080fd5b505af1158015611b5d573d6000803e3d6000fd5b50505050505050505050565b60015481565b600b546001600160a01b03163314611bbf576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600b546001600160a01b0316ff5b600e54600f54600b54600c8054604080516020601f600260001960018716156101000201909516949094049384018190048102820181019092528281526060968796600096879687969095600d956001600160a01b0390931692918791830182828015611c7b5780601f10611c5057610100808354040283529160200191611c7b565b820191906000526020600020905b815481529060010190602001808311611c5e57829003601f168201915b5050875460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152959a5089945092508401905082828015611d095780601f10611cde57610100808354040283529160200191611d09565b820191906000526020600020905b815481529060010190602001808311611cec57829003601f168201915b50989e939d50959b5093995091975095505050505050565b600c805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156119c65780601f1061199b576101008083540402835291602001916119c6565b600a60205260009081526040902080546001820154600283015460039093015460ff808416946101009094046001600160a01b031693911685565b600b546001600160a01b03163314611e07576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600060098a81548110611e1657fe5b60009182526020822060016005909202010154915060098b81548110611e3857fe5b906000526020600020906005020160040160149054906101000a900460ff166004811115611e6257fe5b14611e6c57600080fd5b80600f541015611eb9576040805162461bcd60e51b815260206004820152601360248201527246756e6473206e6f7420617661696c61626c6560681b604482015290519081900360640190fd5b600160098b81548110611ec857fe5b906000526020600020906005020160040160146101000a81548160ff02191690836004811115611ef457fe5b0217905550600f80548290039055600980548291908c908110611f1357fe5b906000526020600020906005020160020181905550600660009054906101000a90046001600160a01b03166001600160a01b031663df4015fc8a8a8a8a8a8a8a8a6040518963ffffffff1660e01b81526004018080602001806020018060200180602001898152602001886001600160a01b03166001600160a01b0316815260200187815260200186815260200185810385528d818151815260200191508051906020019080838360005b83811015611fd6578181015183820152602001611fbe565b50505050905090810190601f1680156120035780820380516001836020036101000a031916815260200191505b5085810384528c5181528c51602091820191808f01910280838360005b83811015612038578181015183820152602001612020565b5050505090500185810383528b818151815260200191508051906020019060200280838360005b8381101561207757818101518382015260200161205f565b5050505090500185810382528a818151815260200191508051906020019080838360005b838110156120b357818101518382015260200161209b565b50505050905090810190601f1680156120e05780820380516001836020036101000a031916815260200191505b509c50505050505050505050505050602060405180830381600087803b15801561210957600080fd5b505af115801561211d573d6000803e3d6000fd5b505050506040513d602081101561213357600080fd5b5051600980548c90811061214357fe5b90600052602060002090600502016003018190555050505050505050505050565b6008818154811061217157fe5b60009182526020918290206005919091020180546040805160026001841615610100026000190190931692909204601f81018590048502830185019091528082529193509183919083018282801561220a5780601f106121df5761010080835404028352916020019161220a565b820191906000526020600020905b8154815290600101906020018083116121ed57829003601f168201915b50505050600183015460028401546003850154600490950154939491939092506001600160a01b03821691600160a01b900460ff169086565b600b546001600160a01b03163314612293576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b600b546001600160a01b03163314612305576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b6040516001600160a01b03821690303180156108fc02916000818181858888f1935050505015801561233b573d6000803e3d6000fd5b5050565b600f5481565b600f54612358903463ffffffff61263816565b600f55565b61236561272d565b6040805160c0810182528c8152602081018c90526000918101829052336060820152906080820190815260006020918201819052600880546001810180835591909252835180519495509093859360059093027ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee301926123e99284929101906126af565b5060208201516001820155604082015160028201556060820151600380830180546001600160a01b0319166001600160a01b03909316929092178083556080850151929160ff60a01b1990911690600160a01b90849081111561244857fe5b021790555060a0919091015160049182015560075460405163590f940b60e01b81526001600160a01b038d8116938201938452602482018d9052604482018c9052606482018b9052898116608483015260a4820189905287811660c483015261010060e483019081528751610104840152875191909316945063590f940b938e938e938e938e938e938e938e938e9392916101240190602085019080838360005b838110156125015781810151838201526020016124e9565b50505050905090810190601f16801561252e5780820380516001836020036101000a031916815260200191505b509950505050505050505050602060405180830381600087803b15801561255457600080fd5b505af1158015612568573d6000803e3d6000fd5b505050506040513d602081101561257e57600080fd5b50505050505050505050505050565b600b546001600160a01b031633146125dd576040805162461bcd60e51b815260206004820152600e60248201526d139bdd08105d5d1a1bdc9a5cd95960921b604482015290519081900360640190fd5b600f546125f0908263ffffffff61265116565b600f556040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015611591573d6000803e3d6000fd5b600b546001600160a01b031681565b60008282018381101561264a57600080fd5b9392505050565b60008282111561266057600080fd5b50900390565b6040518060c001604052806060815260200160008152602001600081526020016000815260200160006001600160a01b03168152602001600060048111156126aa57fe5b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106126f057805160ff191683800117855561271d565b8280016001018555821561271d579182015b8281111561271d578251825591602001919060010190612702565b50612729929150612777565b5090565b6040518060c0016040528060608152602001600081526020016000815260200160006001600160a01b031681526020016000600381111561276a57fe5b8152602001600081525090565b61159a91905b80821115612729576000815560010161277d56fea265627a7a723058200e546ac39b5535e507ab2dfeb382697613f80eb1cf6f25c1eeea6059d0901a6964736f6c63430005090032a265627a7a72305820e3be4db12b5f52aa7ebaa1ac9409c2c002ff7cd791dc2fc0d4cf1e142b97968064736f6c63430005090032", - "sourceMap": "68:1222:1:-;;;131:1;104:28;;290:150;8:9:-1;5:2;;;30:1;27;20:12;5:2;290:150:1;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;290:150:1;;;;;;;365:13;:30;;-1:-1:-1;;;;;365:30:1;;;-1:-1:-1;;;;;;365:30:1;;;;;;;402:12;:28;;;;;;;;;;;;;;68:1222;;;;;;", - "deployedSourceMap": "68:1222:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;68:1222:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1085:109;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1085:109:1;;;;;;;;;;;;;;;;;104:28;;;:::i;:::-;;;;;;;;;;;;;;;;238:45;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;238:45:1;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;238:45:1;;;;;;;;;;;;;;629:450;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;629:450:1;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;629:450:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;629:450:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;629:450:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;629:450:1;;;;;;;;-1:-1:-1;629:450:1;;-1:-1:-1;;21:11;5:28;;2:2;;;46:1;43;36:12;2:2;629:450:1;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;629:450:1;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;629:450:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;629:450:1;;-1:-1:-1;;629:450:1;;;-1:-1:-1;629:450:1;;-1:-1:-1;;629:450:1:i;1200:87::-;;;:::i;1085:109::-;1177:10;1168:20;;;;:8;:20;;;;;;;;;1161:27;;;;;;;;;;;;;;;;;1136:16;;1161:27;;;1168:20;1161:27;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1161:27:1;;;;;;;;;;;;;;;;;;;;;;;1085:109;:::o;104:28::-;;;;:::o;238:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;238:45:1;;-1:-1:-1;238:45:1;;-1:-1:-1;238:45:1:o;629:450::-;860:13;;882:12;;770:131;;727:7;;;;797:6;;812:5;;826:6;;841:10;;-1:-1:-1;;;;;860:13:1;;;;882:12;;;;770:131;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;770:131:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;770:131:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;770:131:1;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;770:131:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;919:10:1;910:20;;;;:8;:20;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;910:43:1;;;;;;;;;-1:-1:-1;;;;;;910:43:1;-1:-1:-1;;;;;910:43:1;;;;;960:17;;;;;991:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;910:43;;-1:-1:-1;991:50:1;;;;1012:5;;991:50;;910:20;;919:10;;991:50;;;;;;;;;;;;;;;;910:20;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;991:50:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;991:50:1;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;991:50:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1065:7;629:450;-1:-1:-1;;;;629:450:1:o;1200:87::-;1249:4;1269:12;1200:87;:::o;68:1222::-;;;;;;;;:::o", - "source": "pragma solidity >=0.5.0 < 0.6.0;\r\nimport './GitFundedGrant.sol';\r\n\r\ncontract GitFundedGrantFactory {\r\n uint public projectCount = 0;\r\n address bountyAddress; // This is actually BountiesMetaTxRelayer address\r\n address tokenAddress;\r\n mapping(address => address[]) public projects;\r\n\r\n constructor(address _bountyAddress, address _tokenAddress) public {\r\n\r\n bountyAddress = _bountyAddress;\r\n tokenAddress = _tokenAddress;\r\n\r\n\r\n }\r\n\r\n\r\n event projectAdded (\r\n string repoId,\r\n string title,\r\n uint budget, // In dollars\r\n uint availableFund, // In Ether\r\n address admin\r\n\r\n );\r\n\r\n function newProject(\r\n string memory repoId, string memory title, uint budget) public returns (address) {\r\n\r\n GitFundedGrant project = new GitFundedGrant(\r\n repoId,\r\n title,\r\n budget,\r\n msg.sender,\r\n bountyAddress,\r\n tokenAddress\r\n );\r\n\r\n projects[msg.sender].push(address(project));\r\n projectCount += 1;\r\n\r\n emit projectAdded(repoId, title, budget, 0, msg.sender);\r\n\r\n return address(project);\r\n }\r\n\r\n function getContractAddress() public view returns (address[] memory) {\r\n return projects[msg.sender];\r\n }\r\n\r\n function getProjectsCount() public view returns (uint) {\r\n return projectCount;\r\n }\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\GitFundedGrantFactory.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/GitFundedGrantFactory.sol", - "exportedSymbols": { - "GitFundedGrantFactory": [ - 858 - ] - }, - "id": 859, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 744, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:1" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/GitFundedGrant.sol", - "file": "./GitFundedGrant.sol", - "id": 745, - "nodeType": "ImportDirective", - "scope": 859, - "sourceUnit": 743, - "src": "34:30:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [ - 742 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 858, - "linearizedBaseContracts": [ - 858 - ], - "name": "GitFundedGrantFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 748, - "name": "projectCount", - "nodeType": "VariableDeclaration", - "scope": 858, - "src": "104:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 746, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "104:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 747, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "131:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 750, - "name": "bountyAddress", - "nodeType": "VariableDeclaration", - "scope": 858, - "src": "137:21:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 749, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "137:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 752, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 858, - "src": "213:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 751, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "213:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 757, - "name": "projects", - "nodeType": "VariableDeclaration", - "scope": 858, - "src": "238:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(address => address[])" - }, - "typeName": { - "id": 756, - "keyType": { - "id": 753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "246:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "238:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(address => address[])" - }, - "valueType": { - "baseType": { - "id": 754, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "257:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 755, - "length": null, - "nodeType": "ArrayTypeName", - "src": "257:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 772, - "nodeType": "Block", - "src": "356:84:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 766, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 764, - "name": "bountyAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 750, - "src": "365:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 765, - "name": "_bountyAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 759, - "src": "381:14:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "365:30:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 767, - "nodeType": "ExpressionStatement", - "src": "365:30:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 768, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 752, - "src": "402:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 769, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 761, - "src": "417:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "402:28:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 771, - "nodeType": "ExpressionStatement", - "src": "402:28:1" - } - ] - }, - "documentation": null, - "id": 773, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 762, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 759, - "name": "_bountyAddress", - "nodeType": "VariableDeclaration", - "scope": 773, - "src": "302:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 758, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "302:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 761, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 773, - "src": "326:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 760, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "326:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "301:47:1" - }, - "returnParameters": { - "id": 763, - "nodeType": "ParameterList", - "parameters": [], - "src": "356:0:1" - }, - "scope": 858, - "src": "290:150:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 785, - "name": "projectAdded", - "nodeType": "EventDefinition", - "parameters": { - "id": 784, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 775, - "indexed": false, - "name": "repoId", - "nodeType": "VariableDeclaration", - "scope": 785, - "src": "478:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 774, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "478:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 777, - "indexed": false, - "name": "title", - "nodeType": "VariableDeclaration", - "scope": 785, - "src": "502:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 776, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "502:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 779, - "indexed": false, - "name": "budget", - "nodeType": "VariableDeclaration", - "scope": 785, - "src": "525:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 778, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "525:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 781, - "indexed": false, - "name": "availableFund", - "nodeType": "VariableDeclaration", - "scope": 785, - "src": "561:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 780, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "561:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 783, - "indexed": false, - "name": "admin", - "nodeType": "VariableDeclaration", - "scope": 785, - "src": "602:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 782, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "602:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "467:155:1" - }, - "src": "448:175:1" - }, - { - "body": { - "id": 836, - "nodeType": "Block", - "src": "736:343:1", - "statements": [ - { - "assignments": [ - 797 - ], - "declarations": [ - { - "constant": false, - "id": 797, - "name": "project", - "nodeType": "VariableDeclaration", - "scope": 836, - "src": "745:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GitFundedGrant_$742", - "typeString": "contract GitFundedGrant" - }, - "typeName": { - "contractScope": null, - "id": 796, - "name": "GitFundedGrant", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 742, - "src": "745:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GitFundedGrant_$742", - "typeString": "contract GitFundedGrant" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 808, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 800, - "name": "repoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 787, - "src": "797:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 801, - "name": "title", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 789, - "src": "812:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 802, - "name": "budget", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 791, - "src": "826:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 803, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "841:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 804, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "841:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 805, - "name": "bountyAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 750, - "src": "860:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 806, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 752, - "src": "882:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "770:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_payable_$_t_address_$_t_address_$returns$_t_contract$_GitFundedGrant_$742_$", - "typeString": "function (string memory,string memory,uint256,address payable,address,address) returns (contract GitFundedGrant)" - }, - "typeName": { - "contractScope": null, - "id": 798, - "name": "GitFundedGrant", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 742, - "src": "774:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GitFundedGrant_$742", - "typeString": "contract GitFundedGrant" - } - } - }, - "id": 807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "770:131:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GitFundedGrant_$742", - "typeString": "contract GitFundedGrant" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "745:156:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 815, - "name": "project", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "944:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GitFundedGrant_$742", - "typeString": "contract GitFundedGrant" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_GitFundedGrant_$742", - "typeString": "contract GitFundedGrant" - } - ], - "id": 814, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "936:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 816, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "936:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 809, - "name": "projects", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "910:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(address => address[] storage ref)" - } - }, - "id": 812, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 810, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "919:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "919:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "910:20:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 813, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "910:25:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "910:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 818, - "nodeType": "ExpressionStatement", - "src": "910:43:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 819, - "name": "projectCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 748, - "src": "960:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "976:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "960:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "960:17:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 824, - "name": "repoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 787, - "src": "1004:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 825, - "name": "title", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 789, - "src": "1012:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 826, - "name": "budget", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 791, - "src": "1019:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 827, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1027:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 828, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "1030:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1030:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 823, - "name": "projectAdded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 785, - "src": "991:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (string memory,string memory,uint256,uint256,address)" - } - }, - "id": 830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "991:50:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 831, - "nodeType": "EmitStatement", - "src": "986:55:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 833, - "name": "project", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "1065:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GitFundedGrant_$742", - "typeString": "contract GitFundedGrant" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_GitFundedGrant_$742", - "typeString": "contract GitFundedGrant" - } - ], - "id": 832, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1057:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 834, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1057:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 795, - "id": 835, - "nodeType": "Return", - "src": "1050:23:1" - } - ] - }, - "documentation": null, - "id": 837, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "newProject", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 792, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 787, - "name": "repoId", - "nodeType": "VariableDeclaration", - "scope": 837, - "src": "655:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 786, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "655:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 789, - "name": "title", - "nodeType": "VariableDeclaration", - "scope": 837, - "src": "677:19:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 788, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "677:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 791, - "name": "budget", - "nodeType": "VariableDeclaration", - "scope": 837, - "src": "698:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 790, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "698:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "648:62:1" - }, - "returnParameters": { - "id": 795, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 794, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 837, - "src": "727:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 793, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "726:9:1" - }, - "scope": 858, - "src": "629:450:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 848, - "nodeType": "Block", - "src": "1154:40:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 843, - "name": "projects", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "1168:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(address => address[] storage ref)" - } - }, - "id": 846, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 844, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "1177:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1177:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1168:20:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 842, - "id": 847, - "nodeType": "Return", - "src": "1161:27:1" - } - ] - }, - "documentation": null, - "id": 849, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getContractAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 838, - "nodeType": "ParameterList", - "parameters": [], - "src": "1112:2:1" - }, - "returnParameters": { - "id": 842, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 841, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 849, - "src": "1136:16:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 839, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1136:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 840, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1136:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1135:18:1" - }, - "scope": 858, - "src": "1085:109:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 856, - "nodeType": "Block", - "src": "1255:32:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 854, - "name": "projectCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 748, - "src": "1269:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 853, - "id": 855, - "nodeType": "Return", - "src": "1262:19:1" - } - ] - }, - "documentation": null, - "id": 857, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getProjectsCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 850, - "nodeType": "ParameterList", - "parameters": [], - "src": "1225:2:1" - }, - "returnParameters": { - "id": 853, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 852, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 857, - "src": "1249:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 851, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1249:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1248:6:1" - }, - "scope": 858, - "src": "1200:87:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 859, - "src": "68:1222:1" - } - ], - "src": "0:1292:1" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/GitFundedGrantFactory.sol", - "exportedSymbols": { - "GitFundedGrantFactory": [ - 858 - ] - }, - "id": 859, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 744, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:1" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/GitFundedGrant.sol", - "file": "./GitFundedGrant.sol", - "id": 745, - "nodeType": "ImportDirective", - "scope": 859, - "sourceUnit": 743, - "src": "34:30:1", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [ - 742 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 858, - "linearizedBaseContracts": [ - 858 - ], - "name": "GitFundedGrantFactory", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 748, - "name": "projectCount", - "nodeType": "VariableDeclaration", - "scope": 858, - "src": "104:28:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 746, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "104:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 747, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "131:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 750, - "name": "bountyAddress", - "nodeType": "VariableDeclaration", - "scope": 858, - "src": "137:21:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 749, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "137:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 752, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 858, - "src": "213:20:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 751, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "213:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 757, - "name": "projects", - "nodeType": "VariableDeclaration", - "scope": 858, - "src": "238:45:1", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(address => address[])" - }, - "typeName": { - "id": 756, - "keyType": { - "id": 753, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "246:7:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "238:29:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(address => address[])" - }, - "valueType": { - "baseType": { - "id": 754, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "257:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 755, - "length": null, - "nodeType": "ArrayTypeName", - "src": "257:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 772, - "nodeType": "Block", - "src": "356:84:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 766, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 764, - "name": "bountyAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 750, - "src": "365:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 765, - "name": "_bountyAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 759, - "src": "381:14:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "365:30:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 767, - "nodeType": "ExpressionStatement", - "src": "365:30:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 770, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 768, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 752, - "src": "402:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 769, - "name": "_tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 761, - "src": "417:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "402:28:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 771, - "nodeType": "ExpressionStatement", - "src": "402:28:1" - } - ] - }, - "documentation": null, - "id": 773, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 762, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 759, - "name": "_bountyAddress", - "nodeType": "VariableDeclaration", - "scope": 773, - "src": "302:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 758, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "302:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 761, - "name": "_tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 773, - "src": "326:21:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 760, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "326:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "301:47:1" - }, - "returnParameters": { - "id": 763, - "nodeType": "ParameterList", - "parameters": [], - "src": "356:0:1" - }, - "scope": 858, - "src": "290:150:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 785, - "name": "projectAdded", - "nodeType": "EventDefinition", - "parameters": { - "id": 784, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 775, - "indexed": false, - "name": "repoId", - "nodeType": "VariableDeclaration", - "scope": 785, - "src": "478:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 774, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "478:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 777, - "indexed": false, - "name": "title", - "nodeType": "VariableDeclaration", - "scope": 785, - "src": "502:12:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 776, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "502:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 779, - "indexed": false, - "name": "budget", - "nodeType": "VariableDeclaration", - "scope": 785, - "src": "525:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 778, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "525:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 781, - "indexed": false, - "name": "availableFund", - "nodeType": "VariableDeclaration", - "scope": 785, - "src": "561:18:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 780, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "561:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 783, - "indexed": false, - "name": "admin", - "nodeType": "VariableDeclaration", - "scope": 785, - "src": "602:13:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 782, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "602:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "467:155:1" - }, - "src": "448:175:1" - }, - { - "body": { - "id": 836, - "nodeType": "Block", - "src": "736:343:1", - "statements": [ - { - "assignments": [ - 797 - ], - "declarations": [ - { - "constant": false, - "id": 797, - "name": "project", - "nodeType": "VariableDeclaration", - "scope": 836, - "src": "745:22:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GitFundedGrant_$742", - "typeString": "contract GitFundedGrant" - }, - "typeName": { - "contractScope": null, - "id": 796, - "name": "GitFundedGrant", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 742, - "src": "745:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GitFundedGrant_$742", - "typeString": "contract GitFundedGrant" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 808, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 800, - "name": "repoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 787, - "src": "797:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 801, - "name": "title", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 789, - "src": "812:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 802, - "name": "budget", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 791, - "src": "826:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 803, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "841:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 804, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "841:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 805, - "name": "bountyAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 750, - "src": "860:13:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 806, - "name": "tokenAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 752, - "src": "882:12:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "770:18:1", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_payable_$_t_address_$_t_address_$returns$_t_contract$_GitFundedGrant_$742_$", - "typeString": "function (string memory,string memory,uint256,address payable,address,address) returns (contract GitFundedGrant)" - }, - "typeName": { - "contractScope": null, - "id": 798, - "name": "GitFundedGrant", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 742, - "src": "774:14:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GitFundedGrant_$742", - "typeString": "contract GitFundedGrant" - } - } - }, - "id": 807, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "770:131:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GitFundedGrant_$742", - "typeString": "contract GitFundedGrant" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "745:156:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 815, - "name": "project", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "944:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GitFundedGrant_$742", - "typeString": "contract GitFundedGrant" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_GitFundedGrant_$742", - "typeString": "contract GitFundedGrant" - } - ], - "id": 814, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "936:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 816, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "936:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 809, - "name": "projects", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "910:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(address => address[] storage ref)" - } - }, - "id": 812, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 810, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "919:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "919:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "910:20:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 813, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "910:25:1", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 817, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "910:43:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 818, - "nodeType": "ExpressionStatement", - "src": "910:43:1" - }, - { - "expression": { - "argumentTypes": null, - "id": 821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 819, - "name": "projectCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 748, - "src": "960:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 820, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "976:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "960:17:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 822, - "nodeType": "ExpressionStatement", - "src": "960:17:1" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 824, - "name": "repoId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 787, - "src": "1004:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 825, - "name": "title", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 789, - "src": "1012:5:1", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 826, - "name": "budget", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 791, - "src": "1019:6:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 827, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1027:1:1", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 828, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "1030:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 829, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1030:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 823, - "name": "projectAdded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 785, - "src": "991:12:1", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (string memory,string memory,uint256,uint256,address)" - } - }, - "id": 830, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "991:50:1", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 831, - "nodeType": "EmitStatement", - "src": "986:55:1" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 833, - "name": "project", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 797, - "src": "1065:7:1", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GitFundedGrant_$742", - "typeString": "contract GitFundedGrant" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_GitFundedGrant_$742", - "typeString": "contract GitFundedGrant" - } - ], - "id": 832, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1057:7:1", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 834, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1057:16:1", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 795, - "id": 835, - "nodeType": "Return", - "src": "1050:23:1" - } - ] - }, - "documentation": null, - "id": 837, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "newProject", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 792, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 787, - "name": "repoId", - "nodeType": "VariableDeclaration", - "scope": 837, - "src": "655:20:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 786, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "655:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 789, - "name": "title", - "nodeType": "VariableDeclaration", - "scope": 837, - "src": "677:19:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 788, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "677:6:1", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 791, - "name": "budget", - "nodeType": "VariableDeclaration", - "scope": 837, - "src": "698:11:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 790, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "698:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "648:62:1" - }, - "returnParameters": { - "id": 795, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 794, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 837, - "src": "727:7:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 793, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "727:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "726:9:1" - }, - "scope": 858, - "src": "629:450:1", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 848, - "nodeType": "Block", - "src": "1154:40:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 843, - "name": "projects", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 757, - "src": "1168:8:1", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$", - "typeString": "mapping(address => address[] storage ref)" - } - }, - "id": 846, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 844, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "1177:3:1", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1177:10:1", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "1168:20:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "functionReturnParameters": 842, - "id": 847, - "nodeType": "Return", - "src": "1161:27:1" - } - ] - }, - "documentation": null, - "id": 849, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getContractAddress", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 838, - "nodeType": "ParameterList", - "parameters": [], - "src": "1112:2:1" - }, - "returnParameters": { - "id": 842, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 841, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 849, - "src": "1136:16:1", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 839, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1136:7:1", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 840, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1136:9:1", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1135:18:1" - }, - "scope": 858, - "src": "1085:109:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 856, - "nodeType": "Block", - "src": "1255:32:1", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 854, - "name": "projectCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 748, - "src": "1269:12:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 853, - "id": 855, - "nodeType": "Return", - "src": "1262:19:1" - } - ] - }, - "documentation": null, - "id": 857, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getProjectsCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 850, - "nodeType": "ParameterList", - "parameters": [], - "src": "1225:2:1" - }, - "returnParameters": { - "id": 853, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 852, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 857, - "src": "1249:4:1", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 851, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1249:4:1", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1248:6:1" - }, - "scope": 858, - "src": "1200:87:1", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 859, - "src": "68:1222:1" - } - ], - "src": "0:1292:1" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": { - "10": { - "events": { - "0xa4802727cd9ec0d1fcbf51f260983cba0fd67d1ce8b069f1d8d2ddeb0e8adbf3": { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "repoId", - "type": "string" - }, - { - "indexed": false, - "name": "title", - "type": "string" - }, - { - "indexed": false, - "name": "budget", - "type": "uint256" - }, - { - "indexed": false, - "name": "availableFund", - "type": "uint256" - }, - { - "indexed": false, - "name": "admin", - "type": "address" - } - ], - "name": "projectAdded", - "type": "event" - } - }, - "links": {}, - "address": "0x984c870d6DFCdCF033Ef2d5cE13E0Ff17e8EcA78", - "transactionHash": "0x549e1dd064b6d7391497e4ea3fa31273e933a234341b9194a1b00ebd30d488ee" - } - }, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:30.969Z", - "networkType": "ethereum", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/Governance.json b/src/contracts/Governance.json deleted file mode 100644 index a7c6281..0000000 --- a/src/contracts/Governance.json +++ /dev/null @@ -1,34664 +0,0 @@ -{ - "contractName": "Governance", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "proposals", - "outputs": [ - { - "name": "applicant", - "type": "address" - }, - { - "name": "proposer", - "type": "address" - }, - { - "name": "sponsor", - "type": "address" - }, - { - "name": "sharesRequested", - "type": "uint256" - }, - { - "name": "lootRequested", - "type": "uint256" - }, - { - "name": "tributeOffered", - "type": "uint256" - }, - { - "name": "tributeToken", - "type": "address" - }, - { - "name": "paymentRequested", - "type": "uint256" - }, - { - "name": "paymentToken", - "type": "address" - }, - { - "name": "startingPeriod", - "type": "uint256" - }, - { - "name": "yesVotes", - "type": "uint256" - }, - { - "name": "noVotes", - "type": "uint256" - }, - { - "name": "details", - "type": "string" - }, - { - "name": "maxTotalSharesAndLootAtYesVote", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "members", - "outputs": [ - { - "name": "delegateKey", - "type": "address" - }, - { - "name": "shares", - "type": "uint256" - }, - { - "name": "exists", - "type": "bool" - }, - { - "name": "highestIndexYesVote", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "approvedTokens", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "emergencyProcessingWait", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalShares", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "proposalQueue", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "memberAddressByDelegateKey", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "emergencyWarning", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "gracePeriodLength", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "result", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "summoningTime", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "votingPeriodLength", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "proposalDeposit", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "guildBank", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "lastEmergencyProposalIndex", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "periodDuration", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "depositToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "proposalCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "admin", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_admin", - "type": "address" - }, - { - "name": "_approvedTokens", - "type": "address[1]" - }, - { - "name": "_periodDuration", - "type": "uint256" - }, - { - "name": "_votingPeriodLength", - "type": "uint256" - }, - { - "name": "_gracePeriodLength", - "type": "uint256" - }, - { - "name": "_emergencyProcessingWait", - "type": "uint256" - }, - { - "name": "_bailoutWait", - "type": "uint256" - }, - { - "name": "_proposalDeposit", - "type": "uint256" - }, - { - "name": "_dilutionBound", - "type": "uint256" - }, - { - "name": "_processingReward", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "proposalIndex", - "type": "uint256" - }, - { - "indexed": true, - "name": "delegateKey", - "type": "address" - }, - { - "indexed": true, - "name": "memberAddress", - "type": "address" - }, - { - "indexed": true, - "name": "applicant", - "type": "address" - }, - { - "indexed": false, - "name": "sharesRequested", - "type": "uint256" - }, - { - "indexed": false, - "name": "lootRequested", - "type": "uint256" - }, - { - "indexed": false, - "name": "tributeOffered", - "type": "uint256" - }, - { - "indexed": false, - "name": "tributeToken", - "type": "address" - }, - { - "indexed": false, - "name": "paymentRequested", - "type": "uint256" - }, - { - "indexed": false, - "name": "paymentToken", - "type": "address" - } - ], - "name": "SubmitProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "delegateKey", - "type": "address" - }, - { - "indexed": true, - "name": "memberAddress", - "type": "address" - }, - { - "indexed": false, - "name": "proposalIndex", - "type": "uint256" - }, - { - "indexed": false, - "name": "proposalQueueIndex", - "type": "uint256" - }, - { - "indexed": false, - "name": "startingPeriod", - "type": "uint256" - } - ], - "name": "SponsorProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "proposalIndex", - "type": "uint256" - }, - { - "indexed": true, - "name": "delegateKey", - "type": "address" - }, - { - "indexed": true, - "name": "memberAddress", - "type": "address" - }, - { - "indexed": false, - "name": "uintVote", - "type": "uint8" - } - ], - "name": "SubmitVote", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "proposalIndex", - "type": "uint256" - }, - { - "indexed": true, - "name": "proposalId", - "type": "uint256" - }, - { - "indexed": false, - "name": "didPass", - "type": "bool" - } - ], - "name": "ProcessProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "memberAddress", - "type": "address" - }, - { - "indexed": false, - "name": "sharesToBurn", - "type": "uint256" - }, - { - "indexed": false, - "name": "lootToBurn", - "type": "uint256" - } - ], - "name": "Ragequit", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "proposalIndex", - "type": "uint256" - }, - { - "indexed": false, - "name": "applicantAddress", - "type": "address" - } - ], - "name": "CancelProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "memberAddress", - "type": "address" - }, - { - "indexed": false, - "name": "newDelegateKey", - "type": "address" - } - ], - "name": "UpdateDelegateKey", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "admin", - "type": "address" - }, - { - "indexed": false, - "name": "shares", - "type": "uint256" - } - ], - "name": "SummonComplete", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "applicant", - "type": "address" - }, - { - "name": "sharesRequested", - "type": "uint256" - }, - { - "name": "lootRequested", - "type": "uint256" - }, - { - "name": "tributeOffered", - "type": "uint256" - }, - { - "name": "tributeToken", - "type": "address" - }, - { - "name": "paymentRequested", - "type": "uint256" - }, - { - "name": "paymentToken", - "type": "address" - }, - { - "name": "details", - "type": "string" - } - ], - "name": "submitProposal", - "outputs": [ - { - "name": "proposalId", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "proposalId", - "type": "uint256" - } - ], - "name": "sponsorProposal", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "proposalIndex", - "type": "uint256" - }, - { - "name": "uintVote", - "type": "uint8" - } - ], - "name": "submitVote", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "proposalIndex", - "type": "uint256" - } - ], - "name": "processProposal", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getCurrentPeriod", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getProposalQueueLength", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "proposalId", - "type": "uint256" - } - ], - "name": "getProposalFlags", - "outputs": [ - { - "name": "", - "type": "bool[6]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "highestIndexYesVote", - "type": "uint256" - } - ], - "name": "canRagequit", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "startingPeriod", - "type": "uint256" - } - ], - "name": "hasVotingPeriodExpired", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "memberAddress", - "type": "address" - }, - { - "name": "proposalIndex", - "type": "uint256" - } - ], - "name": "getMemberProposalVote", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getProposal", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getResult", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"name\":\"applicant\",\"type\":\"address\"},{\"name\":\"proposer\",\"type\":\"address\"},{\"name\":\"sponsor\",\"type\":\"address\"},{\"name\":\"sharesRequested\",\"type\":\"uint256\"},{\"name\":\"lootRequested\",\"type\":\"uint256\"},{\"name\":\"tributeOffered\",\"type\":\"uint256\"},{\"name\":\"tributeToken\",\"type\":\"address\"},{\"name\":\"paymentRequested\",\"type\":\"uint256\"},{\"name\":\"paymentToken\",\"type\":\"address\"},{\"name\":\"startingPeriod\",\"type\":\"uint256\"},{\"name\":\"yesVotes\",\"type\":\"uint256\"},{\"name\":\"noVotes\",\"type\":\"uint256\"},{\"name\":\"details\",\"type\":\"string\"},{\"name\":\"maxTotalSharesAndLootAtYesVote\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"memberAddress\",\"type\":\"address\"},{\"name\":\"proposalIndex\",\"type\":\"uint256\"}],\"name\":\"getMemberProposalVote\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCurrentPeriod\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"members\",\"outputs\":[{\"name\":\"delegateKey\",\"type\":\"address\"},{\"name\":\"shares\",\"type\":\"uint256\"},{\"name\":\"exists\",\"type\":\"bool\"},{\"name\":\"highestIndexYesVote\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"approvedTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"emergencyProcessingWait\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalShares\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposalQueue\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"memberAddressByDelegateKey\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"emergencyWarning\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"applicant\",\"type\":\"address\"},{\"name\":\"sharesRequested\",\"type\":\"uint256\"},{\"name\":\"lootRequested\",\"type\":\"uint256\"},{\"name\":\"tributeOffered\",\"type\":\"uint256\"},{\"name\":\"tributeToken\",\"type\":\"address\"},{\"name\":\"paymentRequested\",\"type\":\"uint256\"},{\"name\":\"paymentToken\",\"type\":\"address\"},{\"name\":\"details\",\"type\":\"string\"}],\"name\":\"submitProposal\",\"outputs\":[{\"name\":\"proposalId\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"gracePeriodLength\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"result\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getProposalQueueLength\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"summoningTime\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"votingPeriodLength\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalDeposit\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"startingPeriod\",\"type\":\"uint256\"}],\"name\":\"hasVotingPeriodExpired\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"sponsorProposal\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"name\":\"uintVote\",\"type\":\"uint8\"}],\"name\":\"submitVote\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"highestIndexYesVote\",\"type\":\"uint256\"}],\"name\":\"canRagequit\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"guildBank\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastEmergencyProposalIndex\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"getProposalFlags\",\"outputs\":[{\"name\":\"\",\"type\":\"bool[6]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"periodDuration\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getProposal\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"depositToken\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getResult\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"proposalIndex\",\"type\":\"uint256\"}],\"name\":\"processProposal\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"admin\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_admin\",\"type\":\"address\"},{\"name\":\"_approvedTokens\",\"type\":\"address[1]\"},{\"name\":\"_periodDuration\",\"type\":\"uint256\"},{\"name\":\"_votingPeriodLength\",\"type\":\"uint256\"},{\"name\":\"_gracePeriodLength\",\"type\":\"uint256\"},{\"name\":\"_emergencyProcessingWait\",\"type\":\"uint256\"},{\"name\":\"_bailoutWait\",\"type\":\"uint256\"},{\"name\":\"_proposalDeposit\",\"type\":\"uint256\"},{\"name\":\"_dilutionBound\",\"type\":\"uint256\"},{\"name\":\"_processingReward\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"delegateKey\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"memberAddress\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"applicant\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"sharesRequested\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"lootRequested\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"tributeOffered\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"tributeToken\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"paymentRequested\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"paymentToken\",\"type\":\"address\"}],\"name\":\"SubmitProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"delegateKey\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"memberAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"proposalQueueIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"startingPeriod\",\"type\":\"uint256\"}],\"name\":\"SponsorProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"delegateKey\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"memberAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"uintVote\",\"type\":\"uint8\"}],\"name\":\"SubmitVote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"didPass\",\"type\":\"bool\"}],\"name\":\"ProcessProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"memberAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"sharesToBurn\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"lootToBurn\",\"type\":\"uint256\"}],\"name\":\"Ragequit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"applicantAddress\",\"type\":\"address\"}],\"name\":\"CancelProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"memberAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"newDelegateKey\",\"type\":\"address\"}],\"name\":\"UpdateDelegateKey\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"admin\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"SummonComplete\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{\"submitProposal(address,uint256,uint256,uint256,address,uint256,address,string)\":{\"notice\":\"***************\\r PROPOSAL FUNCTIONS\\r****************\"}}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Governance.sol\":\"Governance\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Governance.sol\":{\"keccak256\":\"0x6008b164e82e38bbae1f88843ec8963a73a722963b941dd9bde72d4a0e849d80\",\"urls\":[\"bzzr://310d76b367fcb8cd744884b5e57e2a08ee9995ab845909d50f11f14c5f530273\",\"dweb:/ipfs/QmRVebN3g2R9R7HENS45ctw5Cn4wGLr65f8nGjtYkPW2jb\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol\":{\"keccak256\":\"0xa8ace5b5ac3322c9019470d2a1ad1342ef5d984da3d4818554e703b65ceda667\",\"urls\":[\"bzzr://b38168eab9d05f21a7576958f33878d9d31877a12f1f14bda390f3f4fbdaa2a4\",\"dweb:/ipfs/QmWa9cX9gzUkyM9yVwfhd6FsSeh1jpV62sBzdGJm6jRPRX\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol\":{\"keccak256\":\"0x8d08add2e57d2885eb9cda96d2ce54056015247de9adfea8e13c78bb2d9233f2\",\"urls\":[\"bzzr://24804e36486f935a9e98bf507193d1b160db755edba6c9d124a894aef3741ada\",\"dweb:/ipfs/QmauQVeYbGgqJDNxKAceFj1hFD1gfCfAXNBA8vCh3aGYKA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", - "bytecode": "0x608060405260006009819055600a819055600c805460ff19169055600d553480156200002a57600080fd5b5060405162002d5238038062002d5283398181016040526101408110156200005157600080fd5b50805160408201516060830151608084015160a085015160c086015160e08701516101008801516101208901516000805460ff191660011790559798602001976001600160a01b038a166200010757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f61646d696e2063616e6e6f742062652030000000000000000000000000000000604482015290519081900360640190fd5b600088116200017757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5f706572696f644475726174696f6e2063616e6e6f7420626520300000000000604482015290519081900360640190fd5b60008711620001e757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5f766f74696e67506572696f644c656e6774682063616e6e6f74206265203000604482015290519081900360640190fd5b670de0b6b3a76400008711156200024a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018062002d0d6021913960400191505060405180910390fd5b670de0b6b3a7640000861115620002c257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f5f6772616365506572696f644c656e6774682065786365656473206c696d6974604482015290519081900360640190fd5b600085116200031d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018062002d2e6024913960400191505060405180910390fd5b60008054610100600160a81b0319166101006001600160a01b038d160217815589906020020151600780546001600160a01b0319166001600160a01b0390921691909117905560005b60018110156200044e5760008a82600181106200037f57fe5b60200201516001600160a01b03161415620003fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f5f617070726f766564546f6b656e2063616e6e6f742062652030000000000000604482015290519081900360640190fd5b600e8a82600181106200040a57fe5b6020908102919091015182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b03909316929092179091550162000366565b506040516200045d9062000586565b604051809103906000f0801580156200047a573d6000803e3d6000fd5b50600880546001600160a01b03199081166001600160a01b039384161790915560018a815560028a815560038a815560048a9055600588905542600655604080516080810182526000805461010090819004891680845260208085018981528587018a815260608701868152938652600f8352878620965187548d16908e161787559051868b015551978501805460ff1916981515989098179097555192909401919091558054839004871680825260108552828220805490971617909555600a8490559354845193845293519304909316927f03995a801b13c36325306deef859ef977ce61c6e15a794281bf969d20482522792918290030190a25050505050505050505062000594565b61051880620027f583390190565b61225180620005a46000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80638340bbce1161010f578063b2643aab116100a2578063da35c66411610071578063da35c664146106a8578063de292789146106b0578063e63bc62d146106b8578063f851a440146106d5576101e5565b8063b2643aab1461063b578063b470aade14610690578063b9e2bea014610698578063c89039c5146106a0576101e5565b806399653fbe116100de57806399653fbe146105e6578063a3dc38001461060e578063a42afd291461062b578063a44a5e7e14610633576101e5565b80638340bbce1461059c5780638b15a605146105a45780639425a476146105ac5780639746d940146105c9576101e5565b80633b214a741161018757806363858f2d1161015657806363858f2d1461057c5780636537214714610584578063797daf701461058c5780637d5b6c7214610594576101e5565b80633b214a741461043d578063402c17941461045a578063505afd7414610480578063590f940b1461049c576101e5565b806308ae4b0c116101c357806308ae4b0c1461039e5780631dafede0146103f45780631e2362ec1461042d5780633a98ef3914610435576101e5565b8063013cf08b146101ea578063044a0ca814610334578063086146d214610384575b600080fd5b6102076004803603602081101561020057600080fd5b50356106dd565b604051808f6001600160a01b03166001600160a01b031681526020018e6001600160a01b03166001600160a01b031681526020018d6001600160a01b03166001600160a01b031681526020018c81526020018b81526020018a8152602001896001600160a01b03166001600160a01b03168152602001888152602001876001600160a01b03166001600160a01b0316815260200186815260200185815260200184815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156102ec5781810151838201526020016102d4565b50505050905090810190601f1680156103195780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b6103606004803603604081101561034a57600080fd5b506001600160a01b038135169060200135610840565b6040518082600281111561037057fe5b60ff16815260200191505060405180910390f35b61038c610947565b60408051918252519081900360200190f35b6103c4600480360360208110156103b457600080fd5b50356001600160a01b0316610976565b604080516001600160a01b0390951685526020850193909352901515838301526060830152519081900360800190f35b6104116004803603602081101561040a57600080fd5b50356109ad565b604080516001600160a01b039092168252519081900360200190f35b61038c6109d4565b61038c6109da565b61038c6004803603602081101561045357600080fd5b50356109e0565b6104116004803603602081101561047057600080fd5b50356001600160a01b03166109fe565b610488610a19565b604080519115158252519081900360200190f35b61038c60048036036101008110156104b357600080fd5b6001600160a01b038235811692602081013592604082013592606083013592608081013582169260a08201359260c0830135169190810190610100810160e082013564010000000081111561050757600080fd5b82018360208201111561051957600080fd5b8035906020019184600183028401116401000000008311171561053b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a22945050505050565b61038c610b5d565b61038c610b63565b61038c610b69565b61038c610b6f565b61038c610b75565b61038c610b7b565b610488600480360360208110156105c257600080fd5b5035610b81565b61038c600480360360208110156105df57600080fd5b5035610ba8565b61060c600480360360408110156105fc57600080fd5b508035906020013560ff16610ee5565b005b6104886004803603602081101561062457600080fd5b50356112eb565b610411611394565b61038c6113a3565b6106586004803603602081101561065157600080fd5b50356113a9565b604051808260c080838360005b8381101561067d578181015183820152602001610665565b5050505090500191505060405180910390f35b61038c611413565b61038c611419565b61041161141f565b61038c61142e565b61038c611434565b61060c600480360360208110156106ce57600080fd5b503561143a565b610411611736565b60116020528060005260406000206000915090508060000160009054906101000a90046001600160a01b0316908060010160009054906101000a90046001600160a01b0316908060020160009054906101000a90046001600160a01b0316908060030154908060040154908060050154908060060160009054906101000a90046001600160a01b0316908060070154908060080160009054906101000a90046001600160a01b03169080600901549080600a01549080600b01549080600d018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108305780601f1061080557610100808354040283529160200191610830565b820191906000526020600020905b81548152906001019060200180831161081357829003601f168201915b50505050509080600e015490508e565b6001600160a01b0382166000908152600f602052604081206002015460ff166108a8576040805162461bcd60e51b81526020600482015260156024820152741b595b58995c88191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b60125482106108f8576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b601160006012848154811061090957fe5b6000918252602080832090910154835282810193909352604091820181206001600160a01b0387168252600f0190925290205460ff16905092915050565b60006109706001546109646006544261174a90919063ffffffff16565b9063ffffffff61175f16565b90505b90565b600f6020526000908152604090208054600182015460028301546003909301546001600160a01b0390921692909160ff9091169084565b600e81815481106109ba57fe5b6000918252602090912001546001600160a01b0316905081565b60045481565b600a5481565b601281815481106109ed57fe5b600091825260209091200154905081565b6010602052600090815260409020546001600160a01b031681565b600c5460ff1681565b6000805460ff16610a68576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff19169055670de0b6b3a7640000881115610acf576040805162461bcd60e51b815260206004820152601960248201527f746f6f206d616e79207368617265732072657175657374656400000000000000604482015290519081900360640190fd5b6001600160a01b038916610b22576040805162461bcd60e51b815260206004820152601560248201527406170706c6963616e742063616e6e6f74206265203605c1b604482015290519081900360640190fd5b610b2a611f66565b610b3b8a8a8a8a8a8a8a8a89611781565b5050600954600019016000805460ff1916600117905598975050505050505050565b60035481565b600b5481565b60125490565b60065481565b60025481565b60055481565b6000610b9860025483611a4290919063ffffffff16565b610ba0610947565b101592915050565b6000805460ff16610bee576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff19168155338152601060209081526040808320546001600160a01b03168352600f909152902060010154610c60576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b600082815260116020526040902060018101546001600160a01b0316610ccd576040805162461bcd60e51b815260206004820181905260248201527f70726f706f73616c206d7573742068617665206265656e2070726f706f736564604482015290519081900360640190fd5b600c81015460ff1615610d115760405162461bcd60e51b81526004018080602001828103825260238152602001806121b56023913960400191505060405180910390fd5b600c8101546301000000900460ff1615610d72576040805162461bcd60e51b815260206004820152601b60248201527f70726f706f73616c20686173206265656e2063616e63656c6c65640000000000604482015290519081900360640190fd5b6000610de76001610ddb610d84610947565b60125415610dd35760128054601191600091610da790600163ffffffff61174a16565b81548110610db157fe5b9060005260206000200154815260200190815260200160002060090154610dd6565b60005b611a5b565b9063ffffffff611a4216565b60098301819055336000818152601060205260408120546002860180546001600160a01b0319166001600160a01b039092169182179055600c8601805460ff19166001908117909155601280548083018255938190527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449093018990559154939450928392917f2a383a979381335e3eb401ac01dd8083e024ff0256bf5338456ffc0063390bbd918991610e9b919061174a565b604080519283526020830191909152818101879052519081900360600190a3601254610ece90600163ffffffff61174a16565b93505050506000805460ff19166001179055919050565b60005460ff16610f2a576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff19168155338152601060209081526040808320546001600160a01b03168352600f909152902060010154610f9c576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b336000908152601060209081526040808320546001600160a01b0316808452600f9092529091206012548410611013576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6000601160006012878154811061102657fe5b90600052602060002001548152602001908152602001600020905060038460ff161061108f576040805162461bcd60e51b81526020600482015260136024820152726d757374206265206c657373207468616e203360681b604482015290519081900360640190fd5b60008460ff1660028111156110a057fe5b90506110af8260090154610b81565b156110eb5760405162461bcd60e51b81526004018080602001828103825260228152602001806121d86022913960400191505060405180910390fd5b6001600160a01b0384166000908152600f8301602052604081205460ff16600281111561111457fe5b14611166576040805162461bcd60e51b815260206004820152601860248201527f6d656d6265722068617320616c726561647920766f7465640000000000000000604482015290519081900360640190fd5b600181600281111561117457fe5b148061118b5750600281600281111561118957fe5b145b6111dc576040805162461bcd60e51b815260206004820152601d60248201527f766f7465206d7573742062652065697468657220596573206f72204e6f000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600f830160205260409020805482919060ff1916600183600281111561120d57fe5b0217905550600181600281111561122057fe5b141561125d576001830154600a83015461123f9163ffffffff611a4216565b600a830155600383015486111561125857600383018690555b611290565b600281600281111561126b57fe5b1415611290576001830154600b83015461128a9163ffffffff611a4216565b600b8301555b6040805160ff8716815290516001600160a01b03861691339189917f29bf0061f2faa9daa482f061b116195432d435536d8af4ae6b3c5dd78223679b919081900360200190a450506000805460ff1916600117905550505050565b601254600090821061133e576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b601160006012848154811061134f57fe5b90600052602060002001548152602001908152602001600020600c0160016006811061137757fe5b602081049091015460ff601f9092166101000a9004169050919050565b6008546001600160a01b031681565b600d5481565b6113b1611f66565b600082815260116020526040808220815160c081019283905292600c909101916006918390855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116113d8575094979650505050505050565b60015481565b60095490565b6007546001600160a01b031681565b60095481565b600b5490565b60005460ff1661147f576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff1916905561149281611a72565b6000601282815481106114a157fe5b600091825260208083209190910154808352601190915260408220600c8101805461ff00191661010017905590925090806114db85611d83565b91509150670de0b6b3a76400006115018460030154600a54611a4290919063ffffffff16565b111561150c57600091505b81156116e3576001600b55600c8301805462ff000019166201000017905582546001600160a01b03166000908152600f602052604090206002015460ff16156115a257600383015483546001600160a01b03166000908152600f60205260409020600101546115809163ffffffff611a4216565b83546001600160a01b03166000908152600f60205260409020600101556116c4565b82546001600160a01b039081166000908152601060209081526040808320549093168252600f9052206002015460ff16156116265782546001600160a01b0390811660009081526010602090815260408083205490931680835283832080546001600160a01b03199081168317909155600f90925292909120805490911690911790555b6040805160808101825284546001600160a01b0390811680835260038088015460208086019182526001868801818152600060608901818152968152600f8452898120985189549089166001600160a01b0319918216178a559451928901929092555160028801805491151560ff19909216919091179055935195909201949094558754909216808252601090925292909220805490911690911790555b6003830154600a546116db9163ffffffff611a4216565b600a556116e9565b6002600b555b6040805183151581529051859187917f86f74240ecee9e4230d26ff92e17fee978460d9c0f78f5c88b2864c9e7a494279181900360200190a350506000805460ff19166001179055505050565b60005461010090046001600160a01b031681565b60008282111561175957600080fd5b50900390565b600080821161176d57600080fd5b600082848161177857fe5b04949350505050565b611789611f84565b604051806101e001604052808b6001600160a01b03168152602001336001600160a01b0316815260200160006001600160a01b031681526020018a8152602001898152602001888152602001876001600160a01b03168152602001868152602001856001600160a01b03168152602001600081526020016000815260200160008152602001838152602001848152602001600081525090508060116000600954815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060e082015181600701556101008201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c0190600661197a92919061202d565b506101a0820151805161199791600d8401916020909101906120bf565b506101c09190910151600e90910155336000818152601060209081526040918290205460095483519081529182018d90528183018c9052606082018b90526001600160a01b038a8116608084015260a083018a905288811660c0840152925190831693928e1692849290917f1facc413faf060d5cc5c8bc12d8fe29e5c530eb98e2475c76733ec749787a7509181900360e00190a45050600980546001019055505050505050505050565b600082820183811015611a5457600080fd5b9392505050565b600081831015611a6b5781611a54565b5090919050565b6012548110611ac2576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b611aca611f84565b6011600060128481548110611adb57fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff161515815260206001928301818104948501949093039092029101808411611bb157505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152938201939291830182828015611c745780601f10611c4957610100808354040283529160200191611c74565b820191906000526020600020905b815481529060010190602001808311611c5757829003601f168201915b50505050508152602001600e820154815250509050806101800151600160068110611c9b57fe5b602002015115611cdc5760405162461bcd60e51b81526004018080602001828103825260238152602001806121fa6023913960400191505060405180910390fd5b811580611d445750601160006012611cfb85600163ffffffff61174a16565b81548110611d0557fe5b90600052602060002001548152602001908152602001600020600c01600160068110611d2d57fe5b602081049091015460ff601f9092166101000a9004165b611d7f5760405162461bcd60e51b81526004018080602001828103825260238152602001806121926023913960400191505060405180910390fd5b5050565b600080611d8e611f84565b6011600060128681548110611d9f57fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff161515815260206001928301818104948501949093039092029101808411611e7557505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152938201939291830182828015611f385780601f10611f0d57610100808354040283529160200191611f38565b820191906000526020600020905b815481529060010190602001808311611f1b57829003601f168201915b5050509183525050600e91909101546020909101526101608101516101409091015111946000945092505050565b6040518060c001604052806006906020820280388339509192915050565b60405180610280016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001612019611f66565b815260200160608152602001600081525090565b6001830191839082156120af5791602002820160005b8382111561208057835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302612043565b80156120ad5782816101000a81549060ff0219169055600101602081600001049283019260010302612080565b505b506120bb929150612139565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061210057805160ff191683800117855561212d565b8280016001018555821561212d579182015b8281111561212d578251825591602001919060010190612112565b506120bb929150612157565b61097391905b808211156120bb57805460ff1916815560010161213f565b61097391905b808211156120bb576000815560010161215d56fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c0070726576696f75732070726f706f73616c206d7573742062652070726f63657373656470726f706f73616c2068617320616c7265616479206265656e2073706f6e736f72656470726f706f73616c20766f74696e6720706572696f6420686173206578706972656470726f706f73616c2068617320616c7265616479206265656e2070726f636573736564a265627a7a723058204aadd5a65785cc61785723b74e34bd108bbb4ad24956b9ecd95015be2e7f326b64736f6c63430005090032608060405234801561001057600080fd5b50600080546001600160a01b031916331790556104e6806100326000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301e3366714610046578063732c8f57146100905780638da5cb5b1461014f575b600080fd5b61007c6004803603606081101561005c57600080fd5b506001600160a01b03813581169160208101359091169060400135610173565b604080519115158252519081900360200190f35b61007c600480360360808110156100a657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156100dd57600080fd5b8201836020820111156100ef57600080fd5b8035906020019184602083028401116401000000008311171561011157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061026c945050505050565b61015761044e565b604080516001600160a01b039092168252519081900360200190f35b600080546001600160a01b0316331461018b57600080fd5b836001600160a01b0316836001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398846040518082815260200191505060405180910390a3836001600160a01b031663a9059cbb84846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561023657600080fd5b505af115801561024a573d6000803e3d6000fd5b505050506040513d602081101561026057600080fd5b505190505b9392505050565b600080546001600160a01b0316331461028457600080fd5b60005b82518110156104425760006103318483815181106102a157fe5b60200260200101516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156102fe57600080fd5b505afa158015610312573d6000803e3d6000fd5b505050506040513d602081101561032857600080fd5b5051878761045d565b905083828151811061033f57fe5b60200260200101516001600160a01b0316876001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398836040518082815260200191505060405180910390a383828151811061039d57fe5b60200260200101516001600160a01b031663a9059cbb88836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b505050506040513d602081101561042e57600080fd5b505161043957600080fd5b50600101610287565b50600195945050505050565b6000546001600160a01b031681565b60008161046957600080fd5b8361047657506000610265565b8383028385828161048357fe5b04141561049c5782818161049357fe5b04915050610265565b838386816104a657fe5b04029594505050505056fea265627a7a72305820600a90e68081feae486f77ec58352ebe4f959e2362fac128a8d418122da6121464736f6c634300050900325f766f74696e67506572696f644c656e6774682065786365656473206c696d69745f656d657267656e637950726f63657373696e67576169742063616e6e6f742062652030", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101e55760003560e01c80638340bbce1161010f578063b2643aab116100a2578063da35c66411610071578063da35c664146106a8578063de292789146106b0578063e63bc62d146106b8578063f851a440146106d5576101e5565b8063b2643aab1461063b578063b470aade14610690578063b9e2bea014610698578063c89039c5146106a0576101e5565b806399653fbe116100de57806399653fbe146105e6578063a3dc38001461060e578063a42afd291461062b578063a44a5e7e14610633576101e5565b80638340bbce1461059c5780638b15a605146105a45780639425a476146105ac5780639746d940146105c9576101e5565b80633b214a741161018757806363858f2d1161015657806363858f2d1461057c5780636537214714610584578063797daf701461058c5780637d5b6c7214610594576101e5565b80633b214a741461043d578063402c17941461045a578063505afd7414610480578063590f940b1461049c576101e5565b806308ae4b0c116101c357806308ae4b0c1461039e5780631dafede0146103f45780631e2362ec1461042d5780633a98ef3914610435576101e5565b8063013cf08b146101ea578063044a0ca814610334578063086146d214610384575b600080fd5b6102076004803603602081101561020057600080fd5b50356106dd565b604051808f6001600160a01b03166001600160a01b031681526020018e6001600160a01b03166001600160a01b031681526020018d6001600160a01b03166001600160a01b031681526020018c81526020018b81526020018a8152602001896001600160a01b03166001600160a01b03168152602001888152602001876001600160a01b03166001600160a01b0316815260200186815260200185815260200184815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b838110156102ec5781810151838201526020016102d4565b50505050905090810190601f1680156103195780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b6103606004803603604081101561034a57600080fd5b506001600160a01b038135169060200135610840565b6040518082600281111561037057fe5b60ff16815260200191505060405180910390f35b61038c610947565b60408051918252519081900360200190f35b6103c4600480360360208110156103b457600080fd5b50356001600160a01b0316610976565b604080516001600160a01b0390951685526020850193909352901515838301526060830152519081900360800190f35b6104116004803603602081101561040a57600080fd5b50356109ad565b604080516001600160a01b039092168252519081900360200190f35b61038c6109d4565b61038c6109da565b61038c6004803603602081101561045357600080fd5b50356109e0565b6104116004803603602081101561047057600080fd5b50356001600160a01b03166109fe565b610488610a19565b604080519115158252519081900360200190f35b61038c60048036036101008110156104b357600080fd5b6001600160a01b038235811692602081013592604082013592606083013592608081013582169260a08201359260c0830135169190810190610100810160e082013564010000000081111561050757600080fd5b82018360208201111561051957600080fd5b8035906020019184600183028401116401000000008311171561053b57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610a22945050505050565b61038c610b5d565b61038c610b63565b61038c610b69565b61038c610b6f565b61038c610b75565b61038c610b7b565b610488600480360360208110156105c257600080fd5b5035610b81565b61038c600480360360208110156105df57600080fd5b5035610ba8565b61060c600480360360408110156105fc57600080fd5b508035906020013560ff16610ee5565b005b6104886004803603602081101561062457600080fd5b50356112eb565b610411611394565b61038c6113a3565b6106586004803603602081101561065157600080fd5b50356113a9565b604051808260c080838360005b8381101561067d578181015183820152602001610665565b5050505090500191505060405180910390f35b61038c611413565b61038c611419565b61041161141f565b61038c61142e565b61038c611434565b61060c600480360360208110156106ce57600080fd5b503561143a565b610411611736565b60116020528060005260406000206000915090508060000160009054906101000a90046001600160a01b0316908060010160009054906101000a90046001600160a01b0316908060020160009054906101000a90046001600160a01b0316908060030154908060040154908060050154908060060160009054906101000a90046001600160a01b0316908060070154908060080160009054906101000a90046001600160a01b03169080600901549080600a01549080600b01549080600d018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108305780601f1061080557610100808354040283529160200191610830565b820191906000526020600020905b81548152906001019060200180831161081357829003601f168201915b50505050509080600e015490508e565b6001600160a01b0382166000908152600f602052604081206002015460ff166108a8576040805162461bcd60e51b81526020600482015260156024820152741b595b58995c88191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b60125482106108f8576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b601160006012848154811061090957fe5b6000918252602080832090910154835282810193909352604091820181206001600160a01b0387168252600f0190925290205460ff16905092915050565b60006109706001546109646006544261174a90919063ffffffff16565b9063ffffffff61175f16565b90505b90565b600f6020526000908152604090208054600182015460028301546003909301546001600160a01b0390921692909160ff9091169084565b600e81815481106109ba57fe5b6000918252602090912001546001600160a01b0316905081565b60045481565b600a5481565b601281815481106109ed57fe5b600091825260209091200154905081565b6010602052600090815260409020546001600160a01b031681565b600c5460ff1681565b6000805460ff16610a68576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff19169055670de0b6b3a7640000881115610acf576040805162461bcd60e51b815260206004820152601960248201527f746f6f206d616e79207368617265732072657175657374656400000000000000604482015290519081900360640190fd5b6001600160a01b038916610b22576040805162461bcd60e51b815260206004820152601560248201527406170706c6963616e742063616e6e6f74206265203605c1b604482015290519081900360640190fd5b610b2a611f66565b610b3b8a8a8a8a8a8a8a8a89611781565b5050600954600019016000805460ff1916600117905598975050505050505050565b60035481565b600b5481565b60125490565b60065481565b60025481565b60055481565b6000610b9860025483611a4290919063ffffffff16565b610ba0610947565b101592915050565b6000805460ff16610bee576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff19168155338152601060209081526040808320546001600160a01b03168352600f909152902060010154610c60576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b600082815260116020526040902060018101546001600160a01b0316610ccd576040805162461bcd60e51b815260206004820181905260248201527f70726f706f73616c206d7573742068617665206265656e2070726f706f736564604482015290519081900360640190fd5b600c81015460ff1615610d115760405162461bcd60e51b81526004018080602001828103825260238152602001806121b56023913960400191505060405180910390fd5b600c8101546301000000900460ff1615610d72576040805162461bcd60e51b815260206004820152601b60248201527f70726f706f73616c20686173206265656e2063616e63656c6c65640000000000604482015290519081900360640190fd5b6000610de76001610ddb610d84610947565b60125415610dd35760128054601191600091610da790600163ffffffff61174a16565b81548110610db157fe5b9060005260206000200154815260200190815260200160002060090154610dd6565b60005b611a5b565b9063ffffffff611a4216565b60098301819055336000818152601060205260408120546002860180546001600160a01b0319166001600160a01b039092169182179055600c8601805460ff19166001908117909155601280548083018255938190527fbb8a6a4669ba250d26cd7a459eca9d215f8307e33aebe50379bc5a3617ec34449093018990559154939450928392917f2a383a979381335e3eb401ac01dd8083e024ff0256bf5338456ffc0063390bbd918991610e9b919061174a565b604080519283526020830191909152818101879052519081900360600190a3601254610ece90600163ffffffff61174a16565b93505050506000805460ff19166001179055919050565b60005460ff16610f2a576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff19168155338152601060209081526040808320546001600160a01b03168352600f909152902060010154610f9c576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b336000908152601060209081526040808320546001600160a01b0316808452600f9092529091206012548410611013576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6000601160006012878154811061102657fe5b90600052602060002001548152602001908152602001600020905060038460ff161061108f576040805162461bcd60e51b81526020600482015260136024820152726d757374206265206c657373207468616e203360681b604482015290519081900360640190fd5b60008460ff1660028111156110a057fe5b90506110af8260090154610b81565b156110eb5760405162461bcd60e51b81526004018080602001828103825260228152602001806121d86022913960400191505060405180910390fd5b6001600160a01b0384166000908152600f8301602052604081205460ff16600281111561111457fe5b14611166576040805162461bcd60e51b815260206004820152601860248201527f6d656d6265722068617320616c726561647920766f7465640000000000000000604482015290519081900360640190fd5b600181600281111561117457fe5b148061118b5750600281600281111561118957fe5b145b6111dc576040805162461bcd60e51b815260206004820152601d60248201527f766f7465206d7573742062652065697468657220596573206f72204e6f000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600f830160205260409020805482919060ff1916600183600281111561120d57fe5b0217905550600181600281111561122057fe5b141561125d576001830154600a83015461123f9163ffffffff611a4216565b600a830155600383015486111561125857600383018690555b611290565b600281600281111561126b57fe5b1415611290576001830154600b83015461128a9163ffffffff611a4216565b600b8301555b6040805160ff8716815290516001600160a01b03861691339189917f29bf0061f2faa9daa482f061b116195432d435536d8af4ae6b3c5dd78223679b919081900360200190a450506000805460ff1916600117905550505050565b601254600090821061133e576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b601160006012848154811061134f57fe5b90600052602060002001548152602001908152602001600020600c0160016006811061137757fe5b602081049091015460ff601f9092166101000a9004169050919050565b6008546001600160a01b031681565b600d5481565b6113b1611f66565b600082815260116020526040808220815160c081019283905292600c909101916006918390855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116113d8575094979650505050505050565b60015481565b60095490565b6007546001600160a01b031681565b60095481565b600b5490565b60005460ff1661147f576040805162461bcd60e51b815260206004820152601f6024820152600080516020612172833981519152604482015290519081900360640190fd5b6000805460ff1916905561149281611a72565b6000601282815481106114a157fe5b600091825260208083209190910154808352601190915260408220600c8101805461ff00191661010017905590925090806114db85611d83565b91509150670de0b6b3a76400006115018460030154600a54611a4290919063ffffffff16565b111561150c57600091505b81156116e3576001600b55600c8301805462ff000019166201000017905582546001600160a01b03166000908152600f602052604090206002015460ff16156115a257600383015483546001600160a01b03166000908152600f60205260409020600101546115809163ffffffff611a4216565b83546001600160a01b03166000908152600f60205260409020600101556116c4565b82546001600160a01b039081166000908152601060209081526040808320549093168252600f9052206002015460ff16156116265782546001600160a01b0390811660009081526010602090815260408083205490931680835283832080546001600160a01b03199081168317909155600f90925292909120805490911690911790555b6040805160808101825284546001600160a01b0390811680835260038088015460208086019182526001868801818152600060608901818152968152600f8452898120985189549089166001600160a01b0319918216178a559451928901929092555160028801805491151560ff19909216919091179055935195909201949094558754909216808252601090925292909220805490911690911790555b6003830154600a546116db9163ffffffff611a4216565b600a556116e9565b6002600b555b6040805183151581529051859187917f86f74240ecee9e4230d26ff92e17fee978460d9c0f78f5c88b2864c9e7a494279181900360200190a350506000805460ff19166001179055505050565b60005461010090046001600160a01b031681565b60008282111561175957600080fd5b50900390565b600080821161176d57600080fd5b600082848161177857fe5b04949350505050565b611789611f84565b604051806101e001604052808b6001600160a01b03168152602001336001600160a01b0316815260200160006001600160a01b031681526020018a8152602001898152602001888152602001876001600160a01b03168152602001868152602001856001600160a01b03168152602001600081526020016000815260200160008152602001838152602001848152602001600081525090508060116000600954815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060e082015181600701556101008201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c0190600661197a92919061202d565b506101a0820151805161199791600d8401916020909101906120bf565b506101c09190910151600e90910155336000818152601060209081526040918290205460095483519081529182018d90528183018c9052606082018b90526001600160a01b038a8116608084015260a083018a905288811660c0840152925190831693928e1692849290917f1facc413faf060d5cc5c8bc12d8fe29e5c530eb98e2475c76733ec749787a7509181900360e00190a45050600980546001019055505050505050505050565b600082820183811015611a5457600080fd5b9392505050565b600081831015611a6b5781611a54565b5090919050565b6012548110611ac2576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b611aca611f84565b6011600060128481548110611adb57fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff161515815260206001928301818104948501949093039092029101808411611bb157505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152938201939291830182828015611c745780601f10611c4957610100808354040283529160200191611c74565b820191906000526020600020905b815481529060010190602001808311611c5757829003601f168201915b50505050508152602001600e820154815250509050806101800151600160068110611c9b57fe5b602002015115611cdc5760405162461bcd60e51b81526004018080602001828103825260238152602001806121fa6023913960400191505060405180910390fd5b811580611d445750601160006012611cfb85600163ffffffff61174a16565b81548110611d0557fe5b90600052602060002001548152602001908152602001600020600c01600160068110611d2d57fe5b602081049091015460ff601f9092166101000a9004165b611d7f5760405162461bcd60e51b81526004018080602001828103825260238152602001806121926023913960400191505060405180910390fd5b5050565b600080611d8e611f84565b6011600060128681548110611d9f57fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff161515815260206001928301818104948501949093039092029101808411611e7557505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152938201939291830182828015611f385780601f10611f0d57610100808354040283529160200191611f38565b820191906000526020600020905b815481529060010190602001808311611f1b57829003601f168201915b5050509183525050600e91909101546020909101526101608101516101409091015111946000945092505050565b6040518060c001604052806006906020820280388339509192915050565b60405180610280016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001612019611f66565b815260200160608152602001600081525090565b6001830191839082156120af5791602002820160005b8382111561208057835183826101000a81548160ff0219169083151502179055509260200192600101602081600001049283019260010302612043565b80156120ad5782816101000a81549060ff0219169055600101602081600001049283019260010302612080565b505b506120bb929150612139565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061210057805160ff191683800117855561212d565b8280016001018555821561212d579182015b8281111561212d578251825591602001919060010190612112565b506120bb929150612157565b61097391905b808211156120bb57805460ff1916815560010161213f565b61097391905b808211156120bb576000815560010161215d56fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c0070726576696f75732070726f706f73616c206d7573742062652070726f63657373656470726f706f73616c2068617320616c7265616479206265656e2073706f6e736f72656470726f706f73616c20766f74696e6720706572696f6420686173206578706972656470726f706f73616c2068617320616c7265616479206265656e2070726f636573736564a265627a7a723058204aadd5a65785cc61785723b74e34bd108bbb4ad24956b9ecd95015be2e7f326b64736f6c63430005090032", - "sourceMap": "157:33834:13:-;;;3387:1;3356:32;;;;3424:30;;;;3596:36;;;-1:-1:-1;;3596:36:13;;;3695:45;;7008:2614;5:2:-1;;;;30:1;27;20:12;5:2;7008:2614:13;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;7008:2614:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1229:11:21;:18;;-1:-1:-1;;1229:18:21;1243:4;1229:18;;;7008:2614:13;;;;;-1:-1:-1;;;;;7409:20:13;;7401:50;;;;;-1:-1:-1;;;7401:50:13;;;;;;;;;;;;-1:-1:-1;;;7401:50:13;;;;;;;;;;;;;;;7488:1;7470:15;:19;7462:59;;;;;-1:-1:-1;;;7462:59:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;7562:1;7540:19;:23;7532:67;;;;;-1:-1:-1;;;7532:67:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;1621:6;7618:19;:47;;7610:93;;;;-1:-1:-1;;;7610:93:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1712:6;7722:18;:45;;7714:90;;;;;-1:-1:-1;;;7714:90:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7850:1;7823:24;:28;7815:77;;;;-1:-1:-1;;;7815:77:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8479:5;:14;;-1:-1:-1;;;;;;8479:14:13;-1:-1:-1;;;;;;8479:14:13;;;;;;;;;;;;;8528:18;;8506:12;:41;;-1:-1:-1;;;;;;8506:41:13;;;;;;;;8560:362;8584:22;8580:1;:26;8560:362;;;8667:1;8637:15;8653:1;8637:18;;;;;;;;;;;-1:-1:-1;;;;;8637:32:13;;;8629:71;;;;;-1:-1:-1;;;8629:71:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;8863:14;8890:15;8906:1;8890:18;;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;-1:-1;8863:47:13;;;;;;;;;;;;-1:-1:-1;;;;;;8863:47:13;-1:-1:-1;;;;;8863:47:13;;;;;;;;;;8608:3;8560:362;;;;8946:15;;;;;:::i;:::-;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;8934:9:13;:27;;-1:-1:-1;;;;;;8934:27:13;;;-1:-1:-1;;;;;8934:27:13;;;;;;;-1:-1:-1;8974:32:13;;;9017:18;:40;;;9068:17;:38;;;9117:23;:50;;;-1:-1:-1;9218:34:13;;;9375:3;-1:-1:-1;9359:19:13;9469:25;;;;;;;;-1:-1:-1;9476:5:13;;8934:27;9476:5;;;;;;9469:25;;;;;;;;;;;;;;;;;;;;;;9452:14;;;:7;:14;;;;;:42;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9452:42:13;;;;;;;;;;;;;;;;;;;;9541:5;;;;;;;9505:33;;;:26;:33;;;;;:41;;;;;;;;;9557:11;:15;;;9605:5;;9590:24;;;;;;;9605:5;;;;;;9590:24;;;;;;;;;7008:2614;;;;;;;;;;157:33834;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "157:33834:13:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:33834:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6374:45;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6374:45:13;;:::i;:::-;;;;;-1:-1:-1;;;;;6374:45:13;-1:-1:-1;;;;;6374:45:13;;;;;;-1:-1:-1;;;;;6374:45:13;-1:-1:-1;;;;;6374:45:13;;;;;;-1:-1:-1;;;;;6374:45:13;-1:-1:-1;;;;;6374:45:13;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6374:45:13;-1:-1:-1;;;;;6374:45:13;;;;;;;;;;;-1:-1:-1;;;;;6374:45:13;-1:-1:-1;;;;;6374:45:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6374:45:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;33419:351;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33419:351:13;;-1:-1:-1;;;;;33419:351:13;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31742:126;;;:::i;:::-;;;;;;;;;;;;;;;;6256:41;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6256:41:13;-1:-1:-1;;;;;6256:41:13;;:::i;:::-;;;;-1:-1:-1;;;;;6256:41:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6098:30;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6098:30:13;;:::i;:::-;;;;-1:-1:-1;;;;;6098:30:13;;;;;;;;;;;;;;631:38;;;:::i;3424:30::-;;;:::i;6428:::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6428:30:13;;:::i;6304:61::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6304:61:13;-1:-1:-1;;;;;6304:61:13;;:::i;3596:36::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;9702:1460;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;9702:1460:13;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9702:1460:13;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;9702:1460:13;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9702:1460:13;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;9702:1460:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;9702:1460:13;;-1:-1:-1;9702:1460:13;;-1:-1:-1;;;;;9702:1460:13:i;559:32::-;;;:::i;3566:21::-;;;:::i;31875:108::-;;;:::i;1129:28::-;;;:::i;486:33::-;;;:::i;778:30::-;;;:::i;33243:169::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;33243:169:13;;:::i;13854:2079::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13854:2079:13;;:::i;15941:1793::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15941:1793:13;;;;;;;;;:::i;:::-;;32216:246;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32216:246:13;;:::i;1293:26::-;;;:::i;3695:45::-;;;:::i;31990:134::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31990:134:13;;:::i;:::-;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;31990:134:13;;;;;;;;;;;;;;;;388:29;;;:::i;33776:92::-;;;:::i;1208:26::-;;;:::i;3356:32::-;;;:::i;33874:114::-;;;:::i;17741:3817::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17741:3817:13;;:::i;304:20::-;;;:::i;6374:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6374:45:13;;;;;;;;;;;;;-1:-1:-1;;;;;6374:45:13;;;;;;;;;;;;;-1:-1:-1;;;;;6374:45:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6374:45:13;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6374:45:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;33419:351::-;-1:-1:-1;;;;;33541:22:13;;33517:4;33541:22;;;:7;:22;;;;;:29;;;;;33533:63;;;;;-1:-1:-1;;;33533:63:13;;;;;;;;;;;;-1:-1:-1;;;33533:63:13;;;;;;;;;;;;;;;33630:13;:20;33614:36;;33606:72;;;;;-1:-1:-1;;;33606:72:13;;;;;;;;;;;;-1:-1:-1;;;33606:72:13;;;;;;;;;;;;;;;33695:9;:39;33705:13;33719;33705:28;;;;;;;;;;;;;;;;;;;;33695:39;;;;;;;;;;;;;;;-1:-1:-1;;;;;33695:68:13;;;;:53;;:68;;;;;;;;;-1:-1:-1;33419:351:13;;;;:::o;31742:126::-;31791:7;31818:42;31845:14;;31818:22;31826:13;;31818:3;:7;;:22;;;;:::i;:::-;:26;:42;:26;:42;:::i;:::-;31811:49;;31742:126;;:::o;6256:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6256:41:13;;;;;;;;;;;;:::o;6098:30::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6098:30:13;;-1:-1:-1;6098:30:13;:::o;631:38::-;;;;:::o;3424:30::-;;;;:::o;6428:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6428:30:13;:::o;6304:61::-;;;;;;;;;;;;-1:-1:-1;;;;;6304:61:13;;:::o;3596:36::-;;;;;;:::o;9702:1460::-;10018:18;1754:11:21;;;;1746:55;;;;;-1:-1:-1;;;1746:55:21;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1746:55:21;;;;;;;;;;;;;;;1893:5;1879:19;;-1:-1:-1;;1879:19:21;;;2143:6:13;10175:39;;;10167:77;;;;;-1:-1:-1;;;10167:77:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10430:23:13;;10422:57;;;;;-1:-1:-1;;;10422:57:13;;;;;;;;;;;;-1:-1:-1;;;10422:57:13;;;;;;;;;;;;;;;10820:20;;:::i;:::-;10921:136;10937:9;10948:15;10965:13;10980:14;10996:12;11010:16;11028:12;11042:7;11051:5;10921:15;:136::i;:::-;-1:-1:-1;;11075:13:13;;-1:-1:-1;;11075:17:13;2059:11:21;:18;;-1:-1:-1;;2059:18:21;2073:4;2059:18;;;9702:1460:13;;-1:-1:-1;;;;;;;;9702:1460:13:o;559:32::-;;;;:::o;3566:21::-;;;;:::o;31875:108::-;31956:13;:20;31875:108;:::o;1129:28::-;;;;:::o;486:33::-;;;;:::o;778:30::-;;;;:::o;33243:169::-;33320:4;33366:38;33385:18;;33366:14;:18;;:38;;;;:::i;:::-;33344:18;:16;:18::i;:::-;:60;;;33243:169;-1:-1:-1;;33243:169:13:o;13854:2079::-;13943:7;1754:11:21;;;;1746:55;;;;;-1:-1:-1;;;1746:55:21;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1746:55:21;;;;;;;;;;;;;;;1893:5;1879:19;;-1:-1:-1;;1879:19:21;;;6938:10:13;6911:38;;:26;:38;;;;;;;;;-1:-1:-1;;;;;6911:38:13;6903:47;;:7;:47;;;;;-1:-1:-1;6903:54:13;;6895:85;;;;;-1:-1:-1;;;6895:85:13;;;;;;;;;;;;-1:-1:-1;;;6895:85:13;;;;;;;;;;;;;;;14207:25;14235:21;;;:9;:21;;;;;14277:17;;;;-1:-1:-1;;;;;14277:17:13;14269:76;;;;;-1:-1:-1;;;14269:76:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14365:14;;;:17;;;14364:18;14356:66;;;;-1:-1:-1;;;14356:66:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14442:14;;;:17;;;;;;14441:18;14433:58;;;;;-1:-1:-1;;;14433:58:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;15279:22;15304:169;15471:1;15304:162;15322:18;:16;:18::i;:::-;15355:13;:20;:25;:100;;15397:13;15411:20;;15387:9;;:53;;15411:27;;15436:1;15411:27;:24;:27;:::i;:::-;15397:42;;;;;;;;;;;;;;;;15387:53;;;;;;;;;;;:68;;;15355:100;;;15383:1;15355:100;15304:3;:162::i;:::-;:166;:169;:166;:169;:::i;:::-;15486:23;;;:40;;;15590:10;15539:21;15563:38;;;:26;:38;;;;;;15612:16;;;:32;;-1:-1:-1;;;;;;15612:32:13;-1:-1:-1;;;;;15563:38:13;;;15612:32;;;;;15657:14;;;:24;;-1:-1:-1;;15657:24:13;-1:-1:-1;15657:24:13;;;;;;15735:13;27:10:-1;;23:18;;;45:23;;15735:30:13;;;;;;;;;;;15836:20;;15486:40;;-1:-1:-1;15563:38:13;;;15590:10;15781:99;;15735:30;;15836:27;;:20;:24;:27::i;:::-;15781:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;15898:13;:20;:27;;15923:1;15898:27;:24;:27;:::i;:::-;15891:34;;;;;2059:11:21;:18;;-1:-1:-1;;2059:18:21;2073:4;2059:18;;;13854:2079:13;;-1:-1:-1;13854:2079:13:o;15941:1793::-;1754:11:21;;;;1746:55;;;;;-1:-1:-1;;;1746:55:21;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1746:55:21;;;;;;;;;;;;;;;1893:5;1879:19;;-1:-1:-1;;1879:19:21;;;6938:10:13;6911:38;;:26;:38;;;;;;;;;-1:-1:-1;;;;;6911:38:13;6903:47;;:7;:47;;;;;-1:-1:-1;6903:54:13;;6895:85;;;;;-1:-1:-1;;;6895:85:13;;;;;;;;;;;;-1:-1:-1;;;6895:85:13;;;;;;;;;;;;;;;16095:10;16044:21;16068:38;;;:26;:38;;;;;;;;;-1:-1:-1;;;;;16068:38:13;16141:22;;;:7;:22;;;;;;16200:13;:20;16184:36;;16176:72;;;;;-1:-1:-1;;;16176:72:13;;;;;;;;;;;;-1:-1:-1;;;16176:72:13;;;;;;;;;;;;;;;16259:25;16287:9;:39;16297:13;16311;16297:28;;;;;;;;;;;;;;;;16287:39;;;;;;;;;;;16259:67;;16358:1;16347:8;:12;;;16339:44;;;;;-1:-1:-1;;;16339:44:13;;;;;;;;;;;;-1:-1:-1;;;16339:44:13;;;;;;;;;;;;;;;16394:9;16411:8;16406:14;;;;;;;;;;16394:26;;16542:47;16565:8;:23;;;16542:22;:47::i;:::-;16541:48;16533:95;;;;-1:-1:-1;;;16533:95:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16647:37:13;;16688:9;16647:37;;;:22;;;:37;;;;;;;;:50;;;;;;;;;16639:87;;;;;-1:-1:-1;;;16639:87:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;16753:8;16745:4;:16;;;;;;;;;:35;;;-1:-1:-1;16773:7:13;16765:4;:15;;;;;;;;;16745:35;16737:77;;;;;-1:-1:-1;;;16737:77:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16827:37:13;;;;;;:22;;;:37;;;;;:44;;16867:4;;16827:37;-1:-1:-1;;16827:44:13;-1:-1:-1;16867:4:13;16827:44;;;;;;;;;;;;-1:-1:-1;16896:8:13;16888:4;:16;;;;;;;;;16884:763;;;16963:13;;;;16941:17;;;;:36;;;:21;:36;:::i;:::-;16921:17;;;:56;17109:26;;;;17093:42;;17089:125;;;17156:26;;;:42;;;17089:125;16884:763;;;17557:7;17549:4;:15;;;;;;;;;17545:102;;;17621:13;;;;17600:16;;;;:35;;;:20;:35;:::i;:::-;17581:16;;;:54;17545:102;17664:62;;;;;;;;;;-1:-1:-1;;;;;17664:62:13;;;17690:10;;17675:13;;17664:62;;;;;;;;;;-1:-1:-1;;2059:11:21;:18;;-1:-1:-1;;2059:18:21;2073:4;2059:18;;;-1:-1:-1;;;;15941:1793:13:o;32216:246::-;32334:13;:20;32287:4;;32312:42;;32304:78;;;;;-1:-1:-1;;;32304:78:13;;;;;;;;;;;;-1:-1:-1;;;32304:78:13;;;;;;;;;;;;;;;32400:9;:45;32410:13;32424:19;32410:34;;;;;;;;;;;;;;;;32400:45;;;;;;;;;;;:51;;32452:1;32400:54;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32216:246:13;;;:::o;1293:26::-;;;-1:-1:-1;;;;;1293:26:13;;:::o;3695:45::-;;;;:::o;31990:134::-;32057:14;;:::i;:::-;32090:21;;;;:9;:21;;;;;;32083:34;;;;;;;;;;32090:27;;;;;32083:34;;32090:27;;32083:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;32083:34:13;;31990:134;-1:-1:-1;;;;;;;31990:134:13:o;388:29::-;;;;:::o;33776:92::-;33847:13;;33776:92;:::o;1208:26::-;;;-1:-1:-1;;;;;1208:26:13;;:::o;3356:32::-;;;;:::o;33874:114::-;33943:6;;33874:114;:::o;17741:3817::-;1754:11:21;;;;1746:55;;;;;-1:-1:-1;;;1746:55:21;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1746:55:21;;;;;;;;;;;;;;;1893:5;1879:19;;-1:-1:-1;;1879:19:21;;;17819:45:13;17850:13;17819:30;:45::i;:::-;17876:18;17897:13;17911;17897:28;;;;;;;;;;;;;;;;;;;;;17963:21;;;:9;:21;;;;;;18090:14;;;:24;;-1:-1:-1;;18090:24:13;;;;;17897:28;;-1:-1:-1;17963:21:13;17897:28;18182:23;18191:13;18182:8;:23::i;:::-;18139:66;;;;2143:6;18497:41;18513:8;:24;;;18497:11;;:15;;:41;;;;:::i;:::-;:64;18493:112;;;18588:5;18578:15;;18493:112;18971:7;18967:2471;;;19002:1;18995:6;:8;19017:14;;;:24;;-1:-1:-1;;19017:24:13;;;;;19169:18;;-1:-1:-1;;;;;19169:18:13;-1:-1:-1;19161:27:13;;;:7;19017:17;19161:27;;;;19032:1;19161:34;;19017:24;19161:34;19157:1271;;;19291:24;;;;19260:18;;-1:-1:-1;;;;;19260:18:13;19252:27;;;;:7;:27;;;;;-1:-1:-1;19252:34:13;;:64;;:38;:64::i;:::-;19223:18;;-1:-1:-1;;;;;19223:18:13;19215:27;;;;:7;:27;;;;;-1:-1:-1;19215:34:13;:101;19157:1271;;;19707:18;;-1:-1:-1;;;;;19707:18:13;;;19672:55;19680:46;;;:26;:46;;;;;;;;;;;;19672:55;;:7;:55;;;:62;;;;;19668:345;;;19812:18;;-1:-1:-1;;;;;19812:18:13;;;19758:24;19785:46;;;:26;:46;;;;;;;;;;;;19853:44;;;;;;:63;;-1:-1:-1;;;;;;19853:63:13;;;;;;;;19938:7;:25;;;;;;;:56;;;;;;;;;;19668:345;20129:61;;;;;;;;20136:18;;-1:-1:-1;;;;;20136:18:13;;;20129:61;;;20156:24;;;;;20129:61;;;;;;;-1:-1:-1;20129:61:13;;;;;;-1:-1:-1;20129:61:13;;;;;;20099:27;;;:7;:27;;;;;:91;;;;;;;-1:-1:-1;;;;;;20099:91:13;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20099:91:13;;;;;;;;;;;;;;;;;;;20395:18;;;;;20346:46;;;:26;:46;;;;;;;:67;;;;;;;;;;19157:1271;20511:24;;;;20495:11;;:41;;;:15;:41;:::i;:::-;20481:11;:55;18967:2471;;;21082:1;21075:6;:8;21178:250;21500:51;;;;;;;;;;21531:10;;21516:13;;21500:51;;;;;;;;;-1:-1:-1;;2059:11:21;:18;;-1:-1:-1;;2059:18:21;2073:4;2059:18;;;-1:-1:-1;;;17741:3817:13:o;304:20::-;;;;;;-1:-1:-1;;;;;304:20:13;;:::o;431:150:22:-;489:7;522:1;517;:6;;509:15;;;;;;-1:-1:-1;547:5:22;;;431:150::o;272:151::-;330:7;364:1;360;:5;352:14;;;;;;377:9;393:1;389;:5;;;;;;;272:151;-1:-1:-1;;;;272:151:22:o;12534:1312:13:-;12873:24;;:::i;:::-;12900:611;;;;;;;;12936:9;-1:-1:-1;;;;;12900:611:13;;;;;12971:10;-1:-1:-1;;;;;12900:611:13;;;;;13014:1;-1:-1:-1;;;;;12900:611:13;;;;;13049:15;12900:611;;;;13095:13;12900:611;;;;13140:14;12900:611;;;;13191:12;-1:-1:-1;;;;;12900:611:13;;;;;13238:16;12900:611;;;;13291:12;-1:-1:-1;;;;;12900:611:13;;;;;13336:1;12900:611;;;;13363:1;12900:611;;;;13389:1;12900:611;;;;13413:5;12900:611;;;;13443:7;12900:611;;;;13498:1;12900:611;;;12873:638;;13551:8;13524:9;:24;13534:13;;13524:24;;;;;;;;;;;:35;;;;;;;;;;;;;-1:-1:-1;;;;;13524:35:13;;;;;-1:-1:-1;;;;;13524:35:13;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13524:35:13;;;;;-1:-1:-1;;;;;13524:35:13;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13524:35:13;;;;;-1:-1:-1;;;;;13524:35:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13524:35:13;;;;;-1:-1:-1;;;;;13524:35:13;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13524:35:13;;;;;-1:-1:-1;;;;;13524:35:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;13524:35:13;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;13524:35:13;;;;;;;;;;;13621:10;13570:21;13594:38;;;:26;:38;;;;;;;;;;13663:13;;13648:161;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13648:161:13;;;;;;;-1:-1:-1;13648:161:13;;;;;;;;;;;;;;13594:38;;;;13648:161;;;;13594:38;;13621:10;;13648:161;;;;;;;;;-1:-1:-1;;13820:13:13;:18;;13837:1;13820:18;;;-1:-1:-1;;;;;;;;;12534:1312:13:o;589:150:22:-;647:7;679:5;;;703:6;;;;695:15;;;;;;730:1;589:150;-1:-1:-1;;;589:150:22:o;31627:107:13:-;31685:7;31717:1;31712;:6;;:14;;31725:1;31712:14;;;-1:-1:-1;31721:1:13;;31705:21;-1:-1:-1;31627:107:13:o;25461:623::-;25573:13;:20;25557:36;;25549:72;;;;;-1:-1:-1;;;25549:72:13;;;;;;;;;;;;-1:-1:-1;;;25549:72:13;;;;;;;;;;;;;;;25632:24;;:::i;:::-;25659:9;:39;25669:13;25683;25669:28;;;;;;;;;;;;;;;;;;;;;25659:39;;;;;;;;;;;;;;;25632:66;;;;;;;;;-1:-1:-1;;;;;25632:66:13;;;;;-1:-1:-1;25632:66:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25632:66:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25659:39;;25632:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;25632:66:13;;;-1:-1:-1;;;25632:66:13;;;;;;;;;;;;;;;;-1:-1:-1;;25632:66:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25874:8;:14;;;25889:1;25874:17;;;;;;;;;;;:26;25866:74;;;;-1:-1:-1;;;25866:74:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25959:18;;;:77;;-1:-1:-1;25981:9:13;:46;25991:13;26005:20;:13;26023:1;26005:20;:17;:20;:::i;:::-;25991:35;;;;;;;;;;;;;;;;25981:46;;;;;;;;;;;:52;;26034:1;25981:55;;;;;;;;;;;;;;;;;;;;;;;;25959:77;25951:125;;;;-1:-1:-1;;;25951:125:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25461:623;;:::o;23603:1850::-;23662:12;23676:24;23713;;:::i;:::-;23740:9;:39;23750:13;23764;23750:28;;;;;;;;;;;;;;;;;;;;;23740:39;;;;;;;;;;;;;;;23713:66;;;;;;;;;-1:-1:-1;;;;;23713:66:13;;;;;-1:-1:-1;23713:66:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23713:66:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23740:39;;23713:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;23713:66:13;;;-1:-1:-1;;;23713:66:13;;;;;;;;;;;;;;;;-1:-1:-1;;23713:66:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;23713:66:13;;;-1:-1:-1;;23713:66:13;;;;;;;;;;;23822:16;;;;23802:17;;;;;:36;;-1:-1:-1;;;23603:1850:13;-1:-1:-1;;;23603:1850:13:o;157:33834::-;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;157:33834:13;;;-1:-1:-1;;157:33834:13:o;:::-;;;;;;;;;-1:-1:-1;157:33834:13;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;157:33834:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;157:33834:13;;;-1:-1:-1;157:33834:13;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;157:33834:13;;;-1:-1:-1;157:33834:13;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;157:33834:13;;;-1:-1:-1;157:33834:13;;;;;;;;;;;;;;;;;;;;", - "source": "pragma solidity >=0.5.0 < 0.6.0;\r\n\r\nimport \"./oz/SafeMath.sol\";\r\nimport \"./oz/IERC20.sol\";\r\nimport \"./oz/ReentrancyGuard.sol\";\r\nimport \"./GuildBank.sol\";\r\n\r\ncontract Governance is ReentrancyGuard {\r\n using SafeMath for uint256;\r\n\r\n /***************\r\n GLOBAL CONSTANTS\r\n ***************/\r\n address public admin; // initial singular shareholder, assists with bailouts\r\n\r\n uint256 public periodDuration; // default = 17280 = 4.8 hours in seconds (5 periods per day)\r\n uint256 public votingPeriodLength; // default = 35 periods (7 days)\r\n uint256 public gracePeriodLength; // default = 35 periods (7 days)\r\n uint256 public emergencyProcessingWait; // default = 35 periods (7 days)\r\n //uint256 public bailoutWait; // default = 70 periods (14 days)\r\n uint256 public proposalDeposit; // default = 10 ETH (~$1,000 worth of ETH at contract deployment)\r\n //uint256 public dilutionBound; // default = 3 - maximum multiplier a YES voter will be obligated to pay in case of mass ragequit\r\n //uint256 public processingReward; // default = 0.1 - amount of ETH to give to whoever processes a proposal\r\n uint256 public summoningTime; // needed to determine the current period\r\n\r\n IERC20 public depositToken; // deposit token contract reference; default = wETH\r\n GuildBank public guildBank; // guild bank contract reference\r\n\r\n // HARD-CODED LIMITS\r\n // These numbers are quite arbitrary; they are small enough to avoid overflows when doing calculations\r\n // with periods or shares, yet big enough to not limit reasonable use cases.\r\n uint256 constant MAX_VOTING_PERIOD_LENGTH = 10**18; // maximum length of voting period\r\n uint256 constant MAX_GRACE_PERIOD_LENGTH = 10**18; // maximum length of grace period\r\n // uint256 constant MAX_BAILOUT_WAIT = 10**18; // maximum # periods after a jailed member can be ragekicked before they must be bailed out instead\r\n // uint256 constant MAX_DILUTION_BOUND = 10**18; // maximum dilution bound\r\n // uint256 constant MAX_NUMBER_OF_SHARES_AND_LOOT = 10**18; // maximum number of shares that can be minted\r\n uint256 constant MAX_NUMBER_OF_SHARES = 10**18; // maximum number of shares that can be minted\r\n\r\n // ***************\r\n // EVENTS\r\n // ***************\r\n event SubmitProposal(uint256 proposalIndex, address indexed delegateKey, address indexed memberAddress, address indexed applicant, uint256 sharesRequested, uint256 lootRequested, uint256 tributeOffered, address tributeToken, uint256 paymentRequested, address paymentToken);\r\n event SponsorProposal(address indexed delegateKey, address indexed memberAddress, uint256 proposalIndex, uint256 proposalQueueIndex, uint256 startingPeriod);\r\n event SubmitVote(uint256 indexed proposalIndex, address indexed delegateKey, address indexed memberAddress, uint8 uintVote);\r\n event ProcessProposal(uint256 indexed proposalIndex, uint256 indexed proposalId, bool didPass);\r\n event Ragequit(address indexed memberAddress, uint256 sharesToBurn, uint256 lootToBurn);\r\n event CancelProposal(uint256 indexed proposalIndex, address applicantAddress);\r\n event UpdateDelegateKey(address indexed memberAddress, address newDelegateKey);\r\n event SummonComplete(address indexed admin, uint256 shares);\r\n\r\n // *******************\r\n // INTERNAL ACCOUNTING\r\n // *******************\r\n uint256 public proposalCount = 0; // total proposals submitted\r\n uint256 public totalShares = 0; // total shares across all members\r\n //uint256 public totalLoot = 0; // total loot across all members\r\n uint256 public result;\r\n\r\n bool public emergencyWarning = false; // true if emergency processing has ever been triggered\r\n uint256 public lastEmergencyProposalIndex = 0; // index of the last proposal which triggered emergency processing\r\n\r\n enum Vote {\r\n Null, // default value, counted as abstention\r\n Yes,\r\n No\r\n }\r\n\r\n struct Member {\r\n address delegateKey; // the key responsible for submitting proposals and voting - defaults to member address unless updated\r\n uint256 shares; // the # of voting shares assigned to this member\r\n //uint256 loot; // the loot amount available to this member (combined with shares on ragequit)\r\n bool exists; // always true once a member has been created\r\n uint256 highestIndexYesVote; // highest proposal index # on which the member voted YES\r\n //uint256 jailed; // set to proposalIndex of a passing guild kick proposal for this member, prevents voting on and sponsoring proposals\r\n }\r\n\r\n struct Proposal {\r\n address applicant; // the applicant who wishes to become a member - this key will be used for withdrawals (doubles as guild kick target for gkick proposals)\r\n address proposer; // the account that submitted the proposal (can be non-member)\r\n address sponsor; // the member that sponsored the proposal (moving it into the queue)\r\n uint256 sharesRequested; // the # of shares the applicant is requesting\r\n uint256 lootRequested; // the amount of loot the applicant is requesting\r\n uint256 tributeOffered; // amount of tokens offered as tribute\r\n IERC20 tributeToken; // tribute token contract reference\r\n uint256 paymentRequested; // amount of tokens requested as payment\r\n IERC20 paymentToken; // payment token contract reference\r\n uint256 startingPeriod; // the period in which voting can start for this proposal\r\n uint256 yesVotes; // the total number of YES votes for this proposal\r\n uint256 noVotes; // the total number of NO votes for this proposal\r\n bool[6] flags; // [sponsored, processed, didPass, cancelled, whitelist, guildkick]\r\n string details; // proposal details - could be IPFS hash, plaintext, or JSON\r\n uint256 maxTotalSharesAndLootAtYesVote; // the maximum # of total shares encountered at a yes vote on this proposal\r\n mapping(address => Vote) votesByMember; // the votes on this proposal by each member\r\n }\r\n\r\n // mapping(address => bool) public tokenWhitelist;\r\n IERC20[] public approvedTokens;\r\n\r\n // mapping(address => bool) public proposedToWhitelist;\r\n // mapping(address => bool) public proposedToKick;\r\n\r\n mapping(address => Member) public members;\r\n mapping(address => address) public memberAddressByDelegateKey;\r\n\r\n mapping(uint256 => Proposal) public proposals;\r\n\r\n uint256[] public proposalQueue;\r\n\r\n // modifier onlyMember {\r\n // require(members[msg.sender].shares > 0 || members[msg.sender].loot > 0, \"not a member\");\r\n // _;\r\n // }\r\n modifier onlyMember {\r\n require(members[msg.sender].shares > 0 , \"not a member\");\r\n _;\r\n }\r\n\r\n modifier onlyShareholder {\r\n require(members[msg.sender].shares > 0, \"not a shareholder\");\r\n _;\r\n }\r\n\r\n modifier onlyDelegate {\r\n require(members[memberAddressByDelegateKey[msg.sender]].shares > 0, \"not a delegate\");\r\n _;\r\n }\r\n\r\n constructor(\r\n address _admin,\r\n address[1] memory _approvedTokens,\r\n uint256 _periodDuration,\r\n uint256 _votingPeriodLength,\r\n uint256 _gracePeriodLength,\r\n uint256 _emergencyProcessingWait,\r\n uint256 _bailoutWait,\r\n uint256 _proposalDeposit,\r\n uint256 _dilutionBound,\r\n uint256 _processingReward\r\n ) public {\r\n require(_admin != address(0), \"admin cannot be 0\");\r\n require(_periodDuration > 0, \"_periodDuration cannot be 0\");\r\n require(_votingPeriodLength > 0, \"_votingPeriodLength cannot be 0\");\r\n require(_votingPeriodLength <= MAX_VOTING_PERIOD_LENGTH, \"_votingPeriodLength exceeds limit\");\r\n require(_gracePeriodLength <= MAX_GRACE_PERIOD_LENGTH, \"_gracePeriodLength exceeds limit\");\r\n require(_emergencyProcessingWait > 0, \"_emergencyProcessingWait cannot be 0\");\r\n // require(_bailoutWait > _emergencyProcessingWait, \"_bailoutWait must be greater than _emergencyProcessingWait\");\r\n // require(_bailoutWait <= MAX_BAILOUT_WAIT, \"_bailoutWait exceeds limit\");\r\n // require(_dilutionBound > 0, \"_dilutionBound cannot be 0\");\r\n // require(_dilutionBound <= MAX_DILUTION_BOUND, \"_dilutionBound exceeds limit\");\r\n require(_approvedTokens.length > 0, \"need at least one approved token\");\r\n // require(_proposalDeposit >= _processingReward, \"_proposalDeposit cannot be smaller than _processingReward\");\r\n\r\n admin = _admin;\r\n\r\n depositToken = IERC20(_approvedTokens[0]);\r\n\r\n for (uint256 i = 0; i < _approvedTokens.length; i++) {\r\n require(_approvedTokens[i] != address(0), \"_approvedToken cannot be 0\");\r\n // require(!tokenWhitelist[_approvedTokens[i]], \"duplicate approved token\");\r\n //tokenWhitelist[_approvedTokens[i]] = true;\r\n approvedTokens.push(IERC20(_approvedTokens[i]));\r\n }\r\n\r\n guildBank = new GuildBank();\r\n\r\n periodDuration = _periodDuration;\r\n votingPeriodLength = _votingPeriodLength;\r\n gracePeriodLength = _gracePeriodLength;\r\n emergencyProcessingWait = _emergencyProcessingWait;\r\n // bailoutWait = _bailoutWait;\r\n proposalDeposit = _proposalDeposit;\r\n // dilutionBound = _dilutionBound;\r\n // processingReward = _processingReward;\r\n\r\n summoningTime = now;\r\n\r\n //members[admin] = Member(admin, 1, 0, true, 0, 0);\r\n members[admin] = Member(admin, 1, true, 0);\r\n memberAddressByDelegateKey[admin] = admin;\r\n totalShares = 1;\r\n\r\n emit SummonComplete(admin, 1);\r\n }\r\n\r\n /*****************\r\n PROPOSAL FUNCTIONS\r\n *****************/\r\n function submitProposal(\r\n address applicant,\r\n uint256 sharesRequested,\r\n uint256 lootRequested,\r\n uint256 tributeOffered,\r\n address tributeToken,\r\n uint256 paymentRequested,\r\n address paymentToken,\r\n string memory details\r\n ) public nonReentrant returns (uint256 proposalId) {\r\n //require(sharesRequested.add(lootRequested) <= MAX_NUMBER_OF_SHARES_AND_LOOT, \"too many shares requested\");\r\n require(sharesRequested <= MAX_NUMBER_OF_SHARES, \"too many shares requested\");\r\n // require(tokenWhitelist[tributeToken], \"tributeToken is not whitelisted\");\r\n // require(tokenWhitelist[paymentToken], \"payment is not whitelisted\");\r\n require(applicant != address(0), \"applicant cannot be 0\");\r\n // require(members[applicant].jailed == 0, \"proposal applicant must not be jailed\");\r\n\r\n // collect tribute from proposer and store it in the Moloch until the proposal is processed\r\n //require(IERC20(tributeToken).transferFrom(msg.sender, address(this), tributeOffered), \"tribute token transfer failed\");\r\n\r\n bool[6] memory flags; // [sponsored, processed, didPass, cancelled, whitelist, guildkick]\r\n\r\n _submitProposal(applicant, sharesRequested, lootRequested, tributeOffered, tributeToken, paymentRequested, paymentToken, details, flags);\r\n return proposalCount - 1; // return proposalId - contracts calling submit might want it\r\n }\r\n\r\n // function submitWhitelistProposal(address tokenToWhitelist, string memory details) public nonReentrant returns (uint256 proposalId) {\r\n // require(tokenToWhitelist != address(0), \"must provide token address\");\r\n // require(!tokenWhitelist[tokenToWhitelist], \"cannot already have whitelisted the token\");\r\n\r\n // bool[6] memory flags; // [sponsored, processed, didPass, cancelled, whitelist, guildkick]\r\n // flags[4] = true;\r\n\r\n // _submitProposal(address(0), 0, 0, 0, tokenToWhitelist, 0, address(0), details, flags);\r\n // return proposalCount - 1;\r\n // }\r\n\r\n // function submitGuildKickProposal(address memberToKick, string memory details) public nonReentrant returns (uint256 proposalId) {\r\n // Member memory member = members[memberToKick];\r\n\r\n // require(member.shares > 0 || member.loot > 0, \"member must have at least one share or one loot\");\r\n // require(memberToKick != admin, \"the admin may not be kicked\");\r\n // require(members[memberToKick].jailed == 0, \"member must not already be jailed\");\r\n\r\n // bool[6] memory flags; // [sponsored, processed, didPass, cancelled, whitelist, guildkick]\r\n // flags[5] = true;\r\n\r\n // _submitProposal(memberToKick, 0, 0, 0, address(0), 0, address(0), details, flags);\r\n // return proposalCount - 1;\r\n // }\r\n\r\n function _submitProposal(\r\n address applicant,\r\n uint256 sharesRequested,\r\n uint256 lootRequested,\r\n uint256 tributeOffered,\r\n address tributeToken,\r\n uint256 paymentRequested,\r\n address paymentToken,\r\n string memory details,\r\n bool[6] memory flags\r\n ) internal {\r\n Proposal memory proposal = Proposal({\r\n applicant : applicant,\r\n proposer : msg.sender,\r\n sponsor : address(0),\r\n sharesRequested : sharesRequested,\r\n lootRequested : lootRequested,\r\n tributeOffered : tributeOffered,\r\n tributeToken : IERC20(tributeToken),\r\n paymentRequested : paymentRequested,\r\n paymentToken : IERC20(paymentToken),\r\n startingPeriod : 0,\r\n yesVotes : 0,\r\n noVotes : 0,\r\n flags : flags,\r\n details : details,\r\n maxTotalSharesAndLootAtYesVote : 0\r\n });\r\n\r\n proposals[proposalCount] = proposal;\r\n address memberAddress = memberAddressByDelegateKey[msg.sender];\r\n emit SubmitProposal(proposalCount, msg.sender, memberAddress, applicant, sharesRequested, lootRequested, tributeOffered, tributeToken, paymentRequested, paymentToken);\r\n proposalCount += 1;\r\n }\r\n\r\n function sponsorProposal(uint256 proposalId) public nonReentrant onlyDelegate returns (uint256) {\r\n // collect proposal deposit from sponsor and store it in the Moloch until the proposal is processed\r\n //require(depositToken.transferFrom(msg.sender, address(this), proposalDeposit), \"proposal deposit token transfer failed\");\r\n\r\n Proposal storage proposal = proposals[proposalId];\r\n\r\n require(proposal.proposer != address(0), 'proposal must have been proposed');\r\n require(!proposal.flags[0], \"proposal has already been sponsored\");\r\n require(!proposal.flags[3], \"proposal has been cancelled\");\r\n // require(members[proposal.applicant].jailed == 0, \"proposal applicant must not be jailed\");\r\n\r\n // // whitelist proposal\r\n // if (proposal.flags[4]) {\r\n // require(!tokenWhitelist[address(proposal.tributeToken)], \"cannot already have whitelisted the token\");\r\n // require(!proposedToWhitelist[address(proposal.tributeToken)], 'already proposed to whitelist');\r\n // proposedToWhitelist[address(proposal.tributeToken)] = true;\r\n\r\n // // guild kick proposal\r\n // } else if (proposal.flags[5]) {\r\n // require(!proposedToKick[proposal.applicant], 'already proposed to kick');\r\n // proposedToKick[proposal.applicant] = true;\r\n // }\r\n\r\n // compute startingPeriod for proposal\r\n uint256 startingPeriod = max(\r\n getCurrentPeriod(),\r\n proposalQueue.length == 0 ? 0 : proposals[proposalQueue[proposalQueue.length.sub(1)]].startingPeriod\r\n ).add(1);\r\n\r\n proposal.startingPeriod = startingPeriod;\r\n\r\n address memberAddress = memberAddressByDelegateKey[msg.sender];\r\n proposal.sponsor = memberAddress;\r\n\r\n proposal.flags[0] = true;\r\n\r\n // append proposal to the queue\r\n proposalQueue.push(proposalId);\r\n emit SponsorProposal(msg.sender, memberAddress, proposalId, proposalQueue.length.sub(1), startingPeriod);\r\n return proposalQueue.length.sub(1);\r\n }\r\n\r\n function submitVote(uint256 proposalIndex, uint8 uintVote) public nonReentrant onlyDelegate {\r\n address memberAddress = memberAddressByDelegateKey[msg.sender];\r\n Member storage member = members[memberAddress];\r\n\r\n require(proposalIndex < proposalQueue.length, \"proposal does not exist\");\r\n Proposal storage proposal = proposals[proposalQueue[proposalIndex]];\r\n\r\n require(uintVote < 3, \"must be less than 3\");\r\n Vote vote = Vote(uintVote);\r\n\r\n //require(getCurrentPeriod() >= proposal.startingPeriod, \"voting period has not started\");\r\n require(!hasVotingPeriodExpired(proposal.startingPeriod), \"proposal voting period has expired\");\r\n require(proposal.votesByMember[memberAddress] == Vote.Null, \"member has already voted\");\r\n require(vote == Vote.Yes || vote == Vote.No, \"vote must be either Yes or No\");\r\n\r\n proposal.votesByMember[memberAddress] = vote;\r\n\r\n if (vote == Vote.Yes) {\r\n proposal.yesVotes = proposal.yesVotes.add(member.shares);\r\n\r\n // set highest index (latest) yes vote - must be processed for member to ragequit\r\n if (proposalIndex > member.highestIndexYesVote) {\r\n member.highestIndexYesVote = proposalIndex;\r\n }\r\n\r\n // set maximum of total shares encountered at a yes vote - used to bound dilution for yes voters\r\n // if (totalShares.add(totalLoot) > proposal.maxTotalSharesAndLootAtYesVote) {\r\n // proposal.maxTotalSharesAndLootAtYesVote = totalShares.add(totalLoot);\r\n // }\r\n\r\n } else if (vote == Vote.No) {\r\n proposal.noVotes = proposal.noVotes.add(member.shares);\r\n }\r\n\r\n emit SubmitVote(proposalIndex, msg.sender, memberAddress, uintVote);\r\n }\r\n\r\n function processProposal(uint256 proposalIndex) public nonReentrant {\r\n _validateProposalForProcessing(proposalIndex);\r\n\r\n uint256 proposalId = proposalQueue[proposalIndex];\r\n Proposal storage proposal = proposals[proposalId];\r\n\r\n //require(!proposal.flags[4] && !proposal.flags[5], \"must be a standard proposal\");\r\n\r\n proposal.flags[1] = true; // processed\r\n\r\n (bool didPass, bool emergencyProcessing) = _didPass(proposalIndex);\r\n\r\n // Make the proposal fail if the new total number of shares and loot exceeds the limit\r\n // if (totalShares.add(totalLoot).add(proposal.sharesRequested).add(proposal.lootRequested) > MAX_NUMBER_OF_SHARES_AND_LOOT) {\r\n // didPass = false;\r\n // }\r\n if (totalShares.add(proposal.sharesRequested) > MAX_NUMBER_OF_SHARES) {\r\n didPass = false;\r\n }\r\n\r\n\r\n // Make the proposal fail if it is requesting more tokens as payment than the available guild bank balance\r\n // if (!emergencyProcessing && proposal.paymentToken != IERC20(0) && proposal.paymentRequested > proposal.paymentToken.balanceOf(address(guildBank))) {\r\n // didPass = false;\r\n // }\r\n\r\n // PROPOSAL PASSED\r\n if (didPass) {\r\n result=1;\r\n proposal.flags[2] = true; // didPass\r\n\r\n // if the applicant is already a member, add to their existing shares & loot\r\n if (members[proposal.applicant].exists) {\r\n members[proposal.applicant].shares = members[proposal.applicant].shares.add(proposal.sharesRequested);\r\n //members[proposal.applicant].loot = members[proposal.applicant].loot.add(proposal.lootRequested);\r\n\r\n // the applicant is a new member, create a new record for them\r\n } else {\r\n // if the applicant address is already taken by a member's delegateKey, reset it to their member address\r\n if (members[memberAddressByDelegateKey[proposal.applicant]].exists) {\r\n address memberToOverride = memberAddressByDelegateKey[proposal.applicant];\r\n memberAddressByDelegateKey[memberToOverride] = memberToOverride;\r\n members[memberToOverride].delegateKey = memberToOverride;\r\n }\r\n\r\n // use applicant address as delegateKey by default\r\n members[proposal.applicant] = Member(proposal.applicant, proposal.sharesRequested, true, 0);\r\n //members[proposal.applicant] = Member(proposal.applicant, proposal.sharesRequested, proposal.lootRequested, true, 0, 0);\r\n memberAddressByDelegateKey[proposal.applicant] = proposal.applicant;\r\n }\r\n\r\n // mint new shares & loot\r\n totalShares = totalShares.add(proposal.sharesRequested);\r\n // totalLoot = totalLoot.add(proposal.lootRequested);\r\n\r\n // require(\r\n // proposal.tributeToken.transfer(address(guildBank), proposal.tributeOffered),\r\n // \"token transfer to guild bank failed\"\r\n // );\r\n\r\n // require(\r\n // guildBank.withdrawToken(proposal.paymentToken, proposal.applicant, proposal.paymentRequested),\r\n // \"token payment to applicant failed\"\r\n // );\r\n\r\n\r\n // PROPOSAL FAILED\r\n } else {\r\n result=2;\r\n // return all tokens to the applicant (skip if emergency processing)\r\n if (!emergencyProcessing) {\r\n // require(\r\n // proposal.tributeToken.transfer(proposal.proposer, proposal.tributeOffered),\r\n // \"failing vote token transfer failed\"\r\n // );\r\n }\r\n }\r\n\r\n //_returnDeposit(proposal.sponsor);\r\n\r\n emit ProcessProposal(proposalIndex, proposalId, didPass);\r\n }\r\n\r\n// function processWhitelistProposal(uint256 proposalIndex) public nonReentrant {\r\n// _validateProposalForProcessing(proposalIndex);\r\n//\r\n// uint256 proposalId = proposalQueue[proposalIndex];\r\n// Proposal storage proposal = proposals[proposalId];\r\n//\r\n// require(proposal.flags[4], \"must be a whitelist proposal\");\r\n//\r\n// proposal.flags[1] = true; // processed\r\n//\r\n// (bool didPass,) = _didPass(proposalIndex);\r\n//\r\n// if (didPass) {\r\n// proposal.flags[2] = true; // didPass\r\n//\r\n// tokenWhitelist[address(proposal.tributeToken)] = true;\r\n// approvedTokens.push(proposal.tributeToken);\r\n// }\r\n//\r\n// proposedToWhitelist[address(proposal.tributeToken)] = false;\r\n//\r\n// _returnDeposit(proposal.sponsor);\r\n//\r\n// emit ProcessProposal(proposalIndex, proposalId, didPass);\r\n// }\r\n\r\n// function processGuildKickProposal(uint256 proposalIndex) public nonReentrant {\r\n// _validateProposalForProcessing(proposalIndex);\r\n//\r\n// uint256 proposalId = proposalQueue[proposalIndex];\r\n// Proposal storage proposal = proposals[proposalId];\r\n//\r\n// require(proposal.flags[5], \"must be a guild kick proposal\");\r\n//\r\n// proposal.flags[1] = true; // processed\r\n//\r\n// (bool didPass,) = _didPass(proposalIndex);\r\n//\r\n// if (didPass) {\r\n// proposal.flags[2] = true; // didPass\r\n// Member storage member = members[proposal.applicant];\r\n// member.jailed = proposalIndex;\r\n//\r\n// // transfer shares to loot\r\n// member.loot = member.loot.add(member.shares);\r\n// totalShares = totalShares.sub(member.shares);\r\n// totalLoot = totalLoot.add(member.shares);\r\n// member.shares = 0; // revoke all shares\r\n// }\r\n//\r\n// proposedToKick[proposal.applicant] = false;\r\n//\r\n// _returnDeposit(proposal.sponsor);\r\n//\r\n// emit ProcessProposal(proposalIndex, proposalId, didPass);\r\n// }\r\n\r\n function _didPass(uint256 proposalIndex) internal returns (bool didPass, bool emergencyProcessing) {\r\n Proposal memory proposal = proposals[proposalQueue[proposalIndex]];\r\n\r\n didPass = proposal.yesVotes > proposal.noVotes;\r\n\r\n // Make the proposal fail (and skip returning tribute) if emergencyProcessingWait is exceeded\r\n emergencyProcessing = false;\r\n // if (getCurrentPeriod() >= proposal.startingPeriod.add(votingPeriodLength).add(gracePeriodLength).add(emergencyProcessingWait)) {\r\n // emergencyWarning = true;\r\n // lastEmergencyProposalIndex = proposalIndex;\r\n // emergencyProcessing = true;\r\n // didPass = false;\r\n // }\r\n\r\n // // Make the proposal fail if it was past its grace period during the last emergency processing and it is not a guild kick proposal\r\n // if (emergencyWarning) {\r\n // if (proposal.startingPeriod <= proposals[proposalQueue[lastEmergencyProposalIndex]].startingPeriod.add(emergencyProcessingWait) && !proposal.flags[5]) {\r\n // didPass = false;\r\n // }\r\n // }\r\n\r\n // // Make the proposal fail if the dilutionBound is exceeded\r\n // if ((totalShares.add(totalLoot)).mul(dilutionBound) < proposal.maxTotalSharesAndLootAtYesVote) {\r\n // didPass = false;\r\n // }\r\n\r\n // // Make the proposal fail if the applicant is jailed\r\n // // - for standard proposals, we don't want the applicant to get any shares/loot/payment\r\n // // - for guild kick proposals, we should never be able to propose to kick a jailed member (or have two kick proposals active), so it doesn't matter\r\n // if (members[proposal.applicant].jailed != 0) {\r\n // didPass = false;\r\n // }\r\n\r\n return (didPass, emergencyProcessing);\r\n }\r\n\r\n function _validateProposalForProcessing(uint256 proposalIndex) internal view {\r\n require(proposalIndex < proposalQueue.length, \"proposal does not exist\");\r\n Proposal memory proposal = proposals[proposalQueue[proposalIndex]];\r\n\r\n //require(getCurrentPeriod() >= proposal.startingPeriod.add(votingPeriodLength).add(gracePeriodLength), \"proposal is not ready to be processed\");\r\n require(proposal.flags[1] == false, \"proposal has already been processed\");\r\n require(proposalIndex == 0 || proposals[proposalQueue[proposalIndex.sub(1)]].flags[1], \"previous proposal must be processed\");\r\n }\r\n\r\n // function _returnDeposit(address sponsor) internal {\r\n // require(\r\n // depositToken.transfer(msg.sender, processingReward),\r\n // \"failed to send processing reward to msg.sender\"\r\n // );\r\n\r\n // require(\r\n // depositToken.transfer(sponsor, proposalDeposit.sub(processingReward)),\r\n // \"failed to return proposal deposit to sponsor\"\r\n // );\r\n // }\r\n\r\n // function ragequit(uint256 sharesToBurn, uint256 lootToBurn) public nonReentrant onlyMember {\r\n // _ragequit(msg.sender, sharesToBurn, lootToBurn, approvedTokens);\r\n // }\r\n\r\n // function safeRagequit(uint256 sharesToBurn, uint256 lootToBurn, IERC20[] memory tokenList) public nonReentrant onlyMember {\r\n // // all tokens in tokenList must be in the tokenWhitelist\r\n // for (uint256 i=0; i < tokenList.length; i++) {\r\n // //require(tokenWhitelist[address(tokenList[i])], \"token must be whitelisted\");\r\n\r\n // if (i > 0) {\r\n // require(tokenList[i] > tokenList[i - 1], \"token list must be unique and in ascending order\");\r\n // }\r\n // }\r\n\r\n // _ragequit(msg.sender, sharesToBurn, lootToBurn, tokenList);\r\n // }\r\n\r\n\r\n // function _ragequit(address memberAddress, uint256 sharesToBurn, uint256 lootToBurn, IERC20[] memory tokenList) internal {\r\n // //uint256 initialTotalSharesAndLoot = totalShares.add(totalLoot);\r\n // uint256 initialTotalSharesAndLoot = totalShares.add(0);\r\n\r\n // Member storage member = members[memberAddress];\r\n\r\n // require(member.shares >= sharesToBurn, \"insufficient shares\");\r\n // //require(member.loot >= lootToBurn, \"insufficient loot\");\r\n\r\n // require(canRagequit(member.highestIndexYesVote), \"cannot ragequit until highest index proposal member voted YES on is processed\");\r\n\r\n // //uint256 sharesAndLootToBurn = sharesToBurn.add(lootToBurn);\r\n\r\n // // burn shares and loot\r\n // member.shares = member.shares.sub(sharesToBurn);\r\n // //member.loot = member.loot.sub(lootToBurn);\r\n // totalShares = totalShares.sub(sharesToBurn);\r\n // //totalLoot = totalLoot.sub(lootToBurn);\r\n\r\n // // instruct guildBank to transfer fair share of tokens to the ragequitter\r\n // // require(\r\n // // guildBank.withdraw(memberAddress, sharesAndLootToBurn, initialTotalSharesAndLoot, tokenList),\r\n // // \"withdrawal of tokens from guildBank failed\"\r\n // // );\r\n // require(\r\n // guildBank.withdraw(memberAddress, sharesToBurn, initialTotalSharesAndLoot, tokenList),\r\n // \"withdrawal of tokens from guildBank failed\"\r\n // );\r\n\r\n // emit Ragequit(msg.sender, sharesToBurn, lootToBurn);\r\n // }\r\n\r\n// function ragekick(address memberToKick) public nonReentrant {\r\n// Member storage member = members[memberToKick];\r\n//\r\n// require(member.jailed != 0, \"member must be in jail\");\r\n// require(member.loot > 0, \"member must have some loot\"); // note - should be impossible for jailed member to have shares\r\n// require(canRagequit(member.highestIndexYesVote), \"cannot ragequit until highest index proposal member voted YES on is processed\");\r\n// require(!canBailout(memberToKick), \"bailoutWait has passed, member must be bailed out\");\r\n//\r\n// _ragequit(memberToKick, 0, member.loot, approvedTokens);\r\n// }\r\n//\r\n// function bailout(address memberToBail) public nonReentrant {\r\n// Member storage member = members[memberToBail];\r\n//\r\n// require(member.jailed != 0, \"member must be in jail\");\r\n// require(member.loot > 0, \"member must have some loot\"); // note - should be impossible for jailed member to have shares\r\n// require(canBailout(memberToBail), \"cannot bailout yet\");\r\n//\r\n// members[admin].loot = members[admin].loot.add(member.loot);\r\n// member.loot = 0;\r\n// }\r\n\r\n // function cancelProposal(uint256 proposalId) public nonReentrant {\r\n // Proposal storage proposal = proposals[proposalId];\r\n // require(!proposal.flags[0], \"proposal has already been sponsored\");\r\n // require(!proposal.flags[3], \"proposal has already been cancelled\");\r\n // require(msg.sender == proposal.proposer, \"solely the proposer can cancel\");\r\n\r\n // proposal.flags[3] = true; // cancelled\r\n\r\n // require(\r\n // proposal.tributeToken.transfer(proposal.proposer, proposal.tributeOffered),\r\n // \"failed to return tribute to proposer\"\r\n // );\r\n\r\n // emit CancelProposal(proposalId, msg.sender);\r\n // }\r\n\r\n // function updateDelegateKey(address newDelegateKey) public nonReentrant onlyShareholder {\r\n // require(newDelegateKey != address(0), \"newDelegateKey cannot be 0\");\r\n\r\n // // skip checks if member is setting the delegate key to theisr member address\r\n // if (newDelegateKey != msg.sender) {\r\n // require(!members[newDelegateKey].exists, \"cannot overwrite existing members\");\r\n // require(!members[memberAddressByDelegateKey[newDelegateKey]].exists, \"cannot overwrite existing delegate keys\");\r\n // }\r\n\r\n // Member storage member = members[msg.sender];\r\n // memberAddressByDelegateKey[member.delegateKey] = address(0);\r\n // memberAddressByDelegateKey[newDelegateKey] = msg.sender;\r\n // member.delegateKey = newDelegateKey;\r\n\r\n // emit UpdateDelegateKey(msg.sender, newDelegateKey);\r\n // }\r\n\r\n /***************\r\n GETTER FUNCTIONS\r\n ***************/\r\n function max(uint256 x, uint256 y) internal pure returns (uint256) {\r\n return x >= y ? x : y;\r\n }\r\n\r\n function getCurrentPeriod() public view returns (uint256) {\r\n return now.sub(summoningTime).div(periodDuration);\r\n }\r\n\r\n function getProposalQueueLength() public view returns (uint256) {\r\n return proposalQueue.length;\r\n }\r\n\r\n function getProposalFlags(uint256 proposalId) public view returns (bool[6] memory) {\r\n return proposals[proposalId].flags;\r\n }\r\n\r\n // can only ragequit if the latest proposal you voted YES on has been processed\r\n function canRagequit(uint256 highestIndexYesVote) public view returns (bool) {\r\n require(highestIndexYesVote < proposalQueue.length, \"proposal does not exist\");\r\n return proposals[proposalQueue[highestIndexYesVote]].flags[1];\r\n }\r\n\r\n// function canBailout(address memberToBail) public view returns (bool) {\r\n// Member memory member = members[memberToBail];\r\n//\r\n// // get the starting period of the proposal to start the bailout wait from\r\n// // - either the guild kick proposal or the member's highest index yes vote\r\n// uint256 bailoutWaitStartingPeriod = member.highestIndexYesVote > member.jailed\r\n// ? proposals[proposalQueue[member.highestIndexYesVote]].startingPeriod\r\n// : proposals[proposalQueue[member.jailed]].startingPeriod;\r\n//\r\n// // bailout wait starts after proposal grace period ends\r\n// return getCurrentPeriod() >= bailoutWaitStartingPeriod.add(votingPeriodLength).add(gracePeriodLength).add(bailoutWait);\r\n// }\r\n//\r\n function hasVotingPeriodExpired(uint256 startingPeriod) public view returns (bool) {\r\n return getCurrentPeriod() >= startingPeriod.add(votingPeriodLength);\r\n }\r\n\r\n function getMemberProposalVote(address memberAddress, uint256 proposalIndex) public view returns (Vote) {\r\n require(members[memberAddress].exists, \"member does not exist\");\r\n require(proposalIndex < proposalQueue.length, \"proposal does not exist\");\r\n return proposals[proposalQueue[proposalIndex]].votesByMember[memberAddress];\r\n }\r\n function getProposal () public view returns(uint256){\r\n return proposalCount;\r\n }\r\n function getResult () public view returns(uint256){\r\n return result;//checks proposal passed or not\r\n }\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\Governance.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Governance.sol", - "exportedSymbols": { - "Governance": [ - 7480 - ] - }, - "id": 7481, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 6235, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:13" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "./oz/SafeMath.sol", - "id": 6236, - "nodeType": "ImportDirective", - "scope": 7481, - "sourceUnit": 9858, - "src": "36:27:13", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", - "file": "./oz/IERC20.sol", - "id": 6237, - "nodeType": "ImportDirective", - "scope": 7481, - "sourceUnit": 9720, - "src": "65:25:13", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol", - "file": "./oz/ReentrancyGuard.sol", - "id": 6238, - "nodeType": "ImportDirective", - "scope": 7481, - "sourceUnit": 9750, - "src": "92:34:13", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol", - "file": "./GuildBank.sol", - "id": 6239, - "nodeType": "ImportDirective", - "scope": 7481, - "sourceUnit": 7659, - "src": "128:25:13", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 6240, - "name": "ReentrancyGuard", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9749, - "src": "180:15:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$9749", - "typeString": "contract ReentrancyGuard" - } - }, - "id": 6241, - "nodeType": "InheritanceSpecifier", - "src": "180:15:13" - } - ], - "contractDependencies": [ - 7658, - 9749 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 7480, - "linearizedBaseContracts": [ - 7480, - 9749 - ], - "name": "Governance", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 6244, - "libraryName": { - "contractScope": null, - "id": 6242, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "209:8:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "203:27:13", - "typeName": { - "id": 6243, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "222:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 6246, - "name": "admin", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "304:20:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6245, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "304:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6248, - "name": "periodDuration", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "388:29:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6247, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "388:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6250, - "name": "votingPeriodLength", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "486:33:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6249, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "486:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6252, - "name": "gracePeriodLength", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "559:32:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6251, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "559:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6254, - "name": "emergencyProcessingWait", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "631:38:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "631:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6256, - "name": "proposalDeposit", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "778:30:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "778:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6258, - "name": "summoningTime", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "1129:28:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1129:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6260, - "name": "depositToken", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "1208:26:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 6259, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "1208:6:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6262, - "name": "guildBank", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "1293:26:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - }, - "typeName": { - "contractScope": null, - "id": 6261, - "name": "GuildBank", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7658, - "src": "1293:9:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": true, - "id": 6267, - "name": "MAX_VOTING_PERIOD_LENGTH", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "1577:50:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6263, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1577:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - }, - "id": 6266, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 6264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1621:2:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3138", - "id": 6265, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1625:2:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "1621:6:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - } - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 6272, - "name": "MAX_GRACE_PERIOD_LENGTH", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "1669:49:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6268, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1669:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - }, - "id": 6271, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 6269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1712:2:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3138", - "id": 6270, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1716:2:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "1712:6:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - } - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 6277, - "name": "MAX_NUMBER_OF_SHARES", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "2103:46:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6273, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2103:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - }, - "id": 6276, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 6274, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2143:2:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3138", - "id": 6275, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2147:2:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "2143:6:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - } - }, - "visibility": "internal" - }, - { - "anonymous": false, - "documentation": null, - "id": 6299, - "name": "SubmitProposal", - "nodeType": "EventDefinition", - "parameters": { - "id": 6298, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6279, - "indexed": false, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 6299, - "src": "2289:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6278, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2289:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6281, - "indexed": true, - "name": "delegateKey", - "nodeType": "VariableDeclaration", - "scope": 6299, - "src": "2312:27:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6280, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2312:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6283, - "indexed": true, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 6299, - "src": "2341:29:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6282, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2341:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6285, - "indexed": true, - "name": "applicant", - "nodeType": "VariableDeclaration", - "scope": 6299, - "src": "2372:25:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6284, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2372:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6287, - "indexed": false, - "name": "sharesRequested", - "nodeType": "VariableDeclaration", - "scope": 6299, - "src": "2399:23:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6286, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2399:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6289, - "indexed": false, - "name": "lootRequested", - "nodeType": "VariableDeclaration", - "scope": 6299, - "src": "2424:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6288, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2424:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6291, - "indexed": false, - "name": "tributeOffered", - "nodeType": "VariableDeclaration", - "scope": 6299, - "src": "2447:22:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6290, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2447:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6293, - "indexed": false, - "name": "tributeToken", - "nodeType": "VariableDeclaration", - "scope": 6299, - "src": "2471:20:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6292, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2471:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6295, - "indexed": false, - "name": "paymentRequested", - "nodeType": "VariableDeclaration", - "scope": 6299, - "src": "2493:24:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2493:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6297, - "indexed": false, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 6299, - "src": "2519:20:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6296, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2519:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2288:252:13" - }, - "src": "2268:273:13" - }, - { - "anonymous": false, - "documentation": null, - "id": 6311, - "name": "SponsorProposal", - "nodeType": "EventDefinition", - "parameters": { - "id": 6310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6301, - "indexed": true, - "name": "delegateKey", - "nodeType": "VariableDeclaration", - "scope": 6311, - "src": "2569:27:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6300, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2569:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6303, - "indexed": true, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 6311, - "src": "2598:29:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6302, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2598:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6305, - "indexed": false, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 6311, - "src": "2629:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6304, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2629:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6307, - "indexed": false, - "name": "proposalQueueIndex", - "nodeType": "VariableDeclaration", - "scope": 6311, - "src": "2652:26:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6306, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2652:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6309, - "indexed": false, - "name": "startingPeriod", - "nodeType": "VariableDeclaration", - "scope": 6311, - "src": "2680:22:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6308, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2680:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2568:135:13" - }, - "src": "2547:157:13" - }, - { - "anonymous": false, - "documentation": null, - "id": 6321, - "name": "SubmitVote", - "nodeType": "EventDefinition", - "parameters": { - "id": 6320, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6313, - "indexed": true, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 6321, - "src": "2727:29:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6312, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2727:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6315, - "indexed": true, - "name": "delegateKey", - "nodeType": "VariableDeclaration", - "scope": 6321, - "src": "2758:27:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6314, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2758:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6317, - "indexed": true, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 6321, - "src": "2787:29:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6316, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2787:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6319, - "indexed": false, - "name": "uintVote", - "nodeType": "VariableDeclaration", - "scope": 6321, - "src": "2818:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 6318, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "2818:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:107:13" - }, - "src": "2710:124:13" - }, - { - "anonymous": false, - "documentation": null, - "id": 6329, - "name": "ProcessProposal", - "nodeType": "EventDefinition", - "parameters": { - "id": 6328, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6323, - "indexed": true, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 6329, - "src": "2862:29:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6322, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2862:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6325, - "indexed": true, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 6329, - "src": "2893:26:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6324, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2893:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6327, - "indexed": false, - "name": "didPass", - "nodeType": "VariableDeclaration", - "scope": 6329, - "src": "2921:12:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 6326, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2921:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2861:73:13" - }, - "src": "2840:95:13" - }, - { - "anonymous": false, - "documentation": null, - "id": 6337, - "name": "Ragequit", - "nodeType": "EventDefinition", - "parameters": { - "id": 6336, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6331, - "indexed": true, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 6337, - "src": "2956:29:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6330, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2956:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6333, - "indexed": false, - "name": "sharesToBurn", - "nodeType": "VariableDeclaration", - "scope": 6337, - "src": "2987:20:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6332, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2987:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6335, - "indexed": false, - "name": "lootToBurn", - "nodeType": "VariableDeclaration", - "scope": 6337, - "src": "3009:18:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6334, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3009:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2955:73:13" - }, - "src": "2941:88:13" - }, - { - "anonymous": false, - "documentation": null, - "id": 6343, - "name": "CancelProposal", - "nodeType": "EventDefinition", - "parameters": { - "id": 6342, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6339, - "indexed": true, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 6343, - "src": "3056:29:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6338, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3056:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6341, - "indexed": false, - "name": "applicantAddress", - "nodeType": "VariableDeclaration", - "scope": 6343, - "src": "3087:24:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6340, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3087:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3055:57:13" - }, - "src": "3035:78:13" - }, - { - "anonymous": false, - "documentation": null, - "id": 6349, - "name": "UpdateDelegateKey", - "nodeType": "EventDefinition", - "parameters": { - "id": 6348, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6345, - "indexed": true, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 6349, - "src": "3143:29:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6344, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3143:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6347, - "indexed": false, - "name": "newDelegateKey", - "nodeType": "VariableDeclaration", - "scope": 6349, - "src": "3174:22:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6346, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3174:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3142:55:13" - }, - "src": "3119:79:13" - }, - { - "anonymous": false, - "documentation": null, - "id": 6355, - "name": "SummonComplete", - "nodeType": "EventDefinition", - "parameters": { - "id": 6354, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6351, - "indexed": true, - "name": "admin", - "nodeType": "VariableDeclaration", - "scope": 6355, - "src": "3225:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6350, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3225:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6353, - "indexed": false, - "name": "shares", - "nodeType": "VariableDeclaration", - "scope": 6355, - "src": "3248:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6352, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3248:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3224:39:13" - }, - "src": "3204:60:13" - }, - { - "constant": false, - "id": 6358, - "name": "proposalCount", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "3356:32:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6356, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3356:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 6357, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3387:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 6361, - "name": "totalShares", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "3424:30:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6359, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3424:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 6360, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3453:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 6363, - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "3566:21:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6362, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3566:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6366, - "name": "emergencyWarning", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "3596:36:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 6364, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3596:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 6365, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3627:5:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 6369, - "name": "lastEmergencyProposalIndex", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "3695:45:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6367, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3695:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 6368, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3739:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "canonicalName": "Governance.Vote", - "id": 6373, - "members": [ - { - "id": 6370, - "name": "Null", - "nodeType": "EnumValue", - "src": "3837:4:13" - }, - { - "id": 6371, - "name": "Yes", - "nodeType": "EnumValue", - "src": "3892:3:13" - }, - { - "id": 6372, - "name": "No", - "nodeType": "EnumValue", - "src": "3906:2:13" - } - ], - "name": "Vote", - "nodeType": "EnumDefinition", - "src": "3816:99:13" - }, - { - "canonicalName": "Governance.Member", - "id": 6382, - "members": [ - { - "constant": false, - "id": 6375, - "name": "delegateKey", - "nodeType": "VariableDeclaration", - "scope": 6382, - "src": "3948:19:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6374, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3948:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6377, - "name": "shares", - "nodeType": "VariableDeclaration", - "scope": 6382, - "src": "4081:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6376, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4081:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6379, - "name": "exists", - "nodeType": "VariableDeclaration", - "scope": 6382, - "src": "4260:11:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 6378, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4260:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6381, - "name": "highestIndexYesVote", - "nodeType": "VariableDeclaration", - "scope": 6382, - "src": "4328:27:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6380, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4328:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Member", - "nodeType": "StructDefinition", - "scope": 7480, - "src": "3923:643:13", - "visibility": "public" - }, - { - "canonicalName": "Governance.Proposal", - "id": 6419, - "members": [ - { - "constant": false, - "id": 6384, - "name": "applicant", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "4601:17:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6383, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4601:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6386, - "name": "proposer", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "4767:16:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6385, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4767:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6388, - "name": "sponsor", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "4857:15:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6387, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4857:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6390, - "name": "sharesRequested", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "4952:23:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6389, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4952:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6392, - "name": "lootRequested", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "5033:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6391, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5033:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6394, - "name": "tributeOffered", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "5115:22:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5115:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6396, - "name": "tributeToken", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "5187:19:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 6395, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "5187:6:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6398, - "name": "paymentRequested", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "5253:24:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5253:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6400, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "5329:19:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 6399, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "5329:6:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6402, - "name": "startingPeriod", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "5395:22:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6401, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5395:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6404, - "name": "yesVotes", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "5486:16:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6403, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5486:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6406, - "name": "noVotes", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "5564:15:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6405, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5564:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6410, - "name": "flags", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "5640:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", - "typeString": "bool[6]" - }, - "typeName": { - "baseType": { - "id": 6407, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5640:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6409, - "length": { - "argumentTypes": null, - "hexValue": "36", - "id": 6408, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5645:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - }, - "value": "6" - }, - "nodeType": "ArrayTypeName", - "src": "5640:7:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", - "typeString": "bool[6]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6412, - "name": "details", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "5732:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 6411, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5732:6:13", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6414, - "name": "maxTotalSharesAndLootAtYesVote", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "5818:38:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6413, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6418, - "name": "votesByMember", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "5943:38:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$6373_$", - "typeString": "mapping(address => enum Governance.Vote)" - }, - "typeName": { - "id": 6417, - "keyType": { - "id": 6415, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5951:7:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "5943:24:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$6373_$", - "typeString": "mapping(address => enum Governance.Vote)" - }, - "valueType": { - "contractScope": null, - "id": 6416, - "name": "Vote", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6373, - "src": "5962:4:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Proposal", - "nodeType": "StructDefinition", - "scope": 7480, - "src": "4574:1460:13", - "visibility": "public" - }, - { - "constant": false, - "id": 6422, - "name": "approvedTokens", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "6098:30:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage", - "typeString": "contract IERC20[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 6420, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "6098:6:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 6421, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6098:8:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage_ptr", - "typeString": "contract IERC20[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6426, - "name": "members", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "6256:41:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member)" - }, - "typeName": { - "id": 6425, - "keyType": { - "id": 6423, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6264:7:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "6256:26:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member)" - }, - "valueType": { - "contractScope": null, - "id": 6424, - "name": "Member", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6382, - "src": "6275:6:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", - "typeString": "struct Governance.Member" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6430, - "name": "memberAddressByDelegateKey", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "6304:61:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "typeName": { - "id": 6429, - "keyType": { - "id": 6427, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6312:7:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "6304:27:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "valueType": { - "id": 6428, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6323:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6434, - "name": "proposals", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "6374:45:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal)" - }, - "typeName": { - "id": 6433, - "keyType": { - "id": 6431, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6382:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "6374:28:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal)" - }, - "valueType": { - "contractScope": null, - "id": 6432, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6419, - "src": "6393:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6437, - "name": "proposalQueue", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "6428:30:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 6435, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6428:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6436, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6428:9:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 6451, - "nodeType": "Block", - "src": "6643:87:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6440, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "6662:7:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member storage ref)" - } - }, - "id": 6443, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6441, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6670:3:13", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6670:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6662:19:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "id": 6444, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 6377, - "src": "6662:26:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6691:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6662:30:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f742061206d656d626572", - "id": 6447, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6695:14:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8a38730a0a31747b89b97e72db1b281f9d6fdcc9116c7bee85aba010b162e996", - "typeString": "literal_string \"not a member\"" - }, - "value": "not a member" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8a38730a0a31747b89b97e72db1b281f9d6fdcc9116c7bee85aba010b162e996", - "typeString": "literal_string \"not a member\"" - } - ], - "id": 6439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "6654:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6654:56:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6449, - "nodeType": "ExpressionStatement", - "src": "6654:56:13" - }, - { - "id": 6450, - "nodeType": "PlaceholderStatement", - "src": "6721:1:13" - } - ] - }, - "documentation": null, - "id": 6452, - "name": "onlyMember", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 6438, - "nodeType": "ParameterList", - "parameters": [], - "src": "6643:0:13" - }, - "src": "6623:107:13", - "visibility": "internal" - }, - { - "body": { - "id": 6466, - "nodeType": "Block", - "src": "6763:91:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6455, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "6782:7:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member storage ref)" - } - }, - "id": 6458, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6456, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6790:3:13", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6790:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6782:19:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "id": 6459, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 6377, - "src": "6782:26:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6460, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6811:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6782:30:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f742061207368617265686f6c646572", - "id": 6462, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6814:19:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f04c1891c0a18f803b467b9992e2d2738663e155d08d2aaee274da8a131a0bdb", - "typeString": "literal_string \"not a shareholder\"" - }, - "value": "not a shareholder" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f04c1891c0a18f803b467b9992e2d2738663e155d08d2aaee274da8a131a0bdb", - "typeString": "literal_string \"not a shareholder\"" - } - ], - "id": 6454, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "6774:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6774:60:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6464, - "nodeType": "ExpressionStatement", - "src": "6774:60:13" - }, - { - "id": 6465, - "nodeType": "PlaceholderStatement", - "src": "6845:1:13" - } - ] - }, - "documentation": null, - "id": 6467, - "name": "onlyShareholder", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 6453, - "nodeType": "ParameterList", - "parameters": [], - "src": "6763:0:13" - }, - "src": "6738:116:13", - "visibility": "internal" - }, - { - "body": { - "id": 6483, - "nodeType": "Block", - "src": "6884:116:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6478, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6470, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "6903:7:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member storage ref)" - } - }, - "id": 6475, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6471, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6430, - "src": "6911:26:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 6474, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6472, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6938:3:13", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6938:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6911:38:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6903:47:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "id": 6476, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 6377, - "src": "6903:54:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6477, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6960:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6903:58:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f7420612064656c6567617465", - "id": 6479, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6963:16:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4d2048a93053cc7fa7807c657f537fc9d130edf6819e714c97d45589e5ba66dc", - "typeString": "literal_string \"not a delegate\"" - }, - "value": "not a delegate" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4d2048a93053cc7fa7807c657f537fc9d130edf6819e714c97d45589e5ba66dc", - "typeString": "literal_string \"not a delegate\"" - } - ], - "id": 6469, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "6895:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6480, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6895:85:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6481, - "nodeType": "ExpressionStatement", - "src": "6895:85:13" - }, - { - "id": 6482, - "nodeType": "PlaceholderStatement", - "src": "6991:1:13" - } - ] - }, - "documentation": null, - "id": 6484, - "name": "onlyDelegate", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 6468, - "nodeType": "ParameterList", - "parameters": [], - "src": "6884:0:13" - }, - "src": "6862:138:13", - "visibility": "internal" - }, - { - "body": { - "id": 6663, - "nodeType": "Block", - "src": "7390:2232:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 6514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6510, - "name": "_admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6486, - "src": "7409:6:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 6512, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7427:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 6511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7419:7:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 6513, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7419:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7409:20:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "61646d696e2063616e6e6f742062652030", - "id": 6515, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7431:19:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_34fd041aec796669a45725a5f2b52fe72174400c96ad9493bcab3ab40112f810", - "typeString": "literal_string \"admin cannot be 0\"" - }, - "value": "admin cannot be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_34fd041aec796669a45725a5f2b52fe72174400c96ad9493bcab3ab40112f810", - "typeString": "literal_string \"admin cannot be 0\"" - } - ], - "id": 6509, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7401:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7401:50:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6517, - "nodeType": "ExpressionStatement", - "src": "7401:50:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6519, - "name": "_periodDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6492, - "src": "7470:15:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6520, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7488:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7470:19:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f706572696f644475726174696f6e2063616e6e6f742062652030", - "id": 6522, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7491:29:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_dcaa7db0431116123c67314944edc83f1ee2d0251a1b070940664f004c74012d", - "typeString": "literal_string \"_periodDuration cannot be 0\"" - }, - "value": "_periodDuration cannot be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_dcaa7db0431116123c67314944edc83f1ee2d0251a1b070940664f004c74012d", - "typeString": "literal_string \"_periodDuration cannot be 0\"" - } - ], - "id": 6518, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7462:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7462:59:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6524, - "nodeType": "ExpressionStatement", - "src": "7462:59:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6526, - "name": "_votingPeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6494, - "src": "7540:19:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6527, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7562:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7540:23:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f766f74696e67506572696f644c656e6774682063616e6e6f742062652030", - "id": 6529, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7565:33:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_90c9559254cdd6a8c5e39e97417540a97cc2c7e6b004410ebb33d7f7769bc53b", - "typeString": "literal_string \"_votingPeriodLength cannot be 0\"" - }, - "value": "_votingPeriodLength cannot be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_90c9559254cdd6a8c5e39e97417540a97cc2c7e6b004410ebb33d7f7769bc53b", - "typeString": "literal_string \"_votingPeriodLength cannot be 0\"" - } - ], - "id": 6525, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7532:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7532:67:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6531, - "nodeType": "ExpressionStatement", - "src": "7532:67:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6533, - "name": "_votingPeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6494, - "src": "7618:19:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 6534, - "name": "MAX_VOTING_PERIOD_LENGTH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6267, - "src": "7641:24:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7618:47:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f766f74696e67506572696f644c656e6774682065786365656473206c696d6974", - "id": 6536, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7667:35:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7cba4ff2b7c48d54c20d93277dca7b9500525168ffa3f2b94651177b72c45612", - "typeString": "literal_string \"_votingPeriodLength exceeds limit\"" - }, - "value": "_votingPeriodLength exceeds limit" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7cba4ff2b7c48d54c20d93277dca7b9500525168ffa3f2b94651177b72c45612", - "typeString": "literal_string \"_votingPeriodLength exceeds limit\"" - } - ], - "id": 6532, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7610:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7610:93:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6538, - "nodeType": "ExpressionStatement", - "src": "7610:93:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6540, - "name": "_gracePeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6496, - "src": "7722:18:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 6541, - "name": "MAX_GRACE_PERIOD_LENGTH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6272, - "src": "7744:23:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7722:45:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f6772616365506572696f644c656e6774682065786365656473206c696d6974", - "id": 6543, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7769:34:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_94e4c02e557a13b96fee3c87ad3ed501d16c78e01ccadd26d54a03a2773f4e60", - "typeString": "literal_string \"_gracePeriodLength exceeds limit\"" - }, - "value": "_gracePeriodLength exceeds limit" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_94e4c02e557a13b96fee3c87ad3ed501d16c78e01ccadd26d54a03a2773f4e60", - "typeString": "literal_string \"_gracePeriodLength exceeds limit\"" - } - ], - "id": 6539, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7714:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7714:90:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6545, - "nodeType": "ExpressionStatement", - "src": "7714:90:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6549, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6547, - "name": "_emergencyProcessingWait", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6498, - "src": "7823:24:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7850:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7823:28:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f656d657267656e637950726f63657373696e67576169742063616e6e6f742062652030", - "id": 6550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7853:38:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bbc33dc034ca97464527af241134c23d7681bf4b99d8886c6c16474b9fa58717", - "typeString": "literal_string \"_emergencyProcessingWait cannot be 0\"" - }, - "value": "_emergencyProcessingWait cannot be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_bbc33dc034ca97464527af241134c23d7681bf4b99d8886c6c16474b9fa58717", - "typeString": "literal_string \"_emergencyProcessingWait cannot be 0\"" - } - ], - "id": 6546, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7815:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7815:77:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6552, - "nodeType": "ExpressionStatement", - "src": "7815:77:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6554, - "name": "_approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6490, - "src": "8282:15:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - } - }, - "id": 6555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8282:22:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6556, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8307:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8282:26:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e656564206174206c65617374206f6e6520617070726f76656420746f6b656e", - "id": 6558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8310:34:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c6d3134f6bde8083414251001f93c467973bb02a0dc01b762665902389253170", - "typeString": "literal_string \"need at least one approved token\"" - }, - "value": "need at least one approved token" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c6d3134f6bde8083414251001f93c467973bb02a0dc01b762665902389253170", - "typeString": "literal_string \"need at least one approved token\"" - } - ], - "id": 6553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "8274:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8274:71:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6560, - "nodeType": "ExpressionStatement", - "src": "8274:71:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6561, - "name": "admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6246, - "src": "8479:5:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6562, - "name": "_admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6486, - "src": "8487:6:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8479:14:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6564, - "nodeType": "ExpressionStatement", - "src": "8479:14:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6565, - "name": "depositToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6260, - "src": "8506:12:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6567, - "name": "_approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6490, - "src": "8528:15:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - } - }, - "id": 6569, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8544:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8528:18:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6566, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9719, - "src": "8521:6:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 6570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8521:26:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "src": "8506:41:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 6572, - "nodeType": "ExpressionStatement", - "src": "8506:41:13" - }, - { - "body": { - "id": 6605, - "nodeType": "Block", - "src": "8613:309:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 6591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6585, - "name": "_approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6490, - "src": "8637:15:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - } - }, - "id": 6587, - "indexExpression": { - "argumentTypes": null, - "id": 6586, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6574, - "src": "8653:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8637:18:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 6589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8667:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 6588, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8659:7:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 6590, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8659:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "8637:32:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f617070726f766564546f6b656e2063616e6e6f742062652030", - "id": 6592, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8671:28:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b40b09ae38f1346b8a26ea643f189c8d547e60b5d4d63ceb6e8e43507dd5bc8", - "typeString": "literal_string \"_approvedToken cannot be 0\"" - }, - "value": "_approvedToken cannot be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5b40b09ae38f1346b8a26ea643f189c8d547e60b5d4d63ceb6e8e43507dd5bc8", - "typeString": "literal_string \"_approvedToken cannot be 0\"" - } - ], - "id": 6584, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "8629:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8629:71:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6594, - "nodeType": "ExpressionStatement", - "src": "8629:71:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6599, - "name": "_approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6490, - "src": "8890:15:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - } - }, - "id": 6601, - "indexExpression": { - "argumentTypes": null, - "id": 6600, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6574, - "src": "8906:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8890:18:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6598, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9719, - "src": "8883:6:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 6602, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8883:26:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - ], - "expression": { - "argumentTypes": null, - "id": 6595, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6422, - "src": "8863:14:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage", - "typeString": "contract IERC20[] storage ref" - } - }, - "id": 6597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8863:19:13", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_IERC20_$9719_$returns$_t_uint256_$", - "typeString": "function (contract IERC20) returns (uint256)" - } - }, - "id": 6603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8863:47:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6604, - "nodeType": "ExpressionStatement", - "src": "8863:47:13" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6577, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6574, - "src": "8580:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6578, - "name": "_approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6490, - "src": "8584:15:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - } - }, - "id": 6579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8584:22:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8580:26:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6606, - "initializationExpression": { - "assignments": [ - 6574 - ], - "declarations": [ - { - "constant": false, - "id": 6574, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 6606, - "src": "8565:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6573, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8565:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6576, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 6575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8577:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "8565:13:13" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 6582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "8608:3:13", - "subExpression": { - "argumentTypes": null, - "id": 6581, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6574, - "src": "8608:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6583, - "nodeType": "ExpressionStatement", - "src": "8608:3:13" - }, - "nodeType": "ForStatement", - "src": "8560:362:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6607, - "name": "guildBank", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6262, - "src": "8934:9:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 6609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "8946:13:13", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_GuildBank_$7658_$", - "typeString": "function () returns (contract GuildBank)" - }, - "typeName": { - "contractScope": null, - "id": 6608, - "name": "GuildBank", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7658, - "src": "8950:9:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - } - }, - "id": 6610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8946:15:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - }, - "src": "8934:27:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - }, - "id": 6612, - "nodeType": "ExpressionStatement", - "src": "8934:27:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6613, - "name": "periodDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6248, - "src": "8974:14:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6614, - "name": "_periodDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6492, - "src": "8991:15:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8974:32:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6616, - "nodeType": "ExpressionStatement", - "src": "8974:32:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6617, - "name": "votingPeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6250, - "src": "9017:18:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6618, - "name": "_votingPeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6494, - "src": "9038:19:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9017:40:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6620, - "nodeType": "ExpressionStatement", - "src": "9017:40:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6623, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6621, - "name": "gracePeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6252, - "src": "9068:17:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6622, - "name": "_gracePeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6496, - "src": "9088:18:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9068:38:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6624, - "nodeType": "ExpressionStatement", - "src": "9068:38:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6627, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6625, - "name": "emergencyProcessingWait", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6254, - "src": "9117:23:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6626, - "name": "_emergencyProcessingWait", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6498, - "src": "9143:24:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9117:50:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6628, - "nodeType": "ExpressionStatement", - "src": "9117:50:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6629, - "name": "proposalDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6256, - "src": "9218:15:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6630, - "name": "_proposalDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6502, - "src": "9236:16:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9218:34:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6632, - "nodeType": "ExpressionStatement", - "src": "9218:34:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6633, - "name": "summoningTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6258, - "src": "9359:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6634, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10413, - "src": "9375:3:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9359:19:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6636, - "nodeType": "ExpressionStatement", - "src": "9359:19:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6637, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "9452:7:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member storage ref)" - } - }, - "id": 6639, - "indexExpression": { - "argumentTypes": null, - "id": 6638, - "name": "admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6246, - "src": "9460:5:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9452:14:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6641, - "name": "admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6246, - "src": "9476:5:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "31", - "id": 6642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9483:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 6643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9486:4:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 6644, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9492:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 6640, - "name": "Member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6382, - "src": "9469:6:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Member_$6382_storage_ptr_$", - "typeString": "type(struct Governance.Member storage pointer)" - } - }, - "id": 6645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9469:25:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_memory", - "typeString": "struct Governance.Member memory" - } - }, - "src": "9452:42:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "id": 6647, - "nodeType": "ExpressionStatement", - "src": "9452:42:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6652, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6648, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6430, - "src": "9505:26:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 6650, - "indexExpression": { - "argumentTypes": null, - "id": 6649, - "name": "admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6246, - "src": "9532:5:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9505:33:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6651, - "name": "admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6246, - "src": "9541:5:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "9505:41:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6653, - "nodeType": "ExpressionStatement", - "src": "9505:41:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6654, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6361, - "src": "9557:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 6655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9571:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9557:15:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6657, - "nodeType": "ExpressionStatement", - "src": "9557:15:13" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6659, - "name": "admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6246, - "src": "9605:5:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "31", - "id": 6660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9612:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 6658, - "name": "SummonComplete", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6355, - "src": "9590:14:13", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 6661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9590:24:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6662, - "nodeType": "EmitStatement", - "src": "9585:29:13" - } - ] - }, - "documentation": null, - "id": 6664, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6507, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6486, - "name": "_admin", - "nodeType": "VariableDeclaration", - "scope": 6664, - "src": "7030:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6485, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7030:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6490, - "name": "_approvedTokens", - "nodeType": "VariableDeclaration", - "scope": 6664, - "src": "7055:33:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1]" - }, - "typeName": { - "baseType": { - "id": 6487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7055:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6489, - "length": { - "argumentTypes": null, - "hexValue": "31", - "id": 6488, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7063:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "ArrayTypeName", - "src": "7055:10:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_storage_ptr", - "typeString": "address[1]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6492, - "name": "_periodDuration", - "nodeType": "VariableDeclaration", - "scope": 6664, - "src": "7099:23:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6491, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7099:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6494, - "name": "_votingPeriodLength", - "nodeType": "VariableDeclaration", - "scope": 6664, - "src": "7133:27:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6493, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7133:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6496, - "name": "_gracePeriodLength", - "nodeType": "VariableDeclaration", - "scope": 6664, - "src": "7171:26:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6495, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7171:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6498, - "name": "_emergencyProcessingWait", - "nodeType": "VariableDeclaration", - "scope": 6664, - "src": "7208:32:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6497, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7208:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6500, - "name": "_bailoutWait", - "nodeType": "VariableDeclaration", - "scope": 6664, - "src": "7251:20:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6499, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7251:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6502, - "name": "_proposalDeposit", - "nodeType": "VariableDeclaration", - "scope": 6664, - "src": "7282:24:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6501, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7282:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6504, - "name": "_dilutionBound", - "nodeType": "VariableDeclaration", - "scope": 6664, - "src": "7317:22:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6503, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7317:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6506, - "name": "_processingReward", - "nodeType": "VariableDeclaration", - "scope": 6664, - "src": "7350:25:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6505, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7350:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7019:363:13" - }, - "returnParameters": { - "id": 6508, - "nodeType": "ParameterList", - "parameters": [], - "src": "7390:0:13" - }, - "scope": 7480, - "src": "7008:2614:13", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 6725, - "nodeType": "Block", - "src": "10038:1124:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6688, - "name": "sharesRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6668, - "src": "10175:15:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 6689, - "name": "MAX_NUMBER_OF_SHARES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6277, - "src": "10194:20:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10175:39:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6f206d616e792073686172657320726571756573746564", - "id": 6691, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10216:27:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_584b3bdfa816bf4fa30756567c0526c04441dc54230f4ba83c195ee6f0a70758", - "typeString": "literal_string \"too many shares requested\"" - }, - "value": "too many shares requested" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_584b3bdfa816bf4fa30756567c0526c04441dc54230f4ba83c195ee6f0a70758", - "typeString": "literal_string \"too many shares requested\"" - } - ], - "id": 6687, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "10167:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10167:77:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6693, - "nodeType": "ExpressionStatement", - "src": "10167:77:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 6699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6695, - "name": "applicant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6666, - "src": "10430:9:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 6697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10451:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 6696, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10443:7:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 6698, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10443:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10430:23:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6170706c6963616e742063616e6e6f742062652030", - "id": 6700, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10455:23:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9ab093dd894be784ee3143d9792a50bf0275e1dda1505d8ede42bc26455cf276", - "typeString": "literal_string \"applicant cannot be 0\"" - }, - "value": "applicant cannot be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9ab093dd894be784ee3143d9792a50bf0275e1dda1505d8ede42bc26455cf276", - "typeString": "literal_string \"applicant cannot be 0\"" - } - ], - "id": 6694, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "10422:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10422:57:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6702, - "nodeType": "ExpressionStatement", - "src": "10422:57:13" - }, - { - "assignments": [ - 6707 - ], - "declarations": [ - { - "constant": false, - "id": 6707, - "name": "flags", - "nodeType": "VariableDeclaration", - "scope": 6725, - "src": "10820:20:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6]" - }, - "typeName": { - "baseType": { - "id": 6705, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10820:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6706, - "length": { - "argumentTypes": null, - "hexValue": "36", - "id": 6704, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10825:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - }, - "value": "6" - }, - "nodeType": "ArrayTypeName", - "src": "10820:7:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", - "typeString": "bool[6]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6708, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "10820:20:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6710, - "name": "applicant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6666, - "src": "10937:9:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6711, - "name": "sharesRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6668, - "src": "10948:15:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6712, - "name": "lootRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6670, - "src": "10965:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6713, - "name": "tributeOffered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6672, - "src": "10980:14:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6714, - "name": "tributeToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6674, - "src": "10996:12:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6715, - "name": "paymentRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6676, - "src": "11010:16:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6716, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6678, - "src": "11028:12:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6717, - "name": "details", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6680, - "src": "11042:7:13", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 6718, - "name": "flags", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6707, - "src": "11051:5:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6] memory" - } - ], - "id": 6709, - "name": "_submitProposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6808, - "src": "10921:15:13", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_array$_t_bool_$6_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,uint256,uint256,address,uint256,address,string memory,bool[6] memory)" - } - }, - "id": 6719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10921:136:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6720, - "nodeType": "ExpressionStatement", - "src": "10921:136:13" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6721, - "name": "proposalCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6358, - "src": "11075:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6722, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11091:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11075:17:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 6686, - "id": 6724, - "nodeType": "Return", - "src": "11068:24:13" - } - ] - }, - "documentation": "***************\r\nPROPOSAL FUNCTIONS\r****************", - "id": 6726, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 6683, - "modifierName": { - "argumentTypes": null, - "id": 6682, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9748, - "src": "9996:12:13", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9996:12:13" - } - ], - "name": "submitProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6681, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6666, - "name": "applicant", - "nodeType": "VariableDeclaration", - "scope": 6726, - "src": "9736:17:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6665, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9736:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6668, - "name": "sharesRequested", - "nodeType": "VariableDeclaration", - "scope": 6726, - "src": "9764:23:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6667, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9764:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6670, - "name": "lootRequested", - "nodeType": "VariableDeclaration", - "scope": 6726, - "src": "9798:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6669, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9798:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6672, - "name": "tributeOffered", - "nodeType": "VariableDeclaration", - "scope": 6726, - "src": "9830:22:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6671, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9830:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6674, - "name": "tributeToken", - "nodeType": "VariableDeclaration", - "scope": 6726, - "src": "9863:20:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6673, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9863:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6676, - "name": "paymentRequested", - "nodeType": "VariableDeclaration", - "scope": 6726, - "src": "9894:24:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6675, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9894:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6678, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 6726, - "src": "9929:20:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6677, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9929:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6680, - "name": "details", - "nodeType": "VariableDeclaration", - "scope": 6726, - "src": "9960:21:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 6679, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "9960:6:13", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9725:263:13" - }, - "returnParameters": { - "id": 6686, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6685, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 6726, - "src": "10018:18:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6684, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10018:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10017:20:13" - }, - "scope": 7480, - "src": "9702:1460:13", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 6807, - "nodeType": "Block", - "src": "12862:984:13", - "statements": [ - { - "assignments": [ - 6750 - ], - "declarations": [ - { - "constant": false, - "id": 6750, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 6807, - "src": "12873:24:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", - "typeString": "struct Governance.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 6749, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6419, - "src": "12873:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6775, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6752, - "name": "applicant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6728, - "src": "12936:9:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6753, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "12971:3:13", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12971:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 6756, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13014:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 6755, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13006:7:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 6757, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13006:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 6758, - "name": "sharesRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6730, - "src": "13049:15:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6759, - "name": "lootRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6732, - "src": "13095:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6760, - "name": "tributeOffered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6734, - "src": "13140:14:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6762, - "name": "tributeToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6736, - "src": "13191:12:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6761, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9719, - "src": "13184:6:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 6763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13184:20:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - { - "argumentTypes": null, - "id": 6764, - "name": "paymentRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6738, - "src": "13238:16:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6766, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6740, - "src": "13291:12:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6765, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9719, - "src": "13284:6:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 6767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13284:20:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 6768, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13336:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 6769, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13363:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 6770, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13389:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "id": 6771, - "name": "flags", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6746, - "src": "13413:5:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6] memory" - } - }, - { - "argumentTypes": null, - "id": 6772, - "name": "details", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6742, - "src": "13443:7:13", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 6773, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13498:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 6751, - "name": "Proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6419, - "src": "12900:8:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Proposal_$6419_storage_ptr_$", - "typeString": "type(struct Governance.Proposal storage pointer)" - } - }, - "id": 6774, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "applicant", - "proposer", - "sponsor", - "sharesRequested", - "lootRequested", - "tributeOffered", - "tributeToken", - "paymentRequested", - "paymentToken", - "startingPeriod", - "yesVotes", - "noVotes", - "flags", - "details", - "maxTotalSharesAndLootAtYesVote" - ], - "nodeType": "FunctionCall", - "src": "12900:611:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_memory", - "typeString": "struct Governance.Proposal memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12873:638:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6776, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6434, - "src": "13524:9:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" - } - }, - "id": 6778, - "indexExpression": { - "argumentTypes": null, - "id": 6777, - "name": "proposalCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6358, - "src": "13534:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13524:24:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage", - "typeString": "struct Governance.Proposal storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6779, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6750, - "src": "13551:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", - "typeString": "struct Governance.Proposal memory" - } - }, - "src": "13524:35:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage", - "typeString": "struct Governance.Proposal storage ref" - } - }, - "id": 6781, - "nodeType": "ExpressionStatement", - "src": "13524:35:13" - }, - { - "assignments": [ - 6783 - ], - "declarations": [ - { - "constant": false, - "id": 6783, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 6807, - "src": "13570:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6782, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13570:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6788, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6784, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6430, - "src": "13594:26:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 6787, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6785, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "13621:3:13", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13621:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13594:38:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13570:62:13" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6790, - "name": "proposalCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6358, - "src": "13663:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6791, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "13678:3:13", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13678:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 6793, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6783, - "src": "13690:13:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6794, - "name": "applicant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6728, - "src": "13705:9:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6795, - "name": "sharesRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6730, - "src": "13716:15:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6796, - "name": "lootRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6732, - "src": "13733:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6797, - "name": "tributeOffered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6734, - "src": "13748:14:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6798, - "name": "tributeToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6736, - "src": "13764:12:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6799, - "name": "paymentRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6738, - "src": "13778:16:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6800, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6740, - "src": "13796:12:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6789, - "name": "SubmitProposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6299, - "src": "13648:14:13", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (uint256,address,address,address,uint256,uint256,uint256,address,uint256,address)" - } - }, - "id": 6801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13648:161:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6802, - "nodeType": "EmitStatement", - "src": "13643:166:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6805, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6803, - "name": "proposalCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6358, - "src": "13820:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 6804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13837:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "13820:18:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6806, - "nodeType": "ExpressionStatement", - "src": "13820:18:13" - } - ] - }, - "documentation": null, - "id": 6808, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_submitProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6747, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6728, - "name": "applicant", - "nodeType": "VariableDeclaration", - "scope": 6808, - "src": "12569:17:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6727, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12569:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6730, - "name": "sharesRequested", - "nodeType": "VariableDeclaration", - "scope": 6808, - "src": "12597:23:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6729, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12597:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6732, - "name": "lootRequested", - "nodeType": "VariableDeclaration", - "scope": 6808, - "src": "12631:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6731, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12631:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6734, - "name": "tributeOffered", - "nodeType": "VariableDeclaration", - "scope": 6808, - "src": "12663:22:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6733, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12663:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6736, - "name": "tributeToken", - "nodeType": "VariableDeclaration", - "scope": 6808, - "src": "12696:20:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6735, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12696:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6738, - "name": "paymentRequested", - "nodeType": "VariableDeclaration", - "scope": 6808, - "src": "12727:24:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6737, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12727:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6740, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 6808, - "src": "12762:20:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6739, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12762:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6742, - "name": "details", - "nodeType": "VariableDeclaration", - "scope": 6808, - "src": "12793:21:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 6741, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "12793:6:13", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6746, - "name": "flags", - "nodeType": "VariableDeclaration", - "scope": 6808, - "src": "12825:20:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6]" - }, - "typeName": { - "baseType": { - "id": 6743, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12825:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6745, - "length": { - "argumentTypes": null, - "hexValue": "36", - "id": 6744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12830:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - }, - "value": "6" - }, - "nodeType": "ArrayTypeName", - "src": "12825:7:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", - "typeString": "bool[6]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12558:294:13" - }, - "returnParameters": { - "id": 6748, - "nodeType": "ParameterList", - "parameters": [], - "src": "12862:0:13" - }, - "scope": 7480, - "src": "12534:1312:13", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 6931, - "nodeType": "Block", - "src": "13952:1981:13", - "statements": [ - { - "assignments": [ - 6820 - ], - "declarations": [ - { - "constant": false, - "id": 6820, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 6931, - "src": "14207:25:13", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 6819, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6419, - "src": "14207:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6824, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6821, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6434, - "src": "14235:9:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" - } - }, - "id": 6823, - "indexExpression": { - "argumentTypes": null, - "id": 6822, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6810, - "src": "14245:10:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14235:21:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage", - "typeString": "struct Governance.Proposal storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14207:49:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 6831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6826, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6820, - "src": "14277:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 6827, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "proposer", - "nodeType": "MemberAccess", - "referencedDeclaration": 6386, - "src": "14277:17:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 6829, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14306:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 6828, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14298:7:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 6830, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14298:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14277:31:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c206d7573742068617665206265656e2070726f706f736564", - "id": 6832, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14310:34:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ac8dac03073454fa1d404b87251ebaea89a776f599ae35927c3fdc86124e6933", - "typeString": "literal_string \"proposal must have been proposed\"" - }, - "value": "proposal must have been proposed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ac8dac03073454fa1d404b87251ebaea89a776f599ae35927c3fdc86124e6933", - "typeString": "literal_string \"proposal must have been proposed\"" - } - ], - "id": 6825, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "14269:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14269:76:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6834, - "nodeType": "ExpressionStatement", - "src": "14269:76:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "14364:18:13", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6836, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6820, - "src": "14365:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 6837, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 6410, - "src": "14365:14:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 6839, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6838, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14380:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14365:17:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c2068617320616c7265616479206265656e2073706f6e736f726564", - "id": 6841, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14384:37:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8ce373ba28507085e66e9df24290b9ef61d72fa05638e1221982de773985e387", - "typeString": "literal_string \"proposal has already been sponsored\"" - }, - "value": "proposal has already been sponsored" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8ce373ba28507085e66e9df24290b9ef61d72fa05638e1221982de773985e387", - "typeString": "literal_string \"proposal has already been sponsored\"" - } - ], - "id": 6835, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "14356:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14356:66:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6843, - "nodeType": "ExpressionStatement", - "src": "14356:66:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "14441:18:13", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6845, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6820, - "src": "14442:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 6846, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 6410, - "src": "14442:14:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 6848, - "indexExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 6847, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14457:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14442:17:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c20686173206265656e2063616e63656c6c6564", - "id": 6850, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14461:29:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_310ff3a9ce641706ee5130d4a11d082239c2f517d2fdbc264a36cda8e36c8cbd", - "typeString": "literal_string \"proposal has been cancelled\"" - }, - "value": "proposal has been cancelled" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_310ff3a9ce641706ee5130d4a11d082239c2f517d2fdbc264a36cda8e36c8cbd", - "typeString": "literal_string \"proposal has been cancelled\"" - } - ], - "id": 6844, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "14433:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6851, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14433:58:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6852, - "nodeType": "ExpressionStatement", - "src": "14433:58:13" - }, - { - "assignments": [ - 6854 - ], - "declarations": [ - { - "constant": false, - "id": 6854, - "name": "startingPeriod", - "nodeType": "VariableDeclaration", - "scope": 6931, - "src": "15279:22:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6853, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15279:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6878, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 6876, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15471:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 6856, - "name": "getCurrentPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7363, - "src": "15322:16:13", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 6857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15322:18:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6858, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "15355:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 6859, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15355:20:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6860, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15379:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15355:25:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6863, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6434, - "src": "15387:9:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" - } - }, - "id": 6871, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6864, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "15397:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 6870, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 6868, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15436:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6865, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "15411:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 6866, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15411:20:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "15411:24:13", - "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": 6869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15411:27:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15397:42:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15387:53:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage", - "typeString": "struct Governance.Proposal storage ref" - } - }, - "id": 6872, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "startingPeriod", - "nodeType": "MemberAccess", - "referencedDeclaration": 6402, - "src": "15387:68:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "15355:100:13", - "trueExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6862, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15383:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6855, - "name": "max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7349, - "src": "15304:3:13", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 6874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15304:162:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "15304:166:13", - "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": 6877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15304:169:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15279:194:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6883, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6879, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6820, - "src": "15486:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 6881, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "startingPeriod", - "nodeType": "MemberAccess", - "referencedDeclaration": 6402, - "src": "15486:23:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6882, - "name": "startingPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6854, - "src": "15512:14:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15486:40:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6884, - "nodeType": "ExpressionStatement", - "src": "15486:40:13" - }, - { - "assignments": [ - 6886 - ], - "declarations": [ - { - "constant": false, - "id": 6886, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 6931, - "src": "15539:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6885, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15539:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6891, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6887, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6430, - "src": "15563:26:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 6890, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6888, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "15590:3:13", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15590:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15563:38:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15539:62:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6892, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6820, - "src": "15612:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 6894, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "sponsor", - "nodeType": "MemberAccess", - "referencedDeclaration": 6388, - "src": "15612:16:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6895, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6886, - "src": "15631:13:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15612:32:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6897, - "nodeType": "ExpressionStatement", - "src": "15612:32:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6898, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6820, - "src": "15657:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 6901, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 6410, - "src": "15657:14:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 6902, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6900, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15672:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15657:17:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 6903, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15677:4:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "15657:24:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6905, - "nodeType": "ExpressionStatement", - "src": "15657:24:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6909, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6810, - "src": "15754:10:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 6906, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "15735:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 6908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15735:18:13", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 6910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15735:30:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6911, - "nodeType": "ExpressionStatement", - "src": "15735:30:13" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6913, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "15797:3:13", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6914, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15797:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 6915, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6886, - "src": "15809:13:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6916, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6810, - "src": "15824:10:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 6920, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15861:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6917, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "15836:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 6918, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15836:20:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6919, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "15836:24:13", - "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": 6921, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15836:27:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6922, - "name": "startingPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6854, - "src": "15865:14:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6912, - "name": "SponsorProposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6311, - "src": "15781:15:13", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256,uint256)" - } - }, - "id": 6923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15781:99:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6924, - "nodeType": "EmitStatement", - "src": "15776:104:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 6928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15923:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6925, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "15898:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 6926, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15898:20:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "15898:24:13", - "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": 6929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15898:27:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 6818, - "id": 6930, - "nodeType": "Return", - "src": "15891:34:13" - } - ] - }, - "documentation": null, - "id": 6932, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 6813, - "modifierName": { - "argumentTypes": null, - "id": 6812, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9748, - "src": "13907:12:13", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13907:12:13" - }, - { - "arguments": null, - "id": 6815, - "modifierName": { - "argumentTypes": null, - "id": 6814, - "name": "onlyDelegate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6484, - "src": "13920:12:13", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13920:12:13" - } - ], - "name": "sponsorProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6811, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6810, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 6932, - "src": "13879:18:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6809, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13879:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13878:20:13" - }, - "returnParameters": { - "id": 6818, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6817, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 6932, - "src": "13943:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6816, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13943:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13942:9:13" - }, - "scope": 7480, - "src": "13854:2079:13", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7080, - "nodeType": "Block", - "src": "16033:1701:13", - "statements": [ - { - "assignments": [ - 6944 - ], - "declarations": [ - { - "constant": false, - "id": 6944, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 7080, - "src": "16044:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6943, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16044:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6949, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6945, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6430, - "src": "16068:26:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 6948, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6946, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "16095:3:13", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16095:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16068:38:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16044:62:13" - }, - { - "assignments": [ - 6951 - ], - "declarations": [ - { - "constant": false, - "id": 6951, - "name": "member", - "nodeType": "VariableDeclaration", - "scope": 7080, - "src": "16117:21:13", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", - "typeString": "struct Governance.Member" - }, - "typeName": { - "contractScope": null, - "id": 6950, - "name": "Member", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6382, - "src": "16117:6:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", - "typeString": "struct Governance.Member" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6955, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6952, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "16141:7:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member storage ref)" - } - }, - "id": 6954, - "indexExpression": { - "argumentTypes": null, - "id": 6953, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6944, - "src": "16149:13:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16141:22:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16117:46:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6957, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6934, - "src": "16184:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6958, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "16200:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 6959, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16200:20:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16184:36:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", - "id": 6961, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16222:25:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - }, - "value": "proposal does not exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - } - ], - "id": 6956, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "16176:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16176:72:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6963, - "nodeType": "ExpressionStatement", - "src": "16176:72:13" - }, - { - "assignments": [ - 6965 - ], - "declarations": [ - { - "constant": false, - "id": 6965, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 7080, - "src": "16259:25:13", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 6964, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6419, - "src": "16259:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6971, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6966, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6434, - "src": "16287:9:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" - } - }, - "id": 6970, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6967, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "16297:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 6969, - "indexExpression": { - "argumentTypes": null, - "id": 6968, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6934, - "src": "16311:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16297:28:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16287:39:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage", - "typeString": "struct Governance.Proposal storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16259:67:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 6975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6973, - "name": "uintVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6936, - "src": "16347:8:13", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 6974, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16358:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "src": "16347:12:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d757374206265206c657373207468616e2033", - "id": 6976, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16361:21:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_707c6bf11f318d88bf3ce18a41621954ec264b68d584313fba9bb644a8e76020", - "typeString": "literal_string \"must be less than 3\"" - }, - "value": "must be less than 3" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_707c6bf11f318d88bf3ce18a41621954ec264b68d584313fba9bb644a8e76020", - "typeString": "literal_string \"must be less than 3\"" - } - ], - "id": 6972, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "16339:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16339:44:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6978, - "nodeType": "ExpressionStatement", - "src": "16339:44:13" - }, - { - "assignments": [ - 6980 - ], - "declarations": [ - { - "constant": false, - "id": 6980, - "name": "vote", - "nodeType": "VariableDeclaration", - "scope": 7080, - "src": "16394:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - }, - "typeName": { - "contractScope": null, - "id": 6979, - "name": "Vote", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6373, - "src": "16394:4:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6984, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6982, - "name": "uintVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6936, - "src": "16411:8:13", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 6981, - "name": "Vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6373, - "src": "16406:4:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Vote_$6373_$", - "typeString": "type(enum Governance.Vote)" - } - }, - "id": 6983, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16406:14:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16394:26:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6990, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "16541:48:13", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6987, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6965, - "src": "16565:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 6988, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "startingPeriod", - "nodeType": "MemberAccess", - "referencedDeclaration": 6402, - "src": "16565:23:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6986, - "name": "hasVotingPeriodExpired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7428, - "src": "16542:22:13", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 6989, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16542:47:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c20766f74696e6720706572696f64206861732065787069726564", - "id": 6991, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16591:36:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c0ba1a8fcc742113774789a424c824e010e781c8d7353e4ab7ada35c65566c07", - "typeString": "literal_string \"proposal voting period has expired\"" - }, - "value": "proposal voting period has expired" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c0ba1a8fcc742113774789a424c824e010e781c8d7353e4ab7ada35c65566c07", - "typeString": "literal_string \"proposal voting period has expired\"" - } - ], - "id": 6985, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "16533:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6992, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16533:95:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6993, - "nodeType": "ExpressionStatement", - "src": "16533:95:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - }, - "id": 7001, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6995, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6965, - "src": "16647:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 6996, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "votesByMember", - "nodeType": "MemberAccess", - "referencedDeclaration": 6418, - "src": "16647:22:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$6373_$", - "typeString": "mapping(address => enum Governance.Vote)" - } - }, - "id": 6998, - "indexExpression": { - "argumentTypes": null, - "id": 6997, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6944, - "src": "16670:13:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16647:37:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6999, - "name": "Vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6373, - "src": "16688:4:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Vote_$6373_$", - "typeString": "type(enum Governance.Vote)" - } - }, - "id": 7000, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Null", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16688:9:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "src": "16647:50:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d656d6265722068617320616c726561647920766f746564", - "id": 7002, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16699:26:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7343d72c90cb341bd2f3ab7b007b6dc9c32e041eadcc4b701abd38deefeb2299", - "typeString": "literal_string \"member has already voted\"" - }, - "value": "member has already voted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7343d72c90cb341bd2f3ab7b007b6dc9c32e041eadcc4b701abd38deefeb2299", - "typeString": "literal_string \"member has already voted\"" - } - ], - "id": 6994, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "16639:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16639:87:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7004, - "nodeType": "ExpressionStatement", - "src": "16639:87:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - }, - "id": 7009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7006, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6980, - "src": "16745:4:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7007, - "name": "Vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6373, - "src": "16753:4:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Vote_$6373_$", - "typeString": "type(enum Governance.Vote)" - } - }, - "id": 7008, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Yes", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16753:8:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "src": "16745:16:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - }, - "id": 7013, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7010, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6980, - "src": "16765:4:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7011, - "name": "Vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6373, - "src": "16773:4:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Vote_$6373_$", - "typeString": "type(enum Governance.Vote)" - } - }, - "id": 7012, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "No", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16773:7:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "src": "16765:15:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16745:35:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "766f7465206d7573742062652065697468657220596573206f72204e6f", - "id": 7015, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16782:31:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cdbdf7342fd7207f7fe59a7f11b342501ce75d0d11dd200fffb4af998c12a928", - "typeString": "literal_string \"vote must be either Yes or No\"" - }, - "value": "vote must be either Yes or No" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cdbdf7342fd7207f7fe59a7f11b342501ce75d0d11dd200fffb4af998c12a928", - "typeString": "literal_string \"vote must be either Yes or No\"" - } - ], - "id": 7005, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "16737:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16737:77:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7017, - "nodeType": "ExpressionStatement", - "src": "16737:77:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 7024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7018, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6965, - "src": "16827:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7021, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "votesByMember", - "nodeType": "MemberAccess", - "referencedDeclaration": 6418, - "src": "16827:22:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$6373_$", - "typeString": "mapping(address => enum Governance.Vote)" - } - }, - "id": 7022, - "indexExpression": { - "argumentTypes": null, - "id": 7020, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6944, - "src": "16850:13:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16827:37:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 7023, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6980, - "src": "16867:4:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "src": "16827:44:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "id": 7025, - "nodeType": "ExpressionStatement", - "src": "16827:44:13" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - }, - "id": 7029, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7026, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6980, - "src": "16888:4:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7027, - "name": "Vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6373, - "src": "16896:4:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Vote_$6373_$", - "typeString": "type(enum Governance.Vote)" - } - }, - "id": 7028, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Yes", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16896:8:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "src": "16888:16:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - }, - "id": 7057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7054, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6980, - "src": "17549:4:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7055, - "name": "Vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6373, - "src": "17557:4:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Vote_$6373_$", - "typeString": "type(enum Governance.Vote)" - } - }, - "id": 7056, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "No", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17557:7:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "src": "17549:15:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 7070, - "nodeType": "IfStatement", - "src": "17545:102:13", - "trueBody": { - "id": 7069, - "nodeType": "Block", - "src": "17566:81:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7058, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6965, - "src": "17581:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7060, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "noVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 6406, - "src": "17581:16:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7064, - "name": "member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6951, - "src": "17621:6:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", - "typeString": "struct Governance.Member storage pointer" - } - }, - "id": 7065, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 6377, - "src": "17621:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7061, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6965, - "src": "17600:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7062, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "noVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 6406, - "src": "17600:16:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "17600:20:13", - "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": 7066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17600:35:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17581:54:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7068, - "nodeType": "ExpressionStatement", - "src": "17581:54:13" - } - ] - } - }, - "id": 7071, - "nodeType": "IfStatement", - "src": "16884:763:13", - "trueBody": { - "id": 7053, - "nodeType": "Block", - "src": "16906:633:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7030, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6965, - "src": "16921:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7032, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "yesVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 6404, - "src": "16921:17:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7036, - "name": "member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6951, - "src": "16963:6:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", - "typeString": "struct Governance.Member storage pointer" - } - }, - "id": 7037, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 6377, - "src": "16963:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7033, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6965, - "src": "16941:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "yesVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 6404, - "src": "16941:17:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "16941:21:13", - "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": 7038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16941:36:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16921:56:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7040, - "nodeType": "ExpressionStatement", - "src": "16921:56:13" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7041, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6934, - "src": "17093:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7042, - "name": "member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6951, - "src": "17109:6:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", - "typeString": "struct Governance.Member storage pointer" - } - }, - "id": 7043, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "highestIndexYesVote", - "nodeType": "MemberAccess", - "referencedDeclaration": 6381, - "src": "17109:26:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17093:42:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 7052, - "nodeType": "IfStatement", - "src": "17089:125:13", - "trueBody": { - "id": 7051, - "nodeType": "Block", - "src": "17137:77:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7045, - "name": "member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6951, - "src": "17156:6:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", - "typeString": "struct Governance.Member storage pointer" - } - }, - "id": 7047, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "highestIndexYesVote", - "nodeType": "MemberAccess", - "referencedDeclaration": 6381, - "src": "17156:26:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 7048, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6934, - "src": "17185:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17156:42:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7050, - "nodeType": "ExpressionStatement", - "src": "17156:42:13" - } - ] - } - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7073, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6934, - "src": "17675:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7074, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "17690:3:13", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 7075, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17690:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 7076, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6944, - "src": "17702:13:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7077, - "name": "uintVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6936, - "src": "17717:8:13", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 7072, - "name": "SubmitVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6321, - "src": "17664:10:13", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint8_$returns$__$", - "typeString": "function (uint256,address,address,uint8)" - } - }, - "id": 7078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17664:62:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7079, - "nodeType": "EmitStatement", - "src": "17659:67:13" - } - ] - }, - "documentation": null, - "id": 7081, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 6939, - "modifierName": { - "argumentTypes": null, - "id": 6938, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9748, - "src": "16007:12:13", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "16007:12:13" - }, - { - "arguments": null, - "id": 6941, - "modifierName": { - "argumentTypes": null, - "id": 6940, - "name": "onlyDelegate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6484, - "src": "16020:12:13", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "16020:12:13" - } - ], - "name": "submitVote", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6937, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6934, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 7081, - "src": "15961:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6933, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15961:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6936, - "name": "uintVote", - "nodeType": "VariableDeclaration", - "scope": 7081, - "src": "15984:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 6935, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "15984:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15960:39:13" - }, - "returnParameters": { - "id": 6942, - "nodeType": "ParameterList", - "parameters": [], - "src": "16033:0:13" - }, - "scope": 7480, - "src": "15941:1793:13", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7246, - "nodeType": "Block", - "src": "17809:3749:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7089, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7083, - "src": "17850:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7088, - "name": "_validateProposalForProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7332, - "src": "17819:30:13", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", - "typeString": "function (uint256) view" - } - }, - "id": 7090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17819:45:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7091, - "nodeType": "ExpressionStatement", - "src": "17819:45:13" - }, - { - "assignments": [ - 7093 - ], - "declarations": [ - { - "constant": false, - "id": 7093, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 7246, - "src": "17876:18:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7092, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17876:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7097, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7094, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "17897:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 7096, - "indexExpression": { - "argumentTypes": null, - "id": 7095, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7083, - "src": "17911:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17897:28:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17876:49:13" - }, - { - "assignments": [ - 7099 - ], - "declarations": [ - { - "constant": false, - "id": 7099, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 7246, - "src": "17935:25:13", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 7098, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6419, - "src": "17935:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7103, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7100, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6434, - "src": "17963:9:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" - } - }, - "id": 7102, - "indexExpression": { - "argumentTypes": null, - "id": 7101, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7093, - "src": "17973:10:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17963:21:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage", - "typeString": "struct Governance.Proposal storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17935:49:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 7110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7104, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "18090:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7107, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 6410, - "src": "18090:14:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 7108, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 7106, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18105:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18090:17:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 7109, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18110:4:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "18090:24:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7111, - "nodeType": "ExpressionStatement", - "src": "18090:24:13" - }, - { - "assignments": [ - 7113, - 7115 - ], - "declarations": [ - { - "constant": false, - "id": 7113, - "name": "didPass", - "nodeType": "VariableDeclaration", - "scope": 7246, - "src": "18140:12:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7112, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18140:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7115, - "name": "emergencyProcessing", - "nodeType": "VariableDeclaration", - "scope": 7246, - "src": "18154:24:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7114, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18154:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7119, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7117, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7083, - "src": "18191:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7116, - "name": "_didPass", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7281, - "src": "18182:8:13", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$_t_bool_$_t_bool_$", - "typeString": "function (uint256) returns (bool,bool)" - } - }, - "id": 7118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18182:23:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", - "typeString": "tuple(bool,bool)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18139:66:13" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7122, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "18513:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7123, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sharesRequested", - "nodeType": "MemberAccess", - "referencedDeclaration": 6390, - "src": "18513:24:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7120, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6361, - "src": "18497:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "18497:15:13", - "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": 7124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18497:41:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 7125, - "name": "MAX_NUMBER_OF_SHARES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6277, - "src": "18541:20:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18497:64:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 7132, - "nodeType": "IfStatement", - "src": "18493:112:13", - "trueBody": { - "id": 7131, - "nodeType": "Block", - "src": "18563:42:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7127, - "name": "didPass", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7113, - "src": "18578:7:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 7128, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18588:5:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "18578:15:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7130, - "nodeType": "ExpressionStatement", - "src": "18578:15:13" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "id": 7133, - "name": "didPass", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7113, - "src": "18971:7:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 7238, - "nodeType": "Block", - "src": "21060:378:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7230, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6363, - "src": "21075:6:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "32", - "id": 7231, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21082:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "21075:8:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7233, - "nodeType": "ExpressionStatement", - "src": "21075:8:13" - }, - { - "condition": { - "argumentTypes": null, - "id": 7235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "21182:20:13", - "subExpression": { - "argumentTypes": null, - "id": 7234, - "name": "emergencyProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7115, - "src": "21183:19:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 7237, - "nodeType": "IfStatement", - "src": "21178:250:13", - "trueBody": { - "id": 7236, - "nodeType": "Block", - "src": "21204:224:13", - "statements": [] - } - } - ] - }, - "id": 7239, - "nodeType": "IfStatement", - "src": "18967:2471:13", - "trueBody": { - "id": 7229, - "nodeType": "Block", - "src": "18980:2074:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7134, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6363, - "src": "18995:6:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 7135, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19002:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "18995:8:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7137, - "nodeType": "ExpressionStatement", - "src": "18995:8:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 7144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7138, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "19017:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7141, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 6410, - "src": "19017:14:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 7142, - "indexExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 7140, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19032:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "19017:17:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 7143, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19037:4:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "19017:24:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7145, - "nodeType": "ExpressionStatement", - "src": "19017:24:13" - }, - { - "condition": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7146, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "19161:7:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member storage ref)" - } - }, - "id": 7149, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7147, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "19169:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7148, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 6384, - "src": "19169:18:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19161:27:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "id": 7150, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "exists", - "nodeType": "MemberAccess", - "referencedDeclaration": 6379, - "src": "19161:34:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 7219, - "nodeType": "Block", - "src": "19529:899:13", - "statements": [ - { - "condition": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7168, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "19672:7:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member storage ref)" - } - }, - "id": 7173, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7169, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6430, - "src": "19680:26:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 7172, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7170, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "19707:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7171, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 6384, - "src": "19707:18:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19680:46:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19672:55:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "id": 7174, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "exists", - "nodeType": "MemberAccess", - "referencedDeclaration": 6379, - "src": "19672:62:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 7196, - "nodeType": "IfStatement", - "src": "19668:345:13", - "trueBody": { - "id": 7195, - "nodeType": "Block", - "src": "19736:277:13", - "statements": [ - { - "assignments": [ - 7176 - ], - "declarations": [ - { - "constant": false, - "id": 7176, - "name": "memberToOverride", - "nodeType": "VariableDeclaration", - "scope": 7195, - "src": "19758:24:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7175, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19758:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7181, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7177, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6430, - "src": "19785:26:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 7180, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7178, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "19812:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7179, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 6384, - "src": "19812:18:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19785:46:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19758:73:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 7186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7182, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6430, - "src": "19853:26:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 7184, - "indexExpression": { - "argumentTypes": null, - "id": 7183, - "name": "memberToOverride", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7176, - "src": "19880:16:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "19853:44:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 7185, - "name": "memberToOverride", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7176, - "src": "19900:16:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "19853:63:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7187, - "nodeType": "ExpressionStatement", - "src": "19853:63:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 7193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7188, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "19938:7:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member storage ref)" - } - }, - "id": 7190, - "indexExpression": { - "argumentTypes": null, - "id": 7189, - "name": "memberToOverride", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7176, - "src": "19946:16:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19938:25:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "id": 7191, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "delegateKey", - "nodeType": "MemberAccess", - "referencedDeclaration": 6375, - "src": "19938:37:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 7192, - "name": "memberToOverride", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7176, - "src": "19978:16:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "19938:56:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7194, - "nodeType": "ExpressionStatement", - "src": "19938:56:13" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 7209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7197, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "20099:7:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member storage ref)" - } - }, - "id": 7200, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7198, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "20107:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7199, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 6384, - "src": "20107:18:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20099:27:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7202, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "20136:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7203, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 6384, - "src": "20136:18:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7204, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "20156:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7205, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sharesRequested", - "nodeType": "MemberAccess", - "referencedDeclaration": 6390, - "src": "20156:24:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 7206, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20182:4:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 7207, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20188:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 7201, - "name": "Member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6382, - "src": "20129:6:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Member_$6382_storage_ptr_$", - "typeString": "type(struct Governance.Member storage pointer)" - } - }, - "id": 7208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20129:61:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_memory", - "typeString": "struct Governance.Member memory" - } - }, - "src": "20099:91:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "id": 7210, - "nodeType": "ExpressionStatement", - "src": "20099:91:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 7217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7211, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6430, - "src": "20346:26:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 7214, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7212, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "20373:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7213, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 6384, - "src": "20373:18:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20346:46:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7215, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "20395:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7216, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 6384, - "src": "20395:18:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20346:67:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7218, - "nodeType": "ExpressionStatement", - "src": "20346:67:13" - } - ] - }, - "id": 7220, - "nodeType": "IfStatement", - "src": "19157:1271:13", - "trueBody": { - "id": 7167, - "nodeType": "Block", - "src": "19197:326:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7151, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "19215:7:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member storage ref)" - } - }, - "id": 7154, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7152, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "19223:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7153, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 6384, - "src": "19223:18:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19215:27:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "id": 7155, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 6377, - "src": "19215:34:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7162, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "19291:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7163, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sharesRequested", - "nodeType": "MemberAccess", - "referencedDeclaration": 6390, - "src": "19291:24:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7156, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "19252:7:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member storage ref)" - } - }, - "id": 7159, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7157, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "19260:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7158, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 6384, - "src": "19260:18:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19252:27:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "id": 7160, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 6377, - "src": "19252:34:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "19252:38:13", - "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": 7164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19252:64:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19215:101:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7166, - "nodeType": "ExpressionStatement", - "src": "19215:101:13" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 7227, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7221, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6361, - "src": "20481:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7224, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "20511:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7225, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sharesRequested", - "nodeType": "MemberAccess", - "referencedDeclaration": 6390, - "src": "20511:24:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7222, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6361, - "src": "20495:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "20495:15:13", - "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": 7226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20495:41:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20481:55:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7228, - "nodeType": "ExpressionStatement", - "src": "20481:55:13" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7241, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7083, - "src": "21516:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7242, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7093, - "src": "21531:10:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7243, - "name": "didPass", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7113, - "src": "21543:7:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 7240, - "name": "ProcessProposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6329, - "src": "21500:15:13", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_bool_$returns$__$", - "typeString": "function (uint256,uint256,bool)" - } - }, - "id": 7244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21500:51:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7245, - "nodeType": "EmitStatement", - "src": "21495:56:13" - } - ] - }, - "documentation": null, - "id": 7247, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 7086, - "modifierName": { - "argumentTypes": null, - "id": 7085, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9748, - "src": "17796:12:13", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "17796:12:13" - } - ], - "name": "processProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7084, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7083, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 7247, - "src": "17766:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7082, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17766:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17765:23:13" - }, - "returnParameters": { - "id": 7087, - "nodeType": "ParameterList", - "parameters": [], - "src": "17809:0:13" - }, - "scope": 7480, - "src": "17741:3817:13", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7280, - "nodeType": "Block", - "src": "23702:1751:13", - "statements": [ - { - "assignments": [ - 7257 - ], - "declarations": [ - { - "constant": false, - "id": 7257, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 7280, - "src": "23713:24:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", - "typeString": "struct Governance.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 7256, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6419, - "src": "23713:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7263, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7258, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6434, - "src": "23740:9:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" - } - }, - "id": 7262, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7259, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "23750:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 7261, - "indexExpression": { - "argumentTypes": null, - "id": 7260, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7249, - "src": "23764:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23750:28:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23740:39:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage", - "typeString": "struct Governance.Proposal storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23713:66:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 7270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7264, - "name": "didPass", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7252, - "src": "23792:7:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7265, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7257, - "src": "23802:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", - "typeString": "struct Governance.Proposal memory" - } - }, - "id": 7266, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "yesVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 6404, - "src": "23802:17:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7267, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7257, - "src": "23822:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", - "typeString": "struct Governance.Proposal memory" - } - }, - "id": 7268, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "noVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 6406, - "src": "23822:16:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23802:36:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "23792:46:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7271, - "nodeType": "ExpressionStatement", - "src": "23792:46:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 7274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7272, - "name": "emergencyProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7254, - "src": "23954:19:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 7273, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:5:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "23954:27:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7275, - "nodeType": "ExpressionStatement", - "src": "23954:27:13" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 7276, - "name": "didPass", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7252, - "src": "25416:7:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 7277, - "name": "emergencyProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7254, - "src": "25425:19:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 7278, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "25415:30:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", - "typeString": "tuple(bool,bool)" - } - }, - "functionReturnParameters": 7255, - "id": 7279, - "nodeType": "Return", - "src": "25408:37:13" - } - ] - }, - "documentation": null, - "id": 7281, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_didPass", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7250, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7249, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 7281, - "src": "23621:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7248, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23621:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23620:23:13" - }, - "returnParameters": { - "id": 7255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7252, - "name": "didPass", - "nodeType": "VariableDeclaration", - "scope": 7281, - "src": "23662:12:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7251, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23662:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7254, - "name": "emergencyProcessing", - "nodeType": "VariableDeclaration", - "scope": 7281, - "src": "23676:24:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7253, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23676:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23661:40:13" - }, - "scope": 7480, - "src": "23603:1850:13", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 7331, - "nodeType": "Block", - "src": "25538:546:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7287, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7283, - "src": "25557:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7288, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "25573:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 7289, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "25573:20:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25557:36:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", - "id": 7291, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25595:25:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - }, - "value": "proposal does not exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - } - ], - "id": 7286, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "25549:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25549:72:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7293, - "nodeType": "ExpressionStatement", - "src": "25549:72:13" - }, - { - "assignments": [ - 7295 - ], - "declarations": [ - { - "constant": false, - "id": 7295, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 7331, - "src": "25632:24:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", - "typeString": "struct Governance.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 7294, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6419, - "src": "25632:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7301, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7296, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6434, - "src": "25659:9:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" - } - }, - "id": 7300, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7297, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "25669:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 7299, - "indexExpression": { - "argumentTypes": null, - "id": 7298, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7283, - "src": "25683:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25669:28:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25659:39:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage", - "typeString": "struct Governance.Proposal storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "25632:66:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7303, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7295, - "src": "25874:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", - "typeString": "struct Governance.Proposal memory" - } - }, - "id": 7304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 6410, - "src": "25874:14:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_memory", - "typeString": "bool[6] memory" - } - }, - "id": 7306, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 7305, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25889:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25874:17:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 7307, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25895:5:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "25874:26:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c2068617320616c7265616479206265656e2070726f636573736564", - "id": 7309, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25902:37:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f70ef3e0419e3b9f916dea28b6ea9e7ed2c6d066761e4c360c469298c30b58d3", - "typeString": "literal_string \"proposal has already been processed\"" - }, - "value": "proposal has already been processed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f70ef3e0419e3b9f916dea28b6ea9e7ed2c6d066761e4c360c469298c30b58d3", - "typeString": "literal_string \"proposal has already been processed\"" - } - ], - "id": 7302, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "25866:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25866:74:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7311, - "nodeType": "ExpressionStatement", - "src": "25866:74:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7313, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7283, - "src": "25959:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7314, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25976:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "25959:18:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7316, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6434, - "src": "25981:9:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" - } - }, - "id": 7323, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7317, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "25991:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 7322, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 7320, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26023:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "id": 7318, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7283, - "src": "26005:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7319, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "26005:17:13", - "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": 7321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26005:20:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25991:35:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25981:46:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage", - "typeString": "struct Governance.Proposal storage ref" - } - }, - "id": 7324, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 6410, - "src": "25981:52:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 7326, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 7325, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26034:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25981:55:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "25959:77:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726576696f75732070726f706f73616c206d7573742062652070726f636573736564", - "id": 7328, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26038:37:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_38cd8535d1c8042024c6aab26e03143698df4f39cb508f25654837a140ff5918", - "typeString": "literal_string \"previous proposal must be processed\"" - }, - "value": "previous proposal must be processed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_38cd8535d1c8042024c6aab26e03143698df4f39cb508f25654837a140ff5918", - "typeString": "literal_string \"previous proposal must be processed\"" - } - ], - "id": 7312, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "25951:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25951:125:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7330, - "nodeType": "ExpressionStatement", - "src": "25951:125:13" - } - ] - }, - "documentation": null, - "id": 7332, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_validateProposalForProcessing", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7284, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7283, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 7332, - "src": "25501:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7282, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25501:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "25500:23:13" - }, - "returnParameters": { - "id": 7285, - "nodeType": "ParameterList", - "parameters": [], - "src": "25538:0:13" - }, - "scope": 7480, - "src": "25461:623:13", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 7348, - "nodeType": "Block", - "src": "31694:40:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7341, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7334, - "src": "31712:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 7342, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7336, - "src": "31717:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31712:6:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 7345, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7336, - "src": "31725:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "31712:14:13", - "trueExpression": { - "argumentTypes": null, - "id": 7344, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7334, - "src": "31721:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7340, - "id": 7347, - "nodeType": "Return", - "src": "31705:21:13" - } - ] - }, - "documentation": "*************\r\nGETTER FUNCTIONS\r**************", - "id": 7349, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "max", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7337, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7334, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 7349, - "src": "31640:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7333, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31640:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7336, - "name": "y", - "nodeType": "VariableDeclaration", - "scope": 7349, - "src": "31651:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31651:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31639:22:13" - }, - "returnParameters": { - "id": 7340, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7339, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7349, - "src": "31685:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7338, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31685:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31684:9:13" - }, - "scope": 7480, - "src": "31627:107:13", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 7362, - "nodeType": "Block", - "src": "31800:68:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7359, - "name": "periodDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6248, - "src": "31845:14:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7356, - "name": "summoningTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6258, - "src": "31826:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7354, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10413, - "src": "31818:3:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "31818:7:13", - "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": 7357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31818:22:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 9808, - "src": "31818:26:13", - "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": 7360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31818:42:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7353, - "id": 7361, - "nodeType": "Return", - "src": "31811:49:13" - } - ] - }, - "documentation": null, - "id": 7363, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getCurrentPeriod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7350, - "nodeType": "ParameterList", - "parameters": [], - "src": "31767:2:13" - }, - "returnParameters": { - "id": 7353, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7352, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7363, - "src": "31791:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7351, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31791:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31790:9:13" - }, - "scope": 7480, - "src": "31742:126:13", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7371, - "nodeType": "Block", - "src": "31939:44:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7368, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "31956:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 7369, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31956:20:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7367, - "id": 7370, - "nodeType": "Return", - "src": "31949:27:13" - } - ] - }, - "documentation": null, - "id": 7372, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getProposalQueueLength", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7364, - "nodeType": "ParameterList", - "parameters": [], - "src": "31906:2:13" - }, - "returnParameters": { - "id": 7367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7366, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7372, - "src": "31930:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7365, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31930:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31929:9:13" - }, - "scope": 7480, - "src": "31875:108:13", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7386, - "nodeType": "Block", - "src": "32073:51:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7381, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6434, - "src": "32090:9:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" - } - }, - "id": 7383, - "indexExpression": { - "argumentTypes": null, - "id": 7382, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7374, - "src": "32100:10:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32090:21:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage", - "typeString": "struct Governance.Proposal storage ref" - } - }, - "id": 7384, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 6410, - "src": "32090:27:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "functionReturnParameters": 7380, - "id": 7385, - "nodeType": "Return", - "src": "32083:34:13" - } - ] - }, - "documentation": null, - "id": 7387, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getProposalFlags", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7375, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7374, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 7387, - "src": "32016:18:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7373, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32016:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32015:20:13" - }, - "returnParameters": { - "id": 7380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7379, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7387, - "src": "32057:14:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6]" - }, - "typeName": { - "baseType": { - "id": 7376, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "32057:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7378, - "length": { - "argumentTypes": null, - "hexValue": "36", - "id": 7377, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32062:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - }, - "value": "6" - }, - "nodeType": "ArrayTypeName", - "src": "32057:7:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", - "typeString": "bool[6]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32056:16:13" - }, - "scope": 7480, - "src": "31990:134:13", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7411, - "nodeType": "Block", - "src": "32293:169:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7395, - "name": "highestIndexYesVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7389, - "src": "32312:19:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7396, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "32334:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 7397, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32334:20:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32312:42:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", - "id": 7399, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32356:25:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - }, - "value": "proposal does not exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - } - ], - "id": 7394, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "32304:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32304:78:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7401, - "nodeType": "ExpressionStatement", - "src": "32304:78:13" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7402, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6434, - "src": "32400:9:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" - } - }, - "id": 7406, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7403, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "32410:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 7405, - "indexExpression": { - "argumentTypes": null, - "id": 7404, - "name": "highestIndexYesVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7389, - "src": "32424:19:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32410:34:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32400:45:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage", - "typeString": "struct Governance.Proposal storage ref" - } - }, - "id": 7407, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 6410, - "src": "32400:51:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 7409, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 7408, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32452:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32400:54:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 7393, - "id": 7410, - "nodeType": "Return", - "src": "32393:61:13" - } - ] - }, - "documentation": null, - "id": 7412, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "canRagequit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7390, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7389, - "name": "highestIndexYesVote", - "nodeType": "VariableDeclaration", - "scope": 7412, - "src": "32237:27:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7388, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32237:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32236:29:13" - }, - "returnParameters": { - "id": 7393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7392, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7412, - "src": "32287:4:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7391, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "32287:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32286:6:13" - }, - "scope": 7480, - "src": "32216:246:13", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7427, - "nodeType": "Block", - "src": "33326:86:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 7419, - "name": "getCurrentPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7363, - "src": "33344:16:13", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 7420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33344:18:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7423, - "name": "votingPeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6250, - "src": "33385:18:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7421, - "name": "startingPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7414, - "src": "33366:14:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "33366:18:13", - "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": 7424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33366:38:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33344:60:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 7418, - "id": 7426, - "nodeType": "Return", - "src": "33337:67:13" - } - ] - }, - "documentation": null, - "id": 7428, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "hasVotingPeriodExpired", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7415, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7414, - "name": "startingPeriod", - "nodeType": "VariableDeclaration", - "scope": 7428, - "src": "33275:22:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7413, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33275:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33274:24:13" - }, - "returnParameters": { - "id": 7418, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7417, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7428, - "src": "33320:4:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7416, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "33320:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33319:6:13" - }, - "scope": 7480, - "src": "33243:169:13", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7462, - "nodeType": "Block", - "src": "33523:247:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7438, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "33541:7:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member storage ref)" - } - }, - "id": 7440, - "indexExpression": { - "argumentTypes": null, - "id": 7439, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7430, - "src": "33549:13:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33541:22:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "id": 7441, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "exists", - "nodeType": "MemberAccess", - "referencedDeclaration": 6379, - "src": "33541:29:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d656d62657220646f6573206e6f74206578697374", - "id": 7442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33572:23:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_eeb2dbde81ed918fce84900f40c1838c2cab850a4c637d1ccdd3d5601b174fb4", - "typeString": "literal_string \"member does not exist\"" - }, - "value": "member does not exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_eeb2dbde81ed918fce84900f40c1838c2cab850a4c637d1ccdd3d5601b174fb4", - "typeString": "literal_string \"member does not exist\"" - } - ], - "id": 7437, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "33533:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33533:63:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7444, - "nodeType": "ExpressionStatement", - "src": "33533:63:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7446, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7432, - "src": "33614:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7447, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "33630:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 7448, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33630:20:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33614:36:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", - "id": 7450, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33652:25:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - }, - "value": "proposal does not exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - } - ], - "id": 7445, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "33606:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33606:72:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7452, - "nodeType": "ExpressionStatement", - "src": "33606:72:13" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7453, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6434, - "src": "33695:9:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" - } - }, - "id": 7457, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7454, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "33705:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 7456, - "indexExpression": { - "argumentTypes": null, - "id": 7455, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7432, - "src": "33719:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33705:28:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33695:39:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage", - "typeString": "struct Governance.Proposal storage ref" - } - }, - "id": 7458, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "votesByMember", - "nodeType": "MemberAccess", - "referencedDeclaration": 6418, - "src": "33695:53:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$6373_$", - "typeString": "mapping(address => enum Governance.Vote)" - } - }, - "id": 7460, - "indexExpression": { - "argumentTypes": null, - "id": 7459, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7430, - "src": "33749:13:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33695:68:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "functionReturnParameters": 7436, - "id": 7461, - "nodeType": "Return", - "src": "33688:75:13" - } - ] - }, - "documentation": null, - "id": 7463, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getMemberProposalVote", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7433, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7430, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 7463, - "src": "33450:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7429, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "33450:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7432, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 7463, - "src": "33473:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7431, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33473:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33449:46:13" - }, - "returnParameters": { - "id": 7436, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7435, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7463, - "src": "33517:4:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - }, - "typeName": { - "contractScope": null, - "id": 7434, - "name": "Vote", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6373, - "src": "33517:4:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33516:6:13" - }, - "scope": 7480, - "src": "33419:351:13", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7470, - "nodeType": "Block", - "src": "33829:39:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7468, - "name": "proposalCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6358, - "src": "33847:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7467, - "id": 7469, - "nodeType": "Return", - "src": "33840:20:13" - } - ] - }, - "documentation": null, - "id": 7471, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7464, - "nodeType": "ParameterList", - "parameters": [], - "src": "33797:2:13" - }, - "returnParameters": { - "id": 7467, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7466, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7471, - "src": "33821:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7465, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33821:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33820:9:13" - }, - "scope": 7480, - "src": "33776:92:13", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7478, - "nodeType": "Block", - "src": "33925:63:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7476, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6363, - "src": "33943:6:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7475, - "id": 7477, - "nodeType": "Return", - "src": "33936:13:13" - } - ] - }, - "documentation": null, - "id": 7479, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getResult", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7472, - "nodeType": "ParameterList", - "parameters": [], - "src": "33893:2:13" - }, - "returnParameters": { - "id": 7475, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7474, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7479, - "src": "33917:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7473, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33917:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33916:9:13" - }, - "scope": 7480, - "src": "33874:114:13", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 7481, - "src": "157:33834:13" - } - ], - "src": "0:33993:13" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Governance.sol", - "exportedSymbols": { - "Governance": [ - 7480 - ] - }, - "id": 7481, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 6235, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:13" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "./oz/SafeMath.sol", - "id": 6236, - "nodeType": "ImportDirective", - "scope": 7481, - "sourceUnit": 9858, - "src": "36:27:13", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", - "file": "./oz/IERC20.sol", - "id": 6237, - "nodeType": "ImportDirective", - "scope": 7481, - "sourceUnit": 9720, - "src": "65:25:13", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol", - "file": "./oz/ReentrancyGuard.sol", - "id": 6238, - "nodeType": "ImportDirective", - "scope": 7481, - "sourceUnit": 9750, - "src": "92:34:13", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol", - "file": "./GuildBank.sol", - "id": 6239, - "nodeType": "ImportDirective", - "scope": 7481, - "sourceUnit": 7659, - "src": "128:25:13", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 6240, - "name": "ReentrancyGuard", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9749, - "src": "180:15:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$9749", - "typeString": "contract ReentrancyGuard" - } - }, - "id": 6241, - "nodeType": "InheritanceSpecifier", - "src": "180:15:13" - } - ], - "contractDependencies": [ - 7658, - 9749 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 7480, - "linearizedBaseContracts": [ - 7480, - 9749 - ], - "name": "Governance", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 6244, - "libraryName": { - "contractScope": null, - "id": 6242, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "209:8:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "203:27:13", - "typeName": { - "id": 6243, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "222:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 6246, - "name": "admin", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "304:20:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6245, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "304:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6248, - "name": "periodDuration", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "388:29:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6247, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "388:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6250, - "name": "votingPeriodLength", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "486:33:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6249, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "486:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6252, - "name": "gracePeriodLength", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "559:32:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6251, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "559:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6254, - "name": "emergencyProcessingWait", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "631:38:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6253, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "631:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6256, - "name": "proposalDeposit", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "778:30:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "778:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6258, - "name": "summoningTime", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "1129:28:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6257, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1129:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6260, - "name": "depositToken", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "1208:26:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 6259, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "1208:6:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6262, - "name": "guildBank", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "1293:26:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - }, - "typeName": { - "contractScope": null, - "id": 6261, - "name": "GuildBank", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7658, - "src": "1293:9:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": true, - "id": 6267, - "name": "MAX_VOTING_PERIOD_LENGTH", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "1577:50:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6263, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1577:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - }, - "id": 6266, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 6264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1621:2:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3138", - "id": 6265, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1625:2:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "1621:6:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - } - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 6272, - "name": "MAX_GRACE_PERIOD_LENGTH", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "1669:49:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6268, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1669:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - }, - "id": 6271, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 6269, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1712:2:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3138", - "id": 6270, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1716:2:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "1712:6:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - } - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 6277, - "name": "MAX_NUMBER_OF_SHARES", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "2103:46:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6273, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2103:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - }, - "id": 6276, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 6274, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2143:2:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3138", - "id": 6275, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2147:2:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "2143:6:13", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - } - }, - "visibility": "internal" - }, - { - "anonymous": false, - "documentation": null, - "id": 6299, - "name": "SubmitProposal", - "nodeType": "EventDefinition", - "parameters": { - "id": 6298, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6279, - "indexed": false, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 6299, - "src": "2289:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6278, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2289:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6281, - "indexed": true, - "name": "delegateKey", - "nodeType": "VariableDeclaration", - "scope": 6299, - "src": "2312:27:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6280, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2312:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6283, - "indexed": true, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 6299, - "src": "2341:29:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6282, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2341:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6285, - "indexed": true, - "name": "applicant", - "nodeType": "VariableDeclaration", - "scope": 6299, - "src": "2372:25:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6284, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2372:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6287, - "indexed": false, - "name": "sharesRequested", - "nodeType": "VariableDeclaration", - "scope": 6299, - "src": "2399:23:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6286, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2399:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6289, - "indexed": false, - "name": "lootRequested", - "nodeType": "VariableDeclaration", - "scope": 6299, - "src": "2424:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6288, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2424:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6291, - "indexed": false, - "name": "tributeOffered", - "nodeType": "VariableDeclaration", - "scope": 6299, - "src": "2447:22:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6290, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2447:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6293, - "indexed": false, - "name": "tributeToken", - "nodeType": "VariableDeclaration", - "scope": 6299, - "src": "2471:20:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6292, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2471:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6295, - "indexed": false, - "name": "paymentRequested", - "nodeType": "VariableDeclaration", - "scope": 6299, - "src": "2493:24:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6294, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2493:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6297, - "indexed": false, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 6299, - "src": "2519:20:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6296, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2519:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2288:252:13" - }, - "src": "2268:273:13" - }, - { - "anonymous": false, - "documentation": null, - "id": 6311, - "name": "SponsorProposal", - "nodeType": "EventDefinition", - "parameters": { - "id": 6310, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6301, - "indexed": true, - "name": "delegateKey", - "nodeType": "VariableDeclaration", - "scope": 6311, - "src": "2569:27:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6300, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2569:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6303, - "indexed": true, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 6311, - "src": "2598:29:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6302, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2598:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6305, - "indexed": false, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 6311, - "src": "2629:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6304, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2629:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6307, - "indexed": false, - "name": "proposalQueueIndex", - "nodeType": "VariableDeclaration", - "scope": 6311, - "src": "2652:26:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6306, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2652:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6309, - "indexed": false, - "name": "startingPeriod", - "nodeType": "VariableDeclaration", - "scope": 6311, - "src": "2680:22:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6308, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2680:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2568:135:13" - }, - "src": "2547:157:13" - }, - { - "anonymous": false, - "documentation": null, - "id": 6321, - "name": "SubmitVote", - "nodeType": "EventDefinition", - "parameters": { - "id": 6320, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6313, - "indexed": true, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 6321, - "src": "2727:29:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6312, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2727:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6315, - "indexed": true, - "name": "delegateKey", - "nodeType": "VariableDeclaration", - "scope": 6321, - "src": "2758:27:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6314, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2758:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6317, - "indexed": true, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 6321, - "src": "2787:29:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6316, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2787:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6319, - "indexed": false, - "name": "uintVote", - "nodeType": "VariableDeclaration", - "scope": 6321, - "src": "2818:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 6318, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "2818:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2726:107:13" - }, - "src": "2710:124:13" - }, - { - "anonymous": false, - "documentation": null, - "id": 6329, - "name": "ProcessProposal", - "nodeType": "EventDefinition", - "parameters": { - "id": 6328, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6323, - "indexed": true, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 6329, - "src": "2862:29:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6322, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2862:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6325, - "indexed": true, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 6329, - "src": "2893:26:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6324, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2893:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6327, - "indexed": false, - "name": "didPass", - "nodeType": "VariableDeclaration", - "scope": 6329, - "src": "2921:12:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 6326, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2921:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2861:73:13" - }, - "src": "2840:95:13" - }, - { - "anonymous": false, - "documentation": null, - "id": 6337, - "name": "Ragequit", - "nodeType": "EventDefinition", - "parameters": { - "id": 6336, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6331, - "indexed": true, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 6337, - "src": "2956:29:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6330, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2956:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6333, - "indexed": false, - "name": "sharesToBurn", - "nodeType": "VariableDeclaration", - "scope": 6337, - "src": "2987:20:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6332, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2987:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6335, - "indexed": false, - "name": "lootToBurn", - "nodeType": "VariableDeclaration", - "scope": 6337, - "src": "3009:18:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6334, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3009:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2955:73:13" - }, - "src": "2941:88:13" - }, - { - "anonymous": false, - "documentation": null, - "id": 6343, - "name": "CancelProposal", - "nodeType": "EventDefinition", - "parameters": { - "id": 6342, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6339, - "indexed": true, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 6343, - "src": "3056:29:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6338, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3056:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6341, - "indexed": false, - "name": "applicantAddress", - "nodeType": "VariableDeclaration", - "scope": 6343, - "src": "3087:24:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6340, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3087:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3055:57:13" - }, - "src": "3035:78:13" - }, - { - "anonymous": false, - "documentation": null, - "id": 6349, - "name": "UpdateDelegateKey", - "nodeType": "EventDefinition", - "parameters": { - "id": 6348, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6345, - "indexed": true, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 6349, - "src": "3143:29:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6344, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3143:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6347, - "indexed": false, - "name": "newDelegateKey", - "nodeType": "VariableDeclaration", - "scope": 6349, - "src": "3174:22:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6346, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3174:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3142:55:13" - }, - "src": "3119:79:13" - }, - { - "anonymous": false, - "documentation": null, - "id": 6355, - "name": "SummonComplete", - "nodeType": "EventDefinition", - "parameters": { - "id": 6354, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6351, - "indexed": true, - "name": "admin", - "nodeType": "VariableDeclaration", - "scope": 6355, - "src": "3225:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6350, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3225:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6353, - "indexed": false, - "name": "shares", - "nodeType": "VariableDeclaration", - "scope": 6355, - "src": "3248:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6352, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3248:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3224:39:13" - }, - "src": "3204:60:13" - }, - { - "constant": false, - "id": 6358, - "name": "proposalCount", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "3356:32:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6356, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3356:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 6357, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3387:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 6361, - "name": "totalShares", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "3424:30:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6359, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3424:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 6360, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3453:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 6363, - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "3566:21:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6362, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3566:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6366, - "name": "emergencyWarning", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "3596:36:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 6364, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3596:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 6365, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3627:5:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 6369, - "name": "lastEmergencyProposalIndex", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "3695:45:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6367, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3695:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 6368, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3739:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "canonicalName": "Governance.Vote", - "id": 6373, - "members": [ - { - "id": 6370, - "name": "Null", - "nodeType": "EnumValue", - "src": "3837:4:13" - }, - { - "id": 6371, - "name": "Yes", - "nodeType": "EnumValue", - "src": "3892:3:13" - }, - { - "id": 6372, - "name": "No", - "nodeType": "EnumValue", - "src": "3906:2:13" - } - ], - "name": "Vote", - "nodeType": "EnumDefinition", - "src": "3816:99:13" - }, - { - "canonicalName": "Governance.Member", - "id": 6382, - "members": [ - { - "constant": false, - "id": 6375, - "name": "delegateKey", - "nodeType": "VariableDeclaration", - "scope": 6382, - "src": "3948:19:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6374, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3948:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6377, - "name": "shares", - "nodeType": "VariableDeclaration", - "scope": 6382, - "src": "4081:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6376, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4081:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6379, - "name": "exists", - "nodeType": "VariableDeclaration", - "scope": 6382, - "src": "4260:11:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 6378, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4260:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6381, - "name": "highestIndexYesVote", - "nodeType": "VariableDeclaration", - "scope": 6382, - "src": "4328:27:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6380, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4328:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Member", - "nodeType": "StructDefinition", - "scope": 7480, - "src": "3923:643:13", - "visibility": "public" - }, - { - "canonicalName": "Governance.Proposal", - "id": 6419, - "members": [ - { - "constant": false, - "id": 6384, - "name": "applicant", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "4601:17:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6383, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4601:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6386, - "name": "proposer", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "4767:16:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6385, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4767:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6388, - "name": "sponsor", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "4857:15:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6387, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4857:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6390, - "name": "sharesRequested", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "4952:23:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6389, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4952:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6392, - "name": "lootRequested", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "5033:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6391, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5033:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6394, - "name": "tributeOffered", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "5115:22:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6393, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5115:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6396, - "name": "tributeToken", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "5187:19:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 6395, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "5187:6:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6398, - "name": "paymentRequested", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "5253:24:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6397, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5253:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6400, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "5329:19:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 6399, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "5329:6:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6402, - "name": "startingPeriod", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "5395:22:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6401, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5395:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6404, - "name": "yesVotes", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "5486:16:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6403, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5486:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6406, - "name": "noVotes", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "5564:15:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6405, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5564:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6410, - "name": "flags", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "5640:13:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", - "typeString": "bool[6]" - }, - "typeName": { - "baseType": { - "id": 6407, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5640:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6409, - "length": { - "argumentTypes": null, - "hexValue": "36", - "id": 6408, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5645:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - }, - "value": "6" - }, - "nodeType": "ArrayTypeName", - "src": "5640:7:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", - "typeString": "bool[6]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6412, - "name": "details", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "5732:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 6411, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5732:6:13", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6414, - "name": "maxTotalSharesAndLootAtYesVote", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "5818:38:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6413, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5818:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6418, - "name": "votesByMember", - "nodeType": "VariableDeclaration", - "scope": 6419, - "src": "5943:38:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$6373_$", - "typeString": "mapping(address => enum Governance.Vote)" - }, - "typeName": { - "id": 6417, - "keyType": { - "id": 6415, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5951:7:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "5943:24:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$6373_$", - "typeString": "mapping(address => enum Governance.Vote)" - }, - "valueType": { - "contractScope": null, - "id": 6416, - "name": "Vote", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6373, - "src": "5962:4:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Proposal", - "nodeType": "StructDefinition", - "scope": 7480, - "src": "4574:1460:13", - "visibility": "public" - }, - { - "constant": false, - "id": 6422, - "name": "approvedTokens", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "6098:30:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage", - "typeString": "contract IERC20[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 6420, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "6098:6:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 6421, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6098:8:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage_ptr", - "typeString": "contract IERC20[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6426, - "name": "members", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "6256:41:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member)" - }, - "typeName": { - "id": 6425, - "keyType": { - "id": 6423, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6264:7:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "6256:26:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member)" - }, - "valueType": { - "contractScope": null, - "id": 6424, - "name": "Member", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6382, - "src": "6275:6:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", - "typeString": "struct Governance.Member" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6430, - "name": "memberAddressByDelegateKey", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "6304:61:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "typeName": { - "id": 6429, - "keyType": { - "id": 6427, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6312:7:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "6304:27:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "valueType": { - "id": 6428, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6323:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6434, - "name": "proposals", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "6374:45:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal)" - }, - "typeName": { - "id": 6433, - "keyType": { - "id": 6431, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6382:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "6374:28:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal)" - }, - "valueType": { - "contractScope": null, - "id": 6432, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6419, - "src": "6393:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6437, - "name": "proposalQueue", - "nodeType": "VariableDeclaration", - "scope": 7480, - "src": "6428:30:13", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 6435, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6428:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6436, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6428:9:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 6451, - "nodeType": "Block", - "src": "6643:87:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6446, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6440, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "6662:7:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member storage ref)" - } - }, - "id": 6443, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6441, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6670:3:13", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6442, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6670:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6662:19:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "id": 6444, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 6377, - "src": "6662:26:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6445, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6691:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6662:30:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f742061206d656d626572", - "id": 6447, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6695:14:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8a38730a0a31747b89b97e72db1b281f9d6fdcc9116c7bee85aba010b162e996", - "typeString": "literal_string \"not a member\"" - }, - "value": "not a member" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8a38730a0a31747b89b97e72db1b281f9d6fdcc9116c7bee85aba010b162e996", - "typeString": "literal_string \"not a member\"" - } - ], - "id": 6439, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "6654:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6448, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6654:56:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6449, - "nodeType": "ExpressionStatement", - "src": "6654:56:13" - }, - { - "id": 6450, - "nodeType": "PlaceholderStatement", - "src": "6721:1:13" - } - ] - }, - "documentation": null, - "id": 6452, - "name": "onlyMember", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 6438, - "nodeType": "ParameterList", - "parameters": [], - "src": "6643:0:13" - }, - "src": "6623:107:13", - "visibility": "internal" - }, - { - "body": { - "id": 6466, - "nodeType": "Block", - "src": "6763:91:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6455, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "6782:7:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member storage ref)" - } - }, - "id": 6458, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6456, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6790:3:13", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6457, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6790:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6782:19:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "id": 6459, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 6377, - "src": "6782:26:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6460, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6811:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6782:30:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f742061207368617265686f6c646572", - "id": 6462, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6814:19:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f04c1891c0a18f803b467b9992e2d2738663e155d08d2aaee274da8a131a0bdb", - "typeString": "literal_string \"not a shareholder\"" - }, - "value": "not a shareholder" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f04c1891c0a18f803b467b9992e2d2738663e155d08d2aaee274da8a131a0bdb", - "typeString": "literal_string \"not a shareholder\"" - } - ], - "id": 6454, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "6774:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6463, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6774:60:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6464, - "nodeType": "ExpressionStatement", - "src": "6774:60:13" - }, - { - "id": 6465, - "nodeType": "PlaceholderStatement", - "src": "6845:1:13" - } - ] - }, - "documentation": null, - "id": 6467, - "name": "onlyShareholder", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 6453, - "nodeType": "ParameterList", - "parameters": [], - "src": "6763:0:13" - }, - "src": "6738:116:13", - "visibility": "internal" - }, - { - "body": { - "id": 6483, - "nodeType": "Block", - "src": "6884:116:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6478, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6470, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "6903:7:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member storage ref)" - } - }, - "id": 6475, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6471, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6430, - "src": "6911:26:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 6474, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6472, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6938:3:13", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6473, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6938:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6911:38:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6903:47:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "id": 6476, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 6377, - "src": "6903:54:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6477, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6960:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6903:58:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f7420612064656c6567617465", - "id": 6479, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6963:16:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4d2048a93053cc7fa7807c657f537fc9d130edf6819e714c97d45589e5ba66dc", - "typeString": "literal_string \"not a delegate\"" - }, - "value": "not a delegate" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4d2048a93053cc7fa7807c657f537fc9d130edf6819e714c97d45589e5ba66dc", - "typeString": "literal_string \"not a delegate\"" - } - ], - "id": 6469, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "6895:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6480, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6895:85:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6481, - "nodeType": "ExpressionStatement", - "src": "6895:85:13" - }, - { - "id": 6482, - "nodeType": "PlaceholderStatement", - "src": "6991:1:13" - } - ] - }, - "documentation": null, - "id": 6484, - "name": "onlyDelegate", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 6468, - "nodeType": "ParameterList", - "parameters": [], - "src": "6884:0:13" - }, - "src": "6862:138:13", - "visibility": "internal" - }, - { - "body": { - "id": 6663, - "nodeType": "Block", - "src": "7390:2232:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 6514, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6510, - "name": "_admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6486, - "src": "7409:6:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 6512, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7427:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 6511, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7419:7:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 6513, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7419:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7409:20:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "61646d696e2063616e6e6f742062652030", - "id": 6515, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7431:19:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_34fd041aec796669a45725a5f2b52fe72174400c96ad9493bcab3ab40112f810", - "typeString": "literal_string \"admin cannot be 0\"" - }, - "value": "admin cannot be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_34fd041aec796669a45725a5f2b52fe72174400c96ad9493bcab3ab40112f810", - "typeString": "literal_string \"admin cannot be 0\"" - } - ], - "id": 6509, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7401:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7401:50:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6517, - "nodeType": "ExpressionStatement", - "src": "7401:50:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6521, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6519, - "name": "_periodDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6492, - "src": "7470:15:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6520, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7488:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7470:19:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f706572696f644475726174696f6e2063616e6e6f742062652030", - "id": 6522, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7491:29:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_dcaa7db0431116123c67314944edc83f1ee2d0251a1b070940664f004c74012d", - "typeString": "literal_string \"_periodDuration cannot be 0\"" - }, - "value": "_periodDuration cannot be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_dcaa7db0431116123c67314944edc83f1ee2d0251a1b070940664f004c74012d", - "typeString": "literal_string \"_periodDuration cannot be 0\"" - } - ], - "id": 6518, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7462:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7462:59:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6524, - "nodeType": "ExpressionStatement", - "src": "7462:59:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6528, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6526, - "name": "_votingPeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6494, - "src": "7540:19:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6527, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7562:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7540:23:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f766f74696e67506572696f644c656e6774682063616e6e6f742062652030", - "id": 6529, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7565:33:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_90c9559254cdd6a8c5e39e97417540a97cc2c7e6b004410ebb33d7f7769bc53b", - "typeString": "literal_string \"_votingPeriodLength cannot be 0\"" - }, - "value": "_votingPeriodLength cannot be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_90c9559254cdd6a8c5e39e97417540a97cc2c7e6b004410ebb33d7f7769bc53b", - "typeString": "literal_string \"_votingPeriodLength cannot be 0\"" - } - ], - "id": 6525, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7532:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6530, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7532:67:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6531, - "nodeType": "ExpressionStatement", - "src": "7532:67:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6533, - "name": "_votingPeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6494, - "src": "7618:19:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 6534, - "name": "MAX_VOTING_PERIOD_LENGTH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6267, - "src": "7641:24:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7618:47:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f766f74696e67506572696f644c656e6774682065786365656473206c696d6974", - "id": 6536, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7667:35:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7cba4ff2b7c48d54c20d93277dca7b9500525168ffa3f2b94651177b72c45612", - "typeString": "literal_string \"_votingPeriodLength exceeds limit\"" - }, - "value": "_votingPeriodLength exceeds limit" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7cba4ff2b7c48d54c20d93277dca7b9500525168ffa3f2b94651177b72c45612", - "typeString": "literal_string \"_votingPeriodLength exceeds limit\"" - } - ], - "id": 6532, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7610:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7610:93:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6538, - "nodeType": "ExpressionStatement", - "src": "7610:93:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6540, - "name": "_gracePeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6496, - "src": "7722:18:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 6541, - "name": "MAX_GRACE_PERIOD_LENGTH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6272, - "src": "7744:23:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7722:45:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f6772616365506572696f644c656e6774682065786365656473206c696d6974", - "id": 6543, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7769:34:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_94e4c02e557a13b96fee3c87ad3ed501d16c78e01ccadd26d54a03a2773f4e60", - "typeString": "literal_string \"_gracePeriodLength exceeds limit\"" - }, - "value": "_gracePeriodLength exceeds limit" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_94e4c02e557a13b96fee3c87ad3ed501d16c78e01ccadd26d54a03a2773f4e60", - "typeString": "literal_string \"_gracePeriodLength exceeds limit\"" - } - ], - "id": 6539, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7714:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6544, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7714:90:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6545, - "nodeType": "ExpressionStatement", - "src": "7714:90:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6549, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6547, - "name": "_emergencyProcessingWait", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6498, - "src": "7823:24:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6548, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7850:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7823:28:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f656d657267656e637950726f63657373696e67576169742063616e6e6f742062652030", - "id": 6550, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7853:38:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bbc33dc034ca97464527af241134c23d7681bf4b99d8886c6c16474b9fa58717", - "typeString": "literal_string \"_emergencyProcessingWait cannot be 0\"" - }, - "value": "_emergencyProcessingWait cannot be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_bbc33dc034ca97464527af241134c23d7681bf4b99d8886c6c16474b9fa58717", - "typeString": "literal_string \"_emergencyProcessingWait cannot be 0\"" - } - ], - "id": 6546, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7815:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7815:77:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6552, - "nodeType": "ExpressionStatement", - "src": "7815:77:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6554, - "name": "_approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6490, - "src": "8282:15:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - } - }, - "id": 6555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8282:22:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6556, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8307:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "8282:26:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e656564206174206c65617374206f6e6520617070726f76656420746f6b656e", - "id": 6558, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8310:34:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c6d3134f6bde8083414251001f93c467973bb02a0dc01b762665902389253170", - "typeString": "literal_string \"need at least one approved token\"" - }, - "value": "need at least one approved token" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c6d3134f6bde8083414251001f93c467973bb02a0dc01b762665902389253170", - "typeString": "literal_string \"need at least one approved token\"" - } - ], - "id": 6553, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "8274:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8274:71:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6560, - "nodeType": "ExpressionStatement", - "src": "8274:71:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6561, - "name": "admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6246, - "src": "8479:5:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6562, - "name": "_admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6486, - "src": "8487:6:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8479:14:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6564, - "nodeType": "ExpressionStatement", - "src": "8479:14:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6565, - "name": "depositToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6260, - "src": "8506:12:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6567, - "name": "_approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6490, - "src": "8528:15:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - } - }, - "id": 6569, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8544:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8528:18:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6566, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9719, - "src": "8521:6:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 6570, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8521:26:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "src": "8506:41:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 6572, - "nodeType": "ExpressionStatement", - "src": "8506:41:13" - }, - { - "body": { - "id": 6605, - "nodeType": "Block", - "src": "8613:309:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 6591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6585, - "name": "_approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6490, - "src": "8637:15:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - } - }, - "id": 6587, - "indexExpression": { - "argumentTypes": null, - "id": 6586, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6574, - "src": "8653:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8637:18:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 6589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8667:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 6588, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8659:7:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 6590, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8659:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "8637:32:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f617070726f766564546f6b656e2063616e6e6f742062652030", - "id": 6592, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8671:28:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b40b09ae38f1346b8a26ea643f189c8d547e60b5d4d63ceb6e8e43507dd5bc8", - "typeString": "literal_string \"_approvedToken cannot be 0\"" - }, - "value": "_approvedToken cannot be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5b40b09ae38f1346b8a26ea643f189c8d547e60b5d4d63ceb6e8e43507dd5bc8", - "typeString": "literal_string \"_approvedToken cannot be 0\"" - } - ], - "id": 6584, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "8629:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8629:71:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6594, - "nodeType": "ExpressionStatement", - "src": "8629:71:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6599, - "name": "_approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6490, - "src": "8890:15:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - } - }, - "id": 6601, - "indexExpression": { - "argumentTypes": null, - "id": 6600, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6574, - "src": "8906:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8890:18:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6598, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9719, - "src": "8883:6:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 6602, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8883:26:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - ], - "expression": { - "argumentTypes": null, - "id": 6595, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6422, - "src": "8863:14:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage", - "typeString": "contract IERC20[] storage ref" - } - }, - "id": 6597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8863:19:13", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_IERC20_$9719_$returns$_t_uint256_$", - "typeString": "function (contract IERC20) returns (uint256)" - } - }, - "id": 6603, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8863:47:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6604, - "nodeType": "ExpressionStatement", - "src": "8863:47:13" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6577, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6574, - "src": "8580:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6578, - "name": "_approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6490, - "src": "8584:15:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - } - }, - "id": 6579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8584:22:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8580:26:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6606, - "initializationExpression": { - "assignments": [ - 6574 - ], - "declarations": [ - { - "constant": false, - "id": 6574, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 6606, - "src": "8565:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6573, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8565:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6576, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 6575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8577:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "8565:13:13" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 6582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "8608:3:13", - "subExpression": { - "argumentTypes": null, - "id": 6581, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6574, - "src": "8608:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6583, - "nodeType": "ExpressionStatement", - "src": "8608:3:13" - }, - "nodeType": "ForStatement", - "src": "8560:362:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6607, - "name": "guildBank", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6262, - "src": "8934:9:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 6609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "8946:13:13", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_GuildBank_$7658_$", - "typeString": "function () returns (contract GuildBank)" - }, - "typeName": { - "contractScope": null, - "id": 6608, - "name": "GuildBank", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7658, - "src": "8950:9:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - } - }, - "id": 6610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8946:15:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - }, - "src": "8934:27:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - }, - "id": 6612, - "nodeType": "ExpressionStatement", - "src": "8934:27:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6615, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6613, - "name": "periodDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6248, - "src": "8974:14:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6614, - "name": "_periodDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6492, - "src": "8991:15:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8974:32:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6616, - "nodeType": "ExpressionStatement", - "src": "8974:32:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6617, - "name": "votingPeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6250, - "src": "9017:18:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6618, - "name": "_votingPeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6494, - "src": "9038:19:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9017:40:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6620, - "nodeType": "ExpressionStatement", - "src": "9017:40:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6623, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6621, - "name": "gracePeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6252, - "src": "9068:17:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6622, - "name": "_gracePeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6496, - "src": "9088:18:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9068:38:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6624, - "nodeType": "ExpressionStatement", - "src": "9068:38:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6627, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6625, - "name": "emergencyProcessingWait", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6254, - "src": "9117:23:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6626, - "name": "_emergencyProcessingWait", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6498, - "src": "9143:24:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9117:50:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6628, - "nodeType": "ExpressionStatement", - "src": "9117:50:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6631, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6629, - "name": "proposalDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6256, - "src": "9218:15:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6630, - "name": "_proposalDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6502, - "src": "9236:16:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9218:34:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6632, - "nodeType": "ExpressionStatement", - "src": "9218:34:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6633, - "name": "summoningTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6258, - "src": "9359:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6634, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10413, - "src": "9375:3:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9359:19:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6636, - "nodeType": "ExpressionStatement", - "src": "9359:19:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6637, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "9452:7:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member storage ref)" - } - }, - "id": 6639, - "indexExpression": { - "argumentTypes": null, - "id": 6638, - "name": "admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6246, - "src": "9460:5:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9452:14:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6641, - "name": "admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6246, - "src": "9476:5:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "31", - "id": 6642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9483:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 6643, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9486:4:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 6644, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9492:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 6640, - "name": "Member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6382, - "src": "9469:6:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Member_$6382_storage_ptr_$", - "typeString": "type(struct Governance.Member storage pointer)" - } - }, - "id": 6645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9469:25:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_memory", - "typeString": "struct Governance.Member memory" - } - }, - "src": "9452:42:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "id": 6647, - "nodeType": "ExpressionStatement", - "src": "9452:42:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6652, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6648, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6430, - "src": "9505:26:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 6650, - "indexExpression": { - "argumentTypes": null, - "id": 6649, - "name": "admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6246, - "src": "9532:5:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9505:33:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6651, - "name": "admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6246, - "src": "9541:5:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "9505:41:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6653, - "nodeType": "ExpressionStatement", - "src": "9505:41:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6654, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6361, - "src": "9557:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 6655, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9571:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9557:15:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6657, - "nodeType": "ExpressionStatement", - "src": "9557:15:13" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6659, - "name": "admin", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6246, - "src": "9605:5:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "31", - "id": 6660, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9612:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 6658, - "name": "SummonComplete", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6355, - "src": "9590:14:13", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 6661, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9590:24:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6662, - "nodeType": "EmitStatement", - "src": "9585:29:13" - } - ] - }, - "documentation": null, - "id": 6664, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6507, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6486, - "name": "_admin", - "nodeType": "VariableDeclaration", - "scope": 6664, - "src": "7030:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6485, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7030:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6490, - "name": "_approvedTokens", - "nodeType": "VariableDeclaration", - "scope": 6664, - "src": "7055:33:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1]" - }, - "typeName": { - "baseType": { - "id": 6487, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7055:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6489, - "length": { - "argumentTypes": null, - "hexValue": "31", - "id": 6488, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7063:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "ArrayTypeName", - "src": "7055:10:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_storage_ptr", - "typeString": "address[1]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6492, - "name": "_periodDuration", - "nodeType": "VariableDeclaration", - "scope": 6664, - "src": "7099:23:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6491, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7099:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6494, - "name": "_votingPeriodLength", - "nodeType": "VariableDeclaration", - "scope": 6664, - "src": "7133:27:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6493, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7133:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6496, - "name": "_gracePeriodLength", - "nodeType": "VariableDeclaration", - "scope": 6664, - "src": "7171:26:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6495, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7171:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6498, - "name": "_emergencyProcessingWait", - "nodeType": "VariableDeclaration", - "scope": 6664, - "src": "7208:32:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6497, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7208:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6500, - "name": "_bailoutWait", - "nodeType": "VariableDeclaration", - "scope": 6664, - "src": "7251:20:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6499, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7251:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6502, - "name": "_proposalDeposit", - "nodeType": "VariableDeclaration", - "scope": 6664, - "src": "7282:24:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6501, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7282:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6504, - "name": "_dilutionBound", - "nodeType": "VariableDeclaration", - "scope": 6664, - "src": "7317:22:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6503, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7317:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6506, - "name": "_processingReward", - "nodeType": "VariableDeclaration", - "scope": 6664, - "src": "7350:25:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6505, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7350:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7019:363:13" - }, - "returnParameters": { - "id": 6508, - "nodeType": "ParameterList", - "parameters": [], - "src": "7390:0:13" - }, - "scope": 7480, - "src": "7008:2614:13", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 6725, - "nodeType": "Block", - "src": "10038:1124:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6690, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6688, - "name": "sharesRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6668, - "src": "10175:15:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 6689, - "name": "MAX_NUMBER_OF_SHARES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6277, - "src": "10194:20:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10175:39:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6f206d616e792073686172657320726571756573746564", - "id": 6691, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10216:27:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_584b3bdfa816bf4fa30756567c0526c04441dc54230f4ba83c195ee6f0a70758", - "typeString": "literal_string \"too many shares requested\"" - }, - "value": "too many shares requested" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_584b3bdfa816bf4fa30756567c0526c04441dc54230f4ba83c195ee6f0a70758", - "typeString": "literal_string \"too many shares requested\"" - } - ], - "id": 6687, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "10167:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6692, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10167:77:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6693, - "nodeType": "ExpressionStatement", - "src": "10167:77:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 6699, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6695, - "name": "applicant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6666, - "src": "10430:9:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 6697, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10451:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 6696, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10443:7:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 6698, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10443:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10430:23:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6170706c6963616e742063616e6e6f742062652030", - "id": 6700, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10455:23:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9ab093dd894be784ee3143d9792a50bf0275e1dda1505d8ede42bc26455cf276", - "typeString": "literal_string \"applicant cannot be 0\"" - }, - "value": "applicant cannot be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9ab093dd894be784ee3143d9792a50bf0275e1dda1505d8ede42bc26455cf276", - "typeString": "literal_string \"applicant cannot be 0\"" - } - ], - "id": 6694, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "10422:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6701, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10422:57:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6702, - "nodeType": "ExpressionStatement", - "src": "10422:57:13" - }, - { - "assignments": [ - 6707 - ], - "declarations": [ - { - "constant": false, - "id": 6707, - "name": "flags", - "nodeType": "VariableDeclaration", - "scope": 6725, - "src": "10820:20:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6]" - }, - "typeName": { - "baseType": { - "id": 6705, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10820:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6706, - "length": { - "argumentTypes": null, - "hexValue": "36", - "id": 6704, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10825:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - }, - "value": "6" - }, - "nodeType": "ArrayTypeName", - "src": "10820:7:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", - "typeString": "bool[6]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6708, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "10820:20:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6710, - "name": "applicant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6666, - "src": "10937:9:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6711, - "name": "sharesRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6668, - "src": "10948:15:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6712, - "name": "lootRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6670, - "src": "10965:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6713, - "name": "tributeOffered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6672, - "src": "10980:14:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6714, - "name": "tributeToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6674, - "src": "10996:12:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6715, - "name": "paymentRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6676, - "src": "11010:16:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6716, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6678, - "src": "11028:12:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6717, - "name": "details", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6680, - "src": "11042:7:13", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 6718, - "name": "flags", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6707, - "src": "11051:5:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6] memory" - } - ], - "id": 6709, - "name": "_submitProposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6808, - "src": "10921:15:13", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_array$_t_bool_$6_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,uint256,uint256,address,uint256,address,string memory,bool[6] memory)" - } - }, - "id": 6719, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10921:136:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6720, - "nodeType": "ExpressionStatement", - "src": "10921:136:13" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6721, - "name": "proposalCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6358, - "src": "11075:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 6722, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11091:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11075:17:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 6686, - "id": 6724, - "nodeType": "Return", - "src": "11068:24:13" - } - ] - }, - "documentation": "***************\r\nPROPOSAL FUNCTIONS\r****************", - "id": 6726, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 6683, - "modifierName": { - "argumentTypes": null, - "id": 6682, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9748, - "src": "9996:12:13", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9996:12:13" - } - ], - "name": "submitProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6681, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6666, - "name": "applicant", - "nodeType": "VariableDeclaration", - "scope": 6726, - "src": "9736:17:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6665, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9736:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6668, - "name": "sharesRequested", - "nodeType": "VariableDeclaration", - "scope": 6726, - "src": "9764:23:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6667, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9764:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6670, - "name": "lootRequested", - "nodeType": "VariableDeclaration", - "scope": 6726, - "src": "9798:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6669, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9798:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6672, - "name": "tributeOffered", - "nodeType": "VariableDeclaration", - "scope": 6726, - "src": "9830:22:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6671, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9830:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6674, - "name": "tributeToken", - "nodeType": "VariableDeclaration", - "scope": 6726, - "src": "9863:20:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6673, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9863:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6676, - "name": "paymentRequested", - "nodeType": "VariableDeclaration", - "scope": 6726, - "src": "9894:24:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6675, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9894:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6678, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 6726, - "src": "9929:20:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6677, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9929:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6680, - "name": "details", - "nodeType": "VariableDeclaration", - "scope": 6726, - "src": "9960:21:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 6679, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "9960:6:13", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9725:263:13" - }, - "returnParameters": { - "id": 6686, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6685, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 6726, - "src": "10018:18:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6684, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10018:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10017:20:13" - }, - "scope": 7480, - "src": "9702:1460:13", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 6807, - "nodeType": "Block", - "src": "12862:984:13", - "statements": [ - { - "assignments": [ - 6750 - ], - "declarations": [ - { - "constant": false, - "id": 6750, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 6807, - "src": "12873:24:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", - "typeString": "struct Governance.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 6749, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6419, - "src": "12873:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6775, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6752, - "name": "applicant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6728, - "src": "12936:9:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6753, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "12971:3:13", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12971:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 6756, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13014:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 6755, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13006:7:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 6757, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13006:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 6758, - "name": "sharesRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6730, - "src": "13049:15:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6759, - "name": "lootRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6732, - "src": "13095:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6760, - "name": "tributeOffered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6734, - "src": "13140:14:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6762, - "name": "tributeToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6736, - "src": "13191:12:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6761, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9719, - "src": "13184:6:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 6763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13184:20:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - { - "argumentTypes": null, - "id": 6764, - "name": "paymentRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6738, - "src": "13238:16:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6766, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6740, - "src": "13291:12:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6765, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9719, - "src": "13284:6:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 6767, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13284:20:13", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 6768, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13336:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 6769, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13363:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 6770, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13389:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "id": 6771, - "name": "flags", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6746, - "src": "13413:5:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6] memory" - } - }, - { - "argumentTypes": null, - "id": 6772, - "name": "details", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6742, - "src": "13443:7:13", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 6773, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13498:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 6751, - "name": "Proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6419, - "src": "12900:8:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Proposal_$6419_storage_ptr_$", - "typeString": "type(struct Governance.Proposal storage pointer)" - } - }, - "id": 6774, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "applicant", - "proposer", - "sponsor", - "sharesRequested", - "lootRequested", - "tributeOffered", - "tributeToken", - "paymentRequested", - "paymentToken", - "startingPeriod", - "yesVotes", - "noVotes", - "flags", - "details", - "maxTotalSharesAndLootAtYesVote" - ], - "nodeType": "FunctionCall", - "src": "12900:611:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_memory", - "typeString": "struct Governance.Proposal memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12873:638:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6780, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6776, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6434, - "src": "13524:9:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" - } - }, - "id": 6778, - "indexExpression": { - "argumentTypes": null, - "id": 6777, - "name": "proposalCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6358, - "src": "13534:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13524:24:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage", - "typeString": "struct Governance.Proposal storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6779, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6750, - "src": "13551:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", - "typeString": "struct Governance.Proposal memory" - } - }, - "src": "13524:35:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage", - "typeString": "struct Governance.Proposal storage ref" - } - }, - "id": 6781, - "nodeType": "ExpressionStatement", - "src": "13524:35:13" - }, - { - "assignments": [ - 6783 - ], - "declarations": [ - { - "constant": false, - "id": 6783, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 6807, - "src": "13570:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6782, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13570:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6788, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6784, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6430, - "src": "13594:26:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 6787, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6785, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "13621:3:13", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6786, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13621:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13594:38:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13570:62:13" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6790, - "name": "proposalCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6358, - "src": "13663:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6791, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "13678:3:13", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6792, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13678:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 6793, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6783, - "src": "13690:13:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6794, - "name": "applicant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6728, - "src": "13705:9:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6795, - "name": "sharesRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6730, - "src": "13716:15:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6796, - "name": "lootRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6732, - "src": "13733:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6797, - "name": "tributeOffered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6734, - "src": "13748:14:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6798, - "name": "tributeToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6736, - "src": "13764:12:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6799, - "name": "paymentRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6738, - "src": "13778:16:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6800, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6740, - "src": "13796:12:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6789, - "name": "SubmitProposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6299, - "src": "13648:14:13", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (uint256,address,address,address,uint256,uint256,uint256,address,uint256,address)" - } - }, - "id": 6801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13648:161:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6802, - "nodeType": "EmitStatement", - "src": "13643:166:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6805, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6803, - "name": "proposalCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6358, - "src": "13820:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 6804, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13837:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "13820:18:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6806, - "nodeType": "ExpressionStatement", - "src": "13820:18:13" - } - ] - }, - "documentation": null, - "id": 6808, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_submitProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6747, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6728, - "name": "applicant", - "nodeType": "VariableDeclaration", - "scope": 6808, - "src": "12569:17:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6727, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12569:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6730, - "name": "sharesRequested", - "nodeType": "VariableDeclaration", - "scope": 6808, - "src": "12597:23:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6729, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12597:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6732, - "name": "lootRequested", - "nodeType": "VariableDeclaration", - "scope": 6808, - "src": "12631:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6731, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12631:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6734, - "name": "tributeOffered", - "nodeType": "VariableDeclaration", - "scope": 6808, - "src": "12663:22:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6733, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12663:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6736, - "name": "tributeToken", - "nodeType": "VariableDeclaration", - "scope": 6808, - "src": "12696:20:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6735, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12696:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6738, - "name": "paymentRequested", - "nodeType": "VariableDeclaration", - "scope": 6808, - "src": "12727:24:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6737, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12727:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6740, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 6808, - "src": "12762:20:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6739, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12762:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6742, - "name": "details", - "nodeType": "VariableDeclaration", - "scope": 6808, - "src": "12793:21:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 6741, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "12793:6:13", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6746, - "name": "flags", - "nodeType": "VariableDeclaration", - "scope": 6808, - "src": "12825:20:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6]" - }, - "typeName": { - "baseType": { - "id": 6743, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12825:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6745, - "length": { - "argumentTypes": null, - "hexValue": "36", - "id": 6744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12830:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - }, - "value": "6" - }, - "nodeType": "ArrayTypeName", - "src": "12825:7:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", - "typeString": "bool[6]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12558:294:13" - }, - "returnParameters": { - "id": 6748, - "nodeType": "ParameterList", - "parameters": [], - "src": "12862:0:13" - }, - "scope": 7480, - "src": "12534:1312:13", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 6931, - "nodeType": "Block", - "src": "13952:1981:13", - "statements": [ - { - "assignments": [ - 6820 - ], - "declarations": [ - { - "constant": false, - "id": 6820, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 6931, - "src": "14207:25:13", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 6819, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6419, - "src": "14207:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6824, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6821, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6434, - "src": "14235:9:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" - } - }, - "id": 6823, - "indexExpression": { - "argumentTypes": null, - "id": 6822, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6810, - "src": "14245:10:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14235:21:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage", - "typeString": "struct Governance.Proposal storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14207:49:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 6831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6826, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6820, - "src": "14277:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 6827, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "proposer", - "nodeType": "MemberAccess", - "referencedDeclaration": 6386, - "src": "14277:17:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 6829, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14306:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 6828, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "14298:7:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 6830, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14298:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "14277:31:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c206d7573742068617665206265656e2070726f706f736564", - "id": 6832, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14310:34:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ac8dac03073454fa1d404b87251ebaea89a776f599ae35927c3fdc86124e6933", - "typeString": "literal_string \"proposal must have been proposed\"" - }, - "value": "proposal must have been proposed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ac8dac03073454fa1d404b87251ebaea89a776f599ae35927c3fdc86124e6933", - "typeString": "literal_string \"proposal must have been proposed\"" - } - ], - "id": 6825, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "14269:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6833, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14269:76:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6834, - "nodeType": "ExpressionStatement", - "src": "14269:76:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6840, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "14364:18:13", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6836, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6820, - "src": "14365:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 6837, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 6410, - "src": "14365:14:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 6839, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6838, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14380:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14365:17:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c2068617320616c7265616479206265656e2073706f6e736f726564", - "id": 6841, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14384:37:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8ce373ba28507085e66e9df24290b9ef61d72fa05638e1221982de773985e387", - "typeString": "literal_string \"proposal has already been sponsored\"" - }, - "value": "proposal has already been sponsored" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8ce373ba28507085e66e9df24290b9ef61d72fa05638e1221982de773985e387", - "typeString": "literal_string \"proposal has already been sponsored\"" - } - ], - "id": 6835, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "14356:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6842, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14356:66:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6843, - "nodeType": "ExpressionStatement", - "src": "14356:66:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6849, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "14441:18:13", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6845, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6820, - "src": "14442:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 6846, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 6410, - "src": "14442:14:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 6848, - "indexExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 6847, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14457:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14442:17:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c20686173206265656e2063616e63656c6c6564", - "id": 6850, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14461:29:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_310ff3a9ce641706ee5130d4a11d082239c2f517d2fdbc264a36cda8e36c8cbd", - "typeString": "literal_string \"proposal has been cancelled\"" - }, - "value": "proposal has been cancelled" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_310ff3a9ce641706ee5130d4a11d082239c2f517d2fdbc264a36cda8e36c8cbd", - "typeString": "literal_string \"proposal has been cancelled\"" - } - ], - "id": 6844, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "14433:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6851, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14433:58:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6852, - "nodeType": "ExpressionStatement", - "src": "14433:58:13" - }, - { - "assignments": [ - 6854 - ], - "declarations": [ - { - "constant": false, - "id": 6854, - "name": "startingPeriod", - "nodeType": "VariableDeclaration", - "scope": 6931, - "src": "15279:22:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6853, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15279:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6878, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 6876, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15471:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 6856, - "name": "getCurrentPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7363, - "src": "15322:16:13", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 6857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15322:18:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6858, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "15355:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 6859, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15355:20:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6860, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15379:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15355:25:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6863, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6434, - "src": "15387:9:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" - } - }, - "id": 6871, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6864, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "15397:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 6870, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 6868, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15436:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6865, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "15411:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 6866, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15411:20:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "15411:24:13", - "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": 6869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15411:27:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15397:42:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15387:53:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage", - "typeString": "struct Governance.Proposal storage ref" - } - }, - "id": 6872, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "startingPeriod", - "nodeType": "MemberAccess", - "referencedDeclaration": 6402, - "src": "15387:68:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "15355:100:13", - "trueExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6862, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15383:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6855, - "name": "max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7349, - "src": "15304:3:13", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 6874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15304:162:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "15304:166:13", - "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": 6877, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15304:169:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15279:194:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6883, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6879, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6820, - "src": "15486:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 6881, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "startingPeriod", - "nodeType": "MemberAccess", - "referencedDeclaration": 6402, - "src": "15486:23:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6882, - "name": "startingPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6854, - "src": "15512:14:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15486:40:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6884, - "nodeType": "ExpressionStatement", - "src": "15486:40:13" - }, - { - "assignments": [ - 6886 - ], - "declarations": [ - { - "constant": false, - "id": 6886, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 6931, - "src": "15539:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6885, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15539:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6891, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6887, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6430, - "src": "15563:26:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 6890, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6888, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "15590:3:13", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6889, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15590:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15563:38:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15539:62:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6892, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6820, - "src": "15612:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 6894, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "sponsor", - "nodeType": "MemberAccess", - "referencedDeclaration": 6388, - "src": "15612:16:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6895, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6886, - "src": "15631:13:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15612:32:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6897, - "nodeType": "ExpressionStatement", - "src": "15612:32:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 6904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6898, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6820, - "src": "15657:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 6901, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 6410, - "src": "15657:14:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 6902, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 6900, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15672:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15657:17:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 6903, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15677:4:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "15657:24:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 6905, - "nodeType": "ExpressionStatement", - "src": "15657:24:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6909, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6810, - "src": "15754:10:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 6906, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "15735:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 6908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15735:18:13", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 6910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15735:30:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6911, - "nodeType": "ExpressionStatement", - "src": "15735:30:13" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6913, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "15797:3:13", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6914, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15797:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 6915, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6886, - "src": "15809:13:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 6916, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6810, - "src": "15824:10:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 6920, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15861:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6917, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "15836:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 6918, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15836:20:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6919, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "15836:24:13", - "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": 6921, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15836:27:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 6922, - "name": "startingPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6854, - "src": "15865:14:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6912, - "name": "SponsorProposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6311, - "src": "15781:15:13", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256,uint256)" - } - }, - "id": 6923, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15781:99:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6924, - "nodeType": "EmitStatement", - "src": "15776:104:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 6928, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15923:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6925, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "15898:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 6926, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15898:20:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "15898:24:13", - "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": 6929, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15898:27:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 6818, - "id": 6930, - "nodeType": "Return", - "src": "15891:34:13" - } - ] - }, - "documentation": null, - "id": 6932, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 6813, - "modifierName": { - "argumentTypes": null, - "id": 6812, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9748, - "src": "13907:12:13", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13907:12:13" - }, - { - "arguments": null, - "id": 6815, - "modifierName": { - "argumentTypes": null, - "id": 6814, - "name": "onlyDelegate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6484, - "src": "13920:12:13", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13920:12:13" - } - ], - "name": "sponsorProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6811, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6810, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 6932, - "src": "13879:18:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6809, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13879:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13878:20:13" - }, - "returnParameters": { - "id": 6818, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6817, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 6932, - "src": "13943:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6816, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13943:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13942:9:13" - }, - "scope": 7480, - "src": "13854:2079:13", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7080, - "nodeType": "Block", - "src": "16033:1701:13", - "statements": [ - { - "assignments": [ - 6944 - ], - "declarations": [ - { - "constant": false, - "id": 6944, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 7080, - "src": "16044:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6943, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16044:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6949, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6945, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6430, - "src": "16068:26:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 6948, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6946, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "16095:3:13", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16095:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16068:38:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16044:62:13" - }, - { - "assignments": [ - 6951 - ], - "declarations": [ - { - "constant": false, - "id": 6951, - "name": "member", - "nodeType": "VariableDeclaration", - "scope": 7080, - "src": "16117:21:13", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", - "typeString": "struct Governance.Member" - }, - "typeName": { - "contractScope": null, - "id": 6950, - "name": "Member", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6382, - "src": "16117:6:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", - "typeString": "struct Governance.Member" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6955, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6952, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "16141:7:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member storage ref)" - } - }, - "id": 6954, - "indexExpression": { - "argumentTypes": null, - "id": 6953, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6944, - "src": "16149:13:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16141:22:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16117:46:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 6960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6957, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6934, - "src": "16184:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6958, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "16200:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 6959, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16200:20:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16184:36:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", - "id": 6961, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16222:25:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - }, - "value": "proposal does not exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - } - ], - "id": 6956, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "16176:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16176:72:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6963, - "nodeType": "ExpressionStatement", - "src": "16176:72:13" - }, - { - "assignments": [ - 6965 - ], - "declarations": [ - { - "constant": false, - "id": 6965, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 7080, - "src": "16259:25:13", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 6964, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6419, - "src": "16259:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6971, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6966, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6434, - "src": "16287:9:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" - } - }, - "id": 6970, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6967, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "16297:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 6969, - "indexExpression": { - "argumentTypes": null, - "id": 6968, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6934, - "src": "16311:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16297:28:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16287:39:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage", - "typeString": "struct Governance.Proposal storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16259:67:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 6975, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 6973, - "name": "uintVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6936, - "src": "16347:8:13", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 6974, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16358:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "src": "16347:12:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d757374206265206c657373207468616e2033", - "id": 6976, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16361:21:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_707c6bf11f318d88bf3ce18a41621954ec264b68d584313fba9bb644a8e76020", - "typeString": "literal_string \"must be less than 3\"" - }, - "value": "must be less than 3" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_707c6bf11f318d88bf3ce18a41621954ec264b68d584313fba9bb644a8e76020", - "typeString": "literal_string \"must be less than 3\"" - } - ], - "id": 6972, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "16339:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16339:44:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6978, - "nodeType": "ExpressionStatement", - "src": "16339:44:13" - }, - { - "assignments": [ - 6980 - ], - "declarations": [ - { - "constant": false, - "id": 6980, - "name": "vote", - "nodeType": "VariableDeclaration", - "scope": 7080, - "src": "16394:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - }, - "typeName": { - "contractScope": null, - "id": 6979, - "name": "Vote", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6373, - "src": "16394:4:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6984, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6982, - "name": "uintVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6936, - "src": "16411:8:13", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 6981, - "name": "Vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6373, - "src": "16406:4:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Vote_$6373_$", - "typeString": "type(enum Governance.Vote)" - } - }, - "id": 6983, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16406:14:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "16394:26:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6990, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "16541:48:13", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6987, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6965, - "src": "16565:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 6988, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "startingPeriod", - "nodeType": "MemberAccess", - "referencedDeclaration": 6402, - "src": "16565:23:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 6986, - "name": "hasVotingPeriodExpired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7428, - "src": "16542:22:13", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 6989, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16542:47:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c20766f74696e6720706572696f64206861732065787069726564", - "id": 6991, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16591:36:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c0ba1a8fcc742113774789a424c824e010e781c8d7353e4ab7ada35c65566c07", - "typeString": "literal_string \"proposal voting period has expired\"" - }, - "value": "proposal voting period has expired" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c0ba1a8fcc742113774789a424c824e010e781c8d7353e4ab7ada35c65566c07", - "typeString": "literal_string \"proposal voting period has expired\"" - } - ], - "id": 6985, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "16533:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 6992, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16533:95:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6993, - "nodeType": "ExpressionStatement", - "src": "16533:95:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - }, - "id": 7001, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6995, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6965, - "src": "16647:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 6996, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "votesByMember", - "nodeType": "MemberAccess", - "referencedDeclaration": 6418, - "src": "16647:22:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$6373_$", - "typeString": "mapping(address => enum Governance.Vote)" - } - }, - "id": 6998, - "indexExpression": { - "argumentTypes": null, - "id": 6997, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6944, - "src": "16670:13:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16647:37:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6999, - "name": "Vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6373, - "src": "16688:4:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Vote_$6373_$", - "typeString": "type(enum Governance.Vote)" - } - }, - "id": 7000, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Null", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16688:9:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "src": "16647:50:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d656d6265722068617320616c726561647920766f746564", - "id": 7002, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16699:26:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7343d72c90cb341bd2f3ab7b007b6dc9c32e041eadcc4b701abd38deefeb2299", - "typeString": "literal_string \"member has already voted\"" - }, - "value": "member has already voted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7343d72c90cb341bd2f3ab7b007b6dc9c32e041eadcc4b701abd38deefeb2299", - "typeString": "literal_string \"member has already voted\"" - } - ], - "id": 6994, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "16639:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16639:87:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7004, - "nodeType": "ExpressionStatement", - "src": "16639:87:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - }, - "id": 7009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7006, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6980, - "src": "16745:4:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7007, - "name": "Vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6373, - "src": "16753:4:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Vote_$6373_$", - "typeString": "type(enum Governance.Vote)" - } - }, - "id": 7008, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Yes", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16753:8:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "src": "16745:16:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - }, - "id": 7013, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7010, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6980, - "src": "16765:4:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7011, - "name": "Vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6373, - "src": "16773:4:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Vote_$6373_$", - "typeString": "type(enum Governance.Vote)" - } - }, - "id": 7012, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "No", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16773:7:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "src": "16765:15:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16745:35:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "766f7465206d7573742062652065697468657220596573206f72204e6f", - "id": 7015, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16782:31:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cdbdf7342fd7207f7fe59a7f11b342501ce75d0d11dd200fffb4af998c12a928", - "typeString": "literal_string \"vote must be either Yes or No\"" - }, - "value": "vote must be either Yes or No" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cdbdf7342fd7207f7fe59a7f11b342501ce75d0d11dd200fffb4af998c12a928", - "typeString": "literal_string \"vote must be either Yes or No\"" - } - ], - "id": 7005, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "16737:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16737:77:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7017, - "nodeType": "ExpressionStatement", - "src": "16737:77:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 7024, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7018, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6965, - "src": "16827:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7021, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "votesByMember", - "nodeType": "MemberAccess", - "referencedDeclaration": 6418, - "src": "16827:22:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$6373_$", - "typeString": "mapping(address => enum Governance.Vote)" - } - }, - "id": 7022, - "indexExpression": { - "argumentTypes": null, - "id": 7020, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6944, - "src": "16850:13:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16827:37:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 7023, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6980, - "src": "16867:4:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "src": "16827:44:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "id": 7025, - "nodeType": "ExpressionStatement", - "src": "16827:44:13" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - }, - "id": 7029, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7026, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6980, - "src": "16888:4:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7027, - "name": "Vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6373, - "src": "16896:4:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Vote_$6373_$", - "typeString": "type(enum Governance.Vote)" - } - }, - "id": 7028, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Yes", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16896:8:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "src": "16888:16:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - }, - "id": 7057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7054, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6980, - "src": "17549:4:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7055, - "name": "Vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6373, - "src": "17557:4:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Vote_$6373_$", - "typeString": "type(enum Governance.Vote)" - } - }, - "id": 7056, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "No", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17557:7:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "src": "17549:15:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 7070, - "nodeType": "IfStatement", - "src": "17545:102:13", - "trueBody": { - "id": 7069, - "nodeType": "Block", - "src": "17566:81:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7058, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6965, - "src": "17581:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7060, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "noVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 6406, - "src": "17581:16:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7064, - "name": "member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6951, - "src": "17621:6:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", - "typeString": "struct Governance.Member storage pointer" - } - }, - "id": 7065, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 6377, - "src": "17621:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7061, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6965, - "src": "17600:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7062, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "noVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 6406, - "src": "17600:16:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "17600:20:13", - "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": 7066, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17600:35:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17581:54:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7068, - "nodeType": "ExpressionStatement", - "src": "17581:54:13" - } - ] - } - }, - "id": 7071, - "nodeType": "IfStatement", - "src": "16884:763:13", - "trueBody": { - "id": 7053, - "nodeType": "Block", - "src": "16906:633:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7039, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7030, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6965, - "src": "16921:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7032, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "yesVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 6404, - "src": "16921:17:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7036, - "name": "member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6951, - "src": "16963:6:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", - "typeString": "struct Governance.Member storage pointer" - } - }, - "id": 7037, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 6377, - "src": "16963:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7033, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6965, - "src": "16941:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7034, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "yesVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 6404, - "src": "16941:17:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "16941:21:13", - "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": 7038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16941:36:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16921:56:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7040, - "nodeType": "ExpressionStatement", - "src": "16921:56:13" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7041, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6934, - "src": "17093:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7042, - "name": "member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6951, - "src": "17109:6:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", - "typeString": "struct Governance.Member storage pointer" - } - }, - "id": 7043, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "highestIndexYesVote", - "nodeType": "MemberAccess", - "referencedDeclaration": 6381, - "src": "17109:26:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17093:42:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 7052, - "nodeType": "IfStatement", - "src": "17089:125:13", - "trueBody": { - "id": 7051, - "nodeType": "Block", - "src": "17137:77:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7045, - "name": "member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6951, - "src": "17156:6:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage_ptr", - "typeString": "struct Governance.Member storage pointer" - } - }, - "id": 7047, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "highestIndexYesVote", - "nodeType": "MemberAccess", - "referencedDeclaration": 6381, - "src": "17156:26:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 7048, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6934, - "src": "17185:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17156:42:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7050, - "nodeType": "ExpressionStatement", - "src": "17156:42:13" - } - ] - } - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7073, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6934, - "src": "17675:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7074, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "17690:3:13", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 7075, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17690:10:13", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 7076, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6944, - "src": "17702:13:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7077, - "name": "uintVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6936, - "src": "17717:8:13", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 7072, - "name": "SubmitVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6321, - "src": "17664:10:13", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint8_$returns$__$", - "typeString": "function (uint256,address,address,uint8)" - } - }, - "id": 7078, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17664:62:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7079, - "nodeType": "EmitStatement", - "src": "17659:67:13" - } - ] - }, - "documentation": null, - "id": 7081, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 6939, - "modifierName": { - "argumentTypes": null, - "id": 6938, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9748, - "src": "16007:12:13", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "16007:12:13" - }, - { - "arguments": null, - "id": 6941, - "modifierName": { - "argumentTypes": null, - "id": 6940, - "name": "onlyDelegate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6484, - "src": "16020:12:13", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "16020:12:13" - } - ], - "name": "submitVote", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6937, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6934, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 7081, - "src": "15961:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6933, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15961:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6936, - "name": "uintVote", - "nodeType": "VariableDeclaration", - "scope": 7081, - "src": "15984:14:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 6935, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "15984:5:13", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15960:39:13" - }, - "returnParameters": { - "id": 6942, - "nodeType": "ParameterList", - "parameters": [], - "src": "16033:0:13" - }, - "scope": 7480, - "src": "15941:1793:13", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7246, - "nodeType": "Block", - "src": "17809:3749:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7089, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7083, - "src": "17850:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7088, - "name": "_validateProposalForProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7332, - "src": "17819:30:13", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", - "typeString": "function (uint256) view" - } - }, - "id": 7090, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17819:45:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7091, - "nodeType": "ExpressionStatement", - "src": "17819:45:13" - }, - { - "assignments": [ - 7093 - ], - "declarations": [ - { - "constant": false, - "id": 7093, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 7246, - "src": "17876:18:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7092, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17876:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7097, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7094, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "17897:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 7096, - "indexExpression": { - "argumentTypes": null, - "id": 7095, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7083, - "src": "17911:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17897:28:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17876:49:13" - }, - { - "assignments": [ - 7099 - ], - "declarations": [ - { - "constant": false, - "id": 7099, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 7246, - "src": "17935:25:13", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 7098, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6419, - "src": "17935:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7103, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7100, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6434, - "src": "17963:9:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" - } - }, - "id": 7102, - "indexExpression": { - "argumentTypes": null, - "id": 7101, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7093, - "src": "17973:10:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17963:21:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage", - "typeString": "struct Governance.Proposal storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17935:49:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 7110, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7104, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "18090:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7107, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 6410, - "src": "18090:14:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 7108, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 7106, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18105:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18090:17:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 7109, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18110:4:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "18090:24:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7111, - "nodeType": "ExpressionStatement", - "src": "18090:24:13" - }, - { - "assignments": [ - 7113, - 7115 - ], - "declarations": [ - { - "constant": false, - "id": 7113, - "name": "didPass", - "nodeType": "VariableDeclaration", - "scope": 7246, - "src": "18140:12:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7112, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18140:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7115, - "name": "emergencyProcessing", - "nodeType": "VariableDeclaration", - "scope": 7246, - "src": "18154:24:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7114, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18154:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7119, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7117, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7083, - "src": "18191:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7116, - "name": "_didPass", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7281, - "src": "18182:8:13", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$_t_bool_$_t_bool_$", - "typeString": "function (uint256) returns (bool,bool)" - } - }, - "id": 7118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18182:23:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", - "typeString": "tuple(bool,bool)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18139:66:13" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7126, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7122, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "18513:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7123, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sharesRequested", - "nodeType": "MemberAccess", - "referencedDeclaration": 6390, - "src": "18513:24:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7120, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6361, - "src": "18497:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "18497:15:13", - "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": 7124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18497:41:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 7125, - "name": "MAX_NUMBER_OF_SHARES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6277, - "src": "18541:20:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18497:64:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 7132, - "nodeType": "IfStatement", - "src": "18493:112:13", - "trueBody": { - "id": 7131, - "nodeType": "Block", - "src": "18563:42:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7129, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7127, - "name": "didPass", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7113, - "src": "18578:7:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 7128, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18588:5:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "18578:15:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7130, - "nodeType": "ExpressionStatement", - "src": "18578:15:13" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "id": 7133, - "name": "didPass", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7113, - "src": "18971:7:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 7238, - "nodeType": "Block", - "src": "21060:378:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7232, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7230, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6363, - "src": "21075:6:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "32", - "id": 7231, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21082:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "21075:8:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7233, - "nodeType": "ExpressionStatement", - "src": "21075:8:13" - }, - { - "condition": { - "argumentTypes": null, - "id": 7235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "21182:20:13", - "subExpression": { - "argumentTypes": null, - "id": 7234, - "name": "emergencyProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7115, - "src": "21183:19:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 7237, - "nodeType": "IfStatement", - "src": "21178:250:13", - "trueBody": { - "id": 7236, - "nodeType": "Block", - "src": "21204:224:13", - "statements": [] - } - } - ] - }, - "id": 7239, - "nodeType": "IfStatement", - "src": "18967:2471:13", - "trueBody": { - "id": 7229, - "nodeType": "Block", - "src": "18980:2074:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7134, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6363, - "src": "18995:6:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 7135, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19002:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "18995:8:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7137, - "nodeType": "ExpressionStatement", - "src": "18995:8:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 7144, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7138, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "19017:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7141, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 6410, - "src": "19017:14:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 7142, - "indexExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 7140, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19032:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "19017:17:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 7143, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19037:4:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "19017:24:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7145, - "nodeType": "ExpressionStatement", - "src": "19017:24:13" - }, - { - "condition": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7146, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "19161:7:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member storage ref)" - } - }, - "id": 7149, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7147, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "19169:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7148, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 6384, - "src": "19169:18:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19161:27:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "id": 7150, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "exists", - "nodeType": "MemberAccess", - "referencedDeclaration": 6379, - "src": "19161:34:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 7219, - "nodeType": "Block", - "src": "19529:899:13", - "statements": [ - { - "condition": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7168, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "19672:7:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member storage ref)" - } - }, - "id": 7173, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7169, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6430, - "src": "19680:26:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 7172, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7170, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "19707:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7171, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 6384, - "src": "19707:18:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19680:46:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19672:55:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "id": 7174, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "exists", - "nodeType": "MemberAccess", - "referencedDeclaration": 6379, - "src": "19672:62:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 7196, - "nodeType": "IfStatement", - "src": "19668:345:13", - "trueBody": { - "id": 7195, - "nodeType": "Block", - "src": "19736:277:13", - "statements": [ - { - "assignments": [ - 7176 - ], - "declarations": [ - { - "constant": false, - "id": 7176, - "name": "memberToOverride", - "nodeType": "VariableDeclaration", - "scope": 7195, - "src": "19758:24:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7175, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19758:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7181, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7177, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6430, - "src": "19785:26:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 7180, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7178, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "19812:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7179, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 6384, - "src": "19812:18:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19785:46:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19758:73:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 7186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7182, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6430, - "src": "19853:26:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 7184, - "indexExpression": { - "argumentTypes": null, - "id": 7183, - "name": "memberToOverride", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7176, - "src": "19880:16:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "19853:44:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 7185, - "name": "memberToOverride", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7176, - "src": "19900:16:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "19853:63:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7187, - "nodeType": "ExpressionStatement", - "src": "19853:63:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 7193, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7188, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "19938:7:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member storage ref)" - } - }, - "id": 7190, - "indexExpression": { - "argumentTypes": null, - "id": 7189, - "name": "memberToOverride", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7176, - "src": "19946:16:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19938:25:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "id": 7191, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "delegateKey", - "nodeType": "MemberAccess", - "referencedDeclaration": 6375, - "src": "19938:37:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 7192, - "name": "memberToOverride", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7176, - "src": "19978:16:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "19938:56:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7194, - "nodeType": "ExpressionStatement", - "src": "19938:56:13" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 7209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7197, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "20099:7:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member storage ref)" - } - }, - "id": 7200, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7198, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "20107:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7199, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 6384, - "src": "20107:18:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20099:27:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7202, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "20136:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7203, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 6384, - "src": "20136:18:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7204, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "20156:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7205, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sharesRequested", - "nodeType": "MemberAccess", - "referencedDeclaration": 6390, - "src": "20156:24:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 7206, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20182:4:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 7207, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20188:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 7201, - "name": "Member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6382, - "src": "20129:6:13", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Member_$6382_storage_ptr_$", - "typeString": "type(struct Governance.Member storage pointer)" - } - }, - "id": 7208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20129:61:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_memory", - "typeString": "struct Governance.Member memory" - } - }, - "src": "20099:91:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "id": 7210, - "nodeType": "ExpressionStatement", - "src": "20099:91:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 7217, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7211, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6430, - "src": "20346:26:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 7214, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7212, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "20373:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7213, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 6384, - "src": "20373:18:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "20346:46:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7215, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "20395:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7216, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 6384, - "src": "20395:18:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "20346:67:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7218, - "nodeType": "ExpressionStatement", - "src": "20346:67:13" - } - ] - }, - "id": 7220, - "nodeType": "IfStatement", - "src": "19157:1271:13", - "trueBody": { - "id": 7167, - "nodeType": "Block", - "src": "19197:326:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7151, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "19215:7:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member storage ref)" - } - }, - "id": 7154, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7152, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "19223:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7153, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 6384, - "src": "19223:18:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19215:27:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "id": 7155, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 6377, - "src": "19215:34:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7162, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "19291:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7163, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sharesRequested", - "nodeType": "MemberAccess", - "referencedDeclaration": 6390, - "src": "19291:24:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7156, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "19252:7:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member storage ref)" - } - }, - "id": 7159, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7157, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "19260:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7158, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 6384, - "src": "19260:18:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19252:27:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "id": 7160, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 6377, - "src": "19252:34:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "19252:38:13", - "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": 7164, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19252:64:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19215:101:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7166, - "nodeType": "ExpressionStatement", - "src": "19215:101:13" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 7227, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7221, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6361, - "src": "20481:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7224, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7099, - "src": "20511:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal storage pointer" - } - }, - "id": 7225, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sharesRequested", - "nodeType": "MemberAccess", - "referencedDeclaration": 6390, - "src": "20511:24:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7222, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6361, - "src": "20495:11:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7223, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "20495:15:13", - "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": 7226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20495:41:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "20481:55:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7228, - "nodeType": "ExpressionStatement", - "src": "20481:55:13" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7241, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7083, - "src": "21516:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7242, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7093, - "src": "21531:10:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7243, - "name": "didPass", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7113, - "src": "21543:7:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 7240, - "name": "ProcessProposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6329, - "src": "21500:15:13", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_bool_$returns$__$", - "typeString": "function (uint256,uint256,bool)" - } - }, - "id": 7244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21500:51:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7245, - "nodeType": "EmitStatement", - "src": "21495:56:13" - } - ] - }, - "documentation": null, - "id": 7247, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 7086, - "modifierName": { - "argumentTypes": null, - "id": 7085, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9748, - "src": "17796:12:13", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "17796:12:13" - } - ], - "name": "processProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7084, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7083, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 7247, - "src": "17766:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7082, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17766:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17765:23:13" - }, - "returnParameters": { - "id": 7087, - "nodeType": "ParameterList", - "parameters": [], - "src": "17809:0:13" - }, - "scope": 7480, - "src": "17741:3817:13", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7280, - "nodeType": "Block", - "src": "23702:1751:13", - "statements": [ - { - "assignments": [ - 7257 - ], - "declarations": [ - { - "constant": false, - "id": 7257, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 7280, - "src": "23713:24:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", - "typeString": "struct Governance.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 7256, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6419, - "src": "23713:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7263, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7258, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6434, - "src": "23740:9:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" - } - }, - "id": 7262, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7259, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "23750:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 7261, - "indexExpression": { - "argumentTypes": null, - "id": 7260, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7249, - "src": "23764:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23750:28:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23740:39:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage", - "typeString": "struct Governance.Proposal storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23713:66:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 7270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7264, - "name": "didPass", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7252, - "src": "23792:7:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7269, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7265, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7257, - "src": "23802:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", - "typeString": "struct Governance.Proposal memory" - } - }, - "id": 7266, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "yesVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 6404, - "src": "23802:17:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7267, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7257, - "src": "23822:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", - "typeString": "struct Governance.Proposal memory" - } - }, - "id": 7268, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "noVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 6406, - "src": "23822:16:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23802:36:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "23792:46:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7271, - "nodeType": "ExpressionStatement", - "src": "23792:46:13" - }, - { - "expression": { - "argumentTypes": null, - "id": 7274, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7272, - "name": "emergencyProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7254, - "src": "23954:19:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 7273, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23976:5:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "23954:27:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7275, - "nodeType": "ExpressionStatement", - "src": "23954:27:13" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 7276, - "name": "didPass", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7252, - "src": "25416:7:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 7277, - "name": "emergencyProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7254, - "src": "25425:19:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 7278, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "25415:30:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", - "typeString": "tuple(bool,bool)" - } - }, - "functionReturnParameters": 7255, - "id": 7279, - "nodeType": "Return", - "src": "25408:37:13" - } - ] - }, - "documentation": null, - "id": 7281, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_didPass", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7250, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7249, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 7281, - "src": "23621:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7248, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23621:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23620:23:13" - }, - "returnParameters": { - "id": 7255, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7252, - "name": "didPass", - "nodeType": "VariableDeclaration", - "scope": 7281, - "src": "23662:12:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7251, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23662:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7254, - "name": "emergencyProcessing", - "nodeType": "VariableDeclaration", - "scope": 7281, - "src": "23676:24:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7253, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23676:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23661:40:13" - }, - "scope": 7480, - "src": "23603:1850:13", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 7331, - "nodeType": "Block", - "src": "25538:546:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7287, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7283, - "src": "25557:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7288, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "25573:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 7289, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "25573:20:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25557:36:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", - "id": 7291, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25595:25:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - }, - "value": "proposal does not exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - } - ], - "id": 7286, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "25549:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7292, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25549:72:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7293, - "nodeType": "ExpressionStatement", - "src": "25549:72:13" - }, - { - "assignments": [ - 7295 - ], - "declarations": [ - { - "constant": false, - "id": 7295, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 7331, - "src": "25632:24:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", - "typeString": "struct Governance.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 7294, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6419, - "src": "25632:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage_ptr", - "typeString": "struct Governance.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7301, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7296, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6434, - "src": "25659:9:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" - } - }, - "id": 7300, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7297, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "25669:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 7299, - "indexExpression": { - "argumentTypes": null, - "id": 7298, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7283, - "src": "25683:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25669:28:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25659:39:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage", - "typeString": "struct Governance.Proposal storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "25632:66:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7308, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7303, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7295, - "src": "25874:8:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_memory_ptr", - "typeString": "struct Governance.Proposal memory" - } - }, - "id": 7304, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 6410, - "src": "25874:14:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_memory", - "typeString": "bool[6] memory" - } - }, - "id": 7306, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 7305, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25889:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25874:17:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 7307, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25895:5:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "25874:26:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c2068617320616c7265616479206265656e2070726f636573736564", - "id": 7309, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25902:37:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f70ef3e0419e3b9f916dea28b6ea9e7ed2c6d066761e4c360c469298c30b58d3", - "typeString": "literal_string \"proposal has already been processed\"" - }, - "value": "proposal has already been processed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f70ef3e0419e3b9f916dea28b6ea9e7ed2c6d066761e4c360c469298c30b58d3", - "typeString": "literal_string \"proposal has already been processed\"" - } - ], - "id": 7302, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "25866:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25866:74:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7311, - "nodeType": "ExpressionStatement", - "src": "25866:74:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 7327, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7313, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7283, - "src": "25959:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7314, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25976:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "25959:18:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7316, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6434, - "src": "25981:9:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" - } - }, - "id": 7323, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7317, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "25991:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 7322, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 7320, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26023:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "id": 7318, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7283, - "src": "26005:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7319, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "26005:17:13", - "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": 7321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26005:20:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25991:35:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25981:46:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage", - "typeString": "struct Governance.Proposal storage ref" - } - }, - "id": 7324, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 6410, - "src": "25981:52:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 7326, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 7325, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26034:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25981:55:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "25959:77:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726576696f75732070726f706f73616c206d7573742062652070726f636573736564", - "id": 7328, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26038:37:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_38cd8535d1c8042024c6aab26e03143698df4f39cb508f25654837a140ff5918", - "typeString": "literal_string \"previous proposal must be processed\"" - }, - "value": "previous proposal must be processed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_38cd8535d1c8042024c6aab26e03143698df4f39cb508f25654837a140ff5918", - "typeString": "literal_string \"previous proposal must be processed\"" - } - ], - "id": 7312, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "25951:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25951:125:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7330, - "nodeType": "ExpressionStatement", - "src": "25951:125:13" - } - ] - }, - "documentation": null, - "id": 7332, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_validateProposalForProcessing", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7284, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7283, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 7332, - "src": "25501:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7282, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25501:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "25500:23:13" - }, - "returnParameters": { - "id": 7285, - "nodeType": "ParameterList", - "parameters": [], - "src": "25538:0:13" - }, - "scope": 7480, - "src": "25461:623:13", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 7348, - "nodeType": "Block", - "src": "31694:40:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7343, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7341, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7334, - "src": "31712:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 7342, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7336, - "src": "31717:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31712:6:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 7345, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7336, - "src": "31725:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "31712:14:13", - "trueExpression": { - "argumentTypes": null, - "id": 7344, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7334, - "src": "31721:1:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7340, - "id": 7347, - "nodeType": "Return", - "src": "31705:21:13" - } - ] - }, - "documentation": "*************\r\nGETTER FUNCTIONS\r**************", - "id": 7349, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "max", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7337, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7334, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 7349, - "src": "31640:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7333, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31640:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7336, - "name": "y", - "nodeType": "VariableDeclaration", - "scope": 7349, - "src": "31651:9:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7335, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31651:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31639:22:13" - }, - "returnParameters": { - "id": 7340, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7339, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7349, - "src": "31685:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7338, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31685:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31684:9:13" - }, - "scope": 7480, - "src": "31627:107:13", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 7362, - "nodeType": "Block", - "src": "31800:68:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7359, - "name": "periodDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6248, - "src": "31845:14:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7356, - "name": "summoningTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6258, - "src": "31826:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7354, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10413, - "src": "31818:3:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7355, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "31818:7:13", - "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": 7357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31818:22:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 9808, - "src": "31818:26:13", - "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": 7360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31818:42:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7353, - "id": 7361, - "nodeType": "Return", - "src": "31811:49:13" - } - ] - }, - "documentation": null, - "id": 7363, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getCurrentPeriod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7350, - "nodeType": "ParameterList", - "parameters": [], - "src": "31767:2:13" - }, - "returnParameters": { - "id": 7353, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7352, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7363, - "src": "31791:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7351, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31791:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31790:9:13" - }, - "scope": 7480, - "src": "31742:126:13", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7371, - "nodeType": "Block", - "src": "31939:44:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7368, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "31956:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 7369, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31956:20:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7367, - "id": 7370, - "nodeType": "Return", - "src": "31949:27:13" - } - ] - }, - "documentation": null, - "id": 7372, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getProposalQueueLength", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7364, - "nodeType": "ParameterList", - "parameters": [], - "src": "31906:2:13" - }, - "returnParameters": { - "id": 7367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7366, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7372, - "src": "31930:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7365, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31930:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31929:9:13" - }, - "scope": 7480, - "src": "31875:108:13", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7386, - "nodeType": "Block", - "src": "32073:51:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7381, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6434, - "src": "32090:9:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" - } - }, - "id": 7383, - "indexExpression": { - "argumentTypes": null, - "id": 7382, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7374, - "src": "32100:10:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32090:21:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage", - "typeString": "struct Governance.Proposal storage ref" - } - }, - "id": 7384, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 6410, - "src": "32090:27:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "functionReturnParameters": 7380, - "id": 7385, - "nodeType": "Return", - "src": "32083:34:13" - } - ] - }, - "documentation": null, - "id": 7387, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getProposalFlags", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7375, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7374, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 7387, - "src": "32016:18:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7373, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32016:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32015:20:13" - }, - "returnParameters": { - "id": 7380, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7379, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7387, - "src": "32057:14:13", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6]" - }, - "typeName": { - "baseType": { - "id": 7376, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "32057:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7378, - "length": { - "argumentTypes": null, - "hexValue": "36", - "id": 7377, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32062:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - }, - "value": "6" - }, - "nodeType": "ArrayTypeName", - "src": "32057:7:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", - "typeString": "bool[6]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32056:16:13" - }, - "scope": 7480, - "src": "31990:134:13", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7411, - "nodeType": "Block", - "src": "32293:169:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7395, - "name": "highestIndexYesVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7389, - "src": "32312:19:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7396, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "32334:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 7397, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32334:20:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32312:42:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", - "id": 7399, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32356:25:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - }, - "value": "proposal does not exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - } - ], - "id": 7394, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "32304:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32304:78:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7401, - "nodeType": "ExpressionStatement", - "src": "32304:78:13" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7402, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6434, - "src": "32400:9:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" - } - }, - "id": 7406, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7403, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "32410:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 7405, - "indexExpression": { - "argumentTypes": null, - "id": 7404, - "name": "highestIndexYesVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7389, - "src": "32424:19:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32410:34:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32400:45:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage", - "typeString": "struct Governance.Proposal storage ref" - } - }, - "id": 7407, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 6410, - "src": "32400:51:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 7409, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 7408, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32452:1:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32400:54:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 7393, - "id": 7410, - "nodeType": "Return", - "src": "32393:61:13" - } - ] - }, - "documentation": null, - "id": 7412, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "canRagequit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7390, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7389, - "name": "highestIndexYesVote", - "nodeType": "VariableDeclaration", - "scope": 7412, - "src": "32237:27:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7388, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32237:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32236:29:13" - }, - "returnParameters": { - "id": 7393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7392, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7412, - "src": "32287:4:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7391, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "32287:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32286:6:13" - }, - "scope": 7480, - "src": "32216:246:13", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7427, - "nodeType": "Block", - "src": "33326:86:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7425, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 7419, - "name": "getCurrentPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7363, - "src": "33344:16:13", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 7420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33344:18:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7423, - "name": "votingPeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6250, - "src": "33385:18:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7421, - "name": "startingPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7414, - "src": "33366:14:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7422, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "33366:18:13", - "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": 7424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33366:38:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33344:60:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 7418, - "id": 7426, - "nodeType": "Return", - "src": "33337:67:13" - } - ] - }, - "documentation": null, - "id": 7428, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "hasVotingPeriodExpired", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7415, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7414, - "name": "startingPeriod", - "nodeType": "VariableDeclaration", - "scope": 7428, - "src": "33275:22:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7413, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33275:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33274:24:13" - }, - "returnParameters": { - "id": 7418, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7417, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7428, - "src": "33320:4:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7416, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "33320:4:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33319:6:13" - }, - "scope": 7480, - "src": "33243:169:13", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7462, - "nodeType": "Block", - "src": "33523:247:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7438, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6426, - "src": "33541:7:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$6382_storage_$", - "typeString": "mapping(address => struct Governance.Member storage ref)" - } - }, - "id": 7440, - "indexExpression": { - "argumentTypes": null, - "id": 7439, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7430, - "src": "33549:13:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33541:22:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$6382_storage", - "typeString": "struct Governance.Member storage ref" - } - }, - "id": 7441, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "exists", - "nodeType": "MemberAccess", - "referencedDeclaration": 6379, - "src": "33541:29:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d656d62657220646f6573206e6f74206578697374", - "id": 7442, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33572:23:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_eeb2dbde81ed918fce84900f40c1838c2cab850a4c637d1ccdd3d5601b174fb4", - "typeString": "literal_string \"member does not exist\"" - }, - "value": "member does not exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_eeb2dbde81ed918fce84900f40c1838c2cab850a4c637d1ccdd3d5601b174fb4", - "typeString": "literal_string \"member does not exist\"" - } - ], - "id": 7437, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "33533:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7443, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33533:63:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7444, - "nodeType": "ExpressionStatement", - "src": "33533:63:13" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7446, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7432, - "src": "33614:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7447, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "33630:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 7448, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33630:20:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33614:36:13", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", - "id": 7450, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33652:25:13", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - }, - "value": "proposal does not exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - } - ], - "id": 7445, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "33606:7:13", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7451, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33606:72:13", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7452, - "nodeType": "ExpressionStatement", - "src": "33606:72:13" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7453, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6434, - "src": "33695:9:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$6419_storage_$", - "typeString": "mapping(uint256 => struct Governance.Proposal storage ref)" - } - }, - "id": 7457, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7454, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6437, - "src": "33705:13:13", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 7456, - "indexExpression": { - "argumentTypes": null, - "id": 7455, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7432, - "src": "33719:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33705:28:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33695:39:13", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$6419_storage", - "typeString": "struct Governance.Proposal storage ref" - } - }, - "id": 7458, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "votesByMember", - "nodeType": "MemberAccess", - "referencedDeclaration": 6418, - "src": "33695:53:13", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$6373_$", - "typeString": "mapping(address => enum Governance.Vote)" - } - }, - "id": 7460, - "indexExpression": { - "argumentTypes": null, - "id": 7459, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7430, - "src": "33749:13:13", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33695:68:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "functionReturnParameters": 7436, - "id": 7461, - "nodeType": "Return", - "src": "33688:75:13" - } - ] - }, - "documentation": null, - "id": 7463, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getMemberProposalVote", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7433, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7430, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 7463, - "src": "33450:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7429, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "33450:7:13", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7432, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 7463, - "src": "33473:21:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7431, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33473:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33449:46:13" - }, - "returnParameters": { - "id": 7436, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7435, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7463, - "src": "33517:4:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - }, - "typeName": { - "contractScope": null, - "id": 7434, - "name": "Vote", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6373, - "src": "33517:4:13", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$6373", - "typeString": "enum Governance.Vote" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33516:6:13" - }, - "scope": 7480, - "src": "33419:351:13", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7470, - "nodeType": "Block", - "src": "33829:39:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7468, - "name": "proposalCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6358, - "src": "33847:13:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7467, - "id": 7469, - "nodeType": "Return", - "src": "33840:20:13" - } - ] - }, - "documentation": null, - "id": 7471, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7464, - "nodeType": "ParameterList", - "parameters": [], - "src": "33797:2:13" - }, - "returnParameters": { - "id": 7467, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7466, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7471, - "src": "33821:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7465, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33821:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33820:9:13" - }, - "scope": 7480, - "src": "33776:92:13", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7478, - "nodeType": "Block", - "src": "33925:63:13", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7476, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6363, - "src": "33943:6:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7475, - "id": 7477, - "nodeType": "Return", - "src": "33936:13:13" - } - ] - }, - "documentation": null, - "id": 7479, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getResult", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7472, - "nodeType": "ParameterList", - "parameters": [], - "src": "33893:2:13" - }, - "returnParameters": { - "id": 7475, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7474, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7479, - "src": "33917:7:13", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7473, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "33917:7:13", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33916:9:13" - }, - "scope": 7480, - "src": "33874:114:13", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 7481, - "src": "157:33834:13" - } - ], - "src": "0:33993:13" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:20.133Z", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": { - "submitProposal(address,uint256,uint256,uint256,address,uint256,address,string)": { - "notice": "***************\r PROPOSAL FUNCTIONS\r****************" - } - } - } -} \ No newline at end of file diff --git a/src/contracts/GuildBank.json b/src/contracts/GuildBank.json deleted file mode 100644 index 35730a8..0000000 --- a/src/contracts/GuildBank.json +++ /dev/null @@ -1,4823 +0,0 @@ -{ - "contractName": "GuildBank", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "receiver", - "type": "address" - }, - { - "indexed": true, - "name": "tokenAddress", - "type": "address" - }, - { - "indexed": false, - "name": "amount", - "type": "uint256" - } - ], - "name": "Withdrawal", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "receiver", - "type": "address" - }, - { - "name": "shares", - "type": "uint256" - }, - { - "name": "totalShares", - "type": "uint256" - }, - { - "name": "approvedTokens", - "type": "address[]" - } - ], - "name": "withdraw", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "token", - "type": "address" - }, - { - "name": "receiver", - "type": "address" - }, - { - "name": "amount", - "type": "uint256" - } - ], - "name": "withdrawToken", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"token\",\"type\":\"address\"},{\"name\":\"receiver\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"withdrawToken\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"receiver\",\"type\":\"address\"},{\"name\":\"shares\",\"type\":\"uint256\"},{\"name\":\"totalShares\",\"type\":\"uint256\"},{\"name\":\"approvedTokens\",\"type\":\"address[]\"}],\"name\":\"withdraw\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"tokenAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Withdrawal\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol\":\"GuildBank\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol\":{\"keccak256\":\"0xa8ace5b5ac3322c9019470d2a1ad1342ef5d984da3d4818554e703b65ceda667\",\"urls\":[\"bzzr://b38168eab9d05f21a7576958f33878d9d31877a12f1f14bda390f3f4fbdaa2a4\",\"dweb:/ipfs/QmWa9cX9gzUkyM9yVwfhd6FsSeh1jpV62sBzdGJm6jRPRX\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b031916331790556104e6806100326000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301e3366714610046578063732c8f57146100905780638da5cb5b1461014f575b600080fd5b61007c6004803603606081101561005c57600080fd5b506001600160a01b03813581169160208101359091169060400135610173565b604080519115158252519081900360200190f35b61007c600480360360808110156100a657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156100dd57600080fd5b8201836020820111156100ef57600080fd5b8035906020019184602083028401116401000000008311171561011157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061026c945050505050565b61015761044e565b604080516001600160a01b039092168252519081900360200190f35b600080546001600160a01b0316331461018b57600080fd5b836001600160a01b0316836001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398846040518082815260200191505060405180910390a3836001600160a01b031663a9059cbb84846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561023657600080fd5b505af115801561024a573d6000803e3d6000fd5b505050506040513d602081101561026057600080fd5b505190505b9392505050565b600080546001600160a01b0316331461028457600080fd5b60005b82518110156104425760006103318483815181106102a157fe5b60200260200101516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156102fe57600080fd5b505afa158015610312573d6000803e3d6000fd5b505050506040513d602081101561032857600080fd5b5051878761045d565b905083828151811061033f57fe5b60200260200101516001600160a01b0316876001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398836040518082815260200191505060405180910390a383828151811061039d57fe5b60200260200101516001600160a01b031663a9059cbb88836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b505050506040513d602081101561042e57600080fd5b505161043957600080fd5b50600101610287565b50600195945050505050565b6000546001600160a01b031681565b60008161046957600080fd5b8361047657506000610265565b8383028385828161048357fe5b04141561049c5782818161049357fe5b04915050610265565b838386816104a657fe5b04029594505050505056fea265627a7a72305820600a90e68081feae486f77ec58352ebe4f959e2362fac128a8d418122da6121464736f6c63430005090032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c806301e3366714610046578063732c8f57146100905780638da5cb5b1461014f575b600080fd5b61007c6004803603606081101561005c57600080fd5b506001600160a01b03813581169160208101359091169060400135610173565b604080519115158252519081900360200190f35b61007c600480360360808110156100a657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156100dd57600080fd5b8201836020820111156100ef57600080fd5b8035906020019184602083028401116401000000008311171561011157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061026c945050505050565b61015761044e565b604080516001600160a01b039092168252519081900360200190f35b600080546001600160a01b0316331461018b57600080fd5b836001600160a01b0316836001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398846040518082815260200191505060405180910390a3836001600160a01b031663a9059cbb84846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561023657600080fd5b505af115801561024a573d6000803e3d6000fd5b505050506040513d602081101561026057600080fd5b505190505b9392505050565b600080546001600160a01b0316331461028457600080fd5b60005b82518110156104425760006103318483815181106102a157fe5b60200260200101516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156102fe57600080fd5b505afa158015610312573d6000803e3d6000fd5b505050506040513d602081101561032857600080fd5b5051878761045d565b905083828151811061033f57fe5b60200260200101516001600160a01b0316876001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398836040518082815260200191505060405180910390a383828151811061039d57fe5b60200260200101516001600160a01b031663a9059cbb88836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b505050506040513d602081101561042e57600080fd5b505161043957600080fd5b50600101610287565b50600195945050505050565b6000546001600160a01b031681565b60008161046957600080fd5b8361047657506000610265565b8383028385828161048357fe5b04141561049c5782818161049357fe5b04915050610265565b838386816104a657fe5b04029594505050505056fea265627a7a72305820600a90e68081feae486f77ec58352ebe4f959e2362fac128a8d418122da6121464736f6c63430005090032", - "sourceMap": "65:1463:14:-;;;121:59;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;154:5:14;:18;;-1:-1:-1;;;;;;154:18:14;162:10;154:18;;;-1:-1:-1;;;;65:1463:14;;;;", - "deployedSourceMap": "65:1463:14:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;65:1463:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;872:221;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;872:221:14;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;373:491;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;373:491:14;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;373:491:14;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;373:491:14;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;373:491:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;373:491:14;;-1:-1:-1;373:491:14;;-1:-1:-1;;;;;373:491:14:i;92:20::-;;;:::i;:::-;;;;-1:-1:-1;;;;;92:20:14;;;;;;;;;;;;;;872:221;969:4;242:5;;-1:-1:-1;;;;;242:5:14;228:10;:19;220:28;;;;;;991:44;;;;;;;;-1:-1:-1;;;;;991:44:14;;;;;;;;;;;;;;;;;1053:32;;;-1:-1:-1;;;1053:32:14;;-1:-1:-1;;;;;1053:32:14;;;;;;;;;;;;;;;:14;;;;-1:-1:-1;;1053:32:14;;;;;;;;;;;;;;;-1:-1:-1;1053:14:14;:32;;;5:2:-1;;;;30:1;27;20:12;5:2;1053:32:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1053:32:14;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1053:32:14;;-1:-1:-1;259:1:14;872:221;;;;;:::o;373:491::-;504:4;242:5;;-1:-1:-1;;;;;242:5:14;228:10;:19;220:28;;;;;;526:9;521:314;545:14;:21;541:1;:25;521:314;;;588:14;605:74;615:14;630:1;615:17;;;;;;;;;;;;;;;;;;;:42;;;-1:-1:-1;;;615:42:14;;651:4;615:42;;;;;;-1:-1:-1;;;;;615:27:14;;;;-1:-1:-1;;615:42:14;;;;;;;;;;:27;:42;;;5:2:-1;;;;30:1;27;20:12;5:2;615:42:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;615:42:14;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;615:42:14;659:6;667:11;605:9;:74::i;:::-;588:91;;728:14;743:1;728:17;;;;;;;;;;;;;;;;;;;699:56;;;;;;;;-1:-1:-1;;;;;699:56:14;;;;;;;;;;;;;;;;778:14;793:1;778:17;;;;;;;;;;;;;;;;;;;:44;;;-1:-1:-1;;;778:44:14;;-1:-1:-1;;;;;778:44:14;;;;;;;;;;;;;;;:26;;;;;-1:-1:-1;;778:44:14;;;;;;;;;;;-1:-1:-1;778:26:14;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;778:44:14;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;778:44:14;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;778:44:14;770:53;;;;;;-1:-1:-1;568:3:14;;521:314;;;-1:-1:-1;852:4:14;;373:491;-1:-1:-1;;;;;373:491:14:o;92:20::-;;;-1:-1:-1;;;;;92:20:14;;:::o;1101:422::-;1197:7;1225:16;1217:25;;;;;;1259:12;1255:31;;-1:-1:-1;1282:1:14;1275:8;;1255:31;1313:16;;;1323:6;1313:7;:16;:7;1346:14;;;;;:24;1342:122;;;1441:11;1434:4;:18;;;;;;1427:25;;;;;1342:122;1509:6;1494:11;1484:7;:21;;;;;;1483:32;;1101:422;-1:-1:-1;;;;;1101:422:14:o", - "source": "pragma solidity >=0.5.0 < 0.6.0;\r\n\r\nimport \"./oz/IERC20.sol\";\r\n\r\ncontract GuildBank {\r\n address public owner;\r\n\r\n constructor () public {\r\n owner = msg.sender;\r\n }\r\n\r\n modifier onlyOwner() {\r\n require(msg.sender == owner);\r\n _;\r\n }\r\n\r\n event Withdrawal(address indexed receiver, address indexed tokenAddress, uint256 amount);\r\n\r\n function withdraw(address receiver, uint256 shares, uint256 totalShares, IERC20[] memory approvedTokens) public onlyOwner returns (bool) {\r\n for (uint256 i = 0; i < approvedTokens.length; i++) {\r\n uint256 amount = fairShare(approvedTokens[i].balanceOf(address(this)), shares, totalShares);\r\n emit Withdrawal(receiver, address(approvedTokens[i]), amount);\r\n require(approvedTokens[i].transfer(receiver, amount));\r\n }\r\n return true;\r\n }\r\n\r\n function withdrawToken(IERC20 token, address receiver, uint256 amount) public onlyOwner returns (bool) {\r\n emit Withdrawal(receiver, address(token), amount);\r\n return token.transfer(receiver, amount);\r\n }\r\n\r\n function fairShare(uint256 balance, uint256 shares, uint256 totalShares) internal pure returns (uint256) {\r\n require(totalShares != 0);\r\n\r\n if (balance == 0) { return 0; }\r\n\r\n uint256 prod = balance * shares;\r\n\r\n if (prod / balance == shares) { // no overflow in multiplication above?\r\n return prod / totalShares;\r\n }\r\n\r\n return (balance / totalShares) * shares;\r\n }\r\n\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\GuildBank.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol", - "exportedSymbols": { - "GuildBank": [ - 7658 - ] - }, - "id": 7659, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7482, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:14" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", - "file": "./oz/IERC20.sol", - "id": 7483, - "nodeType": "ImportDirective", - "scope": 7659, - "sourceUnit": 9720, - "src": "36:25:14", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 7658, - "linearizedBaseContracts": [ - 7658 - ], - "name": "GuildBank", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 7485, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 7658, - "src": "92:20:14", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7484, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "92:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 7493, - "nodeType": "Block", - "src": "143:37:14", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7488, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7485, - "src": "154:5:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7489, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "162:3:14", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 7490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "162:10:14", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "154:18:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7492, - "nodeType": "ExpressionStatement", - "src": "154:18:14" - } - ] - }, - "documentation": null, - "id": 7494, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7486, - "nodeType": "ParameterList", - "parameters": [], - "src": "133:2:14" - }, - "returnParameters": { - "id": 7487, - "nodeType": "ParameterList", - "parameters": [], - "src": "143:0:14" - }, - "scope": 7658, - "src": "121:59:14", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7504, - "nodeType": "Block", - "src": "209:59:14", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 7500, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7497, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "228:3:14", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 7498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "228:10:14", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 7499, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7485, - "src": "242:5:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "228:19:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 7496, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "220:7:14", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 7501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "220:28:14", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7502, - "nodeType": "ExpressionStatement", - "src": "220:28:14" - }, - { - "id": 7503, - "nodeType": "PlaceholderStatement", - "src": "259:1:14" - } - ] - }, - "documentation": null, - "id": 7505, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 7495, - "nodeType": "ParameterList", - "parameters": [], - "src": "206:2:14" - }, - "src": "188:80:14", - "visibility": "internal" - }, - { - "anonymous": false, - "documentation": null, - "id": 7513, - "name": "Withdrawal", - "nodeType": "EventDefinition", - "parameters": { - "id": 7512, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7507, - "indexed": true, - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 7513, - "src": "293:24:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7506, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "293:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7509, - "indexed": true, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 7513, - "src": "319:28:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7508, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "319:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7511, - "indexed": false, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 7513, - "src": "349:14:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7510, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "349:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "292:72:14" - }, - "src": "276:89:14" - }, - { - "body": { - "id": 7579, - "nodeType": "Block", - "src": "510:354:14", - "statements": [ - { - "body": { - "id": 7575, - "nodeType": "Block", - "src": "573:262:14", - "statements": [ - { - "assignments": [ - 7541 - ], - "declarations": [ - { - "constant": false, - "id": 7541, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 7575, - "src": "588:14:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7540, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "588:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7554, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7548, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10435, - "src": "651:4:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - ], - "id": 7547, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "643:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 7549, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "643:13:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7543, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7522, - "src": "615:14:14", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[] memory" - } - }, - "id": 7545, - "indexExpression": { - "argumentTypes": null, - "id": 7544, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7530, - "src": "630:1:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "615:17:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 7546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 9693, - "src": "615:27:14", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 7550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "615:42:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7551, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7517, - "src": "659:6:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7552, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7519, - "src": "667:11:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7542, - "name": "fairShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7657, - "src": "605:9:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 7553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "605:74:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "588:91:14" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7556, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7515, - "src": "710:8:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7558, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7522, - "src": "728:14:14", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[] memory" - } - }, - "id": 7560, - "indexExpression": { - "argumentTypes": null, - "id": 7559, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7530, - "src": "743:1:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "728:17:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - ], - "id": 7557, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "720:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 7561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "720:26:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7562, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7541, - "src": "748:6:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7555, - "name": "Withdrawal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7513, - "src": "699:10:14", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 7563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "699:56:14", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7564, - "nodeType": "EmitStatement", - "src": "694:61:14" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7570, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7515, - "src": "805:8:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7571, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7541, - "src": "815:6:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7566, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7522, - "src": "778:14:14", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[] memory" - } - }, - "id": 7568, - "indexExpression": { - "argumentTypes": null, - "id": 7567, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7530, - "src": "793:1:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "778:17:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 7569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9661, - "src": "778:26:14", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 7572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "778:44:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 7565, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "770:7:14", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 7573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "770:53:14", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7574, - "nodeType": "ExpressionStatement", - "src": "770:53:14" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7533, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7530, - "src": "541:1:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7534, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7522, - "src": "545:14:14", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[] memory" - } - }, - "id": 7535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "545:21:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "541:25:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7576, - "initializationExpression": { - "assignments": [ - 7530 - ], - "declarations": [ - { - "constant": false, - "id": 7530, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 7576, - "src": "526:9:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7529, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "526:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7532, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 7531, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "538:1:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "526:13:14" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 7538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "568:3:14", - "subExpression": { - "argumentTypes": null, - "id": 7537, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7530, - "src": "568:1:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7539, - "nodeType": "ExpressionStatement", - "src": "568:3:14" - }, - "nodeType": "ForStatement", - "src": "521:314:14" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 7577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "852:4:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 7528, - "id": 7578, - "nodeType": "Return", - "src": "845:11:14" - } - ] - }, - "documentation": null, - "id": 7580, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 7525, - "modifierName": { - "argumentTypes": null, - "id": 7524, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7505, - "src": "485:9:14", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "485:9:14" - } - ], - "name": "withdraw", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7515, - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 7580, - "src": "391:16:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7514, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "391:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7517, - "name": "shares", - "nodeType": "VariableDeclaration", - "scope": 7580, - "src": "409:14:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7516, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "409:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7519, - "name": "totalShares", - "nodeType": "VariableDeclaration", - "scope": 7580, - "src": "425:19:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7518, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "425:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7522, - "name": "approvedTokens", - "nodeType": "VariableDeclaration", - "scope": 7580, - "src": "446:30:14", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 7520, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "446:6:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 7521, - "length": null, - "nodeType": "ArrayTypeName", - "src": "446:8:14", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage_ptr", - "typeString": "contract IERC20[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "390:87:14" - }, - "returnParameters": { - "id": 7528, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7527, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7580, - "src": "504:4:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7526, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "504:4:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "503:6:14" - }, - "scope": 7658, - "src": "373:491:14", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7607, - "nodeType": "Block", - "src": "975:118:14", - "statements": [ - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7594, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7584, - "src": "1002:8:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7596, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7582, - "src": "1020:5:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - ], - "id": 7595, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1012:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 7597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1012:14:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7598, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7586, - "src": "1028:6:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7593, - "name": "Withdrawal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7513, - "src": "991:10:14", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 7599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "991:44:14", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7600, - "nodeType": "EmitStatement", - "src": "986:49:14" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7603, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7584, - "src": "1068:8:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7604, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7586, - "src": "1078:6:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7601, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7582, - "src": "1053:5:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 7602, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9661, - "src": "1053:14:14", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 7605, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1053:32:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 7592, - "id": 7606, - "nodeType": "Return", - "src": "1046:39:14" - } - ] - }, - "documentation": null, - "id": 7608, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 7589, - "modifierName": { - "argumentTypes": null, - "id": 7588, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7505, - "src": "950:9:14", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "950:9:14" - } - ], - "name": "withdrawToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7587, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7582, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 7608, - "src": "895:12:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 7581, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "895:6:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7584, - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 7608, - "src": "909:16:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7583, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "909:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7586, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 7608, - "src": "927:14:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7585, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "927:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "894:48:14" - }, - "returnParameters": { - "id": 7592, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7591, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7608, - "src": "969:4:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7590, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "969:4:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "968:6:14" - }, - "scope": 7658, - "src": "872:221:14", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7656, - "nodeType": "Block", - "src": "1206:317:14", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7622, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7620, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7614, - "src": "1225:11:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7621, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1240:1:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1225:16:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 7619, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "1217:7:14", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 7623, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1217:25:14", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7624, - "nodeType": "ExpressionStatement", - "src": "1217:25:14" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7627, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7625, - "name": "balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7610, - "src": "1259:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7626, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1270:1:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1259:12:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 7631, - "nodeType": "IfStatement", - "src": "1255:31:14", - "trueBody": { - "id": 7630, - "nodeType": "Block", - "src": "1273:13:14", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1282:1:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 7618, - "id": 7629, - "nodeType": "Return", - "src": "1275:8:14" - } - ] - } - }, - { - "assignments": [ - 7633 - ], - "declarations": [ - { - "constant": false, - "id": 7633, - "name": "prod", - "nodeType": "VariableDeclaration", - "scope": 7656, - "src": "1298:12:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7632, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1298:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7637, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7634, - "name": "balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7610, - "src": "1313:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 7635, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7612, - "src": "1323:6:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1313:16:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1298:31:14" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7638, - "name": "prod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7633, - "src": "1346:4:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 7639, - "name": "balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7610, - "src": "1353:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1346:14:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 7641, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7612, - "src": "1364:6:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1346:24:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 7648, - "nodeType": "IfStatement", - "src": "1342:122:14", - "trueBody": { - "id": 7647, - "nodeType": "Block", - "src": "1372:92:14", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7643, - "name": "prod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7633, - "src": "1434:4:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 7644, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7614, - "src": "1441:11:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1434:18:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7618, - "id": 7646, - "nodeType": "Return", - "src": "1427:25:14" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7649, - "name": "balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7610, - "src": "1484:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 7650, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7614, - "src": "1494:11:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1484:21:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 7652, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1483:23:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 7653, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7612, - "src": "1509:6:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1483:32:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7618, - "id": 7655, - "nodeType": "Return", - "src": "1476:39:14" - } - ] - }, - "documentation": null, - "id": 7657, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "fairShare", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7615, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7610, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 7657, - "src": "1120:15:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7609, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1120:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7612, - "name": "shares", - "nodeType": "VariableDeclaration", - "scope": 7657, - "src": "1137:14:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7611, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1137:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7614, - "name": "totalShares", - "nodeType": "VariableDeclaration", - "scope": 7657, - "src": "1153:19:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7613, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1153:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1119:54:14" - }, - "returnParameters": { - "id": 7618, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7617, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7657, - "src": "1197:7:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7616, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1197:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1196:9:14" - }, - "scope": 7658, - "src": "1101:422:14", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 7659, - "src": "65:1463:14" - } - ], - "src": "0:1530:14" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol", - "exportedSymbols": { - "GuildBank": [ - 7658 - ] - }, - "id": 7659, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7482, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:14" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", - "file": "./oz/IERC20.sol", - "id": 7483, - "nodeType": "ImportDirective", - "scope": 7659, - "sourceUnit": 9720, - "src": "36:25:14", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 7658, - "linearizedBaseContracts": [ - 7658 - ], - "name": "GuildBank", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 7485, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 7658, - "src": "92:20:14", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7484, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "92:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 7493, - "nodeType": "Block", - "src": "143:37:14", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 7491, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7488, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7485, - "src": "154:5:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7489, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "162:3:14", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 7490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "162:10:14", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "154:18:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7492, - "nodeType": "ExpressionStatement", - "src": "154:18:14" - } - ] - }, - "documentation": null, - "id": 7494, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7486, - "nodeType": "ParameterList", - "parameters": [], - "src": "133:2:14" - }, - "returnParameters": { - "id": 7487, - "nodeType": "ParameterList", - "parameters": [], - "src": "143:0:14" - }, - "scope": 7658, - "src": "121:59:14", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7504, - "nodeType": "Block", - "src": "209:59:14", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 7500, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7497, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "228:3:14", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 7498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "228:10:14", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 7499, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7485, - "src": "242:5:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "228:19:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 7496, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "220:7:14", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 7501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "220:28:14", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7502, - "nodeType": "ExpressionStatement", - "src": "220:28:14" - }, - { - "id": 7503, - "nodeType": "PlaceholderStatement", - "src": "259:1:14" - } - ] - }, - "documentation": null, - "id": 7505, - "name": "onlyOwner", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 7495, - "nodeType": "ParameterList", - "parameters": [], - "src": "206:2:14" - }, - "src": "188:80:14", - "visibility": "internal" - }, - { - "anonymous": false, - "documentation": null, - "id": 7513, - "name": "Withdrawal", - "nodeType": "EventDefinition", - "parameters": { - "id": 7512, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7507, - "indexed": true, - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 7513, - "src": "293:24:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7506, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "293:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7509, - "indexed": true, - "name": "tokenAddress", - "nodeType": "VariableDeclaration", - "scope": 7513, - "src": "319:28:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7508, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "319:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7511, - "indexed": false, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 7513, - "src": "349:14:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7510, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "349:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "292:72:14" - }, - "src": "276:89:14" - }, - { - "body": { - "id": 7579, - "nodeType": "Block", - "src": "510:354:14", - "statements": [ - { - "body": { - "id": 7575, - "nodeType": "Block", - "src": "573:262:14", - "statements": [ - { - "assignments": [ - 7541 - ], - "declarations": [ - { - "constant": false, - "id": 7541, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 7575, - "src": "588:14:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7540, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "588:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7554, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7548, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10435, - "src": "651:4:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - ], - "id": 7547, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "643:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 7549, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "643:13:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7543, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7522, - "src": "615:14:14", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[] memory" - } - }, - "id": 7545, - "indexExpression": { - "argumentTypes": null, - "id": 7544, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7530, - "src": "630:1:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "615:17:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 7546, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "balanceOf", - "nodeType": "MemberAccess", - "referencedDeclaration": 9693, - "src": "615:27:14", - "typeDescriptions": { - "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view external returns (uint256)" - } - }, - "id": 7550, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "615:42:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7551, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7517, - "src": "659:6:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 7552, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7519, - "src": "667:11:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7542, - "name": "fairShare", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7657, - "src": "605:9:14", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256,uint256) pure returns (uint256)" - } - }, - "id": 7553, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "605:74:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "588:91:14" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7556, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7515, - "src": "710:8:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7558, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7522, - "src": "728:14:14", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[] memory" - } - }, - "id": 7560, - "indexExpression": { - "argumentTypes": null, - "id": 7559, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7530, - "src": "743:1:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "728:17:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - ], - "id": 7557, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "720:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 7561, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "720:26:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7562, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7541, - "src": "748:6:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7555, - "name": "Withdrawal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7513, - "src": "699:10:14", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 7563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "699:56:14", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7564, - "nodeType": "EmitStatement", - "src": "694:61:14" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7570, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7515, - "src": "805:8:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7571, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7541, - "src": "815:6:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7566, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7522, - "src": "778:14:14", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[] memory" - } - }, - "id": 7568, - "indexExpression": { - "argumentTypes": null, - "id": 7567, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7530, - "src": "793:1:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "778:17:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 7569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9661, - "src": "778:26:14", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 7572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "778:44:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 7565, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "770:7:14", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 7573, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "770:53:14", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7574, - "nodeType": "ExpressionStatement", - "src": "770:53:14" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7536, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7533, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7530, - "src": "541:1:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7534, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7522, - "src": "545:14:14", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[] memory" - } - }, - "id": 7535, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "545:21:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "541:25:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7576, - "initializationExpression": { - "assignments": [ - 7530 - ], - "declarations": [ - { - "constant": false, - "id": 7530, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 7576, - "src": "526:9:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7529, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "526:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7532, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 7531, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "538:1:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "526:13:14" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 7538, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "568:3:14", - "subExpression": { - "argumentTypes": null, - "id": 7537, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7530, - "src": "568:1:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7539, - "nodeType": "ExpressionStatement", - "src": "568:3:14" - }, - "nodeType": "ForStatement", - "src": "521:314:14" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 7577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "852:4:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 7528, - "id": 7578, - "nodeType": "Return", - "src": "845:11:14" - } - ] - }, - "documentation": null, - "id": 7580, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 7525, - "modifierName": { - "argumentTypes": null, - "id": 7524, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7505, - "src": "485:9:14", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "485:9:14" - } - ], - "name": "withdraw", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7523, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7515, - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 7580, - "src": "391:16:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7514, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "391:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7517, - "name": "shares", - "nodeType": "VariableDeclaration", - "scope": 7580, - "src": "409:14:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7516, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "409:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7519, - "name": "totalShares", - "nodeType": "VariableDeclaration", - "scope": 7580, - "src": "425:19:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7518, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "425:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7522, - "name": "approvedTokens", - "nodeType": "VariableDeclaration", - "scope": 7580, - "src": "446:30:14", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 7520, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "446:6:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 7521, - "length": null, - "nodeType": "ArrayTypeName", - "src": "446:8:14", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage_ptr", - "typeString": "contract IERC20[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "390:87:14" - }, - "returnParameters": { - "id": 7528, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7527, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7580, - "src": "504:4:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7526, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "504:4:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "503:6:14" - }, - "scope": 7658, - "src": "373:491:14", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7607, - "nodeType": "Block", - "src": "975:118:14", - "statements": [ - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7594, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7584, - "src": "1002:8:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7596, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7582, - "src": "1020:5:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - ], - "id": 7595, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1012:7:14", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 7597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1012:14:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7598, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7586, - "src": "1028:6:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 7593, - "name": "Withdrawal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7513, - "src": "991:10:14", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 7599, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "991:44:14", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7600, - "nodeType": "EmitStatement", - "src": "986:49:14" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 7603, - "name": "receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7584, - "src": "1068:8:14", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 7604, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7586, - "src": "1078:6:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 7601, - "name": "token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7582, - "src": "1053:5:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 7602, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9661, - "src": "1053:14:14", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 7605, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1053:32:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 7592, - "id": 7606, - "nodeType": "Return", - "src": "1046:39:14" - } - ] - }, - "documentation": null, - "id": 7608, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 7589, - "modifierName": { - "argumentTypes": null, - "id": 7588, - "name": "onlyOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7505, - "src": "950:9:14", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "950:9:14" - } - ], - "name": "withdrawToken", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7587, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7582, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 7608, - "src": "895:12:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 7581, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "895:6:14", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7584, - "name": "receiver", - "nodeType": "VariableDeclaration", - "scope": 7608, - "src": "909:16:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7583, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "909:7:14", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7586, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 7608, - "src": "927:14:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7585, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "927:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "894:48:14" - }, - "returnParameters": { - "id": 7592, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7591, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7608, - "src": "969:4:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7590, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "969:4:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "968:6:14" - }, - "scope": 7658, - "src": "872:221:14", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 7656, - "nodeType": "Block", - "src": "1206:317:14", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7622, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7620, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7614, - "src": "1225:11:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7621, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1240:1:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1225:16:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 7619, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "1217:7:14", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 7623, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1217:25:14", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7624, - "nodeType": "ExpressionStatement", - "src": "1217:25:14" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7627, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7625, - "name": "balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7610, - "src": "1259:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7626, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1270:1:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "1259:12:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 7631, - "nodeType": "IfStatement", - "src": "1255:31:14", - "trueBody": { - "id": 7630, - "nodeType": "Block", - "src": "1273:13:14", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7628, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1282:1:14", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 7618, - "id": 7629, - "nodeType": "Return", - "src": "1275:8:14" - } - ] - } - }, - { - "assignments": [ - 7633 - ], - "declarations": [ - { - "constant": false, - "id": 7633, - "name": "prod", - "nodeType": "VariableDeclaration", - "scope": 7656, - "src": "1298:12:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7632, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1298:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7637, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7636, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7634, - "name": "balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7610, - "src": "1313:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 7635, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7612, - "src": "1323:6:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1313:16:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "1298:31:14" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7640, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7638, - "name": "prod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7633, - "src": "1346:4:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 7639, - "name": "balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7610, - "src": "1353:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1346:14:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 7641, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7612, - "src": "1364:6:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1346:24:14", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 7648, - "nodeType": "IfStatement", - "src": "1342:122:14", - "trueBody": { - "id": 7647, - "nodeType": "Block", - "src": "1372:92:14", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7643, - "name": "prod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7633, - "src": "1434:4:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 7644, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7614, - "src": "1441:11:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1434:18:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7618, - "id": 7646, - "nodeType": "Return", - "src": "1427:25:14" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7654, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7651, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7649, - "name": "balance", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7610, - "src": "1484:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 7650, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7614, - "src": "1494:11:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1484:21:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 7652, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "1483:23:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 7653, - "name": "shares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7612, - "src": "1509:6:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1483:32:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 7618, - "id": 7655, - "nodeType": "Return", - "src": "1476:39:14" - } - ] - }, - "documentation": null, - "id": 7657, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "fairShare", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7615, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7610, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 7657, - "src": "1120:15:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7609, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1120:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7612, - "name": "shares", - "nodeType": "VariableDeclaration", - "scope": 7657, - "src": "1137:14:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7611, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1137:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7614, - "name": "totalShares", - "nodeType": "VariableDeclaration", - "scope": 7657, - "src": "1153:19:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7613, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1153:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1119:54:14" - }, - "returnParameters": { - "id": 7618, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7617, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 7657, - "src": "1197:7:14", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7616, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1197:7:14", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1196:9:14" - }, - "scope": 7658, - "src": "1101:422:14", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 7659, - "src": "65:1463:14" - } - ], - "src": "0:1530:14" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:20.168Z", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/HumanStandardToken.json b/src/contracts/HumanStandardToken.json deleted file mode 100644 index a4eb298..0000000 --- a/src/contracts/HumanStandardToken.json +++ /dev/null @@ -1,5733 +0,0 @@ -{ - "contractName": "HumanStandardToken", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "name", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "decimals", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "version", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "symbol", - "outputs": [ - { - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_initialAmount", - "type": "uint256" - }, - { - "name": "_tokenName", - "type": "string" - }, - { - "name": "_decimalUnits", - "type": "uint8" - }, - { - "name": "_tokenSymbol", - "type": "string" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_from", - "type": "address" - }, - { - "indexed": false, - "name": "_to", - "type": "address" - }, - { - "indexed": false, - "name": "_value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_owner", - "type": "address" - }, - { - "indexed": false, - "name": "_spender", - "type": "address" - }, - { - "indexed": false, - "name": "_value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_from", - "type": "address" - }, - { - "name": "_to", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "balance", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_spender", - "type": "address" - }, - { - "name": "_value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_owner", - "type": "address" - }, - { - "name": "_spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "remaining", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_from\",\"type\":\"address\"},{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"version\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"balance\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_to\",\"type\":\"address\"},{\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"success\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\"},{\"name\":\"_spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"remaining\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_initialAmount\",\"type\":\"uint256\"},{\"name\":\"_tokenName\",\"type\":\"string\"},{\"name\":\"_decimalUnits\",\"type\":\"uint8\"},{\"name\":\"_tokenSymbol\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_owner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/HumanStandardToken.sol\":\"HumanStandardToken\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC20Token.sol\":{\"keccak256\":\"0x3148ace3c8e413e3e8cb9181826bbb7382fe8fd691fbbe398b0f3291c5ac88f6\",\"urls\":[\"bzzr://f6dae48bd61cf187d97f6dd7b1f14c4216ccda99c9173d87ac59465f9d3a030b\",\"dweb:/ipfs/QmbDe5WTm8sWmUWRbKxtWUrSbyS1T5vgkiVscK94RJb6iS\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/HumanStandardToken.sol\":{\"keccak256\":\"0x84cf05b3aedd146c60769d2ad00bf26e7403ab72fed4f03b7b1dd0fd4ed3c4fb\",\"urls\":[\"bzzr://cf8349a1f17075cbc166cd200f4e6a05e378a4a69ca474f2b7273cde6e830241\",\"dweb:/ipfs/QmeWmKmdhJMm5J4j62gzmDbktSoWn2wjNxT4Bv4FLu8HmF\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/Token.sol\":{\"keccak256\":\"0xdee24120ae0fa14b9200dfa97babfa107aaf668b52eeda93ad672260ede4b74c\",\"urls\":[\"bzzr://2144e06fcebb6227647c4362c7075680ea03074e80e51d37cad0b09092ff06a5\",\"dweb:/ipfs/QmYgcfKEH2DT6brtajHvPRdu6my6CRWH86TXmZCMZeGjfK\"]}},\"version\":1}", - "bytecode": "0x60c0604052600460808190527f48302e310000000000000000000000000000000000000000000000000000000060a090815261003e916006919061016b565b5034801561004b57600080fd5b506040516108493803806108498339818101604052608081101561006e57600080fd5b81516020830180519193928301929164010000000081111561008f57600080fd5b820160208101848111156100a257600080fd5b81516401000000008111828201871017156100bc57600080fd5b505060208201516040909201805191949293916401000000008111156100e157600080fd5b820160208101848111156100f457600080fd5b815164010000000081118282018710171561010e57600080fd5b5050336000908152600160209081526040822089905590889055865191945061013e93506003925086019061016b565b506004805460ff191660ff8416179055805161016190600590602084019061016b565b5050505050610206565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106101ac57805160ff19168380011785556101d9565b828001600101855582156101d9579182015b828111156101d95782518255916020019190600101906101be565b506101e59291506101e9565b5090565b61020391905b808211156101e557600081556001016101ef565b90565b610634806102156000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c806354fd4d501161006657806354fd4d50146101ce57806370a08231146101d657806395d89b41146101fc578063a9059cbb14610204578063dd62ed3e146102305761009e565b806306fdde03146100a3578063095ea7b31461012057806318160ddd1461016057806323b872dd1461017a578063313ce567146101b0575b600080fd5b6100ab61025e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100e55781810151838201526020016100cd565b50505050905090810190601f1680156101125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61014c6004803603604081101561013657600080fd5b506001600160a01b0381351690602001356102ec565b604080519115158252519081900360200190f35b61016861035e565b60408051918252519081900360200190f35b61014c6004803603606081101561019057600080fd5b506001600160a01b03813581169160208101359091169060400135610364565b6101b8610459565b6040805160ff9092168252519081900360200190f35b6100ab610462565b610168600480360360208110156101ec57600080fd5b50356001600160a01b03166104bd565b6100ab6104d8565b61014c6004803603604081101561021a57600080fd5b506001600160a01b038135169060200135610533565b6101686004803603604081101561024657600080fd5b506001600160a01b03813581169160200135166105d4565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102e45780601f106102b9576101008083540402835291602001916102e4565b820191906000526020600020905b8154815290600101906020018083116102c757829003601f168201915b505050505081565b3360008181526002602090815260408083206001600160a01b0387168085529083528184208690558151948552918401919091528281018490525190917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925919081900360600190a15060015b92915050565b60005481565b6001600160a01b03831660009081526001602052604081205482118015906103af57506001600160a01b03841660009081526002602090815260408083203384529091529020548211155b80156103bb5750600082115b1561044e576001600160a01b038084166000818152600160209081526040808320805488019055938816808352848320805488900390556002825284832033845282529184902080548790039055835191825281019190915280820184905290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a1506001610452565b5060005b9392505050565b60045460ff1681565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102e45780601f106102b9576101008083540402835291602001916102e4565b6001600160a01b031660009081526001602052604090205490565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102e45780601f106102b9576101008083540402835291602001916102e4565b3360009081526001602052604081205482118015906105525750600082115b156105cc57336000818152600160209081526040808320805487900390556001600160a01b03871680845292819020805487019055805193845290830191909152818101849052517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a1506001610358565b506000610358565b6001600160a01b0391821660009081526002602090815260408083209390941682529190915220549056fea265627a7a72305820ea50d5555dc6ba11d5c386fb3c62afb045c6406a2ecde00a994eb76840f7ea2f64736f6c63430005090032", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c806354fd4d501161006657806354fd4d50146101ce57806370a08231146101d657806395d89b41146101fc578063a9059cbb14610204578063dd62ed3e146102305761009e565b806306fdde03146100a3578063095ea7b31461012057806318160ddd1461016057806323b872dd1461017a578063313ce567146101b0575b600080fd5b6100ab61025e565b6040805160208082528351818301528351919283929083019185019080838360005b838110156100e55781810151838201526020016100cd565b50505050905090810190601f1680156101125780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61014c6004803603604081101561013657600080fd5b506001600160a01b0381351690602001356102ec565b604080519115158252519081900360200190f35b61016861035e565b60408051918252519081900360200190f35b61014c6004803603606081101561019057600080fd5b506001600160a01b03813581169160208101359091169060400135610364565b6101b8610459565b6040805160ff9092168252519081900360200190f35b6100ab610462565b610168600480360360208110156101ec57600080fd5b50356001600160a01b03166104bd565b6100ab6104d8565b61014c6004803603604081101561021a57600080fd5b506001600160a01b038135169060200135610533565b6101686004803603604081101561024657600080fd5b506001600160a01b03813581169160200135166105d4565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102e45780601f106102b9576101008083540402835291602001916102e4565b820191906000526020600020905b8154815290600101906020018083116102c757829003601f168201915b505050505081565b3360008181526002602090815260408083206001600160a01b0387168085529083528184208690558151948552918401919091528281018490525190917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925919081900360600190a15060015b92915050565b60005481565b6001600160a01b03831660009081526001602052604081205482118015906103af57506001600160a01b03841660009081526002602090815260408083203384529091529020548211155b80156103bb5750600082115b1561044e576001600160a01b038084166000818152600160209081526040808320805488019055938816808352848320805488900390556002825284832033845282529184902080548790039055835191825281019190915280820184905290517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a1506001610452565b5060005b9392505050565b60045460ff1681565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102e45780601f106102b9576101008083540402835291602001916102e4565b6001600160a01b031660009081526001602052604090205490565b6005805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156102e45780601f106102b9576101008083540402835291602001916102e4565b3360009081526001602052604081205482118015906105525750600082115b156105cc57336000818152600160209081526040808320805487900390556001600160a01b03871680845292819020805487019055805193845290830191909152818101849052517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360600190a1506001610358565b506000610358565b6001600160a01b0391821660009081526002602090815260408083209390941682529190915220549056fea265627a7a72305820ea50d5555dc6ba11d5c386fb3c62afb045c6406a2ecde00a994eb76840f7ea2f64736f6c63430005090032", - "sourceMap": "1549:30:9:-;828:3355;1549:30;;828:3355;1549:30;;;;;;;;;;;;;;:::i;:::-;;1653:664;8:9:-1;5:2;;;30:1;27;20:12;5:2;1653:664:9;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;1653:664:9;;;;;;;;;;;;;;19:11:-1;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;261:11;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;-1:-1;;1653:664:9;;;;;;;;;;;;;;;19:11:-1;11:20;;8:2;;;44:1;41;34:12;8:2;62:21;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;261:11;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;-1:-1;;1838:10:9;1829:20;;;;:8;:20;;;;;;;:37;;;1930:28;;;;2015:17;;1653:664;;-1:-1:-1;2015:17:9;;-1:-1:-1;2015:4:9;;-1:-1:-1;2015:17:9;;;;:::i;:::-;-1:-1:-1;2114:8:9;:24;;-1:-1:-1;;2114:24:9;;;;;;;2219:21;;;;:6;;:21;;;;;:::i;:::-;;1653:664;;;;828:3355;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;828:3355:9;;;-1:-1:-1;828:3355:9;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "828:3355:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;828:3355:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1215:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1215:18:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3816:214;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3816:214:9;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;629:26:11;;;:::i;:::-;;;;;;;;;;;;;;;;3012:673:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3012:673:9;;;;;;;;;;;;;;;;;:::i;1287:21::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1549:30;;;:::i;3693:115::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3693:115:9;-1:-1:-1;;;;;3693:115:9;;:::i;1482:20::-;;;:::i;2323:681::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2323:681:9;;;;;;;;:::i;4038:142::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4038:142:9;;;;;;;;;;:::i;1215:18::-;;;;;;;;;;;;;;;-1:-1:-1;;1215:18:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3816:214::-;3916:10;3883:12;3908:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3908:29:9;;;;;;;;;;;:38;;;3962;;;;;;;;;;;;;;;;;;;3883:12;;3962:38;;;;;;;;;;-1:-1:-1;4018:4:9;3816:214;;;;;:::o;629:26:11:-;;;;:::o;3012:673:9:-;-1:-1:-1;;;;;3359:15:9;;3094:12;3359:15;;;:8;:15;;;;;;:25;-1:-1:-1;3359:25:9;;;:65;;-1:-1:-1;;;;;;3388:14:9;;;;;;:7;:14;;;;;;;;3403:10;3388:26;;;;;;;;:36;-1:-1:-1;3388:36:9;3359:65;:79;;;;;3437:1;3428:6;:10;3359:79;3355:323;;;-1:-1:-1;;;;;3455:13:9;;;;;;;:8;:13;;;;;;;;:23;;;;;;3493:15;;;;;;;;;:25;;;;;;;3533:7;:14;;;;;3548:10;3533:26;;;;;;;;:36;;;;;;;3589:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3639:4:9;3632:11;;3355:323;-1:-1:-1;3670:5:9;3355:323;3012:673;;;;;:::o;1287:21::-;;;;;;:::o;1549:30::-;;;;;;;;;;;;;;;-1:-1:-1;;1549:30:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3693:115;-1:-1:-1;;;;;3784:16:9;3749:15;3784:16;;;:8;:16;;;;;;;3693:115::o;1482:20::-;;;;;;;;;;;;;;;-1:-1:-1;;1482:20:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2323:681;2763:10;2386:12;2754:20;;;:8;:20;;;;;;:30;-1:-1:-1;2754:30:9;;;:44;;;2797:1;2788:6;:10;2754:44;2750:247;;;2824:10;2815:20;;;;:8;:20;;;;;;;;:30;;;;;;;-1:-1:-1;;;;;2860:13:9;;;;;;;;;:23;;;;;;2903:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2958:4:9;2951:11;;2750:247;-1:-1:-1;2989:5:9;2982:12;;4038:142;-1:-1:-1;;;;;4147:15:9;;;4112:17;4147:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;4038:142::o", - "source": "/*\r\nThis Token Contract implements the standard token functionality (https://github.com/ethereum/EIPs/issues/20) as well as the following OPTIONAL extras intended for use by humans.\r\n\r\nIn other words. This is intended for deployment in something like a Token Factory or Mist wallet, and then used by humans.\r\nImagine coins, currencies, shares, voting weight, etc.\r\nMachine-based, rapid creation of many tokens would not necessarily need these extra features or will be minted in other manners.\r\n\r\n1) Initial Finite Supply (upon creation one specifies how much is minted).\r\n2) In the absence of a token registry: Optional Decimal, Symbol & Name.\r\n3) Optional approveAndCall() functionality to notify a contract if an approval() has occurred.\r\n\r\n.*/\r\n\r\nimport \"../inherited/ERC20Token.sol\";\r\n\r\npragma solidity >=0.5.0 < 0.6.0;\r\n\r\ncontract HumanStandardToken is ERC20Token {\r\n\r\n /* Public variables of the token */\r\n\r\n /*\r\n NOTE:\r\n The following variables are OPTIONAL vanities. One does not have to include them.\r\n They allow one to customise the token contract & in no way influences the core functionality.\r\n Some wallets/interfaces might not even bother to look at this information.\r\n */\r\n string public name; //fancy name: eg Simon Bucks\r\n uint8 public decimals; //How many decimals to show. ie. There could 1000 base units with 3 decimals. Meaning 0.980 SBX = 980 base units. It's like comparing 1 wei to 1 ether.\r\n string public symbol; //An identifier: eg SBX\r\n string public version = 'H0.1'; //human 0.1 standard. Just an arbitrary versioning scheme.\r\n\r\n constructor(\r\n uint256 _initialAmount,\r\n string memory _tokenName,\r\n uint8 _decimalUnits,\r\n string memory _tokenSymbol\r\n ) public {\r\n balances[msg.sender] = _initialAmount; // Give the creator all initial tokens\r\n totalSupply = _initialAmount; // Update total supply\r\n name = _tokenName; // Set the name for display purposes\r\n decimals = _decimalUnits; // Amount of decimals for display purposes\r\n symbol = _tokenSymbol; // Set the symbol for display purposes\r\n }\r\n function transfer(address _to, uint256 _value) public returns (bool success) {\r\n //Default assumes totalSupply can't be over max (2^256 - 1).\r\n //If your token leaves out totalSupply and can issue more tokens as time goes on, you need to check if it doesn't wrap.\r\n //Replace the if with this one instead.\r\n //if (balances[msg.sender] >= _value && balances[_to] + _value > balances[_to]) {\r\n if (balances[msg.sender] >= _value && _value > 0) {\r\n balances[msg.sender] -= _value;\r\n balances[_to] += _value;\r\n emit Transfer(msg.sender, _to, _value);\r\n return true;\r\n } else { return false; }\r\n }\r\n\r\n function transferFrom(address _from, address _to, uint256 _value) public returns (bool success) {\r\n //same as above. Replace this line with the following if you want to protect against wrapping uints.\r\n //if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && balances[_to] + _value > balances[_to]) {\r\n if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0) {\r\n balances[_to] += _value;\r\n balances[_from] -= _value;\r\n allowed[_from][msg.sender] -= _value;\r\n emit Transfer(_from, _to, _value);\r\n return true;\r\n } else { return false; }\r\n }\r\n\r\n function balanceOf(address _owner) view public returns (uint256 balance) {\r\n return balances[_owner];\r\n }\r\n\r\n function approve(address _spender, uint256 _value) public returns (bool success) {\r\n allowed[msg.sender][_spender] = _value;\r\n emit Approval(msg.sender, _spender, _value);\r\n return true;\r\n }\r\n\r\n function allowance(address _owner, address _spender) view public returns (uint256 remaining) {\r\n return allowed[_owner][_spender];\r\n }\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\inherited\\HumanStandardToken.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/HumanStandardToken.sol", - "exportedSymbols": { - "HumanStandardToken": [ - 6014 - ] - }, - "id": 6015, - "nodeType": "SourceUnit", - "nodes": [ - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC20Token.sol", - "file": "../inherited/ERC20Token.sol", - "id": 5799, - "nodeType": "ImportDirective", - "scope": 6015, - "sourceUnit": 4990, - "src": "751:37:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 5800, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "792:32:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5801, - "name": "ERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4989, - "src": "859:10:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Token_$4989", - "typeString": "contract ERC20Token" - } - }, - "id": 5802, - "nodeType": "InheritanceSpecifier", - "src": "859:10:9" - } - ], - "contractDependencies": [ - 4989, - 6137 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 6014, - "linearizedBaseContracts": [ - 6014, - 4989, - 6137 - ], - "name": "HumanStandardToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 5804, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 6014, - "src": "1215:18:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 5803, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1215:6:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 5806, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 6014, - "src": "1287:21:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 5805, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1287:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 5808, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 6014, - "src": "1482:20:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 5807, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1482:6:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 5811, - "name": "version", - "nodeType": "VariableDeclaration", - "scope": 6014, - "src": "1549:30:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 5809, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1549:6:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "48302e31", - "id": 5810, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1573:6:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d6d58ef494a91661d08cde370ab3ac80b175fdf7fb2bea79e75e8276633326a2", - "typeString": "literal_string \"H0.1\"" - }, - "value": "H0.1" - }, - "visibility": "public" - }, - { - "body": { - "id": 5845, - "nodeType": "Block", - "src": "1818:499:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5822, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "1829:8:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5825, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5823, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "1838:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5824, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1838:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1829:20:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5826, - "name": "_initialAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5813, - "src": "1852:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1829:37:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5828, - "nodeType": "ExpressionStatement", - "src": "1829:37:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 5831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 5829, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6075, - "src": "1930:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5830, - "name": "_initialAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5813, - "src": "1944:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1930:28:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5832, - "nodeType": "ExpressionStatement", - "src": "1930:28:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 5835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 5833, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5804, - "src": "2015:4:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5834, - "name": "_tokenName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5815, - "src": "2022:10:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "2015:17:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 5836, - "nodeType": "ExpressionStatement", - "src": "2015:17:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 5839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 5837, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5806, - "src": "2114:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5838, - "name": "_decimalUnits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5817, - "src": "2125:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "2114:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 5840, - "nodeType": "ExpressionStatement", - "src": "2114:24:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 5843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 5841, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5808, - "src": "2219:6:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5842, - "name": "_tokenSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5819, - "src": "2228:12:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "2219:21:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 5844, - "nodeType": "ExpressionStatement", - "src": "2219:21:9" - } - ] - }, - "documentation": null, - "id": 5846, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5820, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5813, - "name": "_initialAmount", - "nodeType": "VariableDeclaration", - "scope": 5846, - "src": "1675:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1675:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5815, - "name": "_tokenName", - "nodeType": "VariableDeclaration", - "scope": 5846, - "src": "1708:24:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 5814, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1708:6:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5817, - "name": "_decimalUnits", - "nodeType": "VariableDeclaration", - "scope": 5846, - "src": "1743:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 5816, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1743:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5819, - "name": "_tokenSymbol", - "nodeType": "VariableDeclaration", - "scope": 5846, - "src": "1773:26:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 5818, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1773:6:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1664:146:9" - }, - "returnParameters": { - "id": 5821, - "nodeType": "ParameterList", - "parameters": [], - "src": "1818:0:9" - }, - "scope": 6014, - "src": "1653:664:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5892, - "nodeType": "Block", - "src": "2400:604:9", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5855, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "2754:8:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5858, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5856, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "2763:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2763:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2754:20:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 5859, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5850, - "src": "2778:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2754:30:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5861, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5850, - "src": "2788:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5862, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2797:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2788:10:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2754:44:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 5890, - "nodeType": "Block", - "src": "2980:17:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 5888, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2989:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 5854, - "id": 5889, - "nodeType": "Return", - "src": "2982:12:9" - } - ] - }, - "id": 5891, - "nodeType": "IfStatement", - "src": "2750:247:9", - "trueBody": { - "id": 5887, - "nodeType": "Block", - "src": "2800:174:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5865, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "2815:8:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5868, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5866, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "2824:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2824:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2815:20:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 5869, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5850, - "src": "2839:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2815:30:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5871, - "nodeType": "ExpressionStatement", - "src": "2815:30:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 5876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5872, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "2860:8:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5874, - "indexExpression": { - "argumentTypes": null, - "id": 5873, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5848, - "src": "2869:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2860:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 5875, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5850, - "src": "2877:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2860:23:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5877, - "nodeType": "ExpressionStatement", - "src": "2860:23:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5879, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "2912:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5880, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2912:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5881, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5848, - "src": "2924:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5882, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5850, - "src": "2929:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5878, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6128, - "src": "2903:8:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5883, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2903:33:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5884, - "nodeType": "EmitStatement", - "src": "2898:38:9" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5885, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2958:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 5854, - "id": 5886, - "nodeType": "Return", - "src": "2951:11:9" - } - ] - } - } - ] - }, - "documentation": null, - "id": 5893, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5851, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5848, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5893, - "src": "2341:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5847, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2341:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5850, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 5893, - "src": "2354:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5849, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2354:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2340:29:9" - }, - "returnParameters": { - "id": 5854, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5853, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 5893, - "src": "2386:12:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5852, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2386:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2385:14:9" - }, - "scope": 6014, - "src": "2323:681:9", - "stateMutability": "nonpayable", - "superFunction": 4858, - "visibility": "public" - }, - { - "body": { - "id": 5956, - "nodeType": "Block", - "src": "3108:577:9", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5921, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5904, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "3359:8:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5906, - "indexExpression": { - "argumentTypes": null, - "id": 5905, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5895, - "src": "3368:5:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3359:15:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 5907, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5899, - "src": "3378:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3359:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5909, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4988, - "src": "3388:7:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 5911, - "indexExpression": { - "argumentTypes": null, - "id": 5910, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5895, - "src": "3396:5:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3388:14:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5914, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5912, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3403:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3403:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3388:26:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 5915, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5899, - "src": "3418:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3388:36:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3359:65:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5918, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5899, - "src": "3428:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5919, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3437:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3428:10:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3359:79:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 5954, - "nodeType": "Block", - "src": "3661:17:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 5952, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3670:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 5903, - "id": 5953, - "nodeType": "Return", - "src": "3663:12:9" - } - ] - }, - "id": 5955, - "nodeType": "IfStatement", - "src": "3355:323:9", - "trueBody": { - "id": 5951, - "nodeType": "Block", - "src": "3440:215:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5922, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "3455:8:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5924, - "indexExpression": { - "argumentTypes": null, - "id": 5923, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5897, - "src": "3464:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3455:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 5925, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5899, - "src": "3472:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3455:23:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5927, - "nodeType": "ExpressionStatement", - "src": "3455:23:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 5932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5928, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "3493:8:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5930, - "indexExpression": { - "argumentTypes": null, - "id": 5929, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5895, - "src": "3502:5:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3493:15:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 5931, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5899, - "src": "3512:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3493:25:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5933, - "nodeType": "ExpressionStatement", - "src": "3493:25:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 5941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5934, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4988, - "src": "3533:7:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 5938, - "indexExpression": { - "argumentTypes": null, - "id": 5935, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5895, - "src": "3541:5:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3533:14:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5939, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5936, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3548:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5937, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3548:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3533:26:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 5940, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5899, - "src": "3563:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3533:36:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5942, - "nodeType": "ExpressionStatement", - "src": "3533:36:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5944, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5895, - "src": "3598:5:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5945, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5897, - "src": "3605:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5946, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5899, - "src": "3610:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5943, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6128, - "src": "3589:8:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3589:28:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5948, - "nodeType": "EmitStatement", - "src": "3584:33:9" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5949, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3639:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 5903, - "id": 5950, - "nodeType": "Return", - "src": "3632:11:9" - } - ] - } - } - ] - }, - "documentation": null, - "id": 5957, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5900, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5895, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5957, - "src": "3034:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5894, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3034:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5897, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5957, - "src": "3049:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5896, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3049:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5899, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 5957, - "src": "3062:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5898, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3062:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3033:44:9" - }, - "returnParameters": { - "id": 5903, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5902, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 5957, - "src": "3094:12:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5901, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3094:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3093:14:9" - }, - "scope": 6014, - "src": "3012:673:9", - "stateMutability": "nonpayable", - "superFunction": 4922, - "visibility": "public" - }, - { - "body": { - "id": 5968, - "nodeType": "Block", - "src": "3766:42:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5964, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "3784:8:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5966, - "indexExpression": { - "argumentTypes": null, - "id": 5965, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5959, - "src": "3793:6:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3784:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5963, - "id": 5967, - "nodeType": "Return", - "src": "3777:23:9" - } - ] - }, - "documentation": null, - "id": 5969, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5959, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5969, - "src": "3712:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5958, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3712:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3711:16:9" - }, - "returnParameters": { - "id": 5963, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5962, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 5969, - "src": "3749:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5961, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3749:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3748:17:9" - }, - "scope": 6014, - "src": "3693:115:9", - "stateMutability": "view", - "superFunction": 4934, - "visibility": "public" - }, - { - "body": { - "id": 5996, - "nodeType": "Block", - "src": "3897:133:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5978, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4988, - "src": "3908:7:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 5982, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5979, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3916:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5980, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3916:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3908:19:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5983, - "indexExpression": { - "argumentTypes": null, - "id": 5981, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5971, - "src": "3928:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3908:29:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5984, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5973, - "src": "3940:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3908:38:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5986, - "nodeType": "ExpressionStatement", - "src": "3908:38:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5988, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3971:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5989, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3971:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5990, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5971, - "src": "3983:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5991, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5973, - "src": "3993:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5987, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6136, - "src": "3962:8:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5992, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3962:38:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5993, - "nodeType": "EmitStatement", - "src": "3957:43:9" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4018:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 5977, - "id": 5995, - "nodeType": "Return", - "src": "4011:11:9" - } - ] - }, - "documentation": null, - "id": 5997, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5974, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5971, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 5997, - "src": "3833:16:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5970, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3833:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5973, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 5997, - "src": "3851:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5972, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3851:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3832:34:9" - }, - "returnParameters": { - "id": 5977, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5976, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 5997, - "src": "3883:12:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5975, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3883:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3882:14:9" - }, - "scope": 6014, - "src": "3816:214:9", - "stateMutability": "nonpayable", - "superFunction": 4962, - "visibility": "public" - }, - { - "body": { - "id": 6012, - "nodeType": "Block", - "src": "4131:49:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6006, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4988, - "src": "4147:7:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 6008, - "indexExpression": { - "argumentTypes": null, - "id": 6007, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5999, - "src": "4155:6:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4147:15:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 6010, - "indexExpression": { - "argumentTypes": null, - "id": 6009, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6001, - "src": "4163:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4147:25:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 6005, - "id": 6011, - "nodeType": "Return", - "src": "4140:32:9" - } - ] - }, - "documentation": null, - "id": 6013, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6002, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5999, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 6013, - "src": "4057:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5998, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4057:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6001, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 6013, - "src": "4073:16:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6000, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4073:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4056:34:9" - }, - "returnParameters": { - "id": 6005, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6004, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 6013, - "src": "4112:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6003, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4112:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4111:19:9" - }, - "scope": 6014, - "src": "4038:142:9", - "stateMutability": "view", - "superFunction": 4978, - "visibility": "public" - } - ], - "scope": 6015, - "src": "828:3355:9" - } - ], - "src": "751:3434:9" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/HumanStandardToken.sol", - "exportedSymbols": { - "HumanStandardToken": [ - 6014 - ] - }, - "id": 6015, - "nodeType": "SourceUnit", - "nodes": [ - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC20Token.sol", - "file": "../inherited/ERC20Token.sol", - "id": 5799, - "nodeType": "ImportDirective", - "scope": 6015, - "sourceUnit": 4990, - "src": "751:37:9", - "symbolAliases": [], - "unitAlias": "" - }, - { - "id": 5800, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "792:32:9" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5801, - "name": "ERC20Token", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 4989, - "src": "859:10:9", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Token_$4989", - "typeString": "contract ERC20Token" - } - }, - "id": 5802, - "nodeType": "InheritanceSpecifier", - "src": "859:10:9" - } - ], - "contractDependencies": [ - 4989, - 6137 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 6014, - "linearizedBaseContracts": [ - 6014, - 4989, - 6137 - ], - "name": "HumanStandardToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 5804, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 6014, - "src": "1215:18:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 5803, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1215:6:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 5806, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 6014, - "src": "1287:21:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 5805, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1287:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 5808, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 6014, - "src": "1482:20:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 5807, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1482:6:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 5811, - "name": "version", - "nodeType": "VariableDeclaration", - "scope": 6014, - "src": "1549:30:9", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 5809, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1549:6:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "48302e31", - "id": 5810, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1573:6:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d6d58ef494a91661d08cde370ab3ac80b175fdf7fb2bea79e75e8276633326a2", - "typeString": "literal_string \"H0.1\"" - }, - "value": "H0.1" - }, - "visibility": "public" - }, - { - "body": { - "id": 5845, - "nodeType": "Block", - "src": "1818:499:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5822, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "1829:8:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5825, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5823, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "1838:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5824, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1838:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "1829:20:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5826, - "name": "_initialAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5813, - "src": "1852:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1829:37:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5828, - "nodeType": "ExpressionStatement", - "src": "1829:37:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 5831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 5829, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6075, - "src": "1930:11:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5830, - "name": "_initialAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5813, - "src": "1944:14:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "1930:28:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5832, - "nodeType": "ExpressionStatement", - "src": "1930:28:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 5835, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 5833, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5804, - "src": "2015:4:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5834, - "name": "_tokenName", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5815, - "src": "2022:10:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "2015:17:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 5836, - "nodeType": "ExpressionStatement", - "src": "2015:17:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 5839, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 5837, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5806, - "src": "2114:8:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5838, - "name": "_decimalUnits", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5817, - "src": "2125:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "2114:24:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 5840, - "nodeType": "ExpressionStatement", - "src": "2114:24:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 5843, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 5841, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5808, - "src": "2219:6:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5842, - "name": "_tokenSymbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5819, - "src": "2228:12:9", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "2219:21:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 5844, - "nodeType": "ExpressionStatement", - "src": "2219:21:9" - } - ] - }, - "documentation": null, - "id": 5846, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5820, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5813, - "name": "_initialAmount", - "nodeType": "VariableDeclaration", - "scope": 5846, - "src": "1675:22:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1675:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5815, - "name": "_tokenName", - "nodeType": "VariableDeclaration", - "scope": 5846, - "src": "1708:24:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 5814, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1708:6:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5817, - "name": "_decimalUnits", - "nodeType": "VariableDeclaration", - "scope": 5846, - "src": "1743:19:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 5816, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1743:5:9", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5819, - "name": "_tokenSymbol", - "nodeType": "VariableDeclaration", - "scope": 5846, - "src": "1773:26:9", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 5818, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1773:6:9", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1664:146:9" - }, - "returnParameters": { - "id": 5821, - "nodeType": "ParameterList", - "parameters": [], - "src": "1818:0:9" - }, - "scope": 6014, - "src": "1653:664:9", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5892, - "nodeType": "Block", - "src": "2400:604:9", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5864, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5855, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "2754:8:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5858, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5856, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "2763:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2763:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "2754:20:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 5859, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5850, - "src": "2778:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2754:30:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5863, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5861, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5850, - "src": "2788:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5862, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2797:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2788:10:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "2754:44:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 5890, - "nodeType": "Block", - "src": "2980:17:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 5888, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2989:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 5854, - "id": 5889, - "nodeType": "Return", - "src": "2982:12:9" - } - ] - }, - "id": 5891, - "nodeType": "IfStatement", - "src": "2750:247:9", - "trueBody": { - "id": 5887, - "nodeType": "Block", - "src": "2800:174:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5865, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "2815:8:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5868, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5866, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "2824:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5867, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2824:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2815:20:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 5869, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5850, - "src": "2839:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2815:30:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5871, - "nodeType": "ExpressionStatement", - "src": "2815:30:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 5876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5872, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "2860:8:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5874, - "indexExpression": { - "argumentTypes": null, - "id": 5873, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5848, - "src": "2869:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "2860:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 5875, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5850, - "src": "2877:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "2860:23:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5877, - "nodeType": "ExpressionStatement", - "src": "2860:23:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5879, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "2912:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5880, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "2912:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5881, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5848, - "src": "2924:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5882, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5850, - "src": "2929:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5878, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6128, - "src": "2903:8:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5883, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "2903:33:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5884, - "nodeType": "EmitStatement", - "src": "2898:38:9" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5885, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2958:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 5854, - "id": 5886, - "nodeType": "Return", - "src": "2951:11:9" - } - ] - } - } - ] - }, - "documentation": null, - "id": 5893, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5851, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5848, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5893, - "src": "2341:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5847, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2341:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5850, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 5893, - "src": "2354:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5849, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2354:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2340:29:9" - }, - "returnParameters": { - "id": 5854, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5853, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 5893, - "src": "2386:12:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5852, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2386:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2385:14:9" - }, - "scope": 6014, - "src": "2323:681:9", - "stateMutability": "nonpayable", - "superFunction": 4858, - "visibility": "public" - }, - { - "body": { - "id": 5956, - "nodeType": "Block", - "src": "3108:577:9", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5921, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5917, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5908, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5904, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "3359:8:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5906, - "indexExpression": { - "argumentTypes": null, - "id": 5905, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5895, - "src": "3368:5:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3359:15:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 5907, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5899, - "src": "3378:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3359:25:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5916, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5909, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4988, - "src": "3388:7:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 5911, - "indexExpression": { - "argumentTypes": null, - "id": 5910, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5895, - "src": "3396:5:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3388:14:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5914, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5912, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3403:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3403:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3388:26:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 5915, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5899, - "src": "3418:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3388:36:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3359:65:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "&&", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5920, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5918, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5899, - "src": "3428:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5919, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3437:1:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3428:10:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "3359:79:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 5954, - "nodeType": "Block", - "src": "3661:17:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 5952, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3670:5:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 5903, - "id": 5953, - "nodeType": "Return", - "src": "3663:12:9" - } - ] - }, - "id": 5955, - "nodeType": "IfStatement", - "src": "3355:323:9", - "trueBody": { - "id": 5951, - "nodeType": "Block", - "src": "3440:215:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5926, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5922, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "3455:8:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5924, - "indexExpression": { - "argumentTypes": null, - "id": 5923, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5897, - "src": "3464:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3455:13:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "id": 5925, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5899, - "src": "3472:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3455:23:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5927, - "nodeType": "ExpressionStatement", - "src": "3455:23:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 5932, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5928, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "3493:8:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5930, - "indexExpression": { - "argumentTypes": null, - "id": 5929, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5895, - "src": "3502:5:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3493:15:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 5931, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5899, - "src": "3512:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3493:25:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5933, - "nodeType": "ExpressionStatement", - "src": "3493:25:9" - }, - { - "expression": { - "argumentTypes": null, - "id": 5941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5934, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4988, - "src": "3533:7:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 5938, - "indexExpression": { - "argumentTypes": null, - "id": 5935, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5895, - "src": "3541:5:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3533:14:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5939, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5936, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3548:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5937, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3548:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3533:26:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "-=", - "rightHandSide": { - "argumentTypes": null, - "id": 5940, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5899, - "src": "3563:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3533:36:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5942, - "nodeType": "ExpressionStatement", - "src": "3533:36:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5944, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5895, - "src": "3598:5:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5945, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5897, - "src": "3605:3:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5946, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5899, - "src": "3610:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5943, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6128, - "src": "3589:8:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5947, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3589:28:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5948, - "nodeType": "EmitStatement", - "src": "3584:33:9" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5949, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3639:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 5903, - "id": 5950, - "nodeType": "Return", - "src": "3632:11:9" - } - ] - } - } - ] - }, - "documentation": null, - "id": 5957, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5900, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5895, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5957, - "src": "3034:13:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5894, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3034:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5897, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5957, - "src": "3049:11:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5896, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3049:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5899, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 5957, - "src": "3062:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5898, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3062:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3033:44:9" - }, - "returnParameters": { - "id": 5903, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5902, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 5957, - "src": "3094:12:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5901, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3094:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3093:14:9" - }, - "scope": 6014, - "src": "3012:673:9", - "stateMutability": "nonpayable", - "superFunction": 4922, - "visibility": "public" - }, - { - "body": { - "id": 5968, - "nodeType": "Block", - "src": "3766:42:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5964, - "name": "balances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4982, - "src": "3784:8:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5966, - "indexExpression": { - "argumentTypes": null, - "id": 5965, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5959, - "src": "3793:6:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3784:16:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5963, - "id": 5967, - "nodeType": "Return", - "src": "3777:23:9" - } - ] - }, - "documentation": null, - "id": 5969, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5960, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5959, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5969, - "src": "3712:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5958, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3712:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3711:16:9" - }, - "returnParameters": { - "id": 5963, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5962, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 5969, - "src": "3749:15:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5961, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3749:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3748:17:9" - }, - "scope": 6014, - "src": "3693:115:9", - "stateMutability": "view", - "superFunction": 4934, - "visibility": "public" - }, - { - "body": { - "id": 5996, - "nodeType": "Block", - "src": "3897:133:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5985, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5978, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4988, - "src": "3908:7:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 5982, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5979, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3916:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5980, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3916:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3908:19:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5983, - "indexExpression": { - "argumentTypes": null, - "id": 5981, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5971, - "src": "3928:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "3908:29:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5984, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5973, - "src": "3940:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3908:38:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5986, - "nodeType": "ExpressionStatement", - "src": "3908:38:9" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5988, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3971:3:9", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5989, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3971:10:9", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5990, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5971, - "src": "3983:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5991, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5973, - "src": "3993:6:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5987, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6136, - "src": "3962:8:9", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5992, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3962:38:9", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5993, - "nodeType": "EmitStatement", - "src": "3957:43:9" - }, - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5994, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4018:4:9", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 5977, - "id": 5995, - "nodeType": "Return", - "src": "4011:11:9" - } - ] - }, - "documentation": null, - "id": 5997, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5974, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5971, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 5997, - "src": "3833:16:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5970, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3833:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5973, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 5997, - "src": "3851:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5972, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3851:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3832:34:9" - }, - "returnParameters": { - "id": 5977, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5976, - "name": "success", - "nodeType": "VariableDeclaration", - "scope": 5997, - "src": "3883:12:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5975, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3883:4:9", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3882:14:9" - }, - "scope": 6014, - "src": "3816:214:9", - "stateMutability": "nonpayable", - "superFunction": 4962, - "visibility": "public" - }, - { - "body": { - "id": 6012, - "nodeType": "Block", - "src": "4131:49:9", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 6006, - "name": "allowed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4988, - "src": "4147:7:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$", - "typeString": "mapping(address => mapping(address => uint256))" - } - }, - "id": 6008, - "indexExpression": { - "argumentTypes": null, - "id": 6007, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5999, - "src": "4155:6:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4147:15:9", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 6010, - "indexExpression": { - "argumentTypes": null, - "id": 6009, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6001, - "src": "4163:8:9", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4147:25:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 6005, - "id": 6011, - "nodeType": "Return", - "src": "4140:32:9" - } - ] - }, - "documentation": null, - "id": 6013, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6002, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5999, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 6013, - "src": "4057:14:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5998, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4057:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 6001, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 6013, - "src": "4073:16:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6000, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4073:7:9", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4056:34:9" - }, - "returnParameters": { - "id": 6005, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6004, - "name": "remaining", - "nodeType": "VariableDeclaration", - "scope": 6013, - "src": "4112:17:9", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6003, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4112:7:9", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4111:19:9" - }, - "scope": 6014, - "src": "4038:142:9", - "stateMutability": "view", - "superFunction": 4978, - "visibility": "public" - } - ], - "scope": 6015, - "src": "828:3355:9" - } - ], - "src": "751:3434:9" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:20.097Z", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/IClaimsToken.json b/src/contracts/IClaimsToken.json deleted file mode 100644 index d776119..0000000 --- a/src/contracts/IClaimsToken.json +++ /dev/null @@ -1,10542 +0,0 @@ -{ - "contractName": "IClaimsToken", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": false, - "name": "fundsReceived", - "type": "uint256" - } - ], - "name": "FundsReceived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "by", - "type": "address" - }, - { - "indexed": false, - "name": "fundsWithdrawn", - "type": "uint256" - } - ], - "name": "FundsWithdrawn", - "type": "event" - }, - { - "constant": false, - "inputs": [], - "name": "withdrawFunds", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_forAddress", - "type": "address" - } - ], - "name": "availableFunds", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalReceivedFunds", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"totalReceivedFunds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"withdrawFunds\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_forAddress\",\"type\":\"address\"}],\"name\":\"availableFunds\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"fundsReceived\",\"type\":\"uint256\"}],\"name\":\"FundsReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"by\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"fundsWithdrawn\",\"type\":\"uint256\"}],\"name\":\"FundsWithdrawn\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"availableFunds(address)\":{\"details\":\"Returns the amount of funds a given address is able to withdraw currently.\\r\",\"params\":{\"_forAddress\":\"Address of ClaimsToken holder\\r\"},\"return\":\"A uint256 representing the available funds for a given account\\r\"},\"totalReceivedFunds()\":{\"details\":\"Get cumulative funds received by ClaimsToken.\\r\",\"return\":\"A uint256 representing the total funds received by ClaimsToken\\r\"},\"withdrawFunds()\":{\"details\":\"Withdraws available funds for user.\\r\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol\":\"IClaimsToken\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol\":{\"keccak256\":\"0x83d94afc84930834148f8e00b2b2b624be5e2a910aeb9f508b6e3252648b304a\",\"urls\":[\"bzzr://074edfefdd7f638d059397b8b72e70605bb8eba1e750d8d512d86a5d8abaf966\",\"dweb:/ipfs/QmTPEnc9wjRf7jZ1xzh68sAjusFY5XHCTLpy79yCtCuWrA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol\":{\"keccak256\":\"0xd97866cc5c8b2c90cd57a126748771aad20762b3c708c30a4412ce17a9b79333\",\"urls\":[\"bzzr://0b6010f15f59b69c79df02987919092e5c44bd47602737eb54f4545237b5e636\",\"dweb:/ipfs/QmbPTbnWnvkWF8PRLgpmoXBr7UpJVyULmVRagrskTpkjyJ\"]}},\"version\":1}", - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity >=0.5.0 < 0.6.0;\r\n\r\nimport \"../oz/SafeMath.sol\";\r\nimport \"../oz/IERC20.sol\";\r\nimport \"../oz/ERC20.sol\";\r\n\r\n/**\r\n * @dev Optional functions from the ERC20 standard.\r\n */\r\ncontract ERC20Detailed is IERC20 {\r\n string private _name;\r\n string private _symbol;\r\n uint8 private _decimals;\r\n\r\n /**\r\n * @dev Sets the values for `name`, `symbol`, and `decimals`. All three of\r\n * these values are immutable: they can only be set once during\r\n * construction.\r\n */\r\n constructor (string memory name, string memory symbol, uint8 decimals) public {\r\n _name = name;\r\n _symbol = symbol;\r\n _decimals = decimals;\r\n }\r\n\r\n /**\r\n * @dev Returns the name of the token.\r\n */\r\n function name() public view returns (string memory) {\r\n return _name;\r\n }\r\n\r\n /**\r\n * @dev Returns the symbol of the token, usually a shorter version of the\r\n * name.\r\n */\r\n function symbol() public view returns (string memory) {\r\n return _symbol;\r\n }\r\n\r\n /**\r\n * @dev Returns the number of decimals used to get its user representation.\r\n * For example, if `decimals` equals `2`, a balance of `505` tokens should\r\n * be displayed to a user as `5,05` (`505 / 10 ** 2`).\r\n *\r\n * Tokens usually opt for a value of 18, imitating the relationship between\r\n * Ether and Wei.\r\n *\r\n * NOTE: This information is only used for _display_ purposes: it in\r\n * no way affects any of the arithmetic of the contract, including\r\n * {IERC20-balanceOf} and {IERC20-transfer}.\r\n */\r\n function decimals() public view returns (uint8) {\r\n return _decimals;\r\n }\r\n}\r\n\r\ninterface IClaimsToken {\r\n\r\n\t/**\r\n\t * @dev This event emits when funds to be deposited are sent to the token contract\r\n\t * @param from contains the address of the sender of the received funds\r\n\t * @param fundsReceived contains the amount of funds received for distribution\r\n\t */\r\n\tevent FundsReceived(address indexed from, uint256 fundsReceived);\r\n\r\n\t/**\r\n\t * @dev This event emits when distributed funds are withdrawn by a token holder.\r\n\t * @param by contains the address of the receiver of funds\r\n\t * @param fundsWithdrawn contains the amount of funds that were withdrawn\r\n\t */\r\n\tevent FundsWithdrawn(address indexed by, uint256 fundsWithdrawn);\r\n\r\n\t/**\r\n\t * @dev Withdraws available funds for user.\r\n\t */\r\n\tfunction withdrawFunds() external payable;\r\n\r\n\t/**\r\n\t * @dev Returns the amount of funds a given address is able to withdraw currently.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t * @return A uint256 representing the available funds for a given account\r\n\t */\r\n\tfunction availableFunds(address _forAddress) external view returns (uint256);\r\n\r\n\t/**\r\n\t * @dev Get cumulative funds received by ClaimsToken.\r\n\t * @return A uint256 representing the total funds received by ClaimsToken\r\n\t */\r\n\tfunction totalReceivedFunds() external view returns (uint256);\r\n}\r\n\r\ncontract ClaimsToken is IClaimsToken, ERC20, ERC20Detailed {\r\n\r\n\tusing SafeMath for uint256;\r\n\r\n\t// cumulative funds received by this contract\r\n\tuint256 public receivedFunds;\r\n\t// cumulative funds received which were already processed for distribution - by user\r\n\tmapping (address => uint256) public processedFunds;\r\n\t// claimed but not yet withdrawn funds for a user\r\n\tmapping (address => uint256) public claimedFunds;\r\n\r\n\r\n\tconstructor(address _owner)\r\n\t\tpublic\r\n\t\tERC20Detailed(\"ClaimsToken\", \"CST\", 18)\r\n\t{\r\n\t\t_mint(_owner, 10000 * (10 ** uint256(18)));\r\n\r\n\t\treceivedFunds = 0;\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Transfer token to a specified address.\r\n\t * Claims funds for both parties, whereby the amount of tokens withdrawn\r\n\t * is inherited by the new token owner.\r\n\t * @param _to The address to transfer to\r\n\t * @param _value The amount to be transferred\r\n\t */\r\n\tfunction transfer(address _to, uint256 _value)\r\n\t\tpublic\r\n\t\treturns (bool)\r\n\t{\r\n\t\t_claimFunds(msg.sender);\r\n\t\t_claimFunds(_to);\r\n\r\n\t\treturn super.transfer(_to, _value);\r\n\t}\r\n\r\n\r\n\t/**\r\n\t * @dev Transfer tokens from one address to another.\r\n\t * Claims funds for both parties, whereby the amount of tokens withdrawn\r\n\t * is inherited by the new token owner.\r\n\t * @param _from address The address which you want to send tokens from\r\n\t * @param _to address The address which you want to transfer to\r\n\t * @param _value uint256 the amount of tokens to be transferred\r\n\t */\r\n\tfunction transferFrom(address _from, address _to, uint256 _value)\r\n\t\tpublic\r\n\t\treturns (bool)\r\n\t{\r\n\t\t_claimFunds(_from);\r\n\t\t_claimFunds(_to);\r\n\r\n\t\treturn super.transferFrom(_from, _to, _value);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Get cumulative funds received by ClaimsToken.\r\n\t * @return A uint256 representing the total funds received by ClaimsToken\r\n\t */\r\n\tfunction totalReceivedFunds()\r\n\t\texternal\r\n\t\tview\r\n\t\treturns (uint256)\r\n\t{\r\n\t\treturn receivedFunds;\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Returns the amount of funds a given address is able to withdraw currently.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t * @return A uint256 representing the available funds for a given account\r\n\t */\r\n\tfunction availableFunds(address _forAddress)\r\n\t\tpublic\r\n\t\tview\r\n\t\treturns (uint256)\r\n\t{\r\n\t\treturn _calcUnprocessedFunds(_forAddress).add(claimedFunds[_forAddress]);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Increments cumulative received funds by new received funds.\r\n\t * Called when ClaimsToken receives funds.\r\n\t * @param _value Amount of tokens / Ether received\r\n\t */\r\n\tfunction _registerFunds(uint256 _value)\r\n\t\tinternal\r\n\t{\r\n\t\treceivedFunds = receivedFunds.add(_value);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Returns payout for a user which can be withdrawn or claimed.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t */\r\n\tfunction _calcUnprocessedFunds(address _forAddress)\r\n\t\tinternal\r\n\t\tview\r\n\t\treturns (uint256)\r\n\t{\r\n\t\tuint256 newReceivedFunds = receivedFunds.sub(processedFunds[_forAddress]);\r\n\t\treturn balanceOf(_forAddress).mul(newReceivedFunds).div(totalSupply());\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Claims funds for a user.\r\n\t * @param _forAddress Address of ClaimsToken holder\r\n\t */\r\n\tfunction _claimFunds(address _forAddress) internal {\r\n\t\tuint256 unprocessedFunds = _calcUnprocessedFunds(_forAddress);\r\n\r\n\t\tprocessedFunds[_forAddress] = receivedFunds;\r\n\t\tclaimedFunds[_forAddress] = claimedFunds[_forAddress].add(unprocessedFunds);\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Sets claimed but not yet withdrawn funds to 0,\r\n\t * marks total received funds as processed and\r\n\t * returns the withdrawable amount for a user.\r\n\t * @return A uint256 representing the withdrawable funds\r\n\t */\r\n\tfunction _prepareWithdraw()\r\n\t\tinternal\r\n\t\treturns (uint256)\r\n\t{\r\n\t\tuint256 withdrawableFunds = availableFunds(msg.sender);\r\n\r\n\t\tprocessedFunds[msg.sender] = receivedFunds;\r\n\t\tclaimedFunds[msg.sender] = 0;\r\n\r\n\t\treturn withdrawableFunds;\r\n\t}\r\n}\r\n\r\ncontract ClaimsTokenERC20Extension is IClaimsToken, ClaimsToken {\r\n\r\n\t// token that ClaimsToken takes in custodianship\r\n\tIERC20 public fundsToken;\r\n\r\n\tmodifier onlyFundsToken () {\r\n\t\trequire(msg.sender == address(fundsToken), \"UNAUTHORIZED_SENDER\");\r\n\t\t_;\r\n\t}\r\n\r\n\tconstructor(address _owner, IERC20 _fundsToken)\r\n\t\tpublic\r\n\t\tClaimsToken(_owner)\r\n\t{\r\n\t\trequire(address(_fundsToken) != address(0));\r\n\r\n\t\tfundsToken = _fundsToken;\r\n\t}\r\n\r\n\t/**\r\n\t * @dev Withdraws available funds for user.\r\n\t */\r\n\tfunction withdrawFunds()\r\n\t\texternal\r\n\t\tpayable\r\n\t{\r\n\t\trequire(msg.value == 0, \"\");\r\n\r\n\t\tuint256 withdrawableFunds = _prepareWithdraw();\r\n\r\n\t\trequire(fundsToken.transfer(msg.sender, withdrawableFunds), \"TRANSFER_FAILED\");\r\n\t}\r\n\r\n\t/**\r\n\t * @dev For ERC223.\r\n\t * Calls _registerFunds(), whereby total received funds (cumulative) gets updated.\r\n\t * @param _sender Sender of tokens\r\n\t * @param _value Amount of tokens\r\n\t */\r\n\tfunction tokenFallback(address _sender, uint256 _value, bytes memory)\r\n\t\tpublic\r\n\t\tonlyFundsToken()\r\n\t{\r\n\t\tif (_value > 0) {\r\n\t\t\t_registerFunds(_value);\r\n\t\t\temit FundsReceived(_sender, _value);\r\n\t\t}\r\n\t}\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\tokens\\ClaimsToken.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol", - "exportedSymbols": { - "ClaimsToken": [ - 10228 - ], - "ClaimsTokenERC20Extension": [ - 10327 - ], - "ERC20Detailed": [ - 9977 - ], - "IClaimsToken": [ - 10005 - ] - }, - "id": 10328, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9919, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:24" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "../oz/SafeMath.sol", - "id": 9920, - "nodeType": "ImportDirective", - "scope": 10328, - "sourceUnit": 9858, - "src": "36:28:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", - "file": "../oz/IERC20.sol", - "id": 9921, - "nodeType": "ImportDirective", - "scope": 10328, - "sourceUnit": 9720, - "src": "66:26:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol", - "file": "../oz/ERC20.sol", - "id": 9922, - "nodeType": "ImportDirective", - "scope": 10328, - "sourceUnit": 9651, - "src": "94:25:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 9923, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "212:6:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 9924, - "nodeType": "InheritanceSpecifier", - "src": "212:6:24" - } - ], - "contractDependencies": [ - 9719 - ], - "contractKind": "contract", - "documentation": "@dev Optional functions from the ERC20 standard.\r", - "fullyImplemented": false, - "id": 9977, - "linearizedBaseContracts": [ - 9977, - 9719 - ], - "name": "ERC20Detailed", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 9926, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 9977, - "src": "226:20:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 9925, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "226:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 9928, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 9977, - "src": "253:22:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 9927, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "253:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 9930, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 9977, - "src": "282:23:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9929, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "282:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 9951, - "nodeType": "Block", - "src": "581:89:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9939, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9926, - "src": "592:5:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9940, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9932, - "src": "600:4:24", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "592:12:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 9942, - "nodeType": "ExpressionStatement", - "src": "592:12:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 9945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9943, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9928, - "src": "615:7:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9944, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9934, - "src": "625:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "615:16:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 9946, - "nodeType": "ExpressionStatement", - "src": "615:16:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 9949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9947, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9930, - "src": "642:9:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9948, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9936, - "src": "654:8:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "642:20:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 9950, - "nodeType": "ExpressionStatement", - "src": "642:20:24" - } - ] - }, - "documentation": "@dev Sets the values for `name`, `symbol`, and `decimals`. All three of\r\nthese values are immutable: they can only be set once during\r\nconstruction.\r", - "id": 9952, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9937, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9932, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 9952, - "src": "516:18:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9931, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "516:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9934, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 9952, - "src": "536:20:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9933, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "536:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9936, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 9952, - "src": "558:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9935, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "558:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "515:58:24" - }, - "returnParameters": { - "id": 9938, - "nodeType": "ParameterList", - "parameters": [], - "src": "581:0:24" - }, - "scope": 9977, - "src": "503:167:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9959, - "nodeType": "Block", - "src": "792:31:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9957, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9926, - "src": "810:5:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 9956, - "id": 9958, - "nodeType": "Return", - "src": "803:12:24" - } - ] - }, - "documentation": "@dev Returns the name of the token.\r", - "id": 9960, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9953, - "nodeType": "ParameterList", - "parameters": [], - "src": "753:2:24" - }, - "returnParameters": { - "id": 9956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9955, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9960, - "src": "777:13:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9954, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "777:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "776:15:24" - }, - "scope": 9977, - "src": "740:83:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9967, - "nodeType": "Block", - "src": "996:33:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9965, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9928, - "src": "1014:7:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 9964, - "id": 9966, - "nodeType": "Return", - "src": "1007:14:24" - } - ] - }, - "documentation": "@dev Returns the symbol of the token, usually a shorter version of the\r\nname.\r", - "id": 9968, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9961, - "nodeType": "ParameterList", - "parameters": [], - "src": "957:2:24" - }, - "returnParameters": { - "id": 9964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9963, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9968, - "src": "981:13:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9962, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "981:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "980:15:24" - }, - "scope": 9977, - "src": "942:87:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9975, - "nodeType": "Block", - "src": "1640:35:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9973, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9930, - "src": "1658:9:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 9972, - "id": 9974, - "nodeType": "Return", - "src": "1651:16:24" - } - ] - }, - "documentation": "@dev Returns the number of decimals used to get its user representation.\r\nFor example, if `decimals` equals `2`, a balance of `505` tokens should\r\nbe displayed to a user as `5,05` (`505 / 10 ** 2`).\r\n\n * Tokens usually opt for a value of 18, imitating the relationship between\r\nEther and Wei.\r\n\n * NOTE: This information is only used for _display_ purposes: it in\r\nno way affects any of the arithmetic of the contract, including\r\n{IERC20-balanceOf} and {IERC20-transfer}.\r", - "id": 9976, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decimals", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9969, - "nodeType": "ParameterList", - "parameters": [], - "src": "1609:2:24" - }, - "returnParameters": { - "id": 9972, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9971, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9976, - "src": "1633:5:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9970, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1633:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1632:7:24" - }, - "scope": 9977, - "src": "1592:83:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 10328, - "src": "186:1492:24" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 10005, - "linearizedBaseContracts": [ - 10005 - ], - "name": "IClaimsToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": "@dev This event emits when funds to be deposited are sent to the token contract\r\n@param from contains the address of the sender of the received funds\r\n@param fundsReceived contains the amount of funds received for distribution\r", - "id": 9983, - "name": "FundsReceived", - "nodeType": "EventDefinition", - "parameters": { - "id": 9982, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9979, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 9983, - "src": "1983:20:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9978, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1983:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9981, - "indexed": false, - "name": "fundsReceived", - "nodeType": "VariableDeclaration", - "scope": 9983, - "src": "2005:21:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9980, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2005:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1982:45:24" - }, - "src": "1963:65:24" - }, - { - "anonymous": false, - "documentation": "@dev This event emits when distributed funds are withdrawn by a token holder.\r\n@param by contains the address of the receiver of funds\r\n@param fundsWithdrawn contains the amount of funds that were withdrawn\r", - "id": 9989, - "name": "FundsWithdrawn", - "nodeType": "EventDefinition", - "parameters": { - "id": 9988, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9985, - "indexed": true, - "name": "by", - "nodeType": "VariableDeclaration", - "scope": 9989, - "src": "2286:18:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9984, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2286:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9987, - "indexed": false, - "name": "fundsWithdrawn", - "nodeType": "VariableDeclaration", - "scope": 9989, - "src": "2306:22:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2306:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2285:44:24" - }, - "src": "2265:65:24" - }, - { - "body": null, - "documentation": "@dev Withdraws available funds for user.\r", - "id": 9992, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "withdrawFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9990, - "nodeType": "ParameterList", - "parameters": [], - "src": "2415:2:24" - }, - "returnParameters": { - "id": 9991, - "nodeType": "ParameterList", - "parameters": [], - "src": "2434:0:24" - }, - "scope": 10005, - "src": "2393:42:24", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", - "id": 9999, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "availableFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9994, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 9999, - "src": "2691:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2691:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2690:21:24" - }, - "returnParameters": { - "id": 9998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9997, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9999, - "src": "2735:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9996, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2735:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2734:9:24" - }, - "scope": 10005, - "src": "2667:77:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", - "id": 10004, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalReceivedFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10000, - "nodeType": "ParameterList", - "parameters": [], - "src": "2920:2:24" - }, - "returnParameters": { - "id": 10003, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10002, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10004, - "src": "2946:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10001, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2946:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2945:9:24" - }, - "scope": 10005, - "src": "2893:62:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 10328, - "src": "1682:1276:24" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10006, - "name": "IClaimsToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10005, - "src": "2986:12:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IClaimsToken_$10005", - "typeString": "contract IClaimsToken" - } - }, - "id": 10007, - "nodeType": "InheritanceSpecifier", - "src": "2986:12:24" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10008, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9650, - "src": "3000:5:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$9650", - "typeString": "contract ERC20" - } - }, - "id": 10009, - "nodeType": "InheritanceSpecifier", - "src": "3000:5:24" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10010, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9977, - "src": "3007:13:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$9977", - "typeString": "contract ERC20Detailed" - } - }, - "id": 10011, - "nodeType": "InheritanceSpecifier", - "src": "3007:13:24" - } - ], - "contractDependencies": [ - 9650, - 9719, - 9977, - 10005 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 10228, - "linearizedBaseContracts": [ - 10228, - 9977, - 9650, - 9719, - 10005 - ], - "name": "ClaimsToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 10014, - "libraryName": { - "contractScope": null, - "id": 10012, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "3033:8:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3027:27:24", - "typeName": { - "id": 10013, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3046:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 10016, - "name": "receivedFunds", - "nodeType": "VariableDeclaration", - "scope": 10228, - "src": "3107:28:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10015, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3107:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 10020, - "name": "processedFunds", - "nodeType": "VariableDeclaration", - "scope": 10228, - "src": "3226:50:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 10019, - "keyType": { - "id": 10017, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3235:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3226:28:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 10018, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3246:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 10024, - "name": "claimedFunds", - "nodeType": "VariableDeclaration", - "scope": 10228, - "src": "3332:48:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 10023, - "keyType": { - "id": 10021, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3341:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3332:28:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 10022, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3352:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 10050, - "nodeType": "Block", - "src": "3471:76:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10035, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10026, - "src": "3482:6:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10043, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 10036, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3490:5:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10041, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 10037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3499:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3138", - "id": 10039, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3513:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - } - ], - "id": 10038, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3505:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 10040, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3505:11:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3499:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10042, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3498:19:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3490:27:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10034, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9539, - "src": "3476:5:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 10044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3476:42:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10045, - "nodeType": "ExpressionStatement", - "src": "3476:42:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10046, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "3525:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 10047, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3541:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3525:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10049, - "nodeType": "ExpressionStatement", - "src": "3525:17:24" - } - ] - }, - "documentation": null, - "id": 10051, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "436c61696d73546f6b656e", - "id": 10029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3443:13:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_25771c0ba9a97de4408886fe552885a1751acfa735dfd2ef9c66e7b9e8871e71", - "typeString": "literal_string \"ClaimsToken\"" - }, - "value": "ClaimsToken" - }, - { - "argumentTypes": null, - "hexValue": "435354", - "id": 10030, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3458:5:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0626086d51c299e905c42b7a28a0add92109e49b12cb2bd2531769201453ab94", - "typeString": "literal_string \"CST\"" - }, - "value": "CST" - }, - { - "argumentTypes": null, - "hexValue": "3138", - "id": 10031, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3465:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - } - ], - "id": 10032, - "modifierName": { - "argumentTypes": null, - "id": 10028, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9977, - "src": "3429:13:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$9977_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3429:39:24" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10027, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10026, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 10051, - "src": "3400:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10025, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3400:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3399:16:24" - }, - "returnParameters": { - "id": 10033, - "nodeType": "ParameterList", - "parameters": [], - "src": "3471:0:24" - }, - "scope": 10228, - "src": "3388:159:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 10075, - "nodeType": "Block", - "src": "3898:95:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10061, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3915:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3915:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 10060, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "3903:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3903:23:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10064, - "nodeType": "ExpressionStatement", - "src": "3903:23:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10066, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10053, - "src": "3943:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10065, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "3931:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3931:16:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10068, - "nodeType": "ExpressionStatement", - "src": "3931:16:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10071, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10053, - "src": "3976:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10072, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10055, - "src": "3981:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10069, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "3961:5:24", - "typeDescriptions": { - "typeIdentifier": "t_super$_ClaimsToken_$10228", - "typeString": "contract super ClaimsToken" - } - }, - "id": 10070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9343, - "src": "3961:14:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 10073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3961:27:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 10059, - "id": 10074, - "nodeType": "Return", - "src": "3954:34:24" - } - ] - }, - "documentation": "@dev Transfer token to a specified address.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _to The address to transfer to\r\n@param _value The amount to be transferred\r", - "id": 10076, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10056, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10053, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 10076, - "src": "3839:11:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10052, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3839:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10055, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10076, - "src": "3852:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10054, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3852:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3838:29:24" - }, - "returnParameters": { - "id": 10059, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10058, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10076, - "src": "3890:4:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10057, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3890:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3889:6:24" - }, - "scope": 10228, - "src": "3821:172:24", - "stateMutability": "nonpayable", - "superFunction": 9343, - "visibility": "public" - }, - { - "body": { - "id": 10102, - "nodeType": "Block", - "src": "4485:101:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10088, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10078, - "src": "4502:5:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10087, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "4490:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4490:18:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10090, - "nodeType": "ExpressionStatement", - "src": "4490:18:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10092, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10080, - "src": "4525:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10091, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "4513:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4513:16:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10094, - "nodeType": "ExpressionStatement", - "src": "4513:16:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10097, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10078, - "src": "4562:5:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10098, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10080, - "src": "4569:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10099, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "4574:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10095, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "4543:5:24", - "typeDescriptions": { - "typeIdentifier": "t_super$_ClaimsToken_$10228", - "typeString": "contract super ClaimsToken" - } - }, - "id": 10096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 9397, - "src": "4543:18:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 10100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4543:38:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 10086, - "id": 10101, - "nodeType": "Return", - "src": "4536:45:24" - } - ] - }, - "documentation": "@dev Transfer tokens from one address to another.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _from address The address which you want to send tokens from\r\n@param _to address The address which you want to transfer to\r\n@param _value uint256 the amount of tokens to be transferred\r", - "id": 10103, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10083, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10078, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4411:13:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10077, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4411:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10080, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4426:11:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10079, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4426:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10082, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4439:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10081, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4439:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4410:44:24" - }, - "returnParameters": { - "id": 10086, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10085, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4477:4:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10084, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4477:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4476:6:24" - }, - "scope": 10228, - "src": "4389:197:24", - "stateMutability": "nonpayable", - "superFunction": 9397, - "visibility": "public" - }, - { - "body": { - "id": 10110, - "nodeType": "Block", - "src": "4808:30:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 10108, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "4820:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10107, - "id": 10109, - "nodeType": "Return", - "src": "4813:20:24" - } - ] - }, - "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", - "id": 10111, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalReceivedFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10104, - "nodeType": "ParameterList", - "parameters": [], - "src": "4762:2:24" - }, - "returnParameters": { - "id": 10107, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10106, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10111, - "src": "4797:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10105, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4797:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4796:9:24" - }, - "scope": 10228, - "src": "4735:103:24", - "stateMutability": "view", - "superFunction": 10004, - "visibility": "external" - }, - { - "body": { - "id": 10127, - "nodeType": "Block", - "src": "5156:82:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10122, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "5207:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10124, - "indexExpression": { - "argumentTypes": null, - "id": 10123, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10113, - "src": "5220:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5207:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10119, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10113, - "src": "5190:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10118, - "name": "_calcUnprocessedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10169, - "src": "5168:21:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5168:34:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "5168:38:24", - "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": 10125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5168:65:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10117, - "id": 10126, - "nodeType": "Return", - "src": "5161:72:24" - } - ] - }, - "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", - "id": 10128, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "availableFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10113, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 10128, - "src": "5094:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10112, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5094:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5093:21:24" - }, - "returnParameters": { - "id": 10117, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10116, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10128, - "src": "5145:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10115, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5145:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5144:9:24" - }, - "scope": 10228, - "src": "5070:168:24", - "stateMutability": "view", - "superFunction": 9999, - "visibility": "public" - }, - { - "body": { - "id": 10140, - "nodeType": "Block", - "src": "5477:51:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 10138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10133, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "5482:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10136, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10130, - "src": "5516:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10134, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "5498:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "5498:17:24", - "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": 10137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5498:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5482:41:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10139, - "nodeType": "ExpressionStatement", - "src": "5482:41:24" - } - ] - }, - "documentation": "@dev Increments cumulative received funds by new received funds.\r\nCalled when ClaimsToken receives funds.\r\n@param _value Amount of tokens / Ether received\r", - "id": 10141, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10131, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10130, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10141, - "src": "5447:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10129, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5447:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5446:16:24" - }, - "returnParameters": { - "id": 10132, - "nodeType": "ParameterList", - "parameters": [], - "src": "5477:0:24" - }, - "scope": 10228, - "src": "5423:105:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10168, - "nodeType": "Block", - "src": "5765:158:24", - "statements": [ - { - "assignments": [ - 10149 - ], - "declarations": [ - { - "constant": false, - "id": 10149, - "name": "newReceivedFunds", - "nodeType": "VariableDeclaration", - "scope": 10168, - "src": "5770:24:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10148, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5770:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10156, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10152, - "name": "processedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "5815:14:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10154, - "indexExpression": { - "argumentTypes": null, - "id": 10153, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10143, - "src": "5830:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5815:27:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10150, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "5797:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "5797:17:24", - "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": 10155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5797:46:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5770:73:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10164, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9296, - "src": "5904:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 10165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5904:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10161, - "name": "newReceivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10149, - "src": "5882:16:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10158, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10143, - "src": "5865:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10157, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9308, - "src": "5855:9:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5855:22:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 9784, - "src": "5855:26:24", - "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": 10162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5855:44:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 9808, - "src": "5855:48:24", - "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": 10166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5855:63:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10147, - "id": 10167, - "nodeType": "Return", - "src": "5848:70:24" - } - ] - }, - "documentation": "@dev Returns payout for a user which can be withdrawn or claimed.\r\n@param _forAddress Address of ClaimsToken holder\r", - "id": 10169, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_calcUnprocessedFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10144, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10143, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 10169, - "src": "5701:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5701:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5700:21:24" - }, - "returnParameters": { - "id": 10147, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10146, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10169, - "src": "5754:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10145, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5754:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5753:9:24" - }, - "scope": 10228, - "src": "5670:253:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10197, - "nodeType": "Block", - "src": "6080:201:24", - "statements": [ - { - "assignments": [ - 10175 - ], - "declarations": [ - { - "constant": false, - "id": 10175, - "name": "unprocessedFunds", - "nodeType": "VariableDeclaration", - "scope": 10197, - "src": "6085:24:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10174, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6085:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10179, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10177, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6134:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10176, - "name": "_calcUnprocessedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10169, - "src": "6112:21:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6112:34:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6085:61:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10180, - "name": "processedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "6153:14:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10182, - "indexExpression": { - "argumentTypes": null, - "id": 10181, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6168:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6153:27:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10183, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "6183:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6153:43:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10185, - "nodeType": "ExpressionStatement", - "src": "6153:43:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10186, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "6201:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10188, - "indexExpression": { - "argumentTypes": null, - "id": 10187, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6214:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6201:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10193, - "name": "unprocessedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10175, - "src": "6259:16:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10189, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "6229:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10191, - "indexExpression": { - "argumentTypes": null, - "id": 10190, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6242:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6229:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "6229:29:24", - "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": 10194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6229:47:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6201:75:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10196, - "nodeType": "ExpressionStatement", - "src": "6201:75:24" - } - ] - }, - "documentation": "@dev Claims funds for a user.\r\n@param _forAddress Address of ClaimsToken holder\r", - "id": 10198, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_claimFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10172, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10171, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 10198, - "src": "6050:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10170, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6050:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6049:21:24" - }, - "returnParameters": { - "id": 10173, - "nodeType": "ParameterList", - "parameters": [], - "src": "6080:0:24" - }, - "scope": 10228, - "src": "6029:252:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10226, - "nodeType": "Block", - "src": "6575:177:24", - "statements": [ - { - "assignments": [ - 10204 - ], - "declarations": [ - { - "constant": false, - "id": 10204, - "name": "withdrawableFunds", - "nodeType": "VariableDeclaration", - "scope": 10226, - "src": "6580:25:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10203, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6580:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10209, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10206, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6623:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6623:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 10205, - "name": "availableFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10128, - "src": "6608:14:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6608:26:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6580:54:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10210, - "name": "processedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "6641:14:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10213, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10211, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6656:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6656:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6641:26:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10214, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "6670:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6641:42:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10216, - "nodeType": "ExpressionStatement", - "src": "6641:42:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10217, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "6688:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10220, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10218, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6701:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6701:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6688:24:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 10221, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6715:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6688:28:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10223, - "nodeType": "ExpressionStatement", - "src": "6688:28:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10224, - "name": "withdrawableFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10204, - "src": "6730:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10202, - "id": 10225, - "nodeType": "Return", - "src": "6723:24:24" - } - ] - }, - "documentation": "@dev Sets claimed but not yet withdrawn funds to 0,\r\nmarks total received funds as processed and\r\nreturns the withdrawable amount for a user.\r\n@return A uint256 representing the withdrawable funds\r", - "id": 10227, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_prepareWithdraw", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10199, - "nodeType": "ParameterList", - "parameters": [], - "src": "6537:2:24" - }, - "returnParameters": { - "id": 10202, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10201, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10227, - "src": "6564:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10200, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6564:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6563:9:24" - }, - "scope": 10228, - "src": "6512:240:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 10328, - "src": "2962:3793:24" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10229, - "name": "IClaimsToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10005, - "src": "6797:12:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IClaimsToken_$10005", - "typeString": "contract IClaimsToken" - } - }, - "id": 10230, - "nodeType": "InheritanceSpecifier", - "src": "6797:12:24" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10231, - "name": "ClaimsToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10228, - "src": "6811:11:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ClaimsToken_$10228", - "typeString": "contract ClaimsToken" - } - }, - "id": 10232, - "nodeType": "InheritanceSpecifier", - "src": "6811:11:24" - } - ], - "contractDependencies": [ - 9650, - 9719, - 9977, - 10005, - 10228 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 10327, - "linearizedBaseContracts": [ - 10327, - 10228, - 9977, - 9650, - 9719, - 10005 - ], - "name": "ClaimsTokenERC20Extension", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 10234, - "name": "fundsToken", - "nodeType": "VariableDeclaration", - "scope": 10327, - "src": "6880:24:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 10233, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "6880:6:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 10247, - "nodeType": "Block", - "src": "6937:81:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 10242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10237, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6950:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6950:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10240, - "name": "fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10234, - "src": "6972:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - ], - "id": 10239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6964:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 10241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6964:19:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6950:33:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "554e415554484f52495a45445f53454e444552", - "id": 10243, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6985:21:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", - "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" - }, - "value": "UNAUTHORIZED_SENDER" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", - "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" - } - ], - "id": 10236, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "6942:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 10244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6942:65:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10245, - "nodeType": "ExpressionStatement", - "src": "6942:65:24" - }, - { - "id": 10246, - "nodeType": "PlaceholderStatement", - "src": "7012:1:24" - } - ] - }, - "documentation": null, - "id": 10248, - "name": "onlyFundsToken", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 10235, - "nodeType": "ParameterList", - "parameters": [], - "src": "6934:2:24" - }, - "src": "6910:108:24", - "visibility": "internal" - }, - { - "body": { - "id": 10272, - "nodeType": "Block", - "src": "7106:84:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 10265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10260, - "name": "_fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10252, - "src": "7127:11:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - ], - "id": 10259, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7119:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 10261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7119:20:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 10263, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7151:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 10262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7143:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 10264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7143:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7119:34:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 10258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "7111:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 10266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7111:43:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10267, - "nodeType": "ExpressionStatement", - "src": "7111:43:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10268, - "name": "fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10234, - "src": "7161:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10269, - "name": "_fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10252, - "src": "7174:11:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "src": "7161:24:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 10271, - "nodeType": "ExpressionStatement", - "src": "7161:24:24" - } - ] - }, - "documentation": null, - "id": 10273, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 10255, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10250, - "src": "7096:6:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 10256, - "modifierName": { - "argumentTypes": null, - "id": 10254, - "name": "ClaimsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10228, - "src": "7084:11:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ClaimsToken_$10228_$", - "typeString": "type(contract ClaimsToken)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7084:19:24" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10253, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10250, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 10273, - "src": "7035:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10249, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7035:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10252, - "name": "_fundsToken", - "nodeType": "VariableDeclaration", - "scope": 10273, - "src": "7051:18:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 10251, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "7051:6:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7034:36:24" - }, - "returnParameters": { - "id": 10257, - "nodeType": "ParameterList", - "parameters": [], - "src": "7106:0:24" - }, - "scope": 10327, - "src": "7023:167:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 10299, - "nodeType": "Block", - "src": "7303:175:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10277, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "7316:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7316:9:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 10279, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7329:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7316:14:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 10281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7332:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 10276, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7308:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 10282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7308:27:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10283, - "nodeType": "ExpressionStatement", - "src": "7308:27:24" - }, - { - "assignments": [ - 10285 - ], - "declarations": [ - { - "constant": false, - "id": 10285, - "name": "withdrawableFunds", - "nodeType": "VariableDeclaration", - "scope": 10299, - "src": "7342:25:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10284, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7342:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10288, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10286, - "name": "_prepareWithdraw", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10227, - "src": "7370:16:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_uint256_$", - "typeString": "function () returns (uint256)" - } - }, - "id": 10287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7370:18:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7342:46:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10292, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "7423:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7423:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 10294, - "name": "withdrawableFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10285, - "src": "7435:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10290, - "name": "fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10234, - "src": "7403:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 10291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9661, - "src": "7403:19:24", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 10295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7403:50:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5452414e534645525f4641494c4544", - "id": 10296, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7455:17:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", - "typeString": "literal_string \"TRANSFER_FAILED\"" - }, - "value": "TRANSFER_FAILED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", - "typeString": "literal_string \"TRANSFER_FAILED\"" - } - ], - "id": 10289, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7395:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 10297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7395:78:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10298, - "nodeType": "ExpressionStatement", - "src": "7395:78:24" - } - ] - }, - "documentation": "@dev Withdraws available funds for user.\r", - "id": 10300, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdrawFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10274, - "nodeType": "ParameterList", - "parameters": [], - "src": "7275:2:24" - }, - "returnParameters": { - "id": 10275, - "nodeType": "ParameterList", - "parameters": [], - "src": "7303:0:24" - }, - "scope": 10327, - "src": "7253:225:24", - "stateMutability": "payable", - "superFunction": 9992, - "visibility": "external" - }, - { - "body": { - "id": 10325, - "nodeType": "Block", - "src": "7777:100:24", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10311, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10304, - "src": "7786:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 10312, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7795:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7786:10:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 10324, - "nodeType": "IfStatement", - "src": "7782:91:24", - "trueBody": { - "id": 10323, - "nodeType": "Block", - "src": "7798:75:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10315, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10304, - "src": "7819:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10314, - "name": "_registerFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10141, - "src": "7804:14:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 10316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7804:22:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10317, - "nodeType": "ExpressionStatement", - "src": "7804:22:24" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10319, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10302, - "src": "7851:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10320, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10304, - "src": "7860:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10318, - "name": "FundsReceived", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9983, - "src": "7837:13:24", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 10321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7837:30:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10322, - "nodeType": "EmitStatement", - "src": "7832:35:24" - } - ] - } - } - ] - }, - "documentation": "@dev For ERC223.\r\nCalls _registerFunds(), whereby total received funds (cumulative) gets updated.\r\n@param _sender Sender of tokens\r\n@param _value Amount of tokens\r", - "id": 10326, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [], - "id": 10309, - "modifierName": { - "argumentTypes": null, - "id": 10308, - "name": "onlyFundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10248, - "src": "7758:14:24", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7758:16:24" - } - ], - "name": "tokenFallback", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10307, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10302, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 10326, - "src": "7698:15:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10301, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7698:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10304, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10326, - "src": "7715:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10303, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7715:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10306, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10326, - "src": "7731:12:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 10305, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7731:5:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7697:47:24" - }, - "returnParameters": { - "id": 10310, - "nodeType": "ParameterList", - "parameters": [], - "src": "7777:0:24" - }, - "scope": 10327, - "src": "7675:202:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 10328, - "src": "6759:1121:24" - } - ], - "src": "0:7882:24" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/ClaimsToken.sol", - "exportedSymbols": { - "ClaimsToken": [ - 10228 - ], - "ClaimsTokenERC20Extension": [ - 10327 - ], - "ERC20Detailed": [ - 9977 - ], - "IClaimsToken": [ - 10005 - ] - }, - "id": 10328, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9919, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:24" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "../oz/SafeMath.sol", - "id": 9920, - "nodeType": "ImportDirective", - "scope": 10328, - "sourceUnit": 9858, - "src": "36:28:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", - "file": "../oz/IERC20.sol", - "id": 9921, - "nodeType": "ImportDirective", - "scope": 10328, - "sourceUnit": 9720, - "src": "66:26:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol", - "file": "../oz/ERC20.sol", - "id": 9922, - "nodeType": "ImportDirective", - "scope": 10328, - "sourceUnit": 9651, - "src": "94:25:24", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 9923, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "212:6:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 9924, - "nodeType": "InheritanceSpecifier", - "src": "212:6:24" - } - ], - "contractDependencies": [ - 9719 - ], - "contractKind": "contract", - "documentation": "@dev Optional functions from the ERC20 standard.\r", - "fullyImplemented": false, - "id": 9977, - "linearizedBaseContracts": [ - 9977, - 9719 - ], - "name": "ERC20Detailed", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 9926, - "name": "_name", - "nodeType": "VariableDeclaration", - "scope": 9977, - "src": "226:20:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 9925, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "226:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 9928, - "name": "_symbol", - "nodeType": "VariableDeclaration", - "scope": 9977, - "src": "253:22:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 9927, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "253:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 9930, - "name": "_decimals", - "nodeType": "VariableDeclaration", - "scope": 9977, - "src": "282:23:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9929, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "282:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 9951, - "nodeType": "Block", - "src": "581:89:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9941, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9939, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9926, - "src": "592:5:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9940, - "name": "name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9932, - "src": "600:4:24", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "592:12:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 9942, - "nodeType": "ExpressionStatement", - "src": "592:12:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 9945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9943, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9928, - "src": "615:7:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9944, - "name": "symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9934, - "src": "625:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "615:16:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 9946, - "nodeType": "ExpressionStatement", - "src": "615:16:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 9949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9947, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9930, - "src": "642:9:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 9948, - "name": "decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9936, - "src": "654:8:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "642:20:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "id": 9950, - "nodeType": "ExpressionStatement", - "src": "642:20:24" - } - ] - }, - "documentation": "@dev Sets the values for `name`, `symbol`, and `decimals`. All three of\r\nthese values are immutable: they can only be set once during\r\nconstruction.\r", - "id": 9952, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9937, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9932, - "name": "name", - "nodeType": "VariableDeclaration", - "scope": 9952, - "src": "516:18:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9931, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "516:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9934, - "name": "symbol", - "nodeType": "VariableDeclaration", - "scope": 9952, - "src": "536:20:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9933, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "536:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9936, - "name": "decimals", - "nodeType": "VariableDeclaration", - "scope": 9952, - "src": "558:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9935, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "558:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "515:58:24" - }, - "returnParameters": { - "id": 9938, - "nodeType": "ParameterList", - "parameters": [], - "src": "581:0:24" - }, - "scope": 9977, - "src": "503:167:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9959, - "nodeType": "Block", - "src": "792:31:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9957, - "name": "_name", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9926, - "src": "810:5:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 9956, - "id": 9958, - "nodeType": "Return", - "src": "803:12:24" - } - ] - }, - "documentation": "@dev Returns the name of the token.\r", - "id": 9960, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "name", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9953, - "nodeType": "ParameterList", - "parameters": [], - "src": "753:2:24" - }, - "returnParameters": { - "id": 9956, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9955, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9960, - "src": "777:13:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9954, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "777:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "776:15:24" - }, - "scope": 9977, - "src": "740:83:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9967, - "nodeType": "Block", - "src": "996:33:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9965, - "name": "_symbol", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9928, - "src": "1014:7:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "functionReturnParameters": 9964, - "id": 9966, - "nodeType": "Return", - "src": "1007:14:24" - } - ] - }, - "documentation": "@dev Returns the symbol of the token, usually a shorter version of the\r\nname.\r", - "id": 9968, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "symbol", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9961, - "nodeType": "ParameterList", - "parameters": [], - "src": "957:2:24" - }, - "returnParameters": { - "id": 9964, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9963, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9968, - "src": "981:13:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9962, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "981:6:24", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "980:15:24" - }, - "scope": 9977, - "src": "942:87:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9975, - "nodeType": "Block", - "src": "1640:35:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9973, - "name": "_decimals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9930, - "src": "1658:9:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "functionReturnParameters": 9972, - "id": 9974, - "nodeType": "Return", - "src": "1651:16:24" - } - ] - }, - "documentation": "@dev Returns the number of decimals used to get its user representation.\r\nFor example, if `decimals` equals `2`, a balance of `505` tokens should\r\nbe displayed to a user as `5,05` (`505 / 10 ** 2`).\r\n\n * Tokens usually opt for a value of 18, imitating the relationship between\r\nEther and Wei.\r\n\n * NOTE: This information is only used for _display_ purposes: it in\r\nno way affects any of the arithmetic of the contract, including\r\n{IERC20-balanceOf} and {IERC20-transfer}.\r", - "id": 9976, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "decimals", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9969, - "nodeType": "ParameterList", - "parameters": [], - "src": "1609:2:24" - }, - "returnParameters": { - "id": 9972, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9971, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9976, - "src": "1633:5:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9970, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "1633:5:24", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1632:7:24" - }, - "scope": 9977, - "src": "1592:83:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 10328, - "src": "186:1492:24" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 10005, - "linearizedBaseContracts": [ - 10005 - ], - "name": "IClaimsToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": "@dev This event emits when funds to be deposited are sent to the token contract\r\n@param from contains the address of the sender of the received funds\r\n@param fundsReceived contains the amount of funds received for distribution\r", - "id": 9983, - "name": "FundsReceived", - "nodeType": "EventDefinition", - "parameters": { - "id": 9982, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9979, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 9983, - "src": "1983:20:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9978, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1983:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9981, - "indexed": false, - "name": "fundsReceived", - "nodeType": "VariableDeclaration", - "scope": 9983, - "src": "2005:21:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9980, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2005:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1982:45:24" - }, - "src": "1963:65:24" - }, - { - "anonymous": false, - "documentation": "@dev This event emits when distributed funds are withdrawn by a token holder.\r\n@param by contains the address of the receiver of funds\r\n@param fundsWithdrawn contains the amount of funds that were withdrawn\r", - "id": 9989, - "name": "FundsWithdrawn", - "nodeType": "EventDefinition", - "parameters": { - "id": 9988, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9985, - "indexed": true, - "name": "by", - "nodeType": "VariableDeclaration", - "scope": 9989, - "src": "2286:18:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9984, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2286:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9987, - "indexed": false, - "name": "fundsWithdrawn", - "nodeType": "VariableDeclaration", - "scope": 9989, - "src": "2306:22:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2306:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2285:44:24" - }, - "src": "2265:65:24" - }, - { - "body": null, - "documentation": "@dev Withdraws available funds for user.\r", - "id": 9992, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "withdrawFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9990, - "nodeType": "ParameterList", - "parameters": [], - "src": "2415:2:24" - }, - "returnParameters": { - "id": 9991, - "nodeType": "ParameterList", - "parameters": [], - "src": "2434:0:24" - }, - "scope": 10005, - "src": "2393:42:24", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", - "id": 9999, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "availableFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9994, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 9999, - "src": "2691:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2691:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2690:21:24" - }, - "returnParameters": { - "id": 9998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9997, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9999, - "src": "2735:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9996, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2735:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2734:9:24" - }, - "scope": 10005, - "src": "2667:77:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", - "id": 10004, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalReceivedFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10000, - "nodeType": "ParameterList", - "parameters": [], - "src": "2920:2:24" - }, - "returnParameters": { - "id": 10003, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10002, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10004, - "src": "2946:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10001, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2946:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2945:9:24" - }, - "scope": 10005, - "src": "2893:62:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 10328, - "src": "1682:1276:24" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10006, - "name": "IClaimsToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10005, - "src": "2986:12:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IClaimsToken_$10005", - "typeString": "contract IClaimsToken" - } - }, - "id": 10007, - "nodeType": "InheritanceSpecifier", - "src": "2986:12:24" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10008, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9650, - "src": "3000:5:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$9650", - "typeString": "contract ERC20" - } - }, - "id": 10009, - "nodeType": "InheritanceSpecifier", - "src": "3000:5:24" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10010, - "name": "ERC20Detailed", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9977, - "src": "3007:13:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Detailed_$9977", - "typeString": "contract ERC20Detailed" - } - }, - "id": 10011, - "nodeType": "InheritanceSpecifier", - "src": "3007:13:24" - } - ], - "contractDependencies": [ - 9650, - 9719, - 9977, - 10005 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": false, - "id": 10228, - "linearizedBaseContracts": [ - 10228, - 9977, - 9650, - 9719, - 10005 - ], - "name": "ClaimsToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 10014, - "libraryName": { - "contractScope": null, - "id": 10012, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "3033:8:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "3027:27:24", - "typeName": { - "id": 10013, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3046:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 10016, - "name": "receivedFunds", - "nodeType": "VariableDeclaration", - "scope": 10228, - "src": "3107:28:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10015, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3107:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 10020, - "name": "processedFunds", - "nodeType": "VariableDeclaration", - "scope": 10228, - "src": "3226:50:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 10019, - "keyType": { - "id": 10017, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3235:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3226:28:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 10018, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3246:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 10024, - "name": "claimedFunds", - "nodeType": "VariableDeclaration", - "scope": 10228, - "src": "3332:48:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 10023, - "keyType": { - "id": 10021, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3341:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "3332:28:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 10022, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3352:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 10050, - "nodeType": "Block", - "src": "3471:76:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10035, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10026, - "src": "3482:6:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10043, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130303030", - "id": 10036, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3490:5:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10000_by_1", - "typeString": "int_const 10000" - }, - "value": "10000" - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10041, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 10037, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3499:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "3138", - "id": 10039, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3513:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - } - ], - "id": 10038, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "3505:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint256_$", - "typeString": "type(uint256)" - }, - "typeName": "uint256" - }, - "id": 10040, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3505:11:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3499:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 10042, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "3498:19:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3490:27:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10034, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9539, - "src": "3476:5:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 10044, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3476:42:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10045, - "nodeType": "ExpressionStatement", - "src": "3476:42:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10048, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10046, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "3525:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 10047, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3541:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "3525:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10049, - "nodeType": "ExpressionStatement", - "src": "3525:17:24" - } - ] - }, - "documentation": null, - "id": 10051, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "hexValue": "436c61696d73546f6b656e", - "id": 10029, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3443:13:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_25771c0ba9a97de4408886fe552885a1751acfa735dfd2ef9c66e7b9e8871e71", - "typeString": "literal_string \"ClaimsToken\"" - }, - "value": "ClaimsToken" - }, - { - "argumentTypes": null, - "hexValue": "435354", - "id": 10030, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3458:5:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0626086d51c299e905c42b7a28a0add92109e49b12cb2bd2531769201453ab94", - "typeString": "literal_string \"CST\"" - }, - "value": "CST" - }, - { - "argumentTypes": null, - "hexValue": "3138", - "id": 10031, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3465:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - } - ], - "id": 10032, - "modifierName": { - "argumentTypes": null, - "id": 10028, - "name": "ERC20Detailed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9977, - "src": "3429:13:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Detailed_$9977_$", - "typeString": "type(contract ERC20Detailed)" - } - }, - "nodeType": "ModifierInvocation", - "src": "3429:39:24" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10027, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10026, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 10051, - "src": "3400:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10025, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3400:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3399:16:24" - }, - "returnParameters": { - "id": 10033, - "nodeType": "ParameterList", - "parameters": [], - "src": "3471:0:24" - }, - "scope": 10228, - "src": "3388:159:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 10075, - "nodeType": "Block", - "src": "3898:95:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10061, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "3915:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10062, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3915:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 10060, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "3903:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10063, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3903:23:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10064, - "nodeType": "ExpressionStatement", - "src": "3903:23:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10066, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10053, - "src": "3943:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10065, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "3931:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3931:16:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10068, - "nodeType": "ExpressionStatement", - "src": "3931:16:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10071, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10053, - "src": "3976:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10072, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10055, - "src": "3981:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10069, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "3961:5:24", - "typeDescriptions": { - "typeIdentifier": "t_super$_ClaimsToken_$10228", - "typeString": "contract super ClaimsToken" - } - }, - "id": 10070, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9343, - "src": "3961:14:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 10073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3961:27:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 10059, - "id": 10074, - "nodeType": "Return", - "src": "3954:34:24" - } - ] - }, - "documentation": "@dev Transfer token to a specified address.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _to The address to transfer to\r\n@param _value The amount to be transferred\r", - "id": 10076, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10056, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10053, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 10076, - "src": "3839:11:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10052, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3839:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10055, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10076, - "src": "3852:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10054, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3852:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3838:29:24" - }, - "returnParameters": { - "id": 10059, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10058, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10076, - "src": "3890:4:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10057, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3890:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3889:6:24" - }, - "scope": 10228, - "src": "3821:172:24", - "stateMutability": "nonpayable", - "superFunction": 9343, - "visibility": "public" - }, - { - "body": { - "id": 10102, - "nodeType": "Block", - "src": "4485:101:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10088, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10078, - "src": "4502:5:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10087, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "4490:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10089, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4490:18:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10090, - "nodeType": "ExpressionStatement", - "src": "4490:18:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10092, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10080, - "src": "4525:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10091, - "name": "_claimFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10198, - "src": "4513:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$", - "typeString": "function (address)" - } - }, - "id": 10093, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4513:16:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10094, - "nodeType": "ExpressionStatement", - "src": "4513:16:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10097, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10078, - "src": "4562:5:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10098, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10080, - "src": "4569:3:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10099, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10082, - "src": "4574:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10095, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10490, - "src": "4543:5:24", - "typeDescriptions": { - "typeIdentifier": "t_super$_ClaimsToken_$10228", - "typeString": "contract super ClaimsToken" - } - }, - "id": 10096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 9397, - "src": "4543:18:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) returns (bool)" - } - }, - "id": 10100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4543:38:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 10086, - "id": 10101, - "nodeType": "Return", - "src": "4536:45:24" - } - ] - }, - "documentation": "@dev Transfer tokens from one address to another.\r\nClaims funds for both parties, whereby the amount of tokens withdrawn\r\nis inherited by the new token owner.\r\n@param _from address The address which you want to send tokens from\r\n@param _to address The address which you want to transfer to\r\n@param _value uint256 the amount of tokens to be transferred\r", - "id": 10103, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10083, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10078, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4411:13:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10077, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4411:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10080, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4426:11:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10079, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4426:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10082, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4439:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10081, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4439:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4410:44:24" - }, - "returnParameters": { - "id": 10086, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10085, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10103, - "src": "4477:4:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10084, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4477:4:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4476:6:24" - }, - "scope": 10228, - "src": "4389:197:24", - "stateMutability": "nonpayable", - "superFunction": 9397, - "visibility": "public" - }, - { - "body": { - "id": 10110, - "nodeType": "Block", - "src": "4808:30:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 10108, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "4820:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10107, - "id": 10109, - "nodeType": "Return", - "src": "4813:20:24" - } - ] - }, - "documentation": "@dev Get cumulative funds received by ClaimsToken.\r\n@return A uint256 representing the total funds received by ClaimsToken\r", - "id": 10111, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "totalReceivedFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10104, - "nodeType": "ParameterList", - "parameters": [], - "src": "4762:2:24" - }, - "returnParameters": { - "id": 10107, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10106, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10111, - "src": "4797:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10105, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4797:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4796:9:24" - }, - "scope": 10228, - "src": "4735:103:24", - "stateMutability": "view", - "superFunction": 10004, - "visibility": "external" - }, - { - "body": { - "id": 10127, - "nodeType": "Block", - "src": "5156:82:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10122, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "5207:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10124, - "indexExpression": { - "argumentTypes": null, - "id": 10123, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10113, - "src": "5220:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5207:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10119, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10113, - "src": "5190:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10118, - "name": "_calcUnprocessedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10169, - "src": "5168:21:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10120, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5168:34:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10121, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "5168:38:24", - "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": 10125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5168:65:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10117, - "id": 10126, - "nodeType": "Return", - "src": "5161:72:24" - } - ] - }, - "documentation": "@dev Returns the amount of funds a given address is able to withdraw currently.\r\n@param _forAddress Address of ClaimsToken holder\r\n@return A uint256 representing the available funds for a given account\r", - "id": 10128, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "availableFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10114, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10113, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 10128, - "src": "5094:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10112, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5094:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5093:21:24" - }, - "returnParameters": { - "id": 10117, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10116, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10128, - "src": "5145:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10115, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5145:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5144:9:24" - }, - "scope": 10228, - "src": "5070:168:24", - "stateMutability": "view", - "superFunction": 9999, - "visibility": "public" - }, - { - "body": { - "id": 10140, - "nodeType": "Block", - "src": "5477:51:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 10138, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10133, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "5482:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10136, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10130, - "src": "5516:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10134, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "5498:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "5498:17:24", - "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": 10137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5498:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "5482:41:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10139, - "nodeType": "ExpressionStatement", - "src": "5482:41:24" - } - ] - }, - "documentation": "@dev Increments cumulative received funds by new received funds.\r\nCalled when ClaimsToken receives funds.\r\n@param _value Amount of tokens / Ether received\r", - "id": 10141, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10131, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10130, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10141, - "src": "5447:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10129, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5447:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5446:16:24" - }, - "returnParameters": { - "id": 10132, - "nodeType": "ParameterList", - "parameters": [], - "src": "5477:0:24" - }, - "scope": 10228, - "src": "5423:105:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10168, - "nodeType": "Block", - "src": "5765:158:24", - "statements": [ - { - "assignments": [ - 10149 - ], - "declarations": [ - { - "constant": false, - "id": 10149, - "name": "newReceivedFunds", - "nodeType": "VariableDeclaration", - "scope": 10168, - "src": "5770:24:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10148, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5770:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10156, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10152, - "name": "processedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "5815:14:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10154, - "indexExpression": { - "argumentTypes": null, - "id": 10153, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10143, - "src": "5830:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "5815:27:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10150, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "5797:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10151, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "5797:17:24", - "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": 10155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5797:46:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "5770:73:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10164, - "name": "totalSupply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9296, - "src": "5904:11:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 10165, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5904:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10161, - "name": "newReceivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10149, - "src": "5882:16:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10158, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10143, - "src": "5865:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10157, - "name": "balanceOf", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9308, - "src": "5855:9:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10159, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5855:22:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "mul", - "nodeType": "MemberAccess", - "referencedDeclaration": 9784, - "src": "5855:26:24", - "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": 10162, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5855:44:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10163, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 9808, - "src": "5855:48:24", - "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": 10166, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5855:63:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10147, - "id": 10167, - "nodeType": "Return", - "src": "5848:70:24" - } - ] - }, - "documentation": "@dev Returns payout for a user which can be withdrawn or claimed.\r\n@param _forAddress Address of ClaimsToken holder\r", - "id": 10169, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_calcUnprocessedFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10144, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10143, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 10169, - "src": "5701:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5701:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5700:21:24" - }, - "returnParameters": { - "id": 10147, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10146, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10169, - "src": "5754:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10145, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5754:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5753:9:24" - }, - "scope": 10228, - "src": "5670:253:24", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10197, - "nodeType": "Block", - "src": "6080:201:24", - "statements": [ - { - "assignments": [ - 10175 - ], - "declarations": [ - { - "constant": false, - "id": 10175, - "name": "unprocessedFunds", - "nodeType": "VariableDeclaration", - "scope": 10197, - "src": "6085:24:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10174, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6085:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10179, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10177, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6134:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 10176, - "name": "_calcUnprocessedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10169, - "src": "6112:21:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6112:34:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6085:61:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10184, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10180, - "name": "processedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "6153:14:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10182, - "indexExpression": { - "argumentTypes": null, - "id": 10181, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6168:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6153:27:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10183, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "6183:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6153:43:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10185, - "nodeType": "ExpressionStatement", - "src": "6153:43:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10186, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "6201:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10188, - "indexExpression": { - "argumentTypes": null, - "id": 10187, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6214:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6201:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10193, - "name": "unprocessedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10175, - "src": "6259:16:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10189, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "6229:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10191, - "indexExpression": { - "argumentTypes": null, - "id": 10190, - "name": "_forAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10171, - "src": "6242:11:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6229:25:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10192, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "6229:29:24", - "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": 10194, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6229:47:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6201:75:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10196, - "nodeType": "ExpressionStatement", - "src": "6201:75:24" - } - ] - }, - "documentation": "@dev Claims funds for a user.\r\n@param _forAddress Address of ClaimsToken holder\r", - "id": 10198, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_claimFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10172, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10171, - "name": "_forAddress", - "nodeType": "VariableDeclaration", - "scope": 10198, - "src": "6050:19:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10170, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6050:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6049:21:24" - }, - "returnParameters": { - "id": 10173, - "nodeType": "ParameterList", - "parameters": [], - "src": "6080:0:24" - }, - "scope": 10228, - "src": "6029:252:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 10226, - "nodeType": "Block", - "src": "6575:177:24", - "statements": [ - { - "assignments": [ - 10204 - ], - "declarations": [ - { - "constant": false, - "id": 10204, - "name": "withdrawableFunds", - "nodeType": "VariableDeclaration", - "scope": 10226, - "src": "6580:25:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10203, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6580:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10209, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10206, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6623:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10207, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6623:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 10205, - "name": "availableFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10128, - "src": "6608:14:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) view returns (uint256)" - } - }, - "id": 10208, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6608:26:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "6580:54:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10210, - "name": "processedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10020, - "src": "6641:14:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10213, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10211, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6656:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10212, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6656:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6641:26:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10214, - "name": "receivedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10016, - "src": "6670:13:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "6641:42:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10216, - "nodeType": "ExpressionStatement", - "src": "6641:42:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10222, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 10217, - "name": "claimedFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10024, - "src": "6688:12:24", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 10220, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10218, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6701:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10219, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6701:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "6688:24:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "30", - "id": 10221, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6715:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6688:28:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 10223, - "nodeType": "ExpressionStatement", - "src": "6688:28:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10224, - "name": "withdrawableFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10204, - "src": "6730:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 10202, - "id": 10225, - "nodeType": "Return", - "src": "6723:24:24" - } - ] - }, - "documentation": "@dev Sets claimed but not yet withdrawn funds to 0,\r\nmarks total received funds as processed and\r\nreturns the withdrawable amount for a user.\r\n@return A uint256 representing the withdrawable funds\r", - "id": 10227, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_prepareWithdraw", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10199, - "nodeType": "ParameterList", - "parameters": [], - "src": "6537:2:24" - }, - "returnParameters": { - "id": 10202, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10201, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10227, - "src": "6564:7:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10200, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6564:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6563:9:24" - }, - "scope": 10228, - "src": "6512:240:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 10328, - "src": "2962:3793:24" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10229, - "name": "IClaimsToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10005, - "src": "6797:12:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IClaimsToken_$10005", - "typeString": "contract IClaimsToken" - } - }, - "id": 10230, - "nodeType": "InheritanceSpecifier", - "src": "6797:12:24" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10231, - "name": "ClaimsToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 10228, - "src": "6811:11:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ClaimsToken_$10228", - "typeString": "contract ClaimsToken" - } - }, - "id": 10232, - "nodeType": "InheritanceSpecifier", - "src": "6811:11:24" - } - ], - "contractDependencies": [ - 9650, - 9719, - 9977, - 10005, - 10228 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 10327, - "linearizedBaseContracts": [ - 10327, - 10228, - 9977, - 9650, - 9719, - 10005 - ], - "name": "ClaimsTokenERC20Extension", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 10234, - "name": "fundsToken", - "nodeType": "VariableDeclaration", - "scope": 10327, - "src": "6880:24:24", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 10233, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "6880:6:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 10247, - "nodeType": "Block", - "src": "6937:81:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 10242, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10237, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6950:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10238, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6950:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10240, - "name": "fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10234, - "src": "6972:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - ], - "id": 10239, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "6964:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 10241, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6964:19:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "6950:33:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "554e415554484f52495a45445f53454e444552", - "id": 10243, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6985:21:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", - "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" - }, - "value": "UNAUTHORIZED_SENDER" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_fecc9deb002a6d67ecfd54c7d512650aabc56e52edf36a08b95032123ae3c2fd", - "typeString": "literal_string \"UNAUTHORIZED_SENDER\"" - } - ], - "id": 10236, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "6942:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 10244, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6942:65:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10245, - "nodeType": "ExpressionStatement", - "src": "6942:65:24" - }, - { - "id": 10246, - "nodeType": "PlaceholderStatement", - "src": "7012:1:24" - } - ] - }, - "documentation": null, - "id": 10248, - "name": "onlyFundsToken", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 10235, - "nodeType": "ParameterList", - "parameters": [], - "src": "6934:2:24" - }, - "src": "6910:108:24", - "visibility": "internal" - }, - { - "body": { - "id": 10272, - "nodeType": "Block", - "src": "7106:84:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 10265, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10260, - "name": "_fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10252, - "src": "7127:11:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - ], - "id": 10259, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7119:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 10261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7119:20:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 10263, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7151:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 10262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7143:7:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 10264, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7143:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7119:34:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 10258, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "7111:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 10266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7111:43:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10267, - "nodeType": "ExpressionStatement", - "src": "7111:43:24" - }, - { - "expression": { - "argumentTypes": null, - "id": 10270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10268, - "name": "fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10234, - "src": "7161:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10269, - "name": "_fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10252, - "src": "7174:11:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "src": "7161:24:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 10271, - "nodeType": "ExpressionStatement", - "src": "7161:24:24" - } - ] - }, - "documentation": null, - "id": 10273, - "implemented": true, - "kind": "constructor", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 10255, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10250, - "src": "7096:6:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 10256, - "modifierName": { - "argumentTypes": null, - "id": 10254, - "name": "ClaimsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10228, - "src": "7084:11:24", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ClaimsToken_$10228_$", - "typeString": "type(contract ClaimsToken)" - } - }, - "nodeType": "ModifierInvocation", - "src": "7084:19:24" - } - ], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10253, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10250, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 10273, - "src": "7035:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10249, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7035:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10252, - "name": "_fundsToken", - "nodeType": "VariableDeclaration", - "scope": 10273, - "src": "7051:18:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 10251, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "7051:6:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7034:36:24" - }, - "returnParameters": { - "id": 10257, - "nodeType": "ParameterList", - "parameters": [], - "src": "7106:0:24" - }, - "scope": 10327, - "src": "7023:167:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 10299, - "nodeType": "Block", - "src": "7303:175:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10277, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "7316:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7316:9:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 10279, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7329:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7316:14:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 10281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7332:2:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 10276, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7308:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 10282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7308:27:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10283, - "nodeType": "ExpressionStatement", - "src": "7308:27:24" - }, - { - "assignments": [ - 10285 - ], - "declarations": [ - { - "constant": false, - "id": 10285, - "name": "withdrawableFunds", - "nodeType": "VariableDeclaration", - "scope": 10299, - "src": "7342:25:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10284, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7342:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 10288, - "initialValue": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 10286, - "name": "_prepareWithdraw", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10227, - "src": "7370:16:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_uint256_$", - "typeString": "function () returns (uint256)" - } - }, - "id": 10287, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7370:18:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7342:46:24" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10292, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "7423:3:24", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10293, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7423:10:24", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 10294, - "name": "withdrawableFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10285, - "src": "7435:17:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10290, - "name": "fundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10234, - "src": "7403:10:24", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 10291, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9661, - "src": "7403:19:24", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 10295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7403:50:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5452414e534645525f4641494c4544", - "id": 10296, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7455:17:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", - "typeString": "literal_string \"TRANSFER_FAILED\"" - }, - "value": "TRANSFER_FAILED" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8bf8f0d780f13740660fe63233b17f96cb1813889e7dce4121e55b817b367b72", - "typeString": "literal_string \"TRANSFER_FAILED\"" - } - ], - "id": 10289, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7395:7:24", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 10297, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7395:78:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10298, - "nodeType": "ExpressionStatement", - "src": "7395:78:24" - } - ] - }, - "documentation": "@dev Withdraws available funds for user.\r", - "id": 10300, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "withdrawFunds", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10274, - "nodeType": "ParameterList", - "parameters": [], - "src": "7275:2:24" - }, - "returnParameters": { - "id": 10275, - "nodeType": "ParameterList", - "parameters": [], - "src": "7303:0:24" - }, - "scope": 10327, - "src": "7253:225:24", - "stateMutability": "payable", - "superFunction": 9992, - "visibility": "external" - }, - { - "body": { - "id": 10325, - "nodeType": "Block", - "src": "7777:100:24", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 10313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 10311, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10304, - "src": "7786:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 10312, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7795:1:24", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7786:10:24", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 10324, - "nodeType": "IfStatement", - "src": "7782:91:24", - "trueBody": { - "id": 10323, - "nodeType": "Block", - "src": "7798:75:24", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10315, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10304, - "src": "7819:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10314, - "name": "_registerFunds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10141, - "src": "7804:14:24", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 10316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7804:22:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10317, - "nodeType": "ExpressionStatement", - "src": "7804:22:24" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10319, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10302, - "src": "7851:7:24", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10320, - "name": "_value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10304, - "src": "7860:6:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10318, - "name": "FundsReceived", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9983, - "src": "7837:13:24", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 10321, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7837:30:24", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10322, - "nodeType": "EmitStatement", - "src": "7832:35:24" - } - ] - } - } - ] - }, - "documentation": "@dev For ERC223.\r\nCalls _registerFunds(), whereby total received funds (cumulative) gets updated.\r\n@param _sender Sender of tokens\r\n@param _value Amount of tokens\r", - "id": 10326, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [], - "id": 10309, - "modifierName": { - "argumentTypes": null, - "id": 10308, - "name": "onlyFundsToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10248, - "src": "7758:14:24", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "7758:16:24" - } - ], - "name": "tokenFallback", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10307, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10302, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 10326, - "src": "7698:15:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10301, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7698:7:24", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10304, - "name": "_value", - "nodeType": "VariableDeclaration", - "scope": 10326, - "src": "7715:14:24", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10303, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7715:7:24", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10306, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10326, - "src": "7731:12:24", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 10305, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "7731:5:24", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "7697:47:24" - }, - "returnParameters": { - "id": 10310, - "nodeType": "ParameterList", - "parameters": [], - "src": "7777:0:24" - }, - "scope": 10327, - "src": "7675:202:24", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 10328, - "src": "6759:1121:24" - } - ], - "src": "0:7882:24" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:20.309Z", - "devdoc": { - "methods": { - "availableFunds(address)": { - "details": "Returns the amount of funds a given address is able to withdraw currently.\r", - "params": { - "_forAddress": "Address of ClaimsToken holder\r" - }, - "return": "A uint256 representing the available funds for a given account\r" - }, - "totalReceivedFunds()": { - "details": "Get cumulative funds received by ClaimsToken.\r", - "return": "A uint256 representing the total funds received by ClaimsToken\r" - }, - "withdrawFunds()": { - "details": "Withdraws available funds for user.\r" - } - } - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/IERC20.json b/src/contracts/IERC20.json deleted file mode 100644 index 140bad8..0000000 --- a/src/contracts/IERC20.json +++ /dev/null @@ -1,1864 +0,0 @@ -{ - "contractName": "IERC20", - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": false, - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "spender", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "who", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"who\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]}},\"version\":1}", - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity ^0.5.2;\r\n\r\ninterface IERC20 {\r\n function transfer(address to, uint256 value) external returns (bool);\r\n\r\n function approve(address spender, uint256 value) external returns (bool);\r\n\r\n function transferFrom(address from, address to, uint256 value) external returns (bool);\r\n\r\n function totalSupply() external view returns (uint256);\r\n\r\n function balanceOf(address who) external view returns (uint256);\r\n\r\n function allowance(address owner, address spender) external view returns (uint256);\r\n\r\n event Transfer(address indexed from, address indexed to, uint256 value);\r\n\r\n event Approval(address indexed owner, address indexed spender, uint256 value);\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\oz\\IERC20.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", - "exportedSymbols": { - "IERC20": [ - 9719 - ] - }, - "id": 9720, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9652, - "literals": [ - "solidity", - "^", - "0.5", - ".2" - ], - "nodeType": "PragmaDirective", - "src": "0:23:20" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 9719, - "linearizedBaseContracts": [ - 9719 - ], - "name": "IERC20", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 9661, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9657, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9654, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 9661, - "src": "69:10:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9653, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "69:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9656, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9661, - "src": "81:13:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9655, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "81:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "68:27:20" - }, - "returnParameters": { - "id": 9660, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9659, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9661, - "src": "114:4:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9658, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "114:4:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "113:6:20" - }, - "scope": 9719, - "src": "51:69:20", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 9670, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9666, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9663, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 9670, - "src": "145:15:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9662, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "145:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9665, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9670, - "src": "162:13:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9664, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "162:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "144:32:20" - }, - "returnParameters": { - "id": 9669, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9668, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9670, - "src": "195:4:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9667, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "195:4:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "194:6:20" - }, - "scope": 9719, - "src": "128:73:20", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 9681, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9677, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9672, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 9681, - "src": "231:12:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "231:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9674, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 9681, - "src": "245:10:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9673, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "245:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9676, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9681, - "src": "257:13:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9675, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "257:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "230:41:20" - }, - "returnParameters": { - "id": 9680, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9679, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9681, - "src": "290:4:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9678, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "290:4:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "289:6:20" - }, - "scope": 9719, - "src": "209:87:20", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 9686, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9682, - "nodeType": "ParameterList", - "parameters": [], - "src": "324:2:20" - }, - "returnParameters": { - "id": 9685, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9684, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9686, - "src": "350:7:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9683, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "350:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "349:9:20" - }, - "scope": 9719, - "src": "304:55:20", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 9693, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9688, - "name": "who", - "nodeType": "VariableDeclaration", - "scope": 9693, - "src": "386:11:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9687, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "386:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "385:13:20" - }, - "returnParameters": { - "id": 9692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9693, - "src": "422:7:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9690, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "422:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "421:9:20" - }, - "scope": 9719, - "src": "367:64:20", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 9702, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9698, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9695, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 9702, - "src": "458:13:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9694, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "458:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9697, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 9702, - "src": "473:15:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9696, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "473:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "457:32:20" - }, - "returnParameters": { - "id": 9701, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9700, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9702, - "src": "513:7:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9699, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "513:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "512:9:20" - }, - "scope": 9719, - "src": "439:83:20", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "anonymous": false, - "documentation": null, - "id": 9710, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 9709, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9704, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 9710, - "src": "545:20:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9703, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "545:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9706, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 9710, - "src": "567:18:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9705, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "567:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9708, - "indexed": false, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9710, - "src": "587:13:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9707, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "587:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "544:57:20" - }, - "src": "530:72:20" - }, - { - "anonymous": false, - "documentation": null, - "id": 9718, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 9717, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9712, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 9718, - "src": "625:21:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9711, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "625:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9714, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 9718, - "src": "648:23:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9713, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "648:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9716, - "indexed": false, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9718, - "src": "673:13:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9715, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "673:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "624:63:20" - }, - "src": "610:78:20" - } - ], - "scope": 9720, - "src": "27:664:20" - } - ], - "src": "0:693:20" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", - "exportedSymbols": { - "IERC20": [ - 9719 - ] - }, - "id": 9720, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9652, - "literals": [ - "solidity", - "^", - "0.5", - ".2" - ], - "nodeType": "PragmaDirective", - "src": "0:23:20" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 9719, - "linearizedBaseContracts": [ - 9719 - ], - "name": "IERC20", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 9661, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9657, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9654, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 9661, - "src": "69:10:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9653, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "69:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9656, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9661, - "src": "81:13:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9655, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "81:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "68:27:20" - }, - "returnParameters": { - "id": 9660, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9659, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9661, - "src": "114:4:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9658, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "114:4:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "113:6:20" - }, - "scope": 9719, - "src": "51:69:20", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 9670, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9666, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9663, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 9670, - "src": "145:15:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9662, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "145:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9665, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9670, - "src": "162:13:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9664, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "162:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "144:32:20" - }, - "returnParameters": { - "id": 9669, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9668, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9670, - "src": "195:4:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9667, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "195:4:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "194:6:20" - }, - "scope": 9719, - "src": "128:73:20", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 9681, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9677, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9672, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 9681, - "src": "231:12:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9671, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "231:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9674, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 9681, - "src": "245:10:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9673, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "245:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9676, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9681, - "src": "257:13:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9675, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "257:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "230:41:20" - }, - "returnParameters": { - "id": 9680, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9679, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9681, - "src": "290:4:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9678, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "290:4:20", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "289:6:20" - }, - "scope": 9719, - "src": "209:87:20", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 9686, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "totalSupply", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9682, - "nodeType": "ParameterList", - "parameters": [], - "src": "324:2:20" - }, - "returnParameters": { - "id": 9685, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9684, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9686, - "src": "350:7:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9683, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "350:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "349:9:20" - }, - "scope": 9719, - "src": "304:55:20", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 9693, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9689, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9688, - "name": "who", - "nodeType": "VariableDeclaration", - "scope": 9693, - "src": "386:11:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9687, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "386:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "385:13:20" - }, - "returnParameters": { - "id": 9692, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9691, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9693, - "src": "422:7:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9690, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "422:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "421:9:20" - }, - "scope": 9719, - "src": "367:64:20", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 9702, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "allowance", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9698, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9695, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 9702, - "src": "458:13:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9694, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "458:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9697, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 9702, - "src": "473:15:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9696, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "473:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "457:32:20" - }, - "returnParameters": { - "id": 9701, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9700, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9702, - "src": "513:7:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9699, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "513:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "512:9:20" - }, - "scope": 9719, - "src": "439:83:20", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "anonymous": false, - "documentation": null, - "id": 9710, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 9709, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9704, - "indexed": true, - "name": "from", - "nodeType": "VariableDeclaration", - "scope": 9710, - "src": "545:20:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9703, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "545:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9706, - "indexed": true, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 9710, - "src": "567:18:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9705, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "567:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9708, - "indexed": false, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9710, - "src": "587:13:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9707, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "587:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "544:57:20" - }, - "src": "530:72:20" - }, - { - "anonymous": false, - "documentation": null, - "id": 9718, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 9717, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9712, - "indexed": true, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 9718, - "src": "625:21:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9711, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "625:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9714, - "indexed": true, - "name": "spender", - "nodeType": "VariableDeclaration", - "scope": 9718, - "src": "648:23:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9713, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "648:7:20", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9716, - "indexed": false, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 9718, - "src": "673:13:20", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9715, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "673:7:20", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "624:63:20" - }, - "src": "610:78:20" - } - ], - "scope": 9720, - "src": "27:664:20" - } - ], - "src": "0:693:20" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:20.242Z", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/Migrations.json b/src/contracts/Migrations.json deleted file mode 100644 index 18adafa..0000000 --- a/src/contracts/Migrations.json +++ /dev/null @@ -1,1393 +0,0 @@ -{ - "contractName": "Migrations", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "last_completed_migration", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "constant": false, - "inputs": [ - { - "name": "completed", - "type": "uint256" - } - ], - "name": "setCompleted", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "new_address", - "type": "address" - } - ], - "name": "upgrade", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"new_address\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"last_completed_migration\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/Migrations.sol\":{\"keccak256\":\"0xcbed787a54a1f2fa2a5305009e2a9ba5ee8a082369ffbade2fde35264bc95f04\",\"urls\":[\"bzzr://adfcd94dd1e5c84fb15337b99d0ea5b0014790da7688d76b2495586ff6f5d18b\",\"dweb:/ipfs/QmYgv9zRY9HFkhLi1qZfEXkHxG71kVD6aeRncqbyDWzb5P\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b50600080546001600160a01b031916331790556101b3806100326000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100795780638da5cb5b14610093578063fdacd576146100b7575b600080fd5b6100776004803603602081101561006757600080fd5b50356001600160a01b03166100d4565b005b610081610151565b60408051918252519081900360200190f35b61009b610157565b604080516001600160a01b039092168252519081900360200190f35b610077600480360360208110156100cd57600080fd5b5035610166565b6000546001600160a01b031633141561014e576000819050806001600160a01b031663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561013457600080fd5b505af1158015610148573d6000803e3d6000fd5b50505050505b50565b60015481565b6000546001600160a01b031681565b6000546001600160a01b031633141561014e5760015556fea265627a7a72305820496bd79bee655d18a4a71cefe1db0ee55f249847069b69cc042d5510338caac064736f6c63430005090032", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100795780638da5cb5b14610093578063fdacd576146100b7575b600080fd5b6100776004803603602081101561006757600080fd5b50356001600160a01b03166100d4565b005b610081610151565b60408051918252519081900360200190f35b61009b610157565b604080516001600160a01b039092168252519081900360200190f35b610077600480360360208110156100cd57600080fd5b5035610166565b6000546001600160a01b031633141561014e576000819050806001600160a01b031663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b15801561013457600080fd5b505af1158015610148573d6000803e3d6000fd5b50505050505b50565b60015481565b6000546001600160a01b031681565b6000546001600160a01b031633141561014e5760015556fea265627a7a72305820496bd79bee655d18a4a71cefe1db0ee55f249847069b69cc042d5510338caac064736f6c63430005090032", - "sourceMap": "36:500:10:-;;;196:52;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;224:5:10;:18;;-1:-1:-1;;;;;;224:18:10;232:10;224:18;;;36:500;;;;;;", - "deployedSourceMap": "36:500:10:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;36:500:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;365:168;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;365:168:10;-1:-1:-1;;;;;365:168:10;;:::i;:::-;;86:36;;;:::i;:::-;;;;;;;;;;;;;;;;61:20;;;:::i;:::-;;;;-1:-1:-1;;;;;61:20:10;;;;;;;;;;;;;;254:105;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;254:105:10;;:::i;365:168::-;176:5;;-1:-1:-1;;;;;176:5:10;162:10;:19;158:26;;;428:19;461:11;428:45;;480:8;-1:-1:-1;;;;;480:21:10;;502:24;;480:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;480:47:10;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;480:47:10;;;;183:1;158:26;365:168;:::o;86:36::-;;;;:::o;61:20::-;;;-1:-1:-1;;;;;61:20:10;;:::o;254:105::-;176:5;;-1:-1:-1;;;;;176:5:10;162:10;:19;158:26;;;317:24;:36;254:105::o", - "source": "pragma solidity >=0.5.0 < 0.6.0;\r\n\r\ncontract Migrations {\r\n address public owner;\r\n uint public last_completed_migration;\r\n\r\n modifier restricted() {\r\n if (msg.sender == owner) _;\r\n }\r\n\r\n constructor() public {\r\n owner = msg.sender;\r\n }\r\n\r\n function setCompleted(uint completed) public restricted {\r\n last_completed_migration = completed;\r\n }\r\n\r\n function upgrade(address new_address) public restricted {\r\n Migrations upgraded = Migrations(new_address);\r\n upgraded.setCompleted(last_completed_migration);\r\n }\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\inherited\\Migrations.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/Migrations.sol", - "exportedSymbols": { - "Migrations": [ - 6071 - ] - }, - "id": 6072, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 6016, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:10" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 6071, - "linearizedBaseContracts": [ - 6071 - ], - "name": "Migrations", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 6018, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 6071, - "src": "61:20:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6017, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "61:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6020, - "name": "last_completed_migration", - "nodeType": "VariableDeclaration", - "scope": 6071, - "src": "86:36:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6019, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "86:4:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 6028, - "nodeType": "Block", - "src": "151:39:10", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 6025, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6022, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "162:3:10", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "162:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 6024, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6018, - "src": "176:5:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "162:19:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 6027, - "nodeType": "IfStatement", - "src": "158:26:10", - "trueBody": { - "id": 6026, - "nodeType": "PlaceholderStatement", - "src": "183:1:10" - } - } - ] - }, - "documentation": null, - "id": 6029, - "name": "restricted", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 6021, - "nodeType": "ParameterList", - "parameters": [], - "src": "148:2:10" - }, - "src": "129:61:10", - "visibility": "internal" - }, - { - "body": { - "id": 6037, - "nodeType": "Block", - "src": "217:31:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 6035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6032, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6018, - "src": "224:5:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6033, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "232:3:10", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "232:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "224:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6036, - "nodeType": "ExpressionStatement", - "src": "224:18:10" - } - ] - }, - "documentation": null, - "id": 6038, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6030, - "nodeType": "ParameterList", - "parameters": [], - "src": "207:2:10" - }, - "returnParameters": { - "id": 6031, - "nodeType": "ParameterList", - "parameters": [], - "src": "217:0:10" - }, - "scope": 6071, - "src": "196:52:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 6049, - "nodeType": "Block", - "src": "310:49:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 6047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6045, - "name": "last_completed_migration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6020, - "src": "317:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6046, - "name": "completed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6040, - "src": "344:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "317:36:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6048, - "nodeType": "ExpressionStatement", - "src": "317:36:10" - } - ] - }, - "documentation": null, - "id": 6050, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 6043, - "modifierName": { - "argumentTypes": null, - "id": 6042, - "name": "restricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6029, - "src": "299:10:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "299:10:10" - } - ], - "name": "setCompleted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6041, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6040, - "name": "completed", - "nodeType": "VariableDeclaration", - "scope": 6050, - "src": "276:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6039, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "276:4:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "275:16:10" - }, - "returnParameters": { - "id": 6044, - "nodeType": "ParameterList", - "parameters": [], - "src": "310:0:10" - }, - "scope": 6071, - "src": "254:105:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 6069, - "nodeType": "Block", - "src": "421:112:10", - "statements": [ - { - "assignments": [ - 6058 - ], - "declarations": [ - { - "constant": false, - "id": 6058, - "name": "upgraded", - "nodeType": "VariableDeclaration", - "scope": 6069, - "src": "428:19:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$6071", - "typeString": "contract Migrations" - }, - "typeName": { - "contractScope": null, - "id": 6057, - "name": "Migrations", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6071, - "src": "428:10:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$6071", - "typeString": "contract Migrations" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6062, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6060, - "name": "new_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6052, - "src": "461:11:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6059, - "name": "Migrations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6071, - "src": "450:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Migrations_$6071_$", - "typeString": "type(contract Migrations)" - } - }, - "id": 6061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "450:23:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$6071", - "typeString": "contract Migrations" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "428:45:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6066, - "name": "last_completed_migration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6020, - "src": "502:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 6063, - "name": "upgraded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6058, - "src": "480:8:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$6071", - "typeString": "contract Migrations" - } - }, - "id": 6065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "setCompleted", - "nodeType": "MemberAccess", - "referencedDeclaration": 6050, - "src": "480:21:10", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 6067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "480:47:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6068, - "nodeType": "ExpressionStatement", - "src": "480:47:10" - } - ] - }, - "documentation": null, - "id": 6070, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 6055, - "modifierName": { - "argumentTypes": null, - "id": 6054, - "name": "restricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6029, - "src": "410:10:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "410:10:10" - } - ], - "name": "upgrade", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6053, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6052, - "name": "new_address", - "nodeType": "VariableDeclaration", - "scope": 6070, - "src": "382:19:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6051, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "382:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "381:21:10" - }, - "returnParameters": { - "id": 6056, - "nodeType": "ParameterList", - "parameters": [], - "src": "421:0:10" - }, - "scope": 6071, - "src": "365:168:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 6072, - "src": "36:500:10" - } - ], - "src": "0:538:10" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/Migrations.sol", - "exportedSymbols": { - "Migrations": [ - 6071 - ] - }, - "id": 6072, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 6016, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:10" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 6071, - "linearizedBaseContracts": [ - 6071 - ], - "name": "Migrations", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 6018, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 6071, - "src": "61:20:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6017, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "61:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 6020, - "name": "last_completed_migration", - "nodeType": "VariableDeclaration", - "scope": 6071, - "src": "86:36:10", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6019, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "86:4:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 6028, - "nodeType": "Block", - "src": "151:39:10", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 6025, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6022, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "162:3:10", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6023, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "162:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 6024, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6018, - "src": "176:5:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "162:19:10", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 6027, - "nodeType": "IfStatement", - "src": "158:26:10", - "trueBody": { - "id": 6026, - "nodeType": "PlaceholderStatement", - "src": "183:1:10" - } - } - ] - }, - "documentation": null, - "id": 6029, - "name": "restricted", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 6021, - "nodeType": "ParameterList", - "parameters": [], - "src": "148:2:10" - }, - "src": "129:61:10", - "visibility": "internal" - }, - { - "body": { - "id": 6037, - "nodeType": "Block", - "src": "217:31:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 6035, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6032, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6018, - "src": "224:5:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 6033, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "232:3:10", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 6034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "232:10:10", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "224:18:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 6036, - "nodeType": "ExpressionStatement", - "src": "224:18:10" - } - ] - }, - "documentation": null, - "id": 6038, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6030, - "nodeType": "ParameterList", - "parameters": [], - "src": "207:2:10" - }, - "returnParameters": { - "id": 6031, - "nodeType": "ParameterList", - "parameters": [], - "src": "217:0:10" - }, - "scope": 6071, - "src": "196:52:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 6049, - "nodeType": "Block", - "src": "310:49:10", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 6047, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 6045, - "name": "last_completed_migration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6020, - "src": "317:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 6046, - "name": "completed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6040, - "src": "344:9:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "317:36:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 6048, - "nodeType": "ExpressionStatement", - "src": "317:36:10" - } - ] - }, - "documentation": null, - "id": 6050, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 6043, - "modifierName": { - "argumentTypes": null, - "id": 6042, - "name": "restricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6029, - "src": "299:10:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "299:10:10" - } - ], - "name": "setCompleted", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6041, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6040, - "name": "completed", - "nodeType": "VariableDeclaration", - "scope": 6050, - "src": "276:14:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 6039, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "276:4:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "275:16:10" - }, - "returnParameters": { - "id": 6044, - "nodeType": "ParameterList", - "parameters": [], - "src": "310:0:10" - }, - "scope": 6071, - "src": "254:105:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 6069, - "nodeType": "Block", - "src": "421:112:10", - "statements": [ - { - "assignments": [ - 6058 - ], - "declarations": [ - { - "constant": false, - "id": 6058, - "name": "upgraded", - "nodeType": "VariableDeclaration", - "scope": 6069, - "src": "428:19:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$6071", - "typeString": "contract Migrations" - }, - "typeName": { - "contractScope": null, - "id": 6057, - "name": "Migrations", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 6071, - "src": "428:10:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$6071", - "typeString": "contract Migrations" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 6062, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6060, - "name": "new_address", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6052, - "src": "461:11:10", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 6059, - "name": "Migrations", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6071, - "src": "450:10:10", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Migrations_$6071_$", - "typeString": "type(contract Migrations)" - } - }, - "id": 6061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "450:23:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$6071", - "typeString": "contract Migrations" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "428:45:10" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 6066, - "name": "last_completed_migration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6020, - "src": "502:24:10", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 6063, - "name": "upgraded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6058, - "src": "480:8:10", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Migrations_$6071", - "typeString": "contract Migrations" - } - }, - "id": 6065, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "setCompleted", - "nodeType": "MemberAccess", - "referencedDeclaration": 6050, - "src": "480:21:10", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256) external" - } - }, - "id": 6067, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "480:47:10", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 6068, - "nodeType": "ExpressionStatement", - "src": "480:47:10" - } - ] - }, - "documentation": null, - "id": 6070, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 6055, - "modifierName": { - "argumentTypes": null, - "id": 6054, - "name": "restricted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 6029, - "src": "410:10:10", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "410:10:10" - } - ], - "name": "upgrade", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 6053, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 6052, - "name": "new_address", - "nodeType": "VariableDeclaration", - "scope": 6070, - "src": "382:19:10", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 6051, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "382:7:10", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "381:21:10" - }, - "returnParameters": { - "id": 6056, - "nodeType": "ParameterList", - "parameters": [], - "src": "421:0:10" - }, - "scope": 6071, - "src": "365:168:10", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 6072, - "src": "36:500:10" - } - ], - "src": "0:538:10" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": { - "10": { - "events": {}, - "links": {}, - "address": "0x627519AeF3d942bB1E190f752ab1707fcD4e5f76", - "transactionHash": "0x39e17b03206dbd8c7b06ee877cdaa32183e7fab29738605fd18c8885c2d7642b" - } - }, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:31.221Z", - "networkType": "ethereum", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/Moloch.json b/src/contracts/Moloch.json deleted file mode 100644 index deb698d..0000000 --- a/src/contracts/Moloch.json +++ /dev/null @@ -1,40539 +0,0 @@ -{ - "contractName": "Moloch", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "proposals", - "outputs": [ - { - "name": "applicant", - "type": "address" - }, - { - "name": "proposer", - "type": "address" - }, - { - "name": "sponsor", - "type": "address" - }, - { - "name": "sharesRequested", - "type": "uint256" - }, - { - "name": "lootRequested", - "type": "uint256" - }, - { - "name": "tributeOffered", - "type": "uint256" - }, - { - "name": "tributeToken", - "type": "address" - }, - { - "name": "paymentRequested", - "type": "uint256" - }, - { - "name": "paymentToken", - "type": "address" - }, - { - "name": "startingPeriod", - "type": "uint256" - }, - { - "name": "yesVotes", - "type": "uint256" - }, - { - "name": "noVotes", - "type": "uint256" - }, - { - "name": "details", - "type": "string" - }, - { - "name": "maxTotalSharesAndLootAtYesVote", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "members", - "outputs": [ - { - "name": "delegateKey", - "type": "address" - }, - { - "name": "shares", - "type": "uint256" - }, - { - "name": "exists", - "type": "bool" - }, - { - "name": "highestIndexYesVote", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "approvedTokens", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "emergencyProcessingWait", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalShares", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "proposalQueue", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "address" - } - ], - "name": "memberAddressByDelegateKey", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "emergencyWarning", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "gracePeriodLength", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "result", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "summoningTime", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "votingPeriodLength", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "proposalDeposit", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "guildBank", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "lastEmergencyProposalIndex", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "periodDuration", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "depositToken", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "proposalCount", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "summoner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "_summoner", - "type": "address" - }, - { - "name": "_approvedTokens", - "type": "address[1]" - }, - { - "name": "_periodDuration", - "type": "uint256" - }, - { - "name": "_votingPeriodLength", - "type": "uint256" - }, - { - "name": "_gracePeriodLength", - "type": "uint256" - }, - { - "name": "_emergencyProcessingWait", - "type": "uint256" - }, - { - "name": "_bailoutWait", - "type": "uint256" - }, - { - "name": "_proposalDeposit", - "type": "uint256" - }, - { - "name": "_dilutionBound", - "type": "uint256" - }, - { - "name": "_processingReward", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "proposalIndex", - "type": "uint256" - }, - { - "indexed": true, - "name": "delegateKey", - "type": "address" - }, - { - "indexed": true, - "name": "memberAddress", - "type": "address" - }, - { - "indexed": true, - "name": "applicant", - "type": "address" - }, - { - "indexed": false, - "name": "sharesRequested", - "type": "uint256" - }, - { - "indexed": false, - "name": "lootRequested", - "type": "uint256" - }, - { - "indexed": false, - "name": "tributeOffered", - "type": "uint256" - }, - { - "indexed": false, - "name": "tributeToken", - "type": "address" - }, - { - "indexed": false, - "name": "paymentRequested", - "type": "uint256" - }, - { - "indexed": false, - "name": "paymentToken", - "type": "address" - } - ], - "name": "SubmitProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "delegateKey", - "type": "address" - }, - { - "indexed": true, - "name": "memberAddress", - "type": "address" - }, - { - "indexed": false, - "name": "proposalIndex", - "type": "uint256" - }, - { - "indexed": false, - "name": "proposalQueueIndex", - "type": "uint256" - }, - { - "indexed": false, - "name": "startingPeriod", - "type": "uint256" - } - ], - "name": "SponsorProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "proposalIndex", - "type": "uint256" - }, - { - "indexed": true, - "name": "delegateKey", - "type": "address" - }, - { - "indexed": true, - "name": "memberAddress", - "type": "address" - }, - { - "indexed": false, - "name": "uintVote", - "type": "uint8" - } - ], - "name": "SubmitVote", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "proposalIndex", - "type": "uint256" - }, - { - "indexed": true, - "name": "proposalId", - "type": "uint256" - }, - { - "indexed": false, - "name": "didPass", - "type": "bool" - } - ], - "name": "ProcessProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "memberAddress", - "type": "address" - }, - { - "indexed": false, - "name": "sharesToBurn", - "type": "uint256" - }, - { - "indexed": false, - "name": "lootToBurn", - "type": "uint256" - } - ], - "name": "Ragequit", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "proposalIndex", - "type": "uint256" - }, - { - "indexed": false, - "name": "applicantAddress", - "type": "address" - } - ], - "name": "CancelProposal", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "memberAddress", - "type": "address" - }, - { - "indexed": false, - "name": "newDelegateKey", - "type": "address" - } - ], - "name": "UpdateDelegateKey", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "summoner", - "type": "address" - }, - { - "indexed": false, - "name": "shares", - "type": "uint256" - } - ], - "name": "SummonComplete", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "applicant", - "type": "address" - }, - { - "name": "sharesRequested", - "type": "uint256" - }, - { - "name": "lootRequested", - "type": "uint256" - }, - { - "name": "tributeOffered", - "type": "uint256" - }, - { - "name": "tributeToken", - "type": "address" - }, - { - "name": "paymentRequested", - "type": "uint256" - }, - { - "name": "paymentToken", - "type": "address" - }, - { - "name": "details", - "type": "string" - } - ], - "name": "submitProposal", - "outputs": [ - { - "name": "proposalId", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "proposalId", - "type": "uint256" - } - ], - "name": "sponsorProposal", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getProposal", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "proposalIndex", - "type": "uint256" - }, - { - "name": "uintVote", - "type": "uint8" - } - ], - "name": "submitVote", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getResult", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "proposalIndex", - "type": "uint256" - } - ], - "name": "processProposal", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "sharesToBurn", - "type": "uint256" - }, - { - "name": "lootToBurn", - "type": "uint256" - } - ], - "name": "ragequit", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "sharesToBurn", - "type": "uint256" - }, - { - "name": "lootToBurn", - "type": "uint256" - }, - { - "name": "tokenList", - "type": "address[]" - } - ], - "name": "safeRagequit", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "proposalId", - "type": "uint256" - } - ], - "name": "cancelProposal", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getCurrentPeriod", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getProposalQueueLength", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "proposalId", - "type": "uint256" - } - ], - "name": "getProposalFlags", - "outputs": [ - { - "name": "", - "type": "bool[6]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "highestIndexYesVote", - "type": "uint256" - } - ], - "name": "canRagequit", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "startingPeriod", - "type": "uint256" - } - ], - "name": "hasVotingPeriodExpired", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "memberAddress", - "type": "address" - }, - { - "name": "proposalIndex", - "type": "uint256" - } - ], - "name": "getMemberProposalVote", - "outputs": [ - { - "name": "", - "type": "uint8" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"name\":\"applicant\",\"type\":\"address\"},{\"name\":\"proposer\",\"type\":\"address\"},{\"name\":\"sponsor\",\"type\":\"address\"},{\"name\":\"sharesRequested\",\"type\":\"uint256\"},{\"name\":\"lootRequested\",\"type\":\"uint256\"},{\"name\":\"tributeOffered\",\"type\":\"uint256\"},{\"name\":\"tributeToken\",\"type\":\"address\"},{\"name\":\"paymentRequested\",\"type\":\"uint256\"},{\"name\":\"paymentToken\",\"type\":\"address\"},{\"name\":\"startingPeriod\",\"type\":\"uint256\"},{\"name\":\"yesVotes\",\"type\":\"uint256\"},{\"name\":\"noVotes\",\"type\":\"uint256\"},{\"name\":\"details\",\"type\":\"string\"},{\"name\":\"maxTotalSharesAndLootAtYesVote\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"memberAddress\",\"type\":\"address\"},{\"name\":\"proposalIndex\",\"type\":\"uint256\"}],\"name\":\"getMemberProposalVote\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getCurrentPeriod\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"members\",\"outputs\":[{\"name\":\"delegateKey\",\"type\":\"address\"},{\"name\":\"shares\",\"type\":\"uint256\"},{\"name\":\"exists\",\"type\":\"bool\"},{\"name\":\"highestIndexYesVote\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sharesToBurn\",\"type\":\"uint256\"},{\"name\":\"lootToBurn\",\"type\":\"uint256\"}],\"name\":\"ragequit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"approvedTokens\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"emergencyProcessingWait\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalShares\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposalQueue\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"address\"}],\"name\":\"memberAddressByDelegateKey\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"emergencyWarning\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"applicant\",\"type\":\"address\"},{\"name\":\"sharesRequested\",\"type\":\"uint256\"},{\"name\":\"lootRequested\",\"type\":\"uint256\"},{\"name\":\"tributeOffered\",\"type\":\"uint256\"},{\"name\":\"tributeToken\",\"type\":\"address\"},{\"name\":\"paymentRequested\",\"type\":\"uint256\"},{\"name\":\"paymentToken\",\"type\":\"address\"},{\"name\":\"details\",\"type\":\"string\"}],\"name\":\"submitProposal\",\"outputs\":[{\"name\":\"proposalId\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"gracePeriodLength\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"result\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getProposalQueueLength\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"summoningTime\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"votingPeriodLength\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalDeposit\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"startingPeriod\",\"type\":\"uint256\"}],\"name\":\"hasVotingPeriodExpired\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"sponsorProposal\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"name\":\"uintVote\",\"type\":\"uint8\"}],\"name\":\"submitVote\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"highestIndexYesVote\",\"type\":\"uint256\"}],\"name\":\"canRagequit\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"guildBank\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"lastEmergencyProposalIndex\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"getProposalFlags\",\"outputs\":[{\"name\":\"\",\"type\":\"bool[6]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"periodDuration\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getProposal\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"depositToken\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"proposalCount\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"summoner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getResult\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"cancelProposal\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"proposalIndex\",\"type\":\"uint256\"}],\"name\":\"processProposal\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"sharesToBurn\",\"type\":\"uint256\"},{\"name\":\"lootToBurn\",\"type\":\"uint256\"},{\"name\":\"tokenList\",\"type\":\"address[]\"}],\"name\":\"safeRagequit\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_summoner\",\"type\":\"address\"},{\"name\":\"_approvedTokens\",\"type\":\"address[1]\"},{\"name\":\"_periodDuration\",\"type\":\"uint256\"},{\"name\":\"_votingPeriodLength\",\"type\":\"uint256\"},{\"name\":\"_gracePeriodLength\",\"type\":\"uint256\"},{\"name\":\"_emergencyProcessingWait\",\"type\":\"uint256\"},{\"name\":\"_bailoutWait\",\"type\":\"uint256\"},{\"name\":\"_proposalDeposit\",\"type\":\"uint256\"},{\"name\":\"_dilutionBound\",\"type\":\"uint256\"},{\"name\":\"_processingReward\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"delegateKey\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"memberAddress\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"applicant\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"sharesRequested\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"lootRequested\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"tributeOffered\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"tributeToken\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"paymentRequested\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"paymentToken\",\"type\":\"address\"}],\"name\":\"SubmitProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"delegateKey\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"memberAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"proposalQueueIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"startingPeriod\",\"type\":\"uint256\"}],\"name\":\"SponsorProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"delegateKey\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"memberAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"uintVote\",\"type\":\"uint8\"}],\"name\":\"SubmitVote\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"indexed\":true,\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"didPass\",\"type\":\"bool\"}],\"name\":\"ProcessProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"memberAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"sharesToBurn\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"lootToBurn\",\"type\":\"uint256\"}],\"name\":\"Ragequit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"applicantAddress\",\"type\":\"address\"}],\"name\":\"CancelProposal\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"memberAddress\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"newDelegateKey\",\"type\":\"address\"}],\"name\":\"UpdateDelegateKey\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"summoner\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"shares\",\"type\":\"uint256\"}],\"name\":\"SummonComplete\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{\"submitProposal(address,uint256,uint256,uint256,address,uint256,address,string)\":{\"notice\":\"***************\\r PROPOSAL FUNCTIONS\\r****************\"}}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Moloch.sol\":\"Moloch\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol\":{\"keccak256\":\"0xa8ace5b5ac3322c9019470d2a1ad1342ef5d984da3d4818554e703b65ceda667\",\"urls\":[\"bzzr://b38168eab9d05f21a7576958f33878d9d31877a12f1f14bda390f3f4fbdaa2a4\",\"dweb:/ipfs/QmWa9cX9gzUkyM9yVwfhd6FsSeh1jpV62sBzdGJm6jRPRX\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Moloch.sol\":{\"keccak256\":\"0x513f84a2202580d2febaa6ee6322d9e93fee98f8c0ad5b98892a73687d49a0df\",\"urls\":[\"bzzr://ab0c63e6894e94dc4f8d0560000d3be9e20b87081af342d666fb5229d5bccd98\",\"dweb:/ipfs/QmYXkCZAMiX3UG4sKAp7Ro3nvKBKBANbRNWRn8JkWH3Pdc\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol\":{\"keccak256\":\"0x8d08add2e57d2885eb9cda96d2ce54056015247de9adfea8e13c78bb2d9233f2\",\"urls\":[\"bzzr://24804e36486f935a9e98bf507193d1b160db755edba6c9d124a894aef3741ada\",\"dweb:/ipfs/QmauQVeYbGgqJDNxKAceFj1hFD1gfCfAXNBA8vCh3aGYKA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", - "bytecode": "0x608060405260006009819055600a819055600b805460ff19169055600c553480156200002a57600080fd5b506040516200365a3803806200365a83398181016040526101408110156200005157600080fd5b50805160408201516060830151608084015160a085015160c086015160e08701516101008801516101208901516000805460ff191660011790559798602001976001600160a01b038a166200010757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73756d6d6f6e65722063616e6e6f742062652030000000000000000000000000604482015290519081900360640190fd5b600088116200017757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5f706572696f644475726174696f6e2063616e6e6f7420626520300000000000604482015290519081900360640190fd5b60008711620001e757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5f766f74696e67506572696f644c656e6774682063616e6e6f74206265203000604482015290519081900360640190fd5b670de0b6b3a76400008711156200024a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180620036156021913960400191505060405180910390fd5b670de0b6b3a7640000861115620002c257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f5f6772616365506572696f644c656e6774682065786365656473206c696d6974604482015290519081900360640190fd5b600085116200031d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180620036366024913960400191505060405180910390fd5b60008054610100600160a81b0319166101006001600160a01b038d160217815589906020020151600780546001600160a01b0319166001600160a01b0390921691909117905560005b60018110156200044e5760008a82600181106200037f57fe5b60200201516001600160a01b03161415620003fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f5f617070726f766564546f6b656e2063616e6e6f742062652030000000000000604482015290519081900360640190fd5b600d8a82600181106200040a57fe5b6020908102919091015182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b03909316929092179091550162000366565b506040516200045d9062000586565b604051809103906000f0801580156200047a573d6000803e3d6000fd5b50600880546001600160a01b03199081166001600160a01b039384161790915560018a815560028a815560038a815560048a9055600588905542600655604080516080810182526000805461010090819004891680845260208085018981528587018a815260608701868152938652600e8352878620965187548d16908e161787559051868b015551978501805460ff19169815159890981790975551929094019190915580548390048716808252600f8552828220805490971617909555600a8490559354845193845293519304909316927f03995a801b13c36325306deef859ef977ce61c6e15a794281bf969d20482522792918290030190a25050505050505050505062000594565b61051880620030fd83390190565b612b5980620005a46000396000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80638b15a6051161011a578063b470aade116100ad578063dacaa9d11161007c578063dacaa9d1146106f4578063de292789146106fc578063e0a8f6f514610704578063e63bc62d14610721578063ec51b0bf1461073e57610206565b8063b470aade146106d4578063b9e2bea0146106dc578063c89039c5146106e4578063da35c664146106ec57610206565b8063a3dc3800116100e9578063a3dc380014610652578063a42afd291461066f578063a44a5e7e14610677578063b2643aab1461067f57610206565b80638b15a605146105ea5780639425a476146105f25780639746d9401461060f57806399653fbe1461062c57610206565b80633b214a741161019d57806363858f2d1161016c57806363858f2d146105c257806365372147146105ca578063797daf70146105d25780637d5b6c72146105da5780638340bbce146105e257610206565b80633b214a7414610483578063402c1794146104a0578063505afd74146104c6578063590f940b146104e257610206565b806315eb349e116101d957806315eb349e146104155780631dafede01461043a5780631e2362ec146104735780633a98ef391461047b57610206565b8063013cf08b1461020b578063044a0ca814610355578063086146d2146103a557806308ae4b0c146103bf575b600080fd5b6102286004803603602081101561022157600080fd5b50356107ed565b604051808f6001600160a01b03166001600160a01b031681526020018e6001600160a01b03166001600160a01b031681526020018d6001600160a01b03166001600160a01b031681526020018c81526020018b81526020018a8152602001896001600160a01b03166001600160a01b03168152602001888152602001876001600160a01b03166001600160a01b0316815260200186815260200185815260200184815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561030d5781810151838201526020016102f5565b50505050905090810190601f16801561033a5780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b6103816004803603604081101561036b57600080fd5b506001600160a01b038135169060200135610950565b6040518082600281111561039157fe5b60ff16815260200191505060405180910390f35b6103ad610a57565b60408051918252519081900360200190f35b6103e5600480360360208110156103d557600080fd5b50356001600160a01b0316610a86565b604080516001600160a01b0390951685526020850193909352901515838301526060830152519081900360800190f35b6104386004803603604081101561042b57600080fd5b5080359060200135610abd565b005b6104576004803603602081101561045057600080fd5b5035610bd3565b604080516001600160a01b039092168252519081900360200190f35b6103ad610bfa565b6103ad610c00565b6103ad6004803603602081101561049957600080fd5b5035610c06565b610457600480360360208110156104b657600080fd5b50356001600160a01b0316610c24565b6104ce610c3f565b604080519115158252519081900360200190f35b6103ad60048036036101008110156104f957600080fd5b6001600160a01b038235811692602081013592604082013592606083013592608081013582169260a08201359260c0830135169190810190610100810160e082013564010000000081111561054d57600080fd5b82018360208201111561055f57600080fd5b8035906020019184600183028401116401000000008311171561058157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c48945050505050565b6103ad610d83565b6103ad610d89565b6103ad610d8f565b6103ad610d95565b6103ad610d9b565b6103ad610da1565b6104ce6004803603602081101561060857600080fd5b5035610da7565b6104386004803603602081101561062557600080fd5b5035610dce565b6104386004803603604081101561064257600080fd5b508035906020013560ff166110f2565b6104ce6004803603602081101561066857600080fd5b50356114f8565b6104576115a1565b6103ad6115b0565b61069c6004803603602081101561069557600080fd5b50356115b6565b604051808260c080838360005b838110156106c15781810151838201526020016106a9565b5050505090500191505060405180910390f35b6103ad611620565b6103ad611626565b61045761162c565b6103ad61163b565b610457611641565b6103ad611655565b6104386004803603602081101561071a57600080fd5b503561165b565b6104386004803603602081101561073757600080fd5b50356118cb565b6104386004803603606081101561075457600080fd5b81359160208101359181019060608101604082013564010000000081111561077b57600080fd5b82018360208201111561078d57600080fd5b803590602001918460208302840111640100000000831117156107af57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611bc7945050505050565b60106020528060005260406000206000915090508060000160009054906101000a90046001600160a01b0316908060010160009054906101000a90046001600160a01b0316908060020160009054906101000a90046001600160a01b0316908060030154908060040154908060050154908060060160009054906101000a90046001600160a01b0316908060070154908060080160009054906101000a90046001600160a01b03169080600901549080600a01549080600b01549080600d018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109405780601f1061091557610100808354040283529160200191610940565b820191906000526020600020905b81548152906001019060200180831161092357829003601f168201915b50505050509080600e015490508e565b6001600160a01b0382166000908152600e602052604081206002015460ff166109b8576040805162461bcd60e51b81526020600482015260156024820152741b595b58995c88191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b6011548210610a08576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6010600060118481548110610a1957fe5b6000918252602080832090910154835282810193909352604091820181206001600160a01b0387168252600f0190925290205460ff16905092915050565b6000610a80600154610a7460065442611d1890919063ffffffff16565b9063ffffffff611d2d16565b90505b90565b600e6020526000908152604090208054600182015460028301546003909301546001600160a01b0390921692909160ff9091169084565b60005460ff16610b02576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600e6020526040902060010154610b5c576040805162461bcd60e51b815260206004820152600c60248201526b3737ba10309036b2b6b132b960a11b604482015290519081900360640190fd5b610bc2338383600d805480602002602001604051908101604052809291908181526020018280548015610bb857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b9a575b5050505050611d4f565b50506000805460ff19166001179055565b600d8181548110610be057fe5b6000918252602090912001546001600160a01b0316905081565b60045481565b600a5481565b60118181548110610c1357fe5b600091825260209091200154905081565b600f602052600090815260409020546001600160a01b031681565b600b5460ff1681565b6000805460ff16610c8e576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19169055670de0b6b3a7640000881115610cf5576040805162461bcd60e51b815260206004820152601960248201527f746f6f206d616e79207368617265732072657175657374656400000000000000604482015290519081900360640190fd5b6001600160a01b038916610d48576040805162461bcd60e51b815260206004820152601560248201527406170706c6963616e742063616e6e6f74206265203605c1b604482015290519081900360640190fd5b610d50612780565b610d618a8a8a8a8a8a8a8a89611f9b565b5050600954600019016000805460ff1916600117905598975050505050505050565b60035481565b60125481565b60115490565b60065481565b60025481565b60055481565b6000610dbe6002548361225c90919063ffffffff16565b610dc6610a57565b101592915050565b60005460ff16610e13576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600f60209081526040808320546001600160a01b03168352600e909152902060010154610e85576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b600081815260106020526040902060018101546001600160a01b0316610ef2576040805162461bcd60e51b815260206004820181905260248201527f70726f706f73616c206d7573742068617665206265656e2070726f706f736564604482015290519081900360640190fd5b600c81015460ff1615610f365760405162461bcd60e51b8152600401808060200182810382526023815260200180612a6a6023913960400191505060405180910390fd5b600c8101546301000000900460ff1615610f97576040805162461bcd60e51b815260206004820152601b60248201527f70726f706f73616c20686173206265656e2063616e63656c6c65640000000000604482015290519081900360640190fd5b600061100c6001611000610fa9610a57565b60115415610ff85760118054601091600091610fcc90600163ffffffff611d1816565b81548110610fd657fe5b9060005260206000200154815260200190815260200160002060090154610ffb565b60005b612275565b9063ffffffff61225c16565b60098301819055336000818152600f60205260408120546002860180546001600160a01b0319166001600160a01b039092169182179055600c8601805460ff19166001908117909155601180548083018255938190527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c689093018890559154939450928392917f2a383a979381335e3eb401ac01dd8083e024ff0256bf5338456ffc0063390bbd9188916110c09190611d18565b604080519283526020830191909152818101879052519081900360600190a350506000805460ff191660011790555050565b60005460ff16611137576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600f60209081526040808320546001600160a01b03168352600e9091529020600101546111a9576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b336000908152600f60209081526040808320546001600160a01b0316808452600e9092529091206011548410611220576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6000601060006011878154811061123357fe5b90600052602060002001548152602001908152602001600020905060038460ff161061129c576040805162461bcd60e51b81526020600482015260136024820152726d757374206265206c657373207468616e203360681b604482015290519081900360640190fd5b60008460ff1660028111156112ad57fe5b90506112bc8260090154610da7565b156112f85760405162461bcd60e51b8152600401808060200182810382526022815260200180612abd6022913960400191505060405180910390fd5b6001600160a01b0384166000908152600f8301602052604081205460ff16600281111561132157fe5b14611373576040805162461bcd60e51b815260206004820152601860248201527f6d656d6265722068617320616c726561647920766f7465640000000000000000604482015290519081900360640190fd5b600181600281111561138157fe5b14806113985750600281600281111561139657fe5b145b6113e9576040805162461bcd60e51b815260206004820152601d60248201527f766f7465206d7573742062652065697468657220596573206f72204e6f000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600f830160205260409020805482919060ff1916600183600281111561141a57fe5b0217905550600181600281111561142d57fe5b141561146a576001830154600a83015461144c9163ffffffff61225c16565b600a830155600383015486111561146557600383018690555b61149d565b600281600281111561147857fe5b141561149d576001830154600b8301546114979163ffffffff61225c16565b600b8301555b6040805160ff8716815290516001600160a01b03861691339189917f29bf0061f2faa9daa482f061b116195432d435536d8af4ae6b3c5dd78223679b919081900360200190a450506000805460ff1916600117905550505050565b601154600090821061154b576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b601060006011848154811061155c57fe5b90600052602060002001548152602001908152602001600020600c0160016006811061158457fe5b602081049091015460ff601f9092166101000a9004169050919050565b6008546001600160a01b031681565b600c5481565b6115be612780565b600082815260106020526040808220815160c081019283905292600c909101916006918390855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116115e5575094979650505050505050565b60015481565b60095490565b6007546001600160a01b031681565b60095481565b60005461010090046001600160a01b031681565b60125490565b60005460ff166116a0576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155818152601060205260409020600c81015460ff16156116fa5760405162461bcd60e51b8152600401808060200182810382526023815260200180612a6a6023913960400191505060405180910390fd5b600c8101546301000000900460ff16156117455760405162461bcd60e51b8152600401808060200182810382526023815260200180612adf6023913960400191505060405180910390fd5b60018101546001600160a01b031633146117a6576040805162461bcd60e51b815260206004820152601e60248201527f736f6c656c79207468652070726f706f7365722063616e2063616e63656c0000604482015290519081900360640190fd5b600c8101805463ff000000191663010000001790556006810154600182015460058301546040805163a9059cbb60e01b81526001600160a01b039384166004820152602481019290925251919092169163a9059cbb9160448083019260209291908290030181600087803b15801561181d57600080fd5b505af1158015611831573d6000803e3d6000fd5b505050506040513d602081101561184757600080fd5b50516118845760405162461bcd60e51b81526004018080602001828103825260248152602001806129f96024913960400191505060405180910390fd5b60408051338152905183917fc215fed6680bb02d323dc3f8b8f85241572607538426059c9232601bd293c3be919081900360200190a250506000805460ff19166001179055565b60005460ff16611910576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff191690556119238161228c565b60006011828154811061193257fe5b600091825260208083209190910154808352601090915260408220600c8101805461ff001916610100179055909250908061196c8561259d565b91509150670de0b6b3a76400006119928460030154600a5461225c90919063ffffffff16565b111561199d57600091505b8115611b74576001601255600c8301805462ff000019166201000017905582546001600160a01b03166000908152600e602052604090206002015460ff1615611a3357600383015483546001600160a01b03166000908152600e6020526040902060010154611a119163ffffffff61225c16565b83546001600160a01b03166000908152600e6020526040902060010155611b55565b82546001600160a01b039081166000908152600f60209081526040808320549093168252600e9052206002015460ff1615611ab75782546001600160a01b039081166000908152600f602090815260408083205490931680835283832080546001600160a01b03199081168317909155600e90925292909120805490911690911790555b6040805160808101825284546001600160a01b0390811680835260038088015460208086019182526001868801818152600060608901818152968152600e8452898120985189549089166001600160a01b0319918216178a559451928901929092555160028801805491151560ff19909216919091179055935195909201949094558754909216808252600f90925292909220805490911690911790555b6003830154600a54611b6c9163ffffffff61225c16565b600a55611b7a565b60026012555b6040805183151581529051859187917f86f74240ecee9e4230d26ff92e17fee978460d9c0f78f5c88b2864c9e7a494279181900360200190a350506000805460ff19166001179055505050565b60005460ff16611c0c576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600e6020526040902060010154611c66576040805162461bcd60e51b815260206004820152600c60248201526b3737ba10309036b2b6b132b960a11b604482015290519081900360640190fd5b60005b8151811015611cf9578015611cf157816001820381518110611c8757fe5b60200260200101516001600160a01b0316828281518110611ca457fe5b60200260200101516001600160a01b031611611cf15760405162461bcd60e51b8152600401808060200182810382526030815260200180612a8d6030913960400191505060405180910390fd5b600101611c69565b50611d0633848484611d4f565b50506000805460ff1916600117905550565b600082821115611d2757600080fd5b50900390565b6000808211611d3b57600080fd5b6000828481611d4657fe5b04949350505050565b600a54600090611d65908263ffffffff61225c16565b6001600160a01b0386166000908152600e60205260409020600181015491925090851115611dd0576040805162461bcd60e51b8152602060048201526013602482015272696e73756666696369656e742073686172657360681b604482015290519081900360640190fd5b611ddd81600301546114f8565b611e185760405162461bcd60e51b815260040180806020018281038252604d8152602001806129ac604d913960600191505060405180910390fd5b6001810154611e2d908663ffffffff611d1816565b6001820155600a54611e45908663ffffffff611d1816565b600a5560085460405163732c8f5760e01b81526001600160a01b03888116600483019081526024830189905260448301869052608060648401908152875160848501528751929094169363732c8f57938b938b9389938b939192909160a401906020808601910280838360005b83811015611eca578181015183820152602001611eb2565b5050505090500195505050505050602060405180830381600087803b158015611ef257600080fd5b505af1158015611f06573d6000803e3d6000fd5b505050506040513d6020811015611f1c57600080fd5b5051611f595760405162461bcd60e51b815260040180806020018281038252602a815260200180612a40602a913960400191505060405180910390fd5b6040805186815260208101869052815133927fcad1a1c68982832d9abc314de8a1e5d5e8c81b0588961e360766736d10c3be1a928290030190a2505050505050565b611fa361279e565b604051806101e001604052808b6001600160a01b03168152602001336001600160a01b0316815260200160006001600160a01b031681526020018a8152602001898152602001888152602001876001600160a01b03168152602001868152602001856001600160a01b03168152602001600081526020016000815260200160008152602001838152602001848152602001600081525090508060106000600954815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060e082015181600701556101008201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c01906006612194929190612847565b506101a082015180516121b191600d8401916020909101906128d9565b506101c09190910151600e90910155336000818152600f60209081526040918290205460095483519081529182018d90528183018c9052606082018b90526001600160a01b038a8116608084015260a083018a905288811660c0840152925190831693928e1692849290917f1facc413faf060d5cc5c8bc12d8fe29e5c530eb98e2475c76733ec749787a7509181900360e00190a45050600980546001019055505050505050505050565b60008282018381101561226e57600080fd5b9392505050565b600081831015612285578161226e565b5090919050565b60115481106122dc576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6122e461279e565b60106000601184815481106122f557fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116123cb57505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815293820193929183018282801561248e5780601f106124635761010080835404028352916020019161248e565b820191906000526020600020905b81548152906001019060200180831161247157829003601f168201915b50505050508152602001600e8201548152505090508061018001516001600681106124b557fe5b6020020151156124f65760405162461bcd60e51b8152600401808060200182810382526023815260200180612b026023913960400191505060405180910390fd5b81158061255e575060106000601161251585600163ffffffff611d1816565b8154811061251f57fe5b90600052602060002001548152602001908152602001600020600c0160016006811061254757fe5b602081049091015460ff601f9092166101000a9004165b6125995760405162461bcd60e51b8152600401808060200182810382526023815260200180612a1d6023913960400191505060405180910390fd5b5050565b6000806125a861279e565b60106000601186815481106125b957fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff16151581526020600192830181810494850194909303909202910180841161268f57505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529382019392918301828280156127525780601f1061272757610100808354040283529160200191612752565b820191906000526020600020905b81548152906001019060200180831161273557829003601f168201915b5050509183525050600e91909101546020909101526101608101516101409091015111946000945092505050565b6040518060c001604052806006906020820280388339509192915050565b60405180610280016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001612833612780565b815260200160608152602001600081525090565b6001830191839082156128c95791602002820160005b8382111561289a57835183826101000a81548160ff021916908315150217905550926020019260010160208160000104928301926001030261285d565b80156128c75782816101000a81549060ff021916905560010160208160000104928301926001030261289a565b505b506128d5929150612953565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061291a57805160ff1916838001178555612947565b82800160010185558215612947579182015b8281111561294757825182559160200191906001019061292c565b506128d5929150612971565b610a8391905b808211156128d557805460ff19168155600101612959565b610a8391905b808211156128d5576000815560010161297756fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c0063616e6e6f7420726167657175697420756e74696c206869676865737420696e6465782070726f706f73616c206d656d62657220766f74656420594553206f6e2069732070726f6365737365646661696c656420746f2072657475726e207472696275746520746f2070726f706f73657270726576696f75732070726f706f73616c206d7573742062652070726f6365737365647769746864726177616c206f6620746f6b656e732066726f6d206775696c6442616e6b206661696c656470726f706f73616c2068617320616c7265616479206265656e2073706f6e736f726564746f6b656e206c697374206d75737420626520756e6971756520616e6420696e20617363656e64696e67206f7264657270726f706f73616c20766f74696e6720706572696f6420686173206578706972656470726f706f73616c2068617320616c7265616479206265656e2063616e63656c6c656470726f706f73616c2068617320616c7265616479206265656e2070726f636573736564a265627a7a72305820ffa2b7b09108c0ac06fc33e0ae4aec417565e7d3add4b822bd5cf908cea7f29864736f6c63430005090032608060405234801561001057600080fd5b50600080546001600160a01b031916331790556104e6806100326000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301e3366714610046578063732c8f57146100905780638da5cb5b1461014f575b600080fd5b61007c6004803603606081101561005c57600080fd5b506001600160a01b03813581169160208101359091169060400135610173565b604080519115158252519081900360200190f35b61007c600480360360808110156100a657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156100dd57600080fd5b8201836020820111156100ef57600080fd5b8035906020019184602083028401116401000000008311171561011157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061026c945050505050565b61015761044e565b604080516001600160a01b039092168252519081900360200190f35b600080546001600160a01b0316331461018b57600080fd5b836001600160a01b0316836001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398846040518082815260200191505060405180910390a3836001600160a01b031663a9059cbb84846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561023657600080fd5b505af115801561024a573d6000803e3d6000fd5b505050506040513d602081101561026057600080fd5b505190505b9392505050565b600080546001600160a01b0316331461028457600080fd5b60005b82518110156104425760006103318483815181106102a157fe5b60200260200101516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156102fe57600080fd5b505afa158015610312573d6000803e3d6000fd5b505050506040513d602081101561032857600080fd5b5051878761045d565b905083828151811061033f57fe5b60200260200101516001600160a01b0316876001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398836040518082815260200191505060405180910390a383828151811061039d57fe5b60200260200101516001600160a01b031663a9059cbb88836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b505050506040513d602081101561042e57600080fd5b505161043957600080fd5b50600101610287565b50600195945050505050565b6000546001600160a01b031681565b60008161046957600080fd5b8361047657506000610265565b8383028385828161048357fe5b04141561049c5782818161049357fe5b04915050610265565b838386816104a657fe5b04029594505050505056fea265627a7a72305820600a90e68081feae486f77ec58352ebe4f959e2362fac128a8d418122da6121464736f6c634300050900325f766f74696e67506572696f644c656e6774682065786365656473206c696d69745f656d657267656e637950726f63657373696e67576169742063616e6e6f742062652030", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106102065760003560e01c80638b15a6051161011a578063b470aade116100ad578063dacaa9d11161007c578063dacaa9d1146106f4578063de292789146106fc578063e0a8f6f514610704578063e63bc62d14610721578063ec51b0bf1461073e57610206565b8063b470aade146106d4578063b9e2bea0146106dc578063c89039c5146106e4578063da35c664146106ec57610206565b8063a3dc3800116100e9578063a3dc380014610652578063a42afd291461066f578063a44a5e7e14610677578063b2643aab1461067f57610206565b80638b15a605146105ea5780639425a476146105f25780639746d9401461060f57806399653fbe1461062c57610206565b80633b214a741161019d57806363858f2d1161016c57806363858f2d146105c257806365372147146105ca578063797daf70146105d25780637d5b6c72146105da5780638340bbce146105e257610206565b80633b214a7414610483578063402c1794146104a0578063505afd74146104c6578063590f940b146104e257610206565b806315eb349e116101d957806315eb349e146104155780631dafede01461043a5780631e2362ec146104735780633a98ef391461047b57610206565b8063013cf08b1461020b578063044a0ca814610355578063086146d2146103a557806308ae4b0c146103bf575b600080fd5b6102286004803603602081101561022157600080fd5b50356107ed565b604051808f6001600160a01b03166001600160a01b031681526020018e6001600160a01b03166001600160a01b031681526020018d6001600160a01b03166001600160a01b031681526020018c81526020018b81526020018a8152602001896001600160a01b03166001600160a01b03168152602001888152602001876001600160a01b03166001600160a01b0316815260200186815260200185815260200184815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561030d5781810151838201526020016102f5565b50505050905090810190601f16801561033a5780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b6103816004803603604081101561036b57600080fd5b506001600160a01b038135169060200135610950565b6040518082600281111561039157fe5b60ff16815260200191505060405180910390f35b6103ad610a57565b60408051918252519081900360200190f35b6103e5600480360360208110156103d557600080fd5b50356001600160a01b0316610a86565b604080516001600160a01b0390951685526020850193909352901515838301526060830152519081900360800190f35b6104386004803603604081101561042b57600080fd5b5080359060200135610abd565b005b6104576004803603602081101561045057600080fd5b5035610bd3565b604080516001600160a01b039092168252519081900360200190f35b6103ad610bfa565b6103ad610c00565b6103ad6004803603602081101561049957600080fd5b5035610c06565b610457600480360360208110156104b657600080fd5b50356001600160a01b0316610c24565b6104ce610c3f565b604080519115158252519081900360200190f35b6103ad60048036036101008110156104f957600080fd5b6001600160a01b038235811692602081013592604082013592606083013592608081013582169260a08201359260c0830135169190810190610100810160e082013564010000000081111561054d57600080fd5b82018360208201111561055f57600080fd5b8035906020019184600183028401116401000000008311171561058157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c48945050505050565b6103ad610d83565b6103ad610d89565b6103ad610d8f565b6103ad610d95565b6103ad610d9b565b6103ad610da1565b6104ce6004803603602081101561060857600080fd5b5035610da7565b6104386004803603602081101561062557600080fd5b5035610dce565b6104386004803603604081101561064257600080fd5b508035906020013560ff166110f2565b6104ce6004803603602081101561066857600080fd5b50356114f8565b6104576115a1565b6103ad6115b0565b61069c6004803603602081101561069557600080fd5b50356115b6565b604051808260c080838360005b838110156106c15781810151838201526020016106a9565b5050505090500191505060405180910390f35b6103ad611620565b6103ad611626565b61045761162c565b6103ad61163b565b610457611641565b6103ad611655565b6104386004803603602081101561071a57600080fd5b503561165b565b6104386004803603602081101561073757600080fd5b50356118cb565b6104386004803603606081101561075457600080fd5b81359160208101359181019060608101604082013564010000000081111561077b57600080fd5b82018360208201111561078d57600080fd5b803590602001918460208302840111640100000000831117156107af57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611bc7945050505050565b60106020528060005260406000206000915090508060000160009054906101000a90046001600160a01b0316908060010160009054906101000a90046001600160a01b0316908060020160009054906101000a90046001600160a01b0316908060030154908060040154908060050154908060060160009054906101000a90046001600160a01b0316908060070154908060080160009054906101000a90046001600160a01b03169080600901549080600a01549080600b01549080600d018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109405780601f1061091557610100808354040283529160200191610940565b820191906000526020600020905b81548152906001019060200180831161092357829003601f168201915b50505050509080600e015490508e565b6001600160a01b0382166000908152600e602052604081206002015460ff166109b8576040805162461bcd60e51b81526020600482015260156024820152741b595b58995c88191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b6011548210610a08576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6010600060118481548110610a1957fe5b6000918252602080832090910154835282810193909352604091820181206001600160a01b0387168252600f0190925290205460ff16905092915050565b6000610a80600154610a7460065442611d1890919063ffffffff16565b9063ffffffff611d2d16565b90505b90565b600e6020526000908152604090208054600182015460028301546003909301546001600160a01b0390921692909160ff9091169084565b60005460ff16610b02576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600e6020526040902060010154610b5c576040805162461bcd60e51b815260206004820152600c60248201526b3737ba10309036b2b6b132b960a11b604482015290519081900360640190fd5b610bc2338383600d805480602002602001604051908101604052809291908181526020018280548015610bb857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b9a575b5050505050611d4f565b50506000805460ff19166001179055565b600d8181548110610be057fe5b6000918252602090912001546001600160a01b0316905081565b60045481565b600a5481565b60118181548110610c1357fe5b600091825260209091200154905081565b600f602052600090815260409020546001600160a01b031681565b600b5460ff1681565b6000805460ff16610c8e576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19169055670de0b6b3a7640000881115610cf5576040805162461bcd60e51b815260206004820152601960248201527f746f6f206d616e79207368617265732072657175657374656400000000000000604482015290519081900360640190fd5b6001600160a01b038916610d48576040805162461bcd60e51b815260206004820152601560248201527406170706c6963616e742063616e6e6f74206265203605c1b604482015290519081900360640190fd5b610d50612780565b610d618a8a8a8a8a8a8a8a89611f9b565b5050600954600019016000805460ff1916600117905598975050505050505050565b60035481565b60125481565b60115490565b60065481565b60025481565b60055481565b6000610dbe6002548361225c90919063ffffffff16565b610dc6610a57565b101592915050565b60005460ff16610e13576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600f60209081526040808320546001600160a01b03168352600e909152902060010154610e85576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b600081815260106020526040902060018101546001600160a01b0316610ef2576040805162461bcd60e51b815260206004820181905260248201527f70726f706f73616c206d7573742068617665206265656e2070726f706f736564604482015290519081900360640190fd5b600c81015460ff1615610f365760405162461bcd60e51b8152600401808060200182810382526023815260200180612a6a6023913960400191505060405180910390fd5b600c8101546301000000900460ff1615610f97576040805162461bcd60e51b815260206004820152601b60248201527f70726f706f73616c20686173206265656e2063616e63656c6c65640000000000604482015290519081900360640190fd5b600061100c6001611000610fa9610a57565b60115415610ff85760118054601091600091610fcc90600163ffffffff611d1816565b81548110610fd657fe5b9060005260206000200154815260200190815260200160002060090154610ffb565b60005b612275565b9063ffffffff61225c16565b60098301819055336000818152600f60205260408120546002860180546001600160a01b0319166001600160a01b039092169182179055600c8601805460ff19166001908117909155601180548083018255938190527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c689093018890559154939450928392917f2a383a979381335e3eb401ac01dd8083e024ff0256bf5338456ffc0063390bbd9188916110c09190611d18565b604080519283526020830191909152818101879052519081900360600190a350506000805460ff191660011790555050565b60005460ff16611137576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600f60209081526040808320546001600160a01b03168352600e9091529020600101546111a9576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b336000908152600f60209081526040808320546001600160a01b0316808452600e9092529091206011548410611220576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6000601060006011878154811061123357fe5b90600052602060002001548152602001908152602001600020905060038460ff161061129c576040805162461bcd60e51b81526020600482015260136024820152726d757374206265206c657373207468616e203360681b604482015290519081900360640190fd5b60008460ff1660028111156112ad57fe5b90506112bc8260090154610da7565b156112f85760405162461bcd60e51b8152600401808060200182810382526022815260200180612abd6022913960400191505060405180910390fd5b6001600160a01b0384166000908152600f8301602052604081205460ff16600281111561132157fe5b14611373576040805162461bcd60e51b815260206004820152601860248201527f6d656d6265722068617320616c726561647920766f7465640000000000000000604482015290519081900360640190fd5b600181600281111561138157fe5b14806113985750600281600281111561139657fe5b145b6113e9576040805162461bcd60e51b815260206004820152601d60248201527f766f7465206d7573742062652065697468657220596573206f72204e6f000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600f830160205260409020805482919060ff1916600183600281111561141a57fe5b0217905550600181600281111561142d57fe5b141561146a576001830154600a83015461144c9163ffffffff61225c16565b600a830155600383015486111561146557600383018690555b61149d565b600281600281111561147857fe5b141561149d576001830154600b8301546114979163ffffffff61225c16565b600b8301555b6040805160ff8716815290516001600160a01b03861691339189917f29bf0061f2faa9daa482f061b116195432d435536d8af4ae6b3c5dd78223679b919081900360200190a450506000805460ff1916600117905550505050565b601154600090821061154b576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b601060006011848154811061155c57fe5b90600052602060002001548152602001908152602001600020600c0160016006811061158457fe5b602081049091015460ff601f9092166101000a9004169050919050565b6008546001600160a01b031681565b600c5481565b6115be612780565b600082815260106020526040808220815160c081019283905292600c909101916006918390855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116115e5575094979650505050505050565b60015481565b60095490565b6007546001600160a01b031681565b60095481565b60005461010090046001600160a01b031681565b60125490565b60005460ff166116a0576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155818152601060205260409020600c81015460ff16156116fa5760405162461bcd60e51b8152600401808060200182810382526023815260200180612a6a6023913960400191505060405180910390fd5b600c8101546301000000900460ff16156117455760405162461bcd60e51b8152600401808060200182810382526023815260200180612adf6023913960400191505060405180910390fd5b60018101546001600160a01b031633146117a6576040805162461bcd60e51b815260206004820152601e60248201527f736f6c656c79207468652070726f706f7365722063616e2063616e63656c0000604482015290519081900360640190fd5b600c8101805463ff000000191663010000001790556006810154600182015460058301546040805163a9059cbb60e01b81526001600160a01b039384166004820152602481019290925251919092169163a9059cbb9160448083019260209291908290030181600087803b15801561181d57600080fd5b505af1158015611831573d6000803e3d6000fd5b505050506040513d602081101561184757600080fd5b50516118845760405162461bcd60e51b81526004018080602001828103825260248152602001806129f96024913960400191505060405180910390fd5b60408051338152905183917fc215fed6680bb02d323dc3f8b8f85241572607538426059c9232601bd293c3be919081900360200190a250506000805460ff19166001179055565b60005460ff16611910576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff191690556119238161228c565b60006011828154811061193257fe5b600091825260208083209190910154808352601090915260408220600c8101805461ff001916610100179055909250908061196c8561259d565b91509150670de0b6b3a76400006119928460030154600a5461225c90919063ffffffff16565b111561199d57600091505b8115611b74576001601255600c8301805462ff000019166201000017905582546001600160a01b03166000908152600e602052604090206002015460ff1615611a3357600383015483546001600160a01b03166000908152600e6020526040902060010154611a119163ffffffff61225c16565b83546001600160a01b03166000908152600e6020526040902060010155611b55565b82546001600160a01b039081166000908152600f60209081526040808320549093168252600e9052206002015460ff1615611ab75782546001600160a01b039081166000908152600f602090815260408083205490931680835283832080546001600160a01b03199081168317909155600e90925292909120805490911690911790555b6040805160808101825284546001600160a01b0390811680835260038088015460208086019182526001868801818152600060608901818152968152600e8452898120985189549089166001600160a01b0319918216178a559451928901929092555160028801805491151560ff19909216919091179055935195909201949094558754909216808252600f90925292909220805490911690911790555b6003830154600a54611b6c9163ffffffff61225c16565b600a55611b7a565b60026012555b6040805183151581529051859187917f86f74240ecee9e4230d26ff92e17fee978460d9c0f78f5c88b2864c9e7a494279181900360200190a350506000805460ff19166001179055505050565b60005460ff16611c0c576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600e6020526040902060010154611c66576040805162461bcd60e51b815260206004820152600c60248201526b3737ba10309036b2b6b132b960a11b604482015290519081900360640190fd5b60005b8151811015611cf9578015611cf157816001820381518110611c8757fe5b60200260200101516001600160a01b0316828281518110611ca457fe5b60200260200101516001600160a01b031611611cf15760405162461bcd60e51b8152600401808060200182810382526030815260200180612a8d6030913960400191505060405180910390fd5b600101611c69565b50611d0633848484611d4f565b50506000805460ff1916600117905550565b600082821115611d2757600080fd5b50900390565b6000808211611d3b57600080fd5b6000828481611d4657fe5b04949350505050565b600a54600090611d65908263ffffffff61225c16565b6001600160a01b0386166000908152600e60205260409020600181015491925090851115611dd0576040805162461bcd60e51b8152602060048201526013602482015272696e73756666696369656e742073686172657360681b604482015290519081900360640190fd5b611ddd81600301546114f8565b611e185760405162461bcd60e51b815260040180806020018281038252604d8152602001806129ac604d913960600191505060405180910390fd5b6001810154611e2d908663ffffffff611d1816565b6001820155600a54611e45908663ffffffff611d1816565b600a5560085460405163732c8f5760e01b81526001600160a01b03888116600483019081526024830189905260448301869052608060648401908152875160848501528751929094169363732c8f57938b938b9389938b939192909160a401906020808601910280838360005b83811015611eca578181015183820152602001611eb2565b5050505090500195505050505050602060405180830381600087803b158015611ef257600080fd5b505af1158015611f06573d6000803e3d6000fd5b505050506040513d6020811015611f1c57600080fd5b5051611f595760405162461bcd60e51b815260040180806020018281038252602a815260200180612a40602a913960400191505060405180910390fd5b6040805186815260208101869052815133927fcad1a1c68982832d9abc314de8a1e5d5e8c81b0588961e360766736d10c3be1a928290030190a2505050505050565b611fa361279e565b604051806101e001604052808b6001600160a01b03168152602001336001600160a01b0316815260200160006001600160a01b031681526020018a8152602001898152602001888152602001876001600160a01b03168152602001868152602001856001600160a01b03168152602001600081526020016000815260200160008152602001838152602001848152602001600081525090508060106000600954815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060e082015181600701556101008201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c01906006612194929190612847565b506101a082015180516121b191600d8401916020909101906128d9565b506101c09190910151600e90910155336000818152600f60209081526040918290205460095483519081529182018d90528183018c9052606082018b90526001600160a01b038a8116608084015260a083018a905288811660c0840152925190831693928e1692849290917f1facc413faf060d5cc5c8bc12d8fe29e5c530eb98e2475c76733ec749787a7509181900360e00190a45050600980546001019055505050505050505050565b60008282018381101561226e57600080fd5b9392505050565b600081831015612285578161226e565b5090919050565b60115481106122dc576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6122e461279e565b60106000601184815481106122f557fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116123cb57505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815293820193929183018282801561248e5780601f106124635761010080835404028352916020019161248e565b820191906000526020600020905b81548152906001019060200180831161247157829003601f168201915b50505050508152602001600e8201548152505090508061018001516001600681106124b557fe5b6020020151156124f65760405162461bcd60e51b8152600401808060200182810382526023815260200180612b026023913960400191505060405180910390fd5b81158061255e575060106000601161251585600163ffffffff611d1816565b8154811061251f57fe5b90600052602060002001548152602001908152602001600020600c0160016006811061254757fe5b602081049091015460ff601f9092166101000a9004165b6125995760405162461bcd60e51b8152600401808060200182810382526023815260200180612a1d6023913960400191505060405180910390fd5b5050565b6000806125a861279e565b60106000601186815481106125b957fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff16151581526020600192830181810494850194909303909202910180841161268f57505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529382019392918301828280156127525780601f1061272757610100808354040283529160200191612752565b820191906000526020600020905b81548152906001019060200180831161273557829003601f168201915b5050509183525050600e91909101546020909101526101608101516101409091015111946000945092505050565b6040518060c001604052806006906020820280388339509192915050565b60405180610280016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001612833612780565b815260200160608152602001600081525090565b6001830191839082156128c95791602002820160005b8382111561289a57835183826101000a81548160ff021916908315150217905550926020019260010160208160000104928301926001030261285d565b80156128c75782816101000a81549060ff021916905560010160208160000104928301926001030261289a565b505b506128d5929150612953565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061291a57805160ff1916838001178555612947565b82800160010185558215612947579182015b8281111561294757825182559160200191906001019061292c565b506128d5929150612971565b610a8391905b808211156128d557805460ff19168155600101612959565b610a8391905b808211156128d5576000815560010161297756fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c0063616e6e6f7420726167657175697420756e74696c206869676865737420696e6465782070726f706f73616c206d656d62657220766f74656420594553206f6e2069732070726f6365737365646661696c656420746f2072657475726e207472696275746520746f2070726f706f73657270726576696f75732070726f706f73616c206d7573742062652070726f6365737365647769746864726177616c206f6620746f6b656e732066726f6d206775696c6442616e6b206661696c656470726f706f73616c2068617320616c7265616479206265656e2073706f6e736f726564746f6b656e206c697374206d75737420626520756e6971756520616e6420696e20617363656e64696e67206f7264657270726f706f73616c20766f74696e6720706572696f6420686173206578706972656470726f706f73616c2068617320616c7265616479206265656e2063616e63656c6c656470726f706f73616c2068617320616c7265616479206265656e2070726f636573736564a265627a7a72305820ffa2b7b09108c0ac06fc33e0ae4aec417565e7d3add4b822bd5cf908cea7f29864736f6c63430005090032", - "sourceMap": "157:32734:15:-;;;3275:1;3244:32;;;;3312:30;;;;3456:36;;;-1:-1:-1;;3456:36:15;;;3555:45;;6709:2573;5:2:-1;;;;30:1;27;20:12;5:2;6709:2573:15;;;;;;;;;;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;6709:2573:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1229:11:21;:18;;-1:-1:-1;;1229:18:21;1243:4;1229:18;;;6709:2573:15;;;;;-1:-1:-1;;;;;7113:23:15;;7105:56;;;;;-1:-1:-1;;;7105:56:15;;;;;;;;;;;;-1:-1:-1;;;7105:56:15;;;;;;;;;;;;;;;7198:1;7180:15;:19;7172:59;;;;;-1:-1:-1;;;7172:59:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;7272:1;7250:19;:23;7242:67;;;;;-1:-1:-1;;;7242:67:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;1620:6;7328:19;:47;;7320:93;;;;-1:-1:-1;;;7320:93:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1711:6;7432:18;:45;;7424:90;;;;;-1:-1:-1;;;7424:90:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7560:1;7533:24;:28;7525:77;;;;-1:-1:-1;;;7525:77:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8184:8;:20;;-1:-1:-1;;;;;;8184:20:15;-1:-1:-1;;;;;;8184:20:15;;;;;;;;;;;;;8239:18;;8217:12;:41;;-1:-1:-1;;;;;;8217:41:15;;;;;;;;8271:360;8295:22;8291:1;:26;8271:360;;;8377:1;8347:15;8363:1;8347:18;;;;;;;;;;;-1:-1:-1;;;;;8347:32:15;;;8339:71;;;;;-1:-1:-1;;;8339:71:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;8572:14;8599:15;8615:1;8599:18;;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;-1:-1;8572:47:15;;;;;;;;;;;;-1:-1:-1;;;;;;8572:47:15;-1:-1:-1;;;;;8572:47:15;;;;;;;;;;8319:3;8271:360;;;;8655:15;;;;;:::i;:::-;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;8643:9:15;:27;;-1:-1:-1;;;;;;8643:27:15;;;-1:-1:-1;;;;;8643:27:15;;;;;;;-1:-1:-1;8683:32:15;;;8726:18;:40;;;8777:17;:38;;;8826:23;:50;;;-1:-1:-1;8926:34:15;;;9081:3;-1:-1:-1;9065:19:15;9117:28;;;;;;;;-1:-1:-1;9124:8:15;;8643:27;9124:8;;;;;;9117:28;;;;;;;;;;;;;;;;;;;;;;9097:17;;;:7;:17;;;;;:48;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9097:48:15;;;;;;;;;;;;;;;;;;;;9195:8;;;;;;;9156:36;;;:26;:36;;;;;:47;;;;;;;;;9214:11;:15;;;9262:8;;9247:27;;;;;;;9262:8;;;;;;9247:27;;;;;;;;;6709:2573;;;;;;;;;;157:32734;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "157:32734:15:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;157:32734:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6231:45;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6231:45:15;;:::i;:::-;;;;;-1:-1:-1;;;;;6231:45:15;-1:-1:-1;;;;;6231:45:15;;;;;;-1:-1:-1;;;;;6231:45:15;-1:-1:-1;;;;;6231:45:15;;;;;;-1:-1:-1;;;;;6231:45:15;-1:-1:-1;;;;;6231:45:15;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6231:45:15;-1:-1:-1;;;;;6231:45:15;;;;;;;;;;;-1:-1:-1;;;;;6231:45:15;-1:-1:-1;;;;;6231:45:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;6231:45:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;32533:355;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32533:355:15;;-1:-1:-1;;;;;32533:355:15;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30844:126;;;:::i;:::-;;;;;;;;;;;;;;;;6113:41;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6113:41:15;-1:-1:-1;;;;;6113:41:15;;:::i;:::-;;;;-1:-1:-1;;;;;6113:41:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25972:173;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;25972:173:15;;;;;;;:::i;:::-;;5957:30;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;5957:30:15;;:::i;:::-;;;;-1:-1:-1;;;;;5957:30:15;;;;;;;;;;;;;;630:38;;;:::i;3312:30::-;;;:::i;6285:::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6285:30:15;;:::i;6161:61::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;6161:61:15;-1:-1:-1;;;;;6161:61:15;;:::i;3456:36::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;9362:1339;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;9362:1339:15;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9362:1339:15;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;9362:1339:15;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;9362:1339:15;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;9362:1339:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;9362:1339:15;;-1:-1:-1;9362:1339:15;;-1:-1:-1;;;;;9362:1339:15:i;558:32::-;;;:::i;17320:21::-;;;:::i;30978:110::-;;;:::i;1128:28::-;;;:::i;485:33::-;;;:::i;777:30::-;;;:::i;32356:169::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;32356:169:15;;:::i;13399:2010::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13399:2010:15;;:::i;15521:1793::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15521:1793:15;;;;;;;;;:::i;31325:246::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31325:246:15;;:::i;1292:26::-;;;:::i;3555:45::-;;;:::i;31096:136::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;31096:136:15;;:::i;:::-;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;31096:136:15;;;;;;;;;;;;;;;;387:29;;;:::i;15415:92::-;;;:::i;1207:26::-;;;:::i;3244:32::-;;;:::i;300:23::-;;;:::i;17348:114::-;;;:::i;29122:650::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;29122:650:15;;:::i;17470:3550::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17470:3550:15;;:::i;26153:580::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;26153:580:15;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;26153:580:15;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;26153:580:15;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;26153:580:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;26153:580:15;;-1:-1:-1;26153:580:15;;-1:-1:-1;;;;;26153:580:15:i;6231:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6231:45:15;;;;;;;;;;;;;-1:-1:-1;;;;;6231:45:15;;;;;;;;;;;;;-1:-1:-1;;;;;6231:45:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6231:45:15;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6231:45:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;32533:355::-;-1:-1:-1;;;;;32656:22:15;;32631:4;32656:22;;;:7;:22;;;;;:29;;;;;32648:63;;;;;-1:-1:-1;;;32648:63:15;;;;;;;;;;;;-1:-1:-1;;;32648:63:15;;;;;;;;;;;;;;;32746:13;:20;32730:36;;32722:72;;;;;-1:-1:-1;;;32722:72:15;;;;;;;;;;;;-1:-1:-1;;;32722:72:15;;;;;;;;;;;;;;;32812:9;:39;32822:13;32836;32822:28;;;;;;;;;;;;;;;;;;;;32812:39;;;;;;;;;;;;;;;-1:-1:-1;;;;;32812:68:15;;;;:53;;:68;;;;;;;;;-1:-1:-1;32533:355:15;;;;:::o;30844:126::-;30893:7;30920:42;30947:14;;30920:22;30928:13;;30920:3;:7;;:22;;;;:::i;:::-;:26;:42;:26;:42;:::i;:::-;30913:49;;30844:126;;:::o;6113:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6113:41:15;;;;;;;;;;;;:::o;25972:173::-;1754:11:21;;;;1746:55;;;;;-1:-1:-1;;;1746:55:21;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1746:55:21;;;;;;;;;;;;;;;1893:5;1879:19;;-1:-1:-1;;1879:19:21;;;6371:10:15;6363:19;;:7;:19;;;;;-1:-1:-1;6363:26:15;;6355:56;;;;;-1:-1:-1;;;6355:56:15;;;;;;;;;;;;-1:-1:-1;;;6355:56:15;;;;;;;;;;;;;;;26074:63;26084:10;26096:12;26110:10;26122:14;26074:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;26074:63:15;;;-1:-1:-1;26074:63:15;;;;;;;;;;;;;;;;;:9;:63::i;:::-;-1:-1:-1;;2059:11:21;:18;;-1:-1:-1;;2059:18:21;2073:4;2059:18;;;25972:173:15:o;5957:30::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5957:30:15;;-1:-1:-1;5957:30:15;:::o;630:38::-;;;;:::o;3312:30::-;;;;:::o;6285:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6285:30:15;:::o;6161:61::-;;;;;;;;;;;;-1:-1:-1;;;;;6161:61:15;;:::o;3456:36::-;;;;;;:::o;9362:1339::-;9678:18;1754:11:21;;;;1746:55;;;;;-1:-1:-1;;;1746:55:21;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1746:55:21;;;;;;;;;;;;;;;1893:5;1879:19;;-1:-1:-1;;1879:19:21;;;2028:6:15;9717:39;;;9709:77;;;;;-1:-1:-1;;;9709:77:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9970:23:15;;9962:57;;;;;-1:-1:-1;;;9962:57:15;;;;;;;;;;;;-1:-1:-1;;;9962:57:15;;;;;;;;;;;;;;;10359:20;;:::i;:::-;10460:136;10476:9;10487:15;10504:13;10519:14;10535:12;10549:16;10567:12;10581:7;10590:5;10460:15;:136::i;:::-;-1:-1:-1;;10614:13:15;;-1:-1:-1;;10614:17:15;2059:11:21;:18;;-1:-1:-1;;2059:18:21;2073:4;2059:18;;;9362:1339:15;;-1:-1:-1;;;;;;;;9362:1339:15:o;558:32::-;;;;:::o;17320:21::-;;;;:::o;30978:110::-;31060:13;:20;30978:110;:::o;1128:28::-;;;;:::o;485:33::-;;;;:::o;777:30::-;;;;:::o;32356:169::-;32433:4;32479:38;32498:18;;32479:14;:18;;:38;;;;:::i;:::-;32457:18;:16;:18::i;:::-;:60;;;32356:169;-1:-1:-1;;32356:169:15:o;13399:2010::-;1754:11:21;;;;1746:55;;;;;-1:-1:-1;;;1746:55:21;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1746:55:21;;;;;;;;;;;;;;;1893:5;1879:19;;-1:-1:-1;;1879:19:21;;;6639:10:15;6612:38;;:26;:38;;;;;;;;;-1:-1:-1;;;;;6612:38:15;6604:47;;:7;:47;;;;;-1:-1:-1;6604:54:15;;6596:85;;;;;-1:-1:-1;;;6596:85:15;;;;;;;;;;;;-1:-1:-1;;;6596:85:15;;;;;;;;;;;;;;;13732:25;13760:21;;;:9;:21;;;;;13802:17;;;;-1:-1:-1;;;;;13802:17:15;13794:76;;;;;-1:-1:-1;;;13794:76:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13890:14;;;:17;;;13889:18;13881:66;;;;-1:-1:-1;;;13881:66:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13967:14;;;:17;;;;;;13966:18;13958:58;;;;;-1:-1:-1;;;13958:58:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;14800:22;14825:169;14992:1;14825:162;14843:18;:16;:18::i;:::-;14876:13;:20;:25;:100;;14918:13;14932:20;;14908:9;;:53;;14932:27;;14957:1;14932:27;:24;:27;:::i;:::-;14918:42;;;;;;;;;;;;;;;;14908:53;;;;;;;;;;;:68;;;14876:100;;;14904:1;14876:100;14825:3;:162::i;:::-;:166;:169;:166;:169;:::i;:::-;15007:23;;;:40;;;15111:10;15060:21;15084:38;;;:26;:38;;;;;;15133:16;;;:32;;-1:-1:-1;;;;;;15133:32:15;-1:-1:-1;;;;;15084:38:15;;;15133:32;;;;;15178:14;;;:24;;-1:-1:-1;;15178:24:15;-1:-1:-1;15178:24:15;;;;;;15256:13;27:10:-1;;23:18;;;45:23;;15256:30:15;;;;;;;;;;;15357:20;;15007:40;;-1:-1:-1;15084:38:15;;;15111:10;15302:99;;15256:30;;15357:27;;:20;:24;:27::i;:::-;15302:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;2059:11:21;:18;;-1:-1:-1;;2059:18:21;2073:4;2059:18;;;-1:-1:-1;;13399:2010:15:o;15521:1793::-;1754:11:21;;;;1746:55;;;;;-1:-1:-1;;;1746:55:21;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1746:55:21;;;;;;;;;;;;;;;1893:5;1879:19;;-1:-1:-1;;1879:19:21;;;6639:10:15;6612:38;;:26;:38;;;;;;;;;-1:-1:-1;;;;;6612:38:15;6604:47;;:7;:47;;;;;-1:-1:-1;6604:54:15;;6596:85;;;;;-1:-1:-1;;;6596:85:15;;;;;;;;;;;;-1:-1:-1;;;6596:85:15;;;;;;;;;;;;;;;15675:10;15624:21;15648:38;;;:26;:38;;;;;;;;;-1:-1:-1;;;;;15648:38:15;15721:22;;;:7;:22;;;;;;15780:13;:20;15764:36;;15756:72;;;;;-1:-1:-1;;;15756:72:15;;;;;;;;;;;;-1:-1:-1;;;15756:72:15;;;;;;;;;;;;;;;15839:25;15867:9;:39;15877:13;15891;15877:28;;;;;;;;;;;;;;;;15867:39;;;;;;;;;;;15839:67;;15938:1;15927:8;:12;;;15919:44;;;;;-1:-1:-1;;;15919:44:15;;;;;;;;;;;;-1:-1:-1;;;15919:44:15;;;;;;;;;;;;;;;15974:9;15991:8;15986:14;;;;;;;;;;15974:26;;16122:47;16145:8;:23;;;16122:22;:47::i;:::-;16121:48;16113:95;;;;-1:-1:-1;;;16113:95:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16227:37:15;;16268:9;16227:37;;;:22;;;:37;;;;;;;;:50;;;;;;;;;16219:87;;;;;-1:-1:-1;;;16219:87:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;16333:8;16325:4;:16;;;;;;;;;:35;;;-1:-1:-1;16353:7:15;16345:4;:15;;;;;;;;;16325:35;16317:77;;;;;-1:-1:-1;;;16317:77:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;16407:37:15;;;;;;:22;;;:37;;;;;:44;;16447:4;;16407:37;-1:-1:-1;;16407:44:15;-1:-1:-1;16447:4:15;16407:44;;;;;;;;;;;;-1:-1:-1;16476:8:15;16468:4;:16;;;;;;;;;16464:763;;;16543:13;;;;16521:17;;;;:36;;;:21;:36;:::i;:::-;16501:17;;;:56;16689:26;;;;16673:42;;16669:125;;;16736:26;;;:42;;;16669:125;16464:763;;;17137:7;17129:4;:15;;;;;;;;;17125:102;;;17201:13;;;;17180:16;;;;:35;;;:20;:35;:::i;:::-;17161:16;;;:54;17125:102;17244:62;;;;;;;;;;-1:-1:-1;;;;;17244:62:15;;;17270:10;;17255:13;;17244:62;;;;;;;;;;-1:-1:-1;;2059:11:21;:18;;-1:-1:-1;;2059:18:21;2073:4;2059:18;;;-1:-1:-1;;;;15521:1793:15:o;31325:246::-;31443:13;:20;31396:4;;31421:42;;31413:78;;;;;-1:-1:-1;;;31413:78:15;;;;;;;;;;;;-1:-1:-1;;;31413:78:15;;;;;;;;;;;;;;;31509:9;:45;31519:13;31533:19;31519:34;;;;;;;;;;;;;;;;31509:45;;;;;;;;;;;:51;;31561:1;31509:54;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31325:246:15;;;:::o;1292:26::-;;;-1:-1:-1;;;;;1292:26:15;;:::o;3555:45::-;;;;:::o;31096:136::-;31163:14;;:::i;:::-;31197:21;;;;:9;:21;;;;;;31190:34;;;;;;;;;;31197:27;;;;;31190:34;;31197:27;;31190:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;31190:34:15;;31096:136;-1:-1:-1;;;;;;;31096:136:15:o;387:29::-;;;;:::o;15415:92::-;15486:13;;15415:92;:::o;1207:26::-;;;-1:-1:-1;;;;;1207:26:15;;:::o;3244:32::-;;;;:::o;300:23::-;;;;;;-1:-1:-1;;;;;300:23:15;;:::o;17348:114::-;17417:6;;17348:114;:::o;29122:650::-;1754:11:21;;;;1746:55;;;;;-1:-1:-1;;;1746:55:21;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1746:55:21;;;;;;;;;;;;;;;1893:5;1879:19;;-1:-1:-1;;1879:19:21;;;29225:21:15;;;:9;:21;;;;;29266:14;;;:17;-1:-1:-1;29266:17:15;29265:18;29257:66;;;;-1:-1:-1;;;29257:66:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29343:14;;;:17;;;;;;29342:18;29334:66;;;;-1:-1:-1;;;29334:66:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29433:17;;;;-1:-1:-1;;;;;29433:17:15;29419:10;:31;29411:74;;;;;-1:-1:-1;;;29411:74:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;29498:14;;;:24;;-1:-1:-1;;29498:24:15;;;;;29570:21;;;;-1:-1:-1;29601:17:15;;;29620:23;;;;29570:74;;;-1:-1:-1;;;29570:74:15;;-1:-1:-1;;;;;29601:17:15;;;29570:74;;;;;;;;;;;;:21;;;;;-1:-1:-1;;29570:74:15;;;;;29498:17;;29570:74;;;;;;;-1:-1:-1;29570:21:15;:74;;;5:2:-1;;;;30:1;27;20:12;5:2;29570:74:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;29570:74:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;29570:74:15;29548:160;;;;-1:-1:-1;;;29548:160:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29726:38;;;29753:10;29726:38;;;;29741:10;;29726:38;;;;;;;;;;-1:-1:-1;;2059:11:21;:18;;-1:-1:-1;;2059:18:21;2073:4;2059:18;;;29122:650:15:o;17470:3550::-;1754:11:21;;;;1746:55;;;;;-1:-1:-1;;;1746:55:21;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1746:55:21;;;;;;;;;;;;;;;1893:5;1879:19;;-1:-1:-1;;1879:19:21;;;17549:45:15;17580:13;17549:30;:45::i;:::-;17607:18;17628:13;17642;17628:28;;;;;;;;;;;;;;;;;;;;;17695:21;;;:9;:21;;;;;;17824:14;;;:24;;-1:-1:-1;;17824:24:15;;;;;17628:28;;-1:-1:-1;17695:21:15;17628:28;17917:23;17926:13;17917:8;:23::i;:::-;17874:66;;;;2028:6;18053:41;18069:8;:24;;;18053:11;;:15;;:41;;;;:::i;:::-;:64;18049:112;;;18144:5;18134:15;;18049:112;18531:7;18527:2370;;;18562:1;18555:6;:8;18578:14;;;:24;;-1:-1:-1;;18578:24:15;;;;;18732:18;;-1:-1:-1;;;;;18732:18:15;-1:-1:-1;18724:27:15;;;:7;18578:17;18724:27;;;;18593:1;18724:34;;18578:24;18724:34;18720:1147;;;18855:24;;;;18824:18;;-1:-1:-1;;;;;18824:18:15;18816:27;;;;:7;:27;;;;;-1:-1:-1;18816:34:15;;:64;;:38;:64::i;:::-;18787:18;;-1:-1:-1;;;;;18787:18:15;18779:27;;;;:7;:27;;;;;-1:-1:-1;18779:34:15;:101;18720:1147;;;19276:18;;-1:-1:-1;;;;;19276:18:15;;;19241:55;19249:46;;;:26;:46;;;;;;;;;;;;19241:55;;:7;:55;;;:62;;;;;19237:349;;;19382:18;;-1:-1:-1;;;;;19382:18:15;;;19328:24;19355:46;;;:26;:46;;;;;;;;;;;;19424:44;;;;;;:63;;-1:-1:-1;;;;;;19424:63:15;;;;;;;;19510:7;:25;;;;;;;:56;;;;;;;;;;19237:349;19704:61;;;;;;;;19711:18;;-1:-1:-1;;;;;19711:18:15;;;19704:61;;;19731:24;;;;;19704:61;;;;;;;-1:-1:-1;19704:61:15;;;;;;-1:-1:-1;19704:61:15;;;;;;19674:27;;;:7;:27;;;;;:91;;;;;;;-1:-1:-1;;;;;;19674:91:15;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19674:91:15;;;;;;;;;;;;;;;;;;;19833:18;;;;;19784:46;;;:26;:46;;;;;;;:67;;;;;;;;;;18720:1147;19952:24;;;;19936:11;;:41;;;:15;:41;:::i;:::-;19922:11;:55;18527:2370;;;20533:1;20526:6;:8;20631:255;20961:51;;;;;;;;;;20992:10;;20977:13;;20961:51;;;;;;;;;-1:-1:-1;;2059:11:21;:18;;-1:-1:-1;;2059:18:21;2073:4;2059:18;;;-1:-1:-1;;;17470:3550:15:o;26153:580::-;1754:11:21;;;;1746:55;;;;;-1:-1:-1;;;1746:55:21;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;1746:55:21;;;;;;;;;;;;;;;1893:5;1879:19;;-1:-1:-1;;1879:19:21;;;6371:10:15;6363:19;;:7;:19;;;;;-1:-1:-1;6363:26:15;;6355:56;;;;;-1:-1:-1;;;6355:56:15;;;;;;;;;;;;-1:-1:-1;;;6355:56:15;;;;;;;;;;;;;;;26357:9;26352:303;26374:9;:16;26370:1;:20;26352:303;;;26510:5;;26506:138;;26559:9;26573:1;26569;:5;26559:16;;;;;;;;;;;;;;-1:-1:-1;;;;;26544:31:15;:9;26554:1;26544:12;;;;;;;;;;;;;;-1:-1:-1;;;;;26544:31:15;;26536:92;;;;-1:-1:-1;;;26536:92:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26392:3;;26352:303;;;;26667:58;26677:10;26689:12;26703:10;26715:9;26667;:58::i;:::-;-1:-1:-1;;2059:11:21;:18;;-1:-1:-1;;2059:18:21;2073:4;2059:18;;;-1:-1:-1;26153:580:15:o;431:150:22:-;489:7;522:1;517;:6;;509:15;;;;;;-1:-1:-1;547:5:22;;;431:150::o;272:151::-;330:7;364:1;360;:5;352:14;;;;;;377:9;393:1;389;:5;;;;;;;272:151;-1:-1:-1;;;;272:151:22:o;26741:1197:15:-;26908:11;;26872:33;;26908:18;;26872:33;26908:18;:15;:18;:::i;:::-;-1:-1:-1;;;;;26963:22:15;;26939:21;26963:22;;;:7;:22;;;;;-1:-1:-1;27006:13:15;;;26872:54;;-1:-1:-1;26963:22:15;-1:-1:-1;;27006:29:15;26998:61;;;;;-1:-1:-1;;;26998:61:15;;;;;;;;;;;;-1:-1:-1;;;26998:61:15;;;;;;;;;;;;;;;27148:39;27160:6;:26;;;27148:11;:39::i;:::-;27140:129;;;;-1:-1:-1;;;27140:129:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27404:13;;;;:31;;27422:12;27404:31;:17;:31;:::i;:::-;27388:13;;;:47;27514:11;;:29;;27530:12;27514:29;:15;:29;:::i;:::-;27500:11;:43;27711:9;;:85;;-1:-1:-1;;;27711:85:15;;-1:-1:-1;;;;;27711:85:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:9;;;;;-1:-1:-1;;27711:85:15;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;27711:85:15;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;27711:85:15;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;27711:85:15;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;27711:85:15;27689:177;;;;-1:-1:-1;;;27689:177:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27884:46;;;;;;;;;;;;;;27893:10;;27884:46;;;;;;;;26741:1197;;;;;;:::o;12079:1312::-;12418:24;;:::i;:::-;12445:611;;;;;;;;12481:9;-1:-1:-1;;;;;12445:611:15;;;;;12516:10;-1:-1:-1;;;;;12445:611:15;;;;;12559:1;-1:-1:-1;;;;;12445:611:15;;;;;12594:15;12445:611;;;;12640:13;12445:611;;;;12685:14;12445:611;;;;12736:12;-1:-1:-1;;;;;12445:611:15;;;;;12783:16;12445:611;;;;12836:12;-1:-1:-1;;;;;12445:611:15;;;;;12881:1;12445:611;;;;12908:1;12445:611;;;;12934:1;12445:611;;;;12958:5;12445:611;;;;12988:7;12445:611;;;;13043:1;12445:611;;;12418:638;;13096:8;13069:9;:24;13079:13;;13069:24;;;;;;;;;;;:35;;;;;;;;;;;;;-1:-1:-1;;;;;13069:35:15;;;;;-1:-1:-1;;;;;13069:35:15;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13069:35:15;;;;;-1:-1:-1;;;;;13069:35:15;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13069:35:15;;;;;-1:-1:-1;;;;;13069:35:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13069:35:15;;;;;-1:-1:-1;;;;;13069:35:15;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13069:35:15;;;;;-1:-1:-1;;;;;13069:35:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;13069:35:15;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;13069:35:15;;;;;;;;;;;13166:10;13115:21;13139:38;;;:26;:38;;;;;;;;;;13208:13;;13193:161;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13193:161:15;;;;;;;-1:-1:-1;13193:161:15;;;;;;;;;;;;;;13139:38;;;;13193:161;;;;13139:38;;13166:10;;13193:161;;;;;;;;;-1:-1:-1;;13365:13:15;:18;;13382:1;13365:18;;;-1:-1:-1;;;;;;;;;12079:1312:15:o;589:150:22:-;647:7;679:5;;;703:6;;;;695:15;;;;;;730:1;589:150;-1:-1:-1;;;589:150:22:o;30729:107:15:-;30787:7;30819:1;30814;:6;;:14;;30827:1;30814:14;;;-1:-1:-1;30823:1:15;;30807:21;-1:-1:-1;30729:107:15:o;24912:623::-;25024:13;:20;25008:36;;25000:72;;;;;-1:-1:-1;;;25000:72:15;;;;;;;;;;;;-1:-1:-1;;;25000:72:15;;;;;;;;;;;;;;;25083:24;;:::i;:::-;25110:9;:39;25120:13;25134;25120:28;;;;;;;;;;;;;;;;;;;;;25110:39;;;;;;;;;;;;;;;25083:66;;;;;;;;;-1:-1:-1;;;;;25083:66:15;;;;;-1:-1:-1;25083:66:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25083:66:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25110:39;;25083:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;25083:66:15;;;-1:-1:-1;;;25083:66:15;;;;;;;;;;;;;;;;-1:-1:-1;;25083:66:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25325:8;:14;;;25340:1;25325:17;;;;;;;;;;;:26;25317:74;;;;-1:-1:-1;;;25317:74:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25410:18;;;:77;;-1:-1:-1;25432:9:15;:46;25442:13;25456:20;:13;25474:1;25456:20;:17;:20;:::i;:::-;25442:35;;;;;;;;;;;;;;;;25432:46;;;;;;;;;;;:52;;25485:1;25432:55;;;;;;;;;;;;;;;;;;;;;;;;25410:77;25402:125;;;;-1:-1:-1;;;25402:125:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24912:623;;:::o;23066:1838::-;23125:12;23139:24;23176;;:::i;:::-;23203:9;:39;23213:13;23227;23213:28;;;;;;;;;;;;;;;;;;;;;23203:39;;;;;;;;;;;;;;;23176:66;;;;;;;;;-1:-1:-1;;;;;23176:66:15;;;;;-1:-1:-1;23176:66:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23176:66:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23203:39;;23176:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;23176:66:15;;;-1:-1:-1;;;23176:66:15;;;;;;;;;;;;;;;;-1:-1:-1;;23176:66:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;23176:66:15;;;-1:-1:-1;;23176:66:15;;;;;;;;;;;23285:16;;;;23265:17;;;;;:36;;-1:-1:-1;;;23066:1838:15;-1:-1:-1;;;23066:1838:15:o;157:32734::-;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;-1:-1;157:32734:15;;;-1:-1:-1;;157:32734:15:o;:::-;;;;;;;;;-1:-1:-1;157:32734:15;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;157:32734:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;157:32734:15;;;-1:-1:-1;157:32734:15;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;157:32734:15;;;-1:-1:-1;157:32734:15;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;157:32734:15;;;-1:-1:-1;157:32734:15;;;;;;;;;;;;;;;;;;;;", - "source": "pragma solidity >=0.5.0 < 0.6.0;\r\n\r\nimport \"./oz/SafeMath.sol\";\r\nimport \"./oz/IERC20.sol\";\r\nimport \"./oz/ReentrancyGuard.sol\";\r\nimport \"./GuildBank.sol\";\r\n\r\ncontract Moloch is ReentrancyGuard {\r\n using SafeMath for uint256;\r\n\r\n /***************\r\n GLOBAL CONSTANTS\r\n ***************/\r\n address public summoner; // initial singular shareholder, assists with bailouts\r\n\r\n uint256 public periodDuration; // default = 17280 = 4.8 hours in seconds (5 periods per day)\r\n uint256 public votingPeriodLength; // default = 35 periods (7 days)\r\n uint256 public gracePeriodLength; // default = 35 periods (7 days)\r\n uint256 public emergencyProcessingWait; // default = 35 periods (7 days)\r\n //uint256 public bailoutWait; // default = 70 periods (14 days)\r\n uint256 public proposalDeposit; // default = 10 ETH (~$1,000 worth of ETH at contract deployment)\r\n //uint256 public dilutionBound; // default = 3 - maximum multiplier a YES voter will be obligated to pay in case of mass ragequit\r\n //uint256 public processingReward; // default = 0.1 - amount of ETH to give to whoever processes a proposal\r\n uint256 public summoningTime; // needed to determine the current period\r\n\r\n IERC20 public depositToken; // deposit token contract reference; default = wETH\r\n GuildBank public guildBank; // guild bank contract reference\r\n\r\n // HARD-CODED LIMITS\r\n // These numbers are quite arbitrary; they are small enough to avoid overflows when doing calculations\r\n // with periods or shares, yet big enough to not limit reasonable use cases.\r\n uint256 constant MAX_VOTING_PERIOD_LENGTH = 10**18; // maximum length of voting period\r\n uint256 constant MAX_GRACE_PERIOD_LENGTH = 10**18; // maximum length of grace period\r\n //uint256 constant MAX_BAILOUT_WAIT = 10**18; // maximum # periods after a jailed member can be ragekicked before they must be bailed out instead\r\n //uint256 constant MAX_DILUTION_BOUND = 10**18; // maximum dilution bound\r\n uint256 constant MAX_NUMBER_OF_SHARES = 10**18; // maximum number of shares that can be minted\r\n\r\n // ***************\r\n // EVENTS\r\n // ***************\r\n event SubmitProposal(uint256 proposalIndex, address indexed delegateKey, address indexed memberAddress, address indexed applicant, uint256 sharesRequested, uint256 lootRequested, uint256 tributeOffered, address tributeToken, uint256 paymentRequested, address paymentToken);\r\n event SponsorProposal(address indexed delegateKey, address indexed memberAddress, uint256 proposalIndex, uint256 proposalQueueIndex, uint256 startingPeriod);\r\n event SubmitVote(uint256 indexed proposalIndex, address indexed delegateKey, address indexed memberAddress, uint8 uintVote);\r\n event ProcessProposal(uint256 indexed proposalIndex, uint256 indexed proposalId, bool didPass);\r\n event Ragequit(address indexed memberAddress, uint256 sharesToBurn, uint256 lootToBurn);\r\n event CancelProposal(uint256 indexed proposalIndex, address applicantAddress);\r\n event UpdateDelegateKey(address indexed memberAddress, address newDelegateKey);\r\n event SummonComplete(address indexed summoner, uint256 shares);\r\n\r\n // *******************\r\n // INTERNAL ACCOUNTING\r\n // *******************\r\n uint256 public proposalCount = 0; // total proposals submitted\r\n uint256 public totalShares = 0; // total shares across all members\r\n //uint256 public totalLoot = 0; // total loot across all members\r\n\r\n bool public emergencyWarning = false; // true if emergency processing has ever been triggered\r\n uint256 public lastEmergencyProposalIndex = 0; // index of the last proposal which triggered emergency processing\r\n\r\n enum Vote {\r\n Null, // default value, counted as abstention\r\n Yes,\r\n No\r\n }\r\n\r\n struct Member {\r\n address delegateKey; // the key responsible for submitting proposals and voting - defaults to member address unless updated\r\n uint256 shares; // the # of voting shares assigned to this member\r\n //uint256 loot; // the loot amount available to this member (combined with shares on ragequit)\r\n bool exists; // always true once a member has been created\r\n uint256 highestIndexYesVote; // highest proposal index # on which the member voted YES\r\n //uint256 jailed; // set to proposalIndex of a passing guild kick proposal for this member, prevents voting on and sponsoring proposals\r\n }\r\n\r\n struct Proposal {\r\n address applicant; // the applicant who wishes to become a member - this key will be used for withdrawals (doubles as guild kick target for gkick proposals)\r\n address proposer; // the account that submitted the proposal (can be non-member)\r\n address sponsor; // the member that sponsored the proposal (moving it into the queue)\r\n uint256 sharesRequested; // the # of shares the applicant is requesting\r\n uint256 lootRequested; // the amount of loot the applicant is requesting\r\n uint256 tributeOffered; // amount of tokens offered as tribute\r\n IERC20 tributeToken; // tribute token contract reference\r\n uint256 paymentRequested; // amount of tokens requested as payment\r\n IERC20 paymentToken; // payment token contract reference\r\n uint256 startingPeriod; // the period in which voting can start for this proposal\r\n uint256 yesVotes; // the total number of YES votes for this proposal\r\n uint256 noVotes; // the total number of NO votes for this proposal\r\n bool[6] flags; // [sponsored, processed, didPass, cancelled, whitelist, guildkick]\r\n string details; // proposal details - could be IPFS hash, plaintext, or JSON\r\n uint256 maxTotalSharesAndLootAtYesVote; // the maximum # of total shares encountered at a yes vote on this proposal\r\n mapping(address => Vote) votesByMember; // the votes on this proposal by each member\r\n }\r\n\r\n //mapping(address => bool) public tokenWhitelist;\r\n IERC20[] public approvedTokens;\r\n\r\n //mapping(address => bool) public proposedToWhitelist;\r\n //mapping(address => bool) public proposedToKick;\r\n\r\n mapping(address => Member) public members;\r\n mapping(address => address) public memberAddressByDelegateKey;\r\n\r\n mapping(uint256 => Proposal) public proposals;\r\n\r\n uint256[] public proposalQueue;\r\n\r\n modifier onlyMember {\r\n require(members[msg.sender].shares > 0 , \"not a member\");\r\n _;\r\n }\r\n\r\n modifier onlyShareholder {\r\n require(members[msg.sender].shares > 0, \"not a shareholder\");\r\n _;\r\n }\r\n\r\n modifier onlyDelegate {\r\n require(members[memberAddressByDelegateKey[msg.sender]].shares > 0, \"not a delegate\");\r\n _;\r\n }\r\n\r\n constructor(\r\n address _summoner,\r\n address[1] memory _approvedTokens,\r\n uint256 _periodDuration,\r\n uint256 _votingPeriodLength,\r\n uint256 _gracePeriodLength,\r\n uint256 _emergencyProcessingWait,\r\n uint256 _bailoutWait,\r\n uint256 _proposalDeposit,\r\n uint256 _dilutionBound,\r\n uint256 _processingReward\r\n ) public {\r\n require(_summoner != address(0), \"summoner cannot be 0\");\r\n require(_periodDuration > 0, \"_periodDuration cannot be 0\");\r\n require(_votingPeriodLength > 0, \"_votingPeriodLength cannot be 0\");\r\n require(_votingPeriodLength <= MAX_VOTING_PERIOD_LENGTH, \"_votingPeriodLength exceeds limit\");\r\n require(_gracePeriodLength <= MAX_GRACE_PERIOD_LENGTH, \"_gracePeriodLength exceeds limit\");\r\n require(_emergencyProcessingWait > 0, \"_emergencyProcessingWait cannot be 0\");\r\n //require(_bailoutWait > _emergencyProcessingWait, \"_bailoutWait must be greater than _emergencyProcessingWait\");\r\n //require(_bailoutWait <= MAX_BAILOUT_WAIT, \"_bailoutWait exceeds limit\");\r\n //require(_dilutionBound > 0, \"_dilutionBound cannot be 0\");\r\n //require(_dilutionBound <= MAX_DILUTION_BOUND, \"_dilutionBound exceeds limit\");\r\n require(_approvedTokens.length > 0, \"need at least one approved token\");\r\n //require(_proposalDeposit >= _processingReward, \"_proposalDeposit cannot be smaller than _processingReward\");\r\n\r\n summoner = _summoner;\r\n\r\n depositToken = IERC20(_approvedTokens[0]);\r\n\r\n for (uint256 i = 0; i < _approvedTokens.length; i++) {\r\n require(_approvedTokens[i] != address(0), \"_approvedToken cannot be 0\");\r\n //require(!tokenWhitelist[_approvedTokens[i]], \"duplicate approved token\");\r\n //tokenWhitelist[_approvedTokens[i]] = true;\r\n approvedTokens.push(IERC20(_approvedTokens[i]));\r\n }\r\n\r\n guildBank = new GuildBank();\r\n\r\n periodDuration = _periodDuration;\r\n votingPeriodLength = _votingPeriodLength;\r\n gracePeriodLength = _gracePeriodLength;\r\n emergencyProcessingWait = _emergencyProcessingWait;\r\n //bailoutWait = _bailoutWait;\r\n proposalDeposit = _proposalDeposit;\r\n //dilutionBound = _dilutionBound;\r\n //processingReward = _processingReward;\r\n\r\n summoningTime = now;\r\n\r\n members[summoner] = Member(summoner, 1, true, 0);\r\n memberAddressByDelegateKey[summoner] = summoner;\r\n totalShares = 1;\r\n\r\n emit SummonComplete(summoner, 1);\r\n }\r\n\r\n /*****************\r\n PROPOSAL FUNCTIONS\r\n *****************/\r\n function submitProposal(\r\n address applicant,\r\n uint256 sharesRequested,\r\n uint256 lootRequested,\r\n uint256 tributeOffered,\r\n address tributeToken,\r\n uint256 paymentRequested,\r\n address paymentToken,\r\n string memory details\r\n ) public nonReentrant returns (uint256 proposalId) {\r\n require(sharesRequested <= MAX_NUMBER_OF_SHARES, \"too many shares requested\");\r\n //require(tokenWhitelist[tributeToken], \"tributeToken is not whitelisted\");\r\n //require(tokenWhitelist[paymentToken], \"payment is not whitelisted\");\r\n require(applicant != address(0), \"applicant cannot be 0\");\r\n //require(members[applicant].jailed == 0, \"proposal applicant must not be jailed\");\r\n\r\n // collect tribute from proposer and store it in the Moloch until the proposal is processed\r\n //require(IERC20(tributeToken).transferFrom(msg.sender, address(this), tributeOffered), \"tribute token transfer failed\");\r\n\r\n bool[6] memory flags; // [sponsored, processed, didPass, cancelled, whitelist, guildkick]\r\n\r\n _submitProposal(applicant, sharesRequested, lootRequested, tributeOffered, tributeToken, paymentRequested, paymentToken, details, flags);\r\n return proposalCount - 1; // return proposalId - contracts calling submit might want it\r\n }\r\n\r\n // function submitWhitelistProposal(address tokenToWhitelist, string memory details) public nonReentrant returns (uint256 proposalId) {\r\n // require(tokenToWhitelist != address(0), \"must provide token address\");\r\n // require(!tokenWhitelist[tokenToWhitelist], \"cannot already have whitelisted the token\");\r\n\r\n // bool[6] memory flags; // [sponsored, processed, didPass, cancelled, whitelist, guildkick]\r\n // flags[4] = true;\r\n\r\n // _submitProposal(address(0), 0, 0, 0, tokenToWhitelist, 0, address(0), details, flags);\r\n // return proposalCount - 1;\r\n // }\r\n\r\n // function submitGuildKickProposal(address memberToKick, string memory details) public nonReentrant returns (uint256 proposalId) {\r\n // Member memory member = members[memberToKick];\r\n\r\n // require(member.shares > 0 || member.loot > 0, \"member must have at least one share or one loot\");\r\n // require(memberToKick != summoner, \"the summoner may not be kicked\");\r\n // require(members[memberToKick].jailed == 0, \"member must not already be jailed\");\r\n\r\n // bool[6] memory flags; // [sponsored, processed, didPass, cancelled, whitelist, guildkick]\r\n // flags[5] = true;\r\n\r\n // _submitProposal(memberToKick, 0, 0, 0, address(0), 0, address(0), details, flags);\r\n // return proposalCount - 1;\r\n // }\r\n\r\n function _submitProposal(\r\n address applicant,\r\n uint256 sharesRequested,\r\n uint256 lootRequested,\r\n uint256 tributeOffered,\r\n address tributeToken,\r\n uint256 paymentRequested,\r\n address paymentToken,\r\n string memory details,\r\n bool[6] memory flags\r\n ) internal {\r\n Proposal memory proposal = Proposal({\r\n applicant : applicant,\r\n proposer : msg.sender,\r\n sponsor : address(0),\r\n sharesRequested : sharesRequested,\r\n lootRequested : lootRequested,\r\n tributeOffered : tributeOffered,\r\n tributeToken : IERC20(tributeToken),\r\n paymentRequested : paymentRequested,\r\n paymentToken : IERC20(paymentToken),\r\n startingPeriod : 0,\r\n yesVotes : 0,\r\n noVotes : 0,\r\n flags : flags,\r\n details : details,\r\n maxTotalSharesAndLootAtYesVote : 0\r\n });\r\n\r\n proposals[proposalCount] = proposal;\r\n address memberAddress = memberAddressByDelegateKey[msg.sender];\r\n emit SubmitProposal(proposalCount, msg.sender, memberAddress, applicant, sharesRequested, lootRequested, tributeOffered, tributeToken, paymentRequested, paymentToken);\r\n proposalCount += 1;\r\n }\r\n\r\n function sponsorProposal(uint256 proposalId) public nonReentrant onlyDelegate {\r\n // collect proposal deposit from sponsor and store it in the Moloch until the proposal is processed\r\n //require(depositToken.transferFrom(msg.sender, address(this), proposalDeposit), \"proposal deposit token transfer failed\");\r\n\r\n Proposal storage proposal = proposals[proposalId];\r\n\r\n require(proposal.proposer != address(0), 'proposal must have been proposed');\r\n require(!proposal.flags[0], \"proposal has already been sponsored\");\r\n require(!proposal.flags[3], \"proposal has been cancelled\");\r\n //require(members[proposal.applicant].jailed == 0, \"proposal applicant must not be jailed\");\r\n\r\n // whitelist proposal\r\n // if (proposal.flags[4]) {\r\n // require(!tokenWhitelist[address(proposal.tributeToken)], \"cannot already have whitelisted the token\");\r\n // require(!proposedToWhitelist[address(proposal.tributeToken)], 'already proposed to whitelist');\r\n // proposedToWhitelist[address(proposal.tributeToken)] = true;\r\n\r\n // // guild kick proposal\r\n // } else if (proposal.flags[5]) {\r\n // require(!proposedToKick[proposal.applicant], 'already proposed to kick');\r\n // proposedToKick[proposal.applicant] = true;\r\n // }\r\n\r\n // compute startingPeriod for proposal\r\n uint256 startingPeriod = max(\r\n getCurrentPeriod(),\r\n proposalQueue.length == 0 ? 0 : proposals[proposalQueue[proposalQueue.length.sub(1)]].startingPeriod\r\n ).add(1);\r\n\r\n proposal.startingPeriod = startingPeriod;\r\n\r\n address memberAddress = memberAddressByDelegateKey[msg.sender];\r\n proposal.sponsor = memberAddress;\r\n\r\n proposal.flags[0] = true;\r\n\r\n // append proposal to the queue\r\n proposalQueue.push(proposalId);\r\n emit SponsorProposal(msg.sender, memberAddress, proposalId, proposalQueue.length.sub(1), startingPeriod);\r\n }\r\n function getProposal () public view returns(uint256){\r\n return proposalCount;\r\n }\r\n \r\n\r\n function submitVote(uint256 proposalIndex, uint8 uintVote) public nonReentrant onlyDelegate {\r\n address memberAddress = memberAddressByDelegateKey[msg.sender];\r\n Member storage member = members[memberAddress];\r\n\r\n require(proposalIndex < proposalQueue.length, \"proposal does not exist\");\r\n Proposal storage proposal = proposals[proposalQueue[proposalIndex]];\r\n\r\n require(uintVote < 3, \"must be less than 3\");\r\n Vote vote = Vote(uintVote);\r\n\r\n //require(getCurrentPeriod() >= proposal.startingPeriod, \"voting period has not started\");\r\n require(!hasVotingPeriodExpired(proposal.startingPeriod), \"proposal voting period has expired\");\r\n require(proposal.votesByMember[memberAddress] == Vote.Null, \"member has already voted\");\r\n require(vote == Vote.Yes || vote == Vote.No, \"vote must be either Yes or No\");\r\n\r\n proposal.votesByMember[memberAddress] = vote;\r\n\r\n if (vote == Vote.Yes) {\r\n proposal.yesVotes = proposal.yesVotes.add(member.shares);\r\n\r\n // set highest index (latest) yes vote - must be processed for member to ragequit\r\n if (proposalIndex > member.highestIndexYesVote) {\r\n member.highestIndexYesVote = proposalIndex;\r\n }\r\n\r\n // set maximum of total shares encountered at a yes vote - used to bound dilution for yes voters\r\n // if (totalShares.add(totalLoot) > proposal.maxTotalSharesAndLootAtYesVote) {\r\n // proposal.maxTotalSharesAndLootAtYesVote = totalShares.add(totalLoot);\r\n // }\r\n\r\n } else if (vote == Vote.No) {\r\n proposal.noVotes = proposal.noVotes.add(member.shares);\r\n }\r\n\r\n emit SubmitVote(proposalIndex, msg.sender, memberAddress, uintVote);\r\n }\r\n uint256 public result;\r\n function getResult () public view returns(uint256){\r\n return result;//checks proposal passed or not\r\n }\r\n\r\n function processProposal(uint256 proposalIndex) public nonReentrant {\r\n _validateProposalForProcessing(proposalIndex);\r\n\r\n uint256 proposalId = proposalQueue[proposalIndex];\r\n Proposal storage proposal = proposals[proposalId];\r\n\r\n //require(!proposal.flags[4] && !proposal.flags[5], \"must be a standard proposal\");\r\n\r\n proposal.flags[1] = true; // processed\r\n\r\n (bool didPass, bool emergencyProcessing) = _didPass(proposalIndex);\r\n\r\n // Make the proposal fail if the new total number of shares and loot exceeds the limit\r\n if (totalShares.add(proposal.sharesRequested) > MAX_NUMBER_OF_SHARES) {\r\n didPass = false;\r\n }\r\n\r\n // Make the proposal fail if it is requesting more tokens as payment than the available guild bank balance\r\n // if (!emergencyProcessing && proposal.paymentToken != IERC20(0) && proposal.paymentRequested > proposal.paymentToken.balanceOf(address(guildBank))) {\r\n // didPass = false;\r\n // }\r\n\r\n // PROPOSAL PASSED\r\n if (didPass) {\r\n result=1;\r\n proposal.flags[2] = true; // didPass\r\n\r\n // if the applicant is already a member, add to their existing shares & loot\r\n if (members[proposal.applicant].exists) {\r\n members[proposal.applicant].shares = members[proposal.applicant].shares.add(proposal.sharesRequested);\r\n //members[proposal.applicant].loot = members[proposal.applicant].loot.add(proposal.lootRequested);\r\n\r\n // the applicant is a new member, create a new record for them\r\n } else {\r\n // if the applicant address is already taken by a member's delegateKey, reset it to their member address\r\n if (members[memberAddressByDelegateKey[proposal.applicant]].exists) {\r\n address memberToOverride = memberAddressByDelegateKey[proposal.applicant];\r\n memberAddressByDelegateKey[memberToOverride] = memberToOverride;\r\n members[memberToOverride].delegateKey = memberToOverride;\r\n }\r\n\r\n // use applicant address as delegateKey by default\r\n members[proposal.applicant] = Member(proposal.applicant, proposal.sharesRequested, true, 0);\r\n memberAddressByDelegateKey[proposal.applicant] = proposal.applicant;\r\n }\r\n\r\n // mint new shares & loot\r\n totalShares = totalShares.add(proposal.sharesRequested);\r\n //totalLoot = totalLoot.add(proposal.lootRequested);\r\n\r\n // require(\r\n // proposal.tributeToken.transfer(address(guildBank), proposal.tributeOffered),\r\n // \"token transfer to guild bank failed\"\r\n // );\r\n\r\n // require(\r\n // guildBank.withdrawToken(proposal.paymentToken, proposal.applicant, proposal.paymentRequested),\r\n // \"token payment to applicant failed\"\r\n // );\r\n\r\n\r\n // PROPOSAL FAILED\r\n } else {\r\n result=2;\r\n // return all tokens to the applicant (skip if emergency processing)\r\n if (!emergencyProcessing) {\r\n // require(\r\n // proposal.tributeToken.transfer(proposal.proposer, proposal.tributeOffered),\r\n // \"failing vote token transfer failed\"\r\n // );\r\n }\r\n }\r\n\r\n //_returnDeposit(proposal.sponsor);\r\n\r\n emit ProcessProposal(proposalIndex, proposalId, didPass);\r\n }\r\n\r\n // function processWhitelistProposal(uint256 proposalIndex) public nonReentrant {\r\n // _validateProposalForProcessing(proposalIndex);\r\n\r\n // uint256 proposalId = proposalQueue[proposalIndex];\r\n // Proposal storage proposal = proposals[proposalId];\r\n\r\n // require(proposal.flags[4], \"must be a whitelist proposal\");\r\n\r\n // proposal.flags[1] = true; // processed\r\n\r\n // (bool didPass,) = _didPass(proposalIndex);\r\n\r\n // if (didPass) {\r\n // proposal.flags[2] = true; // didPass\r\n\r\n // tokenWhitelist[address(proposal.tributeToken)] = true;\r\n // approvedTokens.push(proposal.tributeToken);\r\n // }\r\n\r\n // proposedToWhitelist[address(proposal.tributeToken)] = false;\r\n\r\n // _returnDeposit(proposal.sponsor);\r\n\r\n // emit ProcessProposal(proposalIndex, proposalId, didPass);\r\n // }\r\n\r\n // function processGuildKickProposal(uint256 proposalIndex) public nonReentrant {\r\n // _validateProposalForProcessing(proposalIndex);\r\n\r\n // uint256 proposalId = proposalQueue[proposalIndex];\r\n // Proposal storage proposal = proposals[proposalId];\r\n\r\n // require(proposal.flags[5], \"must be a guild kick proposal\");\r\n\r\n // proposal.flags[1] = true; // processed\r\n\r\n // (bool didPass,) = _didPass(proposalIndex);\r\n\r\n // if (didPass) {\r\n // proposal.flags[2] = true; // didPass\r\n // Member storage member = members[proposal.applicant];\r\n // member.jailed = proposalIndex;\r\n\r\n // // transfer shares to loot\r\n // member.loot = member.loot.add(member.shares);\r\n // totalShares = totalShares.sub(member.shares);\r\n // totalLoot = totalLoot.add(member.shares);\r\n // member.shares = 0; // revoke all shares\r\n // }\r\n\r\n // proposedToKick[proposal.applicant] = false;\r\n\r\n // _returnDeposit(proposal.sponsor);\r\n\r\n // emit ProcessProposal(proposalIndex, proposalId, didPass);\r\n // }\r\n\r\n function _didPass(uint256 proposalIndex) internal returns (bool didPass, bool emergencyProcessing) {\r\n Proposal memory proposal = proposals[proposalQueue[proposalIndex]];\r\n\r\n didPass = proposal.yesVotes > proposal.noVotes;\r\n\r\n // Make the proposal fail (and skip returning tribute) if emergencyProcessingWait is exceeded\r\n emergencyProcessing = false;\r\n // if (getCurrentPeriod() >= proposal.startingPeriod.add(votingPeriodLength).add(gracePeriodLength).add(emergencyProcessingWait)) {\r\n // emergencyWarning = true;\r\n // lastEmergencyProposalIndex = proposalIndex;\r\n // emergencyProcessing = true;\r\n // didPass = false;\r\n // }\r\n\r\n // // Make the proposal fail if it was past its grace period during the last emergency processing and it is not a guild kick proposal\r\n // if (emergencyWarning) {\r\n // if (proposal.startingPeriod <= proposals[proposalQueue[lastEmergencyProposalIndex]].startingPeriod.add(emergencyProcessingWait) && !proposal.flags[5]) {\r\n // didPass = false;\r\n // }\r\n // }\r\n\r\n // Make the proposal fail if the dilutionBound is exceeded\r\n // if ((totalShares.add(totalLoot)).mul(dilutionBound) < proposal.maxTotalSharesAndLootAtYesVote) {\r\n // didPass = false;\r\n // }\r\n\r\n // Make the proposal fail if the applicant is jailed\r\n // - for standard proposals, we don't want the applicant to get any shares/loot/payment\r\n // - for guild kick proposals, we should never be able to propose to kick a jailed member (or have two kick proposals active), so it doesn't matter\r\n // if (members[proposal.applicant].jailed != 0) {\r\n // didPass = false;\r\n // }\r\n\r\n return (didPass, emergencyProcessing);\r\n }\r\n\r\n function _validateProposalForProcessing(uint256 proposalIndex) internal view {\r\n require(proposalIndex < proposalQueue.length, \"proposal does not exist\");\r\n Proposal memory proposal = proposals[proposalQueue[proposalIndex]];\r\n\r\n //require(getCurrentPeriod() >= proposal.startingPeriod.add(votingPeriodLength).add(gracePeriodLength), \"proposal is not ready to be processed\");\r\n require(proposal.flags[1] == false, \"proposal has already been processed\");\r\n require(proposalIndex == 0 || proposals[proposalQueue[proposalIndex.sub(1)]].flags[1], \"previous proposal must be processed\");\r\n }\r\n\r\n // function _returnDeposit(address sponsor) internal {\r\n // require(\r\n // depositToken.transfer(msg.sender, processingReward),\r\n // \"failed to send processing reward to msg.sender\"\r\n // );\r\n\r\n // require(\r\n // depositToken.transfer(sponsor, proposalDeposit.sub(processingReward)),\r\n // \"failed to return proposal deposit to sponsor\"\r\n // );\r\n //}\r\n\r\n function ragequit(uint256 sharesToBurn, uint256 lootToBurn) public nonReentrant onlyMember {\r\n _ragequit(msg.sender, sharesToBurn, lootToBurn, approvedTokens);\r\n }\r\n\r\n function safeRagequit(uint256 sharesToBurn, uint256 lootToBurn, IERC20[] memory tokenList) public nonReentrant onlyMember {\r\n // all tokens in tokenList must be in the tokenWhitelist\r\n for (uint256 i=0; i < tokenList.length; i++) {\r\n //require(tokenWhitelist[address(tokenList[i])], \"token must be whitelisted\");\r\n\r\n if (i > 0) {\r\n require(tokenList[i] > tokenList[i - 1], \"token list must be unique and in ascending order\");\r\n }\r\n }\r\n\r\n _ragequit(msg.sender, sharesToBurn, lootToBurn, tokenList);\r\n }\r\n\r\n function _ragequit(address memberAddress, uint256 sharesToBurn, uint256 lootToBurn, IERC20[] memory tokenList) internal {\r\n uint256 initialTotalSharesAndLoot = totalShares.add(0);\r\n\r\n Member storage member = members[memberAddress];\r\n\r\n require(member.shares >= sharesToBurn, \"insufficient shares\");\r\n //require(member.loot >= lootToBurn, \"insufficient loot\");\r\n\r\n require(canRagequit(member.highestIndexYesVote), \"cannot ragequit until highest index proposal member voted YES on is processed\");\r\n\r\n //uint256 sharesAndLootToBurn = sharesToBurn.add(lootToBurn);\r\n\r\n // burn shares and loot\r\n member.shares = member.shares.sub(sharesToBurn);\r\n //member.loot = member.loot.sub(lootToBurn);\r\n totalShares = totalShares.sub(sharesToBurn);\r\n //totalLoot = totalLoot.sub(lootToBurn);\r\n\r\n // instruct guildBank to transfer fair share of tokens to the ragequitter\r\n require(\r\n guildBank.withdraw(memberAddress, sharesToBurn, initialTotalSharesAndLoot, tokenList),\r\n \"withdrawal of tokens from guildBank failed\"\r\n );\r\n\r\n emit Ragequit(msg.sender, sharesToBurn, lootToBurn);\r\n }\r\n\r\n // function ragekick(address memberToKick) public nonReentrant {\r\n // Member storage member = members[memberToKick];\r\n\r\n // require(member.jailed != 0, \"member must be in jail\");\r\n // require(member.loot > 0, \"member must have some loot\"); // note - should be impossible for jailed member to have shares\r\n // require(canRagequit(member.highestIndexYesVote), \"cannot ragequit until highest index proposal member voted YES on is processed\");\r\n // require(!canBailout(memberToKick), \"bailoutWait has passed, member must be bailed out\");\r\n\r\n // _ragequit(memberToKick, 0, member.loot, approvedTokens);\r\n // }\r\n\r\n // function bailout(address memberToBail) public nonReentrant {\r\n // Member storage member = members[memberToBail];\r\n\r\n // require(member.jailed != 0, \"member must be in jail\");\r\n // require(member.loot > 0, \"member must have some loot\"); // note - should be impossible for jailed member to have shares\r\n // require(canBailout(memberToBail), \"cannot bailout yet\");\r\n\r\n // members[summoner].loot = members[summoner].loot.add(member.loot);\r\n // member.loot = 0;\r\n // }\r\n\r\n function cancelProposal(uint256 proposalId) public nonReentrant {\r\n Proposal storage proposal = proposals[proposalId];\r\n require(!proposal.flags[0], \"proposal has already been sponsored\");\r\n require(!proposal.flags[3], \"proposal has already been cancelled\");\r\n require(msg.sender == proposal.proposer, \"solely the proposer can cancel\");\r\n\r\n proposal.flags[3] = true; // cancelled\r\n\r\n require(\r\n proposal.tributeToken.transfer(proposal.proposer, proposal.tributeOffered),\r\n \"failed to return tribute to proposer\"\r\n );\r\n\r\n emit CancelProposal(proposalId, msg.sender);\r\n }\r\n\r\n // function updateDelegateKey(address newDelegateKey) public nonReentrant onlyShareholder {\r\n // require(newDelegateKey != address(0), \"newDelegateKey cannot be 0\");\r\n\r\n // // skip checks if member is setting the delegate key to their member address\r\n // if (newDelegateKey != msg.sender) {\r\n // require(!members[newDelegateKey].exists, \"cannot overwrite existing members\");\r\n // require(!members[memberAddressByDelegateKey[newDelegateKey]].exists, \"cannot overwrite existing delegate keys\");\r\n // }\r\n\r\n // Member storage member = members[msg.sender];\r\n // memberAddressByDelegateKey[member.delegateKey] = address(0);\r\n // memberAddressByDelegateKey[newDelegateKey] = msg.sender;\r\n // member.delegateKey = newDelegateKey;\r\n\r\n // emit UpdateDelegateKey(msg.sender, newDelegateKey);\r\n // }\r\n\r\n /***************\r\n GETTER FUNCTIONS\r\n ***************/\r\n function max(uint256 x, uint256 y) internal pure returns (uint256) {\r\n return x >= y ? x : y;\r\n }\r\n\r\n function getCurrentPeriod() public view returns (uint256) {\r\n return now.sub(summoningTime).div(periodDuration);\r\n }\r\n\r\n function getProposalQueueLength() public view returns (uint256) {\r\n return proposalQueue.length;\r\n }\r\n\r\n function getProposalFlags(uint256 proposalId) public view returns (bool[6] memory) {\r\n return proposals[proposalId].flags;\r\n }\r\n\r\n // can only ragequit if the latest proposal you voted YES on has been processed\r\n function canRagequit(uint256 highestIndexYesVote) public view returns (bool) {\r\n require(highestIndexYesVote < proposalQueue.length, \"proposal does not exist\");\r\n return proposals[proposalQueue[highestIndexYesVote]].flags[1];\r\n }\r\n\r\n // function canBailout(address memberToBail) public view returns (bool) {\r\n // Member memory member = members[memberToBail];\r\n\r\n // // get the starting period of the proposal to start the bailout wait from\r\n // // - either the guild kick proposal or the member's highest index yes vote\r\n // uint256 bailoutWaitStartingPeriod = member.highestIndexYesVote > member.jailed\r\n // ? proposals[proposalQueue[member.highestIndexYesVote]].startingPeriod\r\n // : proposals[proposalQueue[member.jailed]].startingPeriod;\r\n\r\n // // bailout wait starts after proposal grace period ends\r\n // return getCurrentPeriod() >= bailoutWaitStartingPeriod.add(votingPeriodLength).add(gracePeriodLength).add(bailoutWait);\r\n // }\r\n\r\n function hasVotingPeriodExpired(uint256 startingPeriod) public view returns (bool) {\r\n return getCurrentPeriod() >= startingPeriod.add(votingPeriodLength);\r\n }\r\n\r\n function getMemberProposalVote(address memberAddress, uint256 proposalIndex) public view returns (Vote) {\r\n require(members[memberAddress].exists, \"member does not exist\");\r\n require(proposalIndex < proposalQueue.length, \"proposal does not exist\");\r\n return proposals[proposalQueue[proposalIndex]].votesByMember[memberAddress];\r\n }\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\Moloch.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Moloch.sol", - "exportedSymbols": { - "Moloch": [ - 9115 - ] - }, - "id": 9116, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7660, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:15" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "./oz/SafeMath.sol", - "id": 7661, - "nodeType": "ImportDirective", - "scope": 9116, - "sourceUnit": 9858, - "src": "36:27:15", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", - "file": "./oz/IERC20.sol", - "id": 7662, - "nodeType": "ImportDirective", - "scope": 9116, - "sourceUnit": 9720, - "src": "65:25:15", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol", - "file": "./oz/ReentrancyGuard.sol", - "id": 7663, - "nodeType": "ImportDirective", - "scope": 9116, - "sourceUnit": 9750, - "src": "92:34:15", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol", - "file": "./GuildBank.sol", - "id": 7664, - "nodeType": "ImportDirective", - "scope": 9116, - "sourceUnit": 7659, - "src": "128:25:15", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 7665, - "name": "ReentrancyGuard", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9749, - "src": "176:15:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$9749", - "typeString": "contract ReentrancyGuard" - } - }, - "id": 7666, - "nodeType": "InheritanceSpecifier", - "src": "176:15:15" - } - ], - "contractDependencies": [ - 7658, - 9749 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 9115, - "linearizedBaseContracts": [ - 9115, - 9749 - ], - "name": "Moloch", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 7669, - "libraryName": { - "contractScope": null, - "id": 7667, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "205:8:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "199:27:15", - "typeName": { - "id": 7668, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "218:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 7671, - "name": "summoner", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "300:23:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7670, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "300:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7673, - "name": "periodDuration", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "387:29:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7672, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "387:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7675, - "name": "votingPeriodLength", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "485:33:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7674, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "485:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7677, - "name": "gracePeriodLength", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "558:32:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7676, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "558:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7679, - "name": "emergencyProcessingWait", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "630:38:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7678, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "630:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7681, - "name": "proposalDeposit", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "777:30:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7680, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "777:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7683, - "name": "summoningTime", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "1128:28:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7682, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1128:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7685, - "name": "depositToken", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "1207:26:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 7684, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "1207:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7687, - "name": "guildBank", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "1292:26:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - }, - "typeName": { - "contractScope": null, - "id": 7686, - "name": "GuildBank", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7658, - "src": "1292:9:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": true, - "id": 7692, - "name": "MAX_VOTING_PERIOD_LENGTH", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "1576:50:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7688, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1576:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - }, - "id": 7691, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 7689, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1620:2:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3138", - "id": 7690, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1624:2:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "1620:6:15", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - } - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 7697, - "name": "MAX_GRACE_PERIOD_LENGTH", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "1668:49:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7693, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1668:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - }, - "id": 7696, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 7694, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1711:2:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3138", - "id": 7695, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1715:2:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "1711:6:15", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - } - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 7702, - "name": "MAX_NUMBER_OF_SHARES", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "1988:46:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7698, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1988:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - }, - "id": 7701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 7699, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2028:2:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3138", - "id": 7700, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2032:2:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "2028:6:15", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - } - }, - "visibility": "internal" - }, - { - "anonymous": false, - "documentation": null, - "id": 7724, - "name": "SubmitProposal", - "nodeType": "EventDefinition", - "parameters": { - "id": 7723, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7704, - "indexed": false, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 7724, - "src": "2174:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7703, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2174:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7706, - "indexed": true, - "name": "delegateKey", - "nodeType": "VariableDeclaration", - "scope": 7724, - "src": "2197:27:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7705, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2197:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7708, - "indexed": true, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 7724, - "src": "2226:29:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7707, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2226:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7710, - "indexed": true, - "name": "applicant", - "nodeType": "VariableDeclaration", - "scope": 7724, - "src": "2257:25:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7709, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2257:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7712, - "indexed": false, - "name": "sharesRequested", - "nodeType": "VariableDeclaration", - "scope": 7724, - "src": "2284:23:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7711, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2284:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7714, - "indexed": false, - "name": "lootRequested", - "nodeType": "VariableDeclaration", - "scope": 7724, - "src": "2309:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7713, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2309:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7716, - "indexed": false, - "name": "tributeOffered", - "nodeType": "VariableDeclaration", - "scope": 7724, - "src": "2332:22:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7715, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2332:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7718, - "indexed": false, - "name": "tributeToken", - "nodeType": "VariableDeclaration", - "scope": 7724, - "src": "2356:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7717, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2356:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7720, - "indexed": false, - "name": "paymentRequested", - "nodeType": "VariableDeclaration", - "scope": 7724, - "src": "2378:24:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7719, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2378:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7722, - "indexed": false, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 7724, - "src": "2404:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7721, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2404:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2173:252:15" - }, - "src": "2153:273:15" - }, - { - "anonymous": false, - "documentation": null, - "id": 7736, - "name": "SponsorProposal", - "nodeType": "EventDefinition", - "parameters": { - "id": 7735, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7726, - "indexed": true, - "name": "delegateKey", - "nodeType": "VariableDeclaration", - "scope": 7736, - "src": "2454:27:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7725, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2454:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7728, - "indexed": true, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 7736, - "src": "2483:29:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7727, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2483:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7730, - "indexed": false, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 7736, - "src": "2514:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7729, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2514:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7732, - "indexed": false, - "name": "proposalQueueIndex", - "nodeType": "VariableDeclaration", - "scope": 7736, - "src": "2537:26:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7731, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2537:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7734, - "indexed": false, - "name": "startingPeriod", - "nodeType": "VariableDeclaration", - "scope": 7736, - "src": "2565:22:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7733, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2565:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2453:135:15" - }, - "src": "2432:157:15" - }, - { - "anonymous": false, - "documentation": null, - "id": 7746, - "name": "SubmitVote", - "nodeType": "EventDefinition", - "parameters": { - "id": 7745, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7738, - "indexed": true, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 7746, - "src": "2612:29:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7737, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2612:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7740, - "indexed": true, - "name": "delegateKey", - "nodeType": "VariableDeclaration", - "scope": 7746, - "src": "2643:27:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7739, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2643:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7742, - "indexed": true, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 7746, - "src": "2672:29:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7741, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2672:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7744, - "indexed": false, - "name": "uintVote", - "nodeType": "VariableDeclaration", - "scope": 7746, - "src": "2703:14:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 7743, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "2703:5:15", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2611:107:15" - }, - "src": "2595:124:15" - }, - { - "anonymous": false, - "documentation": null, - "id": 7754, - "name": "ProcessProposal", - "nodeType": "EventDefinition", - "parameters": { - "id": 7753, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7748, - "indexed": true, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 7754, - "src": "2747:29:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7747, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2747:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7750, - "indexed": true, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 7754, - "src": "2778:26:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7749, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2778:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7752, - "indexed": false, - "name": "didPass", - "nodeType": "VariableDeclaration", - "scope": 7754, - "src": "2806:12:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7751, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2806:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2746:73:15" - }, - "src": "2725:95:15" - }, - { - "anonymous": false, - "documentation": null, - "id": 7762, - "name": "Ragequit", - "nodeType": "EventDefinition", - "parameters": { - "id": 7761, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7756, - "indexed": true, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 7762, - "src": "2841:29:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7755, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2841:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7758, - "indexed": false, - "name": "sharesToBurn", - "nodeType": "VariableDeclaration", - "scope": 7762, - "src": "2872:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7757, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2872:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7760, - "indexed": false, - "name": "lootToBurn", - "nodeType": "VariableDeclaration", - "scope": 7762, - "src": "2894:18:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7759, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2894:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2840:73:15" - }, - "src": "2826:88:15" - }, - { - "anonymous": false, - "documentation": null, - "id": 7768, - "name": "CancelProposal", - "nodeType": "EventDefinition", - "parameters": { - "id": 7767, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7764, - "indexed": true, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 7768, - "src": "2941:29:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7763, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2941:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7766, - "indexed": false, - "name": "applicantAddress", - "nodeType": "VariableDeclaration", - "scope": 7768, - "src": "2972:24:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7765, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2972:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2940:57:15" - }, - "src": "2920:78:15" - }, - { - "anonymous": false, - "documentation": null, - "id": 7774, - "name": "UpdateDelegateKey", - "nodeType": "EventDefinition", - "parameters": { - "id": 7773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7770, - "indexed": true, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 7774, - "src": "3028:29:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3028:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7772, - "indexed": false, - "name": "newDelegateKey", - "nodeType": "VariableDeclaration", - "scope": 7774, - "src": "3059:22:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7771, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3059:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3027:55:15" - }, - "src": "3004:79:15" - }, - { - "anonymous": false, - "documentation": null, - "id": 7780, - "name": "SummonComplete", - "nodeType": "EventDefinition", - "parameters": { - "id": 7779, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7776, - "indexed": true, - "name": "summoner", - "nodeType": "VariableDeclaration", - "scope": 7780, - "src": "3110:24:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7775, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3110:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7778, - "indexed": false, - "name": "shares", - "nodeType": "VariableDeclaration", - "scope": 7780, - "src": "3136:14:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7777, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3136:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3109:42:15" - }, - "src": "3089:63:15" - }, - { - "constant": false, - "id": 7783, - "name": "proposalCount", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "3244:32:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7781, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3244:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 7782, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3275:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 7786, - "name": "totalShares", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "3312:30:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7784, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3312:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 7785, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3341:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 7789, - "name": "emergencyWarning", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "3456:36:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7787, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3456:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 7788, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3487:5:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 7792, - "name": "lastEmergencyProposalIndex", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "3555:45:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7790, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3555:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 7791, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3599:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "canonicalName": "Moloch.Vote", - "id": 7796, - "members": [ - { - "id": 7793, - "name": "Null", - "nodeType": "EnumValue", - "src": "3697:4:15" - }, - { - "id": 7794, - "name": "Yes", - "nodeType": "EnumValue", - "src": "3752:3:15" - }, - { - "id": 7795, - "name": "No", - "nodeType": "EnumValue", - "src": "3766:2:15" - } - ], - "name": "Vote", - "nodeType": "EnumDefinition", - "src": "3676:99:15" - }, - { - "canonicalName": "Moloch.Member", - "id": 7805, - "members": [ - { - "constant": false, - "id": 7798, - "name": "delegateKey", - "nodeType": "VariableDeclaration", - "scope": 7805, - "src": "3808:19:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7797, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3808:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7800, - "name": "shares", - "nodeType": "VariableDeclaration", - "scope": 7805, - "src": "3941:14:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7799, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3941:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7802, - "name": "exists", - "nodeType": "VariableDeclaration", - "scope": 7805, - "src": "4120:11:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7801, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4120:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7804, - "name": "highestIndexYesVote", - "nodeType": "VariableDeclaration", - "scope": 7805, - "src": "4188:27:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7803, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4188:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Member", - "nodeType": "StructDefinition", - "scope": 9115, - "src": "3783:643:15", - "visibility": "public" - }, - { - "canonicalName": "Moloch.Proposal", - "id": 7842, - "members": [ - { - "constant": false, - "id": 7807, - "name": "applicant", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "4461:17:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7806, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4461:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7809, - "name": "proposer", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "4627:16:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7808, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4627:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7811, - "name": "sponsor", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "4717:15:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7810, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4717:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7813, - "name": "sharesRequested", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "4812:23:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4812:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7815, - "name": "lootRequested", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "4893:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7814, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4893:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7817, - "name": "tributeOffered", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "4975:22:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7816, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4975:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7819, - "name": "tributeToken", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "5047:19:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 7818, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "5047:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7821, - "name": "paymentRequested", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "5113:24:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7820, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5113:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7823, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "5189:19:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 7822, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "5189:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7825, - "name": "startingPeriod", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "5255:22:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7824, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5255:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7827, - "name": "yesVotes", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "5346:16:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7826, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5346:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7829, - "name": "noVotes", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "5424:15:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7828, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5424:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7833, - "name": "flags", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "5500:13:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", - "typeString": "bool[6]" - }, - "typeName": { - "baseType": { - "id": 7830, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5500:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7832, - "length": { - "argumentTypes": null, - "hexValue": "36", - "id": 7831, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5505:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - }, - "value": "6" - }, - "nodeType": "ArrayTypeName", - "src": "5500:7:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", - "typeString": "bool[6]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7835, - "name": "details", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "5592:14:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 7834, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5592:6:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7837, - "name": "maxTotalSharesAndLootAtYesVote", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "5678:38:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7836, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5678:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7841, - "name": "votesByMember", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "5803:38:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$7796_$", - "typeString": "mapping(address => enum Moloch.Vote)" - }, - "typeName": { - "id": 7840, - "keyType": { - "id": 7838, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5811:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "5803:24:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$7796_$", - "typeString": "mapping(address => enum Moloch.Vote)" - }, - "valueType": { - "contractScope": null, - "id": 7839, - "name": "Vote", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7796, - "src": "5822:4:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Proposal", - "nodeType": "StructDefinition", - "scope": 9115, - "src": "4434:1460:15", - "visibility": "public" - }, - { - "constant": false, - "id": 7845, - "name": "approvedTokens", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "5957:30:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage", - "typeString": "contract IERC20[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 7843, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "5957:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 7844, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5957:8:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage_ptr", - "typeString": "contract IERC20[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7849, - "name": "members", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "6113:41:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member)" - }, - "typeName": { - "id": 7848, - "keyType": { - "id": 7846, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6121:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "6113:26:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member)" - }, - "valueType": { - "contractScope": null, - "id": 7847, - "name": "Member", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7805, - "src": "6132:6:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7853, - "name": "memberAddressByDelegateKey", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "6161:61:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "typeName": { - "id": 7852, - "keyType": { - "id": 7850, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6169:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "6161:27:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "valueType": { - "id": 7851, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6180:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7857, - "name": "proposals", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "6231:45:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal)" - }, - "typeName": { - "id": 7856, - "keyType": { - "id": 7854, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6239:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "6231:28:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal)" - }, - "valueType": { - "contractScope": null, - "id": 7855, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7842, - "src": "6250:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7860, - "name": "proposalQueue", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "6285:30:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 7858, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6285:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7859, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6285:9:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 7874, - "nodeType": "Block", - "src": "6344:87:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7863, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "6363:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 7866, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7864, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6371:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 7865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6371:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6363:19:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "id": 7867, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 7800, - "src": "6363:26:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7868, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6392:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6363:30:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f742061206d656d626572", - "id": 7870, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6396:14:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8a38730a0a31747b89b97e72db1b281f9d6fdcc9116c7bee85aba010b162e996", - "typeString": "literal_string \"not a member\"" - }, - "value": "not a member" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8a38730a0a31747b89b97e72db1b281f9d6fdcc9116c7bee85aba010b162e996", - "typeString": "literal_string \"not a member\"" - } - ], - "id": 7862, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "6355:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6355:56:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7872, - "nodeType": "ExpressionStatement", - "src": "6355:56:15" - }, - { - "id": 7873, - "nodeType": "PlaceholderStatement", - "src": "6422:1:15" - } - ] - }, - "documentation": null, - "id": 7875, - "name": "onlyMember", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 7861, - "nodeType": "ParameterList", - "parameters": [], - "src": "6344:0:15" - }, - "src": "6324:107:15", - "visibility": "internal" - }, - { - "body": { - "id": 7889, - "nodeType": "Block", - "src": "6464:91:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7884, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7878, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "6483:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 7881, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7879, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6491:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 7880, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6491:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6483:19:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "id": 7882, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 7800, - "src": "6483:26:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7883, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6512:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6483:30:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f742061207368617265686f6c646572", - "id": 7885, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6515:19:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f04c1891c0a18f803b467b9992e2d2738663e155d08d2aaee274da8a131a0bdb", - "typeString": "literal_string \"not a shareholder\"" - }, - "value": "not a shareholder" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f04c1891c0a18f803b467b9992e2d2738663e155d08d2aaee274da8a131a0bdb", - "typeString": "literal_string \"not a shareholder\"" - } - ], - "id": 7877, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "6475:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7886, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6475:60:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7887, - "nodeType": "ExpressionStatement", - "src": "6475:60:15" - }, - { - "id": 7888, - "nodeType": "PlaceholderStatement", - "src": "6546:1:15" - } - ] - }, - "documentation": null, - "id": 7890, - "name": "onlyShareholder", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 7876, - "nodeType": "ParameterList", - "parameters": [], - "src": "6464:0:15" - }, - "src": "6439:116:15", - "visibility": "internal" - }, - { - "body": { - "id": 7906, - "nodeType": "Block", - "src": "6585:116:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7893, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "6604:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 7898, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7894, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7853, - "src": "6612:26:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 7897, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7895, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6639:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 7896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6639:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6612:38:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6604:47:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "id": 7899, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 7800, - "src": "6604:54:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7900, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6661:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6604:58:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f7420612064656c6567617465", - "id": 7902, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6664:16:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4d2048a93053cc7fa7807c657f537fc9d130edf6819e714c97d45589e5ba66dc", - "typeString": "literal_string \"not a delegate\"" - }, - "value": "not a delegate" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4d2048a93053cc7fa7807c657f537fc9d130edf6819e714c97d45589e5ba66dc", - "typeString": "literal_string \"not a delegate\"" - } - ], - "id": 7892, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "6596:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6596:85:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7904, - "nodeType": "ExpressionStatement", - "src": "6596:85:15" - }, - { - "id": 7905, - "nodeType": "PlaceholderStatement", - "src": "6692:1:15" - } - ] - }, - "documentation": null, - "id": 7907, - "name": "onlyDelegate", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 7891, - "nodeType": "ParameterList", - "parameters": [], - "src": "6585:0:15" - }, - "src": "6563:138:15", - "visibility": "internal" - }, - { - "body": { - "id": 8086, - "nodeType": "Block", - "src": "7094:2188:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 7937, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7933, - "name": "_summoner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7909, - "src": "7113:9:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 7935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7134:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 7934, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7126:7:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 7936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7126:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7113:23:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "73756d6d6f6e65722063616e6e6f742062652030", - "id": 7938, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7138:22:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e18bccdb58063a7f6628b2785d4b67ba1d84d6f9ced86e1185ad4b056fddad91", - "typeString": "literal_string \"summoner cannot be 0\"" - }, - "value": "summoner cannot be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e18bccdb58063a7f6628b2785d4b67ba1d84d6f9ced86e1185ad4b056fddad91", - "typeString": "literal_string \"summoner cannot be 0\"" - } - ], - "id": 7932, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7105:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7939, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7105:56:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7940, - "nodeType": "ExpressionStatement", - "src": "7105:56:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7942, - "name": "_periodDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7915, - "src": "7180:15:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7943, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7198:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7180:19:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f706572696f644475726174696f6e2063616e6e6f742062652030", - "id": 7945, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7201:29:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_dcaa7db0431116123c67314944edc83f1ee2d0251a1b070940664f004c74012d", - "typeString": "literal_string \"_periodDuration cannot be 0\"" - }, - "value": "_periodDuration cannot be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_dcaa7db0431116123c67314944edc83f1ee2d0251a1b070940664f004c74012d", - "typeString": "literal_string \"_periodDuration cannot be 0\"" - } - ], - "id": 7941, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7172:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7172:59:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7947, - "nodeType": "ExpressionStatement", - "src": "7172:59:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7951, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7949, - "name": "_votingPeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7917, - "src": "7250:19:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7950, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7272:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7250:23:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f766f74696e67506572696f644c656e6774682063616e6e6f742062652030", - "id": 7952, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7275:33:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_90c9559254cdd6a8c5e39e97417540a97cc2c7e6b004410ebb33d7f7769bc53b", - "typeString": "literal_string \"_votingPeriodLength cannot be 0\"" - }, - "value": "_votingPeriodLength cannot be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_90c9559254cdd6a8c5e39e97417540a97cc2c7e6b004410ebb33d7f7769bc53b", - "typeString": "literal_string \"_votingPeriodLength cannot be 0\"" - } - ], - "id": 7948, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7242:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7953, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7242:67:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7954, - "nodeType": "ExpressionStatement", - "src": "7242:67:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7956, - "name": "_votingPeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7917, - "src": "7328:19:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 7957, - "name": "MAX_VOTING_PERIOD_LENGTH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7692, - "src": "7351:24:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7328:47:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f766f74696e67506572696f644c656e6774682065786365656473206c696d6974", - "id": 7959, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7377:35:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7cba4ff2b7c48d54c20d93277dca7b9500525168ffa3f2b94651177b72c45612", - "typeString": "literal_string \"_votingPeriodLength exceeds limit\"" - }, - "value": "_votingPeriodLength exceeds limit" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7cba4ff2b7c48d54c20d93277dca7b9500525168ffa3f2b94651177b72c45612", - "typeString": "literal_string \"_votingPeriodLength exceeds limit\"" - } - ], - "id": 7955, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7320:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7320:93:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7961, - "nodeType": "ExpressionStatement", - "src": "7320:93:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7963, - "name": "_gracePeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7919, - "src": "7432:18:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 7964, - "name": "MAX_GRACE_PERIOD_LENGTH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7697, - "src": "7454:23:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7432:45:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f6772616365506572696f644c656e6774682065786365656473206c696d6974", - "id": 7966, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7479:34:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_94e4c02e557a13b96fee3c87ad3ed501d16c78e01ccadd26d54a03a2773f4e60", - "typeString": "literal_string \"_gracePeriodLength exceeds limit\"" - }, - "value": "_gracePeriodLength exceeds limit" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_94e4c02e557a13b96fee3c87ad3ed501d16c78e01ccadd26d54a03a2773f4e60", - "typeString": "literal_string \"_gracePeriodLength exceeds limit\"" - } - ], - "id": 7962, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7424:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7424:90:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7968, - "nodeType": "ExpressionStatement", - "src": "7424:90:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7970, - "name": "_emergencyProcessingWait", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7921, - "src": "7533:24:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7971, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7560:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7533:28:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f656d657267656e637950726f63657373696e67576169742063616e6e6f742062652030", - "id": 7973, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7563:38:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bbc33dc034ca97464527af241134c23d7681bf4b99d8886c6c16474b9fa58717", - "typeString": "literal_string \"_emergencyProcessingWait cannot be 0\"" - }, - "value": "_emergencyProcessingWait cannot be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_bbc33dc034ca97464527af241134c23d7681bf4b99d8886c6c16474b9fa58717", - "typeString": "literal_string \"_emergencyProcessingWait cannot be 0\"" - } - ], - "id": 7969, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7525:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7974, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7525:77:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7975, - "nodeType": "ExpressionStatement", - "src": "7525:77:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7980, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7977, - "name": "_approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7913, - "src": "7988:15:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - } - }, - "id": 7978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7988:22:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7979, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8013:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7988:26:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e656564206174206c65617374206f6e6520617070726f76656420746f6b656e", - "id": 7981, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8016:34:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c6d3134f6bde8083414251001f93c467973bb02a0dc01b762665902389253170", - "typeString": "literal_string \"need at least one approved token\"" - }, - "value": "need at least one approved token" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c6d3134f6bde8083414251001f93c467973bb02a0dc01b762665902389253170", - "typeString": "literal_string \"need at least one approved token\"" - } - ], - "id": 7976, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7980:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7980:71:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7983, - "nodeType": "ExpressionStatement", - "src": "7980:71:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 7986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7984, - "name": "summoner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7671, - "src": "8184:8:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 7985, - "name": "_summoner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7909, - "src": "8195:9:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8184:20:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7987, - "nodeType": "ExpressionStatement", - "src": "8184:20:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 7994, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7988, - "name": "depositToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7685, - "src": "8217:12:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7990, - "name": "_approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7913, - "src": "8239:15:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - } - }, - "id": 7992, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7991, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8255:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8239:18:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7989, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9719, - "src": "8232:6:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 7993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8232:26:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "src": "8217:41:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 7995, - "nodeType": "ExpressionStatement", - "src": "8217:41:15" - }, - { - "body": { - "id": 8028, - "nodeType": "Block", - "src": "8324:307:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8008, - "name": "_approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7913, - "src": "8347:15:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - } - }, - "id": 8010, - "indexExpression": { - "argumentTypes": null, - "id": 8009, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7997, - "src": "8363:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8347:18:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8012, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8377:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8011, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8369:7:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8013, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8369:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "8347:32:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f617070726f766564546f6b656e2063616e6e6f742062652030", - "id": 8015, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8381:28:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b40b09ae38f1346b8a26ea643f189c8d547e60b5d4d63ceb6e8e43507dd5bc8", - "typeString": "literal_string \"_approvedToken cannot be 0\"" - }, - "value": "_approvedToken cannot be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5b40b09ae38f1346b8a26ea643f189c8d547e60b5d4d63ceb6e8e43507dd5bc8", - "typeString": "literal_string \"_approvedToken cannot be 0\"" - } - ], - "id": 8007, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "8339:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8339:71:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8017, - "nodeType": "ExpressionStatement", - "src": "8339:71:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8022, - "name": "_approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7913, - "src": "8599:15:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - } - }, - "id": 8024, - "indexExpression": { - "argumentTypes": null, - "id": 8023, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7997, - "src": "8615:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8599:18:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8021, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9719, - "src": "8592:6:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 8025, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8592:26:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - ], - "expression": { - "argumentTypes": null, - "id": 8018, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7845, - "src": "8572:14:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage", - "typeString": "contract IERC20[] storage ref" - } - }, - "id": 8020, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8572:19:15", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_IERC20_$9719_$returns$_t_uint256_$", - "typeString": "function (contract IERC20) returns (uint256)" - } - }, - "id": 8026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8572:47:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8027, - "nodeType": "ExpressionStatement", - "src": "8572:47:15" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8000, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7997, - "src": "8291:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8001, - "name": "_approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7913, - "src": "8295:15:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - } - }, - "id": 8002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8295:22:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8291:26:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8029, - "initializationExpression": { - "assignments": [ - 7997 - ], - "declarations": [ - { - "constant": false, - "id": 7997, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 8029, - "src": "8276:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7996, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8276:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7999, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 7998, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8288:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "8276:13:15" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 8005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "8319:3:15", - "subExpression": { - "argumentTypes": null, - "id": 8004, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7997, - "src": "8319:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8006, - "nodeType": "ExpressionStatement", - "src": "8319:3:15" - }, - "nodeType": "ForStatement", - "src": "8271:360:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8030, - "name": "guildBank", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7687, - "src": "8643:9:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "8655:13:15", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_GuildBank_$7658_$", - "typeString": "function () returns (contract GuildBank)" - }, - "typeName": { - "contractScope": null, - "id": 8031, - "name": "GuildBank", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7658, - "src": "8659:9:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - } - }, - "id": 8033, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8655:15:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - }, - "src": "8643:27:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - }, - "id": 8035, - "nodeType": "ExpressionStatement", - "src": "8643:27:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8036, - "name": "periodDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7673, - "src": "8683:14:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8037, - "name": "_periodDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7915, - "src": "8700:15:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8683:32:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8039, - "nodeType": "ExpressionStatement", - "src": "8683:32:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8042, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8040, - "name": "votingPeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7675, - "src": "8726:18:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8041, - "name": "_votingPeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7917, - "src": "8747:19:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8726:40:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8043, - "nodeType": "ExpressionStatement", - "src": "8726:40:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8046, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8044, - "name": "gracePeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7677, - "src": "8777:17:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8045, - "name": "_gracePeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7919, - "src": "8797:18:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8777:38:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8047, - "nodeType": "ExpressionStatement", - "src": "8777:38:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8048, - "name": "emergencyProcessingWait", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7679, - "src": "8826:23:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8049, - "name": "_emergencyProcessingWait", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7921, - "src": "8852:24:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8826:50:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8051, - "nodeType": "ExpressionStatement", - "src": "8826:50:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8052, - "name": "proposalDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7681, - "src": "8926:15:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8053, - "name": "_proposalDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7925, - "src": "8944:16:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8926:34:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8055, - "nodeType": "ExpressionStatement", - "src": "8926:34:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8058, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8056, - "name": "summoningTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7683, - "src": "9065:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8057, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10413, - "src": "9081:3:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9065:19:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8059, - "nodeType": "ExpressionStatement", - "src": "9065:19:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8069, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8060, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "9097:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 8062, - "indexExpression": { - "argumentTypes": null, - "id": 8061, - "name": "summoner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7671, - "src": "9105:8:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9097:17:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8064, - "name": "summoner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7671, - "src": "9124:8:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "31", - "id": 8065, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9134:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8066, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9137:4:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 8067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9143:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8063, - "name": "Member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7805, - "src": "9117:6:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Member_$7805_storage_ptr_$", - "typeString": "type(struct Moloch.Member storage pointer)" - } - }, - "id": 8068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9117:28:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_memory", - "typeString": "struct Moloch.Member memory" - } - }, - "src": "9097:48:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "id": 8070, - "nodeType": "ExpressionStatement", - "src": "9097:48:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8075, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8071, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7853, - "src": "9156:26:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 8073, - "indexExpression": { - "argumentTypes": null, - "id": 8072, - "name": "summoner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7671, - "src": "9183:8:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9156:36:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8074, - "name": "summoner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7671, - "src": "9195:8:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "9156:47:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8076, - "nodeType": "ExpressionStatement", - "src": "9156:47:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8077, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7786, - "src": "9214:11:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 8078, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9228:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9214:15:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8080, - "nodeType": "ExpressionStatement", - "src": "9214:15:15" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8082, - "name": "summoner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7671, - "src": "9262:8:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "31", - "id": 8083, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9272:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 8081, - "name": "SummonComplete", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7780, - "src": "9247:14:15", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 8084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9247:27:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8085, - "nodeType": "EmitStatement", - "src": "9242:32:15" - } - ] - }, - "documentation": null, - "id": 8087, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7930, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7909, - "name": "_summoner", - "nodeType": "VariableDeclaration", - "scope": 8087, - "src": "6731:17:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7908, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6731:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7913, - "name": "_approvedTokens", - "nodeType": "VariableDeclaration", - "scope": 8087, - "src": "6759:33:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1]" - }, - "typeName": { - "baseType": { - "id": 7910, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6759:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7912, - "length": { - "argumentTypes": null, - "hexValue": "31", - "id": 7911, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6767:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "ArrayTypeName", - "src": "6759:10:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_storage_ptr", - "typeString": "address[1]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7915, - "name": "_periodDuration", - "nodeType": "VariableDeclaration", - "scope": 8087, - "src": "6803:23:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7914, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6803:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7917, - "name": "_votingPeriodLength", - "nodeType": "VariableDeclaration", - "scope": 8087, - "src": "6837:27:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7916, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6837:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7919, - "name": "_gracePeriodLength", - "nodeType": "VariableDeclaration", - "scope": 8087, - "src": "6875:26:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7918, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6875:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7921, - "name": "_emergencyProcessingWait", - "nodeType": "VariableDeclaration", - "scope": 8087, - "src": "6912:32:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7920, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6912:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7923, - "name": "_bailoutWait", - "nodeType": "VariableDeclaration", - "scope": 8087, - "src": "6955:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7922, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6955:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7925, - "name": "_proposalDeposit", - "nodeType": "VariableDeclaration", - "scope": 8087, - "src": "6986:24:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7924, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6986:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7927, - "name": "_dilutionBound", - "nodeType": "VariableDeclaration", - "scope": 8087, - "src": "7021:22:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7926, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7021:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7929, - "name": "_processingReward", - "nodeType": "VariableDeclaration", - "scope": 8087, - "src": "7054:25:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7928, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7054:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6720:366:15" - }, - "returnParameters": { - "id": 7931, - "nodeType": "ParameterList", - "parameters": [], - "src": "7094:0:15" - }, - "scope": 9115, - "src": "6709:2573:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8148, - "nodeType": "Block", - "src": "9698:1003:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8113, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8111, - "name": "sharesRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8091, - "src": "9717:15:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 8112, - "name": "MAX_NUMBER_OF_SHARES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7702, - "src": "9736:20:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9717:39:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6f206d616e792073686172657320726571756573746564", - "id": 8114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9758:27:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_584b3bdfa816bf4fa30756567c0526c04441dc54230f4ba83c195ee6f0a70758", - "typeString": "literal_string \"too many shares requested\"" - }, - "value": "too many shares requested" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_584b3bdfa816bf4fa30756567c0526c04441dc54230f4ba83c195ee6f0a70758", - "typeString": "literal_string \"too many shares requested\"" - } - ], - "id": 8110, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "9709:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9709:77:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8116, - "nodeType": "ExpressionStatement", - "src": "9709:77:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8118, - "name": "applicant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8089, - "src": "9970:9:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9991:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8119, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9983:7:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8121, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9983:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "9970:23:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6170706c6963616e742063616e6e6f742062652030", - "id": 8123, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9995:23:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9ab093dd894be784ee3143d9792a50bf0275e1dda1505d8ede42bc26455cf276", - "typeString": "literal_string \"applicant cannot be 0\"" - }, - "value": "applicant cannot be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9ab093dd894be784ee3143d9792a50bf0275e1dda1505d8ede42bc26455cf276", - "typeString": "literal_string \"applicant cannot be 0\"" - } - ], - "id": 8117, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "9962:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9962:57:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8125, - "nodeType": "ExpressionStatement", - "src": "9962:57:15" - }, - { - "assignments": [ - 8130 - ], - "declarations": [ - { - "constant": false, - "id": 8130, - "name": "flags", - "nodeType": "VariableDeclaration", - "scope": 8148, - "src": "10359:20:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6]" - }, - "typeName": { - "baseType": { - "id": 8128, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10359:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8129, - "length": { - "argumentTypes": null, - "hexValue": "36", - "id": 8127, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10364:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - }, - "value": "6" - }, - "nodeType": "ArrayTypeName", - "src": "10359:7:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", - "typeString": "bool[6]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8131, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "10359:20:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8133, - "name": "applicant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8089, - "src": "10476:9:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8134, - "name": "sharesRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8091, - "src": "10487:15:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8135, - "name": "lootRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8093, - "src": "10504:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8136, - "name": "tributeOffered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8095, - "src": "10519:14:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8137, - "name": "tributeToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8097, - "src": "10535:12:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8138, - "name": "paymentRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8099, - "src": "10549:16:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8139, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8101, - "src": "10567:12:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8140, - "name": "details", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8103, - "src": "10581:7:15", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 8141, - "name": "flags", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8130, - "src": "10590:5:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6] memory" - } - ], - "id": 8132, - "name": "_submitProposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8231, - "src": "10460:15:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_array$_t_bool_$6_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,uint256,uint256,address,uint256,address,string memory,bool[6] memory)" - } - }, - "id": 8142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10460:136:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8143, - "nodeType": "ExpressionStatement", - "src": "10460:136:15" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8146, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8144, - "name": "proposalCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7783, - "src": "10614:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 8145, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10630:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "10614:17:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 8109, - "id": 8147, - "nodeType": "Return", - "src": "10607:24:15" - } - ] - }, - "documentation": "***************\r\nPROPOSAL FUNCTIONS\r****************", - "id": 8149, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 8106, - "modifierName": { - "argumentTypes": null, - "id": 8105, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9748, - "src": "9656:12:15", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9656:12:15" - } - ], - "name": "submitProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8104, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8089, - "name": "applicant", - "nodeType": "VariableDeclaration", - "scope": 8149, - "src": "9396:17:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8088, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9396:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8091, - "name": "sharesRequested", - "nodeType": "VariableDeclaration", - "scope": 8149, - "src": "9424:23:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8090, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9424:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8093, - "name": "lootRequested", - "nodeType": "VariableDeclaration", - "scope": 8149, - "src": "9458:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8092, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9458:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8095, - "name": "tributeOffered", - "nodeType": "VariableDeclaration", - "scope": 8149, - "src": "9490:22:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8094, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9490:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8097, - "name": "tributeToken", - "nodeType": "VariableDeclaration", - "scope": 8149, - "src": "9523:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8096, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9523:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8099, - "name": "paymentRequested", - "nodeType": "VariableDeclaration", - "scope": 8149, - "src": "9554:24:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8098, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9554:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8101, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 8149, - "src": "9589:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8100, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9589:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8103, - "name": "details", - "nodeType": "VariableDeclaration", - "scope": 8149, - "src": "9620:21:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 8102, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "9620:6:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9385:263:15" - }, - "returnParameters": { - "id": 8109, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8108, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 8149, - "src": "9678:18:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8107, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9678:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9677:20:15" - }, - "scope": 9115, - "src": "9362:1339:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8230, - "nodeType": "Block", - "src": "12407:984:15", - "statements": [ - { - "assignments": [ - 8173 - ], - "declarations": [ - { - "constant": false, - "id": 8173, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 8230, - "src": "12418:24:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", - "typeString": "struct Moloch.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 8172, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7842, - "src": "12418:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8198, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8175, - "name": "applicant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "12481:9:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8176, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "12516:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12516:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8179, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12559:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12551:7:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8180, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12551:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 8181, - "name": "sharesRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8153, - "src": "12594:15:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8182, - "name": "lootRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8155, - "src": "12640:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8183, - "name": "tributeOffered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8157, - "src": "12685:14:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8185, - "name": "tributeToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8159, - "src": "12736:12:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8184, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9719, - "src": "12729:6:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 8186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12729:20:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - { - "argumentTypes": null, - "id": 8187, - "name": "paymentRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "12783:16:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8189, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8163, - "src": "12836:12:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8188, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9719, - "src": "12829:6:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 8190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12829:20:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 8191, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12881:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 8192, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12908:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 8193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12934:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "id": 8194, - "name": "flags", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8169, - "src": "12958:5:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6] memory" - } - }, - { - "argumentTypes": null, - "id": 8195, - "name": "details", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8165, - "src": "12988:7:15", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 8196, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13043:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8174, - "name": "Proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7842, - "src": "12445:8:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Proposal_$7842_storage_ptr_$", - "typeString": "type(struct Moloch.Proposal storage pointer)" - } - }, - "id": 8197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "applicant", - "proposer", - "sponsor", - "sharesRequested", - "lootRequested", - "tributeOffered", - "tributeToken", - "paymentRequested", - "paymentToken", - "startingPeriod", - "yesVotes", - "noVotes", - "flags", - "details", - "maxTotalSharesAndLootAtYesVote" - ], - "nodeType": "FunctionCall", - "src": "12445:611:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_memory", - "typeString": "struct Moloch.Proposal memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12418:638:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8199, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "13069:9:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" - } - }, - "id": 8201, - "indexExpression": { - "argumentTypes": null, - "id": 8200, - "name": "proposalCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7783, - "src": "13079:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13069:24:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8202, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8173, - "src": "13096:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", - "typeString": "struct Moloch.Proposal memory" - } - }, - "src": "13069:35:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "id": 8204, - "nodeType": "ExpressionStatement", - "src": "13069:35:15" - }, - { - "assignments": [ - 8206 - ], - "declarations": [ - { - "constant": false, - "id": 8206, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 8230, - "src": "13115:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8205, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13115:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8211, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8207, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7853, - "src": "13139:26:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 8210, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8208, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "13166:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13166:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13139:38:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13115:62:15" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8213, - "name": "proposalCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7783, - "src": "13208:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8214, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "13223:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13223:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 8216, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8206, - "src": "13235:13:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8217, - "name": "applicant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "13250:9:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8218, - "name": "sharesRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8153, - "src": "13261:15:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8219, - "name": "lootRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8155, - "src": "13278:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8220, - "name": "tributeOffered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8157, - "src": "13293:14:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8221, - "name": "tributeToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8159, - "src": "13309:12:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8222, - "name": "paymentRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "13323:16:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8223, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8163, - "src": "13341:12:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8212, - "name": "SubmitProposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7724, - "src": "13193:14:15", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (uint256,address,address,address,uint256,uint256,uint256,address,uint256,address)" - } - }, - "id": 8224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13193:161:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8225, - "nodeType": "EmitStatement", - "src": "13188:166:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8226, - "name": "proposalCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7783, - "src": "13365:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 8227, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13382:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "13365:18:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8229, - "nodeType": "ExpressionStatement", - "src": "13365:18:15" - } - ] - }, - "documentation": null, - "id": 8231, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_submitProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8151, - "name": "applicant", - "nodeType": "VariableDeclaration", - "scope": 8231, - "src": "12114:17:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8150, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12114:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8153, - "name": "sharesRequested", - "nodeType": "VariableDeclaration", - "scope": 8231, - "src": "12142:23:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8152, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12142:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8155, - "name": "lootRequested", - "nodeType": "VariableDeclaration", - "scope": 8231, - "src": "12176:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8154, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12176:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8157, - "name": "tributeOffered", - "nodeType": "VariableDeclaration", - "scope": 8231, - "src": "12208:22:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8156, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12208:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8159, - "name": "tributeToken", - "nodeType": "VariableDeclaration", - "scope": 8231, - "src": "12241:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8158, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12241:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8161, - "name": "paymentRequested", - "nodeType": "VariableDeclaration", - "scope": 8231, - "src": "12272:24:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8160, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12272:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8163, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 8231, - "src": "12307:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8162, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12307:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8165, - "name": "details", - "nodeType": "VariableDeclaration", - "scope": 8231, - "src": "12338:21:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 8164, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "12338:6:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8169, - "name": "flags", - "nodeType": "VariableDeclaration", - "scope": 8231, - "src": "12370:20:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6]" - }, - "typeName": { - "baseType": { - "id": 8166, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12370:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8168, - "length": { - "argumentTypes": null, - "hexValue": "36", - "id": 8167, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12375:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - }, - "value": "6" - }, - "nodeType": "ArrayTypeName", - "src": "12370:7:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", - "typeString": "bool[6]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12103:294:15" - }, - "returnParameters": { - "id": 8171, - "nodeType": "ParameterList", - "parameters": [], - "src": "12407:0:15" - }, - "scope": 9115, - "src": "12079:1312:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 8346, - "nodeType": "Block", - "src": "13477:1932:15", - "statements": [ - { - "assignments": [ - 8241 - ], - "declarations": [ - { - "constant": false, - "id": 8241, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 8346, - "src": "13732:25:15", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 8240, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7842, - "src": "13732:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8245, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8242, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "13760:9:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" - } - }, - "id": 8244, - "indexExpression": { - "argumentTypes": null, - "id": 8243, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8233, - "src": "13770:10:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13760:21:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13732:49:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8247, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8241, - "src": "13802:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "proposer", - "nodeType": "MemberAccess", - "referencedDeclaration": 7809, - "src": "13802:17:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8250, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13831:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8249, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13823:7:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8251, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13823:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "13802:31:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c206d7573742068617665206265656e2070726f706f736564", - "id": 8253, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13835:34:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ac8dac03073454fa1d404b87251ebaea89a776f599ae35927c3fdc86124e6933", - "typeString": "literal_string \"proposal must have been proposed\"" - }, - "value": "proposal must have been proposed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ac8dac03073454fa1d404b87251ebaea89a776f599ae35927c3fdc86124e6933", - "typeString": "literal_string \"proposal must have been proposed\"" - } - ], - "id": 8246, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "13794:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13794:76:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8255, - "nodeType": "ExpressionStatement", - "src": "13794:76:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "13889:18:15", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8257, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8241, - "src": "13890:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8258, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 7833, - "src": "13890:14:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 8260, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8259, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13905:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13890:17:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c2068617320616c7265616479206265656e2073706f6e736f726564", - "id": 8262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13909:37:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8ce373ba28507085e66e9df24290b9ef61d72fa05638e1221982de773985e387", - "typeString": "literal_string \"proposal has already been sponsored\"" - }, - "value": "proposal has already been sponsored" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8ce373ba28507085e66e9df24290b9ef61d72fa05638e1221982de773985e387", - "typeString": "literal_string \"proposal has already been sponsored\"" - } - ], - "id": 8256, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "13881:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13881:66:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8264, - "nodeType": "ExpressionStatement", - "src": "13881:66:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "13966:18:15", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8266, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8241, - "src": "13967:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8267, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 7833, - "src": "13967:14:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 8269, - "indexExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 8268, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13982:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13967:17:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c20686173206265656e2063616e63656c6c6564", - "id": 8271, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13986:29:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_310ff3a9ce641706ee5130d4a11d082239c2f517d2fdbc264a36cda8e36c8cbd", - "typeString": "literal_string \"proposal has been cancelled\"" - }, - "value": "proposal has been cancelled" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_310ff3a9ce641706ee5130d4a11d082239c2f517d2fdbc264a36cda8e36c8cbd", - "typeString": "literal_string \"proposal has been cancelled\"" - } - ], - "id": 8265, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "13958:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13958:58:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8273, - "nodeType": "ExpressionStatement", - "src": "13958:58:15" - }, - { - "assignments": [ - 8275 - ], - "declarations": [ - { - "constant": false, - "id": 8275, - "name": "startingPeriod", - "nodeType": "VariableDeclaration", - "scope": 8346, - "src": "14800:22:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8274, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14800:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8299, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 8297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14992:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8277, - "name": "getCurrentPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9014, - "src": "14843:16:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 8278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14843:18:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8279, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "14876:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8280, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14876:20:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14900:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "14876:25:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8284, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "14908:9:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" - } - }, - "id": 8292, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8285, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "14918:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8291, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 8289, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14957:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8286, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "14932:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8287, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14932:20:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "14932:24:15", - "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": 8290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14932:27:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14918:42:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14908:53:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "id": 8293, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "startingPeriod", - "nodeType": "MemberAccess", - "referencedDeclaration": 7825, - "src": "14908:68:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "14876:100:15", - "trueExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8283, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14904:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8276, - "name": "max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9000, - "src": "14825:3:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14825:162:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8296, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "14825:166:15", - "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": 8298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14825:169:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14800:194:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8300, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8241, - "src": "15007:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8302, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "startingPeriod", - "nodeType": "MemberAccess", - "referencedDeclaration": 7825, - "src": "15007:23:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8303, - "name": "startingPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8275, - "src": "15033:14:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15007:40:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8305, - "nodeType": "ExpressionStatement", - "src": "15007:40:15" - }, - { - "assignments": [ - 8307 - ], - "declarations": [ - { - "constant": false, - "id": 8307, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 8346, - "src": "15060:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8306, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15060:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8312, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8308, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7853, - "src": "15084:26:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 8311, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8309, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "15111:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15111:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15084:38:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15060:62:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8313, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8241, - "src": "15133:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8315, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "sponsor", - "nodeType": "MemberAccess", - "referencedDeclaration": 7811, - "src": "15133:16:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8316, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8307, - "src": "15152:13:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15133:32:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8318, - "nodeType": "ExpressionStatement", - "src": "15133:32:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8325, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8319, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8241, - "src": "15178:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8322, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 7833, - "src": "15178:14:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 8323, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8321, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15193:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15178:17:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8324, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15198:4:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "15178:24:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8326, - "nodeType": "ExpressionStatement", - "src": "15178:24:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8330, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8233, - "src": "15275:10:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8327, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "15256:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15256:18:15", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 8331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15256:30:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8332, - "nodeType": "ExpressionStatement", - "src": "15256:30:15" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8334, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "15318:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15318:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 8336, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8307, - "src": "15330:13:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8337, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8233, - "src": "15345:10:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 8341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15382:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8338, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "15357:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8339, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15357:20:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8340, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "15357:24:15", - "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": 8342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15357:27:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8343, - "name": "startingPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8275, - "src": "15386:14:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8333, - "name": "SponsorProposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7736, - "src": "15302:15:15", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256,uint256)" - } - }, - "id": 8344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15302:99:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8345, - "nodeType": "EmitStatement", - "src": "15297:104:15" - } - ] - }, - "documentation": null, - "id": 8347, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 8236, - "modifierName": { - "argumentTypes": null, - "id": 8235, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9748, - "src": "13451:12:15", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13451:12:15" - }, - { - "arguments": null, - "id": 8238, - "modifierName": { - "argumentTypes": null, - "id": 8237, - "name": "onlyDelegate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7907, - "src": "13464:12:15", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13464:12:15" - } - ], - "name": "sponsorProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8234, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8233, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 8347, - "src": "13424:18:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8232, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13424:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13423:20:15" - }, - "returnParameters": { - "id": 8239, - "nodeType": "ParameterList", - "parameters": [], - "src": "13477:0:15" - }, - "scope": 9115, - "src": "13399:2010:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8354, - "nodeType": "Block", - "src": "15468:39:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8352, - "name": "proposalCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7783, - "src": "15486:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 8351, - "id": 8353, - "nodeType": "Return", - "src": "15479:20:15" - } - ] - }, - "documentation": null, - "id": 8355, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8348, - "nodeType": "ParameterList", - "parameters": [], - "src": "15436:2:15" - }, - "returnParameters": { - "id": 8351, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8350, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 8355, - "src": "15460:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8349, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15460:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15459:9:15" - }, - "scope": 9115, - "src": "15415:92:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8503, - "nodeType": "Block", - "src": "15613:1701:15", - "statements": [ - { - "assignments": [ - 8367 - ], - "declarations": [ - { - "constant": false, - "id": 8367, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 8503, - "src": "15624:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8366, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15624:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8372, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8368, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7853, - "src": "15648:26:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 8371, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8369, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "15675:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15675:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15648:38:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15624:62:15" - }, - { - "assignments": [ - 8374 - ], - "declarations": [ - { - "constant": false, - "id": 8374, - "name": "member", - "nodeType": "VariableDeclaration", - "scope": 8503, - "src": "15697:21:15", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member" - }, - "typeName": { - "contractScope": null, - "id": 8373, - "name": "Member", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7805, - "src": "15697:6:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8378, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8375, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "15721:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 8377, - "indexExpression": { - "argumentTypes": null, - "id": 8376, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8367, - "src": "15729:13:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15721:22:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15697:46:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8380, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8357, - "src": "15764:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8381, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "15780:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8382, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15780:20:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15764:36:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", - "id": 8384, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15802:25:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - }, - "value": "proposal does not exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - } - ], - "id": 8379, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "15756:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15756:72:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8386, - "nodeType": "ExpressionStatement", - "src": "15756:72:15" - }, - { - "assignments": [ - 8388 - ], - "declarations": [ - { - "constant": false, - "id": 8388, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 8503, - "src": "15839:25:15", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 8387, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7842, - "src": "15839:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8394, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8389, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "15867:9:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" - } - }, - "id": 8393, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8390, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "15877:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8392, - "indexExpression": { - "argumentTypes": null, - "id": 8391, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8357, - "src": "15891:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15877:28:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15867:39:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15839:67:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 8398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8396, - "name": "uintVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8359, - "src": "15927:8:15", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 8397, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "src": "15927:12:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d757374206265206c657373207468616e2033", - "id": 8399, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15941:21:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_707c6bf11f318d88bf3ce18a41621954ec264b68d584313fba9bb644a8e76020", - "typeString": "literal_string \"must be less than 3\"" - }, - "value": "must be less than 3" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_707c6bf11f318d88bf3ce18a41621954ec264b68d584313fba9bb644a8e76020", - "typeString": "literal_string \"must be less than 3\"" - } - ], - "id": 8395, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "15919:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15919:44:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8401, - "nodeType": "ExpressionStatement", - "src": "15919:44:15" - }, - { - "assignments": [ - 8403 - ], - "declarations": [ - { - "constant": false, - "id": 8403, - "name": "vote", - "nodeType": "VariableDeclaration", - "scope": 8503, - "src": "15974:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - }, - "typeName": { - "contractScope": null, - "id": 8402, - "name": "Vote", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7796, - "src": "15974:4:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8407, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8405, - "name": "uintVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8359, - "src": "15991:8:15", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 8404, - "name": "Vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7796, - "src": "15986:4:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Vote_$7796_$", - "typeString": "type(enum Moloch.Vote)" - } - }, - "id": 8406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15986:14:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15974:26:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "16121:48:15", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8410, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8388, - "src": "16145:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8411, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "startingPeriod", - "nodeType": "MemberAccess", - "referencedDeclaration": 7825, - "src": "16145:23:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8409, - "name": "hasVotingPeriodExpired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9079, - "src": "16122:22:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 8412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16122:47:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c20766f74696e6720706572696f64206861732065787069726564", - "id": 8414, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16171:36:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c0ba1a8fcc742113774789a424c824e010e781c8d7353e4ab7ada35c65566c07", - "typeString": "literal_string \"proposal voting period has expired\"" - }, - "value": "proposal voting period has expired" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c0ba1a8fcc742113774789a424c824e010e781c8d7353e4ab7ada35c65566c07", - "typeString": "literal_string \"proposal voting period has expired\"" - } - ], - "id": 8408, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "16113:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16113:95:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8416, - "nodeType": "ExpressionStatement", - "src": "16113:95:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - }, - "id": 8424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8418, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8388, - "src": "16227:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8419, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "votesByMember", - "nodeType": "MemberAccess", - "referencedDeclaration": 7841, - "src": "16227:22:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$7796_$", - "typeString": "mapping(address => enum Moloch.Vote)" - } - }, - "id": 8421, - "indexExpression": { - "argumentTypes": null, - "id": 8420, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8367, - "src": "16250:13:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16227:37:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8422, - "name": "Vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7796, - "src": "16268:4:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Vote_$7796_$", - "typeString": "type(enum Moloch.Vote)" - } - }, - "id": 8423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Null", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16268:9:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "src": "16227:50:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d656d6265722068617320616c726561647920766f746564", - "id": 8425, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16279:26:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7343d72c90cb341bd2f3ab7b007b6dc9c32e041eadcc4b701abd38deefeb2299", - "typeString": "literal_string \"member has already voted\"" - }, - "value": "member has already voted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7343d72c90cb341bd2f3ab7b007b6dc9c32e041eadcc4b701abd38deefeb2299", - "typeString": "literal_string \"member has already voted\"" - } - ], - "id": 8417, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "16219:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16219:87:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8427, - "nodeType": "ExpressionStatement", - "src": "16219:87:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 8437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - }, - "id": 8432, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8429, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8403, - "src": "16325:4:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8430, - "name": "Vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7796, - "src": "16333:4:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Vote_$7796_$", - "typeString": "type(enum Moloch.Vote)" - } - }, - "id": 8431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Yes", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16333:8:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "src": "16325:16:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - }, - "id": 8436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8433, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8403, - "src": "16345:4:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8434, - "name": "Vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7796, - "src": "16353:4:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Vote_$7796_$", - "typeString": "type(enum Moloch.Vote)" - } - }, - "id": 8435, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "No", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16353:7:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "src": "16345:15:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16325:35:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "766f7465206d7573742062652065697468657220596573206f72204e6f", - "id": 8438, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16362:31:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cdbdf7342fd7207f7fe59a7f11b342501ce75d0d11dd200fffb4af998c12a928", - "typeString": "literal_string \"vote must be either Yes or No\"" - }, - "value": "vote must be either Yes or No" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cdbdf7342fd7207f7fe59a7f11b342501ce75d0d11dd200fffb4af998c12a928", - "typeString": "literal_string \"vote must be either Yes or No\"" - } - ], - "id": 8428, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "16317:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16317:77:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8440, - "nodeType": "ExpressionStatement", - "src": "16317:77:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8441, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8388, - "src": "16407:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8444, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "votesByMember", - "nodeType": "MemberAccess", - "referencedDeclaration": 7841, - "src": "16407:22:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$7796_$", - "typeString": "mapping(address => enum Moloch.Vote)" - } - }, - "id": 8445, - "indexExpression": { - "argumentTypes": null, - "id": 8443, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8367, - "src": "16430:13:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16407:37:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8446, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8403, - "src": "16447:4:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "src": "16407:44:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "id": 8448, - "nodeType": "ExpressionStatement", - "src": "16407:44:15" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - }, - "id": 8452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8449, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8403, - "src": "16468:4:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8450, - "name": "Vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7796, - "src": "16476:4:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Vote_$7796_$", - "typeString": "type(enum Moloch.Vote)" - } - }, - "id": 8451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Yes", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16476:8:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "src": "16468:16:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - }, - "id": 8480, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8477, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8403, - "src": "17129:4:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8478, - "name": "Vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7796, - "src": "17137:4:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Vote_$7796_$", - "typeString": "type(enum Moloch.Vote)" - } - }, - "id": 8479, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "No", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17137:7:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "src": "17129:15:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8493, - "nodeType": "IfStatement", - "src": "17125:102:15", - "trueBody": { - "id": 8492, - "nodeType": "Block", - "src": "17146:81:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8481, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8388, - "src": "17161:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8483, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "noVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 7829, - "src": "17161:16:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8487, - "name": "member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8374, - "src": "17201:6:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member storage pointer" - } - }, - "id": 8488, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 7800, - "src": "17201:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8484, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8388, - "src": "17180:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8485, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "noVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 7829, - "src": "17180:16:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "17180:20:15", - "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": 8489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17180:35:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17161:54:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8491, - "nodeType": "ExpressionStatement", - "src": "17161:54:15" - } - ] - } - }, - "id": 8494, - "nodeType": "IfStatement", - "src": "16464:763:15", - "trueBody": { - "id": 8476, - "nodeType": "Block", - "src": "16486:633:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8453, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8388, - "src": "16501:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8455, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "yesVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 7827, - "src": "16501:17:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8459, - "name": "member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8374, - "src": "16543:6:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member storage pointer" - } - }, - "id": 8460, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 7800, - "src": "16543:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8456, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8388, - "src": "16521:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8457, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "yesVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 7827, - "src": "16521:17:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "16521:21:15", - "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": 8461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16521:36:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16501:56:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8463, - "nodeType": "ExpressionStatement", - "src": "16501:56:15" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8464, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8357, - "src": "16673:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8465, - "name": "member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8374, - "src": "16689:6:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member storage pointer" - } - }, - "id": 8466, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "highestIndexYesVote", - "nodeType": "MemberAccess", - "referencedDeclaration": 7804, - "src": "16689:26:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16673:42:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8475, - "nodeType": "IfStatement", - "src": "16669:125:15", - "trueBody": { - "id": 8474, - "nodeType": "Block", - "src": "16717:77:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8472, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8468, - "name": "member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8374, - "src": "16736:6:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member storage pointer" - } - }, - "id": 8470, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "highestIndexYesVote", - "nodeType": "MemberAccess", - "referencedDeclaration": 7804, - "src": "16736:26:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8471, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8357, - "src": "16765:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16736:42:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8473, - "nodeType": "ExpressionStatement", - "src": "16736:42:15" - } - ] - } - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8496, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8357, - "src": "17255:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8497, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "17270:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17270:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 8499, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8367, - "src": "17282:13:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8500, - "name": "uintVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8359, - "src": "17297:8:15", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 8495, - "name": "SubmitVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7746, - "src": "17244:10:15", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint8_$returns$__$", - "typeString": "function (uint256,address,address,uint8)" - } - }, - "id": 8501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17244:62:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8502, - "nodeType": "EmitStatement", - "src": "17239:67:15" - } - ] - }, - "documentation": null, - "id": 8504, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 8362, - "modifierName": { - "argumentTypes": null, - "id": 8361, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9748, - "src": "15587:12:15", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "15587:12:15" - }, - { - "arguments": null, - "id": 8364, - "modifierName": { - "argumentTypes": null, - "id": 8363, - "name": "onlyDelegate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7907, - "src": "15600:12:15", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "15600:12:15" - } - ], - "name": "submitVote", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8357, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 8504, - "src": "15541:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8356, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15541:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8359, - "name": "uintVote", - "nodeType": "VariableDeclaration", - "scope": 8504, - "src": "15564:14:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 8358, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "15564:5:15", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15540:39:15" - }, - "returnParameters": { - "id": 8365, - "nodeType": "ParameterList", - "parameters": [], - "src": "15613:0:15" - }, - "scope": 9115, - "src": "15521:1793:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "constant": false, - "id": 8506, - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "17320:21:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8505, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17320:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 8513, - "nodeType": "Block", - "src": "17399:63:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8511, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8506, - "src": "17417:6:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 8510, - "id": 8512, - "nodeType": "Return", - "src": "17410:13:15" - } - ] - }, - "documentation": null, - "id": 8514, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getResult", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8507, - "nodeType": "ParameterList", - "parameters": [], - "src": "17367:2:15" - }, - "returnParameters": { - "id": 8510, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8509, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 8514, - "src": "17391:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8508, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17391:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17390:9:15" - }, - "scope": 9115, - "src": "17348:114:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8679, - "nodeType": "Block", - "src": "17538:3482:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8522, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8516, - "src": "17580:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8521, - "name": "_validateProposalForProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8765, - "src": "17549:30:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", - "typeString": "function (uint256) view" - } - }, - "id": 8523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17549:45:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8524, - "nodeType": "ExpressionStatement", - "src": "17549:45:15" - }, - { - "assignments": [ - 8526 - ], - "declarations": [ - { - "constant": false, - "id": 8526, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 8679, - "src": "17607:18:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8525, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17607:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8530, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8527, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "17628:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8529, - "indexExpression": { - "argumentTypes": null, - "id": 8528, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8516, - "src": "17642:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17628:28:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17607:49:15" - }, - { - "assignments": [ - 8532 - ], - "declarations": [ - { - "constant": false, - "id": 8532, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 8679, - "src": "17667:25:15", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 8531, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7842, - "src": "17667:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8536, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8533, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "17695:9:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" - } - }, - "id": 8535, - "indexExpression": { - "argumentTypes": null, - "id": 8534, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8526, - "src": "17705:10:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17695:21:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17667:49:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8537, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "17824:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8540, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 7833, - "src": "17824:14:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 8541, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 8539, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17839:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17824:17:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8542, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17844:4:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "17824:24:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8544, - "nodeType": "ExpressionStatement", - "src": "17824:24:15" - }, - { - "assignments": [ - 8546, - 8548 - ], - "declarations": [ - { - "constant": false, - "id": 8546, - "name": "didPass", - "nodeType": "VariableDeclaration", - "scope": 8679, - "src": "17875:12:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 8545, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17875:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8548, - "name": "emergencyProcessing", - "nodeType": "VariableDeclaration", - "scope": 8679, - "src": "17889:24:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 8547, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17889:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8552, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8550, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8516, - "src": "17926:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8549, - "name": "_didPass", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8714, - "src": "17917:8:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$_t_bool_$_t_bool_$", - "typeString": "function (uint256) returns (bool,bool)" - } - }, - "id": 8551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17917:23:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", - "typeString": "tuple(bool,bool)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17874:66:15" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8555, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "18069:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8556, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sharesRequested", - "nodeType": "MemberAccess", - "referencedDeclaration": 7813, - "src": "18069:24:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8553, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7786, - "src": "18053:11:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "18053:15:15", - "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": 8557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18053:41:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 8558, - "name": "MAX_NUMBER_OF_SHARES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7702, - "src": "18097:20:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18053:64:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8565, - "nodeType": "IfStatement", - "src": "18049:112:15", - "trueBody": { - "id": 8564, - "nodeType": "Block", - "src": "18119:42:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8560, - "name": "didPass", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8546, - "src": "18134:7:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 8561, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18144:5:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "18134:15:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8563, - "nodeType": "ExpressionStatement", - "src": "18134:15:15" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "id": 8566, - "name": "didPass", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8546, - "src": "18531:7:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 8671, - "nodeType": "Block", - "src": "20511:386:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8665, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8663, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8506, - "src": "20526:6:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "32", - "id": 8664, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20533:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "20526:8:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8666, - "nodeType": "ExpressionStatement", - "src": "20526:8:15" - }, - { - "condition": { - "argumentTypes": null, - "id": 8668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20635:20:15", - "subExpression": { - "argumentTypes": null, - "id": 8667, - "name": "emergencyProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8548, - "src": "20636:19:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8670, - "nodeType": "IfStatement", - "src": "20631:255:15", - "trueBody": { - "id": 8669, - "nodeType": "Block", - "src": "20657:229:15", - "statements": [] - } - } - ] - }, - "id": 8672, - "nodeType": "IfStatement", - "src": "18527:2370:15", - "trueBody": { - "id": 8662, - "nodeType": "Block", - "src": "18540:1965:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8567, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8506, - "src": "18555:6:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 8568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18562:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "18555:8:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8570, - "nodeType": "ExpressionStatement", - "src": "18555:8:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8571, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "18578:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8574, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 7833, - "src": "18578:14:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 8575, - "indexExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 8573, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18593:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18578:17:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18598:4:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "18578:24:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8578, - "nodeType": "ExpressionStatement", - "src": "18578:24:15" - }, - { - "condition": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8579, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "18724:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 8582, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8580, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "18732:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8581, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 7807, - "src": "18732:18:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18724:27:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "id": 8583, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "exists", - "nodeType": "MemberAccess", - "referencedDeclaration": 7802, - "src": "18724:34:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 8652, - "nodeType": "Block", - "src": "19096:771:15", - "statements": [ - { - "condition": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8601, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "19241:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 8606, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8602, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7853, - "src": "19249:26:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 8605, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8603, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "19276:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8604, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 7807, - "src": "19276:18:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19249:46:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19241:55:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "id": 8607, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "exists", - "nodeType": "MemberAccess", - "referencedDeclaration": 7802, - "src": "19241:62:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8629, - "nodeType": "IfStatement", - "src": "19237:349:15", - "trueBody": { - "id": 8628, - "nodeType": "Block", - "src": "19305:281:15", - "statements": [ - { - "assignments": [ - 8609 - ], - "declarations": [ - { - "constant": false, - "id": 8609, - "name": "memberToOverride", - "nodeType": "VariableDeclaration", - "scope": 8628, - "src": "19328:24:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8608, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19328:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8614, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8610, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7853, - "src": "19355:26:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 8613, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8611, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "19382:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8612, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 7807, - "src": "19382:18:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19355:46:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19328:73:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8615, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7853, - "src": "19424:26:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 8617, - "indexExpression": { - "argumentTypes": null, - "id": 8616, - "name": "memberToOverride", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8609, - "src": "19451:16:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "19424:44:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8618, - "name": "memberToOverride", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8609, - "src": "19471:16:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "19424:63:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8620, - "nodeType": "ExpressionStatement", - "src": "19424:63:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8621, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "19510:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 8623, - "indexExpression": { - "argumentTypes": null, - "id": 8622, - "name": "memberToOverride", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8609, - "src": "19518:16:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19510:25:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "id": 8624, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "delegateKey", - "nodeType": "MemberAccess", - "referencedDeclaration": 7798, - "src": "19510:37:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8625, - "name": "memberToOverride", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8609, - "src": "19550:16:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "19510:56:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8627, - "nodeType": "ExpressionStatement", - "src": "19510:56:15" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 8642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8630, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "19674:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 8633, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8631, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "19682:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8632, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 7807, - "src": "19682:18:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "19674:27:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8635, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "19711:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8636, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 7807, - "src": "19711:18:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8637, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "19731:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8638, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sharesRequested", - "nodeType": "MemberAccess", - "referencedDeclaration": 7813, - "src": "19731:24:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8639, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19757:4:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 8640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19763:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8634, - "name": "Member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7805, - "src": "19704:6:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Member_$7805_storage_ptr_$", - "typeString": "type(struct Moloch.Member storage pointer)" - } - }, - "id": 8641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19704:61:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_memory", - "typeString": "struct Moloch.Member memory" - } - }, - "src": "19674:91:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "id": 8643, - "nodeType": "ExpressionStatement", - "src": "19674:91:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8644, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7853, - "src": "19784:26:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 8647, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8645, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "19811:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8646, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 7807, - "src": "19811:18:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "19784:46:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8648, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "19833:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8649, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 7807, - "src": "19833:18:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "19784:67:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8651, - "nodeType": "ExpressionStatement", - "src": "19784:67:15" - } - ] - }, - "id": 8653, - "nodeType": "IfStatement", - "src": "18720:1147:15", - "trueBody": { - "id": 8600, - "nodeType": "Block", - "src": "18760:330:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8584, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "18779:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 8587, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8585, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "18787:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8586, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 7807, - "src": "18787:18:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18779:27:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "id": 8588, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 7800, - "src": "18779:34:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8595, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "18855:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8596, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sharesRequested", - "nodeType": "MemberAccess", - "referencedDeclaration": 7813, - "src": "18855:24:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8589, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "18816:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 8592, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8590, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "18824:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8591, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 7807, - "src": "18824:18:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18816:27:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "id": 8593, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 7800, - "src": "18816:34:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "18816:38:15", - "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": 8597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18816:64:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18779:101:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8599, - "nodeType": "ExpressionStatement", - "src": "18779:101:15" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 8660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8654, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7786, - "src": "19922:11:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8657, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "19952:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8658, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sharesRequested", - "nodeType": "MemberAccess", - "referencedDeclaration": 7813, - "src": "19952:24:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8655, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7786, - "src": "19936:11:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "19936:15:15", - "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": 8659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19936:41:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19922:55:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8661, - "nodeType": "ExpressionStatement", - "src": "19922:55:15" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8674, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8516, - "src": "20977:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8675, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8526, - "src": "20992:10:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8676, - "name": "didPass", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8546, - "src": "21004:7:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 8673, - "name": "ProcessProposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7754, - "src": "20961:15:15", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_bool_$returns$__$", - "typeString": "function (uint256,uint256,bool)" - } - }, - "id": 8677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20961:51:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8678, - "nodeType": "EmitStatement", - "src": "20956:56:15" - } - ] - }, - "documentation": null, - "id": 8680, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 8519, - "modifierName": { - "argumentTypes": null, - "id": 8518, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9748, - "src": "17525:12:15", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "17525:12:15" - } - ], - "name": "processProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8517, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8516, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 8680, - "src": "17495:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8515, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17495:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17494:23:15" - }, - "returnParameters": { - "id": 8520, - "nodeType": "ParameterList", - "parameters": [], - "src": "17538:0:15" - }, - "scope": 9115, - "src": "17470:3550:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8713, - "nodeType": "Block", - "src": "23165:1739:15", - "statements": [ - { - "assignments": [ - 8690 - ], - "declarations": [ - { - "constant": false, - "id": 8690, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 8713, - "src": "23176:24:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", - "typeString": "struct Moloch.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 8689, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7842, - "src": "23176:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8696, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8691, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "23203:9:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" - } - }, - "id": 8695, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8692, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "23213:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8694, - "indexExpression": { - "argumentTypes": null, - "id": 8693, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8682, - "src": "23227:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23213:28:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23203:39:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23176:66:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8697, - "name": "didPass", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "23255:7:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8702, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8698, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8690, - "src": "23265:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", - "typeString": "struct Moloch.Proposal memory" - } - }, - "id": 8699, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "yesVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 7827, - "src": "23265:17:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8700, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8690, - "src": "23285:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", - "typeString": "struct Moloch.Proposal memory" - } - }, - "id": 8701, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "noVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 7829, - "src": "23285:16:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23265:36:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "23255:46:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8704, - "nodeType": "ExpressionStatement", - "src": "23255:46:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8705, - "name": "emergencyProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8687, - "src": "23417:19:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 8706, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23439:5:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "23417:27:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8708, - "nodeType": "ExpressionStatement", - "src": "23417:27:15" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 8709, - "name": "didPass", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "24867:7:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 8710, - "name": "emergencyProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8687, - "src": "24876:19:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 8711, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "24866:30:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", - "typeString": "tuple(bool,bool)" - } - }, - "functionReturnParameters": 8688, - "id": 8712, - "nodeType": "Return", - "src": "24859:37:15" - } - ] - }, - "documentation": null, - "id": 8714, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_didPass", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8683, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8682, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 8714, - "src": "23084:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8681, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23084:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23083:23:15" - }, - "returnParameters": { - "id": 8688, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8685, - "name": "didPass", - "nodeType": "VariableDeclaration", - "scope": 8714, - "src": "23125:12:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 8684, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23125:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8687, - "name": "emergencyProcessing", - "nodeType": "VariableDeclaration", - "scope": 8714, - "src": "23139:24:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 8686, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23139:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23124:40:15" - }, - "scope": 9115, - "src": "23066:1838:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 8764, - "nodeType": "Block", - "src": "24989:546:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8720, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8716, - "src": "25008:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8721, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "25024:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8722, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "25024:20:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25008:36:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", - "id": 8724, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25046:25:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - }, - "value": "proposal does not exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - } - ], - "id": 8719, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "25000:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25000:72:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8726, - "nodeType": "ExpressionStatement", - "src": "25000:72:15" - }, - { - "assignments": [ - 8728 - ], - "declarations": [ - { - "constant": false, - "id": 8728, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 8764, - "src": "25083:24:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", - "typeString": "struct Moloch.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 8727, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7842, - "src": "25083:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8734, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8729, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "25110:9:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" - } - }, - "id": 8733, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8730, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "25120:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8732, - "indexExpression": { - "argumentTypes": null, - "id": 8731, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8716, - "src": "25134:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25120:28:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25110:39:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "25083:66:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 8741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8736, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8728, - "src": "25325:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", - "typeString": "struct Moloch.Proposal memory" - } - }, - "id": 8737, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 7833, - "src": "25325:14:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_memory", - "typeString": "bool[6] memory" - } - }, - "id": 8739, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 8738, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25340:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25325:17:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 8740, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25346:5:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "25325:26:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c2068617320616c7265616479206265656e2070726f636573736564", - "id": 8742, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25353:37:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f70ef3e0419e3b9f916dea28b6ea9e7ed2c6d066761e4c360c469298c30b58d3", - "typeString": "literal_string \"proposal has already been processed\"" - }, - "value": "proposal has already been processed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f70ef3e0419e3b9f916dea28b6ea9e7ed2c6d066761e4c360c469298c30b58d3", - "typeString": "literal_string \"proposal has already been processed\"" - } - ], - "id": 8735, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "25317:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25317:74:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8744, - "nodeType": "ExpressionStatement", - "src": "25317:74:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 8760, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8746, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8716, - "src": "25410:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8747, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25427:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "25410:18:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8749, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "25432:9:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" - } - }, - "id": 8756, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8750, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "25442:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8755, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 8753, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25474:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "id": 8751, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8716, - "src": "25456:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "25456:17:15", - "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": 8754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25456:20:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25442:35:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25432:46:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "id": 8757, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 7833, - "src": "25432:52:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 8759, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 8758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25485:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25432:55:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "25410:77:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726576696f75732070726f706f73616c206d7573742062652070726f636573736564", - "id": 8761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25489:37:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_38cd8535d1c8042024c6aab26e03143698df4f39cb508f25654837a140ff5918", - "typeString": "literal_string \"previous proposal must be processed\"" - }, - "value": "previous proposal must be processed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_38cd8535d1c8042024c6aab26e03143698df4f39cb508f25654837a140ff5918", - "typeString": "literal_string \"previous proposal must be processed\"" - } - ], - "id": 8745, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "25402:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25402:125:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8763, - "nodeType": "ExpressionStatement", - "src": "25402:125:15" - } - ] - }, - "documentation": null, - "id": 8765, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_validateProposalForProcessing", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8717, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8716, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 8765, - "src": "24952:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8715, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24952:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24951:23:15" - }, - "returnParameters": { - "id": 8718, - "nodeType": "ParameterList", - "parameters": [], - "src": "24989:0:15" - }, - "scope": 9115, - "src": "24912:623:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 8784, - "nodeType": "Block", - "src": "26063:82:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8777, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "26084:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26084:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 8779, - "name": "sharesToBurn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8767, - "src": "26096:12:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8780, - "name": "lootToBurn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8769, - "src": "26110:10:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8781, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7845, - "src": "26122:14:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage", - "typeString": "contract IERC20[] storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage", - "typeString": "contract IERC20[] storage ref" - } - ], - "id": 8776, - "name": "_ragequit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8916, - "src": "26074:9:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,uint256,contract IERC20[] memory)" - } - }, - "id": 8782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26074:63:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8783, - "nodeType": "ExpressionStatement", - "src": "26074:63:15" - } - ] - }, - "documentation": null, - "id": 8785, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 8772, - "modifierName": { - "argumentTypes": null, - "id": 8771, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9748, - "src": "26039:12:15", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "26039:12:15" - }, - { - "arguments": null, - "id": 8774, - "modifierName": { - "argumentTypes": null, - "id": 8773, - "name": "onlyMember", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7875, - "src": "26052:10:15", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "26052:10:15" - } - ], - "name": "ragequit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8770, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8767, - "name": "sharesToBurn", - "nodeType": "VariableDeclaration", - "scope": 8785, - "src": "25990:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8766, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25990:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8769, - "name": "lootToBurn", - "nodeType": "VariableDeclaration", - "scope": 8785, - "src": "26012:18:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8768, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26012:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "25989:42:15" - }, - "returnParameters": { - "id": 8775, - "nodeType": "ParameterList", - "parameters": [], - "src": "26063:0:15" - }, - "scope": 9115, - "src": "25972:173:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8838, - "nodeType": "Block", - "src": "26275:458:15", - "statements": [ - { - "body": { - "id": 8828, - "nodeType": "Block", - "src": "26397:258:15", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8812, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8810, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8800, - "src": "26510:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8811, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26514:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "26510:5:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8827, - "nodeType": "IfStatement", - "src": "26506:138:15", - "trueBody": { - "id": 8826, - "nodeType": "Block", - "src": "26517:127:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "id": 8822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8814, - "name": "tokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8792, - "src": "26544:9:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[] memory" - } - }, - "id": 8816, - "indexExpression": { - "argumentTypes": null, - "id": 8815, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8800, - "src": "26554:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26544:12:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8817, - "name": "tokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8792, - "src": "26559:9:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[] memory" - } - }, - "id": 8821, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8818, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8800, - "src": "26569:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 8819, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26573:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "26569:5:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26559:16:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "src": "26544:31:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e206c697374206d75737420626520756e6971756520616e6420696e20617363656e64696e67206f72646572", - "id": 8823, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26577:50:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9965e0bdde37a58094676a2cf75ae70d5454508294df76c3b2e2e525015b1b43", - "typeString": "literal_string \"token list must be unique and in ascending order\"" - }, - "value": "token list must be unique and in ascending order" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9965e0bdde37a58094676a2cf75ae70d5454508294df76c3b2e2e525015b1b43", - "typeString": "literal_string \"token list must be unique and in ascending order\"" - } - ], - "id": 8813, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "26536:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8824, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26536:92:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8825, - "nodeType": "ExpressionStatement", - "src": "26536:92:15" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8803, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8800, - "src": "26370:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8804, - "name": "tokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8792, - "src": "26374:9:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[] memory" - } - }, - "id": 8805, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26374:16:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26370:20:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8829, - "initializationExpression": { - "assignments": [ - 8800 - ], - "declarations": [ - { - "constant": false, - "id": 8800, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 8829, - "src": "26357:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8799, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26357:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8802, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 8801, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26367:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "26357:11:15" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 8808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "26392:3:15", - "subExpression": { - "argumentTypes": null, - "id": 8807, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8800, - "src": "26392:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8809, - "nodeType": "ExpressionStatement", - "src": "26392:3:15" - }, - "nodeType": "ForStatement", - "src": "26352:303:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8831, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "26677:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26677:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 8833, - "name": "sharesToBurn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8787, - "src": "26689:12:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8834, - "name": "lootToBurn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8789, - "src": "26703:10:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8835, - "name": "tokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8792, - "src": "26715:9:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[] memory" - } - ], - "id": 8830, - "name": "_ragequit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8916, - "src": "26667:9:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,uint256,contract IERC20[] memory)" - } - }, - "id": 8836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26667:58:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8837, - "nodeType": "ExpressionStatement", - "src": "26667:58:15" - } - ] - }, - "documentation": null, - "id": 8839, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 8795, - "modifierName": { - "argumentTypes": null, - "id": 8794, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9748, - "src": "26251:12:15", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "26251:12:15" - }, - { - "arguments": null, - "id": 8797, - "modifierName": { - "argumentTypes": null, - "id": 8796, - "name": "onlyMember", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7875, - "src": "26264:10:15", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "26264:10:15" - } - ], - "name": "safeRagequit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8793, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8787, - "name": "sharesToBurn", - "nodeType": "VariableDeclaration", - "scope": 8839, - "src": "26175:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8786, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26175:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8789, - "name": "lootToBurn", - "nodeType": "VariableDeclaration", - "scope": 8839, - "src": "26197:18:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8788, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26197:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8792, - "name": "tokenList", - "nodeType": "VariableDeclaration", - "scope": 8839, - "src": "26217:25:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 8790, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "26217:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 8791, - "length": null, - "nodeType": "ArrayTypeName", - "src": "26217:8:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage_ptr", - "typeString": "contract IERC20[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26174:69:15" - }, - "returnParameters": { - "id": 8798, - "nodeType": "ParameterList", - "parameters": [], - "src": "26275:0:15" - }, - "scope": 9115, - "src": "26153:580:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8915, - "nodeType": "Block", - "src": "26861:1077:15", - "statements": [ - { - "assignments": [ - 8852 - ], - "declarations": [ - { - "constant": false, - "id": 8852, - "name": "initialTotalSharesAndLoot", - "nodeType": "VariableDeclaration", - "scope": 8915, - "src": "26872:33:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8851, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26872:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8857, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8855, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26924:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "argumentTypes": null, - "id": 8853, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7786, - "src": "26908:11:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "26908:15:15", - "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": 8856, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26908:18:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "26872:54:15" - }, - { - "assignments": [ - 8859 - ], - "declarations": [ - { - "constant": false, - "id": 8859, - "name": "member", - "nodeType": "VariableDeclaration", - "scope": 8915, - "src": "26939:21:15", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member" - }, - "typeName": { - "contractScope": null, - "id": 8858, - "name": "Member", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7805, - "src": "26939:6:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8863, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8860, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "26963:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 8862, - "indexExpression": { - "argumentTypes": null, - "id": 8861, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8841, - "src": "26971:13:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26963:22:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "26939:46:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8865, - "name": "member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8859, - "src": "27006:6:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member storage pointer" - } - }, - "id": 8866, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 7800, - "src": "27006:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 8867, - "name": "sharesToBurn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8843, - "src": "27023:12:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27006:29:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e73756666696369656e7420736861726573", - "id": 8869, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27037:21:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d5ba7a6055332667d0b47802db7f56b8e6983a138e30503682c0b7c57a45190a", - "typeString": "literal_string \"insufficient shares\"" - }, - "value": "insufficient shares" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d5ba7a6055332667d0b47802db7f56b8e6983a138e30503682c0b7c57a45190a", - "typeString": "literal_string \"insufficient shares\"" - } - ], - "id": 8864, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "26998:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26998:61:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8871, - "nodeType": "ExpressionStatement", - "src": "26998:61:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8874, - "name": "member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8859, - "src": "27160:6:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member storage pointer" - } - }, - "id": 8875, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "highestIndexYesVote", - "nodeType": "MemberAccess", - "referencedDeclaration": 7804, - "src": "27160:26:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8873, - "name": "canRagequit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9063, - "src": "27148:11:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 8876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27148:39:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "63616e6e6f7420726167657175697420756e74696c206869676865737420696e6465782070726f706f73616c206d656d62657220766f74656420594553206f6e2069732070726f636573736564", - "id": 8877, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27189:79:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_11872e0ade1b569d9743310990fb8e15cfb30e6e4c576314224629b74fe37ee9", - "typeString": "literal_string \"cannot ragequit until highest index proposal member voted YES on is processed\"" - }, - "value": "cannot ragequit until highest index proposal member voted YES on is processed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_11872e0ade1b569d9743310990fb8e15cfb30e6e4c576314224629b74fe37ee9", - "typeString": "literal_string \"cannot ragequit until highest index proposal member voted YES on is processed\"" - } - ], - "id": 8872, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "27140:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27140:129:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8879, - "nodeType": "ExpressionStatement", - "src": "27140:129:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8888, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8880, - "name": "member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8859, - "src": "27388:6:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member storage pointer" - } - }, - "id": 8882, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 7800, - "src": "27388:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8886, - "name": "sharesToBurn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8843, - "src": "27422:12:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8883, - "name": "member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8859, - "src": "27404:6:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member storage pointer" - } - }, - "id": 8884, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 7800, - "src": "27404:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "27404:17:15", - "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": 8887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27404:31:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27388:47:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8889, - "nodeType": "ExpressionStatement", - "src": "27388:47:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8890, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7786, - "src": "27500:11:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8893, - "name": "sharesToBurn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8843, - "src": "27530:12:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8891, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7786, - "src": "27514:11:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "27514:15:15", - "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": 8894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27514:29:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27500:43:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8896, - "nodeType": "ExpressionStatement", - "src": "27500:43:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8900, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8841, - "src": "27730:13:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8901, - "name": "sharesToBurn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8843, - "src": "27745:12:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8902, - "name": "initialTotalSharesAndLoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8852, - "src": "27759:25:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8903, - "name": "tokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8848, - "src": "27786:9:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8898, - "name": "guildBank", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7687, - "src": "27711:9:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - }, - "id": 8899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "withdraw", - "nodeType": "MemberAccess", - "referencedDeclaration": 7580, - "src": "27711:18:15", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,uint256,uint256,contract IERC20[] memory) external returns (bool)" - } - }, - "id": 8904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27711:85:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "7769746864726177616c206f6620746f6b656e732066726f6d206775696c6442616e6b206661696c6564", - "id": 8905, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27811:44:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_651e518ee5ccfc633fd28c22e6ed219d8cd4ebc33c062c1938ef787232de2e2a", - "typeString": "literal_string \"withdrawal of tokens from guildBank failed\"" - }, - "value": "withdrawal of tokens from guildBank failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_651e518ee5ccfc633fd28c22e6ed219d8cd4ebc33c062c1938ef787232de2e2a", - "typeString": "literal_string \"withdrawal of tokens from guildBank failed\"" - } - ], - "id": 8897, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "27689:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27689:177:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8907, - "nodeType": "ExpressionStatement", - "src": "27689:177:15" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8909, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "27893:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "27893:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 8911, - "name": "sharesToBurn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8843, - "src": "27905:12:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8912, - "name": "lootToBurn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8845, - "src": "27919:10:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8908, - "name": "Ragequit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7762, - "src": "27884:8:15", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" - } - }, - "id": 8913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27884:46:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8914, - "nodeType": "EmitStatement", - "src": "27879:51:15" - } - ] - }, - "documentation": null, - "id": 8916, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_ragequit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8849, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8841, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 8916, - "src": "26760:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8840, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26760:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8843, - "name": "sharesToBurn", - "nodeType": "VariableDeclaration", - "scope": 8916, - "src": "26783:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8842, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26783:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8845, - "name": "lootToBurn", - "nodeType": "VariableDeclaration", - "scope": 8916, - "src": "26805:18:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8844, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26805:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8848, - "name": "tokenList", - "nodeType": "VariableDeclaration", - "scope": 8916, - "src": "26825:25:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 8846, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "26825:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 8847, - "length": null, - "nodeType": "ArrayTypeName", - "src": "26825:8:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage_ptr", - "typeString": "contract IERC20[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26759:92:15" - }, - "returnParameters": { - "id": 8850, - "nodeType": "ParameterList", - "parameters": [], - "src": "26861:0:15" - }, - "scope": 9115, - "src": "26741:1197:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 8982, - "nodeType": "Block", - "src": "29186:586:15", - "statements": [ - { - "assignments": [ - 8924 - ], - "declarations": [ - { - "constant": false, - "id": 8924, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 8982, - "src": "29197:25:15", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 8923, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7842, - "src": "29197:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8928, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8925, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "29225:9:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" - } - }, - "id": 8927, - "indexExpression": { - "argumentTypes": null, - "id": 8926, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8918, - "src": "29235:10:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29225:21:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "29197:49:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "29265:18:15", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8930, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8924, - "src": "29266:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8931, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 7833, - "src": "29266:14:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 8933, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8932, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29281:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29266:17:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c2068617320616c7265616479206265656e2073706f6e736f726564", - "id": 8935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29285:37:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8ce373ba28507085e66e9df24290b9ef61d72fa05638e1221982de773985e387", - "typeString": "literal_string \"proposal has already been sponsored\"" - }, - "value": "proposal has already been sponsored" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8ce373ba28507085e66e9df24290b9ef61d72fa05638e1221982de773985e387", - "typeString": "literal_string \"proposal has already been sponsored\"" - } - ], - "id": 8929, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "29257:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29257:66:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8937, - "nodeType": "ExpressionStatement", - "src": "29257:66:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "29342:18:15", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8939, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8924, - "src": "29343:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8940, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 7833, - "src": "29343:14:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 8942, - "indexExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 8941, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29358:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29343:17:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c2068617320616c7265616479206265656e2063616e63656c6c6564", - "id": 8944, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29362:37:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ccab9120c6545218f1aaf1342626868c70b7de421d2454350aed40c0c66fbef6", - "typeString": "literal_string \"proposal has already been cancelled\"" - }, - "value": "proposal has already been cancelled" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ccab9120c6545218f1aaf1342626868c70b7de421d2454350aed40c0c66fbef6", - "typeString": "literal_string \"proposal has already been cancelled\"" - } - ], - "id": 8938, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "29334:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29334:66:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8946, - "nodeType": "ExpressionStatement", - "src": "29334:66:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8952, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8948, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "29419:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29419:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8950, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8924, - "src": "29433:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8951, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "proposer", - "nodeType": "MemberAccess", - "referencedDeclaration": 7809, - "src": "29433:17:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "29419:31:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "736f6c656c79207468652070726f706f7365722063616e2063616e63656c", - "id": 8953, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29452:32:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bfc4d7bf1278b7adc609bbaec85c0d0fbc267775efc64d7b3b6cf53db50d2f68", - "typeString": "literal_string \"solely the proposer can cancel\"" - }, - "value": "solely the proposer can cancel" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_bfc4d7bf1278b7adc609bbaec85c0d0fbc267775efc64d7b3b6cf53db50d2f68", - "typeString": "literal_string \"solely the proposer can cancel\"" - } - ], - "id": 8947, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "29411:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8954, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29411:74:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8955, - "nodeType": "ExpressionStatement", - "src": "29411:74:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8956, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8924, - "src": "29498:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8959, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 7833, - "src": "29498:14:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 8960, - "indexExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 8958, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29513:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29498:17:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8961, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29518:4:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "29498:24:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8963, - "nodeType": "ExpressionStatement", - "src": "29498:24:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8968, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8924, - "src": "29601:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8969, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "proposer", - "nodeType": "MemberAccess", - "referencedDeclaration": 7809, - "src": "29601:17:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8970, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8924, - "src": "29620:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8971, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tributeOffered", - "nodeType": "MemberAccess", - "referencedDeclaration": 7817, - "src": "29620:23:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8965, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8924, - "src": "29570:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8966, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tributeToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 7819, - "src": "29570:21:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 8967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9661, - "src": "29570:30:15", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 8972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29570:74:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6661696c656420746f2072657475726e207472696275746520746f2070726f706f736572", - "id": 8973, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29659:38:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_282e9801010b515e1b52012b7f89bf34974d755a49d0659dbf82e1edde7cfbdf", - "typeString": "literal_string \"failed to return tribute to proposer\"" - }, - "value": "failed to return tribute to proposer" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_282e9801010b515e1b52012b7f89bf34974d755a49d0659dbf82e1edde7cfbdf", - "typeString": "literal_string \"failed to return tribute to proposer\"" - } - ], - "id": 8964, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "29548:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8974, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29548:160:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8975, - "nodeType": "ExpressionStatement", - "src": "29548:160:15" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8977, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8918, - "src": "29741:10:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8978, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "29753:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29753:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 8976, - "name": "CancelProposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7768, - "src": "29726:14:15", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (uint256,address)" - } - }, - "id": 8980, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29726:38:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8981, - "nodeType": "EmitStatement", - "src": "29721:43:15" - } - ] - }, - "documentation": null, - "id": 8983, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 8921, - "modifierName": { - "argumentTypes": null, - "id": 8920, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9748, - "src": "29173:12:15", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "29173:12:15" - } - ], - "name": "cancelProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8919, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8918, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 8983, - "src": "29146:18:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8917, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29146:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29145:20:15" - }, - "returnParameters": { - "id": 8922, - "nodeType": "ParameterList", - "parameters": [], - "src": "29186:0:15" - }, - "scope": 9115, - "src": "29122:650:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8999, - "nodeType": "Block", - "src": "30796:40:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8994, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8992, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8985, - "src": "30814:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 8993, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8987, - "src": "30819:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30814:6:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 8996, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8987, - "src": "30827:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8997, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "30814:14:15", - "trueExpression": { - "argumentTypes": null, - "id": 8995, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8985, - "src": "30823:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 8991, - "id": 8998, - "nodeType": "Return", - "src": "30807:21:15" - } - ] - }, - "documentation": "*************\r\nGETTER FUNCTIONS\r**************", - "id": 9000, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "max", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8988, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8985, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 9000, - "src": "30742:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8984, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30742:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8987, - "name": "y", - "nodeType": "VariableDeclaration", - "scope": 9000, - "src": "30753:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30753:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30741:22:15" - }, - "returnParameters": { - "id": 8991, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8990, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9000, - "src": "30787:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30787:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30786:9:15" - }, - "scope": 9115, - "src": "30729:107:15", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 9013, - "nodeType": "Block", - "src": "30902:68:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9010, - "name": "periodDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7673, - "src": "30947:14:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9007, - "name": "summoningTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7683, - "src": "30928:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 9005, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10413, - "src": "30920:3:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "30920:7:15", - "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": 9008, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30920:22:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 9808, - "src": "30920:26:15", - "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": 9011, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30920:42:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9004, - "id": 9012, - "nodeType": "Return", - "src": "30913:49:15" - } - ] - }, - "documentation": null, - "id": 9014, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getCurrentPeriod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9001, - "nodeType": "ParameterList", - "parameters": [], - "src": "30869:2:15" - }, - "returnParameters": { - "id": 9004, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9003, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9014, - "src": "30893:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9002, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30893:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30892:9:15" - }, - "scope": 9115, - "src": "30844:126:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9022, - "nodeType": "Block", - "src": "31042:46:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9019, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "31060:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 9020, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:20:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9018, - "id": 9021, - "nodeType": "Return", - "src": "31053:27:15" - } - ] - }, - "documentation": null, - "id": 9023, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getProposalQueueLength", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9015, - "nodeType": "ParameterList", - "parameters": [], - "src": "31009:2:15" - }, - "returnParameters": { - "id": 9018, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9017, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9023, - "src": "31033:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9016, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31033:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31032:9:15" - }, - "scope": 9115, - "src": "30978:110:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9037, - "nodeType": "Block", - "src": "31179:53:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9032, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "31197:9:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" - } - }, - "id": 9034, - "indexExpression": { - "argumentTypes": null, - "id": 9033, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9025, - "src": "31207:10:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31197:21:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "id": 9035, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 7833, - "src": "31197:27:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "functionReturnParameters": 9031, - "id": 9036, - "nodeType": "Return", - "src": "31190:34:15" - } - ] - }, - "documentation": null, - "id": 9038, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getProposalFlags", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9026, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9025, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 9038, - "src": "31122:18:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9024, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31122:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31121:20:15" - }, - "returnParameters": { - "id": 9031, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9030, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9038, - "src": "31163:14:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6]" - }, - "typeName": { - "baseType": { - "id": 9027, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "31163:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 9029, - "length": { - "argumentTypes": null, - "hexValue": "36", - "id": 9028, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31168:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - }, - "value": "6" - }, - "nodeType": "ArrayTypeName", - "src": "31163:7:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", - "typeString": "bool[6]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31162:16:15" - }, - "scope": 9115, - "src": "31096:136:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9062, - "nodeType": "Block", - "src": "31402:169:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9046, - "name": "highestIndexYesVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9040, - "src": "31421:19:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9047, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "31443:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 9048, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31443:20:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31421:42:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", - "id": 9050, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31465:25:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - }, - "value": "proposal does not exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - } - ], - "id": 9045, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "31413:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 9051, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31413:78:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9052, - "nodeType": "ExpressionStatement", - "src": "31413:78:15" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9053, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "31509:9:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" - } - }, - "id": 9057, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9054, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "31519:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 9056, - "indexExpression": { - "argumentTypes": null, - "id": 9055, - "name": "highestIndexYesVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9040, - "src": "31533:19:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31519:34:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31509:45:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "id": 9058, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 7833, - "src": "31509:51:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 9060, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 9059, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31561:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31509:54:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 9044, - "id": 9061, - "nodeType": "Return", - "src": "31502:61:15" - } - ] - }, - "documentation": null, - "id": 9063, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "canRagequit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9041, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9040, - "name": "highestIndexYesVote", - "nodeType": "VariableDeclaration", - "scope": 9063, - "src": "31346:27:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9039, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31346:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31345:29:15" - }, - "returnParameters": { - "id": 9044, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9043, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9063, - "src": "31396:4:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9042, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "31396:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31395:6:15" - }, - "scope": 9115, - "src": "31325:246:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9078, - "nodeType": "Block", - "src": "32439:86:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 9070, - "name": "getCurrentPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9014, - "src": "32457:16:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 9071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32457:18:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9074, - "name": "votingPeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7675, - "src": "32498:18:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 9072, - "name": "startingPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9065, - "src": "32479:14:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "32479:18:15", - "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": 9075, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32479:38:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32457:60:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 9069, - "id": 9077, - "nodeType": "Return", - "src": "32450:67:15" - } - ] - }, - "documentation": null, - "id": 9079, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "hasVotingPeriodExpired", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9066, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9065, - "name": "startingPeriod", - "nodeType": "VariableDeclaration", - "scope": 9079, - "src": "32388:22:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9064, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32388:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32387:24:15" - }, - "returnParameters": { - "id": 9069, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9068, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9079, - "src": "32433:4:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9067, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "32433:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32432:6:15" - }, - "scope": 9115, - "src": "32356:169:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9113, - "nodeType": "Block", - "src": "32637:251:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9089, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "32656:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 9091, - "indexExpression": { - "argumentTypes": null, - "id": 9090, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9081, - "src": "32664:13:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32656:22:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "id": 9092, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "exists", - "nodeType": "MemberAccess", - "referencedDeclaration": 7802, - "src": "32656:29:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d656d62657220646f6573206e6f74206578697374", - "id": 9093, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32687:23:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_eeb2dbde81ed918fce84900f40c1838c2cab850a4c637d1ccdd3d5601b174fb4", - "typeString": "literal_string \"member does not exist\"" - }, - "value": "member does not exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_eeb2dbde81ed918fce84900f40c1838c2cab850a4c637d1ccdd3d5601b174fb4", - "typeString": "literal_string \"member does not exist\"" - } - ], - "id": 9088, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "32648:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 9094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32648:63:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9095, - "nodeType": "ExpressionStatement", - "src": "32648:63:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9097, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9083, - "src": "32730:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9098, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "32746:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 9099, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32746:20:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32730:36:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", - "id": 9101, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32768:25:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - }, - "value": "proposal does not exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - } - ], - "id": 9096, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "32722:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 9102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32722:72:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9103, - "nodeType": "ExpressionStatement", - "src": "32722:72:15" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9104, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "32812:9:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" - } - }, - "id": 9108, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9105, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "32822:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 9107, - "indexExpression": { - "argumentTypes": null, - "id": 9106, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9083, - "src": "32836:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32822:28:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32812:39:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "id": 9109, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "votesByMember", - "nodeType": "MemberAccess", - "referencedDeclaration": 7841, - "src": "32812:53:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$7796_$", - "typeString": "mapping(address => enum Moloch.Vote)" - } - }, - "id": 9111, - "indexExpression": { - "argumentTypes": null, - "id": 9110, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9081, - "src": "32866:13:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32812:68:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "functionReturnParameters": 9087, - "id": 9112, - "nodeType": "Return", - "src": "32805:75:15" - } - ] - }, - "documentation": null, - "id": 9114, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getMemberProposalVote", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9084, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9081, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 9114, - "src": "32564:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9080, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "32564:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9083, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 9114, - "src": "32587:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9082, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32587:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32563:46:15" - }, - "returnParameters": { - "id": 9087, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9086, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9114, - "src": "32631:4:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - }, - "typeName": { - "contractScope": null, - "id": 9085, - "name": "Vote", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7796, - "src": "32631:4:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32630:6:15" - }, - "scope": 9115, - "src": "32533:355:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 9116, - "src": "157:32734:15" - } - ], - "src": "0:32893:15" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Moloch.sol", - "exportedSymbols": { - "Moloch": [ - 9115 - ] - }, - "id": 9116, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 7660, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:15" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "./oz/SafeMath.sol", - "id": 7661, - "nodeType": "ImportDirective", - "scope": 9116, - "sourceUnit": 9858, - "src": "36:27:15", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol", - "file": "./oz/IERC20.sol", - "id": 7662, - "nodeType": "ImportDirective", - "scope": 9116, - "sourceUnit": 9720, - "src": "65:25:15", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol", - "file": "./oz/ReentrancyGuard.sol", - "id": 7663, - "nodeType": "ImportDirective", - "scope": 9116, - "sourceUnit": 9750, - "src": "92:34:15", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol", - "file": "./GuildBank.sol", - "id": 7664, - "nodeType": "ImportDirective", - "scope": 9116, - "sourceUnit": 7659, - "src": "128:25:15", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 7665, - "name": "ReentrancyGuard", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9749, - "src": "176:15:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ReentrancyGuard_$9749", - "typeString": "contract ReentrancyGuard" - } - }, - "id": 7666, - "nodeType": "InheritanceSpecifier", - "src": "176:15:15" - } - ], - "contractDependencies": [ - 7658, - 9749 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 9115, - "linearizedBaseContracts": [ - 9115, - 9749 - ], - "name": "Moloch", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 7669, - "libraryName": { - "contractScope": null, - "id": 7667, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "205:8:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "199:27:15", - "typeName": { - "id": 7668, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "218:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "constant": false, - "id": 7671, - "name": "summoner", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "300:23:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7670, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "300:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7673, - "name": "periodDuration", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "387:29:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7672, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "387:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7675, - "name": "votingPeriodLength", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "485:33:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7674, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "485:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7677, - "name": "gracePeriodLength", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "558:32:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7676, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "558:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7679, - "name": "emergencyProcessingWait", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "630:38:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7678, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "630:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7681, - "name": "proposalDeposit", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "777:30:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7680, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "777:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7683, - "name": "summoningTime", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "1128:28:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7682, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1128:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7685, - "name": "depositToken", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "1207:26:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 7684, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "1207:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7687, - "name": "guildBank", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "1292:26:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - }, - "typeName": { - "contractScope": null, - "id": 7686, - "name": "GuildBank", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7658, - "src": "1292:9:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": true, - "id": 7692, - "name": "MAX_VOTING_PERIOD_LENGTH", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "1576:50:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7688, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1576:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - }, - "id": 7691, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 7689, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1620:2:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3138", - "id": 7690, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1624:2:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "1620:6:15", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - } - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 7697, - "name": "MAX_GRACE_PERIOD_LENGTH", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "1668:49:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7693, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1668:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - }, - "id": 7696, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 7694, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1711:2:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3138", - "id": 7695, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1715:2:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "1711:6:15", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - } - }, - "visibility": "internal" - }, - { - "constant": true, - "id": 7702, - "name": "MAX_NUMBER_OF_SHARES", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "1988:46:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7698, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1988:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - }, - "id": 7701, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "hexValue": "3130", - "id": 7699, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2028:2:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_10_by_1", - "typeString": "int_const 10" - }, - "value": "10" - }, - "nodeType": "BinaryOperation", - "operator": "**", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3138", - "id": 7700, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2032:2:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_18_by_1", - "typeString": "int_const 18" - }, - "value": "18" - }, - "src": "2028:6:15", - "typeDescriptions": { - "typeIdentifier": "t_rational_1000000000000000000_by_1", - "typeString": "int_const 1000000000000000000" - } - }, - "visibility": "internal" - }, - { - "anonymous": false, - "documentation": null, - "id": 7724, - "name": "SubmitProposal", - "nodeType": "EventDefinition", - "parameters": { - "id": 7723, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7704, - "indexed": false, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 7724, - "src": "2174:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7703, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2174:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7706, - "indexed": true, - "name": "delegateKey", - "nodeType": "VariableDeclaration", - "scope": 7724, - "src": "2197:27:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7705, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2197:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7708, - "indexed": true, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 7724, - "src": "2226:29:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7707, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2226:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7710, - "indexed": true, - "name": "applicant", - "nodeType": "VariableDeclaration", - "scope": 7724, - "src": "2257:25:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7709, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2257:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7712, - "indexed": false, - "name": "sharesRequested", - "nodeType": "VariableDeclaration", - "scope": 7724, - "src": "2284:23:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7711, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2284:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7714, - "indexed": false, - "name": "lootRequested", - "nodeType": "VariableDeclaration", - "scope": 7724, - "src": "2309:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7713, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2309:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7716, - "indexed": false, - "name": "tributeOffered", - "nodeType": "VariableDeclaration", - "scope": 7724, - "src": "2332:22:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7715, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2332:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7718, - "indexed": false, - "name": "tributeToken", - "nodeType": "VariableDeclaration", - "scope": 7724, - "src": "2356:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7717, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2356:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7720, - "indexed": false, - "name": "paymentRequested", - "nodeType": "VariableDeclaration", - "scope": 7724, - "src": "2378:24:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7719, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2378:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7722, - "indexed": false, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 7724, - "src": "2404:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7721, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2404:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2173:252:15" - }, - "src": "2153:273:15" - }, - { - "anonymous": false, - "documentation": null, - "id": 7736, - "name": "SponsorProposal", - "nodeType": "EventDefinition", - "parameters": { - "id": 7735, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7726, - "indexed": true, - "name": "delegateKey", - "nodeType": "VariableDeclaration", - "scope": 7736, - "src": "2454:27:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7725, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2454:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7728, - "indexed": true, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 7736, - "src": "2483:29:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7727, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2483:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7730, - "indexed": false, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 7736, - "src": "2514:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7729, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2514:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7732, - "indexed": false, - "name": "proposalQueueIndex", - "nodeType": "VariableDeclaration", - "scope": 7736, - "src": "2537:26:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7731, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2537:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7734, - "indexed": false, - "name": "startingPeriod", - "nodeType": "VariableDeclaration", - "scope": 7736, - "src": "2565:22:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7733, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2565:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2453:135:15" - }, - "src": "2432:157:15" - }, - { - "anonymous": false, - "documentation": null, - "id": 7746, - "name": "SubmitVote", - "nodeType": "EventDefinition", - "parameters": { - "id": 7745, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7738, - "indexed": true, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 7746, - "src": "2612:29:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7737, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2612:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7740, - "indexed": true, - "name": "delegateKey", - "nodeType": "VariableDeclaration", - "scope": 7746, - "src": "2643:27:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7739, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2643:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7742, - "indexed": true, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 7746, - "src": "2672:29:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7741, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2672:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7744, - "indexed": false, - "name": "uintVote", - "nodeType": "VariableDeclaration", - "scope": 7746, - "src": "2703:14:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 7743, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "2703:5:15", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2611:107:15" - }, - "src": "2595:124:15" - }, - { - "anonymous": false, - "documentation": null, - "id": 7754, - "name": "ProcessProposal", - "nodeType": "EventDefinition", - "parameters": { - "id": 7753, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7748, - "indexed": true, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 7754, - "src": "2747:29:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7747, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2747:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7750, - "indexed": true, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 7754, - "src": "2778:26:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7749, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2778:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7752, - "indexed": false, - "name": "didPass", - "nodeType": "VariableDeclaration", - "scope": 7754, - "src": "2806:12:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7751, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2806:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2746:73:15" - }, - "src": "2725:95:15" - }, - { - "anonymous": false, - "documentation": null, - "id": 7762, - "name": "Ragequit", - "nodeType": "EventDefinition", - "parameters": { - "id": 7761, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7756, - "indexed": true, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 7762, - "src": "2841:29:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7755, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2841:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7758, - "indexed": false, - "name": "sharesToBurn", - "nodeType": "VariableDeclaration", - "scope": 7762, - "src": "2872:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7757, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2872:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7760, - "indexed": false, - "name": "lootToBurn", - "nodeType": "VariableDeclaration", - "scope": 7762, - "src": "2894:18:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7759, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2894:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2840:73:15" - }, - "src": "2826:88:15" - }, - { - "anonymous": false, - "documentation": null, - "id": 7768, - "name": "CancelProposal", - "nodeType": "EventDefinition", - "parameters": { - "id": 7767, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7764, - "indexed": true, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 7768, - "src": "2941:29:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7763, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2941:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7766, - "indexed": false, - "name": "applicantAddress", - "nodeType": "VariableDeclaration", - "scope": 7768, - "src": "2972:24:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7765, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2972:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2940:57:15" - }, - "src": "2920:78:15" - }, - { - "anonymous": false, - "documentation": null, - "id": 7774, - "name": "UpdateDelegateKey", - "nodeType": "EventDefinition", - "parameters": { - "id": 7773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7770, - "indexed": true, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 7774, - "src": "3028:29:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7769, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3028:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7772, - "indexed": false, - "name": "newDelegateKey", - "nodeType": "VariableDeclaration", - "scope": 7774, - "src": "3059:22:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7771, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3059:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3027:55:15" - }, - "src": "3004:79:15" - }, - { - "anonymous": false, - "documentation": null, - "id": 7780, - "name": "SummonComplete", - "nodeType": "EventDefinition", - "parameters": { - "id": 7779, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7776, - "indexed": true, - "name": "summoner", - "nodeType": "VariableDeclaration", - "scope": 7780, - "src": "3110:24:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7775, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3110:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7778, - "indexed": false, - "name": "shares", - "nodeType": "VariableDeclaration", - "scope": 7780, - "src": "3136:14:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7777, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3136:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3109:42:15" - }, - "src": "3089:63:15" - }, - { - "constant": false, - "id": 7783, - "name": "proposalCount", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "3244:32:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7781, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3244:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 7782, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3275:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 7786, - "name": "totalShares", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "3312:30:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7784, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3312:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 7785, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3341:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 7789, - "name": "emergencyWarning", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "3456:36:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7787, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3456:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 7788, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3487:5:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 7792, - "name": "lastEmergencyProposalIndex", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "3555:45:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7790, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3555:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 7791, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3599:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "canonicalName": "Moloch.Vote", - "id": 7796, - "members": [ - { - "id": 7793, - "name": "Null", - "nodeType": "EnumValue", - "src": "3697:4:15" - }, - { - "id": 7794, - "name": "Yes", - "nodeType": "EnumValue", - "src": "3752:3:15" - }, - { - "id": 7795, - "name": "No", - "nodeType": "EnumValue", - "src": "3766:2:15" - } - ], - "name": "Vote", - "nodeType": "EnumDefinition", - "src": "3676:99:15" - }, - { - "canonicalName": "Moloch.Member", - "id": 7805, - "members": [ - { - "constant": false, - "id": 7798, - "name": "delegateKey", - "nodeType": "VariableDeclaration", - "scope": 7805, - "src": "3808:19:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7797, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3808:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7800, - "name": "shares", - "nodeType": "VariableDeclaration", - "scope": 7805, - "src": "3941:14:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7799, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3941:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7802, - "name": "exists", - "nodeType": "VariableDeclaration", - "scope": 7805, - "src": "4120:11:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 7801, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "4120:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7804, - "name": "highestIndexYesVote", - "nodeType": "VariableDeclaration", - "scope": 7805, - "src": "4188:27:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7803, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4188:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Member", - "nodeType": "StructDefinition", - "scope": 9115, - "src": "3783:643:15", - "visibility": "public" - }, - { - "canonicalName": "Moloch.Proposal", - "id": 7842, - "members": [ - { - "constant": false, - "id": 7807, - "name": "applicant", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "4461:17:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7806, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4461:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7809, - "name": "proposer", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "4627:16:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7808, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4627:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7811, - "name": "sponsor", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "4717:15:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7810, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4717:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7813, - "name": "sharesRequested", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "4812:23:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7812, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4812:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7815, - "name": "lootRequested", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "4893:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7814, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4893:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7817, - "name": "tributeOffered", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "4975:22:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7816, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4975:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7819, - "name": "tributeToken", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "5047:19:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 7818, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "5047:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7821, - "name": "paymentRequested", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "5113:24:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7820, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5113:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7823, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "5189:19:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "typeName": { - "contractScope": null, - "id": 7822, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "5189:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7825, - "name": "startingPeriod", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "5255:22:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7824, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5255:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7827, - "name": "yesVotes", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "5346:16:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7826, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5346:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7829, - "name": "noVotes", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "5424:15:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7828, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5424:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7833, - "name": "flags", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "5500:13:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", - "typeString": "bool[6]" - }, - "typeName": { - "baseType": { - "id": 7830, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5500:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 7832, - "length": { - "argumentTypes": null, - "hexValue": "36", - "id": 7831, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5505:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - }, - "value": "6" - }, - "nodeType": "ArrayTypeName", - "src": "5500:7:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", - "typeString": "bool[6]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7835, - "name": "details", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "5592:14:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 7834, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "5592:6:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7837, - "name": "maxTotalSharesAndLootAtYesVote", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "5678:38:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7836, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5678:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7841, - "name": "votesByMember", - "nodeType": "VariableDeclaration", - "scope": 7842, - "src": "5803:38:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$7796_$", - "typeString": "mapping(address => enum Moloch.Vote)" - }, - "typeName": { - "id": 7840, - "keyType": { - "id": 7838, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5811:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "5803:24:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$7796_$", - "typeString": "mapping(address => enum Moloch.Vote)" - }, - "valueType": { - "contractScope": null, - "id": 7839, - "name": "Vote", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7796, - "src": "5822:4:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Proposal", - "nodeType": "StructDefinition", - "scope": 9115, - "src": "4434:1460:15", - "visibility": "public" - }, - { - "constant": false, - "id": 7845, - "name": "approvedTokens", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "5957:30:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage", - "typeString": "contract IERC20[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 7843, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "5957:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 7844, - "length": null, - "nodeType": "ArrayTypeName", - "src": "5957:8:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage_ptr", - "typeString": "contract IERC20[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7849, - "name": "members", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "6113:41:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member)" - }, - "typeName": { - "id": 7848, - "keyType": { - "id": 7846, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6121:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "6113:26:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member)" - }, - "valueType": { - "contractScope": null, - "id": 7847, - "name": "Member", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7805, - "src": "6132:6:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7853, - "name": "memberAddressByDelegateKey", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "6161:61:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "typeName": { - "id": 7852, - "keyType": { - "id": 7850, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6169:7:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "6161:27:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - }, - "valueType": { - "id": 7851, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6180:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7857, - "name": "proposals", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "6231:45:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal)" - }, - "typeName": { - "id": 7856, - "keyType": { - "id": 7854, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6239:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "6231:28:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal)" - }, - "valueType": { - "contractScope": null, - "id": 7855, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7842, - "src": "6250:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 7860, - "name": "proposalQueue", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "6285:30:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 7858, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6285:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 7859, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6285:9:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 7874, - "nodeType": "Block", - "src": "6344:87:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7863, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "6363:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 7866, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7864, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6371:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 7865, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6371:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6363:19:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "id": 7867, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 7800, - "src": "6363:26:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7868, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6392:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6363:30:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f742061206d656d626572", - "id": 7870, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6396:14:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8a38730a0a31747b89b97e72db1b281f9d6fdcc9116c7bee85aba010b162e996", - "typeString": "literal_string \"not a member\"" - }, - "value": "not a member" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8a38730a0a31747b89b97e72db1b281f9d6fdcc9116c7bee85aba010b162e996", - "typeString": "literal_string \"not a member\"" - } - ], - "id": 7862, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "6355:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6355:56:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7872, - "nodeType": "ExpressionStatement", - "src": "6355:56:15" - }, - { - "id": 7873, - "nodeType": "PlaceholderStatement", - "src": "6422:1:15" - } - ] - }, - "documentation": null, - "id": 7875, - "name": "onlyMember", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 7861, - "nodeType": "ParameterList", - "parameters": [], - "src": "6344:0:15" - }, - "src": "6324:107:15", - "visibility": "internal" - }, - { - "body": { - "id": 7889, - "nodeType": "Block", - "src": "6464:91:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7884, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7878, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "6483:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 7881, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7879, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6491:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 7880, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6491:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6483:19:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "id": 7882, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 7800, - "src": "6483:26:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7883, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6512:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6483:30:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f742061207368617265686f6c646572", - "id": 7885, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6515:19:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f04c1891c0a18f803b467b9992e2d2738663e155d08d2aaee274da8a131a0bdb", - "typeString": "literal_string \"not a shareholder\"" - }, - "value": "not a shareholder" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f04c1891c0a18f803b467b9992e2d2738663e155d08d2aaee274da8a131a0bdb", - "typeString": "literal_string \"not a shareholder\"" - } - ], - "id": 7877, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "6475:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7886, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6475:60:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7887, - "nodeType": "ExpressionStatement", - "src": "6475:60:15" - }, - { - "id": 7888, - "nodeType": "PlaceholderStatement", - "src": "6546:1:15" - } - ] - }, - "documentation": null, - "id": 7890, - "name": "onlyShareholder", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 7876, - "nodeType": "ParameterList", - "parameters": [], - "src": "6464:0:15" - }, - "src": "6439:116:15", - "visibility": "internal" - }, - { - "body": { - "id": 7906, - "nodeType": "Block", - "src": "6585:116:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7901, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7893, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "6604:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 7898, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7894, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7853, - "src": "6612:26:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 7897, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7895, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "6639:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 7896, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6639:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6612:38:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "6604:47:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "id": 7899, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 7800, - "src": "6604:54:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7900, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6661:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6604:58:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e6f7420612064656c6567617465", - "id": 7902, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6664:16:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_4d2048a93053cc7fa7807c657f537fc9d130edf6819e714c97d45589e5ba66dc", - "typeString": "literal_string \"not a delegate\"" - }, - "value": "not a delegate" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_4d2048a93053cc7fa7807c657f537fc9d130edf6819e714c97d45589e5ba66dc", - "typeString": "literal_string \"not a delegate\"" - } - ], - "id": 7892, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "6596:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6596:85:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7904, - "nodeType": "ExpressionStatement", - "src": "6596:85:15" - }, - { - "id": 7905, - "nodeType": "PlaceholderStatement", - "src": "6692:1:15" - } - ] - }, - "documentation": null, - "id": 7907, - "name": "onlyDelegate", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 7891, - "nodeType": "ParameterList", - "parameters": [], - "src": "6585:0:15" - }, - "src": "6563:138:15", - "visibility": "internal" - }, - { - "body": { - "id": 8086, - "nodeType": "Block", - "src": "7094:2188:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 7937, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7933, - "name": "_summoner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7909, - "src": "7113:9:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 7935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7134:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 7934, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "7126:7:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 7936, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7126:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "7113:23:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "73756d6d6f6e65722063616e6e6f742062652030", - "id": 7938, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7138:22:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_e18bccdb58063a7f6628b2785d4b67ba1d84d6f9ced86e1185ad4b056fddad91", - "typeString": "literal_string \"summoner cannot be 0\"" - }, - "value": "summoner cannot be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_e18bccdb58063a7f6628b2785d4b67ba1d84d6f9ced86e1185ad4b056fddad91", - "typeString": "literal_string \"summoner cannot be 0\"" - } - ], - "id": 7932, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7105:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7939, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7105:56:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7940, - "nodeType": "ExpressionStatement", - "src": "7105:56:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7944, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7942, - "name": "_periodDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7915, - "src": "7180:15:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7943, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7198:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7180:19:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f706572696f644475726174696f6e2063616e6e6f742062652030", - "id": 7945, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7201:29:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_dcaa7db0431116123c67314944edc83f1ee2d0251a1b070940664f004c74012d", - "typeString": "literal_string \"_periodDuration cannot be 0\"" - }, - "value": "_periodDuration cannot be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_dcaa7db0431116123c67314944edc83f1ee2d0251a1b070940664f004c74012d", - "typeString": "literal_string \"_periodDuration cannot be 0\"" - } - ], - "id": 7941, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7172:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7946, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7172:59:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7947, - "nodeType": "ExpressionStatement", - "src": "7172:59:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7951, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7949, - "name": "_votingPeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7917, - "src": "7250:19:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7950, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7272:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7250:23:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f766f74696e67506572696f644c656e6774682063616e6e6f742062652030", - "id": 7952, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7275:33:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_90c9559254cdd6a8c5e39e97417540a97cc2c7e6b004410ebb33d7f7769bc53b", - "typeString": "literal_string \"_votingPeriodLength cannot be 0\"" - }, - "value": "_votingPeriodLength cannot be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_90c9559254cdd6a8c5e39e97417540a97cc2c7e6b004410ebb33d7f7769bc53b", - "typeString": "literal_string \"_votingPeriodLength cannot be 0\"" - } - ], - "id": 7948, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7242:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7953, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7242:67:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7954, - "nodeType": "ExpressionStatement", - "src": "7242:67:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7958, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7956, - "name": "_votingPeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7917, - "src": "7328:19:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 7957, - "name": "MAX_VOTING_PERIOD_LENGTH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7692, - "src": "7351:24:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7328:47:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f766f74696e67506572696f644c656e6774682065786365656473206c696d6974", - "id": 7959, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7377:35:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7cba4ff2b7c48d54c20d93277dca7b9500525168ffa3f2b94651177b72c45612", - "typeString": "literal_string \"_votingPeriodLength exceeds limit\"" - }, - "value": "_votingPeriodLength exceeds limit" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7cba4ff2b7c48d54c20d93277dca7b9500525168ffa3f2b94651177b72c45612", - "typeString": "literal_string \"_votingPeriodLength exceeds limit\"" - } - ], - "id": 7955, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7320:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7960, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7320:93:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7961, - "nodeType": "ExpressionStatement", - "src": "7320:93:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7965, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7963, - "name": "_gracePeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7919, - "src": "7432:18:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 7964, - "name": "MAX_GRACE_PERIOD_LENGTH", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7697, - "src": "7454:23:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7432:45:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f6772616365506572696f644c656e6774682065786365656473206c696d6974", - "id": 7966, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7479:34:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_94e4c02e557a13b96fee3c87ad3ed501d16c78e01ccadd26d54a03a2773f4e60", - "typeString": "literal_string \"_gracePeriodLength exceeds limit\"" - }, - "value": "_gracePeriodLength exceeds limit" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_94e4c02e557a13b96fee3c87ad3ed501d16c78e01ccadd26d54a03a2773f4e60", - "typeString": "literal_string \"_gracePeriodLength exceeds limit\"" - } - ], - "id": 7962, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7424:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7424:90:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7968, - "nodeType": "ExpressionStatement", - "src": "7424:90:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 7970, - "name": "_emergencyProcessingWait", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7921, - "src": "7533:24:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7971, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7560:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7533:28:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f656d657267656e637950726f63657373696e67576169742063616e6e6f742062652030", - "id": 7973, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7563:38:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bbc33dc034ca97464527af241134c23d7681bf4b99d8886c6c16474b9fa58717", - "typeString": "literal_string \"_emergencyProcessingWait cannot be 0\"" - }, - "value": "_emergencyProcessingWait cannot be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_bbc33dc034ca97464527af241134c23d7681bf4b99d8886c6c16474b9fa58717", - "typeString": "literal_string \"_emergencyProcessingWait cannot be 0\"" - } - ], - "id": 7969, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7525:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7974, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7525:77:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7975, - "nodeType": "ExpressionStatement", - "src": "7525:77:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 7980, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 7977, - "name": "_approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7913, - "src": "7988:15:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - } - }, - "id": 7978, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "7988:22:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7979, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8013:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7988:26:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6e656564206174206c65617374206f6e6520617070726f76656420746f6b656e", - "id": 7981, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8016:34:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c6d3134f6bde8083414251001f93c467973bb02a0dc01b762665902389253170", - "typeString": "literal_string \"need at least one approved token\"" - }, - "value": "need at least one approved token" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c6d3134f6bde8083414251001f93c467973bb02a0dc01b762665902389253170", - "typeString": "literal_string \"need at least one approved token\"" - } - ], - "id": 7976, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "7980:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 7982, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7980:71:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 7983, - "nodeType": "ExpressionStatement", - "src": "7980:71:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 7986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7984, - "name": "summoner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7671, - "src": "8184:8:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 7985, - "name": "_summoner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7909, - "src": "8195:9:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "8184:20:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7987, - "nodeType": "ExpressionStatement", - "src": "8184:20:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 7994, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 7988, - "name": "depositToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7685, - "src": "8217:12:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 7990, - "name": "_approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7913, - "src": "8239:15:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - } - }, - "id": 7992, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 7991, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8255:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8239:18:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 7989, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9719, - "src": "8232:6:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 7993, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8232:26:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "src": "8217:41:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 7995, - "nodeType": "ExpressionStatement", - "src": "8217:41:15" - }, - { - "body": { - "id": 8028, - "nodeType": "Block", - "src": "8324:307:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8014, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8008, - "name": "_approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7913, - "src": "8347:15:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - } - }, - "id": 8010, - "indexExpression": { - "argumentTypes": null, - "id": 8009, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7997, - "src": "8363:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8347:18:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8012, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8377:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8011, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "8369:7:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8013, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8369:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "8347:32:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5f617070726f766564546f6b656e2063616e6e6f742062652030", - "id": 8015, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8381:28:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_5b40b09ae38f1346b8a26ea643f189c8d547e60b5d4d63ceb6e8e43507dd5bc8", - "typeString": "literal_string \"_approvedToken cannot be 0\"" - }, - "value": "_approvedToken cannot be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_5b40b09ae38f1346b8a26ea643f189c8d547e60b5d4d63ceb6e8e43507dd5bc8", - "typeString": "literal_string \"_approvedToken cannot be 0\"" - } - ], - "id": 8007, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "8339:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8016, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8339:71:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8017, - "nodeType": "ExpressionStatement", - "src": "8339:71:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8022, - "name": "_approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7913, - "src": "8599:15:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - } - }, - "id": 8024, - "indexExpression": { - "argumentTypes": null, - "id": 8023, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7997, - "src": "8615:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "8599:18:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8021, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9719, - "src": "8592:6:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 8025, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8592:26:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - ], - "expression": { - "argumentTypes": null, - "id": 8018, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7845, - "src": "8572:14:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage", - "typeString": "contract IERC20[] storage ref" - } - }, - "id": 8020, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8572:19:15", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_contract$_IERC20_$9719_$returns$_t_uint256_$", - "typeString": "function (contract IERC20) returns (uint256)" - } - }, - "id": 8026, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8572:47:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8027, - "nodeType": "ExpressionStatement", - "src": "8572:47:15" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8003, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8000, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7997, - "src": "8291:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8001, - "name": "_approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7913, - "src": "8295:15:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - } - }, - "id": 8002, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8295:22:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8291:26:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8029, - "initializationExpression": { - "assignments": [ - 7997 - ], - "declarations": [ - { - "constant": false, - "id": 7997, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 8029, - "src": "8276:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7996, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8276:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 7999, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 7998, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8288:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "8276:13:15" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 8005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "8319:3:15", - "subExpression": { - "argumentTypes": null, - "id": 8004, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7997, - "src": "8319:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8006, - "nodeType": "ExpressionStatement", - "src": "8319:3:15" - }, - "nodeType": "ForStatement", - "src": "8271:360:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8030, - "name": "guildBank", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7687, - "src": "8643:9:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8032, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "8655:13:15", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_GuildBank_$7658_$", - "typeString": "function () returns (contract GuildBank)" - }, - "typeName": { - "contractScope": null, - "id": 8031, - "name": "GuildBank", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7658, - "src": "8659:9:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - } - }, - "id": 8033, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8655:15:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - }, - "src": "8643:27:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - }, - "id": 8035, - "nodeType": "ExpressionStatement", - "src": "8643:27:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8038, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8036, - "name": "periodDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7673, - "src": "8683:14:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8037, - "name": "_periodDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7915, - "src": "8700:15:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8683:32:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8039, - "nodeType": "ExpressionStatement", - "src": "8683:32:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8042, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8040, - "name": "votingPeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7675, - "src": "8726:18:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8041, - "name": "_votingPeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7917, - "src": "8747:19:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8726:40:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8043, - "nodeType": "ExpressionStatement", - "src": "8726:40:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8046, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8044, - "name": "gracePeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7677, - "src": "8777:17:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8045, - "name": "_gracePeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7919, - "src": "8797:18:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8777:38:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8047, - "nodeType": "ExpressionStatement", - "src": "8777:38:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8048, - "name": "emergencyProcessingWait", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7679, - "src": "8826:23:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8049, - "name": "_emergencyProcessingWait", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7921, - "src": "8852:24:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8826:50:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8051, - "nodeType": "ExpressionStatement", - "src": "8826:50:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8052, - "name": "proposalDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7681, - "src": "8926:15:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8053, - "name": "_proposalDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7925, - "src": "8944:16:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "8926:34:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8055, - "nodeType": "ExpressionStatement", - "src": "8926:34:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8058, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8056, - "name": "summoningTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7683, - "src": "9065:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8057, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10413, - "src": "9081:3:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9065:19:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8059, - "nodeType": "ExpressionStatement", - "src": "9065:19:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8069, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8060, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "9097:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 8062, - "indexExpression": { - "argumentTypes": null, - "id": 8061, - "name": "summoner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7671, - "src": "9105:8:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9097:17:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8064, - "name": "summoner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7671, - "src": "9124:8:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "31", - "id": 8065, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9134:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8066, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9137:4:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 8067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9143:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8063, - "name": "Member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7805, - "src": "9117:6:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Member_$7805_storage_ptr_$", - "typeString": "type(struct Moloch.Member storage pointer)" - } - }, - "id": 8068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9117:28:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_memory", - "typeString": "struct Moloch.Member memory" - } - }, - "src": "9097:48:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "id": 8070, - "nodeType": "ExpressionStatement", - "src": "9097:48:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8075, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8071, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7853, - "src": "9156:26:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 8073, - "indexExpression": { - "argumentTypes": null, - "id": 8072, - "name": "summoner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7671, - "src": "9183:8:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "9156:36:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8074, - "name": "summoner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7671, - "src": "9195:8:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "9156:47:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8076, - "nodeType": "ExpressionStatement", - "src": "9156:47:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8077, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7786, - "src": "9214:11:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 8078, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9228:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "9214:15:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8080, - "nodeType": "ExpressionStatement", - "src": "9214:15:15" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8082, - "name": "summoner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7671, - "src": "9262:8:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "hexValue": "31", - "id": 8083, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9272:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "id": 8081, - "name": "SummonComplete", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7780, - "src": "9247:14:15", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 8084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9247:27:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8085, - "nodeType": "EmitStatement", - "src": "9242:32:15" - } - ] - }, - "documentation": null, - "id": 8087, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 7930, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 7909, - "name": "_summoner", - "nodeType": "VariableDeclaration", - "scope": 8087, - "src": "6731:17:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 7908, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6731:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7913, - "name": "_approvedTokens", - "nodeType": "VariableDeclaration", - "scope": 8087, - "src": "6759:33:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1]" - }, - "typeName": { - "baseType": { - "id": 7910, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6759:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 7912, - "length": { - "argumentTypes": null, - "hexValue": "31", - "id": 7911, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6767:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "ArrayTypeName", - "src": "6759:10:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_storage_ptr", - "typeString": "address[1]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7915, - "name": "_periodDuration", - "nodeType": "VariableDeclaration", - "scope": 8087, - "src": "6803:23:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7914, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6803:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7917, - "name": "_votingPeriodLength", - "nodeType": "VariableDeclaration", - "scope": 8087, - "src": "6837:27:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7916, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6837:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7919, - "name": "_gracePeriodLength", - "nodeType": "VariableDeclaration", - "scope": 8087, - "src": "6875:26:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7918, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6875:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7921, - "name": "_emergencyProcessingWait", - "nodeType": "VariableDeclaration", - "scope": 8087, - "src": "6912:32:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7920, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6912:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7923, - "name": "_bailoutWait", - "nodeType": "VariableDeclaration", - "scope": 8087, - "src": "6955:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7922, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6955:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7925, - "name": "_proposalDeposit", - "nodeType": "VariableDeclaration", - "scope": 8087, - "src": "6986:24:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7924, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6986:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7927, - "name": "_dilutionBound", - "nodeType": "VariableDeclaration", - "scope": 8087, - "src": "7021:22:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7926, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7021:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 7929, - "name": "_processingReward", - "nodeType": "VariableDeclaration", - "scope": 8087, - "src": "7054:25:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 7928, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7054:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6720:366:15" - }, - "returnParameters": { - "id": 7931, - "nodeType": "ParameterList", - "parameters": [], - "src": "7094:0:15" - }, - "scope": 9115, - "src": "6709:2573:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8148, - "nodeType": "Block", - "src": "9698:1003:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8113, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8111, - "name": "sharesRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8091, - "src": "9717:15:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 8112, - "name": "MAX_NUMBER_OF_SHARES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7702, - "src": "9736:20:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9717:39:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6f206d616e792073686172657320726571756573746564", - "id": 8114, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9758:27:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_584b3bdfa816bf4fa30756567c0526c04441dc54230f4ba83c195ee6f0a70758", - "typeString": "literal_string \"too many shares requested\"" - }, - "value": "too many shares requested" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_584b3bdfa816bf4fa30756567c0526c04441dc54230f4ba83c195ee6f0a70758", - "typeString": "literal_string \"too many shares requested\"" - } - ], - "id": 8110, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "9709:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8115, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9709:77:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8116, - "nodeType": "ExpressionStatement", - "src": "9709:77:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8118, - "name": "applicant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8089, - "src": "9970:9:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8120, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9991:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8119, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9983:7:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8121, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9983:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "9970:23:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6170706c6963616e742063616e6e6f742062652030", - "id": 8123, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9995:23:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9ab093dd894be784ee3143d9792a50bf0275e1dda1505d8ede42bc26455cf276", - "typeString": "literal_string \"applicant cannot be 0\"" - }, - "value": "applicant cannot be 0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9ab093dd894be784ee3143d9792a50bf0275e1dda1505d8ede42bc26455cf276", - "typeString": "literal_string \"applicant cannot be 0\"" - } - ], - "id": 8117, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "9962:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9962:57:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8125, - "nodeType": "ExpressionStatement", - "src": "9962:57:15" - }, - { - "assignments": [ - 8130 - ], - "declarations": [ - { - "constant": false, - "id": 8130, - "name": "flags", - "nodeType": "VariableDeclaration", - "scope": 8148, - "src": "10359:20:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6]" - }, - "typeName": { - "baseType": { - "id": 8128, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10359:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8129, - "length": { - "argumentTypes": null, - "hexValue": "36", - "id": 8127, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10364:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - }, - "value": "6" - }, - "nodeType": "ArrayTypeName", - "src": "10359:7:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", - "typeString": "bool[6]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8131, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "10359:20:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8133, - "name": "applicant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8089, - "src": "10476:9:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8134, - "name": "sharesRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8091, - "src": "10487:15:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8135, - "name": "lootRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8093, - "src": "10504:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8136, - "name": "tributeOffered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8095, - "src": "10519:14:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8137, - "name": "tributeToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8097, - "src": "10535:12:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8138, - "name": "paymentRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8099, - "src": "10549:16:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8139, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8101, - "src": "10567:12:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8140, - "name": "details", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8103, - "src": "10581:7:15", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 8141, - "name": "flags", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8130, - "src": "10590:5:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6] memory" - } - ], - "id": 8132, - "name": "_submitProposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8231, - "src": "10460:15:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$_t_string_memory_ptr_$_t_array$_t_bool_$6_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,uint256,uint256,address,uint256,address,string memory,bool[6] memory)" - } - }, - "id": 8142, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10460:136:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8143, - "nodeType": "ExpressionStatement", - "src": "10460:136:15" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8146, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8144, - "name": "proposalCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7783, - "src": "10614:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 8145, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10630:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "10614:17:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 8109, - "id": 8147, - "nodeType": "Return", - "src": "10607:24:15" - } - ] - }, - "documentation": "***************\r\nPROPOSAL FUNCTIONS\r****************", - "id": 8149, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 8106, - "modifierName": { - "argumentTypes": null, - "id": 8105, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9748, - "src": "9656:12:15", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9656:12:15" - } - ], - "name": "submitProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8104, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8089, - "name": "applicant", - "nodeType": "VariableDeclaration", - "scope": 8149, - "src": "9396:17:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8088, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9396:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8091, - "name": "sharesRequested", - "nodeType": "VariableDeclaration", - "scope": 8149, - "src": "9424:23:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8090, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9424:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8093, - "name": "lootRequested", - "nodeType": "VariableDeclaration", - "scope": 8149, - "src": "9458:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8092, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9458:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8095, - "name": "tributeOffered", - "nodeType": "VariableDeclaration", - "scope": 8149, - "src": "9490:22:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8094, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9490:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8097, - "name": "tributeToken", - "nodeType": "VariableDeclaration", - "scope": 8149, - "src": "9523:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8096, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9523:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8099, - "name": "paymentRequested", - "nodeType": "VariableDeclaration", - "scope": 8149, - "src": "9554:24:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8098, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9554:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8101, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 8149, - "src": "9589:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8100, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9589:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8103, - "name": "details", - "nodeType": "VariableDeclaration", - "scope": 8149, - "src": "9620:21:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 8102, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "9620:6:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9385:263:15" - }, - "returnParameters": { - "id": 8109, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8108, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 8149, - "src": "9678:18:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8107, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9678:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9677:20:15" - }, - "scope": 9115, - "src": "9362:1339:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8230, - "nodeType": "Block", - "src": "12407:984:15", - "statements": [ - { - "assignments": [ - 8173 - ], - "declarations": [ - { - "constant": false, - "id": 8173, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 8230, - "src": "12418:24:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", - "typeString": "struct Moloch.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 8172, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7842, - "src": "12418:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8198, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8175, - "name": "applicant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "12481:9:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8176, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "12516:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "12516:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8179, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12559:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "12551:7:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8180, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12551:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 8181, - "name": "sharesRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8153, - "src": "12594:15:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8182, - "name": "lootRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8155, - "src": "12640:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8183, - "name": "tributeOffered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8157, - "src": "12685:14:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8185, - "name": "tributeToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8159, - "src": "12736:12:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8184, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9719, - "src": "12729:6:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 8186, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12729:20:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - { - "argumentTypes": null, - "id": 8187, - "name": "paymentRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "12783:16:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8189, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8163, - "src": "12836:12:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8188, - "name": "IERC20", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9719, - "src": "12829:6:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$9719_$", - "typeString": "type(contract IERC20)" - } - }, - "id": 8190, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12829:20:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 8191, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12881:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 8192, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12908:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 8193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12934:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - { - "argumentTypes": null, - "id": 8194, - "name": "flags", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8169, - "src": "12958:5:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6] memory" - } - }, - { - "argumentTypes": null, - "id": 8195, - "name": "details", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8165, - "src": "12988:7:15", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 8196, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13043:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8174, - "name": "Proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7842, - "src": "12445:8:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Proposal_$7842_storage_ptr_$", - "typeString": "type(struct Moloch.Proposal storage pointer)" - } - }, - "id": 8197, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [ - "applicant", - "proposer", - "sponsor", - "sharesRequested", - "lootRequested", - "tributeOffered", - "tributeToken", - "paymentRequested", - "paymentToken", - "startingPeriod", - "yesVotes", - "noVotes", - "flags", - "details", - "maxTotalSharesAndLootAtYesVote" - ], - "nodeType": "FunctionCall", - "src": "12445:611:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_memory", - "typeString": "struct Moloch.Proposal memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12418:638:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8199, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "13069:9:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" - } - }, - "id": 8201, - "indexExpression": { - "argumentTypes": null, - "id": 8200, - "name": "proposalCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7783, - "src": "13079:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "13069:24:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8202, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8173, - "src": "13096:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", - "typeString": "struct Moloch.Proposal memory" - } - }, - "src": "13069:35:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "id": 8204, - "nodeType": "ExpressionStatement", - "src": "13069:35:15" - }, - { - "assignments": [ - 8206 - ], - "declarations": [ - { - "constant": false, - "id": 8206, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 8230, - "src": "13115:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8205, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13115:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8211, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8207, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7853, - "src": "13139:26:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 8210, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8208, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "13166:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8209, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13166:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13139:38:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13115:62:15" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8213, - "name": "proposalCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7783, - "src": "13208:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8214, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "13223:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8215, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13223:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 8216, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8206, - "src": "13235:13:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8217, - "name": "applicant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8151, - "src": "13250:9:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8218, - "name": "sharesRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8153, - "src": "13261:15:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8219, - "name": "lootRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8155, - "src": "13278:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8220, - "name": "tributeOffered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8157, - "src": "13293:14:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8221, - "name": "tributeToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8159, - "src": "13309:12:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8222, - "name": "paymentRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8161, - "src": "13323:16:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8223, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8163, - "src": "13341:12:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 8212, - "name": "SubmitProposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7724, - "src": "13193:14:15", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (uint256,address,address,address,uint256,uint256,uint256,address,uint256,address)" - } - }, - "id": 8224, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13193:161:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8225, - "nodeType": "EmitStatement", - "src": "13188:166:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8228, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8226, - "name": "proposalCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7783, - "src": "13365:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 8227, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13382:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "13365:18:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8229, - "nodeType": "ExpressionStatement", - "src": "13365:18:15" - } - ] - }, - "documentation": null, - "id": 8231, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_submitProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8151, - "name": "applicant", - "nodeType": "VariableDeclaration", - "scope": 8231, - "src": "12114:17:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8150, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12114:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8153, - "name": "sharesRequested", - "nodeType": "VariableDeclaration", - "scope": 8231, - "src": "12142:23:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8152, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12142:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8155, - "name": "lootRequested", - "nodeType": "VariableDeclaration", - "scope": 8231, - "src": "12176:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8154, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12176:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8157, - "name": "tributeOffered", - "nodeType": "VariableDeclaration", - "scope": 8231, - "src": "12208:22:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8156, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12208:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8159, - "name": "tributeToken", - "nodeType": "VariableDeclaration", - "scope": 8231, - "src": "12241:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8158, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12241:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8161, - "name": "paymentRequested", - "nodeType": "VariableDeclaration", - "scope": 8231, - "src": "12272:24:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8160, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12272:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8163, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 8231, - "src": "12307:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8162, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12307:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8165, - "name": "details", - "nodeType": "VariableDeclaration", - "scope": 8231, - "src": "12338:21:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 8164, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "12338:6:15", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8169, - "name": "flags", - "nodeType": "VariableDeclaration", - "scope": 8231, - "src": "12370:20:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6]" - }, - "typeName": { - "baseType": { - "id": 8166, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12370:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8168, - "length": { - "argumentTypes": null, - "hexValue": "36", - "id": 8167, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12375:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - }, - "value": "6" - }, - "nodeType": "ArrayTypeName", - "src": "12370:7:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", - "typeString": "bool[6]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12103:294:15" - }, - "returnParameters": { - "id": 8171, - "nodeType": "ParameterList", - "parameters": [], - "src": "12407:0:15" - }, - "scope": 9115, - "src": "12079:1312:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 8346, - "nodeType": "Block", - "src": "13477:1932:15", - "statements": [ - { - "assignments": [ - 8241 - ], - "declarations": [ - { - "constant": false, - "id": 8241, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 8346, - "src": "13732:25:15", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 8240, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7842, - "src": "13732:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8245, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8242, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "13760:9:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" - } - }, - "id": 8244, - "indexExpression": { - "argumentTypes": null, - "id": 8243, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8233, - "src": "13770:10:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13760:21:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "13732:49:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8252, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8247, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8241, - "src": "13802:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8248, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "proposer", - "nodeType": "MemberAccess", - "referencedDeclaration": 7809, - "src": "13802:17:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8250, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13831:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8249, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13823:7:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 8251, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13823:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "13802:31:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c206d7573742068617665206265656e2070726f706f736564", - "id": 8253, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13835:34:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ac8dac03073454fa1d404b87251ebaea89a776f599ae35927c3fdc86124e6933", - "typeString": "literal_string \"proposal must have been proposed\"" - }, - "value": "proposal must have been proposed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ac8dac03073454fa1d404b87251ebaea89a776f599ae35927c3fdc86124e6933", - "typeString": "literal_string \"proposal must have been proposed\"" - } - ], - "id": 8246, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "13794:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13794:76:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8255, - "nodeType": "ExpressionStatement", - "src": "13794:76:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "13889:18:15", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8257, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8241, - "src": "13890:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8258, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 7833, - "src": "13890:14:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 8260, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8259, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13905:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13890:17:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c2068617320616c7265616479206265656e2073706f6e736f726564", - "id": 8262, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13909:37:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8ce373ba28507085e66e9df24290b9ef61d72fa05638e1221982de773985e387", - "typeString": "literal_string \"proposal has already been sponsored\"" - }, - "value": "proposal has already been sponsored" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8ce373ba28507085e66e9df24290b9ef61d72fa05638e1221982de773985e387", - "typeString": "literal_string \"proposal has already been sponsored\"" - } - ], - "id": 8256, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "13881:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8263, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13881:66:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8264, - "nodeType": "ExpressionStatement", - "src": "13881:66:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8270, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "13966:18:15", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8266, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8241, - "src": "13967:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8267, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 7833, - "src": "13967:14:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 8269, - "indexExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 8268, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13982:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13967:17:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c20686173206265656e2063616e63656c6c6564", - "id": 8271, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13986:29:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_310ff3a9ce641706ee5130d4a11d082239c2f517d2fdbc264a36cda8e36c8cbd", - "typeString": "literal_string \"proposal has been cancelled\"" - }, - "value": "proposal has been cancelled" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_310ff3a9ce641706ee5130d4a11d082239c2f517d2fdbc264a36cda8e36c8cbd", - "typeString": "literal_string \"proposal has been cancelled\"" - } - ], - "id": 8265, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "13958:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8272, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13958:58:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8273, - "nodeType": "ExpressionStatement", - "src": "13958:58:15" - }, - { - "assignments": [ - 8275 - ], - "declarations": [ - { - "constant": false, - "id": 8275, - "name": "startingPeriod", - "nodeType": "VariableDeclaration", - "scope": 8346, - "src": "14800:22:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8274, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14800:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8299, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 8297, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14992:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 8277, - "name": "getCurrentPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9014, - "src": "14843:16:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 8278, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14843:18:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8282, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8279, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "14876:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8280, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14876:20:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8281, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14900:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "14876:25:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8284, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "14908:9:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" - } - }, - "id": 8292, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8285, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "14918:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8291, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 8289, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14957:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8286, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "14932:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8287, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14932:20:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8288, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "14932:24:15", - "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": 8290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14932:27:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14918:42:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14908:53:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "id": 8293, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "startingPeriod", - "nodeType": "MemberAccess", - "referencedDeclaration": 7825, - "src": "14908:68:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8294, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "14876:100:15", - "trueExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8283, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14904:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8276, - "name": "max", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9000, - "src": "14825:3:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256,uint256) pure returns (uint256)" - } - }, - "id": 8295, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14825:162:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8296, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "14825:166:15", - "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": 8298, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14825:169:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14800:194:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8300, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8241, - "src": "15007:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8302, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "startingPeriod", - "nodeType": "MemberAccess", - "referencedDeclaration": 7825, - "src": "15007:23:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8303, - "name": "startingPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8275, - "src": "15033:14:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15007:40:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8305, - "nodeType": "ExpressionStatement", - "src": "15007:40:15" - }, - { - "assignments": [ - 8307 - ], - "declarations": [ - { - "constant": false, - "id": 8307, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 8346, - "src": "15060:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8306, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15060:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8312, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8308, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7853, - "src": "15084:26:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 8311, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8309, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "15111:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8310, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15111:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15084:38:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15060:62:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8317, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8313, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8241, - "src": "15133:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8315, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "sponsor", - "nodeType": "MemberAccess", - "referencedDeclaration": 7811, - "src": "15133:16:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8316, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8307, - "src": "15152:13:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15133:32:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8318, - "nodeType": "ExpressionStatement", - "src": "15133:32:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8325, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8319, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8241, - "src": "15178:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8322, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 7833, - "src": "15178:14:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 8323, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8321, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15193:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "15178:17:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8324, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15198:4:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "15178:24:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8326, - "nodeType": "ExpressionStatement", - "src": "15178:24:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8330, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8233, - "src": "15275:10:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8327, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "15256:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8329, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15256:18:15", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (uint256) returns (uint256)" - } - }, - "id": 8331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15256:30:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8332, - "nodeType": "ExpressionStatement", - "src": "15256:30:15" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8334, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "15318:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8335, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15318:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 8336, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8307, - "src": "15330:13:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8337, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8233, - "src": "15345:10:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 8341, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15382:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8338, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "15357:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8339, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15357:20:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8340, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "15357:24:15", - "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": 8342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15357:27:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8343, - "name": "startingPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8275, - "src": "15386:14:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8333, - "name": "SponsorProposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7736, - "src": "15302:15:15", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256,uint256,uint256)" - } - }, - "id": 8344, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15302:99:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8345, - "nodeType": "EmitStatement", - "src": "15297:104:15" - } - ] - }, - "documentation": null, - "id": 8347, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 8236, - "modifierName": { - "argumentTypes": null, - "id": 8235, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9748, - "src": "13451:12:15", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13451:12:15" - }, - { - "arguments": null, - "id": 8238, - "modifierName": { - "argumentTypes": null, - "id": 8237, - "name": "onlyDelegate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7907, - "src": "13464:12:15", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "13464:12:15" - } - ], - "name": "sponsorProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8234, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8233, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 8347, - "src": "13424:18:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8232, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13424:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13423:20:15" - }, - "returnParameters": { - "id": 8239, - "nodeType": "ParameterList", - "parameters": [], - "src": "13477:0:15" - }, - "scope": 9115, - "src": "13399:2010:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8354, - "nodeType": "Block", - "src": "15468:39:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8352, - "name": "proposalCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7783, - "src": "15486:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 8351, - "id": 8353, - "nodeType": "Return", - "src": "15479:20:15" - } - ] - }, - "documentation": null, - "id": 8355, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8348, - "nodeType": "ParameterList", - "parameters": [], - "src": "15436:2:15" - }, - "returnParameters": { - "id": 8351, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8350, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 8355, - "src": "15460:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8349, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15460:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15459:9:15" - }, - "scope": 9115, - "src": "15415:92:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8503, - "nodeType": "Block", - "src": "15613:1701:15", - "statements": [ - { - "assignments": [ - 8367 - ], - "declarations": [ - { - "constant": false, - "id": 8367, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 8503, - "src": "15624:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8366, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15624:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8372, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8368, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7853, - "src": "15648:26:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 8371, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8369, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "15675:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8370, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15675:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15648:38:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15624:62:15" - }, - { - "assignments": [ - 8374 - ], - "declarations": [ - { - "constant": false, - "id": 8374, - "name": "member", - "nodeType": "VariableDeclaration", - "scope": 8503, - "src": "15697:21:15", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member" - }, - "typeName": { - "contractScope": null, - "id": 8373, - "name": "Member", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7805, - "src": "15697:6:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8378, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8375, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "15721:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 8377, - "indexExpression": { - "argumentTypes": null, - "id": 8376, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8367, - "src": "15729:13:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15721:22:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15697:46:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8383, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8380, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8357, - "src": "15764:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8381, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "15780:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8382, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15780:20:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "15764:36:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", - "id": 8384, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15802:25:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - }, - "value": "proposal does not exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - } - ], - "id": 8379, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "15756:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8385, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15756:72:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8386, - "nodeType": "ExpressionStatement", - "src": "15756:72:15" - }, - { - "assignments": [ - 8388 - ], - "declarations": [ - { - "constant": false, - "id": 8388, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 8503, - "src": "15839:25:15", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 8387, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7842, - "src": "15839:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8394, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8389, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "15867:9:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" - } - }, - "id": 8393, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8390, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "15877:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8392, - "indexExpression": { - "argumentTypes": null, - "id": 8391, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8357, - "src": "15891:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15877:28:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15867:39:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15839:67:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 8398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8396, - "name": "uintVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8359, - "src": "15927:8:15", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 8397, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15938:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "src": "15927:12:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d757374206265206c657373207468616e2033", - "id": 8399, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15941:21:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_707c6bf11f318d88bf3ce18a41621954ec264b68d584313fba9bb644a8e76020", - "typeString": "literal_string \"must be less than 3\"" - }, - "value": "must be less than 3" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_707c6bf11f318d88bf3ce18a41621954ec264b68d584313fba9bb644a8e76020", - "typeString": "literal_string \"must be less than 3\"" - } - ], - "id": 8395, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "15919:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15919:44:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8401, - "nodeType": "ExpressionStatement", - "src": "15919:44:15" - }, - { - "assignments": [ - 8403 - ], - "declarations": [ - { - "constant": false, - "id": 8403, - "name": "vote", - "nodeType": "VariableDeclaration", - "scope": 8503, - "src": "15974:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - }, - "typeName": { - "contractScope": null, - "id": 8402, - "name": "Vote", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7796, - "src": "15974:4:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8407, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8405, - "name": "uintVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8359, - "src": "15991:8:15", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 8404, - "name": "Vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7796, - "src": "15986:4:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Vote_$7796_$", - "typeString": "type(enum Moloch.Vote)" - } - }, - "id": 8406, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15986:14:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15974:26:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "16121:48:15", - "subExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8410, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8388, - "src": "16145:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8411, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "startingPeriod", - "nodeType": "MemberAccess", - "referencedDeclaration": 7825, - "src": "16145:23:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8409, - "name": "hasVotingPeriodExpired", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9079, - "src": "16122:22:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 8412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16122:47:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c20766f74696e6720706572696f64206861732065787069726564", - "id": 8414, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16171:36:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c0ba1a8fcc742113774789a424c824e010e781c8d7353e4ab7ada35c65566c07", - "typeString": "literal_string \"proposal voting period has expired\"" - }, - "value": "proposal voting period has expired" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_c0ba1a8fcc742113774789a424c824e010e781c8d7353e4ab7ada35c65566c07", - "typeString": "literal_string \"proposal voting period has expired\"" - } - ], - "id": 8408, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "16113:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8415, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16113:95:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8416, - "nodeType": "ExpressionStatement", - "src": "16113:95:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - }, - "id": 8424, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8418, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8388, - "src": "16227:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8419, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "votesByMember", - "nodeType": "MemberAccess", - "referencedDeclaration": 7841, - "src": "16227:22:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$7796_$", - "typeString": "mapping(address => enum Moloch.Vote)" - } - }, - "id": 8421, - "indexExpression": { - "argumentTypes": null, - "id": 8420, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8367, - "src": "16250:13:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16227:37:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8422, - "name": "Vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7796, - "src": "16268:4:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Vote_$7796_$", - "typeString": "type(enum Moloch.Vote)" - } - }, - "id": 8423, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Null", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16268:9:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "src": "16227:50:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d656d6265722068617320616c726561647920766f746564", - "id": 8425, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16279:26:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_7343d72c90cb341bd2f3ab7b007b6dc9c32e041eadcc4b701abd38deefeb2299", - "typeString": "literal_string \"member has already voted\"" - }, - "value": "member has already voted" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_7343d72c90cb341bd2f3ab7b007b6dc9c32e041eadcc4b701abd38deefeb2299", - "typeString": "literal_string \"member has already voted\"" - } - ], - "id": 8417, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "16219:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8426, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16219:87:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8427, - "nodeType": "ExpressionStatement", - "src": "16219:87:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 8437, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - }, - "id": 8432, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8429, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8403, - "src": "16325:4:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8430, - "name": "Vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7796, - "src": "16333:4:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Vote_$7796_$", - "typeString": "type(enum Moloch.Vote)" - } - }, - "id": 8431, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Yes", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16333:8:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "src": "16325:16:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - }, - "id": 8436, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8433, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8403, - "src": "16345:4:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8434, - "name": "Vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7796, - "src": "16353:4:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Vote_$7796_$", - "typeString": "type(enum Moloch.Vote)" - } - }, - "id": 8435, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "No", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16353:7:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "src": "16345:15:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "16325:35:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "766f7465206d7573742062652065697468657220596573206f72204e6f", - "id": 8438, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16362:31:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_cdbdf7342fd7207f7fe59a7f11b342501ce75d0d11dd200fffb4af998c12a928", - "typeString": "literal_string \"vote must be either Yes or No\"" - }, - "value": "vote must be either Yes or No" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_cdbdf7342fd7207f7fe59a7f11b342501ce75d0d11dd200fffb4af998c12a928", - "typeString": "literal_string \"vote must be either Yes or No\"" - } - ], - "id": 8428, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "16317:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8439, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16317:77:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8440, - "nodeType": "ExpressionStatement", - "src": "16317:77:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8447, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8441, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8388, - "src": "16407:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8444, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "votesByMember", - "nodeType": "MemberAccess", - "referencedDeclaration": 7841, - "src": "16407:22:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$7796_$", - "typeString": "mapping(address => enum Moloch.Vote)" - } - }, - "id": 8445, - "indexExpression": { - "argumentTypes": null, - "id": 8443, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8367, - "src": "16430:13:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "16407:37:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8446, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8403, - "src": "16447:4:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "src": "16407:44:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "id": 8448, - "nodeType": "ExpressionStatement", - "src": "16407:44:15" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - }, - "id": 8452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8449, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8403, - "src": "16468:4:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8450, - "name": "Vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7796, - "src": "16476:4:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Vote_$7796_$", - "typeString": "type(enum Moloch.Vote)" - } - }, - "id": 8451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "Yes", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16476:8:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "src": "16468:16:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - }, - "id": 8480, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8477, - "name": "vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8403, - "src": "17129:4:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8478, - "name": "Vote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7796, - "src": "17137:4:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_Vote_$7796_$", - "typeString": "type(enum Moloch.Vote)" - } - }, - "id": 8479, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "memberName": "No", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17137:7:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "src": "17129:15:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8493, - "nodeType": "IfStatement", - "src": "17125:102:15", - "trueBody": { - "id": 8492, - "nodeType": "Block", - "src": "17146:81:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8490, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8481, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8388, - "src": "17161:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8483, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "noVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 7829, - "src": "17161:16:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8487, - "name": "member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8374, - "src": "17201:6:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member storage pointer" - } - }, - "id": 8488, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 7800, - "src": "17201:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8484, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8388, - "src": "17180:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8485, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "noVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 7829, - "src": "17180:16:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8486, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "17180:20:15", - "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": 8489, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17180:35:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17161:54:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8491, - "nodeType": "ExpressionStatement", - "src": "17161:54:15" - } - ] - } - }, - "id": 8494, - "nodeType": "IfStatement", - "src": "16464:763:15", - "trueBody": { - "id": 8476, - "nodeType": "Block", - "src": "16486:633:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8462, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8453, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8388, - "src": "16501:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8455, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "yesVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 7827, - "src": "16501:17:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8459, - "name": "member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8374, - "src": "16543:6:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member storage pointer" - } - }, - "id": 8460, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 7800, - "src": "16543:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8456, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8388, - "src": "16521:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8457, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "yesVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 7827, - "src": "16521:17:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8458, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "16521:21:15", - "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": 8461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16521:36:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16501:56:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8463, - "nodeType": "ExpressionStatement", - "src": "16501:56:15" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8467, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8464, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8357, - "src": "16673:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8465, - "name": "member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8374, - "src": "16689:6:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member storage pointer" - } - }, - "id": 8466, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "highestIndexYesVote", - "nodeType": "MemberAccess", - "referencedDeclaration": 7804, - "src": "16689:26:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16673:42:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8475, - "nodeType": "IfStatement", - "src": "16669:125:15", - "trueBody": { - "id": 8474, - "nodeType": "Block", - "src": "16717:77:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8472, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8468, - "name": "member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8374, - "src": "16736:6:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member storage pointer" - } - }, - "id": 8470, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "highestIndexYesVote", - "nodeType": "MemberAccess", - "referencedDeclaration": 7804, - "src": "16736:26:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8471, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8357, - "src": "16765:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16736:42:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8473, - "nodeType": "ExpressionStatement", - "src": "16736:42:15" - } - ] - } - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8496, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8357, - "src": "17255:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8497, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "17270:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8498, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "17270:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 8499, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8367, - "src": "17282:13:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8500, - "name": "uintVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8359, - "src": "17297:8:15", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - ], - "id": 8495, - "name": "SubmitVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7746, - "src": "17244:10:15", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_uint8_$returns$__$", - "typeString": "function (uint256,address,address,uint8)" - } - }, - "id": 8501, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17244:62:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8502, - "nodeType": "EmitStatement", - "src": "17239:67:15" - } - ] - }, - "documentation": null, - "id": 8504, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 8362, - "modifierName": { - "argumentTypes": null, - "id": 8361, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9748, - "src": "15587:12:15", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "15587:12:15" - }, - { - "arguments": null, - "id": 8364, - "modifierName": { - "argumentTypes": null, - "id": 8363, - "name": "onlyDelegate", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7907, - "src": "15600:12:15", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "15600:12:15" - } - ], - "name": "submitVote", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8360, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8357, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 8504, - "src": "15541:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8356, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15541:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8359, - "name": "uintVote", - "nodeType": "VariableDeclaration", - "scope": 8504, - "src": "15564:14:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 8358, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "15564:5:15", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15540:39:15" - }, - "returnParameters": { - "id": 8365, - "nodeType": "ParameterList", - "parameters": [], - "src": "15613:0:15" - }, - "scope": 9115, - "src": "15521:1793:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "constant": false, - "id": 8506, - "name": "result", - "nodeType": "VariableDeclaration", - "scope": 9115, - "src": "17320:21:15", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8505, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17320:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 8513, - "nodeType": "Block", - "src": "17399:63:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8511, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8506, - "src": "17417:6:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 8510, - "id": 8512, - "nodeType": "Return", - "src": "17410:13:15" - } - ] - }, - "documentation": null, - "id": 8514, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getResult", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8507, - "nodeType": "ParameterList", - "parameters": [], - "src": "17367:2:15" - }, - "returnParameters": { - "id": 8510, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8509, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 8514, - "src": "17391:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8508, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17391:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17390:9:15" - }, - "scope": 9115, - "src": "17348:114:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8679, - "nodeType": "Block", - "src": "17538:3482:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8522, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8516, - "src": "17580:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8521, - "name": "_validateProposalForProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8765, - "src": "17549:30:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", - "typeString": "function (uint256) view" - } - }, - "id": 8523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17549:45:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8524, - "nodeType": "ExpressionStatement", - "src": "17549:45:15" - }, - { - "assignments": [ - 8526 - ], - "declarations": [ - { - "constant": false, - "id": 8526, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 8679, - "src": "17607:18:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8525, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17607:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8530, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8527, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "17628:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8529, - "indexExpression": { - "argumentTypes": null, - "id": 8528, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8516, - "src": "17642:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17628:28:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17607:49:15" - }, - { - "assignments": [ - 8532 - ], - "declarations": [ - { - "constant": false, - "id": 8532, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 8679, - "src": "17667:25:15", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 8531, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7842, - "src": "17667:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8536, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8533, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "17695:9:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" - } - }, - "id": 8535, - "indexExpression": { - "argumentTypes": null, - "id": 8534, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8526, - "src": "17705:10:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17695:21:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17667:49:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8543, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8537, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "17824:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8540, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 7833, - "src": "17824:14:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 8541, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 8539, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17839:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17824:17:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8542, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17844:4:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "17824:24:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8544, - "nodeType": "ExpressionStatement", - "src": "17824:24:15" - }, - { - "assignments": [ - 8546, - 8548 - ], - "declarations": [ - { - "constant": false, - "id": 8546, - "name": "didPass", - "nodeType": "VariableDeclaration", - "scope": 8679, - "src": "17875:12:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 8545, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17875:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8548, - "name": "emergencyProcessing", - "nodeType": "VariableDeclaration", - "scope": 8679, - "src": "17889:24:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 8547, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "17889:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8552, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8550, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8516, - "src": "17926:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8549, - "name": "_didPass", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8714, - "src": "17917:8:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$_t_bool_$_t_bool_$", - "typeString": "function (uint256) returns (bool,bool)" - } - }, - "id": 8551, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17917:23:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", - "typeString": "tuple(bool,bool)" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "17874:66:15" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8559, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8555, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "18069:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8556, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sharesRequested", - "nodeType": "MemberAccess", - "referencedDeclaration": 7813, - "src": "18069:24:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8553, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7786, - "src": "18053:11:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8554, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "18053:15:15", - "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": 8557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18053:41:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "id": 8558, - "name": "MAX_NUMBER_OF_SHARES", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7702, - "src": "18097:20:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18053:64:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8565, - "nodeType": "IfStatement", - "src": "18049:112:15", - "trueBody": { - "id": 8564, - "nodeType": "Block", - "src": "18119:42:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8560, - "name": "didPass", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8546, - "src": "18134:7:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 8561, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18144:5:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "18134:15:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8563, - "nodeType": "ExpressionStatement", - "src": "18134:15:15" - } - ] - } - }, - { - "condition": { - "argumentTypes": null, - "id": 8566, - "name": "didPass", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8546, - "src": "18531:7:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 8671, - "nodeType": "Block", - "src": "20511:386:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8665, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8663, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8506, - "src": "20526:6:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "32", - "id": 8664, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "20533:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "src": "20526:8:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8666, - "nodeType": "ExpressionStatement", - "src": "20526:8:15" - }, - { - "condition": { - "argumentTypes": null, - "id": 8668, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "20635:20:15", - "subExpression": { - "argumentTypes": null, - "id": 8667, - "name": "emergencyProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8548, - "src": "20636:19:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8670, - "nodeType": "IfStatement", - "src": "20631:255:15", - "trueBody": { - "id": 8669, - "nodeType": "Block", - "src": "20657:229:15", - "statements": [] - } - } - ] - }, - "id": 8672, - "nodeType": "IfStatement", - "src": "18527:2370:15", - "trueBody": { - "id": 8662, - "nodeType": "Block", - "src": "18540:1965:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8569, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8567, - "name": "result", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8506, - "src": "18555:6:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "31", - "id": 8568, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18562:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "18555:8:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8570, - "nodeType": "ExpressionStatement", - "src": "18555:8:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8577, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8571, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "18578:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8574, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 7833, - "src": "18578:14:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 8575, - "indexExpression": { - "argumentTypes": null, - "hexValue": "32", - "id": 8573, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18593:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2_by_1", - "typeString": "int_const 2" - }, - "value": "2" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18578:17:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18598:4:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "18578:24:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8578, - "nodeType": "ExpressionStatement", - "src": "18578:24:15" - }, - { - "condition": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8579, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "18724:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 8582, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8580, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "18732:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8581, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 7807, - "src": "18732:18:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18724:27:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "id": 8583, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "exists", - "nodeType": "MemberAccess", - "referencedDeclaration": 7802, - "src": "18724:34:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 8652, - "nodeType": "Block", - "src": "19096:771:15", - "statements": [ - { - "condition": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8601, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "19241:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 8606, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8602, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7853, - "src": "19249:26:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 8605, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8603, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "19276:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8604, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 7807, - "src": "19276:18:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19249:46:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19241:55:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "id": 8607, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "exists", - "nodeType": "MemberAccess", - "referencedDeclaration": 7802, - "src": "19241:62:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8629, - "nodeType": "IfStatement", - "src": "19237:349:15", - "trueBody": { - "id": 8628, - "nodeType": "Block", - "src": "19305:281:15", - "statements": [ - { - "assignments": [ - 8609 - ], - "declarations": [ - { - "constant": false, - "id": 8609, - "name": "memberToOverride", - "nodeType": "VariableDeclaration", - "scope": 8628, - "src": "19328:24:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8608, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19328:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8614, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8610, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7853, - "src": "19355:26:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 8613, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8611, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "19382:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8612, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 7807, - "src": "19382:18:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19355:46:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "19328:73:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8615, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7853, - "src": "19424:26:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 8617, - "indexExpression": { - "argumentTypes": null, - "id": 8616, - "name": "memberToOverride", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8609, - "src": "19451:16:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "19424:44:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8618, - "name": "memberToOverride", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8609, - "src": "19471:16:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "19424:63:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8620, - "nodeType": "ExpressionStatement", - "src": "19424:63:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8626, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8621, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "19510:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 8623, - "indexExpression": { - "argumentTypes": null, - "id": 8622, - "name": "memberToOverride", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8609, - "src": "19518:16:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19510:25:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "id": 8624, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "delegateKey", - "nodeType": "MemberAccess", - "referencedDeclaration": 7798, - "src": "19510:37:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 8625, - "name": "memberToOverride", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8609, - "src": "19550:16:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "19510:56:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8627, - "nodeType": "ExpressionStatement", - "src": "19510:56:15" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 8642, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8630, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "19674:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 8633, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8631, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "19682:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8632, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 7807, - "src": "19682:18:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "19674:27:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8635, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "19711:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8636, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 7807, - "src": "19711:18:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8637, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "19731:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8638, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sharesRequested", - "nodeType": "MemberAccess", - "referencedDeclaration": 7813, - "src": "19731:24:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8639, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19757:4:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - { - "argumentTypes": null, - "hexValue": "30", - "id": 8640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "19763:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 8634, - "name": "Member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7805, - "src": "19704:6:15", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Member_$7805_storage_ptr_$", - "typeString": "type(struct Moloch.Member storage pointer)" - } - }, - "id": 8641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19704:61:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_memory", - "typeString": "struct Moloch.Member memory" - } - }, - "src": "19674:91:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "id": 8643, - "nodeType": "ExpressionStatement", - "src": "19674:91:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8644, - "name": "memberAddressByDelegateKey", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7853, - "src": "19784:26:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_address_$", - "typeString": "mapping(address => address)" - } - }, - "id": 8647, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8645, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "19811:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8646, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 7807, - "src": "19811:18:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "19784:46:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8648, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "19833:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8649, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 7807, - "src": "19833:18:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "19784:67:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 8651, - "nodeType": "ExpressionStatement", - "src": "19784:67:15" - } - ] - }, - "id": 8653, - "nodeType": "IfStatement", - "src": "18720:1147:15", - "trueBody": { - "id": 8600, - "nodeType": "Block", - "src": "18760:330:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 8598, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8584, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "18779:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 8587, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8585, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "18787:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8586, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 7807, - "src": "18787:18:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18779:27:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "id": 8588, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 7800, - "src": "18779:34:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8595, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "18855:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8596, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sharesRequested", - "nodeType": "MemberAccess", - "referencedDeclaration": 7813, - "src": "18855:24:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8589, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "18816:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 8592, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8590, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "18824:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8591, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "applicant", - "nodeType": "MemberAccess", - "referencedDeclaration": 7807, - "src": "18824:18:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18816:27:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "id": 8593, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 7800, - "src": "18816:34:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8594, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "18816:38:15", - "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": 8597, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18816:64:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18779:101:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8599, - "nodeType": "ExpressionStatement", - "src": "18779:101:15" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 8660, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8654, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7786, - "src": "19922:11:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8657, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8532, - "src": "19952:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8658, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "sharesRequested", - "nodeType": "MemberAccess", - "referencedDeclaration": 7813, - "src": "19952:24:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8655, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7786, - "src": "19936:11:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "19936:15:15", - "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": 8659, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19936:41:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "19922:55:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8661, - "nodeType": "ExpressionStatement", - "src": "19922:55:15" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8674, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8516, - "src": "20977:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8675, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8526, - "src": "20992:10:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8676, - "name": "didPass", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8546, - "src": "21004:7:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 8673, - "name": "ProcessProposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7754, - "src": "20961:15:15", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_bool_$returns$__$", - "typeString": "function (uint256,uint256,bool)" - } - }, - "id": 8677, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "20961:51:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8678, - "nodeType": "EmitStatement", - "src": "20956:56:15" - } - ] - }, - "documentation": null, - "id": 8680, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 8519, - "modifierName": { - "argumentTypes": null, - "id": 8518, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9748, - "src": "17525:12:15", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "17525:12:15" - } - ], - "name": "processProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8517, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8516, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 8680, - "src": "17495:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8515, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17495:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17494:23:15" - }, - "returnParameters": { - "id": 8520, - "nodeType": "ParameterList", - "parameters": [], - "src": "17538:0:15" - }, - "scope": 9115, - "src": "17470:3550:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8713, - "nodeType": "Block", - "src": "23165:1739:15", - "statements": [ - { - "assignments": [ - 8690 - ], - "declarations": [ - { - "constant": false, - "id": 8690, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 8713, - "src": "23176:24:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", - "typeString": "struct Moloch.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 8689, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7842, - "src": "23176:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8696, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8691, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "23203:9:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" - } - }, - "id": 8695, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8692, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "23213:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8694, - "indexExpression": { - "argumentTypes": null, - "id": 8693, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8682, - "src": "23227:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23213:28:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23203:39:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "23176:66:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8697, - "name": "didPass", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "23255:7:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8702, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8698, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8690, - "src": "23265:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", - "typeString": "struct Moloch.Proposal memory" - } - }, - "id": 8699, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "yesVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 7827, - "src": "23265:17:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8700, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8690, - "src": "23285:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", - "typeString": "struct Moloch.Proposal memory" - } - }, - "id": 8701, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "noVotes", - "nodeType": "MemberAccess", - "referencedDeclaration": 7829, - "src": "23285:16:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "23265:36:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "23255:46:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8704, - "nodeType": "ExpressionStatement", - "src": "23255:46:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8705, - "name": "emergencyProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8687, - "src": "23417:19:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 8706, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23439:5:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "23417:27:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8708, - "nodeType": "ExpressionStatement", - "src": "23417:27:15" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 8709, - "name": "didPass", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8685, - "src": "24867:7:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "id": 8710, - "name": "emergencyProcessing", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8687, - "src": "24876:19:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 8711, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "24866:30:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_bool_$_t_bool_$", - "typeString": "tuple(bool,bool)" - } - }, - "functionReturnParameters": 8688, - "id": 8712, - "nodeType": "Return", - "src": "24859:37:15" - } - ] - }, - "documentation": null, - "id": 8714, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_didPass", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8683, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8682, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 8714, - "src": "23084:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8681, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "23084:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23083:23:15" - }, - "returnParameters": { - "id": 8688, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8685, - "name": "didPass", - "nodeType": "VariableDeclaration", - "scope": 8714, - "src": "23125:12:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 8684, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23125:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8687, - "name": "emergencyProcessing", - "nodeType": "VariableDeclaration", - "scope": 8714, - "src": "23139:24:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 8686, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "23139:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23124:40:15" - }, - "scope": 9115, - "src": "23066:1838:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 8764, - "nodeType": "Block", - "src": "24989:546:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8723, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8720, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8716, - "src": "25008:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8721, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "25024:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8722, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "25024:20:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25008:36:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", - "id": 8724, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25046:25:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - }, - "value": "proposal does not exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - } - ], - "id": 8719, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "25000:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8725, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25000:72:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8726, - "nodeType": "ExpressionStatement", - "src": "25000:72:15" - }, - { - "assignments": [ - 8728 - ], - "declarations": [ - { - "constant": false, - "id": 8728, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 8764, - "src": "25083:24:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", - "typeString": "struct Moloch.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 8727, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7842, - "src": "25083:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8734, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8729, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "25110:9:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" - } - }, - "id": 8733, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8730, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "25120:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8732, - "indexExpression": { - "argumentTypes": null, - "id": 8731, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8716, - "src": "25134:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25120:28:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25110:39:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "25083:66:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 8741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8736, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8728, - "src": "25325:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_memory_ptr", - "typeString": "struct Moloch.Proposal memory" - } - }, - "id": 8737, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 7833, - "src": "25325:14:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_memory", - "typeString": "bool[6] memory" - } - }, - "id": 8739, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 8738, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25340:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25325:17:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 8740, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25346:5:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "25325:26:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c2068617320616c7265616479206265656e2070726f636573736564", - "id": 8742, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25353:37:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_f70ef3e0419e3b9f916dea28b6ea9e7ed2c6d066761e4c360c469298c30b58d3", - "typeString": "literal_string \"proposal has already been processed\"" - }, - "value": "proposal has already been processed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_f70ef3e0419e3b9f916dea28b6ea9e7ed2c6d066761e4c360c469298c30b58d3", - "typeString": "literal_string \"proposal has already been processed\"" - } - ], - "id": 8735, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "25317:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8743, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25317:74:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8744, - "nodeType": "ExpressionStatement", - "src": "25317:74:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 8760, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8748, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8746, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8716, - "src": "25410:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8747, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25427:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "25410:18:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8749, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "25432:9:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" - } - }, - "id": 8756, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8750, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "25442:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 8755, - "indexExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 8753, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25474:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "id": 8751, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8716, - "src": "25456:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8752, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "25456:17:15", - "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": 8754, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25456:20:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25442:35:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25432:46:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "id": 8757, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 7833, - "src": "25432:52:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 8759, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 8758, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25485:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25432:55:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "25410:77:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726576696f75732070726f706f73616c206d7573742062652070726f636573736564", - "id": 8761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25489:37:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_38cd8535d1c8042024c6aab26e03143698df4f39cb508f25654837a140ff5918", - "typeString": "literal_string \"previous proposal must be processed\"" - }, - "value": "previous proposal must be processed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_38cd8535d1c8042024c6aab26e03143698df4f39cb508f25654837a140ff5918", - "typeString": "literal_string \"previous proposal must be processed\"" - } - ], - "id": 8745, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "25402:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25402:125:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8763, - "nodeType": "ExpressionStatement", - "src": "25402:125:15" - } - ] - }, - "documentation": null, - "id": 8765, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_validateProposalForProcessing", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8717, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8716, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 8765, - "src": "24952:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8715, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "24952:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24951:23:15" - }, - "returnParameters": { - "id": 8718, - "nodeType": "ParameterList", - "parameters": [], - "src": "24989:0:15" - }, - "scope": 9115, - "src": "24912:623:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 8784, - "nodeType": "Block", - "src": "26063:82:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8777, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "26084:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26084:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 8779, - "name": "sharesToBurn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8767, - "src": "26096:12:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8780, - "name": "lootToBurn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8769, - "src": "26110:10:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8781, - "name": "approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7845, - "src": "26122:14:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage", - "typeString": "contract IERC20[] storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage", - "typeString": "contract IERC20[] storage ref" - } - ], - "id": 8776, - "name": "_ragequit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8916, - "src": "26074:9:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,uint256,contract IERC20[] memory)" - } - }, - "id": 8782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26074:63:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8783, - "nodeType": "ExpressionStatement", - "src": "26074:63:15" - } - ] - }, - "documentation": null, - "id": 8785, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 8772, - "modifierName": { - "argumentTypes": null, - "id": 8771, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9748, - "src": "26039:12:15", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "26039:12:15" - }, - { - "arguments": null, - "id": 8774, - "modifierName": { - "argumentTypes": null, - "id": 8773, - "name": "onlyMember", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7875, - "src": "26052:10:15", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "26052:10:15" - } - ], - "name": "ragequit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8770, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8767, - "name": "sharesToBurn", - "nodeType": "VariableDeclaration", - "scope": 8785, - "src": "25990:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8766, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "25990:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8769, - "name": "lootToBurn", - "nodeType": "VariableDeclaration", - "scope": 8785, - "src": "26012:18:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8768, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26012:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "25989:42:15" - }, - "returnParameters": { - "id": 8775, - "nodeType": "ParameterList", - "parameters": [], - "src": "26063:0:15" - }, - "scope": 9115, - "src": "25972:173:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8838, - "nodeType": "Block", - "src": "26275:458:15", - "statements": [ - { - "body": { - "id": 8828, - "nodeType": "Block", - "src": "26397:258:15", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8812, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8810, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8800, - "src": "26510:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8811, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26514:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "26510:5:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 8827, - "nodeType": "IfStatement", - "src": "26506:138:15", - "trueBody": { - "id": 8826, - "nodeType": "Block", - "src": "26517:127:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - }, - "id": 8822, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8814, - "name": "tokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8792, - "src": "26544:9:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[] memory" - } - }, - "id": 8816, - "indexExpression": { - "argumentTypes": null, - "id": 8815, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8800, - "src": "26554:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26544:12:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8817, - "name": "tokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8792, - "src": "26559:9:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[] memory" - } - }, - "id": 8821, - "indexExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8818, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8800, - "src": "26569:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 8819, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26573:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "26569:5:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26559:16:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "src": "26544:31:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "746f6b656e206c697374206d75737420626520756e6971756520616e6420696e20617363656e64696e67206f72646572", - "id": 8823, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26577:50:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_9965e0bdde37a58094676a2cf75ae70d5454508294df76c3b2e2e525015b1b43", - "typeString": "literal_string \"token list must be unique and in ascending order\"" - }, - "value": "token list must be unique and in ascending order" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_9965e0bdde37a58094676a2cf75ae70d5454508294df76c3b2e2e525015b1b43", - "typeString": "literal_string \"token list must be unique and in ascending order\"" - } - ], - "id": 8813, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "26536:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8824, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26536:92:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8825, - "nodeType": "ExpressionStatement", - "src": "26536:92:15" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8806, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8803, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8800, - "src": "26370:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8804, - "name": "tokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8792, - "src": "26374:9:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[] memory" - } - }, - "id": 8805, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26374:16:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26370:20:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8829, - "initializationExpression": { - "assignments": [ - 8800 - ], - "declarations": [ - { - "constant": false, - "id": 8800, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 8829, - "src": "26357:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8799, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26357:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8802, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 8801, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26367:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "26357:11:15" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 8808, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "26392:3:15", - "subExpression": { - "argumentTypes": null, - "id": 8807, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8800, - "src": "26392:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8809, - "nodeType": "ExpressionStatement", - "src": "26392:3:15" - }, - "nodeType": "ForStatement", - "src": "26352:303:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8831, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "26677:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26677:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 8833, - "name": "sharesToBurn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8787, - "src": "26689:12:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8834, - "name": "lootToBurn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8789, - "src": "26703:10:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8835, - "name": "tokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8792, - "src": "26715:9:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[] memory" - } - ], - "id": 8830, - "name": "_ragequit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8916, - "src": "26667:9:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,uint256,contract IERC20[] memory)" - } - }, - "id": 8836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26667:58:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8837, - "nodeType": "ExpressionStatement", - "src": "26667:58:15" - } - ] - }, - "documentation": null, - "id": 8839, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 8795, - "modifierName": { - "argumentTypes": null, - "id": 8794, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9748, - "src": "26251:12:15", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "26251:12:15" - }, - { - "arguments": null, - "id": 8797, - "modifierName": { - "argumentTypes": null, - "id": 8796, - "name": "onlyMember", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7875, - "src": "26264:10:15", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "26264:10:15" - } - ], - "name": "safeRagequit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8793, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8787, - "name": "sharesToBurn", - "nodeType": "VariableDeclaration", - "scope": 8839, - "src": "26175:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8786, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26175:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8789, - "name": "lootToBurn", - "nodeType": "VariableDeclaration", - "scope": 8839, - "src": "26197:18:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8788, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26197:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8792, - "name": "tokenList", - "nodeType": "VariableDeclaration", - "scope": 8839, - "src": "26217:25:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 8790, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "26217:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 8791, - "length": null, - "nodeType": "ArrayTypeName", - "src": "26217:8:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage_ptr", - "typeString": "contract IERC20[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26174:69:15" - }, - "returnParameters": { - "id": 8798, - "nodeType": "ParameterList", - "parameters": [], - "src": "26275:0:15" - }, - "scope": 9115, - "src": "26153:580:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8915, - "nodeType": "Block", - "src": "26861:1077:15", - "statements": [ - { - "assignments": [ - 8852 - ], - "declarations": [ - { - "constant": false, - "id": 8852, - "name": "initialTotalSharesAndLoot", - "nodeType": "VariableDeclaration", - "scope": 8915, - "src": "26872:33:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8851, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26872:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8857, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 8855, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26924:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "expression": { - "argumentTypes": null, - "id": 8853, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7786, - "src": "26908:11:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8854, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "26908:15:15", - "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": 8856, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26908:18:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "26872:54:15" - }, - { - "assignments": [ - 8859 - ], - "declarations": [ - { - "constant": false, - "id": 8859, - "name": "member", - "nodeType": "VariableDeclaration", - "scope": 8915, - "src": "26939:21:15", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member" - }, - "typeName": { - "contractScope": null, - "id": 8858, - "name": "Member", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7805, - "src": "26939:6:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8863, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8860, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "26963:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 8862, - "indexExpression": { - "argumentTypes": null, - "id": 8861, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8841, - "src": "26971:13:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26963:22:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "26939:46:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8868, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8865, - "name": "member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8859, - "src": "27006:6:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member storage pointer" - } - }, - "id": 8866, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 7800, - "src": "27006:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 8867, - "name": "sharesToBurn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8843, - "src": "27023:12:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27006:29:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "696e73756666696369656e7420736861726573", - "id": 8869, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27037:21:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_d5ba7a6055332667d0b47802db7f56b8e6983a138e30503682c0b7c57a45190a", - "typeString": "literal_string \"insufficient shares\"" - }, - "value": "insufficient shares" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_d5ba7a6055332667d0b47802db7f56b8e6983a138e30503682c0b7c57a45190a", - "typeString": "literal_string \"insufficient shares\"" - } - ], - "id": 8864, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "26998:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26998:61:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8871, - "nodeType": "ExpressionStatement", - "src": "26998:61:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8874, - "name": "member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8859, - "src": "27160:6:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member storage pointer" - } - }, - "id": 8875, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "highestIndexYesVote", - "nodeType": "MemberAccess", - "referencedDeclaration": 7804, - "src": "27160:26:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8873, - "name": "canRagequit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9063, - "src": "27148:11:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", - "typeString": "function (uint256) view returns (bool)" - } - }, - "id": 8876, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27148:39:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "63616e6e6f7420726167657175697420756e74696c206869676865737420696e6465782070726f706f73616c206d656d62657220766f74656420594553206f6e2069732070726f636573736564", - "id": 8877, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27189:79:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_11872e0ade1b569d9743310990fb8e15cfb30e6e4c576314224629b74fe37ee9", - "typeString": "literal_string \"cannot ragequit until highest index proposal member voted YES on is processed\"" - }, - "value": "cannot ragequit until highest index proposal member voted YES on is processed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_11872e0ade1b569d9743310990fb8e15cfb30e6e4c576314224629b74fe37ee9", - "typeString": "literal_string \"cannot ragequit until highest index proposal member voted YES on is processed\"" - } - ], - "id": 8872, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "27140:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8878, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27140:129:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8879, - "nodeType": "ExpressionStatement", - "src": "27140:129:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8888, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8880, - "name": "member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8859, - "src": "27388:6:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member storage pointer" - } - }, - "id": 8882, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 7800, - "src": "27388:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8886, - "name": "sharesToBurn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8843, - "src": "27422:12:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8883, - "name": "member", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8859, - "src": "27404:6:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage_ptr", - "typeString": "struct Moloch.Member storage pointer" - } - }, - "id": 8884, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "shares", - "nodeType": "MemberAccess", - "referencedDeclaration": 7800, - "src": "27404:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "27404:17:15", - "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": 8887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27404:31:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27388:47:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8889, - "nodeType": "ExpressionStatement", - "src": "27388:47:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8895, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 8890, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7786, - "src": "27500:11:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8893, - "name": "sharesToBurn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8843, - "src": "27530:12:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 8891, - "name": "totalShares", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7786, - "src": "27514:11:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8892, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "27514:15:15", - "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": 8894, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27514:29:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "27500:43:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8896, - "nodeType": "ExpressionStatement", - "src": "27500:43:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8900, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8841, - "src": "27730:13:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 8901, - "name": "sharesToBurn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8843, - "src": "27745:12:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8902, - "name": "initialTotalSharesAndLoot", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8852, - "src": "27759:25:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8903, - "name": "tokenList", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8848, - "src": "27786:9:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[] memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 8898, - "name": "guildBank", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7687, - "src": "27711:9:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_GuildBank_$7658", - "typeString": "contract GuildBank" - } - }, - "id": 8899, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "withdraw", - "nodeType": "MemberAccess", - "referencedDeclaration": 7580, - "src": "27711:18:15", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,uint256,uint256,contract IERC20[] memory) external returns (bool)" - } - }, - "id": 8904, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27711:85:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "7769746864726177616c206f6620746f6b656e732066726f6d206775696c6442616e6b206661696c6564", - "id": 8905, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "27811:44:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_651e518ee5ccfc633fd28c22e6ed219d8cd4ebc33c062c1938ef787232de2e2a", - "typeString": "literal_string \"withdrawal of tokens from guildBank failed\"" - }, - "value": "withdrawal of tokens from guildBank failed" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_651e518ee5ccfc633fd28c22e6ed219d8cd4ebc33c062c1938ef787232de2e2a", - "typeString": "literal_string \"withdrawal of tokens from guildBank failed\"" - } - ], - "id": 8897, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "27689:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8906, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27689:177:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8907, - "nodeType": "ExpressionStatement", - "src": "27689:177:15" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8909, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "27893:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8910, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "27893:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 8911, - "name": "sharesToBurn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8843, - "src": "27905:12:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 8912, - "name": "lootToBurn", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8845, - "src": "27919:10:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 8908, - "name": "Ragequit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7762, - "src": "27884:8:15", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" - } - }, - "id": 8913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27884:46:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8914, - "nodeType": "EmitStatement", - "src": "27879:51:15" - } - ] - }, - "documentation": null, - "id": 8916, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_ragequit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8849, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8841, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 8916, - "src": "26760:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 8840, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26760:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8843, - "name": "sharesToBurn", - "nodeType": "VariableDeclaration", - "scope": 8916, - "src": "26783:20:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8842, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26783:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8845, - "name": "lootToBurn", - "nodeType": "VariableDeclaration", - "scope": 8916, - "src": "26805:18:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8844, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "26805:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8848, - "name": "tokenList", - "nodeType": "VariableDeclaration", - "scope": 8916, - "src": "26825:25:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_memory_ptr", - "typeString": "contract IERC20[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 8846, - "name": "IERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9719, - "src": "26825:6:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 8847, - "length": null, - "nodeType": "ArrayTypeName", - "src": "26825:8:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_contract$_IERC20_$9719_$dyn_storage_ptr", - "typeString": "contract IERC20[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26759:92:15" - }, - "returnParameters": { - "id": 8850, - "nodeType": "ParameterList", - "parameters": [], - "src": "26861:0:15" - }, - "scope": 9115, - "src": "26741:1197:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 8982, - "nodeType": "Block", - "src": "29186:586:15", - "statements": [ - { - "assignments": [ - 8924 - ], - "declarations": [ - { - "constant": false, - "id": 8924, - "name": "proposal", - "nodeType": "VariableDeclaration", - "scope": 8982, - "src": "29197:25:15", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal" - }, - "typeName": { - "contractScope": null, - "id": 8923, - "name": "Proposal", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7842, - "src": "29197:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 8928, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 8925, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "29225:9:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" - } - }, - "id": 8927, - "indexExpression": { - "argumentTypes": null, - "id": 8926, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8918, - "src": "29235:10:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29225:21:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "29197:49:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8934, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "29265:18:15", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8930, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8924, - "src": "29266:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8931, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 7833, - "src": "29266:14:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 8933, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 8932, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29281:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29266:17:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c2068617320616c7265616479206265656e2073706f6e736f726564", - "id": 8935, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29285:37:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_8ce373ba28507085e66e9df24290b9ef61d72fa05638e1221982de773985e387", - "typeString": "literal_string \"proposal has already been sponsored\"" - }, - "value": "proposal has already been sponsored" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_8ce373ba28507085e66e9df24290b9ef61d72fa05638e1221982de773985e387", - "typeString": "literal_string \"proposal has already been sponsored\"" - } - ], - "id": 8929, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "29257:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29257:66:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8937, - "nodeType": "ExpressionStatement", - "src": "29257:66:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8943, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "29342:18:15", - "subExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8939, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8924, - "src": "29343:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8940, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 7833, - "src": "29343:14:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 8942, - "indexExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 8941, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29358:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29343:17:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c2068617320616c7265616479206265656e2063616e63656c6c6564", - "id": 8944, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29362:37:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ccab9120c6545218f1aaf1342626868c70b7de421d2454350aed40c0c66fbef6", - "typeString": "literal_string \"proposal has already been cancelled\"" - }, - "value": "proposal has already been cancelled" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ccab9120c6545218f1aaf1342626868c70b7de421d2454350aed40c0c66fbef6", - "typeString": "literal_string \"proposal has already been cancelled\"" - } - ], - "id": 8938, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "29334:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8945, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29334:66:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8946, - "nodeType": "ExpressionStatement", - "src": "29334:66:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 8952, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8948, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "29419:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8949, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29419:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8950, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8924, - "src": "29433:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8951, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "proposer", - "nodeType": "MemberAccess", - "referencedDeclaration": 7809, - "src": "29433:17:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "29419:31:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "736f6c656c79207468652070726f706f7365722063616e2063616e63656c", - "id": 8953, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29452:32:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_bfc4d7bf1278b7adc609bbaec85c0d0fbc267775efc64d7b3b6cf53db50d2f68", - "typeString": "literal_string \"solely the proposer can cancel\"" - }, - "value": "solely the proposer can cancel" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_bfc4d7bf1278b7adc609bbaec85c0d0fbc267775efc64d7b3b6cf53db50d2f68", - "typeString": "literal_string \"solely the proposer can cancel\"" - } - ], - "id": 8947, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "29411:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8954, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29411:74:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8955, - "nodeType": "ExpressionStatement", - "src": "29411:74:15" - }, - { - "expression": { - "argumentTypes": null, - "id": 8962, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8956, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8924, - "src": "29498:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8959, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 7833, - "src": "29498:14:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 8960, - "indexExpression": { - "argumentTypes": null, - "hexValue": "33", - "id": 8958, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29513:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" - }, - "value": "3" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29498:17:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 8961, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29518:4:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "29498:24:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 8963, - "nodeType": "ExpressionStatement", - "src": "29498:24:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8968, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8924, - "src": "29601:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8969, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "proposer", - "nodeType": "MemberAccess", - "referencedDeclaration": 7809, - "src": "29601:17:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8970, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8924, - "src": "29620:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8971, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tributeOffered", - "nodeType": "MemberAccess", - "referencedDeclaration": 7817, - "src": "29620:23:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8965, - "name": "proposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8924, - "src": "29570:8:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage_ptr", - "typeString": "struct Moloch.Proposal storage pointer" - } - }, - "id": 8966, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tributeToken", - "nodeType": "MemberAccess", - "referencedDeclaration": 7819, - "src": "29570:21:15", - "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$9719", - "typeString": "contract IERC20" - } - }, - "id": 8967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9661, - "src": "29570:30:15", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 8972, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29570:74:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6661696c656420746f2072657475726e207472696275746520746f2070726f706f736572", - "id": 8973, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "29659:38:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_282e9801010b515e1b52012b7f89bf34974d755a49d0659dbf82e1edde7cfbdf", - "typeString": "literal_string \"failed to return tribute to proposer\"" - }, - "value": "failed to return tribute to proposer" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_282e9801010b515e1b52012b7f89bf34974d755a49d0659dbf82e1edde7cfbdf", - "typeString": "literal_string \"failed to return tribute to proposer\"" - } - ], - "id": 8964, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "29548:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 8974, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29548:160:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8975, - "nodeType": "ExpressionStatement", - "src": "29548:160:15" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 8977, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8918, - "src": "29741:10:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 8978, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "29753:3:15", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 8979, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "29753:10:15", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 8976, - "name": "CancelProposal", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7768, - "src": "29726:14:15", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$", - "typeString": "function (uint256,address)" - } - }, - "id": 8980, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29726:38:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 8981, - "nodeType": "EmitStatement", - "src": "29721:43:15" - } - ] - }, - "documentation": null, - "id": 8983, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": null, - "id": 8921, - "modifierName": { - "argumentTypes": null, - "id": 8920, - "name": "nonReentrant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9748, - "src": "29173:12:15", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "29173:12:15" - } - ], - "name": "cancelProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8919, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8918, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 8983, - "src": "29146:18:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8917, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "29146:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29145:20:15" - }, - "returnParameters": { - "id": 8922, - "nodeType": "ParameterList", - "parameters": [], - "src": "29186:0:15" - }, - "scope": 9115, - "src": "29122:650:15", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 8999, - "nodeType": "Block", - "src": "30796:40:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 8994, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 8992, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8985, - "src": "30814:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 8993, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8987, - "src": "30819:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30814:6:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseExpression": { - "argumentTypes": null, - "id": 8996, - "name": "y", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8987, - "src": "30827:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 8997, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "Conditional", - "src": "30814:14:15", - "trueExpression": { - "argumentTypes": null, - "id": 8995, - "name": "x", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 8985, - "src": "30823:1:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 8991, - "id": 8998, - "nodeType": "Return", - "src": "30807:21:15" - } - ] - }, - "documentation": "*************\r\nGETTER FUNCTIONS\r**************", - "id": 9000, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "max", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 8988, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8985, - "name": "x", - "nodeType": "VariableDeclaration", - "scope": 9000, - "src": "30742:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8984, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30742:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 8987, - "name": "y", - "nodeType": "VariableDeclaration", - "scope": 9000, - "src": "30753:9:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8986, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30753:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30741:22:15" - }, - "returnParameters": { - "id": 8991, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 8990, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9000, - "src": "30787:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 8989, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30787:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30786:9:15" - }, - "scope": 9115, - "src": "30729:107:15", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 9013, - "nodeType": "Block", - "src": "30902:68:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9010, - "name": "periodDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7673, - "src": "30947:14:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9007, - "name": "summoningTime", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7683, - "src": "30928:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 9005, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10413, - "src": "30920:3:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9006, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "30920:7:15", - "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": 9008, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30920:22:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9009, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "div", - "nodeType": "MemberAccess", - "referencedDeclaration": 9808, - "src": "30920:26:15", - "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": 9011, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30920:42:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9004, - "id": 9012, - "nodeType": "Return", - "src": "30913:49:15" - } - ] - }, - "documentation": null, - "id": 9014, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getCurrentPeriod", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9001, - "nodeType": "ParameterList", - "parameters": [], - "src": "30869:2:15" - }, - "returnParameters": { - "id": 9004, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9003, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9014, - "src": "30893:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9002, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "30893:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30892:9:15" - }, - "scope": 9115, - "src": "30844:126:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9022, - "nodeType": "Block", - "src": "31042:46:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9019, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "31060:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 9020, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31060:20:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9018, - "id": 9021, - "nodeType": "Return", - "src": "31053:27:15" - } - ] - }, - "documentation": null, - "id": 9023, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getProposalQueueLength", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9015, - "nodeType": "ParameterList", - "parameters": [], - "src": "31009:2:15" - }, - "returnParameters": { - "id": 9018, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9017, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9023, - "src": "31033:7:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9016, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31033:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31032:9:15" - }, - "scope": 9115, - "src": "30978:110:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9037, - "nodeType": "Block", - "src": "31179:53:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9032, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "31197:9:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" - } - }, - "id": 9034, - "indexExpression": { - "argumentTypes": null, - "id": 9033, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9025, - "src": "31207:10:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31197:21:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "id": 9035, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 7833, - "src": "31197:27:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "functionReturnParameters": 9031, - "id": 9036, - "nodeType": "Return", - "src": "31190:34:15" - } - ] - }, - "documentation": null, - "id": 9038, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getProposalFlags", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9026, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9025, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 9038, - "src": "31122:18:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9024, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31122:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31121:20:15" - }, - "returnParameters": { - "id": 9031, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9030, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9038, - "src": "31163:14:15", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_memory_ptr", - "typeString": "bool[6]" - }, - "typeName": { - "baseType": { - "id": 9027, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "31163:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 9029, - "length": { - "argumentTypes": null, - "hexValue": "36", - "id": 9028, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31168:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_6_by_1", - "typeString": "int_const 6" - }, - "value": "6" - }, - "nodeType": "ArrayTypeName", - "src": "31163:7:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage_ptr", - "typeString": "bool[6]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31162:16:15" - }, - "scope": 9115, - "src": "31096:136:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9062, - "nodeType": "Block", - "src": "31402:169:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9049, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9046, - "name": "highestIndexYesVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9040, - "src": "31421:19:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9047, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "31443:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 9048, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31443:20:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31421:42:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", - "id": 9050, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31465:25:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - }, - "value": "proposal does not exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - } - ], - "id": 9045, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "31413:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 9051, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31413:78:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9052, - "nodeType": "ExpressionStatement", - "src": "31413:78:15" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9053, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "31509:9:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" - } - }, - "id": 9057, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9054, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "31519:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 9056, - "indexExpression": { - "argumentTypes": null, - "id": 9055, - "name": "highestIndexYesVote", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9040, - "src": "31533:19:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31519:34:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31509:45:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "id": 9058, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "flags", - "nodeType": "MemberAccess", - "referencedDeclaration": 7833, - "src": "31509:51:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_bool_$6_storage", - "typeString": "bool[6] storage ref" - } - }, - "id": 9060, - "indexExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 9059, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31561:1:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31509:54:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 9044, - "id": 9061, - "nodeType": "Return", - "src": "31502:61:15" - } - ] - }, - "documentation": null, - "id": 9063, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "canRagequit", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9041, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9040, - "name": "highestIndexYesVote", - "nodeType": "VariableDeclaration", - "scope": 9063, - "src": "31346:27:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9039, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "31346:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31345:29:15" - }, - "returnParameters": { - "id": 9044, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9043, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9063, - "src": "31396:4:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9042, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "31396:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31395:6:15" - }, - "scope": 9115, - "src": "31325:246:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9078, - "nodeType": "Block", - "src": "32439:86:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9076, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 9070, - "name": "getCurrentPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9014, - "src": "32457:16:15", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", - "typeString": "function () view returns (uint256)" - } - }, - "id": 9071, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32457:18:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9074, - "name": "votingPeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7675, - "src": "32498:18:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 9072, - "name": "startingPeriod", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9065, - "src": "32479:14:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9073, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "32479:18:15", - "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": 9075, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32479:38:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32457:60:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 9069, - "id": 9077, - "nodeType": "Return", - "src": "32450:67:15" - } - ] - }, - "documentation": null, - "id": 9079, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "hasVotingPeriodExpired", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9066, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9065, - "name": "startingPeriod", - "nodeType": "VariableDeclaration", - "scope": 9079, - "src": "32388:22:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9064, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32388:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32387:24:15" - }, - "returnParameters": { - "id": 9069, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9068, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9079, - "src": "32433:4:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9067, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "32433:4:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32432:6:15" - }, - "scope": 9115, - "src": "32356:169:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9113, - "nodeType": "Block", - "src": "32637:251:15", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9089, - "name": "members", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7849, - "src": "32656:7:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_struct$_Member_$7805_storage_$", - "typeString": "mapping(address => struct Moloch.Member storage ref)" - } - }, - "id": 9091, - "indexExpression": { - "argumentTypes": null, - "id": 9090, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9081, - "src": "32664:13:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32656:22:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Member_$7805_storage", - "typeString": "struct Moloch.Member storage ref" - } - }, - "id": 9092, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "exists", - "nodeType": "MemberAccess", - "referencedDeclaration": 7802, - "src": "32656:29:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "6d656d62657220646f6573206e6f74206578697374", - "id": 9093, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32687:23:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_eeb2dbde81ed918fce84900f40c1838c2cab850a4c637d1ccdd3d5601b174fb4", - "typeString": "literal_string \"member does not exist\"" - }, - "value": "member does not exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_eeb2dbde81ed918fce84900f40c1838c2cab850a4c637d1ccdd3d5601b174fb4", - "typeString": "literal_string \"member does not exist\"" - } - ], - "id": 9088, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "32648:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 9094, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32648:63:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9095, - "nodeType": "ExpressionStatement", - "src": "32648:63:15" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9097, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9083, - "src": "32730:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9098, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "32746:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 9099, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32746:20:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32730:36:15", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "70726f706f73616c20646f6573206e6f74206578697374", - "id": 9101, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32768:25:15", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - }, - "value": "proposal does not exist" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_62a5e8da32551f1a850c0c642567075c0126df9edee02cfd01f706ba186c1270", - "typeString": "literal_string \"proposal does not exist\"" - } - ], - "id": 9096, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "32722:7:15", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 9102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32722:72:15", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9103, - "nodeType": "ExpressionStatement", - "src": "32722:72:15" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9104, - "name": "proposals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7857, - "src": "32812:9:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Proposal_$7842_storage_$", - "typeString": "mapping(uint256 => struct Moloch.Proposal storage ref)" - } - }, - "id": 9108, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 9105, - "name": "proposalQueue", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 7860, - "src": "32822:13:15", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage", - "typeString": "uint256[] storage ref" - } - }, - "id": 9107, - "indexExpression": { - "argumentTypes": null, - "id": 9106, - "name": "proposalIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9083, - "src": "32836:13:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32822:28:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32812:39:15", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Proposal_$7842_storage", - "typeString": "struct Moloch.Proposal storage ref" - } - }, - "id": 9109, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "votesByMember", - "nodeType": "MemberAccess", - "referencedDeclaration": 7841, - "src": "32812:53:15", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_enum$_Vote_$7796_$", - "typeString": "mapping(address => enum Moloch.Vote)" - } - }, - "id": 9111, - "indexExpression": { - "argumentTypes": null, - "id": 9110, - "name": "memberAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9081, - "src": "32866:13:15", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32812:68:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "functionReturnParameters": 9087, - "id": 9112, - "nodeType": "Return", - "src": "32805:75:15" - } - ] - }, - "documentation": null, - "id": 9114, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getMemberProposalVote", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9084, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9081, - "name": "memberAddress", - "nodeType": "VariableDeclaration", - "scope": 9114, - "src": "32564:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9080, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "32564:7:15", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9083, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 9114, - "src": "32587:21:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9082, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "32587:7:15", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32563:46:15" - }, - "returnParameters": { - "id": 9087, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9086, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9114, - "src": "32631:4:15", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - }, - "typeName": { - "contractScope": null, - "id": 9085, - "name": "Vote", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 7796, - "src": "32631:4:15", - "typeDescriptions": { - "typeIdentifier": "t_enum$_Vote_$7796", - "typeString": "enum Moloch.Vote" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32630:6:15" - }, - "scope": 9115, - "src": "32533:355:15", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 9116, - "src": "157:32734:15" - } - ], - "src": "0:32893:15" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:20.196Z", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": { - "submitProposal(address,uint256,uint256,uint256,address,uint256,address,string)": { - "notice": "***************\r PROPOSAL FUNCTIONS\r****************" - } - } - } -} \ No newline at end of file diff --git a/src/contracts/MolochSummoner.json b/src/contracts/MolochSummoner.json deleted file mode 100644 index 2f24fc1..0000000 --- a/src/contracts/MolochSummoner.json +++ /dev/null @@ -1,2277 +0,0 @@ -{ - "contractName": "MolochSummoner", - "abi": [ - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "Molochs", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "M", - "type": "address" - }, - { - "indexed": true, - "name": "_summoner", - "type": "address" - } - ], - "name": "Summoned", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "_summoner", - "type": "address" - }, - { - "name": "_approvedTokens", - "type": "address[1]" - }, - { - "name": "_periodDuration", - "type": "uint256" - }, - { - "name": "_votingPeriodLength", - "type": "uint256" - }, - { - "name": "_gracePeriodLength", - "type": "uint256" - }, - { - "name": "_emergencyProcessingWait", - "type": "uint256" - }, - { - "name": "_bailoutWait", - "type": "uint256" - }, - { - "name": "_proposalDeposit", - "type": "uint256" - }, - { - "name": "_dilutionBound", - "type": "uint256" - }, - { - "name": "_processingReward", - "type": "uint256" - } - ], - "name": "summonMoloch", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getMolochCount", - "outputs": [ - { - "name": "MolochCount", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[],\"name\":\"getMolochCount\",\"outputs\":[{\"name\":\"MolochCount\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_summoner\",\"type\":\"address\"},{\"name\":\"_approvedTokens\",\"type\":\"address[1]\"},{\"name\":\"_periodDuration\",\"type\":\"uint256\"},{\"name\":\"_votingPeriodLength\",\"type\":\"uint256\"},{\"name\":\"_gracePeriodLength\",\"type\":\"uint256\"},{\"name\":\"_emergencyProcessingWait\",\"type\":\"uint256\"},{\"name\":\"_bailoutWait\",\"type\":\"uint256\"},{\"name\":\"_proposalDeposit\",\"type\":\"uint256\"},{\"name\":\"_dilutionBound\",\"type\":\"uint256\"},{\"name\":\"_processingReward\",\"type\":\"uint256\"}],\"name\":\"summonMoloch\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"Molochs\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"M\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_summoner\",\"type\":\"address\"}],\"name\":\"Summoned\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/MolochSummoner.sol\":\"MolochSummoner\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol\":{\"keccak256\":\"0xa8ace5b5ac3322c9019470d2a1ad1342ef5d984da3d4818554e703b65ceda667\",\"urls\":[\"bzzr://b38168eab9d05f21a7576958f33878d9d31877a12f1f14bda390f3f4fbdaa2a4\",\"dweb:/ipfs/QmWa9cX9gzUkyM9yVwfhd6FsSeh1jpV62sBzdGJm6jRPRX\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Moloch.sol\":{\"keccak256\":\"0x513f84a2202580d2febaa6ee6322d9e93fee98f8c0ad5b98892a73687d49a0df\",\"urls\":[\"bzzr://ab0c63e6894e94dc4f8d0560000d3be9e20b87081af342d666fb5229d5bccd98\",\"dweb:/ipfs/QmYXkCZAMiX3UG4sKAp7Ro3nvKBKBANbRNWRn8JkWH3Pdc\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/MolochSummoner.sol\":{\"keccak256\":\"0x161581e5519ece741fe5e891d44c50206bff4d36a7d7ed174164f5abff927bed\",\"urls\":[\"bzzr://038ead62734bafe5fafdd09edceac7dae9b705801a017596c1cc604bb83a90db\",\"dweb:/ipfs/QmeFGnqHVwuZqJGr1DsFo7gwwTswJdyUQevWw1FKDvRkR2\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol\":{\"keccak256\":\"0x8d08add2e57d2885eb9cda96d2ce54056015247de9adfea8e13c78bb2d9233f2\",\"urls\":[\"bzzr://24804e36486f935a9e98bf507193d1b160db755edba6c9d124a894aef3741ada\",\"dweb:/ipfs/QmauQVeYbGgqJDNxKAceFj1hFD1gfCfAXNBA8vCh3aGYKA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b50613926806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80630fe204bd146100465780635abbe0fa1461006057806381fc5959146100e7575b600080fd5b61004e610120565b60408051918252519081900360200190f35b6100e5600480360361014081101561007757600080fd5b60408051602081810183526001600160a01b038535169493840193928301919080840190600190839083908082843760009201919091525091945050813592505060208101359060408101359060608101359060808101359060a08101359060c08101359060e00135610126565b005b610104600480360360208110156100fd57600080fd5b5035610263565b604080516001600160a01b039092168252519081900360200190f35b60015490565b8989898989898989898960405161013c9061028a565b6001600160a01b038b1681526020808201908b9080838360005b8381101561016e578181015183820152602001610156565b505050509050018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019a5050505050505050505050604051809103906000f0801580156101cd573d6000803e3d6000fd5b50600080546001600160a01b039283166001600160a01b0319918216178083556001805480820182559084527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805490921690841617905580546040518d84169391909116917f5d117058594e38d35f98a79b5e9cbcd9fa0597fad786e2826bc4f290a0f5d4a791a350505050505050505050565b6001818154811061027057fe5b6000918252602090912001546001600160a01b0316905081565b61365a806102988339019056fe608060405260006009819055600a819055600b805460ff19169055600c553480156200002a57600080fd5b506040516200365a3803806200365a83398181016040526101408110156200005157600080fd5b50805160408201516060830151608084015160a085015160c086015160e08701516101008801516101208901516000805460ff191660011790559798602001976001600160a01b038a166200010757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73756d6d6f6e65722063616e6e6f742062652030000000000000000000000000604482015290519081900360640190fd5b600088116200017757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5f706572696f644475726174696f6e2063616e6e6f7420626520300000000000604482015290519081900360640190fd5b60008711620001e757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5f766f74696e67506572696f644c656e6774682063616e6e6f74206265203000604482015290519081900360640190fd5b670de0b6b3a76400008711156200024a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180620036156021913960400191505060405180910390fd5b670de0b6b3a7640000861115620002c257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f5f6772616365506572696f644c656e6774682065786365656473206c696d6974604482015290519081900360640190fd5b600085116200031d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180620036366024913960400191505060405180910390fd5b60008054610100600160a81b0319166101006001600160a01b038d160217815589906020020151600780546001600160a01b0319166001600160a01b0390921691909117905560005b60018110156200044e5760008a82600181106200037f57fe5b60200201516001600160a01b03161415620003fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f5f617070726f766564546f6b656e2063616e6e6f742062652030000000000000604482015290519081900360640190fd5b600d8a82600181106200040a57fe5b6020908102919091015182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b03909316929092179091550162000366565b506040516200045d9062000586565b604051809103906000f0801580156200047a573d6000803e3d6000fd5b50600880546001600160a01b03199081166001600160a01b039384161790915560018a815560028a815560038a815560048a9055600588905542600655604080516080810182526000805461010090819004891680845260208085018981528587018a815260608701868152938652600e8352878620965187548d16908e161787559051868b015551978501805460ff19169815159890981790975551929094019190915580548390048716808252600f8552828220805490971617909555600a8490559354845193845293519304909316927f03995a801b13c36325306deef859ef977ce61c6e15a794281bf969d20482522792918290030190a25050505050505050505062000594565b61051880620030fd83390190565b612b5980620005a46000396000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80638b15a6051161011a578063b470aade116100ad578063dacaa9d11161007c578063dacaa9d1146106f4578063de292789146106fc578063e0a8f6f514610704578063e63bc62d14610721578063ec51b0bf1461073e57610206565b8063b470aade146106d4578063b9e2bea0146106dc578063c89039c5146106e4578063da35c664146106ec57610206565b8063a3dc3800116100e9578063a3dc380014610652578063a42afd291461066f578063a44a5e7e14610677578063b2643aab1461067f57610206565b80638b15a605146105ea5780639425a476146105f25780639746d9401461060f57806399653fbe1461062c57610206565b80633b214a741161019d57806363858f2d1161016c57806363858f2d146105c257806365372147146105ca578063797daf70146105d25780637d5b6c72146105da5780638340bbce146105e257610206565b80633b214a7414610483578063402c1794146104a0578063505afd74146104c6578063590f940b146104e257610206565b806315eb349e116101d957806315eb349e146104155780631dafede01461043a5780631e2362ec146104735780633a98ef391461047b57610206565b8063013cf08b1461020b578063044a0ca814610355578063086146d2146103a557806308ae4b0c146103bf575b600080fd5b6102286004803603602081101561022157600080fd5b50356107ed565b604051808f6001600160a01b03166001600160a01b031681526020018e6001600160a01b03166001600160a01b031681526020018d6001600160a01b03166001600160a01b031681526020018c81526020018b81526020018a8152602001896001600160a01b03166001600160a01b03168152602001888152602001876001600160a01b03166001600160a01b0316815260200186815260200185815260200184815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561030d5781810151838201526020016102f5565b50505050905090810190601f16801561033a5780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b6103816004803603604081101561036b57600080fd5b506001600160a01b038135169060200135610950565b6040518082600281111561039157fe5b60ff16815260200191505060405180910390f35b6103ad610a57565b60408051918252519081900360200190f35b6103e5600480360360208110156103d557600080fd5b50356001600160a01b0316610a86565b604080516001600160a01b0390951685526020850193909352901515838301526060830152519081900360800190f35b6104386004803603604081101561042b57600080fd5b5080359060200135610abd565b005b6104576004803603602081101561045057600080fd5b5035610bd3565b604080516001600160a01b039092168252519081900360200190f35b6103ad610bfa565b6103ad610c00565b6103ad6004803603602081101561049957600080fd5b5035610c06565b610457600480360360208110156104b657600080fd5b50356001600160a01b0316610c24565b6104ce610c3f565b604080519115158252519081900360200190f35b6103ad60048036036101008110156104f957600080fd5b6001600160a01b038235811692602081013592604082013592606083013592608081013582169260a08201359260c0830135169190810190610100810160e082013564010000000081111561054d57600080fd5b82018360208201111561055f57600080fd5b8035906020019184600183028401116401000000008311171561058157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c48945050505050565b6103ad610d83565b6103ad610d89565b6103ad610d8f565b6103ad610d95565b6103ad610d9b565b6103ad610da1565b6104ce6004803603602081101561060857600080fd5b5035610da7565b6104386004803603602081101561062557600080fd5b5035610dce565b6104386004803603604081101561064257600080fd5b508035906020013560ff166110f2565b6104ce6004803603602081101561066857600080fd5b50356114f8565b6104576115a1565b6103ad6115b0565b61069c6004803603602081101561069557600080fd5b50356115b6565b604051808260c080838360005b838110156106c15781810151838201526020016106a9565b5050505090500191505060405180910390f35b6103ad611620565b6103ad611626565b61045761162c565b6103ad61163b565b610457611641565b6103ad611655565b6104386004803603602081101561071a57600080fd5b503561165b565b6104386004803603602081101561073757600080fd5b50356118cb565b6104386004803603606081101561075457600080fd5b81359160208101359181019060608101604082013564010000000081111561077b57600080fd5b82018360208201111561078d57600080fd5b803590602001918460208302840111640100000000831117156107af57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611bc7945050505050565b60106020528060005260406000206000915090508060000160009054906101000a90046001600160a01b0316908060010160009054906101000a90046001600160a01b0316908060020160009054906101000a90046001600160a01b0316908060030154908060040154908060050154908060060160009054906101000a90046001600160a01b0316908060070154908060080160009054906101000a90046001600160a01b03169080600901549080600a01549080600b01549080600d018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109405780601f1061091557610100808354040283529160200191610940565b820191906000526020600020905b81548152906001019060200180831161092357829003601f168201915b50505050509080600e015490508e565b6001600160a01b0382166000908152600e602052604081206002015460ff166109b8576040805162461bcd60e51b81526020600482015260156024820152741b595b58995c88191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b6011548210610a08576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6010600060118481548110610a1957fe5b6000918252602080832090910154835282810193909352604091820181206001600160a01b0387168252600f0190925290205460ff16905092915050565b6000610a80600154610a7460065442611d1890919063ffffffff16565b9063ffffffff611d2d16565b90505b90565b600e6020526000908152604090208054600182015460028301546003909301546001600160a01b0390921692909160ff9091169084565b60005460ff16610b02576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600e6020526040902060010154610b5c576040805162461bcd60e51b815260206004820152600c60248201526b3737ba10309036b2b6b132b960a11b604482015290519081900360640190fd5b610bc2338383600d805480602002602001604051908101604052809291908181526020018280548015610bb857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b9a575b5050505050611d4f565b50506000805460ff19166001179055565b600d8181548110610be057fe5b6000918252602090912001546001600160a01b0316905081565b60045481565b600a5481565b60118181548110610c1357fe5b600091825260209091200154905081565b600f602052600090815260409020546001600160a01b031681565b600b5460ff1681565b6000805460ff16610c8e576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19169055670de0b6b3a7640000881115610cf5576040805162461bcd60e51b815260206004820152601960248201527f746f6f206d616e79207368617265732072657175657374656400000000000000604482015290519081900360640190fd5b6001600160a01b038916610d48576040805162461bcd60e51b815260206004820152601560248201527406170706c6963616e742063616e6e6f74206265203605c1b604482015290519081900360640190fd5b610d50612780565b610d618a8a8a8a8a8a8a8a89611f9b565b5050600954600019016000805460ff1916600117905598975050505050505050565b60035481565b60125481565b60115490565b60065481565b60025481565b60055481565b6000610dbe6002548361225c90919063ffffffff16565b610dc6610a57565b101592915050565b60005460ff16610e13576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600f60209081526040808320546001600160a01b03168352600e909152902060010154610e85576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b600081815260106020526040902060018101546001600160a01b0316610ef2576040805162461bcd60e51b815260206004820181905260248201527f70726f706f73616c206d7573742068617665206265656e2070726f706f736564604482015290519081900360640190fd5b600c81015460ff1615610f365760405162461bcd60e51b8152600401808060200182810382526023815260200180612a6a6023913960400191505060405180910390fd5b600c8101546301000000900460ff1615610f97576040805162461bcd60e51b815260206004820152601b60248201527f70726f706f73616c20686173206265656e2063616e63656c6c65640000000000604482015290519081900360640190fd5b600061100c6001611000610fa9610a57565b60115415610ff85760118054601091600091610fcc90600163ffffffff611d1816565b81548110610fd657fe5b9060005260206000200154815260200190815260200160002060090154610ffb565b60005b612275565b9063ffffffff61225c16565b60098301819055336000818152600f60205260408120546002860180546001600160a01b0319166001600160a01b039092169182179055600c8601805460ff19166001908117909155601180548083018255938190527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c689093018890559154939450928392917f2a383a979381335e3eb401ac01dd8083e024ff0256bf5338456ffc0063390bbd9188916110c09190611d18565b604080519283526020830191909152818101879052519081900360600190a350506000805460ff191660011790555050565b60005460ff16611137576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600f60209081526040808320546001600160a01b03168352600e9091529020600101546111a9576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b336000908152600f60209081526040808320546001600160a01b0316808452600e9092529091206011548410611220576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6000601060006011878154811061123357fe5b90600052602060002001548152602001908152602001600020905060038460ff161061129c576040805162461bcd60e51b81526020600482015260136024820152726d757374206265206c657373207468616e203360681b604482015290519081900360640190fd5b60008460ff1660028111156112ad57fe5b90506112bc8260090154610da7565b156112f85760405162461bcd60e51b8152600401808060200182810382526022815260200180612abd6022913960400191505060405180910390fd5b6001600160a01b0384166000908152600f8301602052604081205460ff16600281111561132157fe5b14611373576040805162461bcd60e51b815260206004820152601860248201527f6d656d6265722068617320616c726561647920766f7465640000000000000000604482015290519081900360640190fd5b600181600281111561138157fe5b14806113985750600281600281111561139657fe5b145b6113e9576040805162461bcd60e51b815260206004820152601d60248201527f766f7465206d7573742062652065697468657220596573206f72204e6f000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600f830160205260409020805482919060ff1916600183600281111561141a57fe5b0217905550600181600281111561142d57fe5b141561146a576001830154600a83015461144c9163ffffffff61225c16565b600a830155600383015486111561146557600383018690555b61149d565b600281600281111561147857fe5b141561149d576001830154600b8301546114979163ffffffff61225c16565b600b8301555b6040805160ff8716815290516001600160a01b03861691339189917f29bf0061f2faa9daa482f061b116195432d435536d8af4ae6b3c5dd78223679b919081900360200190a450506000805460ff1916600117905550505050565b601154600090821061154b576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b601060006011848154811061155c57fe5b90600052602060002001548152602001908152602001600020600c0160016006811061158457fe5b602081049091015460ff601f9092166101000a9004169050919050565b6008546001600160a01b031681565b600c5481565b6115be612780565b600082815260106020526040808220815160c081019283905292600c909101916006918390855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116115e5575094979650505050505050565b60015481565b60095490565b6007546001600160a01b031681565b60095481565b60005461010090046001600160a01b031681565b60125490565b60005460ff166116a0576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155818152601060205260409020600c81015460ff16156116fa5760405162461bcd60e51b8152600401808060200182810382526023815260200180612a6a6023913960400191505060405180910390fd5b600c8101546301000000900460ff16156117455760405162461bcd60e51b8152600401808060200182810382526023815260200180612adf6023913960400191505060405180910390fd5b60018101546001600160a01b031633146117a6576040805162461bcd60e51b815260206004820152601e60248201527f736f6c656c79207468652070726f706f7365722063616e2063616e63656c0000604482015290519081900360640190fd5b600c8101805463ff000000191663010000001790556006810154600182015460058301546040805163a9059cbb60e01b81526001600160a01b039384166004820152602481019290925251919092169163a9059cbb9160448083019260209291908290030181600087803b15801561181d57600080fd5b505af1158015611831573d6000803e3d6000fd5b505050506040513d602081101561184757600080fd5b50516118845760405162461bcd60e51b81526004018080602001828103825260248152602001806129f96024913960400191505060405180910390fd5b60408051338152905183917fc215fed6680bb02d323dc3f8b8f85241572607538426059c9232601bd293c3be919081900360200190a250506000805460ff19166001179055565b60005460ff16611910576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff191690556119238161228c565b60006011828154811061193257fe5b600091825260208083209190910154808352601090915260408220600c8101805461ff001916610100179055909250908061196c8561259d565b91509150670de0b6b3a76400006119928460030154600a5461225c90919063ffffffff16565b111561199d57600091505b8115611b74576001601255600c8301805462ff000019166201000017905582546001600160a01b03166000908152600e602052604090206002015460ff1615611a3357600383015483546001600160a01b03166000908152600e6020526040902060010154611a119163ffffffff61225c16565b83546001600160a01b03166000908152600e6020526040902060010155611b55565b82546001600160a01b039081166000908152600f60209081526040808320549093168252600e9052206002015460ff1615611ab75782546001600160a01b039081166000908152600f602090815260408083205490931680835283832080546001600160a01b03199081168317909155600e90925292909120805490911690911790555b6040805160808101825284546001600160a01b0390811680835260038088015460208086019182526001868801818152600060608901818152968152600e8452898120985189549089166001600160a01b0319918216178a559451928901929092555160028801805491151560ff19909216919091179055935195909201949094558754909216808252600f90925292909220805490911690911790555b6003830154600a54611b6c9163ffffffff61225c16565b600a55611b7a565b60026012555b6040805183151581529051859187917f86f74240ecee9e4230d26ff92e17fee978460d9c0f78f5c88b2864c9e7a494279181900360200190a350506000805460ff19166001179055505050565b60005460ff16611c0c576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600e6020526040902060010154611c66576040805162461bcd60e51b815260206004820152600c60248201526b3737ba10309036b2b6b132b960a11b604482015290519081900360640190fd5b60005b8151811015611cf9578015611cf157816001820381518110611c8757fe5b60200260200101516001600160a01b0316828281518110611ca457fe5b60200260200101516001600160a01b031611611cf15760405162461bcd60e51b8152600401808060200182810382526030815260200180612a8d6030913960400191505060405180910390fd5b600101611c69565b50611d0633848484611d4f565b50506000805460ff1916600117905550565b600082821115611d2757600080fd5b50900390565b6000808211611d3b57600080fd5b6000828481611d4657fe5b04949350505050565b600a54600090611d65908263ffffffff61225c16565b6001600160a01b0386166000908152600e60205260409020600181015491925090851115611dd0576040805162461bcd60e51b8152602060048201526013602482015272696e73756666696369656e742073686172657360681b604482015290519081900360640190fd5b611ddd81600301546114f8565b611e185760405162461bcd60e51b815260040180806020018281038252604d8152602001806129ac604d913960600191505060405180910390fd5b6001810154611e2d908663ffffffff611d1816565b6001820155600a54611e45908663ffffffff611d1816565b600a5560085460405163732c8f5760e01b81526001600160a01b03888116600483019081526024830189905260448301869052608060648401908152875160848501528751929094169363732c8f57938b938b9389938b939192909160a401906020808601910280838360005b83811015611eca578181015183820152602001611eb2565b5050505090500195505050505050602060405180830381600087803b158015611ef257600080fd5b505af1158015611f06573d6000803e3d6000fd5b505050506040513d6020811015611f1c57600080fd5b5051611f595760405162461bcd60e51b815260040180806020018281038252602a815260200180612a40602a913960400191505060405180910390fd5b6040805186815260208101869052815133927fcad1a1c68982832d9abc314de8a1e5d5e8c81b0588961e360766736d10c3be1a928290030190a2505050505050565b611fa361279e565b604051806101e001604052808b6001600160a01b03168152602001336001600160a01b0316815260200160006001600160a01b031681526020018a8152602001898152602001888152602001876001600160a01b03168152602001868152602001856001600160a01b03168152602001600081526020016000815260200160008152602001838152602001848152602001600081525090508060106000600954815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060e082015181600701556101008201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c01906006612194929190612847565b506101a082015180516121b191600d8401916020909101906128d9565b506101c09190910151600e90910155336000818152600f60209081526040918290205460095483519081529182018d90528183018c9052606082018b90526001600160a01b038a8116608084015260a083018a905288811660c0840152925190831693928e1692849290917f1facc413faf060d5cc5c8bc12d8fe29e5c530eb98e2475c76733ec749787a7509181900360e00190a45050600980546001019055505050505050505050565b60008282018381101561226e57600080fd5b9392505050565b600081831015612285578161226e565b5090919050565b60115481106122dc576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6122e461279e565b60106000601184815481106122f557fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116123cb57505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815293820193929183018282801561248e5780601f106124635761010080835404028352916020019161248e565b820191906000526020600020905b81548152906001019060200180831161247157829003601f168201915b50505050508152602001600e8201548152505090508061018001516001600681106124b557fe5b6020020151156124f65760405162461bcd60e51b8152600401808060200182810382526023815260200180612b026023913960400191505060405180910390fd5b81158061255e575060106000601161251585600163ffffffff611d1816565b8154811061251f57fe5b90600052602060002001548152602001908152602001600020600c0160016006811061254757fe5b602081049091015460ff601f9092166101000a9004165b6125995760405162461bcd60e51b8152600401808060200182810382526023815260200180612a1d6023913960400191505060405180910390fd5b5050565b6000806125a861279e565b60106000601186815481106125b957fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff16151581526020600192830181810494850194909303909202910180841161268f57505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529382019392918301828280156127525780601f1061272757610100808354040283529160200191612752565b820191906000526020600020905b81548152906001019060200180831161273557829003601f168201915b5050509183525050600e91909101546020909101526101608101516101409091015111946000945092505050565b6040518060c001604052806006906020820280388339509192915050565b60405180610280016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001612833612780565b815260200160608152602001600081525090565b6001830191839082156128c95791602002820160005b8382111561289a57835183826101000a81548160ff021916908315150217905550926020019260010160208160000104928301926001030261285d565b80156128c75782816101000a81549060ff021916905560010160208160000104928301926001030261289a565b505b506128d5929150612953565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061291a57805160ff1916838001178555612947565b82800160010185558215612947579182015b8281111561294757825182559160200191906001019061292c565b506128d5929150612971565b610a8391905b808211156128d557805460ff19168155600101612959565b610a8391905b808211156128d5576000815560010161297756fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c0063616e6e6f7420726167657175697420756e74696c206869676865737420696e6465782070726f706f73616c206d656d62657220766f74656420594553206f6e2069732070726f6365737365646661696c656420746f2072657475726e207472696275746520746f2070726f706f73657270726576696f75732070726f706f73616c206d7573742062652070726f6365737365647769746864726177616c206f6620746f6b656e732066726f6d206775696c6442616e6b206661696c656470726f706f73616c2068617320616c7265616479206265656e2073706f6e736f726564746f6b656e206c697374206d75737420626520756e6971756520616e6420696e20617363656e64696e67206f7264657270726f706f73616c20766f74696e6720706572696f6420686173206578706972656470726f706f73616c2068617320616c7265616479206265656e2063616e63656c6c656470726f706f73616c2068617320616c7265616479206265656e2070726f636573736564a265627a7a72305820ffa2b7b09108c0ac06fc33e0ae4aec417565e7d3add4b822bd5cf908cea7f29864736f6c63430005090032608060405234801561001057600080fd5b50600080546001600160a01b031916331790556104e6806100326000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301e3366714610046578063732c8f57146100905780638da5cb5b1461014f575b600080fd5b61007c6004803603606081101561005c57600080fd5b506001600160a01b03813581169160208101359091169060400135610173565b604080519115158252519081900360200190f35b61007c600480360360808110156100a657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156100dd57600080fd5b8201836020820111156100ef57600080fd5b8035906020019184602083028401116401000000008311171561011157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061026c945050505050565b61015761044e565b604080516001600160a01b039092168252519081900360200190f35b600080546001600160a01b0316331461018b57600080fd5b836001600160a01b0316836001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398846040518082815260200191505060405180910390a3836001600160a01b031663a9059cbb84846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561023657600080fd5b505af115801561024a573d6000803e3d6000fd5b505050506040513d602081101561026057600080fd5b505190505b9392505050565b600080546001600160a01b0316331461028457600080fd5b60005b82518110156104425760006103318483815181106102a157fe5b60200260200101516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156102fe57600080fd5b505afa158015610312573d6000803e3d6000fd5b505050506040513d602081101561032857600080fd5b5051878761045d565b905083828151811061033f57fe5b60200260200101516001600160a01b0316876001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398836040518082815260200191505060405180910390a383828151811061039d57fe5b60200260200101516001600160a01b031663a9059cbb88836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b505050506040513d602081101561042e57600080fd5b505161043957600080fd5b50600101610287565b50600195945050505050565b6000546001600160a01b031681565b60008161046957600080fd5b8361047657506000610265565b8383028385828161048357fe5b04141561049c5782818161049357fe5b04915050610265565b838386816104a657fe5b04029594505050505056fea265627a7a72305820600a90e68081feae486f77ec58352ebe4f959e2362fac128a8d418122da6121464736f6c634300050900325f766f74696e67506572696f644c656e6774682065786365656473206c696d69745f656d657267656e637950726f63657373696e67576169742063616e6e6f742062652030a265627a7a72305820bac60b4c0cd8fd78479456a8f4d0d8f3a0296d9a186c62ffab79e7095a92592a64736f6c63430005090032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c80630fe204bd146100465780635abbe0fa1461006057806381fc5959146100e7575b600080fd5b61004e610120565b60408051918252519081900360200190f35b6100e5600480360361014081101561007757600080fd5b60408051602081810183526001600160a01b038535169493840193928301919080840190600190839083908082843760009201919091525091945050813592505060208101359060408101359060608101359060808101359060a08101359060c08101359060e00135610126565b005b610104600480360360208110156100fd57600080fd5b5035610263565b604080516001600160a01b039092168252519081900360200190f35b60015490565b8989898989898989898960405161013c9061028a565b6001600160a01b038b1681526020808201908b9080838360005b8381101561016e578181015183820152602001610156565b505050509050018981526020018881526020018781526020018681526020018581526020018481526020018381526020018281526020019a5050505050505050505050604051809103906000f0801580156101cd573d6000803e3d6000fd5b50600080546001600160a01b039283166001600160a01b0319918216178083556001805480820182559084527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805490921690841617905580546040518d84169391909116917f5d117058594e38d35f98a79b5e9cbcd9fa0597fad786e2826bc4f290a0f5d4a791a350505050505050505050565b6001818154811061027057fe5b6000918252602090912001546001600160a01b0316905081565b61365a806102988339019056fe608060405260006009819055600a819055600b805460ff19169055600c553480156200002a57600080fd5b506040516200365a3803806200365a83398181016040526101408110156200005157600080fd5b50805160408201516060830151608084015160a085015160c086015160e08701516101008801516101208901516000805460ff191660011790559798602001976001600160a01b038a166200010757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73756d6d6f6e65722063616e6e6f742062652030000000000000000000000000604482015290519081900360640190fd5b600088116200017757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f5f706572696f644475726174696f6e2063616e6e6f7420626520300000000000604482015290519081900360640190fd5b60008711620001e757604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f5f766f74696e67506572696f644c656e6774682063616e6e6f74206265203000604482015290519081900360640190fd5b670de0b6b3a76400008711156200024a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180620036156021913960400191505060405180910390fd5b670de0b6b3a7640000861115620002c257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f5f6772616365506572696f644c656e6774682065786365656473206c696d6974604482015290519081900360640190fd5b600085116200031d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180620036366024913960400191505060405180910390fd5b60008054610100600160a81b0319166101006001600160a01b038d160217815589906020020151600780546001600160a01b0319166001600160a01b0390921691909117905560005b60018110156200044e5760008a82600181106200037f57fe5b60200201516001600160a01b03161415620003fb57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f5f617070726f766564546f6b656e2063616e6e6f742062652030000000000000604482015290519081900360640190fd5b600d8a82600181106200040a57fe5b6020908102919091015182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b03909316929092179091550162000366565b506040516200045d9062000586565b604051809103906000f0801580156200047a573d6000803e3d6000fd5b50600880546001600160a01b03199081166001600160a01b039384161790915560018a815560028a815560038a815560048a9055600588905542600655604080516080810182526000805461010090819004891680845260208085018981528587018a815260608701868152938652600e8352878620965187548d16908e161787559051868b015551978501805460ff19169815159890981790975551929094019190915580548390048716808252600f8552828220805490971617909555600a8490559354845193845293519304909316927f03995a801b13c36325306deef859ef977ce61c6e15a794281bf969d20482522792918290030190a25050505050505050505062000594565b61051880620030fd83390190565b612b5980620005a46000396000f3fe608060405234801561001057600080fd5b50600436106102065760003560e01c80638b15a6051161011a578063b470aade116100ad578063dacaa9d11161007c578063dacaa9d1146106f4578063de292789146106fc578063e0a8f6f514610704578063e63bc62d14610721578063ec51b0bf1461073e57610206565b8063b470aade146106d4578063b9e2bea0146106dc578063c89039c5146106e4578063da35c664146106ec57610206565b8063a3dc3800116100e9578063a3dc380014610652578063a42afd291461066f578063a44a5e7e14610677578063b2643aab1461067f57610206565b80638b15a605146105ea5780639425a476146105f25780639746d9401461060f57806399653fbe1461062c57610206565b80633b214a741161019d57806363858f2d1161016c57806363858f2d146105c257806365372147146105ca578063797daf70146105d25780637d5b6c72146105da5780638340bbce146105e257610206565b80633b214a7414610483578063402c1794146104a0578063505afd74146104c6578063590f940b146104e257610206565b806315eb349e116101d957806315eb349e146104155780631dafede01461043a5780631e2362ec146104735780633a98ef391461047b57610206565b8063013cf08b1461020b578063044a0ca814610355578063086146d2146103a557806308ae4b0c146103bf575b600080fd5b6102286004803603602081101561022157600080fd5b50356107ed565b604051808f6001600160a01b03166001600160a01b031681526020018e6001600160a01b03166001600160a01b031681526020018d6001600160a01b03166001600160a01b031681526020018c81526020018b81526020018a8152602001896001600160a01b03166001600160a01b03168152602001888152602001876001600160a01b03166001600160a01b0316815260200186815260200185815260200184815260200180602001838152602001828103825284818151815260200191508051906020019080838360005b8381101561030d5781810151838201526020016102f5565b50505050905090810190601f16801561033a5780820380516001836020036101000a031916815260200191505b509f5050505050505050505050505050505060405180910390f35b6103816004803603604081101561036b57600080fd5b506001600160a01b038135169060200135610950565b6040518082600281111561039157fe5b60ff16815260200191505060405180910390f35b6103ad610a57565b60408051918252519081900360200190f35b6103e5600480360360208110156103d557600080fd5b50356001600160a01b0316610a86565b604080516001600160a01b0390951685526020850193909352901515838301526060830152519081900360800190f35b6104386004803603604081101561042b57600080fd5b5080359060200135610abd565b005b6104576004803603602081101561045057600080fd5b5035610bd3565b604080516001600160a01b039092168252519081900360200190f35b6103ad610bfa565b6103ad610c00565b6103ad6004803603602081101561049957600080fd5b5035610c06565b610457600480360360208110156104b657600080fd5b50356001600160a01b0316610c24565b6104ce610c3f565b604080519115158252519081900360200190f35b6103ad60048036036101008110156104f957600080fd5b6001600160a01b038235811692602081013592604082013592606083013592608081013582169260a08201359260c0830135169190810190610100810160e082013564010000000081111561054d57600080fd5b82018360208201111561055f57600080fd5b8035906020019184600183028401116401000000008311171561058157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610c48945050505050565b6103ad610d83565b6103ad610d89565b6103ad610d8f565b6103ad610d95565b6103ad610d9b565b6103ad610da1565b6104ce6004803603602081101561060857600080fd5b5035610da7565b6104386004803603602081101561062557600080fd5b5035610dce565b6104386004803603604081101561064257600080fd5b508035906020013560ff166110f2565b6104ce6004803603602081101561066857600080fd5b50356114f8565b6104576115a1565b6103ad6115b0565b61069c6004803603602081101561069557600080fd5b50356115b6565b604051808260c080838360005b838110156106c15781810151838201526020016106a9565b5050505090500191505060405180910390f35b6103ad611620565b6103ad611626565b61045761162c565b6103ad61163b565b610457611641565b6103ad611655565b6104386004803603602081101561071a57600080fd5b503561165b565b6104386004803603602081101561073757600080fd5b50356118cb565b6104386004803603606081101561075457600080fd5b81359160208101359181019060608101604082013564010000000081111561077b57600080fd5b82018360208201111561078d57600080fd5b803590602001918460208302840111640100000000831117156107af57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550611bc7945050505050565b60106020528060005260406000206000915090508060000160009054906101000a90046001600160a01b0316908060010160009054906101000a90046001600160a01b0316908060020160009054906101000a90046001600160a01b0316908060030154908060040154908060050154908060060160009054906101000a90046001600160a01b0316908060070154908060080160009054906101000a90046001600160a01b03169080600901549080600a01549080600b01549080600d018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109405780601f1061091557610100808354040283529160200191610940565b820191906000526020600020905b81548152906001019060200180831161092357829003601f168201915b50505050509080600e015490508e565b6001600160a01b0382166000908152600e602052604081206002015460ff166109b8576040805162461bcd60e51b81526020600482015260156024820152741b595b58995c88191bd95cc81b9bdd08195e1a5cdd605a1b604482015290519081900360640190fd5b6011548210610a08576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6010600060118481548110610a1957fe5b6000918252602080832090910154835282810193909352604091820181206001600160a01b0387168252600f0190925290205460ff16905092915050565b6000610a80600154610a7460065442611d1890919063ffffffff16565b9063ffffffff611d2d16565b90505b90565b600e6020526000908152604090208054600182015460028301546003909301546001600160a01b0390921692909160ff9091169084565b60005460ff16610b02576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600e6020526040902060010154610b5c576040805162461bcd60e51b815260206004820152600c60248201526b3737ba10309036b2b6b132b960a11b604482015290519081900360640190fd5b610bc2338383600d805480602002602001604051908101604052809291908181526020018280548015610bb857602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610b9a575b5050505050611d4f565b50506000805460ff19166001179055565b600d8181548110610be057fe5b6000918252602090912001546001600160a01b0316905081565b60045481565b600a5481565b60118181548110610c1357fe5b600091825260209091200154905081565b600f602052600090815260409020546001600160a01b031681565b600b5460ff1681565b6000805460ff16610c8e576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19169055670de0b6b3a7640000881115610cf5576040805162461bcd60e51b815260206004820152601960248201527f746f6f206d616e79207368617265732072657175657374656400000000000000604482015290519081900360640190fd5b6001600160a01b038916610d48576040805162461bcd60e51b815260206004820152601560248201527406170706c6963616e742063616e6e6f74206265203605c1b604482015290519081900360640190fd5b610d50612780565b610d618a8a8a8a8a8a8a8a89611f9b565b5050600954600019016000805460ff1916600117905598975050505050505050565b60035481565b60125481565b60115490565b60065481565b60025481565b60055481565b6000610dbe6002548361225c90919063ffffffff16565b610dc6610a57565b101592915050565b60005460ff16610e13576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600f60209081526040808320546001600160a01b03168352600e909152902060010154610e85576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b600081815260106020526040902060018101546001600160a01b0316610ef2576040805162461bcd60e51b815260206004820181905260248201527f70726f706f73616c206d7573742068617665206265656e2070726f706f736564604482015290519081900360640190fd5b600c81015460ff1615610f365760405162461bcd60e51b8152600401808060200182810382526023815260200180612a6a6023913960400191505060405180910390fd5b600c8101546301000000900460ff1615610f97576040805162461bcd60e51b815260206004820152601b60248201527f70726f706f73616c20686173206265656e2063616e63656c6c65640000000000604482015290519081900360640190fd5b600061100c6001611000610fa9610a57565b60115415610ff85760118054601091600091610fcc90600163ffffffff611d1816565b81548110610fd657fe5b9060005260206000200154815260200190815260200160002060090154610ffb565b60005b612275565b9063ffffffff61225c16565b60098301819055336000818152600f60205260408120546002860180546001600160a01b0319166001600160a01b039092169182179055600c8601805460ff19166001908117909155601180548083018255938190527f31ecc21a745e3968a04e9570e4425bc18fa8019c68028196b546d1669c200c689093018890559154939450928392917f2a383a979381335e3eb401ac01dd8083e024ff0256bf5338456ffc0063390bbd9188916110c09190611d18565b604080519283526020830191909152818101879052519081900360600190a350506000805460ff191660011790555050565b60005460ff16611137576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600f60209081526040808320546001600160a01b03168352600e9091529020600101546111a9576040805162461bcd60e51b815260206004820152600e60248201526d6e6f7420612064656c656761746560901b604482015290519081900360640190fd5b336000908152600f60209081526040808320546001600160a01b0316808452600e9092529091206011548410611220576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6000601060006011878154811061123357fe5b90600052602060002001548152602001908152602001600020905060038460ff161061129c576040805162461bcd60e51b81526020600482015260136024820152726d757374206265206c657373207468616e203360681b604482015290519081900360640190fd5b60008460ff1660028111156112ad57fe5b90506112bc8260090154610da7565b156112f85760405162461bcd60e51b8152600401808060200182810382526022815260200180612abd6022913960400191505060405180910390fd5b6001600160a01b0384166000908152600f8301602052604081205460ff16600281111561132157fe5b14611373576040805162461bcd60e51b815260206004820152601860248201527f6d656d6265722068617320616c726561647920766f7465640000000000000000604482015290519081900360640190fd5b600181600281111561138157fe5b14806113985750600281600281111561139657fe5b145b6113e9576040805162461bcd60e51b815260206004820152601d60248201527f766f7465206d7573742062652065697468657220596573206f72204e6f000000604482015290519081900360640190fd5b6001600160a01b0384166000908152600f830160205260409020805482919060ff1916600183600281111561141a57fe5b0217905550600181600281111561142d57fe5b141561146a576001830154600a83015461144c9163ffffffff61225c16565b600a830155600383015486111561146557600383018690555b61149d565b600281600281111561147857fe5b141561149d576001830154600b8301546114979163ffffffff61225c16565b600b8301555b6040805160ff8716815290516001600160a01b03861691339189917f29bf0061f2faa9daa482f061b116195432d435536d8af4ae6b3c5dd78223679b919081900360200190a450506000805460ff1916600117905550505050565b601154600090821061154b576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b601060006011848154811061155c57fe5b90600052602060002001548152602001908152602001600020600c0160016006811061158457fe5b602081049091015460ff601f9092166101000a9004169050919050565b6008546001600160a01b031681565b600c5481565b6115be612780565b600082815260106020526040808220815160c081019283905292600c909101916006918390855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116115e5575094979650505050505050565b60015481565b60095490565b6007546001600160a01b031681565b60095481565b60005461010090046001600160a01b031681565b60125490565b60005460ff166116a0576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155818152601060205260409020600c81015460ff16156116fa5760405162461bcd60e51b8152600401808060200182810382526023815260200180612a6a6023913960400191505060405180910390fd5b600c8101546301000000900460ff16156117455760405162461bcd60e51b8152600401808060200182810382526023815260200180612adf6023913960400191505060405180910390fd5b60018101546001600160a01b031633146117a6576040805162461bcd60e51b815260206004820152601e60248201527f736f6c656c79207468652070726f706f7365722063616e2063616e63656c0000604482015290519081900360640190fd5b600c8101805463ff000000191663010000001790556006810154600182015460058301546040805163a9059cbb60e01b81526001600160a01b039384166004820152602481019290925251919092169163a9059cbb9160448083019260209291908290030181600087803b15801561181d57600080fd5b505af1158015611831573d6000803e3d6000fd5b505050506040513d602081101561184757600080fd5b50516118845760405162461bcd60e51b81526004018080602001828103825260248152602001806129f96024913960400191505060405180910390fd5b60408051338152905183917fc215fed6680bb02d323dc3f8b8f85241572607538426059c9232601bd293c3be919081900360200190a250506000805460ff19166001179055565b60005460ff16611910576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff191690556119238161228c565b60006011828154811061193257fe5b600091825260208083209190910154808352601090915260408220600c8101805461ff001916610100179055909250908061196c8561259d565b91509150670de0b6b3a76400006119928460030154600a5461225c90919063ffffffff16565b111561199d57600091505b8115611b74576001601255600c8301805462ff000019166201000017905582546001600160a01b03166000908152600e602052604090206002015460ff1615611a3357600383015483546001600160a01b03166000908152600e6020526040902060010154611a119163ffffffff61225c16565b83546001600160a01b03166000908152600e6020526040902060010155611b55565b82546001600160a01b039081166000908152600f60209081526040808320549093168252600e9052206002015460ff1615611ab75782546001600160a01b039081166000908152600f602090815260408083205490931680835283832080546001600160a01b03199081168317909155600e90925292909120805490911690911790555b6040805160808101825284546001600160a01b0390811680835260038088015460208086019182526001868801818152600060608901818152968152600e8452898120985189549089166001600160a01b0319918216178a559451928901929092555160028801805491151560ff19909216919091179055935195909201949094558754909216808252600f90925292909220805490911690911790555b6003830154600a54611b6c9163ffffffff61225c16565b600a55611b7a565b60026012555b6040805183151581529051859187917f86f74240ecee9e4230d26ff92e17fee978460d9c0f78f5c88b2864c9e7a494279181900360200190a350506000805460ff19166001179055505050565b60005460ff16611c0c576040805162461bcd60e51b815260206004820152601f602482015260008051602061298c833981519152604482015290519081900360640190fd5b6000805460ff19168155338152600e6020526040902060010154611c66576040805162461bcd60e51b815260206004820152600c60248201526b3737ba10309036b2b6b132b960a11b604482015290519081900360640190fd5b60005b8151811015611cf9578015611cf157816001820381518110611c8757fe5b60200260200101516001600160a01b0316828281518110611ca457fe5b60200260200101516001600160a01b031611611cf15760405162461bcd60e51b8152600401808060200182810382526030815260200180612a8d6030913960400191505060405180910390fd5b600101611c69565b50611d0633848484611d4f565b50506000805460ff1916600117905550565b600082821115611d2757600080fd5b50900390565b6000808211611d3b57600080fd5b6000828481611d4657fe5b04949350505050565b600a54600090611d65908263ffffffff61225c16565b6001600160a01b0386166000908152600e60205260409020600181015491925090851115611dd0576040805162461bcd60e51b8152602060048201526013602482015272696e73756666696369656e742073686172657360681b604482015290519081900360640190fd5b611ddd81600301546114f8565b611e185760405162461bcd60e51b815260040180806020018281038252604d8152602001806129ac604d913960600191505060405180910390fd5b6001810154611e2d908663ffffffff611d1816565b6001820155600a54611e45908663ffffffff611d1816565b600a5560085460405163732c8f5760e01b81526001600160a01b03888116600483019081526024830189905260448301869052608060648401908152875160848501528751929094169363732c8f57938b938b9389938b939192909160a401906020808601910280838360005b83811015611eca578181015183820152602001611eb2565b5050505090500195505050505050602060405180830381600087803b158015611ef257600080fd5b505af1158015611f06573d6000803e3d6000fd5b505050506040513d6020811015611f1c57600080fd5b5051611f595760405162461bcd60e51b815260040180806020018281038252602a815260200180612a40602a913960400191505060405180910390fd5b6040805186815260208101869052815133927fcad1a1c68982832d9abc314de8a1e5d5e8c81b0588961e360766736d10c3be1a928290030190a2505050505050565b611fa361279e565b604051806101e001604052808b6001600160a01b03168152602001336001600160a01b0316815260200160006001600160a01b031681526020018a8152602001898152602001888152602001876001600160a01b03168152602001868152602001856001600160a01b03168152602001600081526020016000815260200160008152602001838152602001848152602001600081525090508060106000600954815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550606082015181600301556080820151816004015560a0820151816005015560c08201518160060160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060e082015181600701556101008201518160080160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610120820151816009015561014082015181600a015561016082015181600b015561018082015181600c01906006612194929190612847565b506101a082015180516121b191600d8401916020909101906128d9565b506101c09190910151600e90910155336000818152600f60209081526040918290205460095483519081529182018d90528183018c9052606082018b90526001600160a01b038a8116608084015260a083018a905288811660c0840152925190831693928e1692849290917f1facc413faf060d5cc5c8bc12d8fe29e5c530eb98e2475c76733ec749787a7509181900360e00190a45050600980546001019055505050505050505050565b60008282018381101561226e57600080fd5b9392505050565b600081831015612285578161226e565b5090919050565b60115481106122dc576040805162461bcd60e51b81526020600482015260176024820152761c1c9bdc1bdcd85b08191bd95cc81b9bdd08195e1a5cdd604a1b604482015290519081900360640190fd5b6122e461279e565b60106000601184815481106122f557fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff1615158152602060019283018181049485019490930390920291018084116123cb57505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815293820193929183018282801561248e5780601f106124635761010080835404028352916020019161248e565b820191906000526020600020905b81548152906001019060200180831161247157829003601f168201915b50505050508152602001600e8201548152505090508061018001516001600681106124b557fe5b6020020151156124f65760405162461bcd60e51b8152600401808060200182810382526023815260200180612b026023913960400191505060405180910390fd5b81158061255e575060106000601161251585600163ffffffff611d1816565b8154811061251f57fe5b90600052602060002001548152602001908152602001600020600c0160016006811061254757fe5b602081049091015460ff601f9092166101000a9004165b6125995760405162461bcd60e51b8152600401808060200182810382526023815260200180612a1d6023913960400191505060405180910390fd5b5050565b6000806125a861279e565b60106000601186815481106125b957fe5b6000918252602080832091909101548352828101939093526040918201812082516101e08101845281546001600160a01b039081168252600183015481169582019590955260028201548516818501526003820154606082015260048201546080820152600582015460a0820152600680830154861660c080840191909152600784015460e084015260088401549096166101008301526009830154610120830152600a830154610140830152600b83015461016083015284519586019485905290949193610180860193600c86019291908390855b825461010083900a900460ff16151581526020600192830181810494850194909303909202910180841161268f57505050928452505050600d8201805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529382019392918301828280156127525780601f1061272757610100808354040283529160200191612752565b820191906000526020600020905b81548152906001019060200180831161273557829003601f168201915b5050509183525050600e91909101546020909101526101608101516101409091015111946000945092505050565b6040518060c001604052806006906020820280388339509192915050565b60405180610280016040528060006001600160a01b0316815260200160006001600160a01b0316815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160006001600160a01b031681526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160008152602001612833612780565b815260200160608152602001600081525090565b6001830191839082156128c95791602002820160005b8382111561289a57835183826101000a81548160ff021916908315150217905550926020019260010160208160000104928301926001030261285d565b80156128c75782816101000a81549060ff021916905560010160208160000104928301926001030261289a565b505b506128d5929150612953565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061291a57805160ff1916838001178555612947565b82800160010185558215612947579182015b8281111561294757825182559160200191906001019061292c565b506128d5929150612971565b610a8391905b808211156128d557805460ff19168155600101612959565b610a8391905b808211156128d5576000815560010161297756fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c0063616e6e6f7420726167657175697420756e74696c206869676865737420696e6465782070726f706f73616c206d656d62657220766f74656420594553206f6e2069732070726f6365737365646661696c656420746f2072657475726e207472696275746520746f2070726f706f73657270726576696f75732070726f706f73616c206d7573742062652070726f6365737365647769746864726177616c206f6620746f6b656e732066726f6d206775696c6442616e6b206661696c656470726f706f73616c2068617320616c7265616479206265656e2073706f6e736f726564746f6b656e206c697374206d75737420626520756e6971756520616e6420696e20617363656e64696e67206f7264657270726f706f73616c20766f74696e6720706572696f6420686173206578706972656470726f706f73616c2068617320616c7265616479206265656e2063616e63656c6c656470726f706f73616c2068617320616c7265616479206265656e2070726f636573736564a265627a7a72305820ffa2b7b09108c0ac06fc33e0ae4aec417565e7d3add4b822bd5cf908cea7f29864736f6c63430005090032608060405234801561001057600080fd5b50600080546001600160a01b031916331790556104e6806100326000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806301e3366714610046578063732c8f57146100905780638da5cb5b1461014f575b600080fd5b61007c6004803603606081101561005c57600080fd5b506001600160a01b03813581169160208101359091169060400135610173565b604080519115158252519081900360200190f35b61007c600480360360808110156100a657600080fd5b6001600160a01b0382351691602081013591604082013591908101906080810160608201356401000000008111156100dd57600080fd5b8201836020820111156100ef57600080fd5b8035906020019184602083028401116401000000008311171561011157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061026c945050505050565b61015761044e565b604080516001600160a01b039092168252519081900360200190f35b600080546001600160a01b0316331461018b57600080fd5b836001600160a01b0316836001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398846040518082815260200191505060405180910390a3836001600160a01b031663a9059cbb84846040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561023657600080fd5b505af115801561024a573d6000803e3d6000fd5b505050506040513d602081101561026057600080fd5b505190505b9392505050565b600080546001600160a01b0316331461028457600080fd5b60005b82518110156104425760006103318483815181106102a157fe5b60200260200101516001600160a01b03166370a08231306040518263ffffffff1660e01b815260040180826001600160a01b03166001600160a01b0316815260200191505060206040518083038186803b1580156102fe57600080fd5b505afa158015610312573d6000803e3d6000fd5b505050506040513d602081101561032857600080fd5b5051878761045d565b905083828151811061033f57fe5b60200260200101516001600160a01b0316876001600160a01b03167f2717ead6b9200dd235aad468c9809ea400fe33ac69b5bfaa6d3e90fc922b6398836040518082815260200191505060405180910390a383828151811061039d57fe5b60200260200101516001600160a01b031663a9059cbb88836040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b15801561040457600080fd5b505af1158015610418573d6000803e3d6000fd5b505050506040513d602081101561042e57600080fd5b505161043957600080fd5b50600101610287565b50600195945050505050565b6000546001600160a01b031681565b60008161046957600080fd5b8361047657506000610265565b8383028385828161048357fe5b04141561049c5782818161049357fe5b04915050610265565b838386816104a657fe5b04029594505050505056fea265627a7a72305820600a90e68081feae486f77ec58352ebe4f959e2362fac128a8d418122da6121464736f6c634300050900325f766f74696e67506572696f644c656e6774682065786365656473206c696d69745f656d657267656e637950726f63657373696e67576169742063616e6e6f742062652030a265627a7a72305820bac60b4c0cd8fd78479456a8f4d0d8f3a0296d9a186c62ffab79e7095a92592a64736f6c63430005090032", - "sourceMap": "62:1125:16:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;62:1125:16;;;;;;;", - "deployedSourceMap": "62:1125:16:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;62:1125:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1076:108;;;:::i;:::-;;;;;;;;;;;;;;;;222:846;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;222:846:16;;;;;;;;;-1:-1:-1;;;;;222:846:16;;;;;;;;;;;;;;;;;;;;;;;;;;1:33:-1;99:1;81:16;;74:27;;;;-1:-1;222:846:16;;-1:-1:-1;;222:846:16;;;-1:-1:-1;;222:846:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;120:24;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;120:24:16;;:::i;:::-;;;;-1:-1:-1;;;;;120:24:16;;;;;;;;;;;;;;1076:108;1162:7;:14;1076:108;:::o;222:846::-;663:9;687:15;717;747:19;781:18;814:24;853:12;880:16;911:14;940:17;638:334;;;;;:::i;:::-;-1:-1:-1;;;;;638:334:16;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;638:334:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;634:1:16;:338;;-1:-1:-1;;;;;634:338:16;;;-1:-1:-1;;;;;;634:338:16;;;;;;;;27:10:-1;;23:18;;;45:23;;985:24:16;;;;;;;;;;1006:1;;;985:24;;;1044:1;;1027:31;;;;;;1044:1;;;;;1027:31;;;222:846;;;;;;;;;;:::o;120:24::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;120:24:16;;-1:-1:-1;120:24:16;:::o;62:1125::-;;;;;;;;:::o", - "source": "pragma solidity >=0.5.0 < 0.6.0;\r\n\r\nimport \"./Moloch.sol\";\r\n\r\ncontract MolochSummoner {\r\n\r\n Moloch private M;\r\n\r\n address[] public Molochs;\r\n\r\n event Summoned(address indexed M, address indexed _summoner);\r\n\r\n function summonMoloch(\r\n address _summoner,\r\n address[1] memory _approvedTokens,\r\n uint256 _periodDuration,\r\n uint256 _votingPeriodLength,\r\n uint256 _gracePeriodLength,\r\n uint256 _emergencyProcessingWait,\r\n uint256 _bailoutWait,\r\n uint256 _proposalDeposit,\r\n uint256 _dilutionBound,\r\n uint256 _processingReward\r\n ) public {\r\n\r\n M = new Moloch(\r\n _summoner,\r\n _approvedTokens,\r\n _periodDuration,\r\n _votingPeriodLength,\r\n _gracePeriodLength,\r\n _emergencyProcessingWait,\r\n _bailoutWait,\r\n _proposalDeposit,\r\n _dilutionBound,\r\n _processingReward\r\n );\r\n\r\n Molochs.push(address(M));\r\n\r\n emit Summoned(address(M), _summoner);\r\n\r\n }\r\n\r\n function getMolochCount() public view returns (uint256 MolochCount) {\r\n return Molochs.length;\r\n }\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\MolochSummoner.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/MolochSummoner.sol", - "exportedSymbols": { - "MolochSummoner": [ - 9196 - ] - }, - "id": 9197, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9117, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:16" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Moloch.sol", - "file": "./Moloch.sol", - "id": 9118, - "nodeType": "ImportDirective", - "scope": 9197, - "sourceUnit": 9116, - "src": "36:22:16", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [ - 9115 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 9196, - "linearizedBaseContracts": [ - 9196 - ], - "name": "MolochSummoner", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 9120, - "name": "M", - "nodeType": "VariableDeclaration", - "scope": 9196, - "src": "95:16:16", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - }, - "typeName": { - "contractScope": null, - "id": 9119, - "name": "Moloch", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9115, - "src": "95:6:16", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 9123, - "name": "Molochs", - "nodeType": "VariableDeclaration", - "scope": 9196, - "src": "120:24:16", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 9121, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "120:7:16", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 9122, - "length": null, - "nodeType": "ArrayTypeName", - "src": "120:9:16", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 9129, - "name": "Summoned", - "nodeType": "EventDefinition", - "parameters": { - "id": 9128, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9125, - "indexed": true, - "name": "M", - "nodeType": "VariableDeclaration", - "scope": 9129, - "src": "168:17:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9124, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "168:7:16", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9127, - "indexed": true, - "name": "_summoner", - "nodeType": "VariableDeclaration", - "scope": 9129, - "src": "187:25:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "187:7:16", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "167:46:16" - }, - "src": "153:61:16" - }, - { - "body": { - "id": 9185, - "nodeType": "Block", - "src": "621:447:16", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9154, - "name": "M", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9120, - "src": "634:1:16", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9157, - "name": "_summoner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9131, - "src": "663:9:16", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9158, - "name": "_approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9135, - "src": "687:15:16", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - } - }, - { - "argumentTypes": null, - "id": 9159, - "name": "_periodDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9137, - "src": "717:15:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9160, - "name": "_votingPeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9139, - "src": "747:19:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9161, - "name": "_gracePeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9141, - "src": "781:18:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9162, - "name": "_emergencyProcessingWait", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9143, - "src": "814:24:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9163, - "name": "_bailoutWait", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9145, - "src": "853:12:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9164, - "name": "_proposalDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9147, - "src": "880:16:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9165, - "name": "_dilutionBound", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9149, - "src": "911:14:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9166, - "name": "_processingReward", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9151, - "src": "940:17:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "638:10:16", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_array$_t_address_$1_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_contract$_Moloch_$9115_$", - "typeString": "function (address,address[1] memory,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) returns (contract Moloch)" - }, - "typeName": { - "contractScope": null, - "id": 9155, - "name": "Moloch", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9115, - "src": "642:6:16", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - } - }, - "id": 9167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "638:334:16", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - }, - "src": "634:338:16", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - }, - "id": 9169, - "nodeType": "ExpressionStatement", - "src": "634:338:16" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9174, - "name": "M", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9120, - "src": "1006:1:16", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - ], - "id": 9173, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "998:7:16", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 9175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "998:10:16", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 9170, - "name": "Molochs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9123, - "src": "985:7:16", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 9172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "985:12:16", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 9176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "985:24:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9177, - "nodeType": "ExpressionStatement", - "src": "985:24:16" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9180, - "name": "M", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9120, - "src": "1044:1:16", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - ], - "id": 9179, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1036:7:16", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 9181, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1036:10:16", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9182, - "name": "_summoner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9131, - "src": "1048:9:16", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 9178, - "name": "Summoned", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9129, - "src": "1027:8:16", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 9183, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1027:31:16", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9184, - "nodeType": "EmitStatement", - "src": "1022:36:16" - } - ] - }, - "documentation": null, - "id": 9186, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "summonMoloch", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9152, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9131, - "name": "_summoner", - "nodeType": "VariableDeclaration", - "scope": 9186, - "src": "254:17:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9130, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "254:7:16", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9135, - "name": "_approvedTokens", - "nodeType": "VariableDeclaration", - "scope": 9186, - "src": "282:33:16", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1]" - }, - "typeName": { - "baseType": { - "id": 9132, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "282:7:16", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 9134, - "length": { - "argumentTypes": null, - "hexValue": "31", - "id": 9133, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "290:1:16", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "ArrayTypeName", - "src": "282:10:16", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_storage_ptr", - "typeString": "address[1]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9137, - "name": "_periodDuration", - "nodeType": "VariableDeclaration", - "scope": 9186, - "src": "326:23:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9136, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "326:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9139, - "name": "_votingPeriodLength", - "nodeType": "VariableDeclaration", - "scope": 9186, - "src": "360:27:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9138, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "360:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9141, - "name": "_gracePeriodLength", - "nodeType": "VariableDeclaration", - "scope": 9186, - "src": "398:26:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9140, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "398:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9143, - "name": "_emergencyProcessingWait", - "nodeType": "VariableDeclaration", - "scope": 9186, - "src": "435:32:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9142, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "435:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9145, - "name": "_bailoutWait", - "nodeType": "VariableDeclaration", - "scope": 9186, - "src": "478:20:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9144, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "478:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9147, - "name": "_proposalDeposit", - "nodeType": "VariableDeclaration", - "scope": 9186, - "src": "509:24:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "509:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9149, - "name": "_dilutionBound", - "nodeType": "VariableDeclaration", - "scope": 9186, - "src": "544:22:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9148, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "544:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9151, - "name": "_processingReward", - "nodeType": "VariableDeclaration", - "scope": 9186, - "src": "577:25:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9150, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "577:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "243:370:16" - }, - "returnParameters": { - "id": 9153, - "nodeType": "ParameterList", - "parameters": [], - "src": "621:0:16" - }, - "scope": 9196, - "src": "222:846:16", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9194, - "nodeType": "Block", - "src": "1144:40:16", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9191, - "name": "Molochs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9123, - "src": "1162:7:16", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 9192, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1162:14:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9190, - "id": 9193, - "nodeType": "Return", - "src": "1155:21:16" - } - ] - }, - "documentation": null, - "id": 9195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getMolochCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9187, - "nodeType": "ParameterList", - "parameters": [], - "src": "1099:2:16" - }, - "returnParameters": { - "id": 9190, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9189, - "name": "MolochCount", - "nodeType": "VariableDeclaration", - "scope": 9195, - "src": "1123:19:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9188, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1123:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1122:21:16" - }, - "scope": 9196, - "src": "1076:108:16", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 9197, - "src": "62:1125:16" - } - ], - "src": "0:1189:16" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/MolochSummoner.sol", - "exportedSymbols": { - "MolochSummoner": [ - 9196 - ] - }, - "id": 9197, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9117, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:16" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Moloch.sol", - "file": "./Moloch.sol", - "id": 9118, - "nodeType": "ImportDirective", - "scope": 9197, - "sourceUnit": 9116, - "src": "36:22:16", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [ - 9115 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 9196, - "linearizedBaseContracts": [ - 9196 - ], - "name": "MolochSummoner", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 9120, - "name": "M", - "nodeType": "VariableDeclaration", - "scope": 9196, - "src": "95:16:16", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - }, - "typeName": { - "contractScope": null, - "id": 9119, - "name": "Moloch", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9115, - "src": "95:6:16", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - }, - "value": null, - "visibility": "private" - }, - { - "constant": false, - "id": 9123, - "name": "Molochs", - "nodeType": "VariableDeclaration", - "scope": 9196, - "src": "120:24:16", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 9121, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "120:7:16", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 9122, - "length": null, - "nodeType": "ArrayTypeName", - "src": "120:9:16", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "public" - }, - { - "anonymous": false, - "documentation": null, - "id": 9129, - "name": "Summoned", - "nodeType": "EventDefinition", - "parameters": { - "id": 9128, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9125, - "indexed": true, - "name": "M", - "nodeType": "VariableDeclaration", - "scope": 9129, - "src": "168:17:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9124, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "168:7:16", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9127, - "indexed": true, - "name": "_summoner", - "nodeType": "VariableDeclaration", - "scope": 9129, - "src": "187:25:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9126, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "187:7:16", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "167:46:16" - }, - "src": "153:61:16" - }, - { - "body": { - "id": 9185, - "nodeType": "Block", - "src": "621:447:16", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9168, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9154, - "name": "M", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9120, - "src": "634:1:16", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9157, - "name": "_summoner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9131, - "src": "663:9:16", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9158, - "name": "_approvedTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9135, - "src": "687:15:16", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - } - }, - { - "argumentTypes": null, - "id": 9159, - "name": "_periodDuration", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9137, - "src": "717:15:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9160, - "name": "_votingPeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9139, - "src": "747:19:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9161, - "name": "_gracePeriodLength", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9141, - "src": "781:18:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9162, - "name": "_emergencyProcessingWait", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9143, - "src": "814:24:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9163, - "name": "_bailoutWait", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9145, - "src": "853:12:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9164, - "name": "_proposalDeposit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9147, - "src": "880:16:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9165, - "name": "_dilutionBound", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9149, - "src": "911:14:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9166, - "name": "_processingReward", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9151, - "src": "940:17:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1] memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9156, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "NewExpression", - "src": "638:10:16", - "typeDescriptions": { - "typeIdentifier": "t_function_creation_nonpayable$_t_address_$_t_array$_t_address_$1_memory_ptr_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_contract$_Moloch_$9115_$", - "typeString": "function (address,address[1] memory,uint256,uint256,uint256,uint256,uint256,uint256,uint256,uint256) returns (contract Moloch)" - }, - "typeName": { - "contractScope": null, - "id": 9155, - "name": "Moloch", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9115, - "src": "642:6:16", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - } - }, - "id": 9167, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "638:334:16", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - }, - "src": "634:338:16", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - }, - "id": 9169, - "nodeType": "ExpressionStatement", - "src": "634:338:16" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9174, - "name": "M", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9120, - "src": "1006:1:16", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - ], - "id": 9173, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "998:7:16", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 9175, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "998:10:16", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "id": 9170, - "name": "Molochs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9123, - "src": "985:7:16", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 9172, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "985:12:16", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 9176, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "985:24:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 9177, - "nodeType": "ExpressionStatement", - "src": "985:24:16" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9180, - "name": "M", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9120, - "src": "1044:1:16", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - ], - "id": 9179, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "1036:7:16", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 9181, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1036:10:16", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9182, - "name": "_summoner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9131, - "src": "1048:9:16", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 9178, - "name": "Summoned", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9129, - "src": "1027:8:16", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$", - "typeString": "function (address,address)" - } - }, - "id": 9183, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1027:31:16", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9184, - "nodeType": "EmitStatement", - "src": "1022:36:16" - } - ] - }, - "documentation": null, - "id": 9186, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "summonMoloch", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9152, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9131, - "name": "_summoner", - "nodeType": "VariableDeclaration", - "scope": 9186, - "src": "254:17:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9130, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "254:7:16", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9135, - "name": "_approvedTokens", - "nodeType": "VariableDeclaration", - "scope": 9186, - "src": "282:33:16", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_memory_ptr", - "typeString": "address[1]" - }, - "typeName": { - "baseType": { - "id": 9132, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "282:7:16", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 9134, - "length": { - "argumentTypes": null, - "hexValue": "31", - "id": 9133, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "290:1:16", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "nodeType": "ArrayTypeName", - "src": "282:10:16", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$1_storage_ptr", - "typeString": "address[1]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9137, - "name": "_periodDuration", - "nodeType": "VariableDeclaration", - "scope": 9186, - "src": "326:23:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9136, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "326:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9139, - "name": "_votingPeriodLength", - "nodeType": "VariableDeclaration", - "scope": 9186, - "src": "360:27:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9138, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "360:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9141, - "name": "_gracePeriodLength", - "nodeType": "VariableDeclaration", - "scope": 9186, - "src": "398:26:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9140, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "398:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9143, - "name": "_emergencyProcessingWait", - "nodeType": "VariableDeclaration", - "scope": 9186, - "src": "435:32:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9142, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "435:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9145, - "name": "_bailoutWait", - "nodeType": "VariableDeclaration", - "scope": 9186, - "src": "478:20:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9144, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "478:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9147, - "name": "_proposalDeposit", - "nodeType": "VariableDeclaration", - "scope": 9186, - "src": "509:24:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9146, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "509:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9149, - "name": "_dilutionBound", - "nodeType": "VariableDeclaration", - "scope": 9186, - "src": "544:22:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9148, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "544:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9151, - "name": "_processingReward", - "nodeType": "VariableDeclaration", - "scope": 9186, - "src": "577:25:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9150, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "577:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "243:370:16" - }, - "returnParameters": { - "id": 9153, - "nodeType": "ParameterList", - "parameters": [], - "src": "621:0:16" - }, - "scope": 9196, - "src": "222:846:16", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9194, - "nodeType": "Block", - "src": "1144:40:16", - "statements": [ - { - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 9191, - "name": "Molochs", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9123, - "src": "1162:7:16", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 9192, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "1162:14:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9190, - "id": 9193, - "nodeType": "Return", - "src": "1155:21:16" - } - ] - }, - "documentation": null, - "id": 9195, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getMolochCount", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9187, - "nodeType": "ParameterList", - "parameters": [], - "src": "1099:2:16" - }, - "returnParameters": { - "id": 9190, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9189, - "name": "MolochCount", - "nodeType": "VariableDeclaration", - "scope": 9195, - "src": "1123:19:16", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9188, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1123:7:16", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1122:21:16" - }, - "scope": 9196, - "src": "1076:108:16", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 9197, - "src": "62:1125:16" - } - ], - "src": "0:1189:16" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:20.215Z", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/ReentrancyGuard.json b/src/contracts/ReentrancyGuard.json deleted file mode 100644 index a6f61c9..0000000 --- a/src/contracts/ReentrancyGuard.json +++ /dev/null @@ -1,748 +0,0 @@ -{ - "contractName": "ReentrancyGuard", - "abi": [ - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"details\":\"Contract module that helps prevent reentrant calls to a function.\\r * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\\r available, which can be applied to functions to make sure there are no nested\\r (reentrant) calls to them.\\r * Note that because there is a single `nonReentrant` guard, functions marked as\\r `nonReentrant` may not call one another. This can be worked around by making\\r those functions `private`, and then adding `external` `nonReentrant` entry\\r points to them.\\r * _Since v2.5.0:_ this module is now much more gas efficient, given net gas\\r metering changes introduced in the Istanbul hardfork.\\r\",\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol\":\"ReentrancyGuard\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol\":{\"keccak256\":\"0x8d08add2e57d2885eb9cda96d2ce54056015247de9adfea8e13c78bb2d9233f2\",\"urls\":[\"bzzr://24804e36486f935a9e98bf507193d1b160db755edba6c9d124a894aef3741ada\",\"dweb:/ipfs/QmauQVeYbGgqJDNxKAceFj1hFD1gfCfAXNBA8vCh3aGYKA\"]}},\"version\":1}", - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity ^0.5.0;\r\n\r\n/**\r\n * @dev Contract module that helps prevent reentrant calls to a function.\r\n *\r\n * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\r\n * available, which can be applied to functions to make sure there are no nested\r\n * (reentrant) calls to them.\r\n *\r\n * Note that because there is a single `nonReentrant` guard, functions marked as\r\n * `nonReentrant` may not call one another. This can be worked around by making\r\n * those functions `private`, and then adding `external` `nonReentrant` entry\r\n * points to them.\r\n *\r\n * _Since v2.5.0:_ this module is now much more gas efficient, given net gas\r\n * metering changes introduced in the Istanbul hardfork.\r\n */\r\ncontract ReentrancyGuard {\r\n bool private _notEntered;\r\n\r\n constructor () internal {\r\n // Storing an initial non-zero value makes deployment a bit more\r\n // expensive, but in exchange the refund on every call to nonReentrant\r\n // will be lower in amount. Since refunds are capped to a percetange of\r\n // the total transaction's gas, it is best to keep them low in cases\r\n // like this one, to increase the likelihood of the full refund coming\r\n // into effect.\r\n _notEntered = true;\r\n }\r\n\r\n /**\r\n * @dev Prevents a contract from calling itself, directly or indirectly.\r\n * Calling a `nonReentrant` function from another `nonReentrant`\r\n * function is not supported. It is possible to prevent this from happening\r\n * by making the `nonReentrant` function external, and make it call a\r\n * `private` function that does the actual work.\r\n */\r\n modifier nonReentrant() {\r\n // On the first call to nonReentrant, _notEntered will be true\r\n require(_notEntered, \"ReentrancyGuard: reentrant call\");\r\n\r\n // Any calls to nonReentrant after this point will fail\r\n _notEntered = false;\r\n\r\n _;\r\n\r\n // By storing the original value once again, a refund is triggered (see\r\n // https://eips.ethereum.org/EIPS/eip-2200)\r\n _notEntered = true;\r\n }\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\oz\\ReentrancyGuard.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol", - "exportedSymbols": { - "ReentrancyGuard": [ - 9749 - ] - }, - "id": 9750, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9721, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:21" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@dev Contract module that helps prevent reentrant calls to a function.\r\n\n * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\r\navailable, which can be applied to functions to make sure there are no nested\r\n(reentrant) calls to them.\r\n\n * Note that because there is a single `nonReentrant` guard, functions marked as\r\n`nonReentrant` may not call one another. This can be worked around by making\r\nthose functions `private`, and then adding `external` `nonReentrant` entry\r\npoints to them.\r\n\n * _Since v2.5.0:_ this module is now much more gas efficient, given net gas\r\nmetering changes introduced in the Istanbul hardfork.\r", - "fullyImplemented": true, - "id": 9749, - "linearizedBaseContracts": [ - 9749 - ], - "name": "ReentrancyGuard", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 9723, - "name": "_notEntered", - "nodeType": "VariableDeclaration", - "scope": 9749, - "src": "743:24:21", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9722, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "743:4:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 9730, - "nodeType": "Block", - "src": "800:455:21", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9726, - "name": "_notEntered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9723, - "src": "1229:11:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 9727, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1243:4:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "1229:18:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 9729, - "nodeType": "ExpressionStatement", - "src": "1229:18:21" - } - ] - }, - "documentation": null, - "id": 9731, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9724, - "nodeType": "ParameterList", - "parameters": [], - "src": "788:2:21" - }, - "returnParameters": { - "id": 9725, - "nodeType": "ParameterList", - "parameters": [], - "src": "800:0:21" - }, - "scope": 9749, - "src": "776:479:21", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 9747, - "nodeType": "Block", - "src": "1663:422:21", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9734, - "name": "_notEntered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9723, - "src": "1754:11:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5265656e7472616e637947756172643a207265656e7472616e742063616c6c", - "id": 9735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1767:33:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619", - "typeString": "literal_string \"ReentrancyGuard: reentrant call\"" - }, - "value": "ReentrancyGuard: reentrant call" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619", - "typeString": "literal_string \"ReentrancyGuard: reentrant call\"" - } - ], - "id": 9733, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "1746:7:21", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 9736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1746:55:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9737, - "nodeType": "ExpressionStatement", - "src": "1746:55:21" - }, - { - "expression": { - "argumentTypes": null, - "id": 9740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9738, - "name": "_notEntered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9723, - "src": "1879:11:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 9739, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1893:5:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "1879:19:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 9741, - "nodeType": "ExpressionStatement", - "src": "1879:19:21" - }, - { - "id": 9742, - "nodeType": "PlaceholderStatement", - "src": "1911:1:21" - }, - { - "expression": { - "argumentTypes": null, - "id": 9745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9743, - "name": "_notEntered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9723, - "src": "2059:11:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 9744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2073:4:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "2059:18:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 9746, - "nodeType": "ExpressionStatement", - "src": "2059:18:21" - } - ] - }, - "documentation": "@dev Prevents a contract from calling itself, directly or indirectly.\r\nCalling a `nonReentrant` function from another `nonReentrant`\r\nfunction is not supported. It is possible to prevent this from happening\r\nby making the `nonReentrant` function external, and make it call a\r\n`private` function that does the actual work.\r", - "id": 9748, - "name": "nonReentrant", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 9732, - "nodeType": "ParameterList", - "parameters": [], - "src": "1660:2:21" - }, - "src": "1639:446:21", - "visibility": "internal" - } - ], - "scope": 9750, - "src": "711:1377:21" - } - ], - "src": "0:2090:21" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol", - "exportedSymbols": { - "ReentrancyGuard": [ - 9749 - ] - }, - "id": 9750, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9721, - "literals": [ - "solidity", - "^", - "0.5", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:23:21" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@dev Contract module that helps prevent reentrant calls to a function.\r\n\n * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\r\navailable, which can be applied to functions to make sure there are no nested\r\n(reentrant) calls to them.\r\n\n * Note that because there is a single `nonReentrant` guard, functions marked as\r\n`nonReentrant` may not call one another. This can be worked around by making\r\nthose functions `private`, and then adding `external` `nonReentrant` entry\r\npoints to them.\r\n\n * _Since v2.5.0:_ this module is now much more gas efficient, given net gas\r\nmetering changes introduced in the Istanbul hardfork.\r", - "fullyImplemented": true, - "id": 9749, - "linearizedBaseContracts": [ - 9749 - ], - "name": "ReentrancyGuard", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 9723, - "name": "_notEntered", - "nodeType": "VariableDeclaration", - "scope": 9749, - "src": "743:24:21", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 9722, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "743:4:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "private" - }, - { - "body": { - "id": 9730, - "nodeType": "Block", - "src": "800:455:21", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9726, - "name": "_notEntered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9723, - "src": "1229:11:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 9727, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1243:4:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "1229:18:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 9729, - "nodeType": "ExpressionStatement", - "src": "1229:18:21" - } - ] - }, - "documentation": null, - "id": 9731, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9724, - "nodeType": "ParameterList", - "parameters": [], - "src": "788:2:21" - }, - "returnParameters": { - "id": 9725, - "nodeType": "ParameterList", - "parameters": [], - "src": "800:0:21" - }, - "scope": 9749, - "src": "776:479:21", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 9747, - "nodeType": "Block", - "src": "1663:422:21", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9734, - "name": "_notEntered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9723, - "src": "1754:11:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "argumentTypes": null, - "hexValue": "5265656e7472616e637947756172643a207265656e7472616e742063616c6c", - "id": 9735, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1767:33:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619", - "typeString": "literal_string \"ReentrancyGuard: reentrant call\"" - }, - "value": "ReentrancyGuard: reentrant call" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619", - "typeString": "literal_string \"ReentrancyGuard: reentrant call\"" - } - ], - "id": 9733, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10415, - "src": "1746:7:21", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 9736, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "1746:55:21", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9737, - "nodeType": "ExpressionStatement", - "src": "1746:55:21" - }, - { - "expression": { - "argumentTypes": null, - "id": 9740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9738, - "name": "_notEntered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9723, - "src": "1879:11:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 9739, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "1893:5:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "1879:19:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 9741, - "nodeType": "ExpressionStatement", - "src": "1879:19:21" - }, - { - "id": 9742, - "nodeType": "PlaceholderStatement", - "src": "1911:1:21" - }, - { - "expression": { - "argumentTypes": null, - "id": 9745, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9743, - "name": "_notEntered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9723, - "src": "2059:11:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 9744, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2073:4:21", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "2059:18:21", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 9746, - "nodeType": "ExpressionStatement", - "src": "2059:18:21" - } - ] - }, - "documentation": "@dev Prevents a contract from calling itself, directly or indirectly.\r\nCalling a `nonReentrant` function from another `nonReentrant`\r\nfunction is not supported. It is possible to prevent this from happening\r\nby making the `nonReentrant` function external, and make it call a\r\n`private` function that does the actual work.\r", - "id": 9748, - "name": "nonReentrant", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 9732, - "nodeType": "ParameterList", - "parameters": [], - "src": "1660:2:21" - }, - "src": "1639:446:21", - "visibility": "internal" - } - ], - "scope": 9750, - "src": "711:1377:21" - } - ], - "src": "0:2090:21" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:20.247Z", - "devdoc": { - "details": "Contract module that helps prevent reentrant calls to a function.\r * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier\r available, which can be applied to functions to make sure there are no nested\r (reentrant) calls to them.\r * Note that because there is a single `nonReentrant` guard, functions marked as\r `nonReentrant` may not call one another. This can be worked around by making\r those functions `private`, and then adding `external` `nonReentrant` entry\r points to them.\r * _Since v2.5.0:_ this module is now much more gas efficient, given net gas\r metering changes introduced in the Istanbul hardfork.\r", - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/SafeMath.json b/src/contracts/SafeMath.json deleted file mode 100644 index 054b951..0000000 --- a/src/contracts/SafeMath.json +++ /dev/null @@ -1,2770 +0,0 @@ -{ - "contractName": "SafeMath", - "abi": [], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":\"SafeMath\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", - "bytecode": "0x60556023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72305820bb4ed536388930bc47842634f46299dba3defa239394779c543d1a543807ce8164736f6c63430005090032", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea265627a7a72305820bb4ed536388930bc47842634f46299dba3defa239394779c543d1a543807ce8164736f6c63430005090032", - "sourceMap": "27:715:22:-;;132:2:-1;166:7;155:9;146:7;137:37;255:7;249:14;246:1;241:23;235:4;232:33;222:2;;269:9;222:2;293:9;290:1;283:20;323:4;314:7;306:22;347:7;338;331:24", - "deployedSourceMap": "27:715:22:-;;;;;;;;", - "source": "pragma solidity ^0.5.2;\r\n\r\nlibrary SafeMath {\r\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\r\n if (a == 0) {\r\n return 0;\r\n }\r\n\r\n uint256 c = a * b;\r\n require(c / a == b);\r\n\r\n return c;\r\n }\r\n\r\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\r\n\r\n require(b > 0);\r\n uint256 c = a / b;\r\n\r\n return c;\r\n }\r\n\r\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n require(b <= a);\r\n uint256 c = a - b;\r\n\r\n return c;\r\n }\r\n\r\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\r\n uint256 c = a + b;\r\n require(c >= a);\r\n\r\n return c;\r\n }\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\oz\\SafeMath.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "exportedSymbols": { - "SafeMath": [ - 9857 - ] - }, - "id": 9858, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9751, - "literals": [ - "solidity", - "^", - "0.5", - ".2" - ], - "nodeType": "PragmaDirective", - "src": "0:23:22" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 9857, - "linearizedBaseContracts": [ - 9857 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 9783, - "nodeType": "Block", - "src": "118:146:22", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9760, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9753, - "src": "133:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 9761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "138:1:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "133:6:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 9766, - "nodeType": "IfStatement", - "src": "129:47:22", - "trueBody": { - "id": 9765, - "nodeType": "Block", - "src": "141:35:22", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 9763, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "163:1:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 9759, - "id": 9764, - "nodeType": "Return", - "src": "156:8:22" - } - ] - } - }, - { - "assignments": [ - 9768 - ], - "declarations": [ - { - "constant": false, - "id": 9768, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 9783, - "src": "188:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9767, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "188:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9772, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9769, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9753, - "src": "200:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9770, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9755, - "src": "204:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "200:5:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "188:17:22" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9774, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9768, - "src": "224:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9775, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9753, - "src": "228:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "224:5:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 9777, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9755, - "src": "233:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "224:10:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 9773, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "216:7:22", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 9779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "216:19:22", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9780, - "nodeType": "ExpressionStatement", - "src": "216:19:22" - }, - { - "expression": { - "argumentTypes": null, - "id": 9781, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9768, - "src": "255:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9759, - "id": 9782, - "nodeType": "Return", - "src": "248:8:22" - } - ] - }, - "documentation": null, - "id": 9784, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9756, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9753, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 9784, - "src": "64:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9752, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "64:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9755, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 9784, - "src": "75:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9754, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "75:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "63:22:22" - }, - "returnParameters": { - "id": 9759, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9758, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9784, - "src": "109:7:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9757, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "109:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "108:9:22" - }, - "scope": 9857, - "src": "51:213:22", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 9807, - "nodeType": "Block", - "src": "339:84:22", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9796, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9794, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9788, - "src": "360:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 9795, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "364:1:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "360:5:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 9793, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "352:7:22", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 9797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "352:14:22", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9798, - "nodeType": "ExpressionStatement", - "src": "352:14:22" - }, - { - "assignments": [ - 9800 - ], - "declarations": [ - { - "constant": false, - "id": 9800, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 9807, - "src": "377:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9799, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "377:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9804, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9801, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9786, - "src": "389:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9802, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9788, - "src": "393:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "389:5:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "377:17:22" - }, - { - "expression": { - "argumentTypes": null, - "id": 9805, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9800, - "src": "414:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9792, - "id": 9806, - "nodeType": "Return", - "src": "407:8:22" - } - ] - }, - "documentation": null, - "id": 9808, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9789, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9786, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 9808, - "src": "285:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9785, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "285:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9788, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 9808, - "src": "296:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9787, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "296:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "284:22:22" - }, - "returnParameters": { - "id": 9792, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9791, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9808, - "src": "330:7:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9790, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "330:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "329:9:22" - }, - "scope": 9857, - "src": "272:151:22", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 9831, - "nodeType": "Block", - "src": "498:83:22", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9818, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9812, - "src": "517:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 9819, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9810, - "src": "522:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "517:6:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 9817, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "509:7:22", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 9821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "509:15:22", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9822, - "nodeType": "ExpressionStatement", - "src": "509:15:22" - }, - { - "assignments": [ - 9824 - ], - "declarations": [ - { - "constant": false, - "id": 9824, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 9831, - "src": "535:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9823, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "535:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9828, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9825, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9810, - "src": "547:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 9826, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9812, - "src": "551:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "547:5:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "535:17:22" - }, - { - "expression": { - "argumentTypes": null, - "id": 9829, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9824, - "src": "572:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9816, - "id": 9830, - "nodeType": "Return", - "src": "565:8:22" - } - ] - }, - "documentation": null, - "id": 9832, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9813, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9810, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 9832, - "src": "444:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9809, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "444:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9812, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 9832, - "src": "455:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9811, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "455:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "443:22:22" - }, - "returnParameters": { - "id": 9816, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9815, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9832, - "src": "489:7:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9814, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "489:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "488:9:22" - }, - "scope": 9857, - "src": "431:150:22", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 9855, - "nodeType": "Block", - "src": "656:83:22", - "statements": [ - { - "assignments": [ - 9842 - ], - "declarations": [ - { - "constant": false, - "id": 9842, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 9855, - "src": "667:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9841, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "667:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9846, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9843, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9834, - "src": "679:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 9844, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9836, - "src": "683:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "679:5:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "667:17:22" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9850, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9848, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9842, - "src": "703:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 9849, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9834, - "src": "708:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "703:6:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 9847, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "695:7:22", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 9851, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "695:15:22", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9852, - "nodeType": "ExpressionStatement", - "src": "695:15:22" - }, - { - "expression": { - "argumentTypes": null, - "id": 9853, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9842, - "src": "730:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9840, - "id": 9854, - "nodeType": "Return", - "src": "723:8:22" - } - ] - }, - "documentation": null, - "id": 9856, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9837, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9834, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 9856, - "src": "602:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9833, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "602:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9836, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 9856, - "src": "613:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9835, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "613:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "601:22:22" - }, - "returnParameters": { - "id": 9840, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9839, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9856, - "src": "647:7:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9838, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "647:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "646:9:22" - }, - "scope": 9857, - "src": "589:150:22", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 9858, - "src": "27:715:22" - } - ], - "src": "0:744:22" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "exportedSymbols": { - "SafeMath": [ - 9857 - ] - }, - "id": 9858, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9751, - "literals": [ - "solidity", - "^", - "0.5", - ".2" - ], - "nodeType": "PragmaDirective", - "src": "0:23:22" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": null, - "fullyImplemented": true, - "id": 9857, - "linearizedBaseContracts": [ - 9857 - ], - "name": "SafeMath", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 9783, - "nodeType": "Block", - "src": "118:146:22", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9762, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9760, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9753, - "src": "133:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 9761, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "138:1:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "133:6:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 9766, - "nodeType": "IfStatement", - "src": "129:47:22", - "trueBody": { - "id": 9765, - "nodeType": "Block", - "src": "141:35:22", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "30", - "id": 9763, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "163:1:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "functionReturnParameters": 9759, - "id": 9764, - "nodeType": "Return", - "src": "156:8:22" - } - ] - } - }, - { - "assignments": [ - 9768 - ], - "declarations": [ - { - "constant": false, - "id": 9768, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 9783, - "src": "188:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9767, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "188:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9772, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9771, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9769, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9753, - "src": "200:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "*", - "rightExpression": { - "argumentTypes": null, - "id": 9770, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9755, - "src": "204:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "200:5:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "188:17:22" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9774, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9768, - "src": "224:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9775, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9753, - "src": "228:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "224:5:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 9777, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9755, - "src": "233:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "224:10:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 9773, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "216:7:22", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 9779, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "216:19:22", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9780, - "nodeType": "ExpressionStatement", - "src": "216:19:22" - }, - { - "expression": { - "argumentTypes": null, - "id": 9781, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9768, - "src": "255:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9759, - "id": 9782, - "nodeType": "Return", - "src": "248:8:22" - } - ] - }, - "documentation": null, - "id": 9784, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mul", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9756, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9753, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 9784, - "src": "64:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9752, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "64:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9755, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 9784, - "src": "75:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9754, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "75:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "63:22:22" - }, - "returnParameters": { - "id": 9759, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9758, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9784, - "src": "109:7:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9757, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "109:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "108:9:22" - }, - "scope": 9857, - "src": "51:213:22", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 9807, - "nodeType": "Block", - "src": "339:84:22", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9796, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9794, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9788, - "src": "360:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 9795, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "364:1:22", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "360:5:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 9793, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "352:7:22", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 9797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "352:14:22", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9798, - "nodeType": "ExpressionStatement", - "src": "352:14:22" - }, - { - "assignments": [ - 9800 - ], - "declarations": [ - { - "constant": false, - "id": 9800, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 9807, - "src": "377:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9799, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "377:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9804, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9801, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9786, - "src": "389:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "argumentTypes": null, - "id": 9802, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9788, - "src": "393:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "389:5:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "377:17:22" - }, - { - "expression": { - "argumentTypes": null, - "id": 9805, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9800, - "src": "414:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9792, - "id": 9806, - "nodeType": "Return", - "src": "407:8:22" - } - ] - }, - "documentation": null, - "id": 9808, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "div", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9789, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9786, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 9808, - "src": "285:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9785, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "285:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9788, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 9808, - "src": "296:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9787, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "296:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "284:22:22" - }, - "returnParameters": { - "id": 9792, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9791, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9808, - "src": "330:7:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9790, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "330:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "329:9:22" - }, - "scope": 9857, - "src": "272:151:22", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 9831, - "nodeType": "Block", - "src": "498:83:22", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9820, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9818, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9812, - "src": "517:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "id": 9819, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9810, - "src": "522:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "517:6:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 9817, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "509:7:22", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 9821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "509:15:22", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9822, - "nodeType": "ExpressionStatement", - "src": "509:15:22" - }, - { - "assignments": [ - 9824 - ], - "declarations": [ - { - "constant": false, - "id": 9824, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 9831, - "src": "535:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9823, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "535:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9828, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9827, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9825, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9810, - "src": "547:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "id": 9826, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9812, - "src": "551:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "547:5:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "535:17:22" - }, - { - "expression": { - "argumentTypes": null, - "id": 9829, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9824, - "src": "572:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9816, - "id": 9830, - "nodeType": "Return", - "src": "565:8:22" - } - ] - }, - "documentation": null, - "id": 9832, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "sub", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9813, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9810, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 9832, - "src": "444:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9809, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "444:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9812, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 9832, - "src": "455:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9811, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "455:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "443:22:22" - }, - "returnParameters": { - "id": 9816, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9815, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9832, - "src": "489:7:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9814, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "489:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "488:9:22" - }, - "scope": 9857, - "src": "431:150:22", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 9855, - "nodeType": "Block", - "src": "656:83:22", - "statements": [ - { - "assignments": [ - 9842 - ], - "declarations": [ - { - "constant": false, - "id": 9842, - "name": "c", - "nodeType": "VariableDeclaration", - "scope": 9855, - "src": "667:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9841, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "667:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9846, - "initialValue": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9845, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9843, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9834, - "src": "679:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "+", - "rightExpression": { - "argumentTypes": null, - "id": 9844, - "name": "b", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9836, - "src": "683:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "679:5:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "667:17:22" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 9850, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 9848, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9842, - "src": "703:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 9849, - "name": "a", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9834, - "src": "708:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "703:6:22", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 9847, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "695:7:22", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 9851, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "695:15:22", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9852, - "nodeType": "ExpressionStatement", - "src": "695:15:22" - }, - { - "expression": { - "argumentTypes": null, - "id": 9853, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9842, - "src": "730:1:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 9840, - "id": 9854, - "nodeType": "Return", - "src": "723:8:22" - } - ] - }, - "documentation": null, - "id": 9856, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "add", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9837, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9834, - "name": "a", - "nodeType": "VariableDeclaration", - "scope": 9856, - "src": "602:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9833, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "602:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9836, - "name": "b", - "nodeType": "VariableDeclaration", - "scope": 9856, - "src": "613:9:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9835, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "613:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "601:22:22" - }, - "returnParameters": { - "id": 9840, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9839, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9856, - "src": "647:7:22", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9838, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "647:7:22", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "646:9:22" - }, - "scope": 9857, - "src": "589:150:22", - "stateMutability": "pure", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 9858, - "src": "27:715:22" - } - ], - "src": "0:744:22" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:19.775Z", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/StandardBounties.json b/src/contracts/StandardBounties.json deleted file mode 100644 index 8dd1b65..0000000 --- a/src/contracts/StandardBounties.json +++ /dev/null @@ -1,54152 +0,0 @@ -{ - "contractName": "StandardBounties", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "callStarted", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "numBounties", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "owner", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "metaTxRelayer", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - } - ], - "name": "bounties", - "outputs": [ - { - "name": "deadline", - "type": "uint256" - }, - { - "name": "token", - "type": "address" - }, - { - "name": "tokenVersion", - "type": "uint256" - }, - { - "name": "balance", - "type": "uint256" - }, - { - "name": "hasPaidOut", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "", - "type": "uint256" - }, - { - "name": "", - "type": "uint256" - } - ], - "name": "tokenBalances", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_creator", - "type": "address" - }, - { - "indexed": false, - "name": "_issuers", - "type": "address[]" - }, - { - "indexed": false, - "name": "_approvers", - "type": "address[]" - }, - { - "indexed": false, - "name": "_data", - "type": "string" - }, - { - "indexed": false, - "name": "_deadline", - "type": "uint256" - }, - { - "indexed": false, - "name": "_token", - "type": "address" - }, - { - "indexed": false, - "name": "_tokenVersion", - "type": "uint256" - } - ], - "name": "BountyIssued", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_contributionId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_contributor", - "type": "address" - }, - { - "indexed": false, - "name": "_amount", - "type": "uint256" - } - ], - "name": "ContributionAdded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_contributionId", - "type": "uint256" - } - ], - "name": "ContributionRefunded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_issuer", - "type": "address" - }, - { - "indexed": false, - "name": "_contributionIds", - "type": "uint256[]" - } - ], - "name": "ContributionsRefunded", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_issuer", - "type": "address" - }, - { - "indexed": false, - "name": "_amounts", - "type": "uint256[]" - } - ], - "name": "BountyDrained", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_fulfiller", - "type": "address" - }, - { - "indexed": false, - "name": "_data", - "type": "string" - } - ], - "name": "ActionPerformed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_fulfillmentId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_fulfillers", - "type": "address[]" - }, - { - "indexed": false, - "name": "_data", - "type": "string" - }, - { - "indexed": false, - "name": "_submitter", - "type": "address" - } - ], - "name": "BountyFulfilled", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_fulfillmentId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_fulfillers", - "type": "address[]" - }, - { - "indexed": false, - "name": "_data", - "type": "string" - } - ], - "name": "FulfillmentUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_fulfillmentId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_approver", - "type": "address" - }, - { - "indexed": false, - "name": "_tokenAmounts", - "type": "uint256[]" - } - ], - "name": "FulfillmentAccepted", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_changer", - "type": "address" - }, - { - "indexed": false, - "name": "_issuers", - "type": "address[]" - }, - { - "indexed": false, - "name": "_approvers", - "type": "address[]" - }, - { - "indexed": false, - "name": "_data", - "type": "string" - }, - { - "indexed": false, - "name": "_deadline", - "type": "uint256" - } - ], - "name": "BountyChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_changer", - "type": "address" - }, - { - "indexed": false, - "name": "_issuers", - "type": "address[]" - } - ], - "name": "BountyIssuersUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_changer", - "type": "address" - }, - { - "indexed": false, - "name": "_approvers", - "type": "address[]" - } - ], - "name": "BountyApproversUpdated", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_changer", - "type": "address" - }, - { - "indexed": false, - "name": "_data", - "type": "string" - } - ], - "name": "BountyDataChanged", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_changer", - "type": "address" - }, - { - "indexed": false, - "name": "_deadline", - "type": "uint256" - } - ], - "name": "BountyDeadlineChanged", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "_relayer", - "type": "address" - } - ], - "name": "setMetaTxRelayer", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_issuers", - "type": "address[]" - }, - { - "name": "_approvers", - "type": "address[]" - }, - { - "name": "_data", - "type": "string" - }, - { - "name": "_deadline", - "type": "uint256" - }, - { - "name": "_token", - "type": "address" - }, - { - "name": "_tokenVersion", - "type": "uint256" - } - ], - "name": "issueBounty", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_issuers", - "type": "address[]" - }, - { - "name": "_approvers", - "type": "address[]" - }, - { - "name": "_data", - "type": "string" - }, - { - "name": "_deadline", - "type": "uint256" - }, - { - "name": "_token", - "type": "address" - }, - { - "name": "_tokenVersion", - "type": "uint256" - }, - { - "name": "_depositAmount", - "type": "uint256" - } - ], - "name": "issueAndContribute", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_amount", - "type": "uint256" - } - ], - "name": "contribute", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_contributionId", - "type": "uint256" - } - ], - "name": "refundContribution", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_contributionIds", - "type": "uint256[]" - } - ], - "name": "refundMyContributions", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_contributionIds", - "type": "uint256[]" - } - ], - "name": "refundContributions", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_amounts", - "type": "uint256[]" - } - ], - "name": "drainBounty", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_data", - "type": "string" - } - ], - "name": "performAction", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_fulfillers", - "type": "address[]" - }, - { - "name": "_data", - "type": "string" - } - ], - "name": "fulfillBounty", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_fulfillmentId", - "type": "uint256" - }, - { - "name": "_fulfillers", - "type": "address[]" - }, - { - "name": "_data", - "type": "string" - } - ], - "name": "updateFulfillment", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_fulfillmentId", - "type": "uint256" - }, - { - "name": "_approverId", - "type": "uint256" - }, - { - "name": "_tokenAmounts", - "type": "uint256[]" - } - ], - "name": "acceptFulfillment", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_fulfillers", - "type": "address[]" - }, - { - "name": "_data", - "type": "string" - }, - { - "name": "_approverId", - "type": "uint256" - }, - { - "name": "_tokenAmounts", - "type": "uint256[]" - } - ], - "name": "fulfillAndAccept", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_issuers", - "type": "address[]" - }, - { - "name": "_approvers", - "type": "address[]" - }, - { - "name": "_data", - "type": "string" - }, - { - "name": "_deadline", - "type": "uint256" - } - ], - "name": "changeBounty", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_issuerIdToChange", - "type": "uint256" - }, - { - "name": "_newIssuer", - "type": "address" - } - ], - "name": "changeIssuer", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_approverId", - "type": "uint256" - }, - { - "name": "_approver", - "type": "address" - } - ], - "name": "changeApprover", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_issuerIdToChange", - "type": "uint256" - }, - { - "name": "_approverIdToChange", - "type": "uint256" - }, - { - "name": "_issuer", - "type": "address" - } - ], - "name": "changeIssuerAndApprover", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_data", - "type": "string" - } - ], - "name": "changeData", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_deadline", - "type": "uint256" - } - ], - "name": "changeDeadline", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_issuers", - "type": "address[]" - } - ], - "name": "addIssuers", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_sender", - "type": "address" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_approvers", - "type": "address[]" - } - ], - "name": "addApprovers", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "_bountyId", - "type": "uint256" - } - ], - "name": "getBounty", - "outputs": [ - { - "components": [ - { - "name": "issuers", - "type": "address[]" - }, - { - "name": "approvers", - "type": "address[]" - }, - { - "name": "deadline", - "type": "uint256" - }, - { - "name": "token", - "type": "address" - }, - { - "name": "tokenVersion", - "type": "uint256" - }, - { - "name": "balance", - "type": "uint256" - }, - { - "name": "hasPaidOut", - "type": "bool" - }, - { - "components": [ - { - "name": "fulfillers", - "type": "address[]" - }, - { - "name": "submitter", - "type": "address" - } - ], - "name": "fulfillments", - "type": "tuple[]" - }, - { - "components": [ - { - "name": "contributor", - "type": "address" - }, - { - "name": "amount", - "type": "uint256" - }, - { - "name": "refunded", - "type": "bool" - } - ], - "name": "contributions", - "type": "tuple[]" - } - ], - "name": "", - "type": "tuple" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_fulfillmentId\",\"type\":\"uint256\"},{\"name\":\"_approverId\",\"type\":\"uint256\"},{\"name\":\"_tokenAmounts\",\"type\":\"uint256[]\"}],\"name\":\"acceptFulfillment\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_tokenVersion\",\"type\":\"uint256\"},{\"name\":\"_depositAmount\",\"type\":\"uint256\"}],\"name\":\"issueAndContribute\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_approverId\",\"type\":\"uint256\"},{\"name\":\"_approver\",\"type\":\"address\"}],\"name\":\"changeApprover\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"drainBounty\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"string\"}],\"name\":\"performAction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_approvers\",\"type\":\"address[]\"}],\"name\":\"addApprovers\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_tokenVersion\",\"type\":\"uint256\"}],\"name\":\"issueBounty\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_relayer\",\"type\":\"address\"}],\"name\":\"setMetaTxRelayer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"callStarted\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"string\"}],\"name\":\"changeData\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"numBounties\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_contributionId\",\"type\":\"uint256\"}],\"name\":\"refundContribution\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_fulfillers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"}],\"name\":\"fulfillBounty\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_issuerIdToChange\",\"type\":\"uint256\"},{\"name\":\"_newIssuer\",\"type\":\"address\"}],\"name\":\"changeIssuer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_contributionIds\",\"type\":\"uint256[]\"}],\"name\":\"refundContributions\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"contribute\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_deadline\",\"type\":\"uint256\"}],\"name\":\"changeDeadline\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_deadline\",\"type\":\"uint256\"}],\"name\":\"changeBounty\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_issuerIdToChange\",\"type\":\"uint256\"},{\"name\":\"_approverIdToChange\",\"type\":\"uint256\"},{\"name\":\"_issuer\",\"type\":\"address\"}],\"name\":\"changeIssuerAndApprover\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"metaTxRelayer\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_fulfillers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_approverId\",\"type\":\"uint256\"},{\"name\":\"_tokenAmounts\",\"type\":\"uint256[]\"}],\"name\":\"fulfillAndAccept\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_fulfillmentId\",\"type\":\"uint256\"},{\"name\":\"_fulfillers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"}],\"name\":\"updateFulfillment\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_issuers\",\"type\":\"address[]\"}],\"name\":\"addIssuers\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"bounties\",\"outputs\":[{\"name\":\"deadline\",\"type\":\"uint256\"},{\"name\":\"token\",\"type\":\"address\"},{\"name\":\"tokenVersion\",\"type\":\"uint256\"},{\"name\":\"balance\",\"type\":\"uint256\"},{\"name\":\"hasPaidOut\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"},{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tokenBalances\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_sender\",\"type\":\"address\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_contributionIds\",\"type\":\"uint256[]\"}],\"name\":\"refundMyContributions\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"_bountyId\",\"type\":\"uint256\"}],\"name\":\"getBounty\",\"outputs\":[{\"components\":[{\"name\":\"issuers\",\"type\":\"address[]\"},{\"name\":\"approvers\",\"type\":\"address[]\"},{\"name\":\"deadline\",\"type\":\"uint256\"},{\"name\":\"token\",\"type\":\"address\"},{\"name\":\"tokenVersion\",\"type\":\"uint256\"},{\"name\":\"balance\",\"type\":\"uint256\"},{\"name\":\"hasPaidOut\",\"type\":\"bool\"},{\"components\":[{\"name\":\"fulfillers\",\"type\":\"address[]\"},{\"name\":\"submitter\",\"type\":\"address\"}],\"name\":\"fulfillments\",\"type\":\"tuple[]\"},{\"components\":[{\"name\":\"contributor\",\"type\":\"address\"},{\"name\":\"amount\",\"type\":\"uint256\"},{\"name\":\"refunded\",\"type\":\"bool\"}],\"name\":\"contributions\",\"type\":\"tuple[]\"}],\"name\":\"\",\"type\":\"tuple\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_creator\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_issuers\",\"type\":\"address[]\"},{\"indexed\":false,\"name\":\"_approvers\",\"type\":\"address[]\"},{\"indexed\":false,\"name\":\"_data\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_deadline\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_token\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_tokenVersion\",\"type\":\"uint256\"}],\"name\":\"BountyIssued\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_contributionId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_contributor\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"ContributionAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_contributionId\",\"type\":\"uint256\"}],\"name\":\"ContributionRefunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_issuer\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_contributionIds\",\"type\":\"uint256[]\"}],\"name\":\"ContributionsRefunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_issuer\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_amounts\",\"type\":\"uint256[]\"}],\"name\":\"BountyDrained\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_fulfiller\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_data\",\"type\":\"string\"}],\"name\":\"ActionPerformed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_fulfillmentId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_fulfillers\",\"type\":\"address[]\"},{\"indexed\":false,\"name\":\"_data\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_submitter\",\"type\":\"address\"}],\"name\":\"BountyFulfilled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_fulfillmentId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_fulfillers\",\"type\":\"address[]\"},{\"indexed\":false,\"name\":\"_data\",\"type\":\"string\"}],\"name\":\"FulfillmentUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_fulfillmentId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_approver\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_tokenAmounts\",\"type\":\"uint256[]\"}],\"name\":\"FulfillmentAccepted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_changer\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_issuers\",\"type\":\"address[]\"},{\"indexed\":false,\"name\":\"_approvers\",\"type\":\"address[]\"},{\"indexed\":false,\"name\":\"_data\",\"type\":\"string\"},{\"indexed\":false,\"name\":\"_deadline\",\"type\":\"uint256\"}],\"name\":\"BountyChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_changer\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_issuers\",\"type\":\"address[]\"}],\"name\":\"BountyIssuersUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_changer\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_approvers\",\"type\":\"address[]\"}],\"name\":\"BountyApproversUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_changer\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_data\",\"type\":\"string\"}],\"name\":\"BountyDataChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"indexed\":false,\"name\":\"_changer\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"_deadline\",\"type\":\"uint256\"}],\"name\":\"BountyDeadlineChanged\",\"type\":\"event\"}],\"devdoc\":{\"author\":\"Mark Beylifn , Gon\\u00e7alo S\\u00e1 , Kevin Owocki , Ricardo Guilherme Schmidt (@3esmit), Matt Garnett , Craig Williams \",\"methods\":{\"addApprovers(address,uint256,uint256,address[])\":{\"params\":{\"_approvers\":\"the array of addresses to add to the list of valid approvers\"}},\"addIssuers(address,uint256,uint256,address[])\":{\"params\":{\"_issuers\":\"the array of addresses to add to the list of valid issuers\"}},\"changeApprover(address,uint256,uint256,uint256,address)\":{\"params\":{\"_approver\":\"the address of the new approver\"}},\"changeBounty(address,uint256,uint256,address[],address[],string,uint256)\":{\"params\":{\"_deadline\":\"the new timestamp which will become the deadline of the bounty\"}},\"changeData(address,uint256,uint256,string)\":{\"params\":{\"_data\":\"the new IPFS hash representing the JSON object storing the details of the bounty (see docs for schema details)\"}},\"changeDeadline(address,uint256,uint256,uint256)\":{\"params\":{\"_deadline\":\"the new timestamp which will become the deadline of the bounty\"}},\"changeIssuer(address,uint256,uint256,uint256,address)\":{\"params\":{\"_newIssuer\":\"the address of the new issuer\"}},\"changeIssuerAndApprover(address,uint256,uint256,uint256,uint256,address)\":{\"params\":{\"_issuer\":\"the address of the new approver\"}},\"contribute(address,uint256,uint256)\":{\"params\":{\"_amount\":\"the amount of tokens being contributed\"}},\"drainBounty(address,uint256,uint256,uint256[])\":{\"params\":{\"_amounts\":\"an array of amounts of tokens to be sent. The length of the array should be 1 if the bounty is in ETH or ERC20 tokens. If it's an ERC721 bounty, the array should be the list of tokenIDs.\"}},\"fulfillBounty(address,uint256,address[],string)\":{\"params\":{\"_data\":\"the IPFS hash corresponding to a JSON object which contains the details of the submission (see docs for schema details)\"}},\"getBounty(uint256)\":{\"return\":\"Returns a tuple for the bounty\"},\"issueAndContribute(address,address[],address[],string,uint256,address,uint256,uint256)\":{\"params\":{\"_depositAmount\":\"the amount of tokens being deposited to the bounty, which will create a new contribution to the bounty\"}},\"issueBounty(address,address[],address[],string,uint256,address,uint256)\":{\"params\":{\"_tokenVersion\":\"the version of the token being used for the bounty (0 for ETH, 20 for ERC20, 721 for ERC721)\"}},\"performAction(address,uint256,string)\":{\"params\":{\"_data\":\"the IPFS hash corresponding to a JSON object which contains the details of the action being performed (see docs for schema details)\"}},\"refundContribution(address,uint256,uint256)\":{\"params\":{\"_contributionId\":\"the index of the contribution being refunded\"}},\"refundContributions(address,uint256,uint256,uint256[])\":{\"params\":{\"_contributionIds\":\"the array of indexes of the contributions being refunded\"}},\"refundMyContributions(address,uint256,uint256[])\":{\"params\":{\"_contributionIds\":\"the array of indexes of the contributions being refunded\"}},\"setMetaTxRelayer(address)\":{\"params\":{\"_relayer\":\"the address of the relayer\"}},\"updateFulfillment(address,uint256,uint256,address[],string)\":{\"params\":{\"_data\":\"the new IPFS hash corresponding to a JSON object which contains the details of the submission (see docs for schema details)\"}}}},\"userdoc\":{\"methods\":{\"acceptFulfillment(address,uint256,uint256,uint256,uint256[])\":{\"notice\":\"being sent to each of the individual fulfillers\"},\"fulfillAndAccept(address,uint256,address[],string,uint256,uint256[])\":{\"notice\":\"being sent to each of the individual fulfillers\"}}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/StandardBounties.sol\":\"StandardBounties\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/StandardBounties.sol\":{\"keccak256\":\"0x456ed28ea1aef4e955403633cf32abd31157ba403d9cb68354c7dc672c5ccabf\",\"urls\":[\"bzzr://d15335b4982aca05664cad86d9c6a2bf810f978a29446cd053d45a737d6714e8\",\"dweb:/ipfs/QmTJ8fyPixSGid17Dk2xF8tBphrrEVTPKNenz3aRn1LFrL\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC20Token.sol\":{\"keccak256\":\"0x3148ace3c8e413e3e8cb9181826bbb7382fe8fd691fbbe398b0f3291c5ac88f6\",\"urls\":[\"bzzr://f6dae48bd61cf187d97f6dd7b1f14c4216ccda99c9173d87ac59465f9d3a030b\",\"dweb:/ipfs/QmbDe5WTm8sWmUWRbKxtWUrSbyS1T5vgkiVscK94RJb6iS\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":{\"keccak256\":\"0x4dd046a190602871aa9743a94149789c1e14b14f609c68d0f34d72e19bd690ce\",\"urls\":[\"bzzr://ea591dfb88f3591fe4344b7e665024c5aa3e8fb758a0409db79b1885a996b825\",\"dweb:/ipfs/QmXrwJ2TTXMWHBQxuLCqrj96gfh5HCHK57JsCEcXJ84t6z\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/Token.sol\":{\"keccak256\":\"0xdee24120ae0fa14b9200dfa97babfa107aaf668b52eeda93ad672260ede4b74c\",\"urls\":[\"bzzr://2144e06fcebb6227647c4362c7075680ea03074e80e51d37cad0b09092ff06a5\",\"dweb:/ipfs/QmYgcfKEH2DT6brtajHvPRdu6my6CRWH86TXmZCMZeGjfK\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b50600380546001600160a01b03191633179055613c2b806100326000396000f3fe6080604052600436106101b65760003560e01c80639e64d9bf116100ec578063c22215b81161008a578063dc2f874411610064578063dc2f8744146104a7578063ec41e4cd146104d8578063edba7013146104f8578063ee8c4bbf14610518576101b6565b8063c22215b814610447578063c496045014610467578063c6a8b42b14610487576101b6565b8063aa17aaef116100c6578063aa17aaef146103d2578063b178d768146103f2578063bae3755614610412578063c1107c1114610432576101b6565b80639e64d9bf1461037f578063a071fbd51461039f578063a08f793c146103bf576101b6565b806361cf22131161015957806388db0f521161013357806388db0f52146103085780638da5cb5b1461031d57806393c1ccc91461033f57806397d766651461035f576101b6565b806361cf2213146102a6578063720dc00c146102c65780637ef8213c146102e8576101b6565b80633756f3c8116101955780633756f3c8146102265780634ac4e25a146102465780634daf1bb514610266578063567b3d2e14610286576101b6565b8062f27e38146101bb57806306060ae3146101dd5780632092e25914610206575b600080fd5b3480156101c757600080fd5b506101db6101d636600461308b565b610545565b005b6101f06101eb366004612991565b610735565b6040516101fd9190613768565b60405180910390f35b34801561021257600080fd5b506101db610221366004613023565b610761565b34801561023257600080fd5b506101db610241366004612ad3565b6108af565b34801561025257600080fd5b506101db610261366004612cf4565b610aa1565b34801561027257600080fd5b506101db610281366004612d4e565b610b1d565b34801561029257600080fd5b506101f06102a13660046128b0565b610c8a565b3480156102b257600080fd5b506101db6102c136600461288a565b610dcf565b3480156102d257600080fd5b506102db610e1e565b6040516101fd9190613749565b3480156102f457600080fd5b506101db610303366004612f8a565b610e2e565b34801561031457600080fd5b506101f0610efd565b34801561032957600080fd5b50610332610f03565b6040516101fd91906136dd565b34801561034b57600080fd5b506101db61035a366004612a86565b610f12565b34801561036b57600080fd5b506101db61037a366004612b4b565b611117565b34801561038b57600080fd5b506101db61039a366004613023565b61125b565b3480156103ab57600080fd5b506101db6103ba366004612ad3565b6113ad565b6101db6103cd366004612a86565b61155a565b3480156103de57600080fd5b506101db6103ed366004612fce565b6118ba565b3480156103fe57600080fd5b506101db61040d366004612e26565b61199e565b34801561041e57600080fd5b506101db61042d36600461310a565b611aee565b34801561043e57600080fd5b50610332611ce0565b34801561045357600080fd5b506101db610462366004612bce565b611cef565b34801561047357600080fd5b506101db610482366004612ee7565b611d54565b34801561049357600080fd5b506101db6104a2366004612dba565b611e78565b3480156104b357600080fd5b506104c76104c23660046131a2565b611fc3565b6040516101fd959493929190613941565b3480156104e457600080fd5b506102db6104f33660046131c0565b612002565b34801561050457600080fd5b506101db610513366004612c9a565b612022565b34801561052457600080fd5b506105386105333660046131a2565b612086565b6040516101fd9190613757565b84336001600160a01b038216148061056757506004546001600160a01b031633145b61057057600080fd5b84600054811061057f57600080fd5b6000868152600160205260409020600701548690869081106105a057600080fd5b8888876001600083815260200190815260200160002060010181815481106105c457fe5b6000918252602090912001546001600160a01b038481169116146105e757600080fd5b600454600160a01b900460ff16156105fe57600080fd5b6004805460ff60a01b1916600160a01b17905560008b8152600160208190526040822060068101805460ff191690921790915560070180548c90811061064057fe5b6000918252602090912060029091020180548a519192501461066157600080fd5b60005b81548110156106db5760008a828151811061067b57fe5b602002602001015111156106d3576106d38d83600001838154811061069c57fe5b9060005260206000200160009054906101000a90046001600160a01b03168c84815181106106c657fe5b602002602001015161230e565b600101610664565b507f4d54a229a804a61c5213bec479b1407ce270c57b24fd8299d6ea98b6b2ab05208c8c8f8c60405161071194939291906139d0565b60405180910390a150506004805460ff60a01b191690555050505050505050505050565b6000806107478a8a8a8a8a8a8a610c8a565b90506107548a828561155a565b9998505050505050505050565b84336001600160a01b038216148061078357506004546001600160a01b031633145b61078c57600080fd5b84600054811061079b57600080fd5b6000868152600160205260409020805488918891889190829081106107bc57fe5b6000918252602090912001546001600160a01b038481169116146107df57600080fd5b6000898152600160208190526040909120015489908890811061080157600080fd5b87600160008d81526020019081526020016000206001018a8154811061082357fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055507f43a4e4542993b08827123085341d156186f40b28b6343f301c246a1d5f49d9f78b8d600160008f815260200190815260200160002060010160405161089993929190613822565b60405180910390a1505050505050505050505050565b83336001600160a01b03821614806108d157506004546001600160a01b031633145b6108da57600080fd5b8360005481106108e957600080fd5b60008581526001602052604090208054879187918791908290811061090a57fe5b6000918252602090912001546001600160a01b0384811691161461092d57600080fd5b600454600160a01b900460ff161561094457600080fd5b6004805460ff60a01b1916600160a01b17815560008981526001602052604090200154158061098457506000888152600160205260409020600401546014145b156109df57855160011461099757600080fd5b6000888152600160205260408120600501548751909188916109b557fe5b602002602001015111156109c857600080fd5b6109da888a886000815181106106c657fe5b610a4e565b60005b8651811015610a4c57600260008a81526020019081526020016000206000888381518110610a0c57fe5b60209081029190910181015182528101919091526040016000205460ff16610a3357600080fd5b610a44898b8984815181106106c657fe5b6001016109e2565b505b7fc9db45671da2b4994b84d56a8832d4e0bcc3722230dffce39df6886f9ec2d7d6888a88604051610a81939291906137f5565b60405180910390a150506004805460ff60a01b1916905550505050505050565b82336001600160a01b0382161480610ac357506004546001600160a01b031633145b610acc57600080fd5b826000548110610adb57600080fd5b7fd54885079d7edd9bea77e3f09e83bd65a121db3d3a14892227e0d2cffe73970f848685604051610b0e93929190613906565b60405180910390a15050505050565b83336001600160a01b0382161480610b3f57506004546001600160a01b031633145b610b4857600080fd5b836000548110610b5757600080fd5b600085815260016020526040902054859085908110610b7557600080fd5b600087815260016020526040902080548991899189919082908110610b9657fe5b6000918252602090912001546001600160a01b03848116911614610bb957600080fd5b60005b8851811015610c2c57600160008c8152602001908152602001600020600101898281518110610be757fe5b60209081029190910181015182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b039093169290921790915501610bbc565b507f43a4e4542993b08827123085341d156186f40b28b6343f301c246a1d5f49d9f78a8c600160008e8152602001908152602001600020600101604051610c7593929190613822565b60405180910390a15050505050505050505050565b600087336001600160a01b0382161480610cae57506004546001600160a01b031633145b610cb757600080fd5b821580610cc45750826014145b80610cd05750826102d1145b610cd957600080fd5b600088511180610cea575060008751115b610cf357600080fd5b600080548082526001602090815260409092208a5191929091610d1b918391908d01906125d8565b508851610d3190600183019060208c01906125d8565b5060028101879055600481018590558415610d64576003810180546001600160a01b0319166001600160a01b0388161790555b600054610d7890600163ffffffff6125a816565b6000556040517feea6c8039af43860e84bc876245a0d129d92b942390135da1051b219149c100e90610db99084908e908e908e908e908e908e908e90613776565b60405180910390a1509998505050505050505050565b6003546001600160a01b03163314610de657600080fd5b6004546001600160a01b031615610dfc57600080fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b600454600160a01b900460ff1681565b83336001600160a01b0382161480610e5057506004546001600160a01b031633145b610e5957600080fd5b836000548110610e6857600080fd5b600085815260016020526040902054859085908110610e8657600080fd5b600087815260016020526040902080548991899189919082908110610ea757fe5b6000918252602090912001546001600160a01b03848116911614610eca57600080fd5b7fdc41a74d84036920901cf73075fc7f917d75b1f5dbd7955c12f92033362472338a8c8a604051610c7593929190613906565b60005481565b6003546001600160a01b031681565b82336001600160a01b0382161480610f3457506004546001600160a01b031633145b610f3d57600080fd5b826000548110610f4c57600080fd5b600084815260016020526040902060080154849084908110610f6d57600080fd5b868686600160008381526020019081526020016000206008018181548110610f9157fe5b60009182526020909120600390910201546001600160a01b03848116911614610fb957600080fd5b600089815260016020526040902060060154899060ff1615610fda57600080fd5b60008a815260016020526040902060080180548b918b9182908110610ffb57fe5b600091825260209091206002600390920201015460ff161561101c57600080fd5b600454600160a01b900460ff161561103357600080fd5b6004805460ff60a01b1916600160a01b17905560008c815260016020526040902060020154421161106357600080fd5b60008c815260016020526040812060080180548d90811061108057fe5b600091825260209091206002600390920201908101805460ff191660019081179091558154908201549192506110c1918f916001600160a01b03169061230e565b7ffb1da5cbf027ad18b7c1f786bf81e9920cc0db09d7e299a8e4f3dbb64ce32f018d8d6040516110f292919061398d565b60405180910390a150506004805460ff60a01b19169055505050505050505050505050565b83336001600160a01b038216148061113957506004546001600160a01b031633145b61114257600080fd5b83600054811061115157600080fd5b600085815260016020526040902060020154421061116e57600080fd5b600084511161117c57600080fd5b600085815260016020818152604080842081518083019092528882526001600160a01b038b1682840152600701805493840180825590855293829020815180519294600202909101926111d4928492909101906125d8565b50602091820151600191820180546001600160a01b0319166001600160a01b03909216919091179055600088815291526040908190206007015490517fb9fb09db36801e95ddbb658a96b7ecf81b9b7e105e4a82d8887b1e7eadd45b84925061124b91889160001990910190889088908c90613a4b565b60405180910390a1505050505050565b84336001600160a01b038216148061127d57506004546001600160a01b031633145b61128657600080fd5b84600054811061129557600080fd5b6000868152600160205260409020548690859081106112b357600080fd5b600088815260016020526040902080548a918a918a9190829081106112d457fe5b6000918252602090912001546001600160a01b038481169116146112f757600080fd5b60008b8152600160205260409020548a1080611311575089155b61131a57600080fd5b60008b815260016020526040902080548991908b90811061133757fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055507fc969620b1b90646a0d597289d87dcf90d4cc4e554bddf0c003dfc05954a6d3598b8d600160008f8152602001908152602001600020600001604051610899939291906138be565b83336001600160a01b03821614806113cf57506004546001600160a01b031633145b6113d857600080fd5b8360005481106113e757600080fd5b60008581526001602052604090208054879187918791908290811061140857fe5b6000918252602090912001546001600160a01b0384811691161461142b57600080fd5b600454600160a01b900460ff161561144257600080fd5b6004805460ff60a01b1916600160a01b17905560005b865181101561152657600089815260016020526040902060080154875188908390811061148157fe5b60200260200101511061149357600080fd5b6000600160008b81526020019081526020016000206008018883815181106114b757fe5b6020026020010151815481106114c957fe5b60009182526020909120600390910201600281015490915060ff16156114ee57600080fd5b60028101805460ff1916600190811790915581549082015461151d918c916001600160a01b039091169061230e565b50600101611458565b507fc55c552370ad68c2faed667a8224a8ab373e39368872484a40619b1e884336de888a88604051610a81939291906138eb565b82336001600160a01b038216148061157c57506004546001600160a01b031633145b61158557600080fd5b82600054811061159457600080fd5b600454600160a01b900460ff16156115ab57600080fd5b6004805460ff60a01b1916600160a01b179055826115c857600080fd5b600084815260016020818152604080842081516060810183526001600160a01b038b811682528185018a815293820187815260088401805480890182559089528689209351600390910290930180546001600160a01b03191693909216929092178155925183860155516002909201805460ff19169215159290921790915592879052526004015461169957600084815260016020526040902060050154611676908463ffffffff6125a816565b60008581526001602052604090206005015534831461169457600080fd5b611852565b60008481526001602052604090206004015460141415611791576000848152600160205260409020600501546116d5908463ffffffff6125a816565b60008581526001602052604090206005015534156116f257600080fd5b600084815260016020526040908190206003015490516323b872dd60e01b81526001600160a01b03909116906323b872dd90611736908890309088906004016136eb565b602060405180830381600087803b15801561175057600080fd5b505af1158015611764573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117889190810190613184565b61169457600080fd5b6000848152600160205260409020600401546102d114156101b65760008481526002602090815260408083208684529091529020805460ff1916600117905534156117db57600080fd5b600084815260016020526040908190206003015490516323b872dd60e01b81526001600160a01b03909116906323b872dd9061181f908890309088906004016136eb565b600060405180830381600087803b15801561183957600080fd5b505af115801561184d573d6000803e3d6000fd5b505050505b600084815260016020526040908190206008015490517f7431e5e30247dcb2379eab9b0e60e49038c5ddb5cac27f27a17e950c0220a6939161189e91879160001901908990889061399b565b60405180910390a150506004805460ff60a01b19169055505050565b83336001600160a01b03821614806118dc57506004546001600160a01b031633145b6118e557600080fd5b8360005481106118f457600080fd5b60008581526001602052604090205485908590811061191257600080fd5b60008781526001602052604090208054899189918991908290811061193357fe5b6000918252602090912001546001600160a01b0384811691161461195657600080fd5b60008a81526001602052604090819020600201899055517f946e60a77ecf689f0595d6dcd6cf1537564a1d82472a69a3be00f7e8cb6f8b7d90610c75908c908e908c90613933565b86336001600160a01b03821614806119c057506004546001600160a01b031633145b6119c957600080fd5b60005487106119d757600080fd5b60008781526001602052604090205486106119f157600080fd5b6000878152600160205260409020805487908110611a0b57fe5b6000918252602090912001546001600160a01b03898116911614611a2e57600080fd5b600085511180611a3f575060008451115b611a4857600080fd5b60008781526001602090815260409091208651611a67928801906125d8565b5060008781526001602081815260409092208651611a8d939190920191908701906125d8565b5060008781526001602052604090819020600201839055517f588a0d2c7e36ab3050cd6b8b12441530ae5407613e9f2a62dc10bc43a302ed9c90611adc9089908b90899089908990899061384f565b60405180910390a15050505050505050565b85336001600160a01b0382161480611b1057506004546001600160a01b031633145b611b1957600080fd5b600086815260016020526040902080548891889188919082908110611b3a57fe5b6000918252602090912001546001600160a01b03848116911614611b5d57600080fd5b6000548910611b6b57600080fd5b600089815260016020819052604090912001548610611b8957600080fd5b6000898152600160205260409020548710611ba357600080fd5b6000898152600160205260409020805486919089908110611bc057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555084600160008b81526020019081526020016000206001018781548110611c1057fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b0394909416939093179092558a8152600190915260409081902090517fc969620b1b90646a0d597289d87dcf90d4cc4e554bddf0c003dfc05954a6d35991611c7c918c918e916138be565b60405180910390a17f43a4e4542993b08827123085341d156186f40b28b6343f301c246a1d5f49d9f7898b600160008d8152602001908152602001600020600101604051611ccc93929190613822565b60405180910390a150505050505050505050565b6004546001600160a01b031681565b85336001600160a01b0382161480611d1157506004546001600160a01b031633145b611d1a57600080fd5b611d2687878787611117565b600086815260016020526040902060070154611d4b9088908890600019018686610545565b50505050505050565b84336001600160a01b0382161480611d7657506004546001600160a01b031633145b611d7f57600080fd5b846000548110611d8e57600080fd5b600086815260016020526040902060070154869086908110611daf57600080fd5b888888600160008381526020019081526020016000206007018181548110611dd357fe5b60009182526020909120600160029092020101546001600160a01b03848116911614611dfe57600080fd5b60008b815260016020526040902060070180548a91908c908110611e1e57fe5b90600052602060002090600202016000019080519060200190611e429291906125d8565b507fde0d52ad68b0a792924de426fb3a2f2c1ce908be531894e35d85e533fbb8ec168b8b8b8b6040516108999493929190613a0a565b83336001600160a01b0382161480611e9a57506004546001600160a01b031633145b611ea357600080fd5b836000548110611eb257600080fd5b600085815260016020526040902054859085908110611ed057600080fd5b600087815260016020526040902080548991899189919082908110611ef157fe5b6000918252602090912001546001600160a01b03848116911614611f1457600080fd5b60005b8851811015611f815760008b815260016020526040902089518a9083908110611f3c57fe5b60209081029190910181015182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b039093169290921790915501611f17565b5060008a8152600160205260409081902090517fc969620b1b90646a0d597289d87dcf90d4cc4e554bddf0c003dfc05954a6d35991610c75918d918f916138be565b6001602052600090815260409020600281015460038201546004830154600584015460069094015492936001600160a01b039092169290919060ff1685565b600260209081526000928352604080842090915290825290205460ff1681565b82336001600160a01b038216148061204457506004546001600160a01b031633145b61204d57600080fd5b60005b825181101561207f57612077858585848151811061206a57fe5b6020026020010151610f12565b600101612050565b5050505050565b61208e61263d565b6000828152600160209081526040918290208251815461014093810282018401909452610120810184815290939192849284918401828280156120fa57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116120dc575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561215c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161213e575b5050509183525050600282015460208083019190915260038301546001600160a01b03166040808401919091526004840154606084015260058401546080840152600684015460ff16151560a084015260078401805482518185028101850190935280835260c090940193919290919060009084015b8282101561227957838290600052602060002090600202016040518060400160405290816000820180548060200260200160405190810160405280929190818152602001828054801561224e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612230575b50505091835250506001918201546001600160a01b03166020918201529183529290920191016121d2565b50505050815260200160088201805480602002602001604051908101604052809291908181526020016000905b82821015612300576000848152602090819020604080516060810182526003860290920180546001600160a01b031683526001808201548486015260029091015460ff1615159183019190915290835290920191016122a6565b505050915250909392505050565b6000838152600160205260409020600401546123c0576000811161233157600080fd5b60008381526001602052604090206005015481111561234f57600080fd5b600083815260016020526040902060050154612371908263ffffffff6125c316565b6000848152600160205260408082206005019290925590516001600160a01b0384169183156108fc02918491818181858888f193505050501580156123ba573d6000803e3d6000fd5b506125a3565b600083815260016020526040902060040154601414156124d357600081116123e757600080fd5b60008381526001602052604090206005015481111561240557600080fd5b600083815260016020526040902060050154612427908263ffffffff6125c316565b600084815260016020526040908190206005810192909255600390910154905163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906124739085908590600401613713565b602060405180830381600087803b15801561248d57600080fd5b505af11580156124a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506124c59190810190613184565b6124ce57600080fd5b6125a3565b6000838152600160205260409020600401546102d114156101b657600083815260026020908152604080832084845290915290205460ff1661251457600080fd5b60008381526002602090815260408083208484528252808320805460ff191690558583526001909152908190206003015490516323b872dd60e01b81526001600160a01b03909116906323b872dd906125759030908690869060040161372e565b600060405180830381600087803b15801561258f57600080fd5b505af1158015611d4b573d6000803e3d6000fd5b505050565b6000828201838110156125ba57600080fd5b90505b92915050565b6000828211156125d257600080fd5b50900390565b82805482825590600052602060002090810192821561262d579160200282015b8281111561262d57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906125f8565b50612639929150612694565b5090565b60405180610120016040528060608152602001606081526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160001515815260200160608152602001606081525090565b6126b891905b808211156126395780546001600160a01b031916815560010161269a565b90565b80356125bd81613bbf565b600082601f8301126126d757600080fd5b81356126ea6126e582613ac1565b613a9b565b9150818183526020840193506020810190508385602084028201111561270f57600080fd5b60005b8381101561273b578161272588826126bb565b8452506020928301929190910190600101612712565b5050505092915050565b600082601f83011261275657600080fd5b81356127646126e582613ac1565b9150818183526020840193506020810190508385602084028201111561278957600080fd5b60005b8381101561273b578161279f88826126bb565b845250602092830192919091019060010161278c565b600082601f8301126127c657600080fd5b81356127d46126e582613ac1565b915081818352602084019350602081019050838560208402820111156127f957600080fd5b60005b8381101561273b578161280f888261287f565b84525060209283019291909101906001016127fc565b80516125bd81613bd6565b600082601f83011261284157600080fd5b813561284f6126e582613ae1565b9150808252602083016020830185838301111561286b57600080fd5b612876838284613b5e565b50505092915050565b80356125bd81613bdf565b60006020828403121561289c57600080fd5b60006128a884846126bb565b949350505050565b600080600080600080600060e0888a0312156128cb57600080fd5b60006128d78a8a6126bb565b97505060208801356001600160401b038111156128f357600080fd5b6128ff8a828b01612745565b96505060408801356001600160401b0381111561291b57600080fd5b6129278a828b016126c6565b95505060608801356001600160401b0381111561294357600080fd5b61294f8a828b01612830565b94505060806129608a828b0161287f565b93505060a06129718a828b016126bb565b92505060c06129828a828b0161287f565b91505092959891949750929550565b600080600080600080600080610100898b0312156129ae57600080fd5b60006129ba8b8b6126bb565b98505060208901356001600160401b038111156129d657600080fd5b6129e28b828c01612745565b97505060408901356001600160401b038111156129fe57600080fd5b612a0a8b828c016126c6565b96505060608901356001600160401b03811115612a2657600080fd5b612a328b828c01612830565b9550506080612a438b828c0161287f565b94505060a0612a548b828c016126bb565b93505060c0612a658b828c0161287f565b92505060e0612a768b828c0161287f565b9150509295985092959890939650565b600080600060608486031215612a9b57600080fd5b6000612aa786866126bb565b9350506020612ab88682870161287f565b9250506040612ac98682870161287f565b9150509250925092565b60008060008060808587031215612ae957600080fd5b6000612af587876126bb565b9450506020612b068782880161287f565b9350506040612b178782880161287f565b92505060608501356001600160401b03811115612b3357600080fd5b612b3f878288016127b5565b91505092959194509250565b60008060008060808587031215612b6157600080fd5b6000612b6d87876126bb565b9450506020612b7e8782880161287f565b93505060408501356001600160401b03811115612b9a57600080fd5b612ba687828801612745565b92505060608501356001600160401b03811115612bc257600080fd5b612b3f87828801612830565b60008060008060008060c08789031215612be757600080fd5b6000612bf389896126bb565b9650506020612c0489828a0161287f565b95505060408701356001600160401b03811115612c2057600080fd5b612c2c89828a01612745565b94505060608701356001600160401b03811115612c4857600080fd5b612c5489828a01612830565b9350506080612c6589828a0161287f565b92505060a08701356001600160401b03811115612c8157600080fd5b612c8d89828a016127b5565b9150509295509295509295565b600080600060608486031215612caf57600080fd5b6000612cbb86866126bb565b9350506020612ccc8682870161287f565b92505060408401356001600160401b03811115612ce857600080fd5b612ac9868287016127b5565b600080600060608486031215612d0957600080fd5b6000612d1586866126bb565b9350506020612d268682870161287f565b92505060408401356001600160401b03811115612d4257600080fd5b612ac986828701612830565b60008060008060808587031215612d6457600080fd5b6000612d7087876126bb565b9450506020612d818782880161287f565b9350506040612d928782880161287f565b92505060608501356001600160401b03811115612dae57600080fd5b612b3f878288016126c6565b60008060008060808587031215612dd057600080fd5b6000612ddc87876126bb565b9450506020612ded8782880161287f565b9350506040612dfe8782880161287f565b92505060608501356001600160401b03811115612e1a57600080fd5b612b3f87828801612745565b600080600080600080600060e0888a031215612e4157600080fd5b6000612e4d8a8a6126bb565b9750506020612e5e8a828b0161287f565b9650506040612e6f8a828b0161287f565b95505060608801356001600160401b03811115612e8b57600080fd5b612e978a828b01612745565b94505060808801356001600160401b03811115612eb357600080fd5b612ebf8a828b01612745565b93505060a08801356001600160401b03811115612edb57600080fd5b6129718a828b01612830565b600080600080600060a08688031215612eff57600080fd5b6000612f0b88886126bb565b9550506020612f1c8882890161287f565b9450506040612f2d8882890161287f565b93505060608601356001600160401b03811115612f4957600080fd5b612f5588828901612745565b92505060808601356001600160401b03811115612f7157600080fd5b612f7d88828901612830565b9150509295509295909350565b60008060008060808587031215612fa057600080fd5b6000612fac87876126bb565b9450506020612fbd8782880161287f565b9350506040612ba68782880161287f565b60008060008060808587031215612fe457600080fd5b6000612ff087876126bb565b94505060206130018782880161287f565b93505060406130128782880161287f565b9250506060612b3f8782880161287f565b600080600080600060a0868803121561303b57600080fd5b600061304788886126bb565b95505060206130588882890161287f565b94505060406130698882890161287f565b935050606061307a8882890161287f565b9250506080612f7d888289016126bb565b600080600080600060a086880312156130a357600080fd5b60006130af88886126bb565b95505060206130c08882890161287f565b94505060406130d18882890161287f565b93505060606130e28882890161287f565b92505060808601356001600160401b038111156130fe57600080fd5b612f7d888289016127b5565b60008060008060008060c0878903121561312357600080fd5b600061312f89896126bb565b965050602061314089828a0161287f565b955050604061315189828a0161287f565b945050606061316289828a0161287f565b935050608061317389828a0161287f565b92505060a0612c8d89828a016126bb565b60006020828403121561319657600080fd5b60006128a88484612825565b6000602082840312156131b457600080fd5b60006128a8848461287f565b600080604083850312156131d357600080fd5b60006131df858561287f565b92505060206131f08582860161287f565b9150509250929050565b60006132068383613250565b505060200190565b600061321a8383613662565b505060600190565b600061322e838361369f565b9392505050565b600061320683836136d4565b61324a81613b4d565b82525050565b61324a81613b3d565b600061326482613b1a565b61326e8185613b28565b935061327983613b08565b8060005b838110156132a757815161329188826131fa565b975061329c83613b08565b92505060010161327d565b509495945050505050565b60006132bd82613b1a565b6132c78185613b28565b93506132d283613b08565b8060005b838110156132a75781516132ea88826131fa565b97506132f583613b08565b9250506001016132d6565b600061330b82613b1e565b6133158185613b28565b935061332083613b0e565b8060005b838110156132a75761333582613ba9565b61333f88826131fa565b975061334a83613b22565b925050600101613324565b600061336082613b1a565b61336a8185613b28565b935061337583613b08565b8060005b838110156132a757815161338d88826131fa565b975061339883613b08565b925050600101613379565b60006133ae82613b1a565b6133b88185613b28565b93506133c383613b08565b8060005b838110156132a75781516133db88826131fa565b97506133e683613b08565b9250506001016133c7565b60006133fc82613b1e565b6134068185613b28565b935061341183613b0e565b8060005b838110156132a75761342682613ba9565b61343088826131fa565b975061343b83613b22565b925050600101613415565b600061345182613b1a565b61345b8185613b28565b935061346683613b08565b8060005b838110156132a757815161347e888261320e565b975061348983613b08565b92505060010161346a565b600061349f82613b1a565b6134a98185613b28565b9350836020820285016134bb85613b08565b8060005b858110156134f557848403895281516134d88582613222565b94506134e383613b08565b60209a909a01999250506001016134bf565b5091979650505050505050565b600061350d82613b1a565b6135178185613b28565b935061352283613b08565b8060005b838110156132a757815161353a8882613235565b975061354583613b08565b925050600101613526565b61324a81613b48565b600061356482613b1a565b61356e8185613b28565b935061357e818560208601613b6a565b61358781613bb5565b9093019392505050565b8051610120808452600091908401906135aa82826133a3565b915050602083015184820360208601526135c482826132b2565b91505060408301516135d960408601826136d4565b5060608301516135ec6060860182613250565b5060808301516135ff60808601826136d4565b5060a083015161361260a08601826136d4565b5060c083015161362560c0860182613550565b5060e083015184820360e086015261363d8282613494565b9150506101008301518482036101008601526136598282613446565b95945050505050565b805160608301906136738482613250565b50602082015161368660208501826136d4565b5060408201516136996040850182613550565b50505050565b80516040808452600091908401906136b782826133a3565b91505060208301516136cc6020860182613250565b509392505050565b61324a816126b8565b602081016125bd8284613250565b606081016136f98286613241565b6137066020830185613250565b6128a860408301846136d4565b604081016137218285613241565b61322e60208301846136d4565b6060810161373c8286613250565b6137066020830185613241565b602081016125bd8284613550565b6020808252810161322e8184613591565b602081016125bd82846136d4565b6101008101613785828b6136d4565b613792602083018a613250565b81810360408301526137a48189613355565b905081810360608301526137b88188613259565b905081810360808301526137cc8187613559565b90506137db60a08301866136d4565b6137e860c0830185613250565b61075460e08301846136d4565b6060810161380382866136d4565b6138106020830185613241565b81810360408301526136598184613502565b6060810161383082866136d4565b61383d6020830185613250565b81810360408301526136598184613300565b60c0810161385d82896136d4565b61386a6020830188613250565b818103604083015261387c8187613355565b905081810360608301526138908186613355565b905081810360808301526138a48185613559565b90506138b360a08301846136d4565b979650505050505050565b606081016138cc82866136d4565b6138d96020830185613250565b818103604083015261365981846133f1565b606081016138f982866136d4565b6138106020830185613250565b6060810161391482866136d4565b6139216020830185613250565b81810360408301526136598184613559565b606081016136f982866136d4565b60a0810161394f82886136d4565b61395c6020830187613250565b61396960408301866136d4565b61397660608301856136d4565b6139836080830184613550565b9695505050505050565b6040810161372182856136d4565b608081016139a982876136d4565b6139b660208301866136d4565b6139c36040830185613250565b61365960608301846136d4565b608081016139de82876136d4565b6139eb60208301866136d4565b6139f86040830185613250565b81810360608301526139838184613502565b60808101613a1882876136d4565b613a2560208301866136d4565b8181036040830152613a378185613355565b905081810360608301526139838184613559565b60a08101613a5982886136d4565b613a6660208301876136d4565b8181036040830152613a788186613355565b90508181036060830152613a8c8185613559565b90506139836080830184613250565b6040518181016001600160401b0381118282101715613ab957600080fd5b604052919050565b60006001600160401b03821115613ad757600080fd5b5060209081020190565b60006001600160401b03821115613af757600080fd5b506020601f91909101601f19160190565b60200190565b60009081526020902090565b5190565b5490565b60010190565b90815260200190565b6001600160a01b031690565b60006125bd82613b31565b151590565b60006125bd8260006125bd82613b3d565b82818337506000910152565b60005b83811015613b85578181015183820152602001613b6d565b838111156136995750506000910152565b60006125bd613ba4836126b8565b613b31565b60006125bd8254613b96565b601f01601f191690565b613bc881613b3d565b8114613bd357600080fd5b50565b613bc881613b48565b613bc8816126b856fea365627a7a723058200d43a38c6b7510056a775b9270f98e56edd47d5c9580ff47d8e3e682414f57b56c6578706572696d656e74616cf564736f6c63430005090040", - "deployedBytecode": "0x6080604052600436106101b65760003560e01c80639e64d9bf116100ec578063c22215b81161008a578063dc2f874411610064578063dc2f8744146104a7578063ec41e4cd146104d8578063edba7013146104f8578063ee8c4bbf14610518576101b6565b8063c22215b814610447578063c496045014610467578063c6a8b42b14610487576101b6565b8063aa17aaef116100c6578063aa17aaef146103d2578063b178d768146103f2578063bae3755614610412578063c1107c1114610432576101b6565b80639e64d9bf1461037f578063a071fbd51461039f578063a08f793c146103bf576101b6565b806361cf22131161015957806388db0f521161013357806388db0f52146103085780638da5cb5b1461031d57806393c1ccc91461033f57806397d766651461035f576101b6565b806361cf2213146102a6578063720dc00c146102c65780637ef8213c146102e8576101b6565b80633756f3c8116101955780633756f3c8146102265780634ac4e25a146102465780634daf1bb514610266578063567b3d2e14610286576101b6565b8062f27e38146101bb57806306060ae3146101dd5780632092e25914610206575b600080fd5b3480156101c757600080fd5b506101db6101d636600461308b565b610545565b005b6101f06101eb366004612991565b610735565b6040516101fd9190613768565b60405180910390f35b34801561021257600080fd5b506101db610221366004613023565b610761565b34801561023257600080fd5b506101db610241366004612ad3565b6108af565b34801561025257600080fd5b506101db610261366004612cf4565b610aa1565b34801561027257600080fd5b506101db610281366004612d4e565b610b1d565b34801561029257600080fd5b506101f06102a13660046128b0565b610c8a565b3480156102b257600080fd5b506101db6102c136600461288a565b610dcf565b3480156102d257600080fd5b506102db610e1e565b6040516101fd9190613749565b3480156102f457600080fd5b506101db610303366004612f8a565b610e2e565b34801561031457600080fd5b506101f0610efd565b34801561032957600080fd5b50610332610f03565b6040516101fd91906136dd565b34801561034b57600080fd5b506101db61035a366004612a86565b610f12565b34801561036b57600080fd5b506101db61037a366004612b4b565b611117565b34801561038b57600080fd5b506101db61039a366004613023565b61125b565b3480156103ab57600080fd5b506101db6103ba366004612ad3565b6113ad565b6101db6103cd366004612a86565b61155a565b3480156103de57600080fd5b506101db6103ed366004612fce565b6118ba565b3480156103fe57600080fd5b506101db61040d366004612e26565b61199e565b34801561041e57600080fd5b506101db61042d36600461310a565b611aee565b34801561043e57600080fd5b50610332611ce0565b34801561045357600080fd5b506101db610462366004612bce565b611cef565b34801561047357600080fd5b506101db610482366004612ee7565b611d54565b34801561049357600080fd5b506101db6104a2366004612dba565b611e78565b3480156104b357600080fd5b506104c76104c23660046131a2565b611fc3565b6040516101fd959493929190613941565b3480156104e457600080fd5b506102db6104f33660046131c0565b612002565b34801561050457600080fd5b506101db610513366004612c9a565b612022565b34801561052457600080fd5b506105386105333660046131a2565b612086565b6040516101fd9190613757565b84336001600160a01b038216148061056757506004546001600160a01b031633145b61057057600080fd5b84600054811061057f57600080fd5b6000868152600160205260409020600701548690869081106105a057600080fd5b8888876001600083815260200190815260200160002060010181815481106105c457fe5b6000918252602090912001546001600160a01b038481169116146105e757600080fd5b600454600160a01b900460ff16156105fe57600080fd5b6004805460ff60a01b1916600160a01b17905560008b8152600160208190526040822060068101805460ff191690921790915560070180548c90811061064057fe5b6000918252602090912060029091020180548a519192501461066157600080fd5b60005b81548110156106db5760008a828151811061067b57fe5b602002602001015111156106d3576106d38d83600001838154811061069c57fe5b9060005260206000200160009054906101000a90046001600160a01b03168c84815181106106c657fe5b602002602001015161230e565b600101610664565b507f4d54a229a804a61c5213bec479b1407ce270c57b24fd8299d6ea98b6b2ab05208c8c8f8c60405161071194939291906139d0565b60405180910390a150506004805460ff60a01b191690555050505050505050505050565b6000806107478a8a8a8a8a8a8a610c8a565b90506107548a828561155a565b9998505050505050505050565b84336001600160a01b038216148061078357506004546001600160a01b031633145b61078c57600080fd5b84600054811061079b57600080fd5b6000868152600160205260409020805488918891889190829081106107bc57fe5b6000918252602090912001546001600160a01b038481169116146107df57600080fd5b6000898152600160208190526040909120015489908890811061080157600080fd5b87600160008d81526020019081526020016000206001018a8154811061082357fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055507f43a4e4542993b08827123085341d156186f40b28b6343f301c246a1d5f49d9f78b8d600160008f815260200190815260200160002060010160405161089993929190613822565b60405180910390a1505050505050505050505050565b83336001600160a01b03821614806108d157506004546001600160a01b031633145b6108da57600080fd5b8360005481106108e957600080fd5b60008581526001602052604090208054879187918791908290811061090a57fe5b6000918252602090912001546001600160a01b0384811691161461092d57600080fd5b600454600160a01b900460ff161561094457600080fd5b6004805460ff60a01b1916600160a01b17815560008981526001602052604090200154158061098457506000888152600160205260409020600401546014145b156109df57855160011461099757600080fd5b6000888152600160205260408120600501548751909188916109b557fe5b602002602001015111156109c857600080fd5b6109da888a886000815181106106c657fe5b610a4e565b60005b8651811015610a4c57600260008a81526020019081526020016000206000888381518110610a0c57fe5b60209081029190910181015182528101919091526040016000205460ff16610a3357600080fd5b610a44898b8984815181106106c657fe5b6001016109e2565b505b7fc9db45671da2b4994b84d56a8832d4e0bcc3722230dffce39df6886f9ec2d7d6888a88604051610a81939291906137f5565b60405180910390a150506004805460ff60a01b1916905550505050505050565b82336001600160a01b0382161480610ac357506004546001600160a01b031633145b610acc57600080fd5b826000548110610adb57600080fd5b7fd54885079d7edd9bea77e3f09e83bd65a121db3d3a14892227e0d2cffe73970f848685604051610b0e93929190613906565b60405180910390a15050505050565b83336001600160a01b0382161480610b3f57506004546001600160a01b031633145b610b4857600080fd5b836000548110610b5757600080fd5b600085815260016020526040902054859085908110610b7557600080fd5b600087815260016020526040902080548991899189919082908110610b9657fe5b6000918252602090912001546001600160a01b03848116911614610bb957600080fd5b60005b8851811015610c2c57600160008c8152602001908152602001600020600101898281518110610be757fe5b60209081029190910181015182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b039093169290921790915501610bbc565b507f43a4e4542993b08827123085341d156186f40b28b6343f301c246a1d5f49d9f78a8c600160008e8152602001908152602001600020600101604051610c7593929190613822565b60405180910390a15050505050505050505050565b600087336001600160a01b0382161480610cae57506004546001600160a01b031633145b610cb757600080fd5b821580610cc45750826014145b80610cd05750826102d1145b610cd957600080fd5b600088511180610cea575060008751115b610cf357600080fd5b600080548082526001602090815260409092208a5191929091610d1b918391908d01906125d8565b508851610d3190600183019060208c01906125d8565b5060028101879055600481018590558415610d64576003810180546001600160a01b0319166001600160a01b0388161790555b600054610d7890600163ffffffff6125a816565b6000556040517feea6c8039af43860e84bc876245a0d129d92b942390135da1051b219149c100e90610db99084908e908e908e908e908e908e908e90613776565b60405180910390a1509998505050505050505050565b6003546001600160a01b03163314610de657600080fd5b6004546001600160a01b031615610dfc57600080fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b600454600160a01b900460ff1681565b83336001600160a01b0382161480610e5057506004546001600160a01b031633145b610e5957600080fd5b836000548110610e6857600080fd5b600085815260016020526040902054859085908110610e8657600080fd5b600087815260016020526040902080548991899189919082908110610ea757fe5b6000918252602090912001546001600160a01b03848116911614610eca57600080fd5b7fdc41a74d84036920901cf73075fc7f917d75b1f5dbd7955c12f92033362472338a8c8a604051610c7593929190613906565b60005481565b6003546001600160a01b031681565b82336001600160a01b0382161480610f3457506004546001600160a01b031633145b610f3d57600080fd5b826000548110610f4c57600080fd5b600084815260016020526040902060080154849084908110610f6d57600080fd5b868686600160008381526020019081526020016000206008018181548110610f9157fe5b60009182526020909120600390910201546001600160a01b03848116911614610fb957600080fd5b600089815260016020526040902060060154899060ff1615610fda57600080fd5b60008a815260016020526040902060080180548b918b9182908110610ffb57fe5b600091825260209091206002600390920201015460ff161561101c57600080fd5b600454600160a01b900460ff161561103357600080fd5b6004805460ff60a01b1916600160a01b17905560008c815260016020526040902060020154421161106357600080fd5b60008c815260016020526040812060080180548d90811061108057fe5b600091825260209091206002600390920201908101805460ff191660019081179091558154908201549192506110c1918f916001600160a01b03169061230e565b7ffb1da5cbf027ad18b7c1f786bf81e9920cc0db09d7e299a8e4f3dbb64ce32f018d8d6040516110f292919061398d565b60405180910390a150506004805460ff60a01b19169055505050505050505050505050565b83336001600160a01b038216148061113957506004546001600160a01b031633145b61114257600080fd5b83600054811061115157600080fd5b600085815260016020526040902060020154421061116e57600080fd5b600084511161117c57600080fd5b600085815260016020818152604080842081518083019092528882526001600160a01b038b1682840152600701805493840180825590855293829020815180519294600202909101926111d4928492909101906125d8565b50602091820151600191820180546001600160a01b0319166001600160a01b03909216919091179055600088815291526040908190206007015490517fb9fb09db36801e95ddbb658a96b7ecf81b9b7e105e4a82d8887b1e7eadd45b84925061124b91889160001990910190889088908c90613a4b565b60405180910390a1505050505050565b84336001600160a01b038216148061127d57506004546001600160a01b031633145b61128657600080fd5b84600054811061129557600080fd5b6000868152600160205260409020548690859081106112b357600080fd5b600088815260016020526040902080548a918a918a9190829081106112d457fe5b6000918252602090912001546001600160a01b038481169116146112f757600080fd5b60008b8152600160205260409020548a1080611311575089155b61131a57600080fd5b60008b815260016020526040902080548991908b90811061133757fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055507fc969620b1b90646a0d597289d87dcf90d4cc4e554bddf0c003dfc05954a6d3598b8d600160008f8152602001908152602001600020600001604051610899939291906138be565b83336001600160a01b03821614806113cf57506004546001600160a01b031633145b6113d857600080fd5b8360005481106113e757600080fd5b60008581526001602052604090208054879187918791908290811061140857fe5b6000918252602090912001546001600160a01b0384811691161461142b57600080fd5b600454600160a01b900460ff161561144257600080fd5b6004805460ff60a01b1916600160a01b17905560005b865181101561152657600089815260016020526040902060080154875188908390811061148157fe5b60200260200101511061149357600080fd5b6000600160008b81526020019081526020016000206008018883815181106114b757fe5b6020026020010151815481106114c957fe5b60009182526020909120600390910201600281015490915060ff16156114ee57600080fd5b60028101805460ff1916600190811790915581549082015461151d918c916001600160a01b039091169061230e565b50600101611458565b507fc55c552370ad68c2faed667a8224a8ab373e39368872484a40619b1e884336de888a88604051610a81939291906138eb565b82336001600160a01b038216148061157c57506004546001600160a01b031633145b61158557600080fd5b82600054811061159457600080fd5b600454600160a01b900460ff16156115ab57600080fd5b6004805460ff60a01b1916600160a01b179055826115c857600080fd5b600084815260016020818152604080842081516060810183526001600160a01b038b811682528185018a815293820187815260088401805480890182559089528689209351600390910290930180546001600160a01b03191693909216929092178155925183860155516002909201805460ff19169215159290921790915592879052526004015461169957600084815260016020526040902060050154611676908463ffffffff6125a816565b60008581526001602052604090206005015534831461169457600080fd5b611852565b60008481526001602052604090206004015460141415611791576000848152600160205260409020600501546116d5908463ffffffff6125a816565b60008581526001602052604090206005015534156116f257600080fd5b600084815260016020526040908190206003015490516323b872dd60e01b81526001600160a01b03909116906323b872dd90611736908890309088906004016136eb565b602060405180830381600087803b15801561175057600080fd5b505af1158015611764573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506117889190810190613184565b61169457600080fd5b6000848152600160205260409020600401546102d114156101b65760008481526002602090815260408083208684529091529020805460ff1916600117905534156117db57600080fd5b600084815260016020526040908190206003015490516323b872dd60e01b81526001600160a01b03909116906323b872dd9061181f908890309088906004016136eb565b600060405180830381600087803b15801561183957600080fd5b505af115801561184d573d6000803e3d6000fd5b505050505b600084815260016020526040908190206008015490517f7431e5e30247dcb2379eab9b0e60e49038c5ddb5cac27f27a17e950c0220a6939161189e91879160001901908990889061399b565b60405180910390a150506004805460ff60a01b19169055505050565b83336001600160a01b03821614806118dc57506004546001600160a01b031633145b6118e557600080fd5b8360005481106118f457600080fd5b60008581526001602052604090205485908590811061191257600080fd5b60008781526001602052604090208054899189918991908290811061193357fe5b6000918252602090912001546001600160a01b0384811691161461195657600080fd5b60008a81526001602052604090819020600201899055517f946e60a77ecf689f0595d6dcd6cf1537564a1d82472a69a3be00f7e8cb6f8b7d90610c75908c908e908c90613933565b86336001600160a01b03821614806119c057506004546001600160a01b031633145b6119c957600080fd5b60005487106119d757600080fd5b60008781526001602052604090205486106119f157600080fd5b6000878152600160205260409020805487908110611a0b57fe5b6000918252602090912001546001600160a01b03898116911614611a2e57600080fd5b600085511180611a3f575060008451115b611a4857600080fd5b60008781526001602090815260409091208651611a67928801906125d8565b5060008781526001602081815260409092208651611a8d939190920191908701906125d8565b5060008781526001602052604090819020600201839055517f588a0d2c7e36ab3050cd6b8b12441530ae5407613e9f2a62dc10bc43a302ed9c90611adc9089908b90899089908990899061384f565b60405180910390a15050505050505050565b85336001600160a01b0382161480611b1057506004546001600160a01b031633145b611b1957600080fd5b600086815260016020526040902080548891889188919082908110611b3a57fe5b6000918252602090912001546001600160a01b03848116911614611b5d57600080fd5b6000548910611b6b57600080fd5b600089815260016020819052604090912001548610611b8957600080fd5b6000898152600160205260409020548710611ba357600080fd5b6000898152600160205260409020805486919089908110611bc057fe5b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555084600160008b81526020019081526020016000206001018781548110611c1057fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b0394909416939093179092558a8152600190915260409081902090517fc969620b1b90646a0d597289d87dcf90d4cc4e554bddf0c003dfc05954a6d35991611c7c918c918e916138be565b60405180910390a17f43a4e4542993b08827123085341d156186f40b28b6343f301c246a1d5f49d9f7898b600160008d8152602001908152602001600020600101604051611ccc93929190613822565b60405180910390a150505050505050505050565b6004546001600160a01b031681565b85336001600160a01b0382161480611d1157506004546001600160a01b031633145b611d1a57600080fd5b611d2687878787611117565b600086815260016020526040902060070154611d4b9088908890600019018686610545565b50505050505050565b84336001600160a01b0382161480611d7657506004546001600160a01b031633145b611d7f57600080fd5b846000548110611d8e57600080fd5b600086815260016020526040902060070154869086908110611daf57600080fd5b888888600160008381526020019081526020016000206007018181548110611dd357fe5b60009182526020909120600160029092020101546001600160a01b03848116911614611dfe57600080fd5b60008b815260016020526040902060070180548a91908c908110611e1e57fe5b90600052602060002090600202016000019080519060200190611e429291906125d8565b507fde0d52ad68b0a792924de426fb3a2f2c1ce908be531894e35d85e533fbb8ec168b8b8b8b6040516108999493929190613a0a565b83336001600160a01b0382161480611e9a57506004546001600160a01b031633145b611ea357600080fd5b836000548110611eb257600080fd5b600085815260016020526040902054859085908110611ed057600080fd5b600087815260016020526040902080548991899189919082908110611ef157fe5b6000918252602090912001546001600160a01b03848116911614611f1457600080fd5b60005b8851811015611f815760008b815260016020526040902089518a9083908110611f3c57fe5b60209081029190910181015182546001808201855560009485529290932090920180546001600160a01b0319166001600160a01b039093169290921790915501611f17565b5060008a8152600160205260409081902090517fc969620b1b90646a0d597289d87dcf90d4cc4e554bddf0c003dfc05954a6d35991610c75918d918f916138be565b6001602052600090815260409020600281015460038201546004830154600584015460069094015492936001600160a01b039092169290919060ff1685565b600260209081526000928352604080842090915290825290205460ff1681565b82336001600160a01b038216148061204457506004546001600160a01b031633145b61204d57600080fd5b60005b825181101561207f57612077858585848151811061206a57fe5b6020026020010151610f12565b600101612050565b5050505050565b61208e61263d565b6000828152600160209081526040918290208251815461014093810282018401909452610120810184815290939192849284918401828280156120fa57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116120dc575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561215c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161213e575b5050509183525050600282015460208083019190915260038301546001600160a01b03166040808401919091526004840154606084015260058401546080840152600684015460ff16151560a084015260078401805482518185028101850190935280835260c090940193919290919060009084015b8282101561227957838290600052602060002090600202016040518060400160405290816000820180548060200260200160405190810160405280929190818152602001828054801561224e57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612230575b50505091835250506001918201546001600160a01b03166020918201529183529290920191016121d2565b50505050815260200160088201805480602002602001604051908101604052809291908181526020016000905b82821015612300576000848152602090819020604080516060810182526003860290920180546001600160a01b031683526001808201548486015260029091015460ff1615159183019190915290835290920191016122a6565b505050915250909392505050565b6000838152600160205260409020600401546123c0576000811161233157600080fd5b60008381526001602052604090206005015481111561234f57600080fd5b600083815260016020526040902060050154612371908263ffffffff6125c316565b6000848152600160205260408082206005019290925590516001600160a01b0384169183156108fc02918491818181858888f193505050501580156123ba573d6000803e3d6000fd5b506125a3565b600083815260016020526040902060040154601414156124d357600081116123e757600080fd5b60008381526001602052604090206005015481111561240557600080fd5b600083815260016020526040902060050154612427908263ffffffff6125c316565b600084815260016020526040908190206005810192909255600390910154905163a9059cbb60e01b81526001600160a01b039091169063a9059cbb906124739085908590600401613713565b602060405180830381600087803b15801561248d57600080fd5b505af11580156124a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506124c59190810190613184565b6124ce57600080fd5b6125a3565b6000838152600160205260409020600401546102d114156101b657600083815260026020908152604080832084845290915290205460ff1661251457600080fd5b60008381526002602090815260408083208484528252808320805460ff191690558583526001909152908190206003015490516323b872dd60e01b81526001600160a01b03909116906323b872dd906125759030908690869060040161372e565b600060405180830381600087803b15801561258f57600080fd5b505af1158015611d4b573d6000803e3d6000fd5b505050565b6000828201838110156125ba57600080fd5b90505b92915050565b6000828211156125d257600080fd5b50900390565b82805482825590600052602060002090810192821561262d579160200282015b8281111561262d57825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906125f8565b50612639929150612694565b5090565b60405180610120016040528060608152602001606081526020016000815260200160006001600160a01b03168152602001600081526020016000815260200160001515815260200160608152602001606081525090565b6126b891905b808211156126395780546001600160a01b031916815560010161269a565b90565b80356125bd81613bbf565b600082601f8301126126d757600080fd5b81356126ea6126e582613ac1565b613a9b565b9150818183526020840193506020810190508385602084028201111561270f57600080fd5b60005b8381101561273b578161272588826126bb565b8452506020928301929190910190600101612712565b5050505092915050565b600082601f83011261275657600080fd5b81356127646126e582613ac1565b9150818183526020840193506020810190508385602084028201111561278957600080fd5b60005b8381101561273b578161279f88826126bb565b845250602092830192919091019060010161278c565b600082601f8301126127c657600080fd5b81356127d46126e582613ac1565b915081818352602084019350602081019050838560208402820111156127f957600080fd5b60005b8381101561273b578161280f888261287f565b84525060209283019291909101906001016127fc565b80516125bd81613bd6565b600082601f83011261284157600080fd5b813561284f6126e582613ae1565b9150808252602083016020830185838301111561286b57600080fd5b612876838284613b5e565b50505092915050565b80356125bd81613bdf565b60006020828403121561289c57600080fd5b60006128a884846126bb565b949350505050565b600080600080600080600060e0888a0312156128cb57600080fd5b60006128d78a8a6126bb565b97505060208801356001600160401b038111156128f357600080fd5b6128ff8a828b01612745565b96505060408801356001600160401b0381111561291b57600080fd5b6129278a828b016126c6565b95505060608801356001600160401b0381111561294357600080fd5b61294f8a828b01612830565b94505060806129608a828b0161287f565b93505060a06129718a828b016126bb565b92505060c06129828a828b0161287f565b91505092959891949750929550565b600080600080600080600080610100898b0312156129ae57600080fd5b60006129ba8b8b6126bb565b98505060208901356001600160401b038111156129d657600080fd5b6129e28b828c01612745565b97505060408901356001600160401b038111156129fe57600080fd5b612a0a8b828c016126c6565b96505060608901356001600160401b03811115612a2657600080fd5b612a328b828c01612830565b9550506080612a438b828c0161287f565b94505060a0612a548b828c016126bb565b93505060c0612a658b828c0161287f565b92505060e0612a768b828c0161287f565b9150509295985092959890939650565b600080600060608486031215612a9b57600080fd5b6000612aa786866126bb565b9350506020612ab88682870161287f565b9250506040612ac98682870161287f565b9150509250925092565b60008060008060808587031215612ae957600080fd5b6000612af587876126bb565b9450506020612b068782880161287f565b9350506040612b178782880161287f565b92505060608501356001600160401b03811115612b3357600080fd5b612b3f878288016127b5565b91505092959194509250565b60008060008060808587031215612b6157600080fd5b6000612b6d87876126bb565b9450506020612b7e8782880161287f565b93505060408501356001600160401b03811115612b9a57600080fd5b612ba687828801612745565b92505060608501356001600160401b03811115612bc257600080fd5b612b3f87828801612830565b60008060008060008060c08789031215612be757600080fd5b6000612bf389896126bb565b9650506020612c0489828a0161287f565b95505060408701356001600160401b03811115612c2057600080fd5b612c2c89828a01612745565b94505060608701356001600160401b03811115612c4857600080fd5b612c5489828a01612830565b9350506080612c6589828a0161287f565b92505060a08701356001600160401b03811115612c8157600080fd5b612c8d89828a016127b5565b9150509295509295509295565b600080600060608486031215612caf57600080fd5b6000612cbb86866126bb565b9350506020612ccc8682870161287f565b92505060408401356001600160401b03811115612ce857600080fd5b612ac9868287016127b5565b600080600060608486031215612d0957600080fd5b6000612d1586866126bb565b9350506020612d268682870161287f565b92505060408401356001600160401b03811115612d4257600080fd5b612ac986828701612830565b60008060008060808587031215612d6457600080fd5b6000612d7087876126bb565b9450506020612d818782880161287f565b9350506040612d928782880161287f565b92505060608501356001600160401b03811115612dae57600080fd5b612b3f878288016126c6565b60008060008060808587031215612dd057600080fd5b6000612ddc87876126bb565b9450506020612ded8782880161287f565b9350506040612dfe8782880161287f565b92505060608501356001600160401b03811115612e1a57600080fd5b612b3f87828801612745565b600080600080600080600060e0888a031215612e4157600080fd5b6000612e4d8a8a6126bb565b9750506020612e5e8a828b0161287f565b9650506040612e6f8a828b0161287f565b95505060608801356001600160401b03811115612e8b57600080fd5b612e978a828b01612745565b94505060808801356001600160401b03811115612eb357600080fd5b612ebf8a828b01612745565b93505060a08801356001600160401b03811115612edb57600080fd5b6129718a828b01612830565b600080600080600060a08688031215612eff57600080fd5b6000612f0b88886126bb565b9550506020612f1c8882890161287f565b9450506040612f2d8882890161287f565b93505060608601356001600160401b03811115612f4957600080fd5b612f5588828901612745565b92505060808601356001600160401b03811115612f7157600080fd5b612f7d88828901612830565b9150509295509295909350565b60008060008060808587031215612fa057600080fd5b6000612fac87876126bb565b9450506020612fbd8782880161287f565b9350506040612ba68782880161287f565b60008060008060808587031215612fe457600080fd5b6000612ff087876126bb565b94505060206130018782880161287f565b93505060406130128782880161287f565b9250506060612b3f8782880161287f565b600080600080600060a0868803121561303b57600080fd5b600061304788886126bb565b95505060206130588882890161287f565b94505060406130698882890161287f565b935050606061307a8882890161287f565b9250506080612f7d888289016126bb565b600080600080600060a086880312156130a357600080fd5b60006130af88886126bb565b95505060206130c08882890161287f565b94505060406130d18882890161287f565b93505060606130e28882890161287f565b92505060808601356001600160401b038111156130fe57600080fd5b612f7d888289016127b5565b60008060008060008060c0878903121561312357600080fd5b600061312f89896126bb565b965050602061314089828a0161287f565b955050604061315189828a0161287f565b945050606061316289828a0161287f565b935050608061317389828a0161287f565b92505060a0612c8d89828a016126bb565b60006020828403121561319657600080fd5b60006128a88484612825565b6000602082840312156131b457600080fd5b60006128a8848461287f565b600080604083850312156131d357600080fd5b60006131df858561287f565b92505060206131f08582860161287f565b9150509250929050565b60006132068383613250565b505060200190565b600061321a8383613662565b505060600190565b600061322e838361369f565b9392505050565b600061320683836136d4565b61324a81613b4d565b82525050565b61324a81613b3d565b600061326482613b1a565b61326e8185613b28565b935061327983613b08565b8060005b838110156132a757815161329188826131fa565b975061329c83613b08565b92505060010161327d565b509495945050505050565b60006132bd82613b1a565b6132c78185613b28565b93506132d283613b08565b8060005b838110156132a75781516132ea88826131fa565b97506132f583613b08565b9250506001016132d6565b600061330b82613b1e565b6133158185613b28565b935061332083613b0e565b8060005b838110156132a75761333582613ba9565b61333f88826131fa565b975061334a83613b22565b925050600101613324565b600061336082613b1a565b61336a8185613b28565b935061337583613b08565b8060005b838110156132a757815161338d88826131fa565b975061339883613b08565b925050600101613379565b60006133ae82613b1a565b6133b88185613b28565b93506133c383613b08565b8060005b838110156132a75781516133db88826131fa565b97506133e683613b08565b9250506001016133c7565b60006133fc82613b1e565b6134068185613b28565b935061341183613b0e565b8060005b838110156132a75761342682613ba9565b61343088826131fa565b975061343b83613b22565b925050600101613415565b600061345182613b1a565b61345b8185613b28565b935061346683613b08565b8060005b838110156132a757815161347e888261320e565b975061348983613b08565b92505060010161346a565b600061349f82613b1a565b6134a98185613b28565b9350836020820285016134bb85613b08565b8060005b858110156134f557848403895281516134d88582613222565b94506134e383613b08565b60209a909a01999250506001016134bf565b5091979650505050505050565b600061350d82613b1a565b6135178185613b28565b935061352283613b08565b8060005b838110156132a757815161353a8882613235565b975061354583613b08565b925050600101613526565b61324a81613b48565b600061356482613b1a565b61356e8185613b28565b935061357e818560208601613b6a565b61358781613bb5565b9093019392505050565b8051610120808452600091908401906135aa82826133a3565b915050602083015184820360208601526135c482826132b2565b91505060408301516135d960408601826136d4565b5060608301516135ec6060860182613250565b5060808301516135ff60808601826136d4565b5060a083015161361260a08601826136d4565b5060c083015161362560c0860182613550565b5060e083015184820360e086015261363d8282613494565b9150506101008301518482036101008601526136598282613446565b95945050505050565b805160608301906136738482613250565b50602082015161368660208501826136d4565b5060408201516136996040850182613550565b50505050565b80516040808452600091908401906136b782826133a3565b91505060208301516136cc6020860182613250565b509392505050565b61324a816126b8565b602081016125bd8284613250565b606081016136f98286613241565b6137066020830185613250565b6128a860408301846136d4565b604081016137218285613241565b61322e60208301846136d4565b6060810161373c8286613250565b6137066020830185613241565b602081016125bd8284613550565b6020808252810161322e8184613591565b602081016125bd82846136d4565b6101008101613785828b6136d4565b613792602083018a613250565b81810360408301526137a48189613355565b905081810360608301526137b88188613259565b905081810360808301526137cc8187613559565b90506137db60a08301866136d4565b6137e860c0830185613250565b61075460e08301846136d4565b6060810161380382866136d4565b6138106020830185613241565b81810360408301526136598184613502565b6060810161383082866136d4565b61383d6020830185613250565b81810360408301526136598184613300565b60c0810161385d82896136d4565b61386a6020830188613250565b818103604083015261387c8187613355565b905081810360608301526138908186613355565b905081810360808301526138a48185613559565b90506138b360a08301846136d4565b979650505050505050565b606081016138cc82866136d4565b6138d96020830185613250565b818103604083015261365981846133f1565b606081016138f982866136d4565b6138106020830185613250565b6060810161391482866136d4565b6139216020830185613250565b81810360408301526136598184613559565b606081016136f982866136d4565b60a0810161394f82886136d4565b61395c6020830187613250565b61396960408301866136d4565b61397660608301856136d4565b6139836080830184613550565b9695505050505050565b6040810161372182856136d4565b608081016139a982876136d4565b6139b660208301866136d4565b6139c36040830185613250565b61365960608301846136d4565b608081016139de82876136d4565b6139eb60208301866136d4565b6139f86040830185613250565b81810360608301526139838184613502565b60808101613a1882876136d4565b613a2560208301866136d4565b8181036040830152613a378185613355565b905081810360608301526139838184613559565b60a08101613a5982886136d4565b613a6660208301876136d4565b8181036040830152613a788186613355565b90508181036060830152613a8c8185613559565b90506139836080830184613250565b6040518181016001600160401b0381118282101715613ab957600080fd5b604052919050565b60006001600160401b03821115613ad757600080fd5b5060209081020190565b60006001600160401b03821115613af757600080fd5b506020601f91909101601f19160190565b60200190565b60009081526020902090565b5190565b5490565b60010190565b90815260200190565b6001600160a01b031690565b60006125bd82613b31565b151590565b60006125bd8260006125bd82613b3d565b82818337506000910152565b60005b83811015613b85578181015183820152602001613b6d565b838111156136995750506000910152565b60006125bd613ba4836126b8565b613b31565b60006125bd8254613b96565b601f01601f191690565b613bc881613b3d565b8114613bd357600080fd5b50565b613bc881613b48565b613bc8816126b856fea365627a7a723058200d43a38c6b7510056a775b9270f98e56edd47d5c9580ff47d8e3e682414f57b56c6578706572696d656e74616cf564736f6c63430005090040", - "sourceMap": "539:35438:5:-;;;5183:149;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5308:5:5;:18;;-1:-1:-1;;;;;;5308:18:5;5316:10;5308:18;;;539:35438;;;;;;", - "deployedSourceMap": "539:35438:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21036:1181;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21036:1181:5;;;;;;;;:::i;:::-;;8149:491;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;27395:487;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;27395:487:5;;;;;;;;:::i;15575:1074::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15575:1074:5;;;;;;;;:::i;17175:311::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;17175:311:5;;;;;;;;:::i;32507:513::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;32507:513:5;;;;;;;;:::i;6527:1480::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6527:1480:5;;;;;;;;:::i;5469:267::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5469:267:5;;;;;;;;:::i;2968:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2968:23:5;;;:::i;:::-;;;;;;;;29755:458;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;29755:458:5;;;;;;;;:::i;2350:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2350:23:5;;;:::i;2719:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2719:20:5;;;:::i;:::-;;;;;;;;11968:850;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;11968:850:5;;;;;;;;:::i;18009:819::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18009:819:5;;;;;;;;:::i;26303:577::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;26303:577:5;;;;;;;;:::i;13950:825::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13950:825:5;;;;;;;;:::i;9482:1948::-;;;;;;;;;:::i;30674:414::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;30674:414:5;;;;;;;;:::i;24629:1160::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;24629:1160:5;;;;;;;;:::i;28489:769::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;28489:769:5;;;;;;;;:::i;2824:28::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2824:28:5;;;:::i;23253:615::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23253:615:5;;;;;;;;:::i;19435:747::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19435:747:5;;;;;;;;:::i;31540:507::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;31540:507:5;;;;;;;;:::i;2445:39::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2445:39:5;;;;;;;;:::i;:::-;;;;;;;;;;;;2527:61;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2527:61:5;;;;;;;;:::i;13202:295::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;13202:295:5;;;;;;;;:::i;33179:130::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;33179:130:5;;;;;;;;:::i;:::-;;;;;;;;21036:1181;21221:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;21260:9;3274:11;;3265:6;:20;3257:29;;;;;;3580:19;;;;:8;:19;;;;;:32;;:39;21306:9;;21317:14;;3571:48;;3563:57;;;;;;21349:7;21358:9;21369:11;4664:8;:19;4673:9;4664:19;;;;;;;;;;;:29;;4694:11;4664:42;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4653:53:5;;;4664:42;;4653:53;4645:62;;;;;;3111:11;;-1:-1:-1;;;3111:11:5;;;;3110:12;3102:21;;;;;;3130:11;:18;;-1:-1:-1;;;;3130:18:5;-1:-1:-1;;;3130:18:5;;;;21499:19;;;3144:4;21499:19;;;;;;;:30;;;:37;;-1:-1:-1;;21499:37:5;;;;;;;21579:32;;:48;;21612:14;;21579:48;;;;;;;;;;;;;;;;;;;21668:29;;21644:20;;21579:48;;-1:-1:-1;21644:53:5;21636:62;;;;;;21784:9;21779:261;21803:29;;21799:33;;21779:261;;;21872:1;21853:13;21867:1;21853:16;;;;;;;;;;;;;;:20;21849:184;;;21951:70;21966:9;21977:11;:22;;22000:1;21977:25;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21977:25:5;22004:13;22018:1;22004:16;;;;;;;;;;;;;;21951:14;:70::i;:::-;21834:3;;21779:261;;;;22051:160;22071:9;22112:14;22158:7;22197:13;22051:160;;;;;;;;;;;;;;;;;;-1:-1:-1;;3163:11:5;:19;;-1:-1:-1;;;;3163:19:5;;;-1:-1:-1;;;;;;;;;;;21036:1181:5:o;8149:491::-;8439:4;8455:13;8471:83;8483:7;8492:8;8502:10;8514:5;8521:9;8532:6;8540:13;8471:11;:83::i;:::-;8455:99;;8563:45;8574:7;8583:8;8593:14;8563:10;:45::i;:::-;8625:8;8149:491;-1:-1:-1;;;;;;;;;8149:491:5:o;27395:487::-;27572:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;27611:9;3274:11;;3265:6;:20;3257:29;;;;;;4062:19;;;;:8;:19;;;;;:38;;27638:7;;27647:9;;27658;;4062:19;27658:9;;4062:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4051:49:5;;;4062:38;;4051:49;4043:58;;;;;;3899:19;;;;:8;:19;;;;;;;;:29;:36;27701:9;;27712:11;;3890:45;;3882:54;;;;;;27780:9;27735:8;:19;27744:9;27735:19;;;;;;;;;;;:29;;27765:11;27735:42;;;;;;;;;;;;;;;;:54;;;;;-1:-1:-1;;;;;27735:54:5;;;;;-1:-1:-1;;;;;27735:54:5;;;;;;27803:73;27826:9;27837:7;27846:8;:19;27855:9;27846:19;;;;;;;;;;;:29;;27803:73;;;;;;;;;;;;;;;;;4106:1;;3293;;;5135;27395:487;;;;;;:::o;15575:1074::-;15729:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;15768:9;3274:11;;3265:6;:20;3257:29;;;;;;4062:19;;;;:8;:19;;;;;:38;;15795:7;;15804:9;;15815;;4062:19;15815:9;;4062:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4051:49:5;;;4062:38;;4051:49;4043:58;;;;;;3111:11;;-1:-1:-1;;;3111:11:5;;;;3110:12;3102:21;;;;;;3130:11;:18;;-1:-1:-1;;;;3130:18:5;-1:-1:-1;;;3130:18:5;;;;15860:19;;;3144:4;15860:19;;;;;:32;;:37;;:79;;-1:-1:-1;15901:19:5;;;;:8;:19;;;;;:32;;;15937:2;15901:38;15860:79;15856:731;;;15957:8;:15;15976:1;15957:20;15949:29;;;;;;16068:19;;;;:8;:19;;;;;:27;;;16053:11;;16068:27;;16053:8;;:11;;;;;;;;;;:42;;16045:51;;;;;;16200:47;16215:9;16226:7;16235:8;16244:1;16235:11;;;;;;;16200:47;15856:731;;;16324:6;16319:261;16340:8;:15;16336:1;:19;16319:261;;;16380:13;:24;16394:9;16380:24;;;;;;;;;;;:37;16405:8;16414:1;16405:11;;;;;;;;;;;;;;;;;;;16380:37;;;;;;;;;;-1:-1:-1;16380:37:5;;;;16372:46;;;;;;16523:47;16538:9;16549:7;16558:8;16567:1;16558:11;;;;;;;16523:47;16357:3;;16319:261;;;;15856:731;16600:43;16614:9;16625:7;16634:8;16600:43;;;;;;;;;;;;;;;;;-1:-1:-1;;3163:11:5;:19;;-1:-1:-1;;;;3163:19:5;;;-1:-1:-1;;;;;;;15575:1074:5:o;17175:311::-;17299:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;17338:9;3274:11;;3265:6;:20;3257:29;;;;;;17364:42;17380:9;17391:7;17400:5;17364:42;;;;;;;;;;;;;;;;;5135:1;17175:311;;;;:::o;32507:513::-;32659:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;32698:9;3274:11;;3265:6;:20;3257:29;;;;;;3741:19;;;;:8;:19;;;;;:34;32739:9;;32750;;3732:43;;3724:52;;;;;;4062:19;;;;:8;:19;;;;;:38;;32777:7;;32786:9;;32797;;4062:19;32797:9;;4062:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4051:49:5;;;4062:38;;4051:49;4043:58;;;;;;32823:6;32818:110;32839:10;:17;32835:1;:21;32818:110;;;32871:8;:19;32880:9;32871:19;;;;;;;;;;;:29;;32906:10;32917:1;32906:13;;;;;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;-1:-1;32871:49:5;;;;;;;;;;;;-1:-1:-1;;;;;;32871:49:5;-1:-1:-1;;;;;32871:49:5;;;;;;;;;;32858:3;32818:110;;;;32941:73;32964:9;32975:7;32984:8;:19;32993:9;32984:19;;;;;;;;;;;:29;;32941:73;;;;;;;;;;;;;;;;;3783:1;;;3293;;5135;32507:513;;;;;:::o;6527:1480::-;6800:4;6777:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;6824:18;;;:41;;;6846:13;6863:2;6846:19;6824:41;:65;;;;6869:13;6886:3;6869:20;6824:65;6816:74;;;;;;6989:1;6971:8;:15;:19;:44;;;;7014:1;6994:10;:17;:21;6971:44;6963:53;;;;;;7100:13;7116:11;;7240:18;;;:8;:18;;;;;;;;7265:28;;7116:11;;7240:18;;7265:28;;7240:18;;7265:28;;;;;:::i;:::-;-1:-1:-1;7300:32:5;;;;:19;;;;:32;;;;;:::i;:::-;-1:-1:-1;7339:18:5;;;:30;;;7376:22;;;:38;;;7427:18;;7423:64;;7455:15;;;:24;;-1:-1:-1;;;;;;7455:24:5;-1:-1:-1;;;;;7455:24:5;;;;;7423:64;7509:11;;:18;;7525:1;7509:18;:15;:18;:::i;:::-;7495:11;:32;7615:360;;;;;;7628:8;;7661:7;;7693:8;;7726:10;;7761:5;;7896:9;;7930:6;;7961:13;;7615:360;;;;;;;;;;-1:-1:-1;7992:8:5;6527:1480;-1:-1:-1;;;;;;;;;6527:1480:5:o;5469:267::-;5559:5;;-1:-1:-1;;;;;5559:5:5;5545:10;:19;5537:28;;;;;;5619:13;;-1:-1:-1;;;;;5619:13:5;:27;5611:36;;;;;;5706:13;:24;;-1:-1:-1;;;;;;5706:24:5;-1:-1:-1;;;;;5706:24:5;;;;;;;;;;5469:267::o;2968:23::-;;;-1:-1:-1;;;2968:23:5;;;;;:::o;29755:458::-;29897:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;29936:9;3274:11;;3265:6;:20;3257:29;;;;;;3741:19;;;;:8;:19;;;;;:34;29977:9;;29988;;3732:43;;3724:52;;;;;;4062:19;;;;:8;:19;;;;;:38;;30015:7;;30024:9;;30035;;4062:19;30035:9;;4062:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4051:49:5;;;4062:38;;4051:49;4043:58;;;;;;30061:44;30079:9;30090:7;30099:5;30061:44;;;;;;;;;2350:23;;;;:::o;2719:20::-;;;-1:-1:-1;;;;;2719:20:5;;:::o;11968:850::-;12098:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;12137:9;3274:11;;3265:6;:20;3257:29;;;;;;3413:19;;;;:8;:19;;;;;:33;;:40;12184:9;;12195:15;;3404:49;;3396:58;;;;;;12233:7;12242:9;12253:15;4465:8;:19;4474:9;4465:19;;;;;;;;;;;:33;;4499:15;4465:50;;;;;;;;;;;;;;;;;;;;;:62;-1:-1:-1;;;;;4441:86:5;;;4465:62;;4441:86;4433:95;;;;;;4788:19;;;;:8;:19;;;;;:30;;;12286:9;;4788:30;;4787:31;4779:40;;;;;;4931:19;;;;:8;:19;;;;;:33;;:50;;12317:9;;12328:15;;;;4931:50;;;;;;;;;;;;;;:59;:50;;;;;:59;;;;4930:60;4922:69;;;;;;3111:11;;-1:-1:-1;;;3111:11:5;;;;3110:12;3102:21;;;;;;3130:11;:18;;-1:-1:-1;;;;3130:18:5;-1:-1:-1;;;3130:18:5;;;;12389:19;;;3144:4;12389:19;;;;;:28;;;12383:3;:34;12375:43;;;;;;12491:33;12527:19;;;:8;:19;;;;;:33;;:50;;12561:15;;12527:50;;;;;;;;;;;;;;12586:21;12527:50;;;;;12586:21;;;:28;;-1:-1:-1;;12586:28:5;12610:4;12586:28;;;;;;12649:24;;12675:19;;;;12527:50;;-1:-1:-1;12623:72:5;;12638:9;;-1:-1:-1;;;;;12649:24:5;;12623:14;:72::i;:::-;12764:48;12785:9;12796:15;12764:48;;;;;;;;;;;;;;;;-1:-1:-1;;3163:11:5;:19;;-1:-1:-1;;;;3163:19:5;;;-1:-1:-1;;;;;;;;;;;;11968:850:5:o;18009:819::-;18177:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;18216:9;3274:11;;3265:6;:20;3257:29;;;;;;18251:19;;;;:8;:19;;;;;:28;;;18245:3;:34;18237:43;;;;;;18379:1;18358:11;:18;:22;18350:31;;;;;;18456:19;;;;:8;:19;;;;;;;;18494:33;;;;;;;;;;;-1:-1:-1;;;;;18494:33:5;;;;;;18456:32;;27:10:-1;;23:18;;;45:23;;;18456:72:5;;;;;;;;;;;18494:33;;18456:72;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;18456:72:5;;;;;;;;;;;-1:-1:-1;;;;;;18456:72:5;-1:-1:-1;;;;;18456:72:5;;;;;;;;;-1:-1:-1;18596:19:5;;;;;;;;;;:32;;:39;18542:280;;;;-1:-1:-1;18542:280:5;;18596:19;;-1:-1:-1;;18596:43:5;;;;18668:11;;18707:5;;18814:7;;18542:280;;;;;;;;;;5135:1;18009:819;;;;;:::o;26303:577::-;26483:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;26522:9;3274:11;;3265:6;:20;3257:29;;;;;;3741:19;;;;:8;:19;;;;;:34;26563:9;;26574:17;;3732:43;;3724:52;;;;;;4062:19;;;;:8;:19;;;;;:38;;26609:7;;26618:9;;26629;;4062:19;26629:9;;4062:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4051:49:5;;;4062:38;;4051:49;4043:58;;;;;;26670:19;;;;:8;:19;;;;;:34;26658:46;;;:64;;-1:-1:-1;26708:14:5;;26658:64;26650:73;;;;;;26732:19;;;;:8;:19;;;;;:46;;26781:10;;26732:19;26760:17;;26732:46;;;;;;;;;;;;;;:59;;;;;-1:-1:-1;;;;;26732:59:5;;;;;-1:-1:-1;;;;;26732:59:5;;;;;;26805:69;26826:9;26837:7;26846:8;:19;26855:9;26846:19;;;;;;;;;;;:27;;26805:69;;;;;;;;;13950:825;14112:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;14151:9;3274:11;;3265:6;:20;3257:29;;;;;;4062:19;;;;:8;:19;;;;;:38;;14178:7;;14187:9;;14198;;4062:19;14198:9;;4062:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4051:49:5;;;4062:38;;4051:49;4043:58;;;;;;3111:11;;-1:-1:-1;;;3111:11:5;;;;3110:12;3102:21;;;;;;3130:11;:18;;-1:-1:-1;;;;3130:18:5;-1:-1:-1;;;3130:18:5;;;;14239:458;14260:16;:23;14256:1;:27;14239:458;;;14328:19;;;;:8;:19;;;;;:33;;:40;14306:19;;:16;;14323:1;;14306:19;;;;;;;;;;;;:62;14298:71;;;;;;14380:33;14416:8;:19;14425:9;14416:19;;;;;;;;;;;:33;;14450:16;14467:1;14450:19;;;;;;;;;;;;;;14416:54;;;;;;;;;;;;;;;;;;;;;14490:21;;;;14416:54;;-1:-1:-1;14490:21:5;;14489:22;14481:31;;;;;;14523:21;;;:28;;-1:-1:-1;;14523:28:5;14547:4;14523:28;;;;;;14588:24;;14614:19;;;;14562:72;;14577:9;;-1:-1:-1;;;;;14588:24:5;;;;14562:14;:72::i;:::-;-1:-1:-1;14285:3:5;;14239:458;;;;14710:59;14732:9;14743:7;14752:16;14710:59;;;;;;;;;9482:1948;9617:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;9656:9;3274:11;;3265:6;:20;3257:29;;;;;;3111:11;;-1:-1:-1;;;3111:11:5;;;;3110:12;3102:21;;;;;;3130:11;:18;;-1:-1:-1;;;;3130:18:5;-1:-1:-1;;;3130:18:5;;;9705:11;9697:20;;;;;;9781:19;;;;:8;:19;;;;;;;;9828:37;;;;;;;-1:-1:-1;;;;;9828:37:5;;;;;;;;;;;;;;;;;9781:33;;;27:10:-1;;23:18;;;45:23;;9781:85:5;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;9781:85:5;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9781:85:5;;;;;;;;;;;9918:19;;;;;:32;;;9914:1295;;9997:19;;;;:8;:19;;;;;:27;;;:40;;10029:7;9997:40;:31;:40;:::i;:::-;9967:19;;;;:8;:19;;;;;:27;;:70;10096:9;:20;;10088:29;;;;;;9914:1295;;;10135:19;;;;:8;:19;;;;;:32;;;10171:2;10135:38;10131:1078;;;10215:19;;;;:8;:19;;;;;:27;;;:40;;10247:7;10215:40;:31;:40;:::i;:::-;10185:19;;;;:8;:19;;;;;:27;;:70;10314:9;:14;10306:23;;;;;;10451:19;;;;:8;:19;;;;;;;:25;;;10440:215;;-1:-1:-1;;;10440:215:5;;-1:-1:-1;;;;;10451:25:5;;;;10440:50;;:215;;10491:7;;10574:4;;10647:7;;10440:215;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10440:215:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10440:215:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;10440:215:5;;;;;;;;;10432:224;;;;;10131:1078;10674:19;;;;:8;:19;;;;;:32;;;10710:3;10674:39;10670:539;;;10723:24;;;;:13;:24;;;;;;;;:33;;;;;;;;:40;;-1:-1:-1;;10723:40:5;10759:4;10723:40;;;10835:9;:14;10827:23;;;;;;10970:19;;;;:8;:19;;;;;;;:25;;;10953:217;;-1:-1:-1;;;10953:217:5;;-1:-1:-1;;;;;10970:25:5;;;;10953:56;;:217;;11010:7;;11091:4;;11162:7;;10953:217;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10953:217:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10953:217:5;;;;10670:539;11279:19;;;;11322:1;11279:19;;;;;;;:33;;:40;11222:202;;;;;;11240:9;;-1:-1:-1;;11279:44:5;;11379:7;;11416;;11222:202;;;;;;;;;;-1:-1:-1;;3163:11:5;:19;;-1:-1:-1;;;;3163:19:5;;;-1:-1:-1;;;9482:1948:5:o;30674:414::-;30817:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;30856:9;3274:11;;3265:6;:20;3257:29;;;;;;3741:19;;;;:8;:19;;;;;:34;30897:9;;30908;;3732:43;;3724:52;;;;;;4062:19;;;;:8;:19;;;;;:38;;30935:7;;30944:9;;30955;;4062:19;30955:9;;4062:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4051:49:5;;;4062:38;;4051:49;4043:58;;;;;;30976:19;;;;:8;:19;;;;;;;:28;;:40;;;31030:52;;;;;30985:9;;31063:7;;31007:9;;31030:52;;24629:1160;24876:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;24915:11;;24903:9;:23;24895:32;;;;;;25040:19;;;;:8;:19;;;;;:34;25028:46;;25020:55;;;;;;25187:19;;;;:8;:19;;;;;:38;;25215:9;;25187:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;25176:49:5;;;25187:38;;25176:49;25168:58;;;;;;25333:1;25315:8;:15;:19;:44;;;;25358:1;25338:10;:17;:21;25315:44;25307:53;;;;;;25444:19;;;;:8;:19;;;;;;;;:38;;;;;;;;:::i;:::-;-1:-1:-1;25489:19:5;;;;:8;:19;;;;;;;;:42;;;;:29;;;;;:42;;;;;:::i;:::-;-1:-1:-1;25538:19:5;;;;:8;:19;;;;;;;:28;;:40;;;25590:193;;;;;25547:9;;25639:7;;25672:8;;25706:10;;25742:5;;25569:9;;25590:193;;;;;;;;;;24629:1160;;;;;;;;:::o;28489:769::-;28710:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;4062:19;;;;:8;:19;;;;;:38;;28735:7;;28744:9;;28755;;4062:19;28755:9;;4062:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4051:49:5;;;4062:38;;4051:49;4043:58;;;;;;28796:11;;28784:9;:23;28776:32;;;;;;28845:19;;;;:8;:19;;;;;;;;:29;:36;28823:58;;28815:67;;;;;;28917:19;;;;:8;:19;;;;;:34;28897:54;;28889:63;;;;;;28961:19;;;;:8;:19;;;;;:46;;29010:7;;28961:19;28989:17;;28961:46;;;;;;;;;;;;;;:56;;;;;-1:-1:-1;;;;;28961:56:5;;;;;-1:-1:-1;;;;;28961:56:5;;;;;;29077:7;29024:8;:19;29033:9;29024:19;;;;;;;;;;;:29;;29054:19;29024:50;;;;;;;;;;;;;;;;;;;;:60;;-1:-1:-1;;;;;;29024:60:5;-1:-1:-1;;;;;29024:60:5;;;;;;;;;;;29139:19;;;-1:-1:-1;29139:19:5;;;;;;;;29098:69;;;;;;29139:19;;29130:7;;29098:69;;;;;;;;;;29179:73;29202:9;29213:7;29222:8;:19;29231:9;29222:19;;;;;;;;;;;:29;;29179:73;;;;;;;;;;;;;;;;;5135:1;;;28489:769;;;;;;;:::o;2824:28::-;;;-1:-1:-1;;;;;2824:28:5;;:::o;23253:615::-;23480:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;23561:53;23575:7;23584:9;23595:11;23608:5;23561:13;:53::i;:::-;23744:19;;;;23786:1;23744:19;;;;;:32;;:39;23660:202;;23678:7;;23710:9;;-1:-1:-1;;23744:43:5;23812:11;23848:13;23660:17;:202::i;:::-;23253:615;;;;;;;:::o;19435:747::-;19618:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;19655:9;3274:11;;3265:6;:20;3257:29;;;;;;3580:19;;;;:8;:19;;;;;:32;;:39;19699:9;;19710:14;;3571:48;;3563:57;;;;;;19743:7;19752:9;19763:14;4254:8;:19;4263:9;4254:19;;;;;;;;;;;:32;;4287:14;4254:48;;;;;;;;;;;;;;;;:58;:48;;;;;:58;;-1:-1:-1;;;;;4230:82:5;;;4254:58;;4230:82;4222:91;;;;;;19865:19;;;;:8;:19;;;;;:32;;:48;;19927:11;;19865:32;19898:14;;19865:48;;;;;;;;;;;;;;;;:59;;:73;;;;;;;;;;;;:::i;:::-;;19950:152;19969:9;20009:14;20054:11;20096:5;19950:152;;;;;;;;;;31540:507;31696:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;31735:9;3274:11;;3265:6;:20;3257:29;;;;;;3741:19;;;;:8;:19;;;;;:34;31776:9;;31787;;3732:43;;3724:52;;;;;;4062:19;;;;:8;:19;;;;;:38;;31814:7;;31823:9;;31834;;4062:19;31834:9;;4062:38;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4051:49:5;;;4062:38;;4051:49;4043:58;;;;;;31860:6;31855:104;31876:8;:15;31872:1;:19;31855:104;;;31906:19;;;;:8;:19;;;;;31939:11;;:8;;31948:1;;31939:11;;;;;;;;;;;;;;;;;27:10:-1;;39:1;23:18;;;45:23;;-1:-1;31906:45:5;;;;;;;;;;;;-1:-1:-1;;;;;;31906:45:5;-1:-1:-1;;;;;31906:45:5;;;;;;;;;;31893:3;31855:104;;;-1:-1:-1;32013:19:5;;;;:8;:19;;;;;;;31972:69;;;;;;31993:9;;32004:7;;31972:69;;2445:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2445:39:5;;;;;;;;;;:::o;2527:61::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;13202:295::-;13345:7;5075:10;-1:-1:-1;;;;;5075:21:5;;;;:52;;-1:-1:-1;5114:13:5;;-1:-1:-1;;;;;5114:13:5;5100:10;:27;5075:52;5067:61;;;;;;13369:6;13364:128;13385:16;:23;13381:1;:27;13364:128;;;13425:59;13444:7;13453:9;13464:16;13481:1;13464:19;;;;;;;;;;;;;;13425:18;:59::i;:::-;13410:3;;13364:128;;;;13202:295;;;;:::o;33179:130::-;33252:13;;:::i;:::-;33284:19;;;;:8;:19;;;;;;;;;33277:26;;;;;;;;;;;;;;;;;;;;;;;33284:19;;33277:26;;33284:19;;33277:26;;33284:19;33277:26;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33277:26:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33277:26:5;;;;;;;;;;;;;;;;-1:-1:-1;;;33277:26:5;;;-1:-1:-1;;33277:26:5;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33277:26:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;33277:26:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33277:26:5;;;;;;;;;;;;;;;;-1:-1:-1;;;33277:26:5;;;-1:-1:-1;;33277:26:5;;;;;-1:-1:-1;;;;;33277:26:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;33277:26:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;33277:26:5;;-1:-1:-1;33277:26:5;;33179:130;-1:-1:-1;;;33179:130:5:o;33317:1193::-;33420:19;;;;:8;:19;;;;;:32;;;33416:1089;;33485:1;33475:7;:11;33467:20;;;;;;33537:19;;;;:8;:19;;;;;:27;;;:38;-1:-1:-1;33537:38:5;33529:47;;;;;;33617:19;;;;:8;:19;;;;;:27;;;:40;;33649:7;33617:40;:31;:40;:::i;:::-;33587:19;;;;:8;:19;;;;;;:27;;:70;;;;33668:21;;-1:-1:-1;;;;;33668:12:5;;;:21;;;;;33681:7;;33668:21;33587:19;33668:21;33681:7;33668:12;:21;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33668:21:5;33416:1089;;;33707:19;;;;:8;:19;;;;;:32;;;33743:2;33707:38;33703:802;;;33773:1;33763:7;:11;33755:20;;;;;;33825:19;;;;:8;:19;;;;;:27;;;:38;-1:-1:-1;33825:38:5;33817:47;;;;;;33905:19;;;;:8;:19;;;;;:27;;;:40;;33937:7;33905:40;:31;:40;:::i;:::-;33875:19;;;;:8;:19;;;;;;;:27;;;:70;;;;33975:25;;;;;33964:60;;-1:-1:-1;;;33964:60:5;;-1:-1:-1;;;;;33975:25:5;;;;33964:46;;:60;;34011:3;;34016:7;;33964:60;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;33964:60:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;33964:60:5;;;;;;;101:4:-1;97:9;90:4;84;80:15;76:31;69:5;65:43;126:6;120:4;113:20;0:138;33964:60:5;;;;;;;;;33956:69;;;;;;33703:802;;;34043:19;;;;:8;:19;;;;;:32;;;34079:3;34043:39;34039:466;;;34100:24;;;;:13;:24;;;;;;;;:33;;;;;;;;;;;34092:42;;;;;;34181:5;34145:24;;;:13;:24;;;;;;;;:33;;;;;;;;:41;;-1:-1:-1;;34145:41:5;;;34270:19;;;34145:41;34270:19;;;;;;;:25;;;34253:213;;-1:-1:-1;;;34253:213:5;;-1:-1:-1;;;;;34270:25:5;;;;34253:56;;:213;;34318:4;;34389:3;;34170:7;;34253:213;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;34253:213:5;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;34039:466:5;33317:1193;;;:::o;589:150:22:-;647:7;679:5;;;703:6;;;;695:15;;;;;;730:1;-1:-1:-1;589:150:22;;;;;:::o;431:::-;489:7;522:1;517;:6;;509:15;;;;;;-1:-1:-1;547:5:22;;;431:150::o;539:35438:5:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;539:35438:5;-1:-1:-1;;;;;539:35438:5;;;;;;;;;;;-1:-1:-1;539:35438:5;;;;;;;-1:-1:-1;539:35438:5;;;-1:-1:-1;539:35438:5;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;539:35438:5;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;;539:35438:5;;;;;;;;;:::o;5:130:-1:-;72:20;;97:33;72:20;97:33;;313:707;;430:3;423:4;415:6;411:17;407:27;397:2;;448:1;445;438:12;397:2;485:6;472:20;507:80;522:64;579:6;522:64;;;507:80;;;498:89;;604:5;629:6;622:5;615:21;659:4;651:6;647:17;637:27;;681:4;676:3;672:14;665:21;;734:6;781:3;773:4;765:6;761:17;756:3;752:27;749:36;746:2;;;798:1;795;788:12;746:2;823:1;808:206;833:6;830:1;827:13;808:206;;;891:3;913:37;946:3;934:10;913:37;;;901:50;;-1:-1;974:4;965:14;;;;993;;;;;855:1;848:9;808:206;;;812:14;390:630;;;;;;;;1054:731;;1179:3;1172:4;1164:6;1160:17;1156:27;1146:2;;1197:1;1194;1187:12;1146:2;1234:6;1221:20;1256:88;1271:72;1336:6;1271:72;;1256:88;1247:97;;1361:5;1386:6;1379:5;1372:21;1416:4;1408:6;1404:17;1394:27;;1438:4;1433:3;1429:14;1422:21;;1491:6;1538:3;1530:4;1522:6;1518:17;1513:3;1509:27;1506:36;1503:2;;;1555:1;1552;1545:12;1503:2;1580:1;1565:214;1590:6;1587:1;1584:13;1565:214;;;1648:3;1670:45;1711:3;1699:10;1670:45;;;1658:58;;-1:-1;1739:4;1730:14;;;;1758;;;;;1612:1;1605:9;1565:214;;1811:707;;1928:3;1921:4;1913:6;1909:17;1905:27;1895:2;;1946:1;1943;1936:12;1895:2;1983:6;1970:20;2005:80;2020:64;2077:6;2020:64;;2005:80;1996:89;;2102:5;2127:6;2120:5;2113:21;2157:4;2149:6;2145:17;2135:27;;2179:4;2174:3;2170:14;2163:21;;2232:6;2279:3;2271:4;2263:6;2259:17;2254:3;2250:27;2247:36;2244:2;;;2296:1;2293;2286:12;2244:2;2321:1;2306:206;2331:6;2328:1;2325:13;2306:206;;;2389:3;2411:37;2444:3;2432:10;2411:37;;;2399:50;;-1:-1;2472:4;2463:14;;;;2491;;;;;2353:1;2346:9;2306:206;;2526:128;2601:13;;2619:30;2601:13;2619:30;;2662:442;;2764:3;2757:4;2749:6;2745:17;2741:27;2731:2;;2782:1;2779;2772:12;2731:2;2819:6;2806:20;2841:65;2856:49;2898:6;2856:49;;2841:65;2832:74;;2926:6;2919:5;2912:21;2962:4;2954:6;2950:17;2995:4;2988:5;2984:16;3030:3;3021:6;3016:3;3012:16;3009:25;3006:2;;;3047:1;3044;3037:12;3006:2;3057:41;3091:6;3086:3;3081;3057:41;;;2724:380;;;;;;;;3112:130;3179:20;;3204:33;3179:20;3204:33;;3249:241;;3353:2;3341:9;3332:7;3328:23;3324:32;3321:2;;;3369:1;3366;3359:12;3321:2;3404:1;3421:53;3466:7;3446:9;3421:53;;;3411:63;3315:175;-1:-1;;;;3315:175;3497:1405;;;;;;;;3779:3;3767:9;3758:7;3754:23;3750:33;3747:2;;;3796:1;3793;3786:12;3747:2;3831:1;3848:61;3901:7;3881:9;3848:61;;;3838:71;;3810:105;3974:2;3963:9;3959:18;3946:32;-1:-1;;;;;3990:6;3987:30;3984:2;;;4030:1;4027;4020:12;3984:2;4050:86;4128:7;4119:6;4108:9;4104:22;4050:86;;;4040:96;;3925:217;4201:2;4190:9;4186:18;4173:32;-1:-1;;;;;4217:6;4214:30;4211:2;;;4257:1;4254;4247:12;4211:2;4277:78;4347:7;4338:6;4327:9;4323:22;4277:78;;;4267:88;;4152:209;4420:2;4409:9;4405:18;4392:32;-1:-1;;;;;4436:6;4433:30;4430:2;;;4476:1;4473;4466:12;4430:2;4496:63;4551:7;4542:6;4531:9;4527:22;4496:63;;;4486:73;;4371:194;4596:3;4615:53;4660:7;4651:6;4640:9;4636:22;4615:53;;;4605:63;;4575:99;4705:3;4724:53;4769:7;4760:6;4749:9;4745:22;4724:53;;;4714:63;;4684:99;4814:3;4833:53;4878:7;4869:6;4858:9;4854:22;4833:53;;;4823:63;;4793:99;3741:1161;;;;;;;;;;;4909:1531;;;;;;;;;5208:3;5196:9;5187:7;5183:23;5179:33;5176:2;;;5225:1;5222;5215:12;5176:2;5260:1;5277:61;5330:7;5310:9;5277:61;;;5267:71;;5239:105;5403:2;5392:9;5388:18;5375:32;-1:-1;;;;;5419:6;5416:30;5413:2;;;5459:1;5456;5449:12;5413:2;5479:86;5557:7;5548:6;5537:9;5533:22;5479:86;;;5469:96;;5354:217;5630:2;5619:9;5615:18;5602:32;-1:-1;;;;;5646:6;5643:30;5640:2;;;5686:1;5683;5676:12;5640:2;5706:78;5776:7;5767:6;5756:9;5752:22;5706:78;;;5696:88;;5581:209;5849:2;5838:9;5834:18;5821:32;-1:-1;;;;;5865:6;5862:30;5859:2;;;5905:1;5902;5895:12;5859:2;5925:63;5980:7;5971:6;5960:9;5956:22;5925:63;;;5915:73;;5800:194;6025:3;6044:53;6089:7;6080:6;6069:9;6065:22;6044:53;;;6034:63;;6004:99;6134:3;6153:53;6198:7;6189:6;6178:9;6174:22;6153:53;;;6143:63;;6113:99;6243:3;6262:53;6307:7;6298:6;6287:9;6283:22;6262:53;;;6252:63;;6222:99;6352:3;6371:53;6416:7;6407:6;6396:9;6392:22;6371:53;;;6361:63;;6331:99;5170:1270;;;;;;;;;;;;6447:507;;;;6593:2;6581:9;6572:7;6568:23;6564:32;6561:2;;;6609:1;6606;6599:12;6561:2;6644:1;6661:61;6714:7;6694:9;6661:61;;;6651:71;;6623:105;6759:2;6777:53;6822:7;6813:6;6802:9;6798:22;6777:53;;;6767:63;;6738:98;6867:2;6885:53;6930:7;6921:6;6910:9;6906:22;6885:53;;;6875:63;;6846:98;6555:399;;;;;;6961:769;;;;;7149:3;7137:9;7128:7;7124:23;7120:33;7117:2;;;7166:1;7163;7156:12;7117:2;7201:1;7218:61;7271:7;7251:9;7218:61;;;7208:71;;7180:105;7316:2;7334:53;7379:7;7370:6;7359:9;7355:22;7334:53;;;7324:63;;7295:98;7424:2;7442:53;7487:7;7478:6;7467:9;7463:22;7442:53;;;7432:63;;7403:98;7560:2;7549:9;7545:18;7532:32;-1:-1;;;;;7576:6;7573:30;7570:2;;;7616:1;7613;7606:12;7570:2;7636:78;7706:7;7697:6;7686:9;7682:22;7636:78;;;7626:88;;7511:209;7111:619;;;;;;;;7737:875;;;;;7935:3;7923:9;7914:7;7910:23;7906:33;7903:2;;;7952:1;7949;7942:12;7903:2;7987:1;8004:53;8049:7;8029:9;8004:53;;;7994:63;;7966:97;8094:2;8112:53;8157:7;8148:6;8137:9;8133:22;8112:53;;;8102:63;;8073:98;8230:2;8219:9;8215:18;8202:32;-1:-1;;;;;8246:6;8243:30;8240:2;;;8286:1;8283;8276:12;8240:2;8306:86;8384:7;8375:6;8364:9;8360:22;8306:86;;;8296:96;;8181:217;8457:2;8446:9;8442:18;8429:32;-1:-1;;;;;8473:6;8470:30;8467:2;;;8513:1;8510;8503:12;8467:2;8533:63;8588:7;8579:6;8568:9;8564:22;8533:63;;8619:1263;;;;;;;8876:3;8864:9;8855:7;8851:23;8847:33;8844:2;;;8893:1;8890;8883:12;8844:2;8928:1;8945:53;8990:7;8970:9;8945:53;;;8935:63;;8907:97;9035:2;9053:53;9098:7;9089:6;9078:9;9074:22;9053:53;;;9043:63;;9014:98;9171:2;9160:9;9156:18;9143:32;-1:-1;;;;;9187:6;9184:30;9181:2;;;9227:1;9224;9217:12;9181:2;9247:86;9325:7;9316:6;9305:9;9301:22;9247:86;;;9237:96;;9122:217;9398:2;9387:9;9383:18;9370:32;-1:-1;;;;;9414:6;9411:30;9408:2;;;9454:1;9451;9444:12;9408:2;9474:63;9529:7;9520:6;9509:9;9505:22;9474:63;;;9464:73;;9349:194;9574:3;9593:53;9638:7;9629:6;9618:9;9614:22;9593:53;;;9583:63;;9553:99;9711:3;9700:9;9696:19;9683:33;-1:-1;;;;;9728:6;9725:30;9722:2;;;9768:1;9765;9758:12;9722:2;9788:78;9858:7;9849:6;9838:9;9834:22;9788:78;;;9778:88;;9662:210;8838:1044;;;;;;;;;9889:627;;;;10052:2;10040:9;10031:7;10027:23;10023:32;10020:2;;;10068:1;10065;10058:12;10020:2;10103:1;10120:53;10165:7;10145:9;10120:53;;;10110:63;;10082:97;10210:2;10228:53;10273:7;10264:6;10253:9;10249:22;10228:53;;;10218:63;;10189:98;10346:2;10335:9;10331:18;10318:32;-1:-1;;;;;10362:6;10359:30;10356:2;;;10402:1;10399;10392:12;10356:2;10422:78;10492:7;10483:6;10472:9;10468:22;10422:78;;10523:597;;;;10671:2;10659:9;10650:7;10646:23;10642:32;10639:2;;;10687:1;10684;10677:12;10639:2;10722:1;10739:53;10784:7;10764:9;10739:53;;;10729:63;;10701:97;10829:2;10847:53;10892:7;10883:6;10872:9;10868:22;10847:53;;;10837:63;;10808:98;10965:2;10954:9;10950:18;10937:32;-1:-1;;;;;10981:6;10978:30;10975:2;;;11021:1;11018;11011:12;10975:2;11041:63;11096:7;11087:6;11076:9;11072:22;11041:63;;11625:753;;;;;11805:3;11793:9;11784:7;11780:23;11776:33;11773:2;;;11822:1;11819;11812:12;11773:2;11857:1;11874:53;11919:7;11899:9;11874:53;;;11864:63;;11836:97;11964:2;11982:53;12027:7;12018:6;12007:9;12003:22;11982:53;;;11972:63;;11943:98;12072:2;12090:53;12135:7;12126:6;12115:9;12111:22;12090:53;;;12080:63;;12051:98;12208:2;12197:9;12193:18;12180:32;-1:-1;;;;;12224:6;12221:30;12218:2;;;12264:1;12261;12254:12;12218:2;12284:78;12354:7;12345:6;12334:9;12330:22;12284:78;;12385:769;;;;;12573:3;12561:9;12552:7;12548:23;12544:33;12541:2;;;12590:1;12587;12580:12;12541:2;12625:1;12642:53;12687:7;12667:9;12642:53;;;12632:63;;12604:97;12732:2;12750:53;12795:7;12786:6;12775:9;12771:22;12750:53;;;12740:63;;12711:98;12840:2;12858:53;12903:7;12894:6;12883:9;12879:22;12858:53;;;12848:63;;12819:98;12976:2;12965:9;12961:18;12948:32;-1:-1;;;;;12992:6;12989:30;12986:2;;;13032:1;13029;13022:12;12986:2;13052:86;13130:7;13121:6;13110:9;13106:22;13052:86;;13161:1405;;;;;;;;13443:3;13431:9;13422:7;13418:23;13414:33;13411:2;;;13460:1;13457;13450:12;13411:2;13495:1;13512:53;13557:7;13537:9;13512:53;;;13502:63;;13474:97;13602:2;13620:53;13665:7;13656:6;13645:9;13641:22;13620:53;;;13610:63;;13581:98;13710:2;13728:53;13773:7;13764:6;13753:9;13749:22;13728:53;;;13718:63;;13689:98;13846:2;13835:9;13831:18;13818:32;-1:-1;;;;;13862:6;13859:30;13856:2;;;13902:1;13899;13892:12;13856:2;13922:86;14000:7;13991:6;13980:9;13976:22;13922:86;;;13912:96;;13797:217;14073:3;14062:9;14058:19;14045:33;-1:-1;;;;;14090:6;14087:30;14084:2;;;14130:1;14127;14120:12;14084:2;14150:86;14228:7;14219:6;14208:9;14204:22;14150:86;;;14140:96;;14024:218;14301:3;14290:9;14286:19;14273:33;-1:-1;;;;;14318:6;14315:30;14312:2;;;14358:1;14355;14348:12;14312:2;14378:63;14433:7;14424:6;14413:9;14409:22;14378:63;;14573:1001;;;;;;14788:3;14776:9;14767:7;14763:23;14759:33;14756:2;;;14805:1;14802;14795:12;14756:2;14840:1;14857:53;14902:7;14882:9;14857:53;;;14847:63;;14819:97;14947:2;14965:53;15010:7;15001:6;14990:9;14986:22;14965:53;;;14955:63;;14926:98;15055:2;15073:53;15118:7;15109:6;15098:9;15094:22;15073:53;;;15063:63;;15034:98;15191:2;15180:9;15176:18;15163:32;-1:-1;;;;;15207:6;15204:30;15201:2;;;15247:1;15244;15237:12;15201:2;15267:86;15345:7;15336:6;15325:9;15321:22;15267:86;;;15257:96;;15142:217;15418:3;15407:9;15403:19;15390:33;-1:-1;;;;;15435:6;15432:30;15429:2;;;15475:1;15472;15465:12;15429:2;15495:63;15550:7;15541:6;15530:9;15526:22;15495:63;;;15485:73;;15369:195;14750:824;;;;;;;;;16341:723;;;;;16506:3;16494:9;16485:7;16481:23;16477:33;16474:2;;;16523:1;16520;16513:12;16474:2;16558:1;16575:53;16620:7;16600:9;16575:53;;;16565:63;;16537:97;16665:2;16683:53;16728:7;16719:6;16708:9;16704:22;16683:53;;;16673:63;;16644:98;16773:2;16791:53;16836:7;16827:6;16816:9;16812:22;16791:53;;17071:617;;;;;17226:3;17214:9;17205:7;17201:23;17197:33;17194:2;;;17243:1;17240;17233:12;17194:2;17278:1;17295:53;17340:7;17320:9;17295:53;;;17285:63;;17257:97;17385:2;17403:53;17448:7;17439:6;17428:9;17424:22;17403:53;;;17393:63;;17364:98;17493:2;17511:53;17556:7;17547:6;17536:9;17532:22;17511:53;;;17501:63;;17472:98;17601:2;17619:53;17664:7;17655:6;17644:9;17640:22;17619:53;;17695:759;;;;;;17875:3;17863:9;17854:7;17850:23;17846:33;17843:2;;;17892:1;17889;17882:12;17843:2;17927:1;17944:53;17989:7;17969:9;17944:53;;;17934:63;;17906:97;18034:2;18052:53;18097:7;18088:6;18077:9;18073:22;18052:53;;;18042:63;;18013:98;18142:2;18160:53;18205:7;18196:6;18185:9;18181:22;18160:53;;;18150:63;;18121:98;18250:2;18268:53;18313:7;18304:6;18293:9;18289:22;18268:53;;;18258:63;;18229:98;18358:3;18377:61;18430:7;18421:6;18410:9;18406:22;18377:61;;18461:879;;;;;;18658:3;18646:9;18637:7;18633:23;18629:33;18626:2;;;18675:1;18672;18665:12;18626:2;18710:1;18727:53;18772:7;18752:9;18727:53;;;18717:63;;18689:97;18817:2;18835:53;18880:7;18871:6;18860:9;18856:22;18835:53;;;18825:63;;18796:98;18925:2;18943:53;18988:7;18979:6;18968:9;18964:22;18943:53;;;18933:63;;18904:98;19033:2;19051:53;19096:7;19087:6;19076:9;19072:22;19051:53;;;19041:63;;19012:98;19169:3;19158:9;19154:19;19141:33;-1:-1;;;;;19186:6;19183:30;19180:2;;;19226:1;19223;19216:12;19180:2;19246:78;19316:7;19307:6;19296:9;19292:22;19246:78;;19347:885;;;;;;;19544:3;19532:9;19523:7;19519:23;19515:33;19512:2;;;19561:1;19558;19551:12;19512:2;19596:1;19613:53;19658:7;19638:9;19613:53;;;19603:63;;19575:97;19703:2;19721:53;19766:7;19757:6;19746:9;19742:22;19721:53;;;19711:63;;19682:98;19811:2;19829:53;19874:7;19865:6;19854:9;19850:22;19829:53;;;19819:63;;19790:98;19919:2;19937:53;19982:7;19973:6;19962:9;19958:22;19937:53;;;19927:63;;19898:98;20027:3;20046:53;20091:7;20082:6;20071:9;20067:22;20046:53;;;20036:63;;20006:99;20136:3;20155:61;20208:7;20199:6;20188:9;20184:22;20155:61;;20239:257;;20351:2;20339:9;20330:7;20326:23;20322:32;20319:2;;;20367:1;20364;20357:12;20319:2;20402:1;20419:61;20472:7;20452:9;20419:61;;20503:241;;20607:2;20595:9;20586:7;20582:23;20578:32;20575:2;;;20623:1;20620;20613:12;20575:2;20658:1;20675:53;20720:7;20700:9;20675:53;;20751:366;;;20872:2;20860:9;20851:7;20847:23;20843:32;20840:2;;;20888:1;20885;20878:12;20840:2;20923:1;20940:53;20985:7;20965:9;20940:53;;;20930:63;;20902:97;21030:2;21048:53;21093:7;21084:6;21073:9;21069:22;21048:53;;;21038:63;;21009:98;20834:283;;;;;;21125:205;;21228:62;21286:3;21278:6;21228:62;;;-1:-1;;21319:4;21310:14;;21221:109;21521:281;;21660:102;21758:3;21750:6;21660:102;;;-1:-1;;21791:4;21782:14;;21653:149;21811:257;;21962:100;22058:3;22050:6;21962:100;;;21948:114;21941:127;-1:-1;;;21941:127;22077:173;;22164:46;22206:3;22198:6;22164:46;;22258:142;22349:45;22388:5;22349:45;;;22344:3;22337:58;22331:69;;;22407:127;22496:32;22522:5;22496:32;;22946:690;;23091:54;23139:5;23091:54;;;23158:86;23237:6;23232:3;23158:86;;;23151:93;;23265:56;23315:5;23265:56;;;23341:7;23369:1;23354:260;23379:6;23376:1;23373:13;23354:260;;;23446:6;23440:13;23467:63;23526:3;23511:13;23467:63;;;23460:70;;23547:60;23600:6;23547:60;;;23537:70;-1:-1;;23401:1;23394:9;23354:260;;;-1:-1;23627:3;;23070:566;-1:-1;;;;;23070:566;23675:654;;23806:50;23850:5;23806:50;;;23869:76;23938:6;23933:3;23869:76;;;23862:83;;23966:52;24012:5;23966:52;;;24038:7;24066:1;24051:256;24076:6;24073:1;24070:13;24051:256;;;24143:6;24137:13;24164:63;24223:3;24208:13;24164:63;;;24157:70;;24244:56;24293:6;24244:56;;;24234:66;-1:-1;;24098:1;24091:9;24051:256;;24368:709;;24510:51;24555:5;24510:51;;;24574:86;24653:6;24648:3;24574:86;;;24567:93;;24681:53;24728:5;24681:53;;;24754:7;24782:1;24767:288;24792:6;24789:1;24786:13;24767:288;;;24853:44;24890:6;24853:44;;;24911:63;24970:3;24955:13;24911:63;;;24904:70;;24991:57;25041:6;24991:57;;;24981:67;-1:-1;;24814:1;24807:9;24767:288;;25132:754;;25293:62;25349:5;25293:62;;;25368:94;25455:6;25450:3;25368:94;;;25361:101;;25483:64;25541:5;25483:64;;;25567:7;25595:1;25580:284;25605:6;25602:1;25599:13;25580:284;;;25672:6;25666:13;25693:79;25768:3;25753:13;25693:79;;;25686:86;;25789:68;25850:6;25789:68;;;25779:78;-1:-1;;25627:1;25620:9;25580:284;;25941:718;;26088:58;26140:5;26088:58;;;26159:84;26236:6;26231:3;26159:84;;;26152:91;;26264:60;26318:5;26264:60;;;26344:7;26372:1;26357:280;26382:6;26379:1;26376:13;26357:280;;;26449:6;26443:13;26470:79;26545:3;26530:13;26470:79;;;26463:86;;26566:64;26623:6;26566:64;;;26556:74;-1:-1;;26404:1;26397:9;26357:280;;26714:781;;26872:59;26925:5;26872:59;;;26944:94;27031:6;27026:3;26944:94;;;26937:101;;27059:61;27114:5;27059:61;;;27140:7;27168:1;27153:320;27178:6;27175:1;27172:13;27153:320;;;27239:52;27284:6;27239:52;;;27305:79;27380:3;27365:13;27305:79;;;27298:86;;27401:65;27459:6;27401:65;;;27391:75;-1:-1;;27200:1;27193:9;27153:320;;27592:862;;27775:76;27845:5;27775:76;;;27864:102;27959:6;27954:3;27864:102;;;27857:109;;27987:78;28059:5;27987:78;;;28085:7;28113:1;28098:334;28123:6;28120:1;28117:13;28098:334;;;28190:6;28184:13;28211:115;28322:3;28307:13;28211:115;;;28204:122;;28343:82;28418:6;28343:82;;;28333:92;-1:-1;;28145:1;28138:9;28098:334;;28549:1012;;28730:75;28799:5;28730:75;;;28818:101;28912:6;28907:3;28818:101;;;28811:108;;28942:3;28984:4;28976:6;28972:17;28967:3;28963:27;29011:77;29082:5;29011:77;;;29108:7;29136:1;29121:401;29146:6;29143:1;29140:13;29121:401;;;29208:9;29202:4;29198:20;29193:3;29186:33;29253:6;29247:13;29275:114;29384:4;29369:13;29275:114;;;29267:122;;29406:81;29480:6;29406:81;;;29510:4;29501:14;;;;;29396:91;-1:-1;;29168:1;29161:9;29121:401;;;-1:-1;29535:4;;28709:852;-1:-1;;;;;;;28709:852;29600:690;;29745:54;29793:5;29745:54;;;29812:86;29891:6;29886:3;29812:86;;;29805:93;;29919:56;29969:5;29919:56;;;29995:7;30023:1;30008:260;30033:6;30030:1;30027:13;30008:260;;;30100:6;30094:13;30121:63;30180:3;30165:13;30121:63;;;30114:70;;30201:60;30254:6;30201:60;;;30191:70;-1:-1;;30055:1;30048:9;30008:260;;30298:94;30365:21;30380:5;30365:21;;30510:347;;30622:39;30655:5;30622:39;;;30673:71;30737:6;30732:3;30673:71;;;30666:78;;30749:52;30794:6;30789:3;30782:4;30775:5;30771:16;30749:52;;;30822:29;30844:6;30822:29;;;30813:39;;;;30602:255;-1:-1;;;30602:255;30935:2139;31154:22;;31084:5;31189:37;;;30935:2139;;31075:15;;;;31241:115;31075:15;31154:22;31241:115;;;31233:123;;31105:263;31446:4;31439:5;31435:16;31429:23;31498:3;31492:4;31488:14;31481:4;31476:3;31472:14;31465:38;31518:99;31612:4;31598:12;31518:99;;;31510:107;;31378:251;31706:4;31699:5;31695:16;31689:23;31718:63;31775:4;31770:3;31766:14;31752:12;31718:63;;;31639:148;31861:4;31854:5;31850:16;31844:23;31873:63;31930:4;31925:3;31921:14;31907:12;31873:63;;;31797:145;32023:4;32016:5;32012:16;32006:23;32035:63;32092:4;32087:3;32083:14;32069:12;32035:63;;;31952:152;32180:4;32173:5;32169:16;32163:23;32192:63;32249:4;32244:3;32240:14;32226:12;32192:63;;;32114:147;32340:4;32333:5;32329:16;32323:23;32352:57;32403:4;32398:3;32394:14;32380:12;32352:57;;;32271:144;32496:4;32489:5;32485:16;32479:23;32548:3;32542:4;32538:14;32531:4;32526:3;32522:14;32515:38;32568:149;32712:4;32698:12;32568:149;;;32560:157;;32425:304;32811:5;32804;32800:17;32794:24;32865:3;32859:4;32855:14;32847:5;32842:3;32838:15;32831:39;32885:151;33031:4;33017:12;32885:151;;;32877:159;31057:2017;-1:-1;;;;;31057:2017;33164:647;33376:22;;33303:4;33294:14;;;33404:78;33298:3;33376:22;33404:78;;;33323:165;33563:4;33556:5;33552:16;33546:23;33575:63;33632:4;33627:3;33623:14;33609:12;33575:63;;;33498:146;33721:4;33714:5;33710:16;33704:23;33733:57;33784:4;33779:3;33775:14;33761:12;33733:57;;;33654:142;33276:535;;;;33899:616;34116:22;;34044:4;34151:37;;;33899:616;;34035:14;;;;34203:115;34035:14;34116:22;34203:115;;;34195:123;;34064:266;34408:4;34401:5;34397:16;34391:23;34420:63;34477:4;34472:3;34468:14;34454:12;34420:63;;;-1:-1;34506:4;34017:498;-1:-1;;;34017:498;34522:103;34595:24;34613:5;34595:24;;34752:213;34870:2;34855:18;;34884:71;34859:9;34928:6;34884:71;;34972:451;35154:2;35139:18;;35168:79;35143:9;35220:6;35168:79;;;35258:72;35326:2;35315:9;35311:18;35302:6;35258:72;;;35341;35409:2;35398:9;35394:18;35385:6;35341:72;;35430:340;35584:2;35569:18;;35598:79;35573:9;35650:6;35598:79;;;35688:72;35756:2;35745:9;35741:18;35732:6;35688:72;;35777:451;35959:2;35944:18;;35973:71;35948:9;36017:6;35973:71;;;36055:80;36131:2;36120:9;36116:18;36107:6;36055:80;;36235:201;36347:2;36332:18;;36361:65;36336:9;36399:6;36361:65;;36443:357;36609:2;36623:47;;;36594:18;;36684:106;36594:18;36776:6;36684:106;;36807:213;36925:2;36910:18;;36939:71;36914:9;36983:6;36939:71;;37027:1443;37493:3;37478:19;;37508:71;37482:9;37552:6;37508:71;;;37590:88;37674:2;37663:9;37659:18;37650:6;37590:88;;;37726:9;37720:4;37716:20;37711:2;37700:9;37696:18;37689:48;37751:124;37870:4;37861:6;37751:124;;;37743:132;;37923:9;37917:4;37913:20;37908:2;37897:9;37893:18;37886:48;37948:108;38051:4;38042:6;37948:108;;;37940:116;;38105:9;38099:4;38095:20;38089:3;38078:9;38074:19;38067:49;38130:78;38203:4;38194:6;38130:78;;;38122:86;;38219:73;38287:3;38276:9;38272:19;38263:6;38219:73;;;38303;38371:3;38360:9;38356:19;38347:6;38303:73;;;38387;38455:3;38444:9;38440:19;38431:6;38387:73;;38477:599;38709:2;38694:18;;38723:71;38698:9;38767:6;38723:71;;;38805:80;38881:2;38870:9;38866:18;38857:6;38805:80;;;38933:9;38927:4;38923:20;38918:2;38907:9;38903:18;38896:48;38958:108;39061:4;39052:6;38958:108;;39083:577;39304:2;39289:18;;39318:71;39293:9;39362:6;39318:71;;;39400:72;39468:2;39457:9;39453:18;39444:6;39400:72;;;39520:9;39514:4;39510:20;39505:2;39494:9;39490:18;39483:48;39545:105;39645:4;39636:6;39545:105;;39667:1219;40077:3;40062:19;;40092:71;40066:9;40136:6;40092:71;;;40174:72;40242:2;40231:9;40227:18;40218:6;40174:72;;;40294:9;40288:4;40284:20;40279:2;40268:9;40264:18;40257:48;40319:124;40438:4;40429:6;40319:124;;;40311:132;;40491:9;40485:4;40481:20;40476:2;40465:9;40461:18;40454:48;40516:124;40635:4;40626:6;40516:124;;;40508:132;;40689:9;40683:4;40679:20;40673:3;40662:9;40658:19;40651:49;40714:78;40787:4;40778:6;40714:78;;;40706:86;;40803:73;40871:3;40860:9;40856:19;40847:6;40803:73;;;40048:838;;;;;;;;;;40893:609;41130:2;41115:18;;41144:71;41119:9;41188:6;41144:71;;;41226:72;41294:2;41283:9;41279:18;41270:6;41226:72;;;41346:9;41340:4;41336:20;41331:2;41320:9;41316:18;41309:48;41371:121;41487:4;41478:6;41371:121;;41509:583;41733:2;41718:18;;41747:71;41722:9;41791:6;41747:71;;;41829:72;41897:2;41886:9;41882:18;41873:6;41829:72;;42099:523;42293:2;42278:18;;42307:71;42282:9;42351:6;42307:71;;;42389:72;42457:2;42446:9;42442:18;42433:6;42389:72;;;42509:9;42503:4;42499:20;42494:2;42483:9;42479:18;42472:48;42534:78;42607:4;42598:6;42534:78;;42629:435;42803:2;42788:18;;42817:71;42792:9;42861:6;42817:71;;43071:647;43295:3;43280:19;;43310:71;43284:9;43354:6;43310:71;;;43392:72;43460:2;43449:9;43445:18;43436:6;43392:72;;;43475;43543:2;43532:9;43528:18;43519:6;43475:72;;;43558;43626:2;43615:9;43611:18;43602:6;43558:72;;;43641:67;43703:3;43692:9;43688:19;43679:6;43641:67;;;43266:452;;;;;;;;;43725:324;43871:2;43856:18;;43885:71;43860:9;43929:6;43885:71;;44056:579;44274:3;44259:19;;44289:71;44263:9;44333:6;44289:71;;;44371:72;44439:2;44428:9;44424:18;44415:6;44371:72;;;44454:88;44538:2;44527:9;44523:18;44514:6;44454:88;;;44553:72;44621:2;44610:9;44606:18;44597:6;44553:72;;44642:695;44894:3;44879:19;;44909:71;44883:9;44953:6;44909:71;;;44991:72;45059:2;45048:9;45044:18;45035:6;44991:72;;;45074;45142:2;45131:9;45127:18;45118:6;45074:72;;;45194:9;45188:4;45184:20;45179:2;45168:9;45164:18;45157:48;45219:108;45322:4;45313:6;45219:108;;45344:815;45632:3;45617:19;;45647:71;45621:9;45691:6;45647:71;;;45729:72;45797:2;45786:9;45782:18;45773:6;45729:72;;;45849:9;45843:4;45839:20;45834:2;45823:9;45819:18;45812:48;45874:124;45993:4;45984:6;45874:124;;;45866:132;;46046:9;46040:4;46036:20;46031:2;46020:9;46016:18;46009:48;46071:78;46144:4;46135:6;46071:78;;46166:927;46482:3;46467:19;;46497:71;46471:9;46541:6;46497:71;;;46579:72;46647:2;46636:9;46632:18;46623:6;46579:72;;;46699:9;46693:4;46689:20;46684:2;46673:9;46669:18;46662:48;46724:124;46843:4;46834:6;46724:124;;;46716:132;;46896:9;46890:4;46886:20;46881:2;46870:9;46866:18;46859:48;46921:78;46994:4;46985:6;46921:78;;;46913:86;;47010:73;47078:3;47067:9;47063:19;47054:6;47010:73;;47100:256;47162:2;47156:9;47188:17;;;-1:-1;;;;;47248:34;;47284:22;;;47245:62;47242:2;;;47320:1;47317;47310:12;47242:2;47336;47329:22;47140:216;;-1:-1;47140:216;47363:304;;-1:-1;;;;;47514:6;47511:30;47508:2;;;47554:1;47551;47544:12;47508:2;-1:-1;47589:4;47577:17;;;47642:15;;47445:222;48304:322;;-1:-1;;;;;48440:6;48437:30;48434:2;;;48480:1;48477;48470:12;48434:2;-1:-1;48611:4;48547;48524:17;;;;-1:-1;;48520:33;48601:15;;48371:255;48633:147;48753:4;48744:14;;48701:79;48945:173;;49055:14;;;49097:4;49084:18;;;49014:104;50158:133;50257:12;;50228:63;50442:141;50548:12;;50513:70;51876:102;51971:1;51962:11;;51948:30;52733:168;52841:19;;;52890:4;52881:14;;52834:67;54240:134;-1:-1;;;;;54315:54;;54298:76;54530:91;;54592:24;54610:5;54592:24;;54734:85;54800:13;54793:21;;54776:43;55033:129;;55120:37;55151:5;55169:121;55248:37;55279:5;55248:37;;55413:145;55494:6;55489:3;55484;55471:30;-1:-1;55550:1;55532:16;;55525:27;55464:94;55567:268;55632:1;55639:101;55653:6;55650:1;55647:13;55639:101;;;55720:11;;;55714:18;55701:11;;;55694:39;55675:2;55668:10;55639:101;;;55755:6;55752:1;55749:13;55746:2;;;-1:-1;;55820:1;55802:16;;55795:27;55616:219;55843:176;;55933:81;55964:49;56002:10;55964:49;;;55933:81;;56225:138;;56301:57;56352:4;56346:11;56301:57;;56531:97;56619:2;56599:14;-1:-1;;56595:28;;56579:49;56761:117;56830:24;56848:5;56830:24;;;56823:5;56820:35;56810:2;;56869:1;56866;56859:12;56810:2;56804:74;;57025:111;57091:21;57106:5;57091:21;;57143:117;57212:24;57230:5;57212:24;", - "source": "pragma solidity >=0.5.0 < 0.6.0;\r\npragma experimental ABIEncoderV2;\r\n\r\nimport \"./inherited/ERC20Token.sol\";\r\nimport \"./inherited/ERC721Basic.sol\";\r\n\r\n\r\n/// @title StandardBounties\r\n/// @dev A contract for issuing bounties on Ethereum paying in ETH, ERC20, or ERC721 tokens\r\n/// @author Mark Beylifn , Gonçalo Sá , Kevin Owocki , Ricardo Guilherme Schmidt (@3esmit), Matt Garnett , Craig Williams \r\ncontract StandardBounties {\r\n\r\n using SafeMath for uint256;\r\n\r\n /*\r\n * Structs\r\n */\r\n\r\n struct Bounty {\r\n address payable[] issuers; // An array of individuals who have complete control over the bounty, and can edit any of its parameters\r\n address[] approvers; // An array of individuals who are allowed to accept the fulfillments for a particular bounty\r\n uint deadline; // The Unix timestamp before which all submissions must be made, and after which refunds may be processed\r\n address token; // The address of the token associated with the bounty (should be disregarded if the tokenVersion is 0)\r\n uint tokenVersion; // The version of the token being used for the bounty (0 for ETH, 20 for ERC20, 721 for ERC721)\r\n uint balance; // The number of tokens which the bounty is able to pay out or refund\r\n bool hasPaidOut; // A boolean storing whether or not the bounty has paid out at least once, meaning refunds are no longer allowed\r\n Fulfillment[] fulfillments; // An array of Fulfillments which store the various submissions which have been made to the bounty\r\n Contribution[] contributions; // An array of Contributions which store the contributions which have been made to the bounty\r\n }\r\n\r\n struct Fulfillment {\r\n address payable[] fulfillers; // An array of addresses who should receive payouts for a given submission\r\n address submitter; // The address of the individual who submitted the fulfillment, who is able to update the submission as needed\r\n }\r\n\r\n struct Contribution {\r\n address payable contributor; // The address of the individual who contributed\r\n uint amount; // The amount of tokens the user contributed\r\n bool refunded; // A boolean storing whether or not the contribution has been refunded yet\r\n }\r\n\r\n /*\r\n * Storage\r\n */\r\n\r\n uint public numBounties; // An integer storing the total number of bounties in the contract\r\n mapping(uint => Bounty) public bounties; // A mapping of bountyIDs to bounties\r\n mapping (uint => mapping (uint => bool)) public tokenBalances; // A mapping of bountyIds to tokenIds to booleans, storing whether a given bounty has a given ERC721 token in its balance\r\n\r\n\r\n address public owner; // The address of the individual who's allowed to set the metaTxRelayer address\r\n address public metaTxRelayer; // The address of the meta transaction relayer whose _sender is automatically trusted for all contract calls\r\n\r\n bool public callStarted; // Ensures mutex for the entire contract\r\n\r\n /*\r\n * Modifiers\r\n */\r\n\r\n modifier callNotStarted(){\r\n require(!callStarted);\r\n callStarted = true;\r\n _;\r\n callStarted = false;\r\n }\r\n\r\n modifier validateBountyArrayIndex(\r\n uint _index)\r\n {\r\n require(_index < numBounties);\r\n _;\r\n }\r\n\r\n modifier validateContributionArrayIndex(\r\n uint _bountyId,\r\n uint _index)\r\n {\r\n require(_index < bounties[_bountyId].contributions.length);\r\n _;\r\n }\r\n\r\n modifier validateFulfillmentArrayIndex(\r\n uint _bountyId,\r\n uint _index)\r\n {\r\n require(_index < bounties[_bountyId].fulfillments.length);\r\n _;\r\n }\r\n\r\n modifier validateIssuerArrayIndex(\r\n uint _bountyId,\r\n uint _index)\r\n {\r\n require(_index < bounties[_bountyId].issuers.length);\r\n _;\r\n }\r\n\r\n modifier validateApproverArrayIndex(\r\n uint _bountyId,\r\n uint _index)\r\n {\r\n require(_index < bounties[_bountyId].approvers.length);\r\n _;\r\n }\r\n\r\n modifier onlyIssuer(\r\n address _sender,\r\n uint _bountyId,\r\n uint _issuerId)\r\n {\r\n require(_sender == bounties[_bountyId].issuers[_issuerId]);\r\n _;\r\n }\r\n\r\n modifier onlySubmitter(\r\n address _sender,\r\n uint _bountyId,\r\n uint _fulfillmentId)\r\n {\r\n require(_sender ==\r\n bounties[_bountyId].fulfillments[_fulfillmentId].submitter);\r\n _;\r\n }\r\n\r\n modifier onlyContributor(\r\n address _sender,\r\n uint _bountyId,\r\n uint _contributionId)\r\n {\r\n require(_sender ==\r\n bounties[_bountyId].contributions[_contributionId].contributor);\r\n _;\r\n }\r\n\r\n modifier isApprover(\r\n address _sender,\r\n uint _bountyId,\r\n uint _approverId)\r\n {\r\n require(_sender == bounties[_bountyId].approvers[_approverId]);\r\n _;\r\n }\r\n\r\n modifier hasNotPaid(\r\n uint _bountyId)\r\n {\r\n require(!bounties[_bountyId].hasPaidOut);\r\n _;\r\n }\r\n\r\n modifier hasNotRefunded(\r\n uint _bountyId,\r\n uint _contributionId)\r\n {\r\n require(!bounties[_bountyId].contributions[_contributionId].refunded);\r\n _;\r\n }\r\n\r\n modifier senderIsValid(\r\n address _sender)\r\n {\r\n require(msg.sender == _sender || msg.sender == metaTxRelayer);\r\n _;\r\n }\r\n\r\n /*\r\n * Public functions\r\n */\r\n\r\n constructor() public {\r\n // The owner of the contract is automatically designated to be the deployer of the contract\r\n owner = msg.sender;\r\n }\r\n\r\n /// @dev setMetaTxRelayer(): Sets the address of the meta transaction relayer\r\n /// @param _relayer the address of the relayer\r\n function setMetaTxRelayer(address _relayer)\r\n external\r\n {\r\n require(msg.sender == owner); // Checks that only the owner can call\r\n require(metaTxRelayer == address(0)); // Ensures the meta tx relayer can only be set once\r\n metaTxRelayer = _relayer;\r\n }\r\n\r\n /// @dev issueBounty(): creates a new bounty\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _issuers the array of addresses who will be the issuers of the bounty\r\n /// @param _approvers the array of addresses who will be the approvers of the bounty\r\n /// @param _data the IPFS hash representing the JSON object storing the details of the bounty (see docs for schema details)\r\n /// @param _deadline the timestamp which will become the deadline of the bounty\r\n /// @param _token the address of the token which will be used for the bounty\r\n /// @param _tokenVersion the version of the token being used for the bounty (0 for ETH, 20 for ERC20, 721 for ERC721)\r\n function issueBounty(\r\n address payable _sender,\r\n address payable[] memory _issuers,\r\n address[] memory _approvers,\r\n string memory _data,\r\n uint _deadline,\r\n address _token,\r\n uint _tokenVersion)\r\n public\r\n senderIsValid(_sender)\r\n returns (uint)\r\n {\r\n require(_tokenVersion == 0 || _tokenVersion == 20 || _tokenVersion == 721); // Ensures a bounty can only be issued with a valid token version\r\n require(_issuers.length > 0 || _approvers.length > 0); // Ensures there's at least 1 issuer or approver, so funds don't get stuck\r\n\r\n uint bountyId = numBounties; // The next bounty's index will always equal the number of existing bounties\r\n\r\n Bounty storage newBounty = bounties[bountyId];\r\n newBounty.issuers = _issuers;\r\n newBounty.approvers = _approvers;\r\n newBounty.deadline = _deadline;\r\n newBounty.tokenVersion = _tokenVersion;\r\n\r\n if (_tokenVersion != 0){\r\n newBounty.token = _token;\r\n }\r\n\r\n numBounties = numBounties.add(1); // Increments the number of bounties, since a new one has just been added\r\n\r\n emit BountyIssued(bountyId,\r\n _sender,\r\n _issuers,\r\n _approvers,\r\n _data, // Instead of storing the string on-chain, it is emitted within the event for easy off-chain consumption\r\n _deadline,\r\n _token,\r\n _tokenVersion);\r\n\r\n return (bountyId);\r\n }\r\n\r\n /// @param _depositAmount the amount of tokens being deposited to the bounty, which will create a new contribution to the bounty\r\n\r\n\r\n function issueAndContribute(\r\n address payable _sender,\r\n address payable[] memory _issuers,\r\n address[] memory _approvers,\r\n string memory _data,\r\n uint _deadline,\r\n address _token,\r\n uint _tokenVersion,\r\n uint _depositAmount)\r\n public\r\n payable\r\n returns(uint)\r\n {\r\n uint bountyId = issueBounty(_sender, _issuers, _approvers, _data, _deadline, _token, _tokenVersion);\r\n\r\n contribute(_sender, bountyId, _depositAmount);\r\n\r\n return (bountyId);\r\n }\r\n\r\n\r\n /// @dev contribute(): Allows users to contribute tokens to a given bounty.\r\n /// Contributing merits no privelages to administer the\r\n /// funds in the bounty or accept submissions. Contributions\r\n /// are refundable but only on the condition that the deadline\r\n /// has elapsed, and the bounty has not yet paid out any funds.\r\n /// All funds deposited in a bounty are at the mercy of a\r\n /// bounty's issuers and approvers, so please be careful!\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _amount the amount of tokens being contributed\r\n function contribute(\r\n address payable _sender,\r\n uint _bountyId,\r\n uint _amount)\r\n public\r\n payable\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n callNotStarted\r\n {\r\n require(_amount > 0); // Contributions of 0 tokens or token ID 0 should fail\r\n\r\n bounties[_bountyId].contributions.push(\r\n Contribution(_sender, _amount, false)); // Adds the contribution to the bounty\r\n\r\n if (bounties[_bountyId].tokenVersion == 0){\r\n\r\n bounties[_bountyId].balance = bounties[_bountyId].balance.add(_amount); // Increments the balance of the bounty\r\n\r\n require(msg.value == _amount);\r\n } else if (bounties[_bountyId].tokenVersion == 20){\r\n\r\n bounties[_bountyId].balance = bounties[_bountyId].balance.add(_amount); // Increments the balance of the bounty\r\n\r\n require(msg.value == 0); // Ensures users don't accidentally send ETH alongside a token contribution, locking up funds\r\n require(ERC20Token(bounties[_bountyId].token).transferFrom(_sender,\r\n address(this),\r\n _amount));\r\n } else if (bounties[_bountyId].tokenVersion == 721){\r\n tokenBalances[_bountyId][_amount] = true; // Adds the 721 token to the balance of the bounty\r\n\r\n\r\n require(msg.value == 0); // Ensures users don't accidentally send ETH alongside a token contribution, locking up funds\r\n ERC721BasicToken(bounties[_bountyId].token).transferFrom(_sender,\r\n address(this),\r\n _amount);\r\n } else {\r\n revert();\r\n }\r\n\r\n emit ContributionAdded(_bountyId,\r\n bounties[_bountyId].contributions.length - 1, // The new contributionId\r\n _sender,\r\n _amount);\r\n }\r\n\r\n /// @dev refundContribution(): Allows users to refund the contributions they've\r\n /// made to a particular bounty, but only if the bounty\r\n /// has not yet paid out, and the deadline has elapsed.\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _contributionId the index of the contribution being refunded\r\n function refundContribution(\r\n address _sender,\r\n uint _bountyId,\r\n uint _contributionId)\r\n public\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n validateContributionArrayIndex(_bountyId, _contributionId)\r\n onlyContributor(_sender, _bountyId, _contributionId)\r\n hasNotPaid(_bountyId)\r\n hasNotRefunded(_bountyId, _contributionId)\r\n callNotStarted\r\n {\r\n require(now > bounties[_bountyId].deadline); // Refunds may only be processed after the deadline has elapsed\r\n\r\n Contribution storage contribution = bounties[_bountyId].contributions[_contributionId];\r\n\r\n contribution.refunded = true;\r\n\r\n transferTokens(_bountyId, contribution.contributor, contribution.amount); // Performs the disbursal of tokens to the contributor\r\n\r\n emit ContributionRefunded(_bountyId, _contributionId);\r\n }\r\n\r\n /// @dev refundMyContributions(): Allows users to refund their contributions in bulk\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _contributionIds the array of indexes of the contributions being refunded\r\n function refundMyContributions(\r\n address _sender,\r\n uint _bountyId,\r\n uint[] memory _contributionIds)\r\n public\r\n senderIsValid(_sender)\r\n {\r\n for (uint i = 0; i < _contributionIds.length; i++){\r\n refundContribution(_sender, _bountyId, _contributionIds[i]);\r\n }\r\n }\r\n\r\n /// @dev refundContributions(): Allows users to refund their contributions in bulk\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _issuerId the index of the issuer who is making the call\r\n /// @param _contributionIds the array of indexes of the contributions being refunded\r\n function refundContributions(\r\n address _sender,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint[] memory _contributionIds)\r\n public\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n onlyIssuer(_sender, _bountyId, _issuerId)\r\n callNotStarted\r\n {\r\n for (uint i = 0; i < _contributionIds.length; i++){\r\n require(_contributionIds[i] < bounties[_bountyId].contributions.length);\r\n\r\n Contribution storage contribution = bounties[_bountyId].contributions[_contributionIds[i]];\r\n\r\n require(!contribution.refunded);\r\n\r\n contribution.refunded = true;\r\n\r\n transferTokens(_bountyId, contribution.contributor, contribution.amount); // Performs the disbursal of tokens to the contributor\r\n }\r\n\r\n emit ContributionsRefunded(_bountyId, _sender, _contributionIds);\r\n }\r\n\r\n /// @dev drainBounty(): Allows an issuer to drain the funds from the bounty\r\n /// @notice when using this function, if an issuer doesn't drain the entire balance, some users may be able to refund their contributions, while others may not (which is unfair to them). Please use it wisely, only when necessary\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _issuerId the index of the issuer who is making the call\r\n /// @param _amounts an array of amounts of tokens to be sent. The length of the array should be 1 if the bounty is in ETH or ERC20 tokens. If it's an ERC721 bounty, the array should be the list of tokenIDs.\r\n function drainBounty(\r\n address payable _sender,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint[] memory _amounts)\r\n public\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n onlyIssuer(_sender, _bountyId, _issuerId)\r\n callNotStarted\r\n {\r\n if (bounties[_bountyId].tokenVersion == 0 || bounties[_bountyId].tokenVersion == 20){\r\n require(_amounts.length == 1); // ensures there's only 1 amount of tokens to be returned\r\n require(_amounts[0] <= bounties[_bountyId].balance); // ensures an issuer doesn't try to drain the bounty of more tokens than their balance permits\r\n transferTokens(_bountyId, _sender, _amounts[0]); // Performs the draining of tokens to the issuer\r\n } else {\r\n for (uint i = 0; i < _amounts.length; i++){\r\n require(tokenBalances[_bountyId][_amounts[i]]);// ensures an issuer doesn't try to drain the bounty of a token it doesn't have in its balance\r\n transferTokens(_bountyId, _sender, _amounts[i]);\r\n }\r\n }\r\n\r\n emit BountyDrained(_bountyId, _sender, _amounts);\r\n }\r\n\r\n /// @dev performAction(): Allows users to perform any generalized action\r\n /// associated with a particular bounty, such as applying for it\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _data the IPFS hash corresponding to a JSON object which contains the details of the action being performed (see docs for schema details)\r\n function performAction(\r\n address _sender,\r\n uint _bountyId,\r\n string memory _data)\r\n public\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n {\r\n emit ActionPerformed(_bountyId, _sender, _data); // The _data string is emitted in an event for easy off-chain consumption\r\n }\r\n\r\n /// @dev fulfillBounty(): Allows users to fulfill the bounty to get paid out\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _fulfillers the array of addresses which will receive payouts for the submission\r\n /// @param _data the IPFS hash corresponding to a JSON object which contains the details of the submission (see docs for schema details)\r\n function fulfillBounty(\r\n address _sender,\r\n uint _bountyId,\r\n address payable[] memory _fulfillers,\r\n string memory _data)\r\n public\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n {\r\n require(now < bounties[_bountyId].deadline); // Submissions are only allowed to be made before the deadline\r\n require(_fulfillers.length > 0); // Submissions with no fulfillers would mean no one gets paid out\r\n\r\n bounties[_bountyId].fulfillments.push(Fulfillment(_fulfillers, _sender));\r\n\r\n emit BountyFulfilled(_bountyId,\r\n (bounties[_bountyId].fulfillments.length - 1),\r\n _fulfillers,\r\n _data, // The _data string is emitted in an event for easy off-chain consumption\r\n _sender);\r\n }\r\n\r\n /// @dev updateFulfillment(): Allows the submitter of a fulfillment to update their submission\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _fulfillmentId the index of the fulfillment\r\n /// @param _fulfillers the new array of addresses which will receive payouts for the submission\r\n /// @param _data the new IPFS hash corresponding to a JSON object which contains the details of the submission (see docs for schema details)\r\n function updateFulfillment(\r\n address _sender,\r\n uint _bountyId,\r\n uint _fulfillmentId,\r\n address payable[] memory _fulfillers,\r\n string memory _data)\r\n public\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n validateFulfillmentArrayIndex(_bountyId, _fulfillmentId)\r\n onlySubmitter(_sender, _bountyId, _fulfillmentId) // Only the original submitter of a fulfillment may update their submission\r\n {\r\n bounties[_bountyId].fulfillments[_fulfillmentId].fulfillers = _fulfillers;\r\n emit FulfillmentUpdated(_bountyId,\r\n _fulfillmentId,\r\n _fulfillers,\r\n _data); // The _data string is emitted in an event for easy off-chain consumption\r\n }\r\n\r\n /// @dev acceptFulfillment(): Allows any of the approvers to accept a given submission\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _fulfillmentId the index of the fulfillment to be accepted\r\n /// @param _approverId the index of the approver which is making the call\r\n /// @param _tokenAmounts the array of token amounts which will be paid to the\r\n /// fulfillers, whose length should equal the length of the\r\n /// _fulfillers array of the submission. If the bounty pays\r\n /// in ERC721 tokens, then these should be the token IDs\r\n /// being sent to each of the individual fulfillers\r\n function acceptFulfillment(\r\n address _sender,\r\n uint _bountyId,\r\n uint _fulfillmentId,\r\n uint _approverId,\r\n uint[] memory _tokenAmounts)\r\n public\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n validateFulfillmentArrayIndex(_bountyId, _fulfillmentId)\r\n isApprover(_sender, _bountyId, _approverId)\r\n callNotStarted\r\n {\r\n // now that the bounty has paid out at least once, refunds are no longer possible\r\n bounties[_bountyId].hasPaidOut = true;\r\n\r\n Fulfillment storage fulfillment = bounties[_bountyId].fulfillments[_fulfillmentId];\r\n\r\n require(_tokenAmounts.length == fulfillment.fulfillers.length); // Each fulfiller should get paid some amount of tokens (this can be 0)\r\n\r\n for (uint256 i = 0; i < fulfillment.fulfillers.length; i++){\r\n if (_tokenAmounts[i] > 0){\r\n // for each fulfiller associated with the submission\r\n transferTokens(_bountyId, fulfillment.fulfillers[i], _tokenAmounts[i]);\r\n }\r\n }\r\n emit FulfillmentAccepted(_bountyId,\r\n _fulfillmentId,\r\n _sender,\r\n _tokenAmounts);\r\n }\r\n\r\n /// @dev fulfillAndAccept(): Allows any of the approvers to fulfill and accept a submission simultaneously\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _fulfillers the array of addresses which will receive payouts for the submission\r\n /// @param _data the IPFS hash corresponding to a JSON object which contains the details of the submission (see docs for schema details)\r\n /// @param _approverId the index of the approver which is making the call\r\n /// @param _tokenAmounts the array of token amounts which will be paid to the\r\n /// fulfillers, whose length should equal the length of the\r\n /// _fulfillers array of the submission. If the bounty pays\r\n /// in ERC721 tokens, then these should be the token IDs\r\n /// being sent to each of the individual fulfillers\r\n function fulfillAndAccept(\r\n address _sender,\r\n uint _bountyId,\r\n address payable[] memory _fulfillers,\r\n string memory _data,\r\n uint _approverId,\r\n uint[] memory _tokenAmounts)\r\n public\r\n senderIsValid(_sender)\r\n {\r\n // first fulfills the bounty on behalf of the fulfillers\r\n fulfillBounty(_sender, _bountyId, _fulfillers, _data);\r\n\r\n // then accepts the fulfillment\r\n acceptFulfillment(_sender,\r\n _bountyId,\r\n bounties[_bountyId].fulfillments.length - 1,\r\n _approverId,\r\n _tokenAmounts);\r\n }\r\n\r\n\r\n\r\n /// @dev changeBounty(): Allows any of the issuers to change the bounty\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _issuerId the index of the issuer who is calling the function\r\n /// @param _issuers the new array of addresses who will be the issuers of the bounty\r\n /// @param _approvers the new array of addresses who will be the approvers of the bounty\r\n /// @param _data the new IPFS hash representing the JSON object storing the details of the bounty (see docs for schema details)\r\n /// @param _deadline the new timestamp which will become the deadline of the bounty\r\n function changeBounty(\r\n address _sender,\r\n uint _bountyId,\r\n uint _issuerId,\r\n address payable[] memory _issuers,\r\n address payable[] memory _approvers,\r\n string memory _data,\r\n uint _deadline)\r\n public\r\n senderIsValid(_sender)\r\n {\r\n require(_bountyId < numBounties); // makes the validateBountyArrayIndex modifier in-line to avoid stack too deep errors\r\n require(_issuerId < bounties[_bountyId].issuers.length); // makes the validateIssuerArrayIndex modifier in-line to avoid stack too deep errors\r\n require(_sender == bounties[_bountyId].issuers[_issuerId]); // makes the onlyIssuer modifier in-line to avoid stack too deep errors\r\n\r\n require(_issuers.length > 0 || _approvers.length > 0); // Ensures there's at least 1 issuer or approver, so funds don't get stuck\r\n\r\n bounties[_bountyId].issuers = _issuers;\r\n bounties[_bountyId].approvers = _approvers;\r\n bounties[_bountyId].deadline = _deadline;\r\n emit BountyChanged(_bountyId,\r\n _sender,\r\n _issuers,\r\n _approvers,\r\n _data,\r\n _deadline);\r\n }\r\n\r\n /// @dev changeIssuer(): Allows any of the issuers to change a particular issuer of the bounty\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _issuerId the index of the issuer who is calling the function\r\n /// @param _issuerIdToChange the index of the issuer who is being changed\r\n /// @param _newIssuer the address of the new issuer\r\n function changeIssuer(\r\n address _sender,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint _issuerIdToChange,\r\n address payable _newIssuer)\r\n public\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n validateIssuerArrayIndex(_bountyId, _issuerIdToChange)\r\n onlyIssuer(_sender, _bountyId, _issuerId)\r\n {\r\n require(_issuerId < bounties[_bountyId].issuers.length || _issuerId == 0);\r\n\r\n bounties[_bountyId].issuers[_issuerIdToChange] = _newIssuer;\r\n\r\n emit BountyIssuersUpdated(_bountyId, _sender, bounties[_bountyId].issuers);\r\n }\r\n\r\n /// @dev changeApprover(): Allows any of the issuers to change a particular approver of the bounty\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _issuerId the index of the issuer who is calling the function\r\n /// @param _approverId the index of the approver who is being changed\r\n /// @param _approver the address of the new approver\r\n function changeApprover(\r\n address _sender,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint _approverId,\r\n address payable _approver)\r\n external\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n onlyIssuer(_sender, _bountyId, _issuerId)\r\n validateApproverArrayIndex(_bountyId, _approverId)\r\n {\r\n bounties[_bountyId].approvers[_approverId] = _approver;\r\n\r\n emit BountyApproversUpdated(_bountyId, _sender, bounties[_bountyId].approvers);\r\n }\r\n\r\n /// @dev changeIssuerAndApprover(): Allows any of the issuers to change a particular approver of the bounty\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _issuerId the index of the issuer who is calling the function\r\n /// @param _issuerIdToChange the index of the issuer who is being changed\r\n /// @param _approverIdToChange the index of the approver who is being changed\r\n /// @param _issuer the address of the new approver\r\n function changeIssuerAndApprover(\r\n address _sender,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint _issuerIdToChange,\r\n uint _approverIdToChange,\r\n address payable _issuer)\r\n external\r\n senderIsValid(_sender)\r\n onlyIssuer(_sender, _bountyId, _issuerId)\r\n {\r\n require(_bountyId < numBounties);\r\n require(_approverIdToChange < bounties[_bountyId].approvers.length);\r\n require(_issuerIdToChange < bounties[_bountyId].issuers.length);\r\n\r\n bounties[_bountyId].issuers[_issuerIdToChange] = _issuer;\r\n bounties[_bountyId].approvers[_approverIdToChange] = _issuer;\r\n\r\n emit BountyIssuersUpdated(_bountyId, _sender, bounties[_bountyId].issuers);\r\n emit BountyApproversUpdated(_bountyId, _sender, bounties[_bountyId].approvers);\r\n }\r\n\r\n /// @dev changeData(): Allows any of the issuers to change the data the bounty\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _issuerId the index of the issuer who is calling the function\r\n /// @param _data the new IPFS hash representing the JSON object storing the details of the bounty (see docs for schema details)\r\n function changeData(\r\n address _sender,\r\n uint _bountyId,\r\n uint _issuerId,\r\n string memory _data)\r\n public\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n validateIssuerArrayIndex(_bountyId, _issuerId)\r\n onlyIssuer(_sender, _bountyId, _issuerId)\r\n {\r\n emit BountyDataChanged(_bountyId, _sender, _data); // The new _data is emitted within an event rather than being stored on-chain for minimized gas costs\r\n }\r\n\r\n /// @dev changeDeadline(): Allows any of the issuers to change the deadline the bounty\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _issuerId the index of the issuer who is calling the function\r\n /// @param _deadline the new timestamp which will become the deadline of the bounty\r\n function changeDeadline(\r\n address _sender,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint _deadline)\r\n external\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n validateIssuerArrayIndex(_bountyId, _issuerId)\r\n onlyIssuer(_sender, _bountyId, _issuerId)\r\n {\r\n bounties[_bountyId].deadline = _deadline;\r\n\r\n emit BountyDeadlineChanged(_bountyId, _sender, _deadline);\r\n }\r\n\r\n /// @dev addIssuers(): Allows any of the issuers to add more issuers to the bounty\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _issuerId the index of the issuer who is calling the function\r\n /// @param _issuers the array of addresses to add to the list of valid issuers\r\n function addIssuers(\r\n address _sender,\r\n uint _bountyId,\r\n uint _issuerId,\r\n address payable[] memory _issuers)\r\n public\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n validateIssuerArrayIndex(_bountyId, _issuerId)\r\n onlyIssuer(_sender, _bountyId, _issuerId)\r\n {\r\n for (uint i = 0; i < _issuers.length; i++){\r\n bounties[_bountyId].issuers.push(_issuers[i]);\r\n }\r\n\r\n emit BountyIssuersUpdated(_bountyId, _sender, bounties[_bountyId].issuers);\r\n }\r\n\r\n /// @dev addApprovers(): Allows any of the issuers to add more approvers to the bounty\r\n /// @param _sender the sender of the transaction issuing the bounty (should be the same as msg.sender unless the txn is called by the meta tx relayer)\r\n /// @param _bountyId the index of the bounty\r\n /// @param _issuerId the index of the issuer who is calling the function\r\n /// @param _approvers the array of addresses to add to the list of valid approvers\r\n function addApprovers(\r\n address _sender,\r\n uint _bountyId,\r\n uint _issuerId,\r\n address[] memory _approvers)\r\n public\r\n senderIsValid(_sender)\r\n validateBountyArrayIndex(_bountyId)\r\n validateIssuerArrayIndex(_bountyId, _issuerId)\r\n onlyIssuer(_sender, _bountyId, _issuerId)\r\n {\r\n for (uint i = 0; i < _approvers.length; i++){\r\n bounties[_bountyId].approvers.push(_approvers[i]);\r\n }\r\n\r\n emit BountyApproversUpdated(_bountyId, _sender, bounties[_bountyId].approvers);\r\n }\r\n\r\n /// @dev getBounty(): Returns the details of the bounty\r\n /// @param _bountyId the index of the bounty\r\n /// @return Returns a tuple for the bounty\r\n function getBounty(uint _bountyId)\r\n external\r\n view\r\n returns (Bounty memory)\r\n {\r\n return bounties[_bountyId];\r\n }\r\n\r\n\r\n function transferTokens(uint _bountyId, address payable _to, uint _amount)\r\n internal\r\n {\r\n if (bounties[_bountyId].tokenVersion == 0){\r\n require(_amount > 0); // Sending 0 tokens should throw\r\n require(bounties[_bountyId].balance >= _amount);\r\n\r\n bounties[_bountyId].balance = bounties[_bountyId].balance.sub(_amount);\r\n\r\n _to.transfer(_amount);\r\n } else if (bounties[_bountyId].tokenVersion == 20){\r\n require(_amount > 0); // Sending 0 tokens should throw\r\n require(bounties[_bountyId].balance >= _amount);\r\n\r\n bounties[_bountyId].balance = bounties[_bountyId].balance.sub(_amount);\r\n\r\n require(ERC20Token(bounties[_bountyId].token).transfer(_to, _amount));\r\n } else if (bounties[_bountyId].tokenVersion == 721){\r\n require(tokenBalances[_bountyId][_amount]);\r\n\r\n tokenBalances[_bountyId][_amount] = false; // Removes the 721 token from the balance of the bounty\r\n\r\n ERC721BasicToken(bounties[_bountyId].token).transferFrom(address(this),\r\n _to,\r\n _amount);\r\n } else {\r\n revert();\r\n }\r\n }\r\n\r\n /*\r\n * Events\r\n */\r\n\r\n event BountyIssued(uint _bountyId, address payable _creator, address payable[] _issuers, address[] _approvers, string _data, uint _deadline, address _token, uint _tokenVersion);\r\n event ContributionAdded(uint _bountyId, uint _contributionId, address payable _contributor, uint _amount);\r\n event ContributionRefunded(uint _bountyId, uint _contributionId);\r\n event ContributionsRefunded(uint _bountyId, address _issuer, uint[] _contributionIds);\r\n event BountyDrained(uint _bountyId, address _issuer, uint[] _amounts);\r\n event ActionPerformed(uint _bountyId, address _fulfiller, string _data);\r\n event BountyFulfilled(uint _bountyId, uint _fulfillmentId, address payable[] _fulfillers, string _data, address _submitter);\r\n event FulfillmentUpdated(uint _bountyId, uint _fulfillmentId, address payable[] _fulfillers, string _data);\r\n event FulfillmentAccepted(uint _bountyId, uint _fulfillmentId, address _approver, uint[] _tokenAmounts);\r\n event BountyChanged(uint _bountyId, address _changer, address payable[] _issuers, address payable[] _approvers, string _data, uint _deadline);\r\n event BountyIssuersUpdated(uint _bountyId, address _changer, address payable[] _issuers);\r\n event BountyApproversUpdated(uint _bountyId, address _changer, address[] _approvers);\r\n event BountyDataChanged(uint _bountyId, address _changer, string _data);\r\n event BountyDeadlineChanged(uint _bountyId, address _changer, uint _deadline);\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\StandardBounties.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/StandardBounties.sol", - "exportedSymbols": { - "StandardBounties": [ - 4512 - ] - }, - "id": 4513, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2507, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:5" - }, - { - "id": 2508, - "literals": [ - "experimental", - "ABIEncoderV2" - ], - "nodeType": "PragmaDirective", - "src": "34:33:5" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC20Token.sol", - "file": "./inherited/ERC20Token.sol", - "id": 2509, - "nodeType": "ImportDirective", - "scope": 4513, - "sourceUnit": 4990, - "src": "71:36:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", - "file": "./inherited/ERC721Basic.sol", - "id": 2510, - "nodeType": "ImportDirective", - "scope": 4513, - "sourceUnit": 5798, - "src": "109:37:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@author Mark Beylifn , Gonçalo Sá , Kevin Owocki , Ricardo Guilherme Schmidt (@3esmit), Matt Garnett , Craig Williams ", - "fullyImplemented": true, - "id": 4512, - "linearizedBaseContracts": [ - 4512 - ], - "name": "StandardBounties", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 2513, - "libraryName": { - "contractScope": null, - "id": 2511, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "578:8:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "572:27:5", - "typeName": { - "id": 2512, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "591:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "StandardBounties.Bounty", - "id": 2536, - "members": [ - { - "constant": false, - "id": 2516, - "name": "issuers", - "nodeType": "VariableDeclaration", - "scope": 2536, - "src": "655:25:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 2514, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "655:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 2515, - "length": null, - "nodeType": "ArrayTypeName", - "src": "655:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2519, - "name": "approvers", - "nodeType": "VariableDeclaration", - "scope": 2536, - "src": "792:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2517, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "792:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2518, - "length": null, - "nodeType": "ArrayTypeName", - "src": "792:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2521, - "name": "deadline", - "nodeType": "VariableDeclaration", - "scope": 2536, - "src": "912:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2520, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2523, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 2536, - "src": "1038:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2522, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1038:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2525, - "name": "tokenVersion", - "nodeType": "VariableDeclaration", - "scope": 2536, - "src": "1162:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2524, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1162:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2527, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 2536, - "src": "1282:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2526, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1282:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2529, - "name": "hasPaidOut", - "nodeType": "VariableDeclaration", - "scope": 2536, - "src": "1371:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2528, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1371:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2532, - "name": "fulfillments", - "nodeType": "VariableDeclaration", - "scope": 2536, - "src": "1506:26:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage_ptr", - "typeString": "struct StandardBounties.Fulfillment[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 2530, - "name": "Fulfillment", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2542, - "src": "1506:11:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fulfillment_$2542_storage_ptr", - "typeString": "struct StandardBounties.Fulfillment" - } - }, - "id": 2531, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1506:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage_ptr", - "typeString": "struct StandardBounties.Fulfillment[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2535, - "name": "contributions", - "nodeType": "VariableDeclaration", - "scope": 2536, - "src": "1638:28:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage_ptr", - "typeString": "struct StandardBounties.Contribution[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 2533, - "name": "Contribution", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2549, - "src": "1638:12:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", - "typeString": "struct StandardBounties.Contribution" - } - }, - "id": 2534, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1638:14:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage_ptr", - "typeString": "struct StandardBounties.Contribution[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Bounty", - "nodeType": "StructDefinition", - "scope": 4512, - "src": "634:1132:5", - "visibility": "public" - }, - { - "canonicalName": "StandardBounties.Fulfillment", - "id": 2542, - "members": [ - { - "constant": false, - "id": 2539, - "name": "fulfillers", - "nodeType": "VariableDeclaration", - "scope": 2542, - "src": "1798:28:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 2537, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1798:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 2538, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1798:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2541, - "name": "submitter", - "nodeType": "VariableDeclaration", - "scope": 2542, - "src": "1908:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2540, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1908:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Fulfillment", - "nodeType": "StructDefinition", - "scope": 4512, - "src": "1772:270:5", - "visibility": "public" - }, - { - "canonicalName": "StandardBounties.Contribution", - "id": 2549, - "members": [ - { - "constant": false, - "id": 2544, - "name": "contributor", - "nodeType": "VariableDeclaration", - "scope": 2549, - "src": "2075:27:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2075:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2546, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 2549, - "src": "2158:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2158:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2548, - "name": "refunded", - "nodeType": "VariableDeclaration", - "scope": 2549, - "src": "2221:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2547, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2221:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Contribution", - "nodeType": "StructDefinition", - "scope": 4512, - "src": "2048:267:5", - "visibility": "public" - }, - { - "constant": false, - "id": 2551, - "name": "numBounties", - "nodeType": "VariableDeclaration", - "scope": 4512, - "src": "2350:23:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2550, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2350:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2555, - "name": "bounties", - "nodeType": "VariableDeclaration", - "scope": 4512, - "src": "2445:39:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty)" - }, - "typeName": { - "id": 2554, - "keyType": { - "id": 2552, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2453:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "2445:23:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty)" - }, - "valueType": { - "contractScope": null, - "id": 2553, - "name": "Bounty", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2536, - "src": "2461:6:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", - "typeString": "struct StandardBounties.Bounty" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2561, - "name": "tokenBalances", - "nodeType": "VariableDeclaration", - "scope": 4512, - "src": "2527:61:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(uint256 => bool))" - }, - "typeName": { - "id": 2560, - "keyType": { - "id": 2556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2536:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "2527:40:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(uint256 => bool))" - }, - "valueType": { - "id": 2559, - "keyType": { - "id": 2557, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2553:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "2544:22:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - }, - "valueType": { - "id": 2558, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2561:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2563, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 4512, - "src": "2719:20:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2562, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2719:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2565, - "name": "metaTxRelayer", - "nodeType": "VariableDeclaration", - "scope": 4512, - "src": "2824:28:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2564, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2824:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2567, - "name": "callStarted", - "nodeType": "VariableDeclaration", - "scope": 4512, - "src": "2968:23:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2566, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2968:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2583, - "nodeType": "Block", - "src": "3095:93:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "3110:12:5", - "subExpression": { - "argumentTypes": null, - "id": 2570, - "name": "callStarted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2567, - "src": "3111:11:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2569, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "3102:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3102:21:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2573, - "nodeType": "ExpressionStatement", - "src": "3102:21:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 2576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2574, - "name": "callStarted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2567, - "src": "3130:11:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3144:4:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "3130:18:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2577, - "nodeType": "ExpressionStatement", - "src": "3130:18:5" - }, - { - "id": 2578, - "nodeType": "PlaceholderStatement", - "src": "3155:1:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 2581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2579, - "name": "callStarted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2567, - "src": "3163:11:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 2580, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3177:5:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "3163:19:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2582, - "nodeType": "ExpressionStatement", - "src": "3163:19:5" - } - ] - }, - "documentation": null, - "id": 2584, - "name": "callNotStarted", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2568, - "nodeType": "ParameterList", - "parameters": [], - "src": "3093:2:5" - }, - "src": "3070:118:5", - "visibility": "internal" - }, - { - "body": { - "id": 2595, - "nodeType": "Block", - "src": "3250:50:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2589, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2586, - "src": "3265:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2590, - "name": "numBounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2551, - "src": "3274:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3265:20:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2588, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "3257:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3257:29:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2593, - "nodeType": "ExpressionStatement", - "src": "3257:29:5" - }, - { - "id": 2594, - "nodeType": "PlaceholderStatement", - "src": "3293:1:5" - } - ] - }, - "documentation": null, - "id": 2596, - "name": "validateBountyArrayIndex", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2587, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2586, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 2596, - "src": "3234:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2585, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3234:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3227:19:5" - }, - "src": "3194:106:5", - "visibility": "internal" - }, - { - "body": { - "id": 2613, - "nodeType": "Block", - "src": "3389:79:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2603, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2600, - "src": "3404:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2604, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "3413:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 2606, - "indexExpression": { - "argumentTypes": null, - "id": 2605, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2598, - "src": "3422:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3413:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 2607, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributions", - "nodeType": "MemberAccess", - "referencedDeclaration": 2535, - "src": "3413:33:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", - "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" - } - }, - "id": 2608, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3413:40:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3404:49:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2602, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "3396:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3396:58:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2611, - "nodeType": "ExpressionStatement", - "src": "3396:58:5" - }, - { - "id": 2612, - "nodeType": "PlaceholderStatement", - "src": "3461:1:5" - } - ] - }, - "documentation": null, - "id": 2614, - "name": "validateContributionArrayIndex", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2598, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2614, - "src": "3352:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2597, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3352:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2600, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 2614, - "src": "3373:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2599, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3373:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3345:40:5" - }, - "src": "3306:162:5", - "visibility": "internal" - }, - { - "body": { - "id": 2631, - "nodeType": "Block", - "src": "3556:78:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2627, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2621, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2618, - "src": "3571:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2622, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "3580:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 2624, - "indexExpression": { - "argumentTypes": null, - "id": 2623, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2616, - "src": "3589:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3580:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 2625, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "fulfillments", - "nodeType": "MemberAccess", - "referencedDeclaration": 2532, - "src": "3580:32:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", - "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" - } - }, - "id": 2626, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3580:39:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3571:48:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2620, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "3563:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3563:57:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2629, - "nodeType": "ExpressionStatement", - "src": "3563:57:5" - }, - { - "id": 2630, - "nodeType": "PlaceholderStatement", - "src": "3627:1:5" - } - ] - }, - "documentation": null, - "id": 2632, - "name": "validateFulfillmentArrayIndex", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2619, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2616, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2632, - "src": "3519:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2615, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3519:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2618, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 2632, - "src": "3540:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2617, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3540:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3512:40:5" - }, - "src": "3474:160:5", - "visibility": "internal" - }, - { - "body": { - "id": 2649, - "nodeType": "Block", - "src": "3717:73:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2639, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2636, - "src": "3732:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2640, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "3741:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 2642, - "indexExpression": { - "argumentTypes": null, - "id": 2641, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2634, - "src": "3750:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3741:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 2643, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "3741:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 2644, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3741:34:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3732:43:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2638, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "3724:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3724:52:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2647, - "nodeType": "ExpressionStatement", - "src": "3724:52:5" - }, - { - "id": 2648, - "nodeType": "PlaceholderStatement", - "src": "3783:1:5" - } - ] - }, - "documentation": null, - "id": 2650, - "name": "validateIssuerArrayIndex", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2637, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2634, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2650, - "src": "3680:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2633, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3680:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2636, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 2650, - "src": "3701:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2635, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3701:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3673:40:5" - }, - "src": "3640:150:5", - "visibility": "internal" - }, - { - "body": { - "id": 2667, - "nodeType": "Block", - "src": "3875:75:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2657, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2654, - "src": "3890:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2658, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "3899:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 2660, - "indexExpression": { - "argumentTypes": null, - "id": 2659, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2652, - "src": "3908:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3899:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 2661, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "approvers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2519, - "src": "3899:29:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2662, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3899:36:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3890:45:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2656, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "3882:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3882:54:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2665, - "nodeType": "ExpressionStatement", - "src": "3882:54:5" - }, - { - "id": 2666, - "nodeType": "PlaceholderStatement", - "src": "3943:1:5" - } - ] - }, - "documentation": null, - "id": 2668, - "name": "validateApproverArrayIndex", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2655, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2652, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2668, - "src": "3838:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2651, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3838:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2654, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 2668, - "src": "3859:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2653, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3859:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3831:40:5" - }, - "src": "3796:154:5", - "visibility": "internal" - }, - { - "body": { - "id": 2688, - "nodeType": "Block", - "src": "4038:75:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2677, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2670, - "src": "4051:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2678, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "4062:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 2680, - "indexExpression": { - "argumentTypes": null, - "id": 2679, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2672, - "src": "4071:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4062:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 2681, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "4062:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 2683, - "indexExpression": { - "argumentTypes": null, - "id": 2682, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2674, - "src": "4090:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4062:38:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4051:49:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2676, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4043:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4043:58:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2686, - "nodeType": "ExpressionStatement", - "src": "4043:58:5" - }, - { - "id": 2687, - "nodeType": "PlaceholderStatement", - "src": "4106:1:5" - } - ] - }, - "documentation": null, - "id": 2689, - "name": "onlyIssuer", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2675, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2670, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 2689, - "src": "3980:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2669, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3980:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2672, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2689, - "src": "4000:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2671, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4000:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2674, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 2689, - "src": "4019:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2673, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4019:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3975:59:5" - }, - "src": "3956:157:5", - "visibility": "internal" - }, - { - "body": { - "id": 2710, - "nodeType": "Block", - "src": "4215:112:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2698, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2691, - "src": "4230:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2699, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "4254:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 2701, - "indexExpression": { - "argumentTypes": null, - "id": 2700, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2693, - "src": "4263:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4254:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 2702, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "fulfillments", - "nodeType": "MemberAccess", - "referencedDeclaration": 2532, - "src": "4254:32:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", - "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" - } - }, - "id": 2704, - "indexExpression": { - "argumentTypes": null, - "id": 2703, - "name": "_fulfillmentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2695, - "src": "4287:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4254:48:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fulfillment_$2542_storage", - "typeString": "struct StandardBounties.Fulfillment storage ref" - } - }, - "id": 2705, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submitter", - "nodeType": "MemberAccess", - "referencedDeclaration": 2541, - "src": "4254:58:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4230:82:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2697, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4222:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4222:91:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2708, - "nodeType": "ExpressionStatement", - "src": "4222:91:5" - }, - { - "id": 2709, - "nodeType": "PlaceholderStatement", - "src": "4320:1:5" - } - ] - }, - "documentation": null, - "id": 2711, - "name": "onlySubmitter", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2696, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2691, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 2711, - "src": "4148:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2690, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4148:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2693, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2711, - "src": "4170:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2692, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4170:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2695, - "name": "_fulfillmentId", - "nodeType": "VariableDeclaration", - "scope": 2711, - "src": "4191:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2694, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4191:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4141:70:5" - }, - "src": "4119:208:5", - "visibility": "internal" - }, - { - "body": { - "id": 2732, - "nodeType": "Block", - "src": "4426:116:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2720, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2713, - "src": "4441:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2721, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "4465:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 2723, - "indexExpression": { - "argumentTypes": null, - "id": 2722, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2715, - "src": "4474:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4465:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 2724, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributions", - "nodeType": "MemberAccess", - "referencedDeclaration": 2535, - "src": "4465:33:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", - "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" - } - }, - "id": 2726, - "indexExpression": { - "argumentTypes": null, - "id": 2725, - "name": "_contributionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2717, - "src": "4499:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4465:50:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage", - "typeString": "struct StandardBounties.Contribution storage ref" - } - }, - "id": 2727, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributor", - "nodeType": "MemberAccess", - "referencedDeclaration": 2544, - "src": "4465:62:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4441:86:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2719, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4433:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4433:95:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2730, - "nodeType": "ExpressionStatement", - "src": "4433:95:5" - }, - { - "id": 2731, - "nodeType": "PlaceholderStatement", - "src": "4535:1:5" - } - ] - }, - "documentation": null, - "id": 2733, - "name": "onlyContributor", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2718, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2713, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 2733, - "src": "4362:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2712, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4362:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2715, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2733, - "src": "4382:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2714, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4382:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2717, - "name": "_contributionId", - "nodeType": "VariableDeclaration", - "scope": 2733, - "src": "4401:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2716, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4401:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4357:65:5" - }, - "src": "4333:209:5", - "visibility": "internal" - }, - { - "body": { - "id": 2753, - "nodeType": "Block", - "src": "4638:83:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2742, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2735, - "src": "4653:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2743, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "4664:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 2745, - "indexExpression": { - "argumentTypes": null, - "id": 2744, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2737, - "src": "4673:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4664:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 2746, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "approvers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2519, - "src": "4664:29:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2748, - "indexExpression": { - "argumentTypes": null, - "id": 2747, - "name": "_approverId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2739, - "src": "4694:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4664:42:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4653:53:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2741, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4645:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4645:62:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2751, - "nodeType": "ExpressionStatement", - "src": "4645:62:5" - }, - { - "id": 2752, - "nodeType": "PlaceholderStatement", - "src": "4714:1:5" - } - ] - }, - "documentation": null, - "id": 2754, - "name": "isApprover", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2740, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2735, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 2754, - "src": "4574:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2734, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4574:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2737, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2754, - "src": "4596:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2736, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4596:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2739, - "name": "_approverId", - "nodeType": "VariableDeclaration", - "scope": 2754, - "src": "4617:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2738, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4617:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4567:67:5" - }, - "src": "4548:173:5", - "visibility": "internal" - }, - { - "body": { - "id": 2767, - "nodeType": "Block", - "src": "4772:61:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4787:31:5", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2759, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "4788:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 2761, - "indexExpression": { - "argumentTypes": null, - "id": 2760, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2756, - "src": "4797:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4788:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 2762, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "hasPaidOut", - "nodeType": "MemberAccess", - "referencedDeclaration": 2529, - "src": "4788:30:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2758, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4779:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4779:40:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2765, - "nodeType": "ExpressionStatement", - "src": "4779:40:5" - }, - { - "id": 2766, - "nodeType": "PlaceholderStatement", - "src": "4826:1:5" - } - ] - }, - "documentation": null, - "id": 2768, - "name": "hasNotPaid", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2756, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2768, - "src": "4753:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2755, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4753:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4746:22:5" - }, - "src": "4727:106:5", - "visibility": "internal" - }, - { - "body": { - "id": 2786, - "nodeType": "Block", - "src": "4915:90:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4930:60:5", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2775, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "4931:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 2777, - "indexExpression": { - "argumentTypes": null, - "id": 2776, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2770, - "src": "4940:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4931:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 2778, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributions", - "nodeType": "MemberAccess", - "referencedDeclaration": 2535, - "src": "4931:33:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", - "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" - } - }, - "id": 2780, - "indexExpression": { - "argumentTypes": null, - "id": 2779, - "name": "_contributionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2772, - "src": "4965:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4931:50:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage", - "typeString": "struct StandardBounties.Contribution storage ref" - } - }, - "id": 2781, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "refunded", - "nodeType": "MemberAccess", - "referencedDeclaration": 2548, - "src": "4931:59:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2774, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4922:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4922:69:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2784, - "nodeType": "ExpressionStatement", - "src": "4922:69:5" - }, - { - "id": 2785, - "nodeType": "PlaceholderStatement", - "src": "4998:1:5" - } - ] - }, - "documentation": null, - "id": 2787, - "name": "hasNotRefunded", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2770, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2787, - "src": "4869:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2769, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4869:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2772, - "name": "_contributionId", - "nodeType": "VariableDeclaration", - "scope": 2787, - "src": "4890:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2771, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4890:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4862:49:5" - }, - "src": "4839:166:5", - "visibility": "internal" - }, - { - "body": { - "id": 2804, - "nodeType": "Block", - "src": "5060:82:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2792, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "5075:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5075:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2794, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2789, - "src": "5089:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5075:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2796, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "5100:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5100:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2798, - "name": "metaTxRelayer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2565, - "src": "5114:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5100:27:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "5075:52:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2791, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "5067:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5067:61:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2802, - "nodeType": "ExpressionStatement", - "src": "5067:61:5" - }, - { - "id": 2803, - "nodeType": "PlaceholderStatement", - "src": "5135:1:5" - } - ] - }, - "documentation": null, - "id": 2805, - "name": "senderIsValid", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2790, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2789, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 2805, - "src": "5040:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2788, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5040:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5033:23:5" - }, - "src": "5011:131:5", - "visibility": "internal" - }, - { - "body": { - "id": 2813, - "nodeType": "Block", - "src": "5204:128:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2808, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2563, - "src": "5308:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2809, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "5316:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5316:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5308:18:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2812, - "nodeType": "ExpressionStatement", - "src": "5308:18:5" - } - ] - }, - "documentation": null, - "id": 2814, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2806, - "nodeType": "ParameterList", - "parameters": [], - "src": "5194:2:5" - }, - "returnParameters": { - "id": 2807, - "nodeType": "ParameterList", - "parameters": [], - "src": "5204:0:5" - }, - "scope": 4512, - "src": "5183:149:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2838, - "nodeType": "Block", - "src": "5530:206:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2823, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2820, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "5545:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5545:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2822, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2563, - "src": "5559:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5545:19:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2819, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "5537:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2824, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5537:28:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2825, - "nodeType": "ExpressionStatement", - "src": "5537:28:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2827, - "name": "metaTxRelayer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2565, - "src": "5619:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2829, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5644:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2828, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5636:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2830, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5636:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5619:27:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2826, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "5611:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5611:36:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2833, - "nodeType": "ExpressionStatement", - "src": "5611:36:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 2836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2834, - "name": "metaTxRelayer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2565, - "src": "5706:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2835, - "name": "_relayer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2816, - "src": "5722:8:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5706:24:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2837, - "nodeType": "ExpressionStatement", - "src": "5706:24:5" - } - ] - }, - "documentation": "@param _relayer the address of the relayer", - "id": 2839, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setMetaTxRelayer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2817, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2816, - "name": "_relayer", - "nodeType": "VariableDeclaration", - "scope": 2839, - "src": "5495:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2815, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5495:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5494:18:5" - }, - "returnParameters": { - "id": 2818, - "nodeType": "ParameterList", - "parameters": [], - "src": "5530:0:5" - }, - "scope": 4512, - "src": "5469:267:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2955, - "nodeType": "Block", - "src": "6809:1198:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2866, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2864, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2855, - "src": "6824:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2865, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6841:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6824:18:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2867, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2855, - "src": "6846:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3230", - "id": 2868, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6863:2:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_20_by_1", - "typeString": "int_const 20" - }, - "value": "20" - }, - "src": "6846:19:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "6824:41:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2871, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2855, - "src": "6869:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "373231", - "id": 2872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6886:3:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_721_by_1", - "typeString": "int_const 721" - }, - "value": "721" - }, - "src": "6869:20:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "6824:65:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2863, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "6816:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6816:74:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2876, - "nodeType": "ExpressionStatement", - "src": "6816:74:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2886, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2881, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2878, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2844, - "src": "6971:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - "id": 2879, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6971:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2880, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6989:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6971:19:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2882, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2847, - "src": "6994:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2883, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6994:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2884, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7014:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6994:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "6971:44:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2877, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "6963:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6963:53:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2888, - "nodeType": "ExpressionStatement", - "src": "6963:53:5" - }, - { - "assignments": [ - 2890 - ], - "declarations": [ - { - "constant": false, - "id": 2890, - "name": "bountyId", - "nodeType": "VariableDeclaration", - "scope": 2955, - "src": "7100:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2889, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7100:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2892, - "initialValue": { - "argumentTypes": null, - "id": 2891, - "name": "numBounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2551, - "src": "7116:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7100:27:5" - }, - { - "assignments": [ - 2894 - ], - "declarations": [ - { - "constant": false, - "id": 2894, - "name": "newBounty", - "nodeType": "VariableDeclaration", - "scope": 2955, - "src": "7213:24:5", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", - "typeString": "struct StandardBounties.Bounty" - }, - "typeName": { - "contractScope": null, - "id": 2893, - "name": "Bounty", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2536, - "src": "7213:6:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", - "typeString": "struct StandardBounties.Bounty" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2898, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2895, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "7240:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 2897, - "indexExpression": { - "argumentTypes": null, - "id": 2896, - "name": "bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2890, - "src": "7249:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7240:18:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7213:45:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 2903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2899, - "name": "newBounty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2894, - "src": "7265:9:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", - "typeString": "struct StandardBounties.Bounty storage pointer" - } - }, - "id": 2901, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "7265:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2902, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2844, - "src": "7285:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - "src": "7265:28:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 2904, - "nodeType": "ExpressionStatement", - "src": "7265:28:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 2909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2905, - "name": "newBounty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2894, - "src": "7300:9:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", - "typeString": "struct StandardBounties.Bounty storage pointer" - } - }, - "id": 2907, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "approvers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2519, - "src": "7300:19:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2908, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2847, - "src": "7322:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "src": "7300:32:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2910, - "nodeType": "ExpressionStatement", - "src": "7300:32:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 2915, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2911, - "name": "newBounty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2894, - "src": "7339:9:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", - "typeString": "struct StandardBounties.Bounty storage pointer" - } - }, - "id": 2913, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "deadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 2521, - "src": "7339:18:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2914, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2851, - "src": "7360:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7339:30:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2916, - "nodeType": "ExpressionStatement", - "src": "7339:30:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 2921, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2917, - "name": "newBounty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2894, - "src": "7376:9:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", - "typeString": "struct StandardBounties.Bounty storage pointer" - } - }, - "id": 2919, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "tokenVersion", - "nodeType": "MemberAccess", - "referencedDeclaration": 2525, - "src": "7376:22:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2920, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2855, - "src": "7401:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7376:38:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2922, - "nodeType": "ExpressionStatement", - "src": "7376:38:5" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2923, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2855, - "src": "7427:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2924, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7444:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7427:18:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2933, - "nodeType": "IfStatement", - "src": "7423:64:5", - "trueBody": { - "id": 2932, - "nodeType": "Block", - "src": "7446:41:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2926, - "name": "newBounty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2894, - "src": "7455:9:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", - "typeString": "struct StandardBounties.Bounty storage pointer" - } - }, - "id": 2928, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 2523, - "src": "7455:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2929, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2853, - "src": "7473:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7455:24:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2931, - "nodeType": "ExpressionStatement", - "src": "7455:24:5" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 2939, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2934, - "name": "numBounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2551, - "src": "7495:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7525:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "id": 2935, - "name": "numBounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2551, - "src": "7509:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "7509:15:5", - "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": 2938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7509:18:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7495:32:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2940, - "nodeType": "ExpressionStatement", - "src": "7495:32:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2942, - "name": "bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2890, - "src": "7628:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2943, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2841, - "src": "7661:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2944, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2844, - "src": "7693:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 2945, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2847, - "src": "7726:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 2946, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2849, - "src": "7761:5:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2947, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2851, - "src": "7896:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2948, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2853, - "src": "7930:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2949, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2855, - "src": "7961:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2941, - "name": "BountyIssued", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4384, - "src": "7615:12:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (uint256,address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256)" - } - }, - "id": 2950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7615:360:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2951, - "nodeType": "EmitStatement", - "src": "7610:365:5" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 2952, - "name": "bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2890, - "src": "7992:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2953, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7991:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2862, - "id": 2954, - "nodeType": "Return", - "src": "7984:17:5" - } - ] - }, - "documentation": "@param _tokenVersion the version of the token being used for the bounty (0 for ETH, 20 for ERC20, 721 for ERC721)", - "id": 2956, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2858, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2841, - "src": "6777:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "id": 2859, - "modifierName": { - "argumentTypes": null, - "id": 2857, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "6763:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "6763:22:5" - } - ], - "name": "issueBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2856, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2841, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 2956, - "src": "6554:23:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2840, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6554:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2844, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 2956, - "src": "6584:33:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 2842, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6584:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 2843, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6584:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2847, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 2956, - "src": "6624:27:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2845, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6624:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2846, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6624:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2849, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 2956, - "src": "6658:19:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2848, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6658:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2851, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 2956, - "src": "6684:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2850, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6684:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2853, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 2956, - "src": "6705:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2852, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6705:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2855, - "name": "_tokenVersion", - "nodeType": "VariableDeclaration", - "scope": 2956, - "src": "6726:18:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2854, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6726:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6547:198:5" - }, - "returnParameters": { - "id": 2862, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2861, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2956, - "src": "6800:4:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2860, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6800:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6799:6:5" - }, - "scope": 4512, - "src": "6527:1480:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3000, - "nodeType": "Block", - "src": "8448:192:5", - "statements": [ - { - "assignments": [ - 2980 - ], - "declarations": [ - { - "constant": false, - "id": 2980, - "name": "bountyId", - "nodeType": "VariableDeclaration", - "scope": 3000, - "src": "8455:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2979, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8455:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2990, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2982, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2958, - "src": "8483:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2983, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2961, - "src": "8492:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 2984, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2964, - "src": "8502:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 2985, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2966, - "src": "8514:5:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2986, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2968, - "src": "8521:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2987, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2970, - "src": "8532:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2988, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2972, - "src": "8540:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2981, - "name": "issueBounty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2956, - "src": "8471:11:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256) returns (uint256)" - } - }, - "id": 2989, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8471:83:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8455:99:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2992, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2958, - "src": "8574:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2993, - "name": "bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2980, - "src": "8583:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2994, - "name": "_depositAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2974, - "src": "8593:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2991, - "name": "contribute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3163, - "src": "8563:10:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address payable,uint256,uint256)" - } - }, - "id": 2995, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8563:45:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2996, - "nodeType": "ExpressionStatement", - "src": "8563:45:5" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 2997, - "name": "bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2980, - "src": "8625:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2998, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "8624:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2978, - "id": 2999, - "nodeType": "Return", - "src": "8617:17:5" - } - ] - }, - "documentation": "@param _depositAmount the amount of tokens being deposited to the bounty, which will create a new contribution to the bounty", - "id": 3001, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "issueAndContribute", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2975, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2958, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3001, - "src": "8183:23:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2957, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8183:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2961, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 3001, - "src": "8213:33:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 2959, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8213:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 2960, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8213:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2964, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 3001, - "src": "8253:27:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2962, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8253:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2963, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8253:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2966, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 3001, - "src": "8287:19:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2965, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "8287:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2968, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 3001, - "src": "8313:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2967, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8313:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2970, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3001, - "src": "8334:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2969, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8334:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2972, - "name": "_tokenVersion", - "nodeType": "VariableDeclaration", - "scope": 3001, - "src": "8355:18:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2971, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8355:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2974, - "name": "_depositAmount", - "nodeType": "VariableDeclaration", - "scope": 3001, - "src": "8380:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2973, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8380:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8176:224:5" - }, - "returnParameters": { - "id": 2978, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2977, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3001, - "src": "8439:4:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2976, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8439:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8438:6:5" - }, - "scope": 4512, - "src": "8149:491:5", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3162, - "nodeType": "Block", - "src": "9690:1740:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3019, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3007, - "src": "9705:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3020, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9715:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9705:11:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3018, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9697:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3022, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9697:20:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3023, - "nodeType": "ExpressionStatement", - "src": "9697:20:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3030, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3003, - "src": "9841:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3031, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3007, - "src": "9850:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 3032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9859:5:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3029, - "name": "Contribution", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2549, - "src": "9828:12:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Contribution_$2549_storage_ptr_$", - "typeString": "type(struct StandardBounties.Contribution storage pointer)" - } - }, - "id": 3033, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9828:37:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_memory", - "typeString": "struct StandardBounties.Contribution memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Contribution_$2549_memory", - "typeString": "struct StandardBounties.Contribution memory" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3024, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "9781:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3026, - "indexExpression": { - "argumentTypes": null, - "id": 3025, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "9790:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9781:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3027, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributions", - "nodeType": "MemberAccess", - "referencedDeclaration": 2535, - "src": "9781:33:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", - "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" - } - }, - "id": 3028, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9781:38:5", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Contribution_$2549_storage_$returns$_t_uint256_$", - "typeString": "function (struct StandardBounties.Contribution storage ref) returns (uint256)" - } - }, - "id": 3034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9781:85:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3035, - "nodeType": "ExpressionStatement", - "src": "9781:85:5" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3041, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3036, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "9918:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3038, - "indexExpression": { - "argumentTypes": null, - "id": 3037, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "9927:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9918:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3039, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenVersion", - "nodeType": "MemberAccess", - "referencedDeclaration": 2525, - "src": "9918:32:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3040, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9954:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9918:37:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3063, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "10135:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3065, - "indexExpression": { - "argumentTypes": null, - "id": 3064, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "10144:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10135:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3066, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenVersion", - "nodeType": "MemberAccess", - "referencedDeclaration": 2525, - "src": "10135:32:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3230", - "id": 3067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10171:2:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_20_by_1", - "typeString": "int_const 20" - }, - "value": "20" - }, - "src": "10135:38:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3106, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "10674:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3108, - "indexExpression": { - "argumentTypes": null, - "id": 3107, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "10683:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10674:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3109, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenVersion", - "nodeType": "MemberAccess", - "referencedDeclaration": 2525, - "src": "10674:32:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "373231", - "id": 3110, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10710:3:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_721_by_1", - "typeString": "int_const 721" - }, - "value": "721" - }, - "src": "10674:39:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3145, - "nodeType": "Block", - "src": "11184:25:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3142, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10416, - 10417 - ], - "referencedDeclaration": 10416, - "src": "11193:6:5", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11193:8:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3144, - "nodeType": "ExpressionStatement", - "src": "11193:8:5" - } - ] - }, - "id": 3146, - "nodeType": "IfStatement", - "src": "10670:539:5", - "trueBody": { - "id": 3141, - "nodeType": "Block", - "src": "10714:464:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3112, - "name": "tokenBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2561, - "src": "10723:13:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(uint256 => bool))" - } - }, - "id": 3115, - "indexExpression": { - "argumentTypes": null, - "id": 3113, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "10737:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10723:24:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 3116, - "indexExpression": { - "argumentTypes": null, - "id": 3114, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3007, - "src": "10748:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10723:33:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3117, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10759:4:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "10723:40:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3119, - "nodeType": "ExpressionStatement", - "src": "10723:40:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3121, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10835:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10835:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3123, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10848:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10835:14:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3120, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10827:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10827:23:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3126, - "nodeType": "ExpressionStatement", - "src": "10827:23:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3134, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3003, - "src": "11010:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3136, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10465, - "src": "11091:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - ], - "id": 3135, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11083:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11083:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3138, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3007, - "src": "11162:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3128, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "10970:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3130, - "indexExpression": { - "argumentTypes": null, - "id": 3129, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "10979:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10970:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3131, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 2523, - "src": "10970:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3127, - "name": "ERC721BasicToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5764, - "src": "10953:16:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721BasicToken_$5764_$", - "typeString": "type(contract ERC721BasicToken)" - } - }, - "id": 3132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10953:43:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", - "typeString": "contract ERC721BasicToken" - } - }, - "id": 3133, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 5485, - "src": "10953:56:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256) external" - } - }, - "id": 3139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10953:217:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3140, - "nodeType": "ExpressionStatement", - "src": "10953:217:5" - } - ] - } - }, - "id": 3147, - "nodeType": "IfStatement", - "src": "10131:1078:5", - "trueBody": { - "id": 3105, - "nodeType": "Block", - "src": "10174:490:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3069, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "10185:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3071, - "indexExpression": { - "argumentTypes": null, - "id": 3070, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "10194:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10185:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3072, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2527, - "src": "10185:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3078, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3007, - "src": "10247:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3073, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "10215:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3075, - "indexExpression": { - "argumentTypes": null, - "id": 3074, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "10224:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10215:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3076, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2527, - "src": "10215:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "10215:31:5", - "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": 3079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10215:40:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10185:70:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3081, - "nodeType": "ExpressionStatement", - "src": "10185:70:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3086, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3083, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10314:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10314:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3085, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10327:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10314:14:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3082, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10306:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3087, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10306:23:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3088, - "nodeType": "ExpressionStatement", - "src": "10306:23:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3097, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3003, - "src": "10491:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3099, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10465, - "src": "10574:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - ], - "id": 3098, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10566:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10566:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3101, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3007, - "src": "10647:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3091, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "10451:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3093, - "indexExpression": { - "argumentTypes": null, - "id": 3092, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "10460:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10451:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3094, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 2523, - "src": "10451:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3090, - "name": "ERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4989, - "src": "10440:10:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Token_$4989_$", - "typeString": "type(contract ERC20Token)" - } - }, - "id": 3095, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10440:37:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Token_$4989", - "typeString": "contract ERC20Token" - } - }, - "id": 3096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 4922, - "src": "10440:50:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" - } - }, - "id": 3102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10440:215:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3089, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10432:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10432:224:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3104, - "nodeType": "ExpressionStatement", - "src": "10432:224:5" - } - ] - } - }, - "id": 3148, - "nodeType": "IfStatement", - "src": "9914:1295:5", - "trueBody": { - "id": 3062, - "nodeType": "Block", - "src": "9956:169:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3042, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "9967:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3044, - "indexExpression": { - "argumentTypes": null, - "id": 3043, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "9976:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9967:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3045, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2527, - "src": "9967:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3051, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3007, - "src": "10029:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3046, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "9997:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3048, - "indexExpression": { - "argumentTypes": null, - "id": 3047, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "10006:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9997:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3049, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2527, - "src": "9997:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "9997:31:5", - "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": 3052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9997:40:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9967:70:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3054, - "nodeType": "ExpressionStatement", - "src": "9967:70:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3056, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10096:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10096:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3058, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3007, - "src": "10109:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10096:20:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3055, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10088:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10088:29:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3061, - "nodeType": "ExpressionStatement", - "src": "10088:29:5" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3150, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "11240:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3151, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "11279:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3153, - "indexExpression": { - "argumentTypes": null, - "id": 3152, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "11288:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11279:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3154, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributions", - "nodeType": "MemberAccess", - "referencedDeclaration": 2535, - "src": "11279:33:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", - "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" - } - }, - "id": 3155, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11279:40:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3156, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11322:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11279:44:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3158, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3003, - "src": "11379:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3159, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3007, - "src": "11416:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3149, - "name": "ContributionAdded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4394, - "src": "11222:17:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_address_payable_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256,address payable,uint256)" - } - }, - "id": 3160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11222:202:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3161, - "nodeType": "EmitStatement", - "src": "11217:207:5" - } - ] - }, - "documentation": "@param _amount the amount of tokens being contributed", - "id": 3163, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3010, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3003, - "src": "9617:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "id": 3011, - "modifierName": { - "argumentTypes": null, - "id": 3009, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "9603:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "9603:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3013, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "9656:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3014, - "modifierName": { - "argumentTypes": null, - "id": 3012, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "9631:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "9631:35:5" - }, - { - "arguments": null, - "id": 3016, - "modifierName": { - "argumentTypes": null, - "id": 3015, - "name": "callNotStarted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2584, - "src": "9672:14:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9672:14:5" - } - ], - "name": "contribute", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3003, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3163, - "src": "9508:23:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 3002, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9508:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3005, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3163, - "src": "9538:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3004, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9538:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3007, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3163, - "src": "9559:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3006, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9559:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9501:71:5" - }, - "returnParameters": { - "id": 3017, - "nodeType": "ParameterList", - "parameters": [], - "src": "9690:0:5" - }, - "scope": 4512, - "src": "9482:1948:5", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3233, - "nodeType": "Block", - "src": "12368:450:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3202, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3197, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10413, - "src": "12383:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3198, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "12389:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3200, - "indexExpression": { - "argumentTypes": null, - "id": 3199, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3167, - "src": "12398:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12389:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3201, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "deadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 2521, - "src": "12389:28:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12383:34:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3196, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "12375:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12375:43:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3204, - "nodeType": "ExpressionStatement", - "src": "12375:43:5" - }, - { - "assignments": [ - 3206 - ], - "declarations": [ - { - "constant": false, - "id": 3206, - "name": "contribution", - "nodeType": "VariableDeclaration", - "scope": 3233, - "src": "12491:33:5", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", - "typeString": "struct StandardBounties.Contribution" - }, - "typeName": { - "contractScope": null, - "id": 3205, - "name": "Contribution", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2549, - "src": "12491:12:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", - "typeString": "struct StandardBounties.Contribution" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3213, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3207, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "12527:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3209, - "indexExpression": { - "argumentTypes": null, - "id": 3208, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3167, - "src": "12536:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12527:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3210, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributions", - "nodeType": "MemberAccess", - "referencedDeclaration": 2535, - "src": "12527:33:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", - "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" - } - }, - "id": 3212, - "indexExpression": { - "argumentTypes": null, - "id": 3211, - "name": "_contributionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "12561:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12527:50:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage", - "typeString": "struct StandardBounties.Contribution storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12491:86:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 3218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3214, - "name": "contribution", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3206, - "src": "12586:12:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", - "typeString": "struct StandardBounties.Contribution storage pointer" - } - }, - "id": 3216, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "refunded", - "nodeType": "MemberAccess", - "referencedDeclaration": 2548, - "src": "12586:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3217, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12610:4:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "12586:28:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3219, - "nodeType": "ExpressionStatement", - "src": "12586:28:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3221, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3167, - "src": "12638:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3222, - "name": "contribution", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3206, - "src": "12649:12:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", - "typeString": "struct StandardBounties.Contribution storage pointer" - } - }, - "id": 3223, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributor", - "nodeType": "MemberAccess", - "referencedDeclaration": 2544, - "src": "12649:24:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3224, - "name": "contribution", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3206, - "src": "12675:12:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", - "typeString": "struct StandardBounties.Contribution storage pointer" - } - }, - "id": 3225, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amount", - "nodeType": "MemberAccess", - "referencedDeclaration": 2546, - "src": "12675:19:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3220, - "name": "transferTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4364, - "src": "12623:14:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_payable_$_t_uint256_$returns$__$", - "typeString": "function (uint256,address payable,uint256)" - } - }, - "id": 3226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12623:72:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3227, - "nodeType": "ExpressionStatement", - "src": "12623:72:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3229, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3167, - "src": "12785:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3230, - "name": "_contributionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "12796:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3228, - "name": "ContributionRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4400, - "src": "12764:20:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 3231, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12764:48:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3232, - "nodeType": "EmitStatement", - "src": "12759:53:5" - } - ] - }, - "documentation": "@param _contributionId the index of the contribution being refunded", - "id": 3234, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3172, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3165, - "src": "12098:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3173, - "modifierName": { - "argumentTypes": null, - "id": 3171, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "12084:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12084:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3175, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3167, - "src": "12137:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3176, - "modifierName": { - "argumentTypes": null, - "id": 3174, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "12112:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12112:35:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3178, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3167, - "src": "12184:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3179, - "name": "_contributionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "12195:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3180, - "modifierName": { - "argumentTypes": null, - "id": 3177, - "name": "validateContributionArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2614, - "src": "12153:30:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", - "typeString": "modifier (uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12153:58:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3182, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3165, - "src": "12233:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3183, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3167, - "src": "12242:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3184, - "name": "_contributionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "12253:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3185, - "modifierName": { - "argumentTypes": null, - "id": 3181, - "name": "onlyContributor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2733, - "src": "12217:15:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", - "typeString": "modifier (address,uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12217:52:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3187, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3167, - "src": "12286:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3188, - "modifierName": { - "argumentTypes": null, - "id": 3186, - "name": "hasNotPaid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2768, - "src": "12275:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12275:21:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3190, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3167, - "src": "12317:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3191, - "name": "_contributionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "12328:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3192, - "modifierName": { - "argumentTypes": null, - "id": 3189, - "name": "hasNotRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2787, - "src": "12302:14:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", - "typeString": "modifier (uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12302:42:5" - }, - { - "arguments": null, - "id": 3194, - "modifierName": { - "argumentTypes": null, - "id": 3193, - "name": "callNotStarted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2584, - "src": "12350:14:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12350:14:5" - } - ], - "name": "refundContribution", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3165, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3234, - "src": "12002:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3164, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12002:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3167, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3234, - "src": "12024:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3166, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12024:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3169, - "name": "_contributionId", - "nodeType": "VariableDeclaration", - "scope": 3234, - "src": "12045:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3168, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12045:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11995:71:5" - }, - "returnParameters": { - "id": 3195, - "nodeType": "ParameterList", - "parameters": [], - "src": "12368:0:5" - }, - "scope": 4512, - "src": "11968:850:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3268, - "nodeType": "Block", - "src": "13357:140:5", - "statements": [ - { - "body": { - "id": 3266, - "nodeType": "Block", - "src": "13414:78:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3259, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3236, - "src": "13444:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3260, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3238, - "src": "13453:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3261, - "name": "_contributionIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3241, - "src": "13464:16:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3263, - "indexExpression": { - "argumentTypes": null, - "id": 3262, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3248, - "src": "13481:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13464:19:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3258, - "name": "refundContribution", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3234, - "src": "13425:18:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" - } - }, - "id": 3264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13425:59:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3265, - "nodeType": "ExpressionStatement", - "src": "13425:59:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3251, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3248, - "src": "13381:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3252, - "name": "_contributionIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3241, - "src": "13385:16:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13385:23:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13381:27:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3267, - "initializationExpression": { - "assignments": [ - 3248 - ], - "declarations": [ - { - "constant": false, - "id": 3248, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 3267, - "src": "13369:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3247, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13369:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3250, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3249, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13378:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "13369:10:5" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "13410:3:5", - "subExpression": { - "argumentTypes": null, - "id": 3255, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3248, - "src": "13410:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3257, - "nodeType": "ExpressionStatement", - "src": "13410:3:5" - }, - "nodeType": "ForStatement", - "src": "13364:128:5" - } - ] - }, - "documentation": "@param _contributionIds the array of indexes of the contributions being refunded", - "id": 3269, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3244, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3236, - "src": "13345:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3245, - "modifierName": { - "argumentTypes": null, - "id": 3243, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "13331:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13331:22:5" - } - ], - "name": "refundMyContributions", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3242, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3236, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3269, - "src": "13239:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3235, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13239:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3238, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3269, - "src": "13261:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3237, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13261:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3241, - "name": "_contributionIds", - "nodeType": "VariableDeclaration", - "scope": 3269, - "src": "13282:30:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 3239, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13282:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3240, - "length": null, - "nodeType": "ArrayTypeName", - "src": "13282:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13232:81:5" - }, - "returnParameters": { - "id": 3246, - "nodeType": "ParameterList", - "parameters": [], - "src": "13357:0:5" - }, - "scope": 4512, - "src": "13202:295:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3356, - "nodeType": "Block", - "src": "14232:543:5", - "statements": [ - { - "body": { - "id": 3348, - "nodeType": "Block", - "src": "14289:408:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3306, - "name": "_contributionIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3278, - "src": "14306:16:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3308, - "indexExpression": { - "argumentTypes": null, - "id": 3307, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3295, - "src": "14323:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14306:19:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3309, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "14328:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3311, - "indexExpression": { - "argumentTypes": null, - "id": 3310, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14337:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14328:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3312, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributions", - "nodeType": "MemberAccess", - "referencedDeclaration": 2535, - "src": "14328:33:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", - "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" - } - }, - "id": 3313, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14328:40:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14306:62:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3305, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "14298:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14298:71:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3316, - "nodeType": "ExpressionStatement", - "src": "14298:71:5" - }, - { - "assignments": [ - 3318 - ], - "declarations": [ - { - "constant": false, - "id": 3318, - "name": "contribution", - "nodeType": "VariableDeclaration", - "scope": 3348, - "src": "14380:33:5", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", - "typeString": "struct StandardBounties.Contribution" - }, - "typeName": { - "contractScope": null, - "id": 3317, - "name": "Contribution", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2549, - "src": "14380:12:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", - "typeString": "struct StandardBounties.Contribution" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3327, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3319, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "14416:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3321, - "indexExpression": { - "argumentTypes": null, - "id": 3320, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14425:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14416:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3322, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributions", - "nodeType": "MemberAccess", - "referencedDeclaration": 2535, - "src": "14416:33:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", - "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" - } - }, - "id": 3326, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3323, - "name": "_contributionIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3278, - "src": "14450:16:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3325, - "indexExpression": { - "argumentTypes": null, - "id": 3324, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3295, - "src": "14467:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14450:19:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14416:54:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage", - "typeString": "struct StandardBounties.Contribution storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14380:90:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "14489:22:5", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3329, - "name": "contribution", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3318, - "src": "14490:12:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", - "typeString": "struct StandardBounties.Contribution storage pointer" - } - }, - "id": 3330, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "refunded", - "nodeType": "MemberAccess", - "referencedDeclaration": 2548, - "src": "14490:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3328, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "14481:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14481:31:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3333, - "nodeType": "ExpressionStatement", - "src": "14481:31:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 3338, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3334, - "name": "contribution", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3318, - "src": "14523:12:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", - "typeString": "struct StandardBounties.Contribution storage pointer" - } - }, - "id": 3336, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "refunded", - "nodeType": "MemberAccess", - "referencedDeclaration": 2548, - "src": "14523:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3337, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14547:4:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "14523:28:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3339, - "nodeType": "ExpressionStatement", - "src": "14523:28:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3341, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14577:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3342, - "name": "contribution", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3318, - "src": "14588:12:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", - "typeString": "struct StandardBounties.Contribution storage pointer" - } - }, - "id": 3343, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributor", - "nodeType": "MemberAccess", - "referencedDeclaration": 2544, - "src": "14588:24:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3344, - "name": "contribution", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3318, - "src": "14614:12:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", - "typeString": "struct StandardBounties.Contribution storage pointer" - } - }, - "id": 3345, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amount", - "nodeType": "MemberAccess", - "referencedDeclaration": 2546, - "src": "14614:19:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3340, - "name": "transferTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4364, - "src": "14562:14:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_payable_$_t_uint256_$returns$__$", - "typeString": "function (uint256,address payable,uint256)" - } - }, - "id": 3346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14562:72:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3347, - "nodeType": "ExpressionStatement", - "src": "14562:72:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3298, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3295, - "src": "14256:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3299, - "name": "_contributionIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3278, - "src": "14260:16:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14260:23:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14256:27:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3349, - "initializationExpression": { - "assignments": [ - 3295 - ], - "declarations": [ - { - "constant": false, - "id": 3295, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 3349, - "src": "14244:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3294, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14244:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3297, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3296, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14253:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "14244:10:5" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "14285:3:5", - "subExpression": { - "argumentTypes": null, - "id": 3302, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3295, - "src": "14285:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3304, - "nodeType": "ExpressionStatement", - "src": "14285:3:5" - }, - "nodeType": "ForStatement", - "src": "14239:458:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3351, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14732:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3352, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3271, - "src": "14743:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3353, - "name": "_contributionIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3278, - "src": "14752:16:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "id": 3350, - "name": "ContributionsRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4409, - "src": "14710:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,uint256[] memory)" - } - }, - "id": 3354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14710:59:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3355, - "nodeType": "EmitStatement", - "src": "14705:64:5" - } - ] - }, - "documentation": "@param _contributionIds the array of indexes of the contributions being refunded", - "id": 3357, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3281, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3271, - "src": "14112:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3282, - "modifierName": { - "argumentTypes": null, - "id": 3280, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "14098:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14098:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3284, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14151:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3285, - "modifierName": { - "argumentTypes": null, - "id": 3283, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "14126:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14126:35:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3287, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3271, - "src": "14178:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3288, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14187:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3289, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "14198:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3290, - "modifierName": { - "argumentTypes": null, - "id": 3286, - "name": "onlyIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2689, - "src": "14167:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", - "typeString": "modifier (address,uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14167:41:5" - }, - { - "arguments": null, - "id": 3292, - "modifierName": { - "argumentTypes": null, - "id": 3291, - "name": "callNotStarted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2584, - "src": "14214:14:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "14214:14:5" - } - ], - "name": "refundContributions", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3279, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3271, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "13985:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3270, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13985:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3273, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "14007:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3272, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14007:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3275, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "14028:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3274, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14028:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3278, - "name": "_contributionIds", - "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "14049:30:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 3276, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14049:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3277, - "length": null, - "nodeType": "ArrayTypeName", - "src": "14049:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13978:102:5" - }, - "returnParameters": { - "id": 3293, - "nodeType": "ParameterList", - "parameters": [], - "src": "14232:0:5" - }, - "scope": 4512, - "src": "13950:825:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3461, - "nodeType": "Block", - "src": "15849:800:5", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3382, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "15860:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3384, - "indexExpression": { - "argumentTypes": null, - "id": 3383, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3361, - "src": "15869:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15860:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3385, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenVersion", - "nodeType": "MemberAccess", - "referencedDeclaration": 2525, - "src": "15860:32:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3386, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15896:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15860:37:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3393, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3388, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "15901:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3390, - "indexExpression": { - "argumentTypes": null, - "id": 3389, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3361, - "src": "15910:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15901:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3391, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenVersion", - "nodeType": "MemberAccess", - "referencedDeclaration": 2525, - "src": "15901:32:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3230", - "id": 3392, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15937:2:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_20_by_1", - "typeString": "int_const 20" - }, - "value": "20" - }, - "src": "15901:38:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15860:79:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3453, - "nodeType": "Block", - "src": "16310:277:5", - "statements": [ - { - "body": { - "id": 3451, - "nodeType": "Block", - "src": "16361:219:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3434, - "name": "tokenBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2561, - "src": "16380:13:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(uint256 => bool))" - } - }, - "id": 3436, - "indexExpression": { - "argumentTypes": null, - "id": 3435, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3361, - "src": "16394:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16380:24:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 3440, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3437, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "16405:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3439, - "indexExpression": { - "argumentTypes": null, - "id": 3438, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3423, - "src": "16414:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16405:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16380:37:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3433, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "16372:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16372:46:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3442, - "nodeType": "ExpressionStatement", - "src": "16372:46:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3444, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3361, - "src": "16538:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3445, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3359, - "src": "16549:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3446, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "16558:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3448, - "indexExpression": { - "argumentTypes": null, - "id": 3447, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3423, - "src": "16567:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16558:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3443, - "name": "transferTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4364, - "src": "16523:14:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_payable_$_t_uint256_$returns$__$", - "typeString": "function (uint256,address payable,uint256)" - } - }, - "id": 3449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:47:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3450, - "nodeType": "ExpressionStatement", - "src": "16523:47:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3426, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3423, - "src": "16336:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3427, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "16340:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3428, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16340:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16336:19:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3452, - "initializationExpression": { - "assignments": [ - 3423 - ], - "declarations": [ - { - "constant": false, - "id": 3423, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 3452, - "src": "16324:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3422, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16324:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3425, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3424, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16333:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "16324:10:5" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "16357:3:5", - "subExpression": { - "argumentTypes": null, - "id": 3430, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3423, - "src": "16357:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3432, - "nodeType": "ExpressionStatement", - "src": "16357:3:5" - }, - "nodeType": "ForStatement", - "src": "16319:261:5" - } - ] - }, - "id": 3454, - "nodeType": "IfStatement", - "src": "15856:731:5", - "trueBody": { - "id": 3421, - "nodeType": "Block", - "src": "15940:364:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3396, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "15957:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15957:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3398, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15976:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "15957:20:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3395, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "15949:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15949:29:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3401, - "nodeType": "ExpressionStatement", - "src": "15949:29:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3403, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "16053:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3405, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3404, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16062:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16053:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3406, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "16068:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3408, - "indexExpression": { - "argumentTypes": null, - "id": 3407, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3361, - "src": "16077:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16068:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3409, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2527, - "src": "16068:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16053:42:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3402, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "16045:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3411, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16045:51:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3412, - "nodeType": "ExpressionStatement", - "src": "16045:51:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3414, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3361, - "src": "16215:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3415, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3359, - "src": "16226:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3416, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "16235:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3418, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3417, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16244:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16235:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3413, - "name": "transferTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4364, - "src": "16200:14:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_payable_$_t_uint256_$returns$__$", - "typeString": "function (uint256,address payable,uint256)" - } - }, - "id": 3419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16200:47:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3420, - "nodeType": "ExpressionStatement", - "src": "16200:47:5" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3456, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3361, - "src": "16614:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3457, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3359, - "src": "16625:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3458, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "16634:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "id": 3455, - "name": "BountyDrained", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4418, - "src": "16600:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,uint256[] memory)" - } - }, - "id": 3459, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16600:43:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3460, - "nodeType": "EmitStatement", - "src": "16595:48:5" - } - ] - }, - "documentation": "@param _amounts an array of amounts of tokens to be sent. The length of the array should be 1 if the bounty is in ETH or ERC20 tokens. If it's an ERC721 bounty, the array should be the list of tokenIDs.", - "id": 3462, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3369, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3359, - "src": "15729:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "id": 3370, - "modifierName": { - "argumentTypes": null, - "id": 3368, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "15715:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "15715:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3372, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3361, - "src": "15768:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3373, - "modifierName": { - "argumentTypes": null, - "id": 3371, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "15743:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "15743:35:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3375, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3359, - "src": "15795:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3376, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3361, - "src": "15804:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3377, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3363, - "src": "15815:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3378, - "modifierName": { - "argumentTypes": null, - "id": 3374, - "name": "onlyIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2689, - "src": "15784:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", - "typeString": "modifier (address,uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "15784:41:5" - }, - { - "arguments": null, - "id": 3380, - "modifierName": { - "argumentTypes": null, - "id": 3379, - "name": "callNotStarted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2584, - "src": "15831:14:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "15831:14:5" - } - ], - "name": "drainBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3359, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3462, - "src": "15602:23:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 3358, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15602:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3361, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3462, - "src": "15632:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3360, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15632:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3363, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 3462, - "src": "15653:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3362, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15653:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3366, - "name": "_amounts", - "nodeType": "VariableDeclaration", - "scope": 3462, - "src": "15674:22:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 3364, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15674:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3365, - "length": null, - "nodeType": "ArrayTypeName", - "src": "15674:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15595:102:5" - }, - "returnParameters": { - "id": 3381, - "nodeType": "ParameterList", - "parameters": [], - "src": "15849:0:5" - }, - "scope": 4512, - "src": "15575:1074:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3483, - "nodeType": "Block", - "src": "17352:134:5", - "statements": [ - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3478, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3466, - "src": "17380:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3479, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3464, - "src": "17391:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3480, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "17400:5:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 3477, - "name": "ActionPerformed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4426, - "src": "17364:15:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,string memory)" - } - }, - "id": 3481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17364:42:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3482, - "nodeType": "EmitStatement", - "src": "17359:47:5" - } - ] - }, - "documentation": "@param _data the IPFS hash corresponding to a JSON object which contains the details of the action being performed (see docs for schema details)", - "id": 3484, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3471, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3464, - "src": "17299:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3472, - "modifierName": { - "argumentTypes": null, - "id": 3470, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "17285:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "17285:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3474, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3466, - "src": "17338:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3475, - "modifierName": { - "argumentTypes": null, - "id": 3473, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "17313:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "17313:35:5" - } - ], - "name": "performAction", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3469, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3464, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3484, - "src": "17204:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3463, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17204:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3466, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3484, - "src": "17226:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3465, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17226:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3468, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 3484, - "src": "17247:19:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3467, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "17247:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17197:70:5" - }, - "returnParameters": { - "id": 3476, - "nodeType": "ParameterList", - "parameters": [], - "src": "17352:0:5" - }, - "scope": 4512, - "src": "17175:311:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3544, - "nodeType": "Block", - "src": "18230:598:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3503, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10413, - "src": "18245:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3504, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "18251:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3506, - "indexExpression": { - "argumentTypes": null, - "id": 3505, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "18260:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18251:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3507, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "deadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 2521, - "src": "18251:28:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18245:34:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3502, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "18237:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18237:43:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3510, - "nodeType": "ExpressionStatement", - "src": "18237:43:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3512, - "name": "_fulfillers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "18358:11:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - "id": 3513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "18358:18:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3514, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18379:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "18358:22:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3511, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "18350:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18350:31:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3517, - "nodeType": "ExpressionStatement", - "src": "18350:31:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3524, - "name": "_fulfillers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "18506:11:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 3525, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3486, - "src": "18519:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3523, - "name": "Fulfillment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2542, - "src": "18494:11:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Fulfillment_$2542_storage_ptr_$", - "typeString": "type(struct StandardBounties.Fulfillment storage pointer)" - } - }, - "id": 3526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18494:33:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fulfillment_$2542_memory", - "typeString": "struct StandardBounties.Fulfillment memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Fulfillment_$2542_memory", - "typeString": "struct StandardBounties.Fulfillment memory" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3518, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "18456:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3520, - "indexExpression": { - "argumentTypes": null, - "id": 3519, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "18465:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18456:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3521, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "fulfillments", - "nodeType": "MemberAccess", - "referencedDeclaration": 2532, - "src": "18456:32:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", - "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" - } - }, - "id": 3522, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "18456:37:5", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Fulfillment_$2542_storage_$returns$_t_uint256_$", - "typeString": "function (struct StandardBounties.Fulfillment storage ref) returns (uint256)" - } - }, - "id": 3527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18456:72:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3528, - "nodeType": "ExpressionStatement", - "src": "18456:72:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3530, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "18558:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3531, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "18596:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3533, - "indexExpression": { - "argumentTypes": null, - "id": 3532, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "18605:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18596:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3534, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "fulfillments", - "nodeType": "MemberAccess", - "referencedDeclaration": 2532, - "src": "18596:32:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", - "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" - } - }, - "id": 3535, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "18596:39:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3536, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18638:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "18596:43:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3538, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "18595:45:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3539, - "name": "_fulfillers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "18668:11:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 3540, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "18707:5:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 3541, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3486, - "src": "18814:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3529, - "name": "BountyFulfilled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4439, - "src": "18542:15:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_address_$returns$__$", - "typeString": "function (uint256,uint256,address payable[] memory,string memory,address)" - } - }, - "id": 3542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18542:280:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3543, - "nodeType": "EmitStatement", - "src": "18537:285:5" - } - ] - }, - "documentation": "@param _data the IPFS hash corresponding to a JSON object which contains the details of the submission (see docs for schema details)", - "id": 3545, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3496, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3486, - "src": "18177:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3497, - "modifierName": { - "argumentTypes": null, - "id": 3495, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "18163:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "18163:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3499, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "18216:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3500, - "modifierName": { - "argumentTypes": null, - "id": 3498, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "18191:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "18191:35:5" - } - ], - "name": "fulfillBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3486, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3545, - "src": "18038:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3485, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18038:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3488, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3545, - "src": "18060:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3487, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "18060:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3491, - "name": "_fulfillers", - "nodeType": "VariableDeclaration", - "scope": 3545, - "src": "18081:37:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 3489, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18081:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 3490, - "length": null, - "nodeType": "ArrayTypeName", - "src": "18081:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3493, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 3545, - "src": "18125:19:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3492, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "18125:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18031:114:5" - }, - "returnParameters": { - "id": 3501, - "nodeType": "ParameterList", - "parameters": [], - "src": "18230:0:5" - }, - "scope": 4512, - "src": "18009:819:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3591, - "nodeType": "Block", - "src": "19858:324:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3574, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "19865:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3576, - "indexExpression": { - "argumentTypes": null, - "id": 3575, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3549, - "src": "19874:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19865:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3577, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "fulfillments", - "nodeType": "MemberAccess", - "referencedDeclaration": 2532, - "src": "19865:32:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", - "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" - } - }, - "id": 3579, - "indexExpression": { - "argumentTypes": null, - "id": 3578, - "name": "_fulfillmentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3551, - "src": "19898:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19865:48:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fulfillment_$2542_storage", - "typeString": "struct StandardBounties.Fulfillment storage ref" - } - }, - "id": 3580, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "fulfillers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2539, - "src": "19865:59:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3581, - "name": "_fulfillers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3554, - "src": "19927:11:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - "src": "19865:73:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 3583, - "nodeType": "ExpressionStatement", - "src": "19865:73:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3585, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3549, - "src": "19969:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3586, - "name": "_fulfillmentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3551, - "src": "20009:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3587, - "name": "_fulfillers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3554, - "src": "20054:11:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 3588, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3556, - "src": "20096:5:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 3584, - "name": "FulfillmentUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4450, - "src": "19950:18:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint256,uint256,address payable[] memory,string memory)" - } - }, - "id": 3589, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19950:152:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3590, - "nodeType": "EmitStatement", - "src": "19945:157:5" - } - ] - }, - "documentation": "@param _data the new IPFS hash corresponding to a JSON object which contains the details of the submission (see docs for schema details)", - "id": 3592, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3559, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3547, - "src": "19618:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3560, - "modifierName": { - "argumentTypes": null, - "id": 3558, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "19604:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "19604:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3562, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3549, - "src": "19655:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3563, - "modifierName": { - "argumentTypes": null, - "id": 3561, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "19630:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "19630:35:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3565, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3549, - "src": "19699:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3566, - "name": "_fulfillmentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3551, - "src": "19710:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3567, - "modifierName": { - "argumentTypes": null, - "id": 3564, - "name": "validateFulfillmentArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2632, - "src": "19669:29:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", - "typeString": "modifier (uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "19669:56:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3569, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3547, - "src": "19743:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3570, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3549, - "src": "19752:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3571, - "name": "_fulfillmentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3551, - "src": "19763:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3572, - "modifierName": { - "argumentTypes": null, - "id": 3568, - "name": "onlySubmitter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2711, - "src": "19729:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", - "typeString": "modifier (address,uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "19729:49:5" - } - ], - "name": "updateFulfillment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3557, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3547, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3592, - "src": "19466:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3546, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19466:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3549, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3592, - "src": "19486:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3548, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "19486:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3551, - "name": "_fulfillmentId", - "nodeType": "VariableDeclaration", - "scope": 3592, - "src": "19505:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3550, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "19505:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3554, - "name": "_fulfillers", - "nodeType": "VariableDeclaration", - "scope": 3592, - "src": "19529:36:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 3552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19529:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 3553, - "length": null, - "nodeType": "ArrayTypeName", - "src": "19529:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3556, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 3592, - "src": "19570:19:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3555, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "19570:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19461:129:5" - }, - "returnParameters": { - "id": 3573, - "nodeType": "ParameterList", - "parameters": [], - "src": "19858:0:5" - }, - "scope": 4512, - "src": "19435:747:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3687, - "nodeType": "Block", - "src": "21405:812:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3623, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "21499:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3625, - "indexExpression": { - "argumentTypes": null, - "id": 3624, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3596, - "src": "21508:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21499:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3626, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "hasPaidOut", - "nodeType": "MemberAccess", - "referencedDeclaration": 2529, - "src": "21499:30:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3627, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21532:4:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "21499:37:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3629, - "nodeType": "ExpressionStatement", - "src": "21499:37:5" - }, - { - "assignments": [ - 3631 - ], - "declarations": [ - { - "constant": false, - "id": 3631, - "name": "fulfillment", - "nodeType": "VariableDeclaration", - "scope": 3687, - "src": "21545:31:5", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fulfillment_$2542_storage_ptr", - "typeString": "struct StandardBounties.Fulfillment" - }, - "typeName": { - "contractScope": null, - "id": 3630, - "name": "Fulfillment", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2542, - "src": "21545:11:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fulfillment_$2542_storage_ptr", - "typeString": "struct StandardBounties.Fulfillment" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3638, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3632, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "21579:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3634, - "indexExpression": { - "argumentTypes": null, - "id": 3633, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3596, - "src": "21588:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21579:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3635, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "fulfillments", - "nodeType": "MemberAccess", - "referencedDeclaration": 2532, - "src": "21579:32:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", - "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" - } - }, - "id": 3637, - "indexExpression": { - "argumentTypes": null, - "id": 3636, - "name": "_fulfillmentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3598, - "src": "21612:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21579:48:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fulfillment_$2542_storage", - "typeString": "struct StandardBounties.Fulfillment storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21545:82:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3640, - "name": "_tokenAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3603, - "src": "21644:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21644:20:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3642, - "name": "fulfillment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3631, - "src": "21668:11:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fulfillment_$2542_storage_ptr", - "typeString": "struct StandardBounties.Fulfillment storage pointer" - } - }, - "id": 3643, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "fulfillers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2539, - "src": "21668:22:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 3644, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21668:29:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "21644:53:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3639, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "21636:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21636:62:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "ExpressionStatement", - "src": "21636:62:5" - }, - { - "body": { - "id": 3678, - "nodeType": "Block", - "src": "21838:202:5", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3660, - "name": "_tokenAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3603, - "src": "21853:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3662, - "indexExpression": { - "argumentTypes": null, - "id": 3661, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "21867:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21853:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3663, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21872:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "21853:20:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3677, - "nodeType": "IfStatement", - "src": "21849:184:5", - "trueBody": { - "id": 3676, - "nodeType": "Block", - "src": "21874:159:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3666, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3596, - "src": "21966:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3667, - "name": "fulfillment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3631, - "src": "21977:11:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fulfillment_$2542_storage_ptr", - "typeString": "struct StandardBounties.Fulfillment storage pointer" - } - }, - "id": 3668, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "fulfillers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2539, - "src": "21977:22:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 3670, - "indexExpression": { - "argumentTypes": null, - "id": 3669, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "22000:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21977:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3671, - "name": "_tokenAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3603, - "src": "22004:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3673, - "indexExpression": { - "argumentTypes": null, - "id": 3672, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "22018:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22004:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3665, - "name": "transferTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4364, - "src": "21951:14:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_payable_$_t_uint256_$returns$__$", - "typeString": "function (uint256,address payable,uint256)" - } - }, - "id": 3674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21951:70:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3675, - "nodeType": "ExpressionStatement", - "src": "21951:70:5" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3652, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "21799:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3653, - "name": "fulfillment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3631, - "src": "21803:11:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fulfillment_$2542_storage_ptr", - "typeString": "struct StandardBounties.Fulfillment storage pointer" - } - }, - "id": 3654, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "fulfillers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2539, - "src": "21803:22:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 3655, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21803:29:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "21799:33:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3679, - "initializationExpression": { - "assignments": [ - 3649 - ], - "declarations": [ - { - "constant": false, - "id": 3649, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 3679, - "src": "21784:9:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3648, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21784:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3651, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3650, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21796:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "21784:13:5" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "21834:3:5", - "subExpression": { - "argumentTypes": null, - "id": 3657, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "21834:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3659, - "nodeType": "ExpressionStatement", - "src": "21834:3:5" - }, - "nodeType": "ForStatement", - "src": "21779:261:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3681, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3596, - "src": "22071:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3682, - "name": "_fulfillmentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3598, - "src": "22112:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3683, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3594, - "src": "22158:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3684, - "name": "_tokenAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3603, - "src": "22197:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "id": 3680, - "name": "FulfillmentAccepted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4461, - "src": "22051:19:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint256,uint256,address,uint256[] memory)" - } - }, - "id": 3685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22051:160:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3686, - "nodeType": "EmitStatement", - "src": "22046:165:5" - } - ] - }, - "documentation": "being sent to each of the individual fulfillers", - "id": 3688, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3606, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3594, - "src": "21221:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3607, - "modifierName": { - "argumentTypes": null, - "id": 3605, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "21207:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "21207:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3609, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3596, - "src": "21260:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3610, - "modifierName": { - "argumentTypes": null, - "id": 3608, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "21235:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "21235:35:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3612, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3596, - "src": "21306:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3613, - "name": "_fulfillmentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3598, - "src": "21317:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3614, - "modifierName": { - "argumentTypes": null, - "id": 3611, - "name": "validateFulfillmentArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2632, - "src": "21276:29:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", - "typeString": "modifier (uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "21276:56:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3616, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3594, - "src": "21349:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3617, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3596, - "src": "21358:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3618, - "name": "_approverId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "21369:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3619, - "modifierName": { - "argumentTypes": null, - "id": 3615, - "name": "isApprover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2754, - "src": "21338:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", - "typeString": "modifier (address,uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "21338:43:5" - }, - { - "arguments": null, - "id": 3621, - "modifierName": { - "argumentTypes": null, - "id": 3620, - "name": "callNotStarted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2584, - "src": "21387:14:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "21387:14:5" - } - ], - "name": "acceptFulfillment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3604, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3594, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3688, - "src": "21069:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3593, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21069:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3596, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3688, - "src": "21091:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3595, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "21091:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3598, - "name": "_fulfillmentId", - "nodeType": "VariableDeclaration", - "scope": 3688, - "src": "21112:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3597, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "21112:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3600, - "name": "_approverId", - "nodeType": "VariableDeclaration", - "scope": 3688, - "src": "21138:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3599, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "21138:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3603, - "name": "_tokenAmounts", - "nodeType": "VariableDeclaration", - "scope": 3688, - "src": "21161:27:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 3601, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "21161:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3602, - "length": null, - "nodeType": "ArrayTypeName", - "src": "21161:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21062:127:5" - }, - "returnParameters": { - "id": 3622, - "nodeType": "ParameterList", - "parameters": [], - "src": "21405:0:5" - }, - "scope": 4512, - "src": "21036:1181:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3729, - "nodeType": "Block", - "src": "23492:376:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3709, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3690, - "src": "23575:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3710, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3692, - "src": "23584:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3711, - "name": "_fulfillers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3695, - "src": "23595:11:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 3712, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3697, - "src": "23608:5:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 3708, - "name": "fulfillBounty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3545, - "src": "23561:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address payable[] memory,string memory)" - } - }, - "id": 3713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23561:53:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3714, - "nodeType": "ExpressionStatement", - "src": "23561:53:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3716, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3690, - "src": "23678:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3717, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3692, - "src": "23710:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3718, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "23744:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3720, - "indexExpression": { - "argumentTypes": null, - "id": 3719, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3692, - "src": "23753:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23744:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3721, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "fulfillments", - "nodeType": "MemberAccess", - "referencedDeclaration": 2532, - "src": "23744:32:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", - "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" - } - }, - "id": 3722, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23744:39:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3723, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23786:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "23744:43:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3725, - "name": "_approverId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3699, - "src": "23812:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3726, - "name": "_tokenAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3702, - "src": "23848:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "id": 3715, - "name": "acceptFulfillment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3688, - "src": "23660:17:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,uint256,uint256,uint256[] memory)" - } - }, - "id": 3727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23660:202:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3728, - "nodeType": "ExpressionStatement", - "src": "23660:202:5" - } - ] - }, - "documentation": "being sent to each of the individual fulfillers", - "id": 3730, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3705, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3690, - "src": "23480:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3706, - "modifierName": { - "argumentTypes": null, - "id": 3704, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "23466:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "23466:22:5" - } - ], - "name": "fulfillAndAccept", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3703, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3690, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3730, - "src": "23285:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3689, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23285:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3692, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3730, - "src": "23307:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3691, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "23307:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3695, - "name": "_fulfillers", - "nodeType": "VariableDeclaration", - "scope": 3730, - "src": "23328:36:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 3693, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23328:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 3694, - "length": null, - "nodeType": "ArrayTypeName", - "src": "23328:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3697, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 3730, - "src": "23371:19:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3696, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "23371:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3699, - "name": "_approverId", - "nodeType": "VariableDeclaration", - "scope": 3730, - "src": "23397:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3698, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "23397:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3702, - "name": "_tokenAmounts", - "nodeType": "VariableDeclaration", - "scope": 3730, - "src": "23420:27:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 3700, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "23420:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3701, - "length": null, - "nodeType": "ArrayTypeName", - "src": "23420:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23278:170:5" - }, - "returnParameters": { - "id": 3707, - "nodeType": "ParameterList", - "parameters": [], - "src": "23492:0:5" - }, - "scope": 4512, - "src": "23253:615:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3821, - "nodeType": "Block", - "src": "24888:901:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3753, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3734, - "src": "24903:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 3754, - "name": "numBounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2551, - "src": "24915:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24903:23:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3752, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "24895:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3756, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24895:32:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3757, - "nodeType": "ExpressionStatement", - "src": "24895:32:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3759, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3736, - "src": "25028:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3760, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "25040:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3762, - "indexExpression": { - "argumentTypes": null, - "id": 3761, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3734, - "src": "25049:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25040:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3763, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "25040:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 3764, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "25040:34:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25028:46:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3758, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "25020:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3766, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25020:55:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3767, - "nodeType": "ExpressionStatement", - "src": "25020:55:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3769, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "25176:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3770, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "25187:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3772, - "indexExpression": { - "argumentTypes": null, - "id": 3771, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3734, - "src": "25196:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25187:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3773, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "25187:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 3775, - "indexExpression": { - "argumentTypes": null, - "id": 3774, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3736, - "src": "25215:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25187:38:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "25176:49:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3768, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "25168:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25168:58:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3778, - "nodeType": "ExpressionStatement", - "src": "25168:58:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3780, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3739, - "src": "25315:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - "id": 3781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "25315:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3782, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25333:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "25315:19:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3784, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "25338:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - "id": 3785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "25338:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3786, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25358:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "25338:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "25315:44:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3779, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "25307:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3789, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25307:53:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3790, - "nodeType": "ExpressionStatement", - "src": "25307:53:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 3796, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3791, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "25444:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3793, - "indexExpression": { - "argumentTypes": null, - "id": 3792, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3734, - "src": "25453:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25444:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3794, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "25444:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3795, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3739, - "src": "25474:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - "src": "25444:38:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 3797, - "nodeType": "ExpressionStatement", - "src": "25444:38:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 3803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3798, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "25489:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3800, - "indexExpression": { - "argumentTypes": null, - "id": 3799, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3734, - "src": "25498:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25489:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3801, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "approvers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2519, - "src": "25489:29:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3802, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "25521:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - "src": "25489:42:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3804, - "nodeType": "ExpressionStatement", - "src": "25489:42:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 3810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3805, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "25538:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3807, - "indexExpression": { - "argumentTypes": null, - "id": 3806, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3734, - "src": "25547:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25538:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3808, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "deadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 2521, - "src": "25538:28:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3809, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "25569:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25538:40:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3811, - "nodeType": "ExpressionStatement", - "src": "25538:40:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3813, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3734, - "src": "25604:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3814, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "25639:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3815, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3739, - "src": "25672:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 3816, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "25706:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 3817, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3744, - "src": "25742:5:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 3818, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "25773:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3812, - "name": "BountyChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4477, - "src": "25590:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$__$", - "typeString": "function (uint256,address,address payable[] memory,address payable[] memory,string memory,uint256)" - } - }, - "id": 3819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25590:193:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3820, - "nodeType": "EmitStatement", - "src": "25585:198:5" - } - ] - }, - "documentation": "@param _deadline the new timestamp which will become the deadline of the bounty", - "id": 3822, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3749, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "24876:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3750, - "modifierName": { - "argumentTypes": null, - "id": 3748, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "24862:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "24862:22:5" - } - ], - "name": "changeBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3747, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3732, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3822, - "src": "24657:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3731, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24657:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3734, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3822, - "src": "24679:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3733, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "24679:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3736, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 3822, - "src": "24700:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3735, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "24700:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3739, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 3822, - "src": "24721:33:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 3737, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24721:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 3738, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24721:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3742, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 3822, - "src": "24761:35:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 3740, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24761:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 3741, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24761:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3744, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 3822, - "src": "24803:19:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3743, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "24803:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3746, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 3822, - "src": "24829:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3745, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "24829:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24650:194:5" - }, - "returnParameters": { - "id": 3751, - "nodeType": "ParameterList", - "parameters": [], - "src": "24888:0:5" - }, - "scope": 4512, - "src": "24629:1160:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3882, - "nodeType": "Block", - "src": "26643:237:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3851, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "26658:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3852, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "26670:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3854, - "indexExpression": { - "argumentTypes": null, - "id": 3853, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3826, - "src": "26679:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26670:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3855, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "26670:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 3856, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26670:34:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26658:46:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3858, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "26708:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3859, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26721:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "26708:14:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "26658:64:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3850, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "26650:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3862, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26650:73:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3863, - "nodeType": "ExpressionStatement", - "src": "26650:73:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3864, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "26732:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3866, - "indexExpression": { - "argumentTypes": null, - "id": 3865, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3826, - "src": "26741:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26732:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3867, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "26732:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 3869, - "indexExpression": { - "argumentTypes": null, - "id": 3868, - "name": "_issuerIdToChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "26760:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "26732:46:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3870, - "name": "_newIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3832, - "src": "26781:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "26732:59:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 3872, - "nodeType": "ExpressionStatement", - "src": "26732:59:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3874, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3826, - "src": "26826:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3875, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3824, - "src": "26837:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3876, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "26846:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3878, - "indexExpression": { - "argumentTypes": null, - "id": 3877, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3826, - "src": "26855:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26846:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3879, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "26846:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - ], - "id": 3873, - "name": "BountyIssuersUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4486, - "src": "26805:20:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_payable_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,address payable[] memory)" - } - }, - "id": 3880, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26805:69:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3881, - "nodeType": "EmitStatement", - "src": "26800:74:5" - } - ] - }, - "documentation": "@param _newIssuer the address of the new issuer", - "id": 3883, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3835, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3824, - "src": "26483:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3836, - "modifierName": { - "argumentTypes": null, - "id": 3834, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "26469:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "26469:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3838, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3826, - "src": "26522:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3839, - "modifierName": { - "argumentTypes": null, - "id": 3837, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "26497:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "26497:35:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3826, - "src": "26563:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3842, - "name": "_issuerIdToChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "26574:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3843, - "modifierName": { - "argumentTypes": null, - "id": 3840, - "name": "validateIssuerArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2650, - "src": "26538:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", - "typeString": "modifier (uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "26538:54:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3845, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3824, - "src": "26609:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3846, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3826, - "src": "26618:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3847, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "26629:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3848, - "modifierName": { - "argumentTypes": null, - "id": 3844, - "name": "onlyIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2689, - "src": "26598:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", - "typeString": "modifier (address,uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "26598:41:5" - } - ], - "name": "changeIssuer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3824, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3883, - "src": "26331:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3823, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26331:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3826, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3883, - "src": "26353:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3825, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "26353:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3828, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 3883, - "src": "26374:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3827, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "26374:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3830, - "name": "_issuerIdToChange", - "nodeType": "VariableDeclaration", - "scope": 3883, - "src": "26395:22:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3829, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "26395:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3832, - "name": "_newIssuer", - "nodeType": "VariableDeclaration", - "scope": 3883, - "src": "26424:26:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 3831, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26424:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26324:127:5" - }, - "returnParameters": { - "id": 3849, - "nodeType": "ParameterList", - "parameters": [], - "src": "26643:0:5" - }, - "scope": 4512, - "src": "26303:577:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3929, - "nodeType": "Block", - "src": "27728:154:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3911, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "27735:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3913, - "indexExpression": { - "argumentTypes": null, - "id": 3912, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3887, - "src": "27744:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27735:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3914, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "approvers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2519, - "src": "27735:29:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3916, - "indexExpression": { - "argumentTypes": null, - "id": 3915, - "name": "_approverId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3891, - "src": "27765:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "27735:42:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3917, - "name": "_approver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3893, - "src": "27780:9:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "27735:54:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3919, - "nodeType": "ExpressionStatement", - "src": "27735:54:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3921, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3887, - "src": "27826:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3922, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3885, - "src": "27837:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3923, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "27846:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3925, - "indexExpression": { - "argumentTypes": null, - "id": 3924, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3887, - "src": "27855:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27846:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3926, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "approvers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2519, - "src": "27846:29:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - ], - "id": 3920, - "name": "BountyApproversUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4495, - "src": "27803:22:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,address[] memory)" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27803:73:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3928, - "nodeType": "EmitStatement", - "src": "27798:78:5" - } - ] - }, - "documentation": "@param _approver the address of the new approver", - "id": 3930, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3896, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3885, - "src": "27572:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3897, - "modifierName": { - "argumentTypes": null, - "id": 3895, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "27558:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "27558:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3899, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3887, - "src": "27611:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3900, - "modifierName": { - "argumentTypes": null, - "id": 3898, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "27586:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "27586:35:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3902, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3885, - "src": "27638:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3903, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3887, - "src": "27647:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3904, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3889, - "src": "27658:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3905, - "modifierName": { - "argumentTypes": null, - "id": 3901, - "name": "onlyIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2689, - "src": "27627:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", - "typeString": "modifier (address,uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "27627:41:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3907, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3887, - "src": "27701:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3908, - "name": "_approverId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3891, - "src": "27712:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3909, - "modifierName": { - "argumentTypes": null, - "id": 3906, - "name": "validateApproverArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2668, - "src": "27674:26:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", - "typeString": "modifier (uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "27674:50:5" - } - ], - "name": "changeApprover", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3894, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3885, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3930, - "src": "27425:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3884, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27425:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3887, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3930, - "src": "27447:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3886, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "27447:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3889, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 3930, - "src": "27468:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "27468:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3891, - "name": "_approverId", - "nodeType": "VariableDeclaration", - "scope": 3930, - "src": "27489:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3890, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "27489:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3893, - "name": "_approver", - "nodeType": "VariableDeclaration", - "scope": 3930, - "src": "27512:25:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 3892, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27512:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27418:120:5" - }, - "returnParameters": { - "id": 3910, - "nodeType": "ParameterList", - "parameters": [], - "src": "27728:0:5" - }, - "scope": 4512, - "src": "27395:487:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 4015, - "nodeType": "Block", - "src": "28769:489:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3954, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3934, - "src": "28784:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 3955, - "name": "numBounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2551, - "src": "28796:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "28784:23:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3953, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "28776:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28776:32:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3958, - "nodeType": "ExpressionStatement", - "src": "28776:32:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3966, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3960, - "name": "_approverIdToChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3940, - "src": "28823:19:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3961, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "28845:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3963, - "indexExpression": { - "argumentTypes": null, - "id": 3962, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3934, - "src": "28854:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "28845:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3964, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "approvers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2519, - "src": "28845:29:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3965, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "28845:36:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "28823:58:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3959, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "28815:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28815:67:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3968, - "nodeType": "ExpressionStatement", - "src": "28815:67:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3970, - "name": "_issuerIdToChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3938, - "src": "28897:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3971, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "28917:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3973, - "indexExpression": { - "argumentTypes": null, - "id": 3972, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3934, - "src": "28926:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "28917:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3974, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "28917:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 3975, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "28917:34:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "28897:54:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3969, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "28889:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28889:63:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3978, - "nodeType": "ExpressionStatement", - "src": "28889:63:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 3986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3979, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "28961:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3981, - "indexExpression": { - "argumentTypes": null, - "id": 3980, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3934, - "src": "28970:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "28961:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3982, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "28961:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 3984, - "indexExpression": { - "argumentTypes": null, - "id": 3983, - "name": "_issuerIdToChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3938, - "src": "28989:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28961:46:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3985, - "name": "_issuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "29010:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "28961:56:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 3987, - "nodeType": "ExpressionStatement", - "src": "28961:56:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 3995, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3988, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "29024:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3990, - "indexExpression": { - "argumentTypes": null, - "id": 3989, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3934, - "src": "29033:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29024:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3991, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "approvers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2519, - "src": "29024:29:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3993, - "indexExpression": { - "argumentTypes": null, - "id": 3992, - "name": "_approverIdToChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3940, - "src": "29054:19:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29024:50:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3994, - "name": "_issuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "29077:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "29024:60:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3996, - "nodeType": "ExpressionStatement", - "src": "29024:60:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3998, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3934, - "src": "29119:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3999, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3932, - "src": "29130:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4000, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "29139:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4002, - "indexExpression": { - "argumentTypes": null, - "id": 4001, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3934, - "src": "29148:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29139:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4003, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "29139:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - ], - "id": 3997, - "name": "BountyIssuersUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4486, - "src": "29098:20:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_payable_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,address payable[] memory)" - } - }, - "id": 4004, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29098:69:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4005, - "nodeType": "EmitStatement", - "src": "29093:74:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4007, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3934, - "src": "29202:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4008, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3932, - "src": "29213:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4009, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "29222:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4011, - "indexExpression": { - "argumentTypes": null, - "id": 4010, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3934, - "src": "29231:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29222:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4012, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "approvers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2519, - "src": "29222:29:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - ], - "id": 4006, - "name": "BountyApproversUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4495, - "src": "29179:22:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,address[] memory)" - } - }, - "id": 4013, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29179:73:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4014, - "nodeType": "EmitStatement", - "src": "29174:78:5" - } - ] - }, - "documentation": "@param _issuer the address of the new approver", - "id": 4016, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3945, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3932, - "src": "28710:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3946, - "modifierName": { - "argumentTypes": null, - "id": 3944, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "28696:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "28696:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3948, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3932, - "src": "28735:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3949, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3934, - "src": "28744:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3950, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3936, - "src": "28755:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3951, - "modifierName": { - "argumentTypes": null, - "id": 3947, - "name": "onlyIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2689, - "src": "28724:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", - "typeString": "modifier (address,uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "28724:41:5" - } - ], - "name": "changeIssuerAndApprover", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3943, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3932, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 4016, - "src": "28528:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3931, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28528:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3934, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4016, - "src": "28550:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3933, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "28550:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3936, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4016, - "src": "28571:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3935, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "28571:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3938, - "name": "_issuerIdToChange", - "nodeType": "VariableDeclaration", - "scope": 4016, - "src": "28592:22:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3937, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "28592:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3940, - "name": "_approverIdToChange", - "nodeType": "VariableDeclaration", - "scope": 4016, - "src": "28621:24:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3939, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "28621:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3942, - "name": "_issuer", - "nodeType": "VariableDeclaration", - "scope": 4016, - "src": "28652:23:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 3941, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28652:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28521:155:5" - }, - "returnParameters": { - "id": 3952, - "nodeType": "ParameterList", - "parameters": [], - "src": "28769:0:5" - }, - "scope": 4512, - "src": "28489:769:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 4048, - "nodeType": "Block", - "src": "30049:164:5", - "statements": [ - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4043, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4020, - "src": "30079:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4044, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4018, - "src": "30090:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4045, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4024, - "src": "30099:5:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 4042, - "name": "BountyDataChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4503, - "src": "30061:17:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,string memory)" - } - }, - "id": 4046, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30061:44:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4047, - "nodeType": "EmitStatement", - "src": "30056:49:5" - } - ] - }, - "documentation": "@param _data the new IPFS hash representing the JSON object storing the details of the bounty (see docs for schema details)", - "id": 4049, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 4027, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4018, - "src": "29897:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 4028, - "modifierName": { - "argumentTypes": null, - "id": 4026, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "29883:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "29883:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 4030, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4020, - "src": "29936:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4031, - "modifierName": { - "argumentTypes": null, - "id": 4029, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "29911:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "29911:35:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 4033, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4020, - "src": "29977:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4034, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4022, - "src": "29988:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4035, - "modifierName": { - "argumentTypes": null, - "id": 4032, - "name": "validateIssuerArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2650, - "src": "29952:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", - "typeString": "modifier (uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "29952:46:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 4037, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4018, - "src": "30015:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4038, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4020, - "src": "30024:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4039, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4022, - "src": "30035:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4040, - "modifierName": { - "argumentTypes": null, - "id": 4036, - "name": "onlyIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2689, - "src": "30004:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", - "typeString": "modifier (address,uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "30004:41:5" - } - ], - "name": "changeData", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4025, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4018, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 4049, - "src": "29781:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4017, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29781:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4020, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4049, - "src": "29803:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4019, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "29803:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4022, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4049, - "src": "29824:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4021, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "29824:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4024, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4049, - "src": "29845:19:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4023, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "29845:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29774:91:5" - }, - "returnParameters": { - "id": 4041, - "nodeType": "ParameterList", - "parameters": [], - "src": "30049:0:5" - }, - "scope": 4512, - "src": "29755:458:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4088, - "nodeType": "Block", - "src": "30969:119:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4075, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "30976:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4077, - "indexExpression": { - "argumentTypes": null, - "id": 4076, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4053, - "src": "30985:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "30976:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4078, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "deadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 2521, - "src": "30976:28:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4079, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4057, - "src": "31007:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30976:40:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4081, - "nodeType": "ExpressionStatement", - "src": "30976:40:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4083, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4053, - "src": "31052:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4084, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4051, - "src": "31063:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4085, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4057, - "src": "31072:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4082, - "name": "BountyDeadlineChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4511, - "src": "31030:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (uint256,address,uint256)" - } - }, - "id": 4086, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31030:52:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4087, - "nodeType": "EmitStatement", - "src": "31025:57:5" - } - ] - }, - "documentation": "@param _deadline the new timestamp which will become the deadline of the bounty", - "id": 4089, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 4060, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4051, - "src": "30817:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 4061, - "modifierName": { - "argumentTypes": null, - "id": 4059, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "30803:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "30803:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 4063, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4053, - "src": "30856:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4064, - "modifierName": { - "argumentTypes": null, - "id": 4062, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "30831:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "30831:35:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 4066, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4053, - "src": "30897:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4067, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4055, - "src": "30908:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4068, - "modifierName": { - "argumentTypes": null, - "id": 4065, - "name": "validateIssuerArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2650, - "src": "30872:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", - "typeString": "modifier (uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "30872:46:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 4070, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4051, - "src": "30935:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4071, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4053, - "src": "30944:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4072, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4055, - "src": "30955:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4073, - "modifierName": { - "argumentTypes": null, - "id": 4069, - "name": "onlyIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2689, - "src": "30924:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", - "typeString": "modifier (address,uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "30924:41:5" - } - ], - "name": "changeDeadline", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4058, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4051, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 4089, - "src": "30704:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4050, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30704:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4053, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4089, - "src": "30726:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4052, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "30726:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4055, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4089, - "src": "30747:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4054, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "30747:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4057, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 4089, - "src": "30768:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4056, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "30768:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30697:86:5" - }, - "returnParameters": { - "id": 4074, - "nodeType": "ParameterList", - "parameters": [], - "src": "30969:0:5" - }, - "scope": 4512, - "src": "30674:414:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 4148, - "nodeType": "Block", - "src": "31848:199:5", - "statements": [ - { - "body": { - "id": 4137, - "nodeType": "Block", - "src": "31897:62:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4132, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4098, - "src": "31939:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - "id": 4134, - "indexExpression": { - "argumentTypes": null, - "id": 4133, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4117, - "src": "31948:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31939:11:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4127, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "31906:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4129, - "indexExpression": { - "argumentTypes": null, - "id": 4128, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4093, - "src": "31915:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31906:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4130, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "31906:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 4131, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31906:32:5", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_payable_$returns$_t_uint256_$", - "typeString": "function (address payable) returns (uint256)" - } - }, - "id": 4135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31906:45:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4136, - "nodeType": "ExpressionStatement", - "src": "31906:45:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4120, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4117, - "src": "31872:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4121, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4098, - "src": "31876:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - "id": 4122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31876:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31872:19:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4138, - "initializationExpression": { - "assignments": [ - 4117 - ], - "declarations": [ - { - "constant": false, - "id": 4117, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 4138, - "src": "31860:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4116, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "31860:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4119, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 4118, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31869:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "31860:10:5" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 4125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "31893:3:5", - "subExpression": { - "argumentTypes": null, - "id": 4124, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4117, - "src": "31893:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4126, - "nodeType": "ExpressionStatement", - "src": "31893:3:5" - }, - "nodeType": "ForStatement", - "src": "31855:104:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4140, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4093, - "src": "31993:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4141, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4091, - "src": "32004:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4142, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "32013:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4144, - "indexExpression": { - "argumentTypes": null, - "id": 4143, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4093, - "src": "32022:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32013:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4145, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "32013:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - ], - "id": 4139, - "name": "BountyIssuersUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4486, - "src": "31972:20:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_payable_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,address payable[] memory)" - } - }, - "id": 4146, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31972:69:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4147, - "nodeType": "EmitStatement", - "src": "31967:74:5" - } - ] - }, - "documentation": "@param _issuers the array of addresses to add to the list of valid issuers", - "id": 4149, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 4101, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4091, - "src": "31696:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 4102, - "modifierName": { - "argumentTypes": null, - "id": 4100, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "31682:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "31682:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 4104, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4093, - "src": "31735:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4105, - "modifierName": { - "argumentTypes": null, - "id": 4103, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "31710:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "31710:35:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 4107, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4093, - "src": "31776:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4108, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4095, - "src": "31787:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4109, - "modifierName": { - "argumentTypes": null, - "id": 4106, - "name": "validateIssuerArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2650, - "src": "31751:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", - "typeString": "modifier (uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "31751:46:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 4111, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4091, - "src": "31814:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4112, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4093, - "src": "31823:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4113, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4095, - "src": "31834:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4114, - "modifierName": { - "argumentTypes": null, - "id": 4110, - "name": "onlyIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2689, - "src": "31803:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", - "typeString": "modifier (address,uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "31803:41:5" - } - ], - "name": "addIssuers", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4099, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4091, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 4149, - "src": "31566:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4090, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "31566:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4093, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4149, - "src": "31588:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4092, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "31588:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4095, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4149, - "src": "31609:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4094, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "31609:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4098, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 4149, - "src": "31630:33:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4096, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "31630:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4097, - "length": null, - "nodeType": "ArrayTypeName", - "src": "31630:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31559:105:5" - }, - "returnParameters": { - "id": 4115, - "nodeType": "ParameterList", - "parameters": [], - "src": "31848:0:5" - }, - "scope": 4512, - "src": "31540:507:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4208, - "nodeType": "Block", - "src": "32811:209:5", - "statements": [ - { - "body": { - "id": 4197, - "nodeType": "Block", - "src": "32862:66:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4192, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4158, - "src": "32906:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 4194, - "indexExpression": { - "argumentTypes": null, - "id": 4193, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4177, - "src": "32917:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32906:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4187, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "32871:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4189, - "indexExpression": { - "argumentTypes": null, - "id": 4188, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4153, - "src": "32880:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32871:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4190, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "approvers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2519, - "src": "32871:29:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 4191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32871:34:5", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 4195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32871:49:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4196, - "nodeType": "ExpressionStatement", - "src": "32871:49:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4183, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4180, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4177, - "src": "32835:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4181, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4158, - "src": "32839:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 4182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32839:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32835:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4198, - "initializationExpression": { - "assignments": [ - 4177 - ], - "declarations": [ - { - "constant": false, - "id": 4177, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 4198, - "src": "32823:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4176, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "32823:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4179, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 4178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32832:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "32823:10:5" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 4185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "32858:3:5", - "subExpression": { - "argumentTypes": null, - "id": 4184, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4177, - "src": "32858:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4186, - "nodeType": "ExpressionStatement", - "src": "32858:3:5" - }, - "nodeType": "ForStatement", - "src": "32818:110:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4200, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4153, - "src": "32964:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4201, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4151, - "src": "32975:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4202, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "32984:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4204, - "indexExpression": { - "argumentTypes": null, - "id": 4203, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4153, - "src": "32993:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32984:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4205, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "approvers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2519, - "src": "32984:29:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - ], - "id": 4199, - "name": "BountyApproversUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4495, - "src": "32941:22:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,address[] memory)" - } - }, - "id": 4206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32941:73:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4207, - "nodeType": "EmitStatement", - "src": "32936:78:5" - } - ] - }, - "documentation": "@param _approvers the array of addresses to add to the list of valid approvers", - "id": 4209, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 4161, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4151, - "src": "32659:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 4162, - "modifierName": { - "argumentTypes": null, - "id": 4160, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "32645:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "32645:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 4164, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4153, - "src": "32698:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4165, - "modifierName": { - "argumentTypes": null, - "id": 4163, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "32673:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "32673:35:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 4167, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4153, - "src": "32739:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4168, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4155, - "src": "32750:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4169, - "modifierName": { - "argumentTypes": null, - "id": 4166, - "name": "validateIssuerArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2650, - "src": "32714:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", - "typeString": "modifier (uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "32714:46:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 4171, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4151, - "src": "32777:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4172, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4153, - "src": "32786:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4173, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4155, - "src": "32797:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4174, - "modifierName": { - "argumentTypes": null, - "id": 4170, - "name": "onlyIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2689, - "src": "32766:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", - "typeString": "modifier (address,uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "32766:41:5" - } - ], - "name": "addApprovers", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4159, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4151, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 4209, - "src": "32535:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4150, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "32535:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4153, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4209, - "src": "32557:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4152, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "32557:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4155, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4209, - "src": "32578:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4154, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "32578:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4158, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 4209, - "src": "32599:27:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4156, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "32599:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4157, - "length": null, - "nodeType": "ArrayTypeName", - "src": "32599:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32528:99:5" - }, - "returnParameters": { - "id": 4175, - "nodeType": "ParameterList", - "parameters": [], - "src": "32811:0:5" - }, - "scope": 4512, - "src": "32507:513:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4220, - "nodeType": "Block", - "src": "33270:39:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4216, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "33284:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4218, - "indexExpression": { - "argumentTypes": null, - "id": 4217, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "33293:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33284:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "functionReturnParameters": 4215, - "id": 4219, - "nodeType": "Return", - "src": "33277:26:5" - } - ] - }, - "documentation": "@return Returns a tuple for the bounty", - "id": 4221, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4212, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4211, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4221, - "src": "33198:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4210, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "33198:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33197:16:5" - }, - "returnParameters": { - "id": 4215, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4214, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4221, - "src": "33252:13:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_memory_ptr", - "typeString": "struct StandardBounties.Bounty" - }, - "typeName": { - "contractScope": null, - "id": 4213, - "name": "Bounty", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2536, - "src": "33252:6:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", - "typeString": "struct StandardBounties.Bounty" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33251:15:5" - }, - "scope": 4512, - "src": "33179:130:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 4363, - "nodeType": "Block", - "src": "33409:1101:5", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4230, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "33420:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4232, - "indexExpression": { - "argumentTypes": null, - "id": 4231, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "33429:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33420:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4233, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenVersion", - "nodeType": "MemberAccess", - "referencedDeclaration": 2525, - "src": "33420:32:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4234, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33456:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33420:37:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4271, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "33707:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4273, - "indexExpression": { - "argumentTypes": null, - "id": 4272, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "33716:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33707:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4274, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenVersion", - "nodeType": "MemberAccess", - "referencedDeclaration": 2525, - "src": "33707:32:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3230", - "id": 4275, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33743:2:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_20_by_1", - "typeString": "int_const 20" - }, - "value": "20" - }, - "src": "33707:38:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4319, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "34043:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4321, - "indexExpression": { - "argumentTypes": null, - "id": 4320, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "34052:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "34043:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4322, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenVersion", - "nodeType": "MemberAccess", - "referencedDeclaration": 2525, - "src": "34043:32:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "373231", - "id": 4323, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34079:3:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_721_by_1", - "typeString": "int_const 721" - }, - "value": "721" - }, - "src": "34043:39:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 4359, - "nodeType": "Block", - "src": "34480:25:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4356, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10416, - 10417 - ], - "referencedDeclaration": 10416, - "src": "34489:6:5", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 4357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34489:8:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4358, - "nodeType": "ExpressionStatement", - "src": "34489:8:5" - } - ] - }, - "id": 4360, - "nodeType": "IfStatement", - "src": "34039:466:5", - "trueBody": { - "id": 4355, - "nodeType": "Block", - "src": "34083:391:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4326, - "name": "tokenBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2561, - "src": "34100:13:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(uint256 => bool))" - } - }, - "id": 4328, - "indexExpression": { - "argumentTypes": null, - "id": 4327, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "34114:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "34100:24:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 4330, - "indexExpression": { - "argumentTypes": null, - "id": 4329, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4227, - "src": "34125:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "34100:33:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4325, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "34092:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34092:42:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4332, - "nodeType": "ExpressionStatement", - "src": "34092:42:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 4339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4333, - "name": "tokenBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2561, - "src": "34145:13:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(uint256 => bool))" - } - }, - "id": 4336, - "indexExpression": { - "argumentTypes": null, - "id": 4334, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "34159:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "34145:24:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 4337, - "indexExpression": { - "argumentTypes": null, - "id": 4335, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4227, - "src": "34170:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "34145:33:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 4338, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34181:5:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "34145:41:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4340, - "nodeType": "ExpressionStatement", - "src": "34145:41:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4349, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10465, - "src": "34318:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - ], - "id": 4348, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "34310:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 4350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34310:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4351, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4225, - "src": "34389:3:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 4352, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4227, - "src": "34458:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4342, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "34270:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4344, - "indexExpression": { - "argumentTypes": null, - "id": 4343, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "34279:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "34270:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4345, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 2523, - "src": "34270:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4341, - "name": "ERC721BasicToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5764, - "src": "34253:16:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721BasicToken_$5764_$", - "typeString": "type(contract ERC721BasicToken)" - } - }, - "id": 4346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34253:43:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", - "typeString": "contract ERC721BasicToken" - } - }, - "id": 4347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 5485, - "src": "34253:56:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256) external" - } - }, - "id": 4353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34253:213:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4354, - "nodeType": "ExpressionStatement", - "src": "34253:213:5" - } - ] - } - }, - "id": 4361, - "nodeType": "IfStatement", - "src": "33703:802:5", - "trueBody": { - "id": 4318, - "nodeType": "Block", - "src": "33746:287:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4278, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4227, - "src": "33763:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4279, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33773:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33763:11:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4277, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "33755:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33755:20:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4282, - "nodeType": "ExpressionStatement", - "src": "33755:20:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4289, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4284, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "33825:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4286, - "indexExpression": { - "argumentTypes": null, - "id": 4285, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "33834:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33825:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4287, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2527, - "src": "33825:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 4288, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4227, - "src": "33856:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33825:38:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4283, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "33817:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33817:47:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4291, - "nodeType": "ExpressionStatement", - "src": "33817:47:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 4303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4292, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "33875:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4294, - "indexExpression": { - "argumentTypes": null, - "id": 4293, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "33884:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33875:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4295, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2527, - "src": "33875:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4301, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4227, - "src": "33937:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4296, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "33905:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4298, - "indexExpression": { - "argumentTypes": null, - "id": 4297, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "33914:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33905:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4299, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2527, - "src": "33905:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "33905:31:5", - "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": 4302, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33905:40:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33875:70:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4304, - "nodeType": "ExpressionStatement", - "src": "33875:70:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4313, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4225, - "src": "34011:3:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 4314, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4227, - "src": "34016:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4307, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "33975:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4309, - "indexExpression": { - "argumentTypes": null, - "id": 4308, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "33984:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33975:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4310, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 2523, - "src": "33975:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4306, - "name": "ERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4989, - "src": "33964:10:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Token_$4989_$", - "typeString": "type(contract ERC20Token)" - } - }, - "id": 4311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33964:37:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Token_$4989", - "typeString": "contract ERC20Token" - } - }, - "id": 4312, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 4858, - "src": "33964:46:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 4315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33964:60:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4305, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "33956:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33956:69:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4317, - "nodeType": "ExpressionStatement", - "src": "33956:69:5" - } - ] - } - }, - "id": 4362, - "nodeType": "IfStatement", - "src": "33416:1089:5", - "trueBody": { - "id": 4270, - "nodeType": "Block", - "src": "33458:239:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4239, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4237, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4227, - "src": "33475:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4238, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33485:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33475:11:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4236, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "33467:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33467:20:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4241, - "nodeType": "ExpressionStatement", - "src": "33467:20:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4243, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "33537:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4245, - "indexExpression": { - "argumentTypes": null, - "id": 4244, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "33546:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33537:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4246, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2527, - "src": "33537:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 4247, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4227, - "src": "33568:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33537:38:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4242, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "33529:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33529:47:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4250, - "nodeType": "ExpressionStatement", - "src": "33529:47:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 4262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4251, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "33587:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4253, - "indexExpression": { - "argumentTypes": null, - "id": 4252, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "33596:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33587:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4254, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2527, - "src": "33587:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4260, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4227, - "src": "33649:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4255, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "33617:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4257, - "indexExpression": { - "argumentTypes": null, - "id": 4256, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "33626:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33617:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4258, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2527, - "src": "33617:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "33617:31:5", - "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": 4261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33617:40:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33587:70:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4263, - "nodeType": "ExpressionStatement", - "src": "33587:70:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4267, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4227, - "src": "33681:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4264, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4225, - "src": "33668:3:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33668:12:5", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 4268, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33668:21:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4269, - "nodeType": "ExpressionStatement", - "src": "33668:21:5" - } - ] - } - } - ] - }, - "documentation": null, - "id": 4364, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4228, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4223, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4364, - "src": "33341:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4222, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "33341:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4225, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 4364, - "src": "33357:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 4224, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "33357:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4227, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 4364, - "src": "33378:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4226, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "33378:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33340:51:5" - }, - "returnParameters": { - "id": 4229, - "nodeType": "ParameterList", - "parameters": [], - "src": "33409:0:5" - }, - "scope": 4512, - "src": "33317:1193:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "anonymous": false, - "documentation": null, - "id": 4384, - "name": "BountyIssued", - "nodeType": "EventDefinition", - "parameters": { - "id": 4383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4366, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4384, - "src": "34563:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4365, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "34563:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4368, - "indexed": false, - "name": "_creator", - "nodeType": "VariableDeclaration", - "scope": 4384, - "src": "34579:24:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 4367, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "34579:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4371, - "indexed": false, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 4384, - "src": "34605:26:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4369, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "34605:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4370, - "length": null, - "nodeType": "ArrayTypeName", - "src": "34605:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4374, - "indexed": false, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 4384, - "src": "34633:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4372, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "34633:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4373, - "length": null, - "nodeType": "ArrayTypeName", - "src": "34633:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4376, - "indexed": false, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4384, - "src": "34655:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4375, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34655:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4378, - "indexed": false, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 4384, - "src": "34669:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4377, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "34669:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4380, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 4384, - "src": "34685:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4379, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "34685:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4382, - "indexed": false, - "name": "_tokenVersion", - "nodeType": "VariableDeclaration", - "scope": 4384, - "src": "34701:18:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4381, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "34701:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34562:158:5" - }, - "src": "34544:177:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4394, - "name": "ContributionAdded", - "nodeType": "EventDefinition", - "parameters": { - "id": 4393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4386, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4394, - "src": "34749:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4385, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "34749:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4388, - "indexed": false, - "name": "_contributionId", - "nodeType": "VariableDeclaration", - "scope": 4394, - "src": "34765:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4387, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "34765:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4390, - "indexed": false, - "name": "_contributor", - "nodeType": "VariableDeclaration", - "scope": 4394, - "src": "34787:28:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 4389, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "34787:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4392, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 4394, - "src": "34817:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4391, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "34817:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34748:82:5" - }, - "src": "34725:106:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4400, - "name": "ContributionRefunded", - "nodeType": "EventDefinition", - "parameters": { - "id": 4399, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4396, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4400, - "src": "34862:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4395, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "34862:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4398, - "indexed": false, - "name": "_contributionId", - "nodeType": "VariableDeclaration", - "scope": 4400, - "src": "34878:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4397, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "34878:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34861:38:5" - }, - "src": "34835:65:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4409, - "name": "ContributionsRefunded", - "nodeType": "EventDefinition", - "parameters": { - "id": 4408, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4402, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4409, - "src": "34932:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4401, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "34932:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4404, - "indexed": false, - "name": "_issuer", - "nodeType": "VariableDeclaration", - "scope": 4409, - "src": "34948:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4403, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "34948:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4407, - "indexed": false, - "name": "_contributionIds", - "nodeType": "VariableDeclaration", - "scope": 4409, - "src": "34965:23:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 4405, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "34965:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4406, - "length": null, - "nodeType": "ArrayTypeName", - "src": "34965:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34931:58:5" - }, - "src": "34904:86:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4418, - "name": "BountyDrained", - "nodeType": "EventDefinition", - "parameters": { - "id": 4417, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4411, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4418, - "src": "35014:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4410, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35014:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4413, - "indexed": false, - "name": "_issuer", - "nodeType": "VariableDeclaration", - "scope": 4418, - "src": "35030:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35030:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4416, - "indexed": false, - "name": "_amounts", - "nodeType": "VariableDeclaration", - "scope": 4418, - "src": "35047:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 4414, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35047:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4415, - "length": null, - "nodeType": "ArrayTypeName", - "src": "35047:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35013:50:5" - }, - "src": "34994:70:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4426, - "name": "ActionPerformed", - "nodeType": "EventDefinition", - "parameters": { - "id": 4425, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4420, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4426, - "src": "35090:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4419, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35090:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4422, - "indexed": false, - "name": "_fulfiller", - "nodeType": "VariableDeclaration", - "scope": 4426, - "src": "35106:18:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4421, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35106:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4424, - "indexed": false, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4426, - "src": "35126:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4423, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35126:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35089:50:5" - }, - "src": "35068:72:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4439, - "name": "BountyFulfilled", - "nodeType": "EventDefinition", - "parameters": { - "id": 4438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4428, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4439, - "src": "35166:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4427, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35166:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4430, - "indexed": false, - "name": "_fulfillmentId", - "nodeType": "VariableDeclaration", - "scope": 4439, - "src": "35182:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4429, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35182:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4433, - "indexed": false, - "name": "_fulfillers", - "nodeType": "VariableDeclaration", - "scope": 4439, - "src": "35203:29:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4431, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35203:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4432, - "length": null, - "nodeType": "ArrayTypeName", - "src": "35203:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4435, - "indexed": false, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4439, - "src": "35234:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4434, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35234:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4437, - "indexed": false, - "name": "_submitter", - "nodeType": "VariableDeclaration", - "scope": 4439, - "src": "35248:18:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4436, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35248:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35165:102:5" - }, - "src": "35144:124:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4450, - "name": "FulfillmentUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 4449, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4441, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4450, - "src": "35297:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35297:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4443, - "indexed": false, - "name": "_fulfillmentId", - "nodeType": "VariableDeclaration", - "scope": 4450, - "src": "35313:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35313:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4446, - "indexed": false, - "name": "_fulfillers", - "nodeType": "VariableDeclaration", - "scope": 4450, - "src": "35334:29:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4444, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35334:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4445, - "length": null, - "nodeType": "ArrayTypeName", - "src": "35334:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4448, - "indexed": false, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4450, - "src": "35365:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4447, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35365:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35296:82:5" - }, - "src": "35272:107:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4461, - "name": "FulfillmentAccepted", - "nodeType": "EventDefinition", - "parameters": { - "id": 4460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4452, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4461, - "src": "35409:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4451, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35409:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4454, - "indexed": false, - "name": "_fulfillmentId", - "nodeType": "VariableDeclaration", - "scope": 4461, - "src": "35425:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4453, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35425:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4456, - "indexed": false, - "name": "_approver", - "nodeType": "VariableDeclaration", - "scope": 4461, - "src": "35447:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4455, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35447:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4459, - "indexed": false, - "name": "_tokenAmounts", - "nodeType": "VariableDeclaration", - "scope": 4461, - "src": "35466:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 4457, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35466:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4458, - "length": null, - "nodeType": "ArrayTypeName", - "src": "35466:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35408:79:5" - }, - "src": "35383:105:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4477, - "name": "BountyChanged", - "nodeType": "EventDefinition", - "parameters": { - "id": 4476, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4463, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4477, - "src": "35512:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35512:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4465, - "indexed": false, - "name": "_changer", - "nodeType": "VariableDeclaration", - "scope": 4477, - "src": "35528:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4464, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35528:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4468, - "indexed": false, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 4477, - "src": "35546:26:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4466, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35546:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4467, - "length": null, - "nodeType": "ArrayTypeName", - "src": "35546:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4471, - "indexed": false, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 4477, - "src": "35574:28:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4469, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35574:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4470, - "length": null, - "nodeType": "ArrayTypeName", - "src": "35574:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4473, - "indexed": false, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4477, - "src": "35604:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4472, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35604:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4475, - "indexed": false, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 4477, - "src": "35618:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4474, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35618:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35511:122:5" - }, - "src": "35492:142:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4486, - "name": "BountyIssuersUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 4485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4479, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4486, - "src": "35665:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4478, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35665:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4481, - "indexed": false, - "name": "_changer", - "nodeType": "VariableDeclaration", - "scope": 4486, - "src": "35681:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4480, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35681:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4484, - "indexed": false, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 4486, - "src": "35699:26:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4482, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35699:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4483, - "length": null, - "nodeType": "ArrayTypeName", - "src": "35699:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35664:62:5" - }, - "src": "35638:89:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4495, - "name": "BountyApproversUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 4494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4488, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4495, - "src": "35760:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4487, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35760:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4490, - "indexed": false, - "name": "_changer", - "nodeType": "VariableDeclaration", - "scope": 4495, - "src": "35776:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4489, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35776:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4493, - "indexed": false, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 4495, - "src": "35794:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4491, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35794:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4492, - "length": null, - "nodeType": "ArrayTypeName", - "src": "35794:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35759:56:5" - }, - "src": "35731:85:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4503, - "name": "BountyDataChanged", - "nodeType": "EventDefinition", - "parameters": { - "id": 4502, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4497, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4503, - "src": "35844:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4496, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35844:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4499, - "indexed": false, - "name": "_changer", - "nodeType": "VariableDeclaration", - "scope": 4503, - "src": "35860:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4498, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35860:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4501, - "indexed": false, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4503, - "src": "35878:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4500, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35878:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35843:48:5" - }, - "src": "35820:72:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4511, - "name": "BountyDeadlineChanged", - "nodeType": "EventDefinition", - "parameters": { - "id": 4510, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4505, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4511, - "src": "35924:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4504, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35924:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4507, - "indexed": false, - "name": "_changer", - "nodeType": "VariableDeclaration", - "scope": 4511, - "src": "35940:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4506, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35940:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4509, - "indexed": false, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 4511, - "src": "35958:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4508, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35958:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35923:50:5" - }, - "src": "35896:78:5" - } - ], - "scope": 4513, - "src": "539:35438:5" - } - ], - "src": "0:35979:5" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/StandardBounties.sol", - "exportedSymbols": { - "StandardBounties": [ - 4512 - ] - }, - "id": 4513, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 2507, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:5" - }, - { - "id": 2508, - "literals": [ - "experimental", - "ABIEncoderV2" - ], - "nodeType": "PragmaDirective", - "src": "34:33:5" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC20Token.sol", - "file": "./inherited/ERC20Token.sol", - "id": 2509, - "nodeType": "ImportDirective", - "scope": 4513, - "sourceUnit": 4990, - "src": "71:36:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", - "file": "./inherited/ERC721Basic.sol", - "id": 2510, - "nodeType": "ImportDirective", - "scope": 4513, - "sourceUnit": 5798, - "src": "109:37:5", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@author Mark Beylifn , Gonçalo Sá , Kevin Owocki , Ricardo Guilherme Schmidt (@3esmit), Matt Garnett , Craig Williams ", - "fullyImplemented": true, - "id": 4512, - "linearizedBaseContracts": [ - 4512 - ], - "name": "StandardBounties", - "nodeType": "ContractDefinition", - "nodes": [ - { - "id": 2513, - "libraryName": { - "contractScope": null, - "id": 2511, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "578:8:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "572:27:5", - "typeName": { - "id": 2512, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "591:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "canonicalName": "StandardBounties.Bounty", - "id": 2536, - "members": [ - { - "constant": false, - "id": 2516, - "name": "issuers", - "nodeType": "VariableDeclaration", - "scope": 2536, - "src": "655:25:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 2514, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "655:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 2515, - "length": null, - "nodeType": "ArrayTypeName", - "src": "655:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2519, - "name": "approvers", - "nodeType": "VariableDeclaration", - "scope": 2536, - "src": "792:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2517, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "792:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2518, - "length": null, - "nodeType": "ArrayTypeName", - "src": "792:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2521, - "name": "deadline", - "nodeType": "VariableDeclaration", - "scope": 2536, - "src": "912:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2520, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "912:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2523, - "name": "token", - "nodeType": "VariableDeclaration", - "scope": 2536, - "src": "1038:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2522, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1038:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2525, - "name": "tokenVersion", - "nodeType": "VariableDeclaration", - "scope": 2536, - "src": "1162:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2524, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1162:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2527, - "name": "balance", - "nodeType": "VariableDeclaration", - "scope": 2536, - "src": "1282:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2526, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1282:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2529, - "name": "hasPaidOut", - "nodeType": "VariableDeclaration", - "scope": 2536, - "src": "1371:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2528, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "1371:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2532, - "name": "fulfillments", - "nodeType": "VariableDeclaration", - "scope": 2536, - "src": "1506:26:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage_ptr", - "typeString": "struct StandardBounties.Fulfillment[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 2530, - "name": "Fulfillment", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2542, - "src": "1506:11:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fulfillment_$2542_storage_ptr", - "typeString": "struct StandardBounties.Fulfillment" - } - }, - "id": 2531, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1506:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage_ptr", - "typeString": "struct StandardBounties.Fulfillment[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2535, - "name": "contributions", - "nodeType": "VariableDeclaration", - "scope": 2536, - "src": "1638:28:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage_ptr", - "typeString": "struct StandardBounties.Contribution[]" - }, - "typeName": { - "baseType": { - "contractScope": null, - "id": 2533, - "name": "Contribution", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2549, - "src": "1638:12:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", - "typeString": "struct StandardBounties.Contribution" - } - }, - "id": 2534, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1638:14:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage_ptr", - "typeString": "struct StandardBounties.Contribution[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Bounty", - "nodeType": "StructDefinition", - "scope": 4512, - "src": "634:1132:5", - "visibility": "public" - }, - { - "canonicalName": "StandardBounties.Fulfillment", - "id": 2542, - "members": [ - { - "constant": false, - "id": 2539, - "name": "fulfillers", - "nodeType": "VariableDeclaration", - "scope": 2542, - "src": "1798:28:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 2537, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1798:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 2538, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1798:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2541, - "name": "submitter", - "nodeType": "VariableDeclaration", - "scope": 2542, - "src": "1908:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2540, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1908:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Fulfillment", - "nodeType": "StructDefinition", - "scope": 4512, - "src": "1772:270:5", - "visibility": "public" - }, - { - "canonicalName": "StandardBounties.Contribution", - "id": 2549, - "members": [ - { - "constant": false, - "id": 2544, - "name": "contributor", - "nodeType": "VariableDeclaration", - "scope": 2549, - "src": "2075:27:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2075:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2546, - "name": "amount", - "nodeType": "VariableDeclaration", - "scope": 2549, - "src": "2158:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2545, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2158:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2548, - "name": "refunded", - "nodeType": "VariableDeclaration", - "scope": 2549, - "src": "2221:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2547, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2221:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Contribution", - "nodeType": "StructDefinition", - "scope": 4512, - "src": "2048:267:5", - "visibility": "public" - }, - { - "constant": false, - "id": 2551, - "name": "numBounties", - "nodeType": "VariableDeclaration", - "scope": 4512, - "src": "2350:23:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2550, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2350:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2555, - "name": "bounties", - "nodeType": "VariableDeclaration", - "scope": 4512, - "src": "2445:39:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty)" - }, - "typeName": { - "id": 2554, - "keyType": { - "id": 2552, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2453:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "2445:23:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty)" - }, - "valueType": { - "contractScope": null, - "id": 2553, - "name": "Bounty", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2536, - "src": "2461:6:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", - "typeString": "struct StandardBounties.Bounty" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2561, - "name": "tokenBalances", - "nodeType": "VariableDeclaration", - "scope": 4512, - "src": "2527:61:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(uint256 => bool))" - }, - "typeName": { - "id": 2560, - "keyType": { - "id": 2556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2536:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "2527:40:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(uint256 => bool))" - }, - "valueType": { - "id": 2559, - "keyType": { - "id": 2557, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2553:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "2544:22:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - }, - "valueType": { - "id": 2558, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2561:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2563, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 4512, - "src": "2719:20:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2562, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2719:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2565, - "name": "metaTxRelayer", - "nodeType": "VariableDeclaration", - "scope": 4512, - "src": "2824:28:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2564, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2824:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "id": 2567, - "name": "callStarted", - "nodeType": "VariableDeclaration", - "scope": 4512, - "src": "2968:23:5", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 2566, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2968:4:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 2583, - "nodeType": "Block", - "src": "3095:93:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2571, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "3110:12:5", - "subExpression": { - "argumentTypes": null, - "id": 2570, - "name": "callStarted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2567, - "src": "3111:11:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2569, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "3102:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2572, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3102:21:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2573, - "nodeType": "ExpressionStatement", - "src": "3102:21:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 2576, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2574, - "name": "callStarted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2567, - "src": "3130:11:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 2575, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3144:4:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "3130:18:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2577, - "nodeType": "ExpressionStatement", - "src": "3130:18:5" - }, - { - "id": 2578, - "nodeType": "PlaceholderStatement", - "src": "3155:1:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 2581, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2579, - "name": "callStarted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2567, - "src": "3163:11:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 2580, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3177:5:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "3163:19:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 2582, - "nodeType": "ExpressionStatement", - "src": "3163:19:5" - } - ] - }, - "documentation": null, - "id": 2584, - "name": "callNotStarted", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2568, - "nodeType": "ParameterList", - "parameters": [], - "src": "3093:2:5" - }, - "src": "3070:118:5", - "visibility": "internal" - }, - { - "body": { - "id": 2595, - "nodeType": "Block", - "src": "3250:50:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2591, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2589, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2586, - "src": "3265:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 2590, - "name": "numBounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2551, - "src": "3274:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3265:20:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2588, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "3257:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2592, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3257:29:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2593, - "nodeType": "ExpressionStatement", - "src": "3257:29:5" - }, - { - "id": 2594, - "nodeType": "PlaceholderStatement", - "src": "3293:1:5" - } - ] - }, - "documentation": null, - "id": 2596, - "name": "validateBountyArrayIndex", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2587, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2586, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 2596, - "src": "3234:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2585, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3234:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3227:19:5" - }, - "src": "3194:106:5", - "visibility": "internal" - }, - { - "body": { - "id": 2613, - "nodeType": "Block", - "src": "3389:79:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2609, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2603, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2600, - "src": "3404:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2604, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "3413:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 2606, - "indexExpression": { - "argumentTypes": null, - "id": 2605, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2598, - "src": "3422:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3413:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 2607, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributions", - "nodeType": "MemberAccess", - "referencedDeclaration": 2535, - "src": "3413:33:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", - "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" - } - }, - "id": 2608, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3413:40:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3404:49:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2602, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "3396:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2610, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3396:58:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2611, - "nodeType": "ExpressionStatement", - "src": "3396:58:5" - }, - { - "id": 2612, - "nodeType": "PlaceholderStatement", - "src": "3461:1:5" - } - ] - }, - "documentation": null, - "id": 2614, - "name": "validateContributionArrayIndex", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2598, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2614, - "src": "3352:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2597, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3352:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2600, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 2614, - "src": "3373:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2599, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3373:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3345:40:5" - }, - "src": "3306:162:5", - "visibility": "internal" - }, - { - "body": { - "id": 2631, - "nodeType": "Block", - "src": "3556:78:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2627, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2621, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2618, - "src": "3571:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2622, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "3580:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 2624, - "indexExpression": { - "argumentTypes": null, - "id": 2623, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2616, - "src": "3589:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3580:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 2625, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "fulfillments", - "nodeType": "MemberAccess", - "referencedDeclaration": 2532, - "src": "3580:32:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", - "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" - } - }, - "id": 2626, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3580:39:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3571:48:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2620, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "3563:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3563:57:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2629, - "nodeType": "ExpressionStatement", - "src": "3563:57:5" - }, - { - "id": 2630, - "nodeType": "PlaceholderStatement", - "src": "3627:1:5" - } - ] - }, - "documentation": null, - "id": 2632, - "name": "validateFulfillmentArrayIndex", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2619, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2616, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2632, - "src": "3519:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2615, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3519:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2618, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 2632, - "src": "3540:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2617, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3540:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3512:40:5" - }, - "src": "3474:160:5", - "visibility": "internal" - }, - { - "body": { - "id": 2649, - "nodeType": "Block", - "src": "3717:73:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2639, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2636, - "src": "3732:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2640, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "3741:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 2642, - "indexExpression": { - "argumentTypes": null, - "id": 2641, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2634, - "src": "3750:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3741:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 2643, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "3741:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 2644, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3741:34:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3732:43:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2638, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "3724:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3724:52:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2647, - "nodeType": "ExpressionStatement", - "src": "3724:52:5" - }, - { - "id": 2648, - "nodeType": "PlaceholderStatement", - "src": "3783:1:5" - } - ] - }, - "documentation": null, - "id": 2650, - "name": "validateIssuerArrayIndex", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2637, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2634, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2650, - "src": "3680:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2633, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3680:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2636, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 2650, - "src": "3701:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2635, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3701:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3673:40:5" - }, - "src": "3640:150:5", - "visibility": "internal" - }, - { - "body": { - "id": 2667, - "nodeType": "Block", - "src": "3875:75:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2663, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2657, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2654, - "src": "3890:6:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2658, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "3899:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 2660, - "indexExpression": { - "argumentTypes": null, - "id": 2659, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2652, - "src": "3908:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3899:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 2661, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "approvers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2519, - "src": "3899:29:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2662, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "3899:36:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "3890:45:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2656, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "3882:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3882:54:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2665, - "nodeType": "ExpressionStatement", - "src": "3882:54:5" - }, - { - "id": 2666, - "nodeType": "PlaceholderStatement", - "src": "3943:1:5" - } - ] - }, - "documentation": null, - "id": 2668, - "name": "validateApproverArrayIndex", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2655, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2652, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2668, - "src": "3838:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2651, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3838:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2654, - "name": "_index", - "nodeType": "VariableDeclaration", - "scope": 2668, - "src": "3859:11:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2653, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3859:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3831:40:5" - }, - "src": "3796:154:5", - "visibility": "internal" - }, - { - "body": { - "id": 2688, - "nodeType": "Block", - "src": "4038:75:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2677, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2670, - "src": "4051:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2678, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "4062:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 2680, - "indexExpression": { - "argumentTypes": null, - "id": 2679, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2672, - "src": "4071:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4062:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 2681, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "4062:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 2683, - "indexExpression": { - "argumentTypes": null, - "id": 2682, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2674, - "src": "4090:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4062:38:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4051:49:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2676, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4043:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4043:58:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2686, - "nodeType": "ExpressionStatement", - "src": "4043:58:5" - }, - { - "id": 2687, - "nodeType": "PlaceholderStatement", - "src": "4106:1:5" - } - ] - }, - "documentation": null, - "id": 2689, - "name": "onlyIssuer", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2675, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2670, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 2689, - "src": "3980:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2669, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3980:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2672, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2689, - "src": "4000:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2671, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4000:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2674, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 2689, - "src": "4019:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2673, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4019:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3975:59:5" - }, - "src": "3956:157:5", - "visibility": "internal" - }, - { - "body": { - "id": 2710, - "nodeType": "Block", - "src": "4215:112:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2706, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2698, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2691, - "src": "4230:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2699, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "4254:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 2701, - "indexExpression": { - "argumentTypes": null, - "id": 2700, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2693, - "src": "4263:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4254:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 2702, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "fulfillments", - "nodeType": "MemberAccess", - "referencedDeclaration": 2532, - "src": "4254:32:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", - "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" - } - }, - "id": 2704, - "indexExpression": { - "argumentTypes": null, - "id": 2703, - "name": "_fulfillmentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2695, - "src": "4287:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4254:48:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fulfillment_$2542_storage", - "typeString": "struct StandardBounties.Fulfillment storage ref" - } - }, - "id": 2705, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "submitter", - "nodeType": "MemberAccess", - "referencedDeclaration": 2541, - "src": "4254:58:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4230:82:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2697, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4222:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2707, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4222:91:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2708, - "nodeType": "ExpressionStatement", - "src": "4222:91:5" - }, - { - "id": 2709, - "nodeType": "PlaceholderStatement", - "src": "4320:1:5" - } - ] - }, - "documentation": null, - "id": 2711, - "name": "onlySubmitter", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2696, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2691, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 2711, - "src": "4148:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2690, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4148:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2693, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2711, - "src": "4170:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2692, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4170:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2695, - "name": "_fulfillmentId", - "nodeType": "VariableDeclaration", - "scope": 2711, - "src": "4191:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2694, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4191:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4141:70:5" - }, - "src": "4119:208:5", - "visibility": "internal" - }, - { - "body": { - "id": 2732, - "nodeType": "Block", - "src": "4426:116:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2728, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2720, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2713, - "src": "4441:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2721, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "4465:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 2723, - "indexExpression": { - "argumentTypes": null, - "id": 2722, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2715, - "src": "4474:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4465:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 2724, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributions", - "nodeType": "MemberAccess", - "referencedDeclaration": 2535, - "src": "4465:33:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", - "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" - } - }, - "id": 2726, - "indexExpression": { - "argumentTypes": null, - "id": 2725, - "name": "_contributionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2717, - "src": "4499:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4465:50:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage", - "typeString": "struct StandardBounties.Contribution storage ref" - } - }, - "id": 2727, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributor", - "nodeType": "MemberAccess", - "referencedDeclaration": 2544, - "src": "4465:62:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "4441:86:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2719, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4433:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2729, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4433:95:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2730, - "nodeType": "ExpressionStatement", - "src": "4433:95:5" - }, - { - "id": 2731, - "nodeType": "PlaceholderStatement", - "src": "4535:1:5" - } - ] - }, - "documentation": null, - "id": 2733, - "name": "onlyContributor", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2718, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2713, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 2733, - "src": "4362:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2712, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4362:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2715, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2733, - "src": "4382:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2714, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4382:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2717, - "name": "_contributionId", - "nodeType": "VariableDeclaration", - "scope": 2733, - "src": "4401:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2716, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4401:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4357:65:5" - }, - "src": "4333:209:5", - "visibility": "internal" - }, - { - "body": { - "id": 2753, - "nodeType": "Block", - "src": "4638:83:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2749, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2742, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2735, - "src": "4653:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2743, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "4664:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 2745, - "indexExpression": { - "argumentTypes": null, - "id": 2744, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2737, - "src": "4673:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4664:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 2746, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "approvers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2519, - "src": "4664:29:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2748, - "indexExpression": { - "argumentTypes": null, - "id": 2747, - "name": "_approverId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2739, - "src": "4694:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4664:42:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "4653:53:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2741, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4645:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4645:62:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2751, - "nodeType": "ExpressionStatement", - "src": "4645:62:5" - }, - { - "id": 2752, - "nodeType": "PlaceholderStatement", - "src": "4714:1:5" - } - ] - }, - "documentation": null, - "id": 2754, - "name": "isApprover", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2740, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2735, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 2754, - "src": "4574:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2734, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4574:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2737, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2754, - "src": "4596:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2736, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4596:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2739, - "name": "_approverId", - "nodeType": "VariableDeclaration", - "scope": 2754, - "src": "4617:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2738, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4617:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4567:67:5" - }, - "src": "4548:173:5", - "visibility": "internal" - }, - { - "body": { - "id": 2767, - "nodeType": "Block", - "src": "4772:61:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2763, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4787:31:5", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2759, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "4788:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 2761, - "indexExpression": { - "argumentTypes": null, - "id": 2760, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2756, - "src": "4797:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4788:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 2762, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "hasPaidOut", - "nodeType": "MemberAccess", - "referencedDeclaration": 2529, - "src": "4788:30:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2758, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4779:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2764, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4779:40:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2765, - "nodeType": "ExpressionStatement", - "src": "4779:40:5" - }, - { - "id": 2766, - "nodeType": "PlaceholderStatement", - "src": "4826:1:5" - } - ] - }, - "documentation": null, - "id": 2768, - "name": "hasNotPaid", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2757, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2756, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2768, - "src": "4753:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2755, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4753:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4746:22:5" - }, - "src": "4727:106:5", - "visibility": "internal" - }, - { - "body": { - "id": 2786, - "nodeType": "Block", - "src": "4915:90:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2782, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "4930:60:5", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2775, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "4931:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 2777, - "indexExpression": { - "argumentTypes": null, - "id": 2776, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2770, - "src": "4940:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4931:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 2778, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributions", - "nodeType": "MemberAccess", - "referencedDeclaration": 2535, - "src": "4931:33:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", - "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" - } - }, - "id": 2780, - "indexExpression": { - "argumentTypes": null, - "id": 2779, - "name": "_contributionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2772, - "src": "4965:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "4931:50:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage", - "typeString": "struct StandardBounties.Contribution storage ref" - } - }, - "id": 2781, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "refunded", - "nodeType": "MemberAccess", - "referencedDeclaration": 2548, - "src": "4931:59:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2774, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4922:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4922:69:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2784, - "nodeType": "ExpressionStatement", - "src": "4922:69:5" - }, - { - "id": 2785, - "nodeType": "PlaceholderStatement", - "src": "4998:1:5" - } - ] - }, - "documentation": null, - "id": 2787, - "name": "hasNotRefunded", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2770, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 2787, - "src": "4869:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2769, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4869:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2772, - "name": "_contributionId", - "nodeType": "VariableDeclaration", - "scope": 2787, - "src": "4890:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2771, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4890:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4862:49:5" - }, - "src": "4839:166:5", - "visibility": "internal" - }, - { - "body": { - "id": 2804, - "nodeType": "Block", - "src": "5060:82:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2800, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2795, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2792, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "5075:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5075:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2794, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2789, - "src": "5089:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5075:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2799, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2796, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "5100:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2797, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5100:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2798, - "name": "metaTxRelayer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2565, - "src": "5114:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5100:27:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "5075:52:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2791, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "5067:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2801, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5067:61:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2802, - "nodeType": "ExpressionStatement", - "src": "5067:61:5" - }, - { - "id": 2803, - "nodeType": "PlaceholderStatement", - "src": "5135:1:5" - } - ] - }, - "documentation": null, - "id": 2805, - "name": "senderIsValid", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 2790, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2789, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 2805, - "src": "5040:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2788, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5040:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5033:23:5" - }, - "src": "5011:131:5", - "visibility": "internal" - }, - { - "body": { - "id": 2813, - "nodeType": "Block", - "src": "5204:128:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2811, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2808, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2563, - "src": "5308:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2809, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "5316:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5316:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5308:18:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2812, - "nodeType": "ExpressionStatement", - "src": "5308:18:5" - } - ] - }, - "documentation": null, - "id": 2814, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2806, - "nodeType": "ParameterList", - "parameters": [], - "src": "5194:2:5" - }, - "returnParameters": { - "id": 2807, - "nodeType": "ParameterList", - "parameters": [], - "src": "5204:0:5" - }, - "scope": 4512, - "src": "5183:149:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 2838, - "nodeType": "Block", - "src": "5530:206:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2823, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2820, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "5545:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 2821, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "5545:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 2822, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2563, - "src": "5559:5:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5545:19:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2819, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "5537:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2824, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5537:28:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2825, - "nodeType": "ExpressionStatement", - "src": "5537:28:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 2831, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2827, - "name": "metaTxRelayer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2565, - "src": "5619:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 2829, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "5644:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 2828, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "5636:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 2830, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5636:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "5619:27:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2826, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "5611:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2832, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "5611:36:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2833, - "nodeType": "ExpressionStatement", - "src": "5611:36:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 2836, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2834, - "name": "metaTxRelayer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2565, - "src": "5706:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2835, - "name": "_relayer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2816, - "src": "5722:8:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "5706:24:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2837, - "nodeType": "ExpressionStatement", - "src": "5706:24:5" - } - ] - }, - "documentation": "@param _relayer the address of the relayer", - "id": 2839, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setMetaTxRelayer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2817, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2816, - "name": "_relayer", - "nodeType": "VariableDeclaration", - "scope": 2839, - "src": "5495:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2815, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5495:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5494:18:5" - }, - "returnParameters": { - "id": 2818, - "nodeType": "ParameterList", - "parameters": [], - "src": "5530:0:5" - }, - "scope": 4512, - "src": "5469:267:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 2955, - "nodeType": "Block", - "src": "6809:1198:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2870, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2866, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2864, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2855, - "src": "6824:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2865, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6841:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6824:18:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2869, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2867, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2855, - "src": "6846:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3230", - "id": 2868, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6863:2:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_20_by_1", - "typeString": "int_const 20" - }, - "value": "20" - }, - "src": "6846:19:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "6824:41:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2873, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2871, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2855, - "src": "6869:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "373231", - "id": 2872, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6886:3:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_721_by_1", - "typeString": "int_const 721" - }, - "value": "721" - }, - "src": "6869:20:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "6824:65:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2863, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "6816:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6816:74:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2876, - "nodeType": "ExpressionStatement", - "src": "6816:74:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 2886, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2881, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2878, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2844, - "src": "6971:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - "id": 2879, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6971:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2880, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "6989:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6971:19:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2885, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2882, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2847, - "src": "6994:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 2883, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "6994:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2884, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7014:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "6994:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "6971:44:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 2877, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "6963:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 2887, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "6963:53:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2888, - "nodeType": "ExpressionStatement", - "src": "6963:53:5" - }, - { - "assignments": [ - 2890 - ], - "declarations": [ - { - "constant": false, - "id": 2890, - "name": "bountyId", - "nodeType": "VariableDeclaration", - "scope": 2955, - "src": "7100:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2889, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "7100:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2892, - "initialValue": { - "argumentTypes": null, - "id": 2891, - "name": "numBounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2551, - "src": "7116:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7100:27:5" - }, - { - "assignments": [ - 2894 - ], - "declarations": [ - { - "constant": false, - "id": 2894, - "name": "newBounty", - "nodeType": "VariableDeclaration", - "scope": 2955, - "src": "7213:24:5", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", - "typeString": "struct StandardBounties.Bounty" - }, - "typeName": { - "contractScope": null, - "id": 2893, - "name": "Bounty", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2536, - "src": "7213:6:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", - "typeString": "struct StandardBounties.Bounty" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2898, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 2895, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "7240:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 2897, - "indexExpression": { - "argumentTypes": null, - "id": 2896, - "name": "bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2890, - "src": "7249:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "7240:18:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "7213:45:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 2903, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2899, - "name": "newBounty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2894, - "src": "7265:9:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", - "typeString": "struct StandardBounties.Bounty storage pointer" - } - }, - "id": 2901, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "7265:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2902, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2844, - "src": "7285:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - "src": "7265:28:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 2904, - "nodeType": "ExpressionStatement", - "src": "7265:28:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 2909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2905, - "name": "newBounty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2894, - "src": "7300:9:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", - "typeString": "struct StandardBounties.Bounty storage pointer" - } - }, - "id": 2907, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "approvers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2519, - "src": "7300:19:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2908, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2847, - "src": "7322:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "src": "7300:32:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 2910, - "nodeType": "ExpressionStatement", - "src": "7300:32:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 2915, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2911, - "name": "newBounty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2894, - "src": "7339:9:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", - "typeString": "struct StandardBounties.Bounty storage pointer" - } - }, - "id": 2913, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "deadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 2521, - "src": "7339:18:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2914, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2851, - "src": "7360:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7339:30:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2916, - "nodeType": "ExpressionStatement", - "src": "7339:30:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 2921, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2917, - "name": "newBounty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2894, - "src": "7376:9:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", - "typeString": "struct StandardBounties.Bounty storage pointer" - } - }, - "id": 2919, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "tokenVersion", - "nodeType": "MemberAccess", - "referencedDeclaration": 2525, - "src": "7376:22:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2920, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2855, - "src": "7401:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7376:38:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2922, - "nodeType": "ExpressionStatement", - "src": "7376:38:5" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 2925, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 2923, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2855, - "src": "7427:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 2924, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7444:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "7427:18:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 2933, - "nodeType": "IfStatement", - "src": "7423:64:5", - "trueBody": { - "id": 2932, - "nodeType": "Block", - "src": "7446:41:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 2930, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 2926, - "name": "newBounty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2894, - "src": "7455:9:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", - "typeString": "struct StandardBounties.Bounty storage pointer" - } - }, - "id": 2928, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 2523, - "src": "7455:15:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 2929, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2853, - "src": "7473:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "7455:24:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2931, - "nodeType": "ExpressionStatement", - "src": "7455:24:5" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "id": 2939, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 2934, - "name": "numBounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2551, - "src": "7495:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 2937, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7525:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "id": 2935, - "name": "numBounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2551, - "src": "7509:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2936, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "7509:15:5", - "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": 2938, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7509:18:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "7495:32:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 2940, - "nodeType": "ExpressionStatement", - "src": "7495:32:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2942, - "name": "bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2890, - "src": "7628:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2943, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2841, - "src": "7661:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2944, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2844, - "src": "7693:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 2945, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2847, - "src": "7726:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 2946, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2849, - "src": "7761:5:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2947, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2851, - "src": "7896:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2948, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2853, - "src": "7930:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2949, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2855, - "src": "7961:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2941, - "name": "BountyIssued", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4384, - "src": "7615:12:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (uint256,address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256)" - } - }, - "id": 2950, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "7615:360:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2951, - "nodeType": "EmitStatement", - "src": "7610:365:5" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 2952, - "name": "bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2890, - "src": "7992:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2953, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "7991:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2862, - "id": 2954, - "nodeType": "Return", - "src": "7984:17:5" - } - ] - }, - "documentation": "@param _tokenVersion the version of the token being used for the bounty (0 for ETH, 20 for ERC20, 721 for ERC721)", - "id": 2956, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 2858, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2841, - "src": "6777:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "id": 2859, - "modifierName": { - "argumentTypes": null, - "id": 2857, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "6763:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "6763:22:5" - } - ], - "name": "issueBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2856, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2841, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 2956, - "src": "6554:23:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2840, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6554:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2844, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 2956, - "src": "6584:33:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 2842, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6584:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 2843, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6584:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2847, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 2956, - "src": "6624:27:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2845, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6624:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2846, - "length": null, - "nodeType": "ArrayTypeName", - "src": "6624:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2849, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 2956, - "src": "6658:19:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2848, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "6658:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2851, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 2956, - "src": "6684:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2850, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6684:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2853, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 2956, - "src": "6705:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2852, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6705:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2855, - "name": "_tokenVersion", - "nodeType": "VariableDeclaration", - "scope": 2956, - "src": "6726:18:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2854, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6726:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6547:198:5" - }, - "returnParameters": { - "id": 2862, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2861, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 2956, - "src": "6800:4:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2860, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "6800:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6799:6:5" - }, - "scope": 4512, - "src": "6527:1480:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3000, - "nodeType": "Block", - "src": "8448:192:5", - "statements": [ - { - "assignments": [ - 2980 - ], - "declarations": [ - { - "constant": false, - "id": 2980, - "name": "bountyId", - "nodeType": "VariableDeclaration", - "scope": 3000, - "src": "8455:13:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2979, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8455:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 2990, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2982, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2958, - "src": "8483:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2983, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2961, - "src": "8492:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 2984, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2964, - "src": "8502:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - { - "argumentTypes": null, - "id": 2985, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2966, - "src": "8514:5:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 2986, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2968, - "src": "8521:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2987, - "name": "_token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2970, - "src": "8532:6:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 2988, - "name": "_tokenVersion", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2972, - "src": "8540:13:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2981, - "name": "issueBounty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2956, - "src": "8471:11:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$_t_address_$_t_uint256_$returns$_t_uint256_$", - "typeString": "function (address payable,address payable[] memory,address[] memory,string memory,uint256,address,uint256) returns (uint256)" - } - }, - "id": 2989, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8471:83:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "8455:99:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 2992, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2958, - "src": "8574:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 2993, - "name": "bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2980, - "src": "8583:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 2994, - "name": "_depositAmount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2974, - "src": "8593:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 2991, - "name": "contribute", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3163, - "src": "8563:10:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address payable,uint256,uint256)" - } - }, - "id": 2995, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8563:45:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2996, - "nodeType": "ExpressionStatement", - "src": "8563:45:5" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "id": 2997, - "name": "bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2980, - "src": "8625:8:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 2998, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "8624:10:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 2978, - "id": 2999, - "nodeType": "Return", - "src": "8617:17:5" - } - ] - }, - "documentation": "@param _depositAmount the amount of tokens being deposited to the bounty, which will create a new contribution to the bounty", - "id": 3001, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "issueAndContribute", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 2975, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2958, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3001, - "src": "8183:23:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 2957, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8183:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2961, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 3001, - "src": "8213:33:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 2959, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8213:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 2960, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8213:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2964, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 3001, - "src": "8253:27:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 2962, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8253:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 2963, - "length": null, - "nodeType": "ArrayTypeName", - "src": "8253:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2966, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 3001, - "src": "8287:19:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 2965, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "8287:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2968, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 3001, - "src": "8313:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2967, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8313:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2970, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 3001, - "src": "8334:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 2969, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8334:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2972, - "name": "_tokenVersion", - "nodeType": "VariableDeclaration", - "scope": 3001, - "src": "8355:18:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2971, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8355:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 2974, - "name": "_depositAmount", - "nodeType": "VariableDeclaration", - "scope": 3001, - "src": "8380:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2973, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8380:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8176:224:5" - }, - "returnParameters": { - "id": 2978, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 2977, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 3001, - "src": "8439:4:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 2976, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8439:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8438:6:5" - }, - "scope": 4512, - "src": "8149:491:5", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3162, - "nodeType": "Block", - "src": "9690:1740:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3021, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3019, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3007, - "src": "9705:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3020, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9715:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9705:11:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3018, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9697:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3022, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9697:20:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3023, - "nodeType": "ExpressionStatement", - "src": "9697:20:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3030, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3003, - "src": "9841:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3031, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3007, - "src": "9850:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 3032, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9859:5:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3029, - "name": "Contribution", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2549, - "src": "9828:12:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Contribution_$2549_storage_ptr_$", - "typeString": "type(struct StandardBounties.Contribution storage pointer)" - } - }, - "id": 3033, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9828:37:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_memory", - "typeString": "struct StandardBounties.Contribution memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Contribution_$2549_memory", - "typeString": "struct StandardBounties.Contribution memory" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3024, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "9781:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3026, - "indexExpression": { - "argumentTypes": null, - "id": 3025, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "9790:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9781:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3027, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributions", - "nodeType": "MemberAccess", - "referencedDeclaration": 2535, - "src": "9781:33:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", - "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" - } - }, - "id": 3028, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9781:38:5", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Contribution_$2549_storage_$returns$_t_uint256_$", - "typeString": "function (struct StandardBounties.Contribution storage ref) returns (uint256)" - } - }, - "id": 3034, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9781:85:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3035, - "nodeType": "ExpressionStatement", - "src": "9781:85:5" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3041, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3036, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "9918:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3038, - "indexExpression": { - "argumentTypes": null, - "id": 3037, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "9927:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9918:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3039, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenVersion", - "nodeType": "MemberAccess", - "referencedDeclaration": 2525, - "src": "9918:32:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3040, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9954:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "9918:37:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3068, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3063, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "10135:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3065, - "indexExpression": { - "argumentTypes": null, - "id": 3064, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "10144:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10135:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3066, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenVersion", - "nodeType": "MemberAccess", - "referencedDeclaration": 2525, - "src": "10135:32:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3230", - "id": 3067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10171:2:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_20_by_1", - "typeString": "int_const 20" - }, - "value": "20" - }, - "src": "10135:38:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3111, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3106, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "10674:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3108, - "indexExpression": { - "argumentTypes": null, - "id": 3107, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "10683:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10674:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3109, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenVersion", - "nodeType": "MemberAccess", - "referencedDeclaration": 2525, - "src": "10674:32:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "373231", - "id": 3110, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10710:3:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_721_by_1", - "typeString": "int_const 721" - }, - "value": "721" - }, - "src": "10674:39:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3145, - "nodeType": "Block", - "src": "11184:25:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 3142, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10416, - 10417 - ], - "referencedDeclaration": 10416, - "src": "11193:6:5", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 3143, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11193:8:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3144, - "nodeType": "ExpressionStatement", - "src": "11193:8:5" - } - ] - }, - "id": 3146, - "nodeType": "IfStatement", - "src": "10670:539:5", - "trueBody": { - "id": 3141, - "nodeType": "Block", - "src": "10714:464:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3118, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3112, - "name": "tokenBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2561, - "src": "10723:13:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(uint256 => bool))" - } - }, - "id": 3115, - "indexExpression": { - "argumentTypes": null, - "id": 3113, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "10737:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10723:24:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 3116, - "indexExpression": { - "argumentTypes": null, - "id": 3114, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3007, - "src": "10748:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "10723:33:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3117, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10759:4:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "10723:40:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3119, - "nodeType": "ExpressionStatement", - "src": "10723:40:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3124, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3121, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10835:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10835:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3123, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10848:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10835:14:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3120, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10827:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10827:23:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3126, - "nodeType": "ExpressionStatement", - "src": "10827:23:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3134, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3003, - "src": "11010:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3136, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10465, - "src": "11091:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - ], - "id": 3135, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "11083:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3137, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11083:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3138, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3007, - "src": "11162:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3128, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "10970:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3130, - "indexExpression": { - "argumentTypes": null, - "id": 3129, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "10979:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10970:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3131, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 2523, - "src": "10970:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3127, - "name": "ERC721BasicToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5764, - "src": "10953:16:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721BasicToken_$5764_$", - "typeString": "type(contract ERC721BasicToken)" - } - }, - "id": 3132, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10953:43:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", - "typeString": "contract ERC721BasicToken" - } - }, - "id": 3133, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 5485, - "src": "10953:56:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256) external" - } - }, - "id": 3139, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10953:217:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3140, - "nodeType": "ExpressionStatement", - "src": "10953:217:5" - } - ] - } - }, - "id": 3147, - "nodeType": "IfStatement", - "src": "10131:1078:5", - "trueBody": { - "id": 3105, - "nodeType": "Block", - "src": "10174:490:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3069, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "10185:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3071, - "indexExpression": { - "argumentTypes": null, - "id": 3070, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "10194:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10185:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3072, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2527, - "src": "10185:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3078, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3007, - "src": "10247:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3073, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "10215:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3075, - "indexExpression": { - "argumentTypes": null, - "id": 3074, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "10224:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10215:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3076, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2527, - "src": "10215:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3077, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "10215:31:5", - "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": 3079, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10215:40:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10185:70:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3081, - "nodeType": "ExpressionStatement", - "src": "10185:70:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3086, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3083, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10314:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3084, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10314:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3085, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10327:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "10314:14:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3082, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10306:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3087, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10306:23:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3088, - "nodeType": "ExpressionStatement", - "src": "10306:23:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3097, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3003, - "src": "10491:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3099, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10465, - "src": "10574:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - ], - "id": 3098, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10566:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 3100, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10566:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3101, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3007, - "src": "10647:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3091, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "10451:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3093, - "indexExpression": { - "argumentTypes": null, - "id": 3092, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "10460:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10451:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3094, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 2523, - "src": "10451:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3090, - "name": "ERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4989, - "src": "10440:10:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Token_$4989_$", - "typeString": "type(contract ERC20Token)" - } - }, - "id": 3095, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10440:37:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Token_$4989", - "typeString": "contract ERC20Token" - } - }, - "id": 3096, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 4922, - "src": "10440:50:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,address,uint256) external returns (bool)" - } - }, - "id": 3102, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10440:215:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3089, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10432:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3103, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10432:224:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3104, - "nodeType": "ExpressionStatement", - "src": "10432:224:5" - } - ] - } - }, - "id": 3148, - "nodeType": "IfStatement", - "src": "9914:1295:5", - "trueBody": { - "id": 3062, - "nodeType": "Block", - "src": "9956:169:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3053, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3042, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "9967:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3044, - "indexExpression": { - "argumentTypes": null, - "id": 3043, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "9976:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9967:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3045, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2527, - "src": "9967:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3051, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3007, - "src": "10029:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3046, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "9997:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3048, - "indexExpression": { - "argumentTypes": null, - "id": 3047, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "10006:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9997:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3049, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2527, - "src": "9997:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3050, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "9997:31:5", - "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": 3052, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9997:40:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "9967:70:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3054, - "nodeType": "ExpressionStatement", - "src": "9967:70:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3059, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3056, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10096:3:5", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 3057, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "value", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10096:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 3058, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3007, - "src": "10109:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10096:20:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3055, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10088:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3060, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10088:29:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3061, - "nodeType": "ExpressionStatement", - "src": "10088:29:5" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3150, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "11240:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3157, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3151, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "11279:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3153, - "indexExpression": { - "argumentTypes": null, - "id": 3152, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "11288:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11279:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3154, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributions", - "nodeType": "MemberAccess", - "referencedDeclaration": 2535, - "src": "11279:33:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", - "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" - } - }, - "id": 3155, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11279:40:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3156, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "11322:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "11279:44:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3158, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3003, - "src": "11379:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3159, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3007, - "src": "11416:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3149, - "name": "ContributionAdded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4394, - "src": "11222:17:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_address_payable_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256,address payable,uint256)" - } - }, - "id": 3160, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11222:202:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3161, - "nodeType": "EmitStatement", - "src": "11217:207:5" - } - ] - }, - "documentation": "@param _amount the amount of tokens being contributed", - "id": 3163, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3010, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3003, - "src": "9617:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "id": 3011, - "modifierName": { - "argumentTypes": null, - "id": 3009, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "9603:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "9603:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3013, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3005, - "src": "9656:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3014, - "modifierName": { - "argumentTypes": null, - "id": 3012, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "9631:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "9631:35:5" - }, - { - "arguments": null, - "id": 3016, - "modifierName": { - "argumentTypes": null, - "id": 3015, - "name": "callNotStarted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2584, - "src": "9672:14:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "9672:14:5" - } - ], - "name": "contribute", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3008, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3003, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3163, - "src": "9508:23:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 3002, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9508:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3005, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3163, - "src": "9538:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3004, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9538:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3007, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 3163, - "src": "9559:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3006, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "9559:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9501:71:5" - }, - "returnParameters": { - "id": 3017, - "nodeType": "ParameterList", - "parameters": [], - "src": "9690:0:5" - }, - "scope": 4512, - "src": "9482:1948:5", - "stateMutability": "payable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3233, - "nodeType": "Block", - "src": "12368:450:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3202, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3197, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10413, - "src": "12383:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3198, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "12389:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3200, - "indexExpression": { - "argumentTypes": null, - "id": 3199, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3167, - "src": "12398:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12389:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3201, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "deadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 2521, - "src": "12389:28:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "12383:34:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3196, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "12375:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3203, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12375:43:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3204, - "nodeType": "ExpressionStatement", - "src": "12375:43:5" - }, - { - "assignments": [ - 3206 - ], - "declarations": [ - { - "constant": false, - "id": 3206, - "name": "contribution", - "nodeType": "VariableDeclaration", - "scope": 3233, - "src": "12491:33:5", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", - "typeString": "struct StandardBounties.Contribution" - }, - "typeName": { - "contractScope": null, - "id": 3205, - "name": "Contribution", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2549, - "src": "12491:12:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", - "typeString": "struct StandardBounties.Contribution" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3213, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3207, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "12527:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3209, - "indexExpression": { - "argumentTypes": null, - "id": 3208, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3167, - "src": "12536:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12527:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3210, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributions", - "nodeType": "MemberAccess", - "referencedDeclaration": 2535, - "src": "12527:33:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", - "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" - } - }, - "id": 3212, - "indexExpression": { - "argumentTypes": null, - "id": 3211, - "name": "_contributionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "12561:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12527:50:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage", - "typeString": "struct StandardBounties.Contribution storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "12491:86:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 3218, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3214, - "name": "contribution", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3206, - "src": "12586:12:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", - "typeString": "struct StandardBounties.Contribution storage pointer" - } - }, - "id": 3216, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "refunded", - "nodeType": "MemberAccess", - "referencedDeclaration": 2548, - "src": "12586:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3217, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "12610:4:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "12586:28:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3219, - "nodeType": "ExpressionStatement", - "src": "12586:28:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3221, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3167, - "src": "12638:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3222, - "name": "contribution", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3206, - "src": "12649:12:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", - "typeString": "struct StandardBounties.Contribution storage pointer" - } - }, - "id": 3223, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributor", - "nodeType": "MemberAccess", - "referencedDeclaration": 2544, - "src": "12649:24:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3224, - "name": "contribution", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3206, - "src": "12675:12:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", - "typeString": "struct StandardBounties.Contribution storage pointer" - } - }, - "id": 3225, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amount", - "nodeType": "MemberAccess", - "referencedDeclaration": 2546, - "src": "12675:19:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3220, - "name": "transferTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4364, - "src": "12623:14:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_payable_$_t_uint256_$returns$__$", - "typeString": "function (uint256,address payable,uint256)" - } - }, - "id": 3226, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12623:72:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3227, - "nodeType": "ExpressionStatement", - "src": "12623:72:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3229, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3167, - "src": "12785:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3230, - "name": "_contributionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "12796:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3228, - "name": "ContributionRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4400, - "src": "12764:20:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (uint256,uint256)" - } - }, - "id": 3231, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12764:48:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3232, - "nodeType": "EmitStatement", - "src": "12759:53:5" - } - ] - }, - "documentation": "@param _contributionId the index of the contribution being refunded", - "id": 3234, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3172, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3165, - "src": "12098:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3173, - "modifierName": { - "argumentTypes": null, - "id": 3171, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "12084:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12084:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3175, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3167, - "src": "12137:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3176, - "modifierName": { - "argumentTypes": null, - "id": 3174, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "12112:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12112:35:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3178, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3167, - "src": "12184:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3179, - "name": "_contributionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "12195:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3180, - "modifierName": { - "argumentTypes": null, - "id": 3177, - "name": "validateContributionArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2614, - "src": "12153:30:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", - "typeString": "modifier (uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12153:58:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3182, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3165, - "src": "12233:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3183, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3167, - "src": "12242:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3184, - "name": "_contributionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "12253:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3185, - "modifierName": { - "argumentTypes": null, - "id": 3181, - "name": "onlyContributor", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2733, - "src": "12217:15:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", - "typeString": "modifier (address,uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12217:52:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3187, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3167, - "src": "12286:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3188, - "modifierName": { - "argumentTypes": null, - "id": 3186, - "name": "hasNotPaid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2768, - "src": "12275:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12275:21:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3190, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3167, - "src": "12317:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3191, - "name": "_contributionId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3169, - "src": "12328:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3192, - "modifierName": { - "argumentTypes": null, - "id": 3189, - "name": "hasNotRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2787, - "src": "12302:14:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", - "typeString": "modifier (uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12302:42:5" - }, - { - "arguments": null, - "id": 3194, - "modifierName": { - "argumentTypes": null, - "id": 3193, - "name": "callNotStarted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2584, - "src": "12350:14:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "12350:14:5" - } - ], - "name": "refundContribution", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3170, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3165, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3234, - "src": "12002:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3164, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12002:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3167, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3234, - "src": "12024:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3166, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12024:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3169, - "name": "_contributionId", - "nodeType": "VariableDeclaration", - "scope": 3234, - "src": "12045:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3168, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "12045:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11995:71:5" - }, - "returnParameters": { - "id": 3195, - "nodeType": "ParameterList", - "parameters": [], - "src": "12368:0:5" - }, - "scope": 4512, - "src": "11968:850:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3268, - "nodeType": "Block", - "src": "13357:140:5", - "statements": [ - { - "body": { - "id": 3266, - "nodeType": "Block", - "src": "13414:78:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3259, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3236, - "src": "13444:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3260, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3238, - "src": "13453:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3261, - "name": "_contributionIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3241, - "src": "13464:16:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3263, - "indexExpression": { - "argumentTypes": null, - "id": 3262, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3248, - "src": "13481:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "13464:19:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3258, - "name": "refundContribution", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3234, - "src": "13425:18:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256,uint256)" - } - }, - "id": 3264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13425:59:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3265, - "nodeType": "ExpressionStatement", - "src": "13425:59:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3254, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3251, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3248, - "src": "13381:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3252, - "name": "_contributionIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3241, - "src": "13385:16:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3253, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "13385:23:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "13381:27:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3267, - "initializationExpression": { - "assignments": [ - 3248 - ], - "declarations": [ - { - "constant": false, - "id": 3248, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 3267, - "src": "13369:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3247, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13369:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3250, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3249, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13378:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "13369:10:5" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3256, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "13410:3:5", - "subExpression": { - "argumentTypes": null, - "id": 3255, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3248, - "src": "13410:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3257, - "nodeType": "ExpressionStatement", - "src": "13410:3:5" - }, - "nodeType": "ForStatement", - "src": "13364:128:5" - } - ] - }, - "documentation": "@param _contributionIds the array of indexes of the contributions being refunded", - "id": 3269, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3244, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3236, - "src": "13345:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3245, - "modifierName": { - "argumentTypes": null, - "id": 3243, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "13331:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13331:22:5" - } - ], - "name": "refundMyContributions", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3242, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3236, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3269, - "src": "13239:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3235, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13239:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3238, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3269, - "src": "13261:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3237, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13261:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3241, - "name": "_contributionIds", - "nodeType": "VariableDeclaration", - "scope": 3269, - "src": "13282:30:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 3239, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "13282:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3240, - "length": null, - "nodeType": "ArrayTypeName", - "src": "13282:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13232:81:5" - }, - "returnParameters": { - "id": 3246, - "nodeType": "ParameterList", - "parameters": [], - "src": "13357:0:5" - }, - "scope": 4512, - "src": "13202:295:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3356, - "nodeType": "Block", - "src": "14232:543:5", - "statements": [ - { - "body": { - "id": 3348, - "nodeType": "Block", - "src": "14289:408:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3314, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3306, - "name": "_contributionIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3278, - "src": "14306:16:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3308, - "indexExpression": { - "argumentTypes": null, - "id": 3307, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3295, - "src": "14323:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14306:19:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3309, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "14328:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3311, - "indexExpression": { - "argumentTypes": null, - "id": 3310, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14337:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14328:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3312, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributions", - "nodeType": "MemberAccess", - "referencedDeclaration": 2535, - "src": "14328:33:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", - "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" - } - }, - "id": 3313, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14328:40:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14306:62:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3305, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "14298:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14298:71:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3316, - "nodeType": "ExpressionStatement", - "src": "14298:71:5" - }, - { - "assignments": [ - 3318 - ], - "declarations": [ - { - "constant": false, - "id": 3318, - "name": "contribution", - "nodeType": "VariableDeclaration", - "scope": 3348, - "src": "14380:33:5", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", - "typeString": "struct StandardBounties.Contribution" - }, - "typeName": { - "contractScope": null, - "id": 3317, - "name": "Contribution", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2549, - "src": "14380:12:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", - "typeString": "struct StandardBounties.Contribution" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3327, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3319, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "14416:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3321, - "indexExpression": { - "argumentTypes": null, - "id": 3320, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14425:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14416:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3322, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributions", - "nodeType": "MemberAccess", - "referencedDeclaration": 2535, - "src": "14416:33:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Contribution_$2549_storage_$dyn_storage", - "typeString": "struct StandardBounties.Contribution storage ref[] storage ref" - } - }, - "id": 3326, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3323, - "name": "_contributionIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3278, - "src": "14450:16:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3325, - "indexExpression": { - "argumentTypes": null, - "id": 3324, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3295, - "src": "14467:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14450:19:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "14416:54:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage", - "typeString": "struct StandardBounties.Contribution storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "14380:90:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "14489:22:5", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3329, - "name": "contribution", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3318, - "src": "14490:12:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", - "typeString": "struct StandardBounties.Contribution storage pointer" - } - }, - "id": 3330, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "refunded", - "nodeType": "MemberAccess", - "referencedDeclaration": 2548, - "src": "14490:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3328, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "14481:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3332, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14481:31:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3333, - "nodeType": "ExpressionStatement", - "src": "14481:31:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 3338, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3334, - "name": "contribution", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3318, - "src": "14523:12:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", - "typeString": "struct StandardBounties.Contribution storage pointer" - } - }, - "id": 3336, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "refunded", - "nodeType": "MemberAccess", - "referencedDeclaration": 2548, - "src": "14523:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3337, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14547:4:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "14523:28:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3339, - "nodeType": "ExpressionStatement", - "src": "14523:28:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3341, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14577:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3342, - "name": "contribution", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3318, - "src": "14588:12:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", - "typeString": "struct StandardBounties.Contribution storage pointer" - } - }, - "id": 3343, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "contributor", - "nodeType": "MemberAccess", - "referencedDeclaration": 2544, - "src": "14588:24:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3344, - "name": "contribution", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3318, - "src": "14614:12:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Contribution_$2549_storage_ptr", - "typeString": "struct StandardBounties.Contribution storage pointer" - } - }, - "id": 3345, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "amount", - "nodeType": "MemberAccess", - "referencedDeclaration": 2546, - "src": "14614:19:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3340, - "name": "transferTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4364, - "src": "14562:14:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_payable_$_t_uint256_$returns$__$", - "typeString": "function (uint256,address payable,uint256)" - } - }, - "id": 3346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14562:72:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3347, - "nodeType": "ExpressionStatement", - "src": "14562:72:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3301, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3298, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3295, - "src": "14256:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3299, - "name": "_contributionIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3278, - "src": "14260:16:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "14260:23:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "14256:27:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3349, - "initializationExpression": { - "assignments": [ - 3295 - ], - "declarations": [ - { - "constant": false, - "id": 3295, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 3349, - "src": "14244:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3294, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14244:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3297, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3296, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14253:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "14244:10:5" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "14285:3:5", - "subExpression": { - "argumentTypes": null, - "id": 3302, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3295, - "src": "14285:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3304, - "nodeType": "ExpressionStatement", - "src": "14285:3:5" - }, - "nodeType": "ForStatement", - "src": "14239:458:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3351, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14732:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3352, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3271, - "src": "14743:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3353, - "name": "_contributionIds", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3278, - "src": "14752:16:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "id": 3350, - "name": "ContributionsRefunded", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4409, - "src": "14710:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,uint256[] memory)" - } - }, - "id": 3354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14710:59:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3355, - "nodeType": "EmitStatement", - "src": "14705:64:5" - } - ] - }, - "documentation": "@param _contributionIds the array of indexes of the contributions being refunded", - "id": 3357, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3281, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3271, - "src": "14112:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3282, - "modifierName": { - "argumentTypes": null, - "id": 3280, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "14098:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14098:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3284, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14151:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3285, - "modifierName": { - "argumentTypes": null, - "id": 3283, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "14126:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14126:35:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3287, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3271, - "src": "14178:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3288, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "14187:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3289, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3275, - "src": "14198:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3290, - "modifierName": { - "argumentTypes": null, - "id": 3286, - "name": "onlyIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2689, - "src": "14167:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", - "typeString": "modifier (address,uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14167:41:5" - }, - { - "arguments": null, - "id": 3292, - "modifierName": { - "argumentTypes": null, - "id": 3291, - "name": "callNotStarted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2584, - "src": "14214:14:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "14214:14:5" - } - ], - "name": "refundContributions", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3279, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3271, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "13985:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3270, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13985:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3273, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "14007:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3272, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14007:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3275, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "14028:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3274, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14028:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3278, - "name": "_contributionIds", - "nodeType": "VariableDeclaration", - "scope": 3357, - "src": "14049:30:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 3276, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "14049:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3277, - "length": null, - "nodeType": "ArrayTypeName", - "src": "14049:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13978:102:5" - }, - "returnParameters": { - "id": 3293, - "nodeType": "ParameterList", - "parameters": [], - "src": "14232:0:5" - }, - "scope": 4512, - "src": "13950:825:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3461, - "nodeType": "Block", - "src": "15849:800:5", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3394, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3387, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3382, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "15860:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3384, - "indexExpression": { - "argumentTypes": null, - "id": 3383, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3361, - "src": "15869:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15860:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3385, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenVersion", - "nodeType": "MemberAccess", - "referencedDeclaration": 2525, - "src": "15860:32:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3386, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15896:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "15860:37:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3393, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3388, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "15901:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3390, - "indexExpression": { - "argumentTypes": null, - "id": 3389, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3361, - "src": "15910:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "15901:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3391, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenVersion", - "nodeType": "MemberAccess", - "referencedDeclaration": 2525, - "src": "15901:32:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3230", - "id": 3392, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15937:2:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_20_by_1", - "typeString": "int_const 20" - }, - "value": "20" - }, - "src": "15901:38:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15860:79:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 3453, - "nodeType": "Block", - "src": "16310:277:5", - "statements": [ - { - "body": { - "id": 3451, - "nodeType": "Block", - "src": "16361:219:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3434, - "name": "tokenBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2561, - "src": "16380:13:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(uint256 => bool))" - } - }, - "id": 3436, - "indexExpression": { - "argumentTypes": null, - "id": 3435, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3361, - "src": "16394:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16380:24:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 3440, - "indexExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3437, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "16405:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3439, - "indexExpression": { - "argumentTypes": null, - "id": 3438, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3423, - "src": "16414:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16405:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16380:37:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3433, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "16372:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3441, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16372:46:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3442, - "nodeType": "ExpressionStatement", - "src": "16372:46:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3444, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3361, - "src": "16538:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3445, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3359, - "src": "16549:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3446, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "16558:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3448, - "indexExpression": { - "argumentTypes": null, - "id": 3447, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3423, - "src": "16567:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16558:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3443, - "name": "transferTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4364, - "src": "16523:14:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_payable_$_t_uint256_$returns$__$", - "typeString": "function (uint256,address payable,uint256)" - } - }, - "id": 3449, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16523:47:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3450, - "nodeType": "ExpressionStatement", - "src": "16523:47:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3429, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3426, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3423, - "src": "16336:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3427, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "16340:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3428, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "16340:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16336:19:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3452, - "initializationExpression": { - "assignments": [ - 3423 - ], - "declarations": [ - { - "constant": false, - "id": 3423, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 3452, - "src": "16324:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3422, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "16324:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3425, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3424, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16333:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "16324:10:5" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3431, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "16357:3:5", - "subExpression": { - "argumentTypes": null, - "id": 3430, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3423, - "src": "16357:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3432, - "nodeType": "ExpressionStatement", - "src": "16357:3:5" - }, - "nodeType": "ForStatement", - "src": "16319:261:5" - } - ] - }, - "id": 3454, - "nodeType": "IfStatement", - "src": "15856:731:5", - "trueBody": { - "id": 3421, - "nodeType": "Block", - "src": "15940:364:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3396, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "15957:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3397, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "15957:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3398, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "15976:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "15957:20:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3395, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "15949:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15949:29:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3401, - "nodeType": "ExpressionStatement", - "src": "15949:29:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3410, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3403, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "16053:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3405, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3404, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16062:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16053:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3406, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "16068:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3408, - "indexExpression": { - "argumentTypes": null, - "id": 3407, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3361, - "src": "16077:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16068:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3409, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2527, - "src": "16068:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "16053:42:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3402, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "16045:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3411, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16045:51:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3412, - "nodeType": "ExpressionStatement", - "src": "16045:51:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3414, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3361, - "src": "16215:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3415, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3359, - "src": "16226:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3416, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "16235:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3418, - "indexExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3417, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16244:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "16235:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3413, - "name": "transferTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4364, - "src": "16200:14:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_payable_$_t_uint256_$returns$__$", - "typeString": "function (uint256,address payable,uint256)" - } - }, - "id": 3419, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16200:47:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3420, - "nodeType": "ExpressionStatement", - "src": "16200:47:5" - } - ] - } - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3456, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3361, - "src": "16614:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3457, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3359, - "src": "16625:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3458, - "name": "_amounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3366, - "src": "16634:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "id": 3455, - "name": "BountyDrained", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4418, - "src": "16600:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,uint256[] memory)" - } - }, - "id": 3459, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16600:43:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3460, - "nodeType": "EmitStatement", - "src": "16595:48:5" - } - ] - }, - "documentation": "@param _amounts an array of amounts of tokens to be sent. The length of the array should be 1 if the bounty is in ETH or ERC20 tokens. If it's an ERC721 bounty, the array should be the list of tokenIDs.", - "id": 3462, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3369, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3359, - "src": "15729:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "id": 3370, - "modifierName": { - "argumentTypes": null, - "id": 3368, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "15715:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "15715:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3372, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3361, - "src": "15768:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3373, - "modifierName": { - "argumentTypes": null, - "id": 3371, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "15743:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "15743:35:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3375, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3359, - "src": "15795:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 3376, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3361, - "src": "15804:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3377, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3363, - "src": "15815:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3378, - "modifierName": { - "argumentTypes": null, - "id": 3374, - "name": "onlyIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2689, - "src": "15784:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", - "typeString": "modifier (address,uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "15784:41:5" - }, - { - "arguments": null, - "id": 3380, - "modifierName": { - "argumentTypes": null, - "id": 3379, - "name": "callNotStarted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2584, - "src": "15831:14:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "15831:14:5" - } - ], - "name": "drainBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3367, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3359, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3462, - "src": "15602:23:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 3358, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15602:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3361, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3462, - "src": "15632:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3360, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15632:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3363, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 3462, - "src": "15653:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3362, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15653:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3366, - "name": "_amounts", - "nodeType": "VariableDeclaration", - "scope": 3462, - "src": "15674:22:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 3364, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "15674:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3365, - "length": null, - "nodeType": "ArrayTypeName", - "src": "15674:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15595:102:5" - }, - "returnParameters": { - "id": 3381, - "nodeType": "ParameterList", - "parameters": [], - "src": "15849:0:5" - }, - "scope": 4512, - "src": "15575:1074:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3483, - "nodeType": "Block", - "src": "17352:134:5", - "statements": [ - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3478, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3466, - "src": "17380:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3479, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3464, - "src": "17391:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3480, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3468, - "src": "17400:5:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 3477, - "name": "ActionPerformed", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4426, - "src": "17364:15:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,string memory)" - } - }, - "id": 3481, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17364:42:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3482, - "nodeType": "EmitStatement", - "src": "17359:47:5" - } - ] - }, - "documentation": "@param _data the IPFS hash corresponding to a JSON object which contains the details of the action being performed (see docs for schema details)", - "id": 3484, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3471, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3464, - "src": "17299:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3472, - "modifierName": { - "argumentTypes": null, - "id": 3470, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "17285:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "17285:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3474, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3466, - "src": "17338:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3475, - "modifierName": { - "argumentTypes": null, - "id": 3473, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "17313:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "17313:35:5" - } - ], - "name": "performAction", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3469, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3464, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3484, - "src": "17204:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3463, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17204:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3466, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3484, - "src": "17226:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3465, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "17226:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3468, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 3484, - "src": "17247:19:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3467, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "17247:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17197:70:5" - }, - "returnParameters": { - "id": 3476, - "nodeType": "ParameterList", - "parameters": [], - "src": "17352:0:5" - }, - "scope": 4512, - "src": "17175:311:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3544, - "nodeType": "Block", - "src": "18230:598:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3508, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3503, - "name": "now", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10413, - "src": "18245:3:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3504, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "18251:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3506, - "indexExpression": { - "argumentTypes": null, - "id": 3505, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "18260:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18251:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3507, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "deadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 2521, - "src": "18251:28:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18245:34:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3502, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "18237:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3509, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18237:43:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3510, - "nodeType": "ExpressionStatement", - "src": "18237:43:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3515, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3512, - "name": "_fulfillers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "18358:11:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - "id": 3513, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "18358:18:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3514, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18379:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "18358:22:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3511, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "18350:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3516, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18350:31:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3517, - "nodeType": "ExpressionStatement", - "src": "18350:31:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3524, - "name": "_fulfillers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "18506:11:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 3525, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3486, - "src": "18519:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3523, - "name": "Fulfillment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2542, - "src": "18494:11:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Fulfillment_$2542_storage_ptr_$", - "typeString": "type(struct StandardBounties.Fulfillment storage pointer)" - } - }, - "id": 3526, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18494:33:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fulfillment_$2542_memory", - "typeString": "struct StandardBounties.Fulfillment memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_struct$_Fulfillment_$2542_memory", - "typeString": "struct StandardBounties.Fulfillment memory" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3518, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "18456:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3520, - "indexExpression": { - "argumentTypes": null, - "id": 3519, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "18465:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18456:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3521, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "fulfillments", - "nodeType": "MemberAccess", - "referencedDeclaration": 2532, - "src": "18456:32:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", - "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" - } - }, - "id": 3522, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "18456:37:5", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_Fulfillment_$2542_storage_$returns$_t_uint256_$", - "typeString": "function (struct StandardBounties.Fulfillment storage ref) returns (uint256)" - } - }, - "id": 3527, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18456:72:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3528, - "nodeType": "ExpressionStatement", - "src": "18456:72:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3530, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "18558:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3537, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3531, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "18596:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3533, - "indexExpression": { - "argumentTypes": null, - "id": 3532, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "18605:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18596:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3534, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "fulfillments", - "nodeType": "MemberAccess", - "referencedDeclaration": 2532, - "src": "18596:32:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", - "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" - } - }, - "id": 3535, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "18596:39:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3536, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18638:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "18596:43:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3538, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "18595:45:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3539, - "name": "_fulfillers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3491, - "src": "18668:11:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 3540, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3493, - "src": "18707:5:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 3541, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3486, - "src": "18814:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 3529, - "name": "BountyFulfilled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4439, - "src": "18542:15:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_address_$returns$__$", - "typeString": "function (uint256,uint256,address payable[] memory,string memory,address)" - } - }, - "id": 3542, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18542:280:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3543, - "nodeType": "EmitStatement", - "src": "18537:285:5" - } - ] - }, - "documentation": "@param _data the IPFS hash corresponding to a JSON object which contains the details of the submission (see docs for schema details)", - "id": 3545, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3496, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3486, - "src": "18177:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3497, - "modifierName": { - "argumentTypes": null, - "id": 3495, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "18163:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "18163:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3499, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3488, - "src": "18216:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3500, - "modifierName": { - "argumentTypes": null, - "id": 3498, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "18191:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "18191:35:5" - } - ], - "name": "fulfillBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3486, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3545, - "src": "18038:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3485, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18038:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3488, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3545, - "src": "18060:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3487, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "18060:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3491, - "name": "_fulfillers", - "nodeType": "VariableDeclaration", - "scope": 3545, - "src": "18081:37:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 3489, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18081:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 3490, - "length": null, - "nodeType": "ArrayTypeName", - "src": "18081:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3493, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 3545, - "src": "18125:19:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3492, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "18125:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18031:114:5" - }, - "returnParameters": { - "id": 3501, - "nodeType": "ParameterList", - "parameters": [], - "src": "18230:0:5" - }, - "scope": 4512, - "src": "18009:819:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3591, - "nodeType": "Block", - "src": "19858:324:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3582, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3574, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "19865:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3576, - "indexExpression": { - "argumentTypes": null, - "id": 3575, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3549, - "src": "19874:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19865:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3577, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "fulfillments", - "nodeType": "MemberAccess", - "referencedDeclaration": 2532, - "src": "19865:32:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", - "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" - } - }, - "id": 3579, - "indexExpression": { - "argumentTypes": null, - "id": 3578, - "name": "_fulfillmentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3551, - "src": "19898:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "19865:48:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fulfillment_$2542_storage", - "typeString": "struct StandardBounties.Fulfillment storage ref" - } - }, - "id": 3580, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "fulfillers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2539, - "src": "19865:59:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3581, - "name": "_fulfillers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3554, - "src": "19927:11:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - "src": "19865:73:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 3583, - "nodeType": "ExpressionStatement", - "src": "19865:73:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3585, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3549, - "src": "19969:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3586, - "name": "_fulfillmentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3551, - "src": "20009:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3587, - "name": "_fulfillers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3554, - "src": "20054:11:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 3588, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3556, - "src": "20096:5:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 3584, - "name": "FulfillmentUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4450, - "src": "19950:18:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint256,uint256,address payable[] memory,string memory)" - } - }, - "id": 3589, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19950:152:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3590, - "nodeType": "EmitStatement", - "src": "19945:157:5" - } - ] - }, - "documentation": "@param _data the new IPFS hash corresponding to a JSON object which contains the details of the submission (see docs for schema details)", - "id": 3592, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3559, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3547, - "src": "19618:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3560, - "modifierName": { - "argumentTypes": null, - "id": 3558, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "19604:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "19604:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3562, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3549, - "src": "19655:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3563, - "modifierName": { - "argumentTypes": null, - "id": 3561, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "19630:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "19630:35:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3565, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3549, - "src": "19699:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3566, - "name": "_fulfillmentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3551, - "src": "19710:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3567, - "modifierName": { - "argumentTypes": null, - "id": 3564, - "name": "validateFulfillmentArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2632, - "src": "19669:29:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", - "typeString": "modifier (uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "19669:56:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3569, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3547, - "src": "19743:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3570, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3549, - "src": "19752:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3571, - "name": "_fulfillmentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3551, - "src": "19763:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3572, - "modifierName": { - "argumentTypes": null, - "id": 3568, - "name": "onlySubmitter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2711, - "src": "19729:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", - "typeString": "modifier (address,uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "19729:49:5" - } - ], - "name": "updateFulfillment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3557, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3547, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3592, - "src": "19466:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3546, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19466:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3549, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3592, - "src": "19486:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3548, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "19486:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3551, - "name": "_fulfillmentId", - "nodeType": "VariableDeclaration", - "scope": 3592, - "src": "19505:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3550, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "19505:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3554, - "name": "_fulfillers", - "nodeType": "VariableDeclaration", - "scope": 3592, - "src": "19529:36:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 3552, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19529:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 3553, - "length": null, - "nodeType": "ArrayTypeName", - "src": "19529:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3556, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 3592, - "src": "19570:19:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3555, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "19570:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19461:129:5" - }, - "returnParameters": { - "id": 3573, - "nodeType": "ParameterList", - "parameters": [], - "src": "19858:0:5" - }, - "scope": 4512, - "src": "19435:747:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3687, - "nodeType": "Block", - "src": "21405:812:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3628, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3623, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "21499:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3625, - "indexExpression": { - "argumentTypes": null, - "id": 3624, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3596, - "src": "21508:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21499:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3626, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "hasPaidOut", - "nodeType": "MemberAccess", - "referencedDeclaration": 2529, - "src": "21499:30:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 3627, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21532:4:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "21499:37:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3629, - "nodeType": "ExpressionStatement", - "src": "21499:37:5" - }, - { - "assignments": [ - 3631 - ], - "declarations": [ - { - "constant": false, - "id": 3631, - "name": "fulfillment", - "nodeType": "VariableDeclaration", - "scope": 3687, - "src": "21545:31:5", - "stateVariable": false, - "storageLocation": "storage", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fulfillment_$2542_storage_ptr", - "typeString": "struct StandardBounties.Fulfillment" - }, - "typeName": { - "contractScope": null, - "id": 3630, - "name": "Fulfillment", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2542, - "src": "21545:11:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fulfillment_$2542_storage_ptr", - "typeString": "struct StandardBounties.Fulfillment" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3638, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3632, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "21579:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3634, - "indexExpression": { - "argumentTypes": null, - "id": 3633, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3596, - "src": "21588:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21579:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3635, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "fulfillments", - "nodeType": "MemberAccess", - "referencedDeclaration": 2532, - "src": "21579:32:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", - "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" - } - }, - "id": 3637, - "indexExpression": { - "argumentTypes": null, - "id": 3636, - "name": "_fulfillmentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3598, - "src": "21612:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21579:48:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fulfillment_$2542_storage", - "typeString": "struct StandardBounties.Fulfillment storage ref" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21545:82:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3645, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3640, - "name": "_tokenAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3603, - "src": "21644:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3641, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21644:20:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3642, - "name": "fulfillment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3631, - "src": "21668:11:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fulfillment_$2542_storage_ptr", - "typeString": "struct StandardBounties.Fulfillment storage pointer" - } - }, - "id": 3643, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "fulfillers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2539, - "src": "21668:22:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 3644, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21668:29:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "21644:53:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3639, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "21636:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3646, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21636:62:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3647, - "nodeType": "ExpressionStatement", - "src": "21636:62:5" - }, - { - "body": { - "id": 3678, - "nodeType": "Block", - "src": "21838:202:5", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3664, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3660, - "name": "_tokenAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3603, - "src": "21853:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3662, - "indexExpression": { - "argumentTypes": null, - "id": 3661, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "21867:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21853:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3663, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21872:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "21853:20:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 3677, - "nodeType": "IfStatement", - "src": "21849:184:5", - "trueBody": { - "id": 3676, - "nodeType": "Block", - "src": "21874:159:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3666, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3596, - "src": "21966:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3667, - "name": "fulfillment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3631, - "src": "21977:11:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fulfillment_$2542_storage_ptr", - "typeString": "struct StandardBounties.Fulfillment storage pointer" - } - }, - "id": 3668, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "fulfillers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2539, - "src": "21977:22:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 3670, - "indexExpression": { - "argumentTypes": null, - "id": 3669, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "22000:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21977:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3671, - "name": "_tokenAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3603, - "src": "22004:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - }, - "id": 3673, - "indexExpression": { - "argumentTypes": null, - "id": 3672, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "22018:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "22004:16:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3665, - "name": "transferTokens", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4364, - "src": "21951:14:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_payable_$_t_uint256_$returns$__$", - "typeString": "function (uint256,address payable,uint256)" - } - }, - "id": 3674, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21951:70:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3675, - "nodeType": "ExpressionStatement", - "src": "21951:70:5" - } - ] - } - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3656, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3652, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "21799:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3653, - "name": "fulfillment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3631, - "src": "21803:11:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Fulfillment_$2542_storage_ptr", - "typeString": "struct StandardBounties.Fulfillment storage pointer" - } - }, - "id": 3654, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "fulfillers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2539, - "src": "21803:22:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 3655, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "21803:29:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "21799:33:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 3679, - "initializationExpression": { - "assignments": [ - 3649 - ], - "declarations": [ - { - "constant": false, - "id": 3649, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 3679, - "src": "21784:9:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3648, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "21784:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 3651, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 3650, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21796:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "21784:13:5" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 3658, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "21834:3:5", - "subExpression": { - "argumentTypes": null, - "id": 3657, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3649, - "src": "21834:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3659, - "nodeType": "ExpressionStatement", - "src": "21834:3:5" - }, - "nodeType": "ForStatement", - "src": "21779:261:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3681, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3596, - "src": "22071:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3682, - "name": "_fulfillmentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3598, - "src": "22112:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3683, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3594, - "src": "22158:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3684, - "name": "_tokenAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3603, - "src": "22197:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "id": 3680, - "name": "FulfillmentAccepted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4461, - "src": "22051:19:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint256,uint256,address,uint256[] memory)" - } - }, - "id": 3685, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22051:160:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3686, - "nodeType": "EmitStatement", - "src": "22046:165:5" - } - ] - }, - "documentation": "being sent to each of the individual fulfillers", - "id": 3688, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3606, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3594, - "src": "21221:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3607, - "modifierName": { - "argumentTypes": null, - "id": 3605, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "21207:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "21207:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3609, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3596, - "src": "21260:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3610, - "modifierName": { - "argumentTypes": null, - "id": 3608, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "21235:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "21235:35:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3612, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3596, - "src": "21306:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3613, - "name": "_fulfillmentId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3598, - "src": "21317:14:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3614, - "modifierName": { - "argumentTypes": null, - "id": 3611, - "name": "validateFulfillmentArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2632, - "src": "21276:29:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", - "typeString": "modifier (uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "21276:56:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3616, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3594, - "src": "21349:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3617, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3596, - "src": "21358:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3618, - "name": "_approverId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3600, - "src": "21369:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3619, - "modifierName": { - "argumentTypes": null, - "id": 3615, - "name": "isApprover", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2754, - "src": "21338:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", - "typeString": "modifier (address,uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "21338:43:5" - }, - { - "arguments": null, - "id": 3621, - "modifierName": { - "argumentTypes": null, - "id": 3620, - "name": "callNotStarted", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2584, - "src": "21387:14:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$__$", - "typeString": "modifier ()" - } - }, - "nodeType": "ModifierInvocation", - "src": "21387:14:5" - } - ], - "name": "acceptFulfillment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3604, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3594, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3688, - "src": "21069:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3593, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "21069:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3596, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3688, - "src": "21091:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3595, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "21091:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3598, - "name": "_fulfillmentId", - "nodeType": "VariableDeclaration", - "scope": 3688, - "src": "21112:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3597, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "21112:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3600, - "name": "_approverId", - "nodeType": "VariableDeclaration", - "scope": 3688, - "src": "21138:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3599, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "21138:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3603, - "name": "_tokenAmounts", - "nodeType": "VariableDeclaration", - "scope": 3688, - "src": "21161:27:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 3601, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "21161:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3602, - "length": null, - "nodeType": "ArrayTypeName", - "src": "21161:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "21062:127:5" - }, - "returnParameters": { - "id": 3622, - "nodeType": "ParameterList", - "parameters": [], - "src": "21405:0:5" - }, - "scope": 4512, - "src": "21036:1181:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3729, - "nodeType": "Block", - "src": "23492:376:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3709, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3690, - "src": "23575:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3710, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3692, - "src": "23584:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3711, - "name": "_fulfillers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3695, - "src": "23595:11:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 3712, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3697, - "src": "23608:5:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 3708, - "name": "fulfillBounty", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3545, - "src": "23561:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,address payable[] memory,string memory)" - } - }, - "id": 3713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23561:53:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3714, - "nodeType": "ExpressionStatement", - "src": "23561:53:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3716, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3690, - "src": "23678:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3717, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3692, - "src": "23710:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3724, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3718, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "23744:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3720, - "indexExpression": { - "argumentTypes": null, - "id": 3719, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3692, - "src": "23753:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "23744:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3721, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "fulfillments", - "nodeType": "MemberAccess", - "referencedDeclaration": 2532, - "src": "23744:32:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Fulfillment_$2542_storage_$dyn_storage", - "typeString": "struct StandardBounties.Fulfillment storage ref[] storage ref" - } - }, - "id": 3722, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "23744:39:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "argumentTypes": null, - "hexValue": "31", - "id": 3723, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "23786:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - }, - "src": "23744:43:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3725, - "name": "_approverId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3699, - "src": "23812:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3726, - "name": "_tokenAmounts", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3702, - "src": "23848:13:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[] memory" - } - ], - "id": 3715, - "name": "acceptFulfillment", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3688, - "src": "23660:17:5", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$", - "typeString": "function (address,uint256,uint256,uint256,uint256[] memory)" - } - }, - "id": 3727, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "23660:202:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3728, - "nodeType": "ExpressionStatement", - "src": "23660:202:5" - } - ] - }, - "documentation": "being sent to each of the individual fulfillers", - "id": 3730, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3705, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3690, - "src": "23480:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3706, - "modifierName": { - "argumentTypes": null, - "id": 3704, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "23466:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "23466:22:5" - } - ], - "name": "fulfillAndAccept", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3703, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3690, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3730, - "src": "23285:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3689, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23285:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3692, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3730, - "src": "23307:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3691, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "23307:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3695, - "name": "_fulfillers", - "nodeType": "VariableDeclaration", - "scope": 3730, - "src": "23328:36:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 3693, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "23328:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 3694, - "length": null, - "nodeType": "ArrayTypeName", - "src": "23328:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3697, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 3730, - "src": "23371:19:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3696, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "23371:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3699, - "name": "_approverId", - "nodeType": "VariableDeclaration", - "scope": 3730, - "src": "23397:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3698, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "23397:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3702, - "name": "_tokenAmounts", - "nodeType": "VariableDeclaration", - "scope": 3730, - "src": "23420:27:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 3700, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "23420:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3701, - "length": null, - "nodeType": "ArrayTypeName", - "src": "23420:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "23278:170:5" - }, - "returnParameters": { - "id": 3707, - "nodeType": "ParameterList", - "parameters": [], - "src": "23492:0:5" - }, - "scope": 4512, - "src": "23253:615:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3821, - "nodeType": "Block", - "src": "24888:901:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3753, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3734, - "src": "24903:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 3754, - "name": "numBounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2551, - "src": "24915:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "24903:23:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3752, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "24895:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3756, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "24895:32:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3757, - "nodeType": "ExpressionStatement", - "src": "24895:32:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3765, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3759, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3736, - "src": "25028:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3760, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "25040:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3762, - "indexExpression": { - "argumentTypes": null, - "id": 3761, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3734, - "src": "25049:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25040:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3763, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "25040:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 3764, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "25040:34:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25028:46:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3758, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "25020:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3766, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25020:55:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3767, - "nodeType": "ExpressionStatement", - "src": "25020:55:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 3776, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3769, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "25176:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3770, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "25187:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3772, - "indexExpression": { - "argumentTypes": null, - "id": 3771, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3734, - "src": "25196:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25187:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3773, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "25187:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 3775, - "indexExpression": { - "argumentTypes": null, - "id": 3774, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3736, - "src": "25215:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25187:38:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "25176:49:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3768, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "25168:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3777, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25168:58:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3778, - "nodeType": "ExpressionStatement", - "src": "25168:58:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3783, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3780, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3739, - "src": "25315:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - "id": 3781, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "25315:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3782, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25333:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "25315:19:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3787, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 3784, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "25338:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - "id": 3785, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "25338:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3786, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "25358:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "25338:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "25315:44:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3779, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "25307:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3789, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25307:53:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3790, - "nodeType": "ExpressionStatement", - "src": "25307:53:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 3796, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3791, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "25444:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3793, - "indexExpression": { - "argumentTypes": null, - "id": 3792, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3734, - "src": "25453:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25444:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3794, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "25444:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3795, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3739, - "src": "25474:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - "src": "25444:38:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 3797, - "nodeType": "ExpressionStatement", - "src": "25444:38:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 3803, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3798, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "25489:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3800, - "indexExpression": { - "argumentTypes": null, - "id": 3799, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3734, - "src": "25498:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25489:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3801, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "approvers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2519, - "src": "25489:29:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3802, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "25521:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - "src": "25489:42:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3804, - "nodeType": "ExpressionStatement", - "src": "25489:42:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 3810, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3805, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "25538:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3807, - "indexExpression": { - "argumentTypes": null, - "id": 3806, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3734, - "src": "25547:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "25538:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3808, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "deadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 2521, - "src": "25538:28:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3809, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "25569:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "25538:40:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 3811, - "nodeType": "ExpressionStatement", - "src": "25538:40:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3813, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3734, - "src": "25604:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3814, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "25639:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3815, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3739, - "src": "25672:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 3816, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3742, - "src": "25706:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - { - "argumentTypes": null, - "id": 3817, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3744, - "src": "25742:5:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "id": 3818, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3746, - "src": "25773:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 3812, - "name": "BountyChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4477, - "src": "25590:13:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_array$_t_address_payable_$dyn_memory_ptr_$_t_string_memory_ptr_$_t_uint256_$returns$__$", - "typeString": "function (uint256,address,address payable[] memory,address payable[] memory,string memory,uint256)" - } - }, - "id": 3819, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "25590:193:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3820, - "nodeType": "EmitStatement", - "src": "25585:198:5" - } - ] - }, - "documentation": "@param _deadline the new timestamp which will become the deadline of the bounty", - "id": 3822, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3749, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3732, - "src": "24876:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3750, - "modifierName": { - "argumentTypes": null, - "id": 3748, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "24862:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "24862:22:5" - } - ], - "name": "changeBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3747, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3732, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3822, - "src": "24657:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3731, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24657:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3734, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3822, - "src": "24679:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3733, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "24679:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3736, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 3822, - "src": "24700:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3735, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "24700:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3739, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 3822, - "src": "24721:33:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 3737, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24721:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 3738, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24721:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3742, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 3822, - "src": "24761:35:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 3740, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "24761:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 3741, - "length": null, - "nodeType": "ArrayTypeName", - "src": "24761:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3744, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 3822, - "src": "24803:19:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 3743, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "24803:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3746, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 3822, - "src": "24829:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3745, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "24829:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "24650:194:5" - }, - "returnParameters": { - "id": 3751, - "nodeType": "ParameterList", - "parameters": [], - "src": "24888:0:5" - }, - "scope": 4512, - "src": "24629:1160:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3882, - "nodeType": "Block", - "src": "26643:237:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 3861, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3857, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3851, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "26658:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3852, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "26670:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3854, - "indexExpression": { - "argumentTypes": null, - "id": 3853, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3826, - "src": "26679:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26670:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3855, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "26670:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 3856, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "26670:34:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "26658:46:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3860, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3858, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "26708:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 3859, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "26721:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "26708:14:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "26658:64:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3850, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "26650:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3862, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26650:73:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3863, - "nodeType": "ExpressionStatement", - "src": "26650:73:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 3871, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3864, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "26732:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3866, - "indexExpression": { - "argumentTypes": null, - "id": 3865, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3826, - "src": "26741:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26732:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3867, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "26732:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 3869, - "indexExpression": { - "argumentTypes": null, - "id": 3868, - "name": "_issuerIdToChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "26760:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "26732:46:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3870, - "name": "_newIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3832, - "src": "26781:10:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "26732:59:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 3872, - "nodeType": "ExpressionStatement", - "src": "26732:59:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3874, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3826, - "src": "26826:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3875, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3824, - "src": "26837:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3876, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "26846:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3878, - "indexExpression": { - "argumentTypes": null, - "id": 3877, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3826, - "src": "26855:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "26846:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3879, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "26846:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - ], - "id": 3873, - "name": "BountyIssuersUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4486, - "src": "26805:20:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_payable_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,address payable[] memory)" - } - }, - "id": 3880, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "26805:69:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3881, - "nodeType": "EmitStatement", - "src": "26800:74:5" - } - ] - }, - "documentation": "@param _newIssuer the address of the new issuer", - "id": 3883, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3835, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3824, - "src": "26483:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3836, - "modifierName": { - "argumentTypes": null, - "id": 3834, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "26469:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "26469:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3838, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3826, - "src": "26522:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3839, - "modifierName": { - "argumentTypes": null, - "id": 3837, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "26497:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "26497:35:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3841, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3826, - "src": "26563:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3842, - "name": "_issuerIdToChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3830, - "src": "26574:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3843, - "modifierName": { - "argumentTypes": null, - "id": 3840, - "name": "validateIssuerArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2650, - "src": "26538:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", - "typeString": "modifier (uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "26538:54:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3845, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3824, - "src": "26609:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3846, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3826, - "src": "26618:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3847, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3828, - "src": "26629:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3848, - "modifierName": { - "argumentTypes": null, - "id": 3844, - "name": "onlyIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2689, - "src": "26598:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", - "typeString": "modifier (address,uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "26598:41:5" - } - ], - "name": "changeIssuer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3833, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3824, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3883, - "src": "26331:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3823, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26331:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3826, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3883, - "src": "26353:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3825, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "26353:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3828, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 3883, - "src": "26374:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3827, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "26374:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3830, - "name": "_issuerIdToChange", - "nodeType": "VariableDeclaration", - "scope": 3883, - "src": "26395:22:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3829, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "26395:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3832, - "name": "_newIssuer", - "nodeType": "VariableDeclaration", - "scope": 3883, - "src": "26424:26:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 3831, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "26424:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "26324:127:5" - }, - "returnParameters": { - "id": 3849, - "nodeType": "ParameterList", - "parameters": [], - "src": "26643:0:5" - }, - "scope": 4512, - "src": "26303:577:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 3929, - "nodeType": "Block", - "src": "27728:154:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 3918, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3911, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "27735:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3913, - "indexExpression": { - "argumentTypes": null, - "id": 3912, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3887, - "src": "27744:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27735:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3914, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "approvers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2519, - "src": "27735:29:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3916, - "indexExpression": { - "argumentTypes": null, - "id": 3915, - "name": "_approverId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3891, - "src": "27765:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "27735:42:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3917, - "name": "_approver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3893, - "src": "27780:9:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "27735:54:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3919, - "nodeType": "ExpressionStatement", - "src": "27735:54:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3921, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3887, - "src": "27826:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3922, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3885, - "src": "27837:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3923, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "27846:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3925, - "indexExpression": { - "argumentTypes": null, - "id": 3924, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3887, - "src": "27855:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "27846:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3926, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "approvers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2519, - "src": "27846:29:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - ], - "id": 3920, - "name": "BountyApproversUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4495, - "src": "27803:22:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,address[] memory)" - } - }, - "id": 3927, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "27803:73:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3928, - "nodeType": "EmitStatement", - "src": "27798:78:5" - } - ] - }, - "documentation": "@param _approver the address of the new approver", - "id": 3930, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3896, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3885, - "src": "27572:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3897, - "modifierName": { - "argumentTypes": null, - "id": 3895, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "27558:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "27558:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3899, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3887, - "src": "27611:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3900, - "modifierName": { - "argumentTypes": null, - "id": 3898, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "27586:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "27586:35:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3902, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3885, - "src": "27638:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3903, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3887, - "src": "27647:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3904, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3889, - "src": "27658:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3905, - "modifierName": { - "argumentTypes": null, - "id": 3901, - "name": "onlyIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2689, - "src": "27627:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", - "typeString": "modifier (address,uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "27627:41:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3907, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3887, - "src": "27701:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3908, - "name": "_approverId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3891, - "src": "27712:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3909, - "modifierName": { - "argumentTypes": null, - "id": 3906, - "name": "validateApproverArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2668, - "src": "27674:26:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", - "typeString": "modifier (uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "27674:50:5" - } - ], - "name": "changeApprover", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3894, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3885, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 3930, - "src": "27425:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3884, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27425:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3887, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 3930, - "src": "27447:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3886, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "27447:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3889, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 3930, - "src": "27468:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3888, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "27468:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3891, - "name": "_approverId", - "nodeType": "VariableDeclaration", - "scope": 3930, - "src": "27489:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3890, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "27489:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3893, - "name": "_approver", - "nodeType": "VariableDeclaration", - "scope": 3930, - "src": "27512:25:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 3892, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "27512:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "27418:120:5" - }, - "returnParameters": { - "id": 3910, - "nodeType": "ParameterList", - "parameters": [], - "src": "27728:0:5" - }, - "scope": 4512, - "src": "27395:487:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 4015, - "nodeType": "Block", - "src": "28769:489:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3956, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3954, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3934, - "src": "28784:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "id": 3955, - "name": "numBounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2551, - "src": "28796:11:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "28784:23:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3953, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "28776:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3957, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28776:32:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3958, - "nodeType": "ExpressionStatement", - "src": "28776:32:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3966, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3960, - "name": "_approverIdToChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3940, - "src": "28823:19:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3961, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "28845:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3963, - "indexExpression": { - "argumentTypes": null, - "id": 3962, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3934, - "src": "28854:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "28845:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3964, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "approvers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2519, - "src": "28845:29:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3965, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "28845:36:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "28823:58:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3959, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "28815:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3967, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28815:67:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3968, - "nodeType": "ExpressionStatement", - "src": "28815:67:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 3976, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 3970, - "name": "_issuerIdToChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3938, - "src": "28897:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3971, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "28917:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3973, - "indexExpression": { - "argumentTypes": null, - "id": 3972, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3934, - "src": "28926:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "28917:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3974, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "28917:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 3975, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "28917:34:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "28897:54:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 3969, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "28889:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 3977, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "28889:63:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 3978, - "nodeType": "ExpressionStatement", - "src": "28889:63:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 3986, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3979, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "28961:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3981, - "indexExpression": { - "argumentTypes": null, - "id": 3980, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3934, - "src": "28970:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "28961:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3982, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "28961:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 3984, - "indexExpression": { - "argumentTypes": null, - "id": 3983, - "name": "_issuerIdToChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3938, - "src": "28989:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "28961:46:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3985, - "name": "_issuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "29010:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "28961:56:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 3987, - "nodeType": "ExpressionStatement", - "src": "28961:56:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 3995, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 3988, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "29024:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 3990, - "indexExpression": { - "argumentTypes": null, - "id": 3989, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3934, - "src": "29033:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29024:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 3991, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "approvers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2519, - "src": "29024:29:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 3993, - "indexExpression": { - "argumentTypes": null, - "id": 3992, - "name": "_approverIdToChange", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3940, - "src": "29054:19:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "29024:50:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 3994, - "name": "_issuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3942, - "src": "29077:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "29024:60:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 3996, - "nodeType": "ExpressionStatement", - "src": "29024:60:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 3998, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3934, - "src": "29119:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3999, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3932, - "src": "29130:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4000, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "29139:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4002, - "indexExpression": { - "argumentTypes": null, - "id": 4001, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3934, - "src": "29148:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29139:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4003, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "29139:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - ], - "id": 3997, - "name": "BountyIssuersUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4486, - "src": "29098:20:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_payable_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,address payable[] memory)" - } - }, - "id": 4004, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29098:69:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4005, - "nodeType": "EmitStatement", - "src": "29093:74:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4007, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3934, - "src": "29202:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4008, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3932, - "src": "29213:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4009, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "29222:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4011, - "indexExpression": { - "argumentTypes": null, - "id": 4010, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3934, - "src": "29231:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "29222:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4012, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "approvers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2519, - "src": "29222:29:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - ], - "id": 4006, - "name": "BountyApproversUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4495, - "src": "29179:22:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,address[] memory)" - } - }, - "id": 4013, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "29179:73:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4014, - "nodeType": "EmitStatement", - "src": "29174:78:5" - } - ] - }, - "documentation": "@param _issuer the address of the new approver", - "id": 4016, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 3945, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3932, - "src": "28710:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 3946, - "modifierName": { - "argumentTypes": null, - "id": 3944, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "28696:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "28696:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 3948, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3932, - "src": "28735:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 3949, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3934, - "src": "28744:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 3950, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 3936, - "src": "28755:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 3951, - "modifierName": { - "argumentTypes": null, - "id": 3947, - "name": "onlyIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2689, - "src": "28724:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", - "typeString": "modifier (address,uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "28724:41:5" - } - ], - "name": "changeIssuerAndApprover", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 3943, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 3932, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 4016, - "src": "28528:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 3931, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28528:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3934, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4016, - "src": "28550:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3933, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "28550:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3936, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4016, - "src": "28571:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3935, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "28571:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3938, - "name": "_issuerIdToChange", - "nodeType": "VariableDeclaration", - "scope": 4016, - "src": "28592:22:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3937, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "28592:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3940, - "name": "_approverIdToChange", - "nodeType": "VariableDeclaration", - "scope": 4016, - "src": "28621:24:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 3939, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "28621:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 3942, - "name": "_issuer", - "nodeType": "VariableDeclaration", - "scope": 4016, - "src": "28652:23:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 3941, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "28652:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "28521:155:5" - }, - "returnParameters": { - "id": 3952, - "nodeType": "ParameterList", - "parameters": [], - "src": "28769:0:5" - }, - "scope": 4512, - "src": "28489:769:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 4048, - "nodeType": "Block", - "src": "30049:164:5", - "statements": [ - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4043, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4020, - "src": "30079:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4044, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4018, - "src": "30090:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4045, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4024, - "src": "30099:5:5", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "id": 4042, - "name": "BountyDataChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4503, - "src": "30061:17:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,string memory)" - } - }, - "id": 4046, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "30061:44:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4047, - "nodeType": "EmitStatement", - "src": "30056:49:5" - } - ] - }, - "documentation": "@param _data the new IPFS hash representing the JSON object storing the details of the bounty (see docs for schema details)", - "id": 4049, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 4027, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4018, - "src": "29897:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 4028, - "modifierName": { - "argumentTypes": null, - "id": 4026, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "29883:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "29883:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 4030, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4020, - "src": "29936:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4031, - "modifierName": { - "argumentTypes": null, - "id": 4029, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "29911:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "29911:35:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 4033, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4020, - "src": "29977:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4034, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4022, - "src": "29988:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4035, - "modifierName": { - "argumentTypes": null, - "id": 4032, - "name": "validateIssuerArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2650, - "src": "29952:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", - "typeString": "modifier (uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "29952:46:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 4037, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4018, - "src": "30015:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4038, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4020, - "src": "30024:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4039, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4022, - "src": "30035:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4040, - "modifierName": { - "argumentTypes": null, - "id": 4036, - "name": "onlyIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2689, - "src": "30004:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", - "typeString": "modifier (address,uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "30004:41:5" - } - ], - "name": "changeData", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4025, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4018, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 4049, - "src": "29781:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4017, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "29781:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4020, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4049, - "src": "29803:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4019, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "29803:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4022, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4049, - "src": "29824:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4021, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "29824:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4024, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4049, - "src": "29845:19:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4023, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "29845:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "29774:91:5" - }, - "returnParameters": { - "id": 4041, - "nodeType": "ParameterList", - "parameters": [], - "src": "30049:0:5" - }, - "scope": 4512, - "src": "29755:458:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4088, - "nodeType": "Block", - "src": "30969:119:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 4080, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4075, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "30976:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4077, - "indexExpression": { - "argumentTypes": null, - "id": 4076, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4053, - "src": "30985:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "30976:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4078, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "deadline", - "nodeType": "MemberAccess", - "referencedDeclaration": 2521, - "src": "30976:28:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 4079, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4057, - "src": "31007:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "30976:40:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4081, - "nodeType": "ExpressionStatement", - "src": "30976:40:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4083, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4053, - "src": "31052:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4084, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4051, - "src": "31063:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4085, - "name": "_deadline", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4057, - "src": "31072:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 4082, - "name": "BountyDeadlineChanged", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4511, - "src": "31030:21:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (uint256,address,uint256)" - } - }, - "id": 4086, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31030:52:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4087, - "nodeType": "EmitStatement", - "src": "31025:57:5" - } - ] - }, - "documentation": "@param _deadline the new timestamp which will become the deadline of the bounty", - "id": 4089, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 4060, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4051, - "src": "30817:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 4061, - "modifierName": { - "argumentTypes": null, - "id": 4059, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "30803:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "30803:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 4063, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4053, - "src": "30856:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4064, - "modifierName": { - "argumentTypes": null, - "id": 4062, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "30831:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "30831:35:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 4066, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4053, - "src": "30897:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4067, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4055, - "src": "30908:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4068, - "modifierName": { - "argumentTypes": null, - "id": 4065, - "name": "validateIssuerArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2650, - "src": "30872:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", - "typeString": "modifier (uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "30872:46:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 4070, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4051, - "src": "30935:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4071, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4053, - "src": "30944:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4072, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4055, - "src": "30955:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4073, - "modifierName": { - "argumentTypes": null, - "id": 4069, - "name": "onlyIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2689, - "src": "30924:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", - "typeString": "modifier (address,uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "30924:41:5" - } - ], - "name": "changeDeadline", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4058, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4051, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 4089, - "src": "30704:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4050, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "30704:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4053, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4089, - "src": "30726:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4052, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "30726:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4055, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4089, - "src": "30747:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4054, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "30747:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4057, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 4089, - "src": "30768:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4056, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "30768:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "30697:86:5" - }, - "returnParameters": { - "id": 4074, - "nodeType": "ParameterList", - "parameters": [], - "src": "30969:0:5" - }, - "scope": 4512, - "src": "30674:414:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 4148, - "nodeType": "Block", - "src": "31848:199:5", - "statements": [ - { - "body": { - "id": 4137, - "nodeType": "Block", - "src": "31897:62:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4132, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4098, - "src": "31939:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - "id": 4134, - "indexExpression": { - "argumentTypes": null, - "id": 4133, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4117, - "src": "31948:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31939:11:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4127, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "31906:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4129, - "indexExpression": { - "argumentTypes": null, - "id": 4128, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4093, - "src": "31915:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "31906:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4130, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "31906:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - }, - "id": 4131, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31906:32:5", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_payable_$returns$_t_uint256_$", - "typeString": "function (address payable) returns (uint256)" - } - }, - "id": 4135, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31906:45:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4136, - "nodeType": "ExpressionStatement", - "src": "31906:45:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4123, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4120, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4117, - "src": "31872:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4121, - "name": "_issuers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4098, - "src": "31876:8:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[] memory" - } - }, - "id": 4122, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "31876:15:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "31872:19:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4138, - "initializationExpression": { - "assignments": [ - 4117 - ], - "declarations": [ - { - "constant": false, - "id": 4117, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 4138, - "src": "31860:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4116, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "31860:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4119, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 4118, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "31869:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "31860:10:5" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 4125, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "31893:3:5", - "subExpression": { - "argumentTypes": null, - "id": 4124, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4117, - "src": "31893:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4126, - "nodeType": "ExpressionStatement", - "src": "31893:3:5" - }, - "nodeType": "ForStatement", - "src": "31855:104:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4140, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4093, - "src": "31993:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4141, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4091, - "src": "32004:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4142, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "32013:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4144, - "indexExpression": { - "argumentTypes": null, - "id": 4143, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4093, - "src": "32022:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32013:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4145, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "issuers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2516, - "src": "32013:27:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage", - "typeString": "address payable[] storage ref" - } - ], - "id": 4139, - "name": "BountyIssuersUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4486, - "src": "31972:20:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_payable_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,address payable[] memory)" - } - }, - "id": 4146, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "31972:69:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4147, - "nodeType": "EmitStatement", - "src": "31967:74:5" - } - ] - }, - "documentation": "@param _issuers the array of addresses to add to the list of valid issuers", - "id": 4149, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 4101, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4091, - "src": "31696:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 4102, - "modifierName": { - "argumentTypes": null, - "id": 4100, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "31682:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "31682:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 4104, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4093, - "src": "31735:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4105, - "modifierName": { - "argumentTypes": null, - "id": 4103, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "31710:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "31710:35:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 4107, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4093, - "src": "31776:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4108, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4095, - "src": "31787:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4109, - "modifierName": { - "argumentTypes": null, - "id": 4106, - "name": "validateIssuerArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2650, - "src": "31751:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", - "typeString": "modifier (uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "31751:46:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 4111, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4091, - "src": "31814:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4112, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4093, - "src": "31823:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4113, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4095, - "src": "31834:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4114, - "modifierName": { - "argumentTypes": null, - "id": 4110, - "name": "onlyIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2689, - "src": "31803:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", - "typeString": "modifier (address,uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "31803:41:5" - } - ], - "name": "addIssuers", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4099, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4091, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 4149, - "src": "31566:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4090, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "31566:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4093, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4149, - "src": "31588:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4092, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "31588:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4095, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4149, - "src": "31609:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4094, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "31609:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4098, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 4149, - "src": "31630:33:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4096, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "31630:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4097, - "length": null, - "nodeType": "ArrayTypeName", - "src": "31630:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "31559:105:5" - }, - "returnParameters": { - "id": 4115, - "nodeType": "ParameterList", - "parameters": [], - "src": "31848:0:5" - }, - "scope": 4512, - "src": "31540:507:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4208, - "nodeType": "Block", - "src": "32811:209:5", - "statements": [ - { - "body": { - "id": 4197, - "nodeType": "Block", - "src": "32862:66:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4192, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4158, - "src": "32906:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 4194, - "indexExpression": { - "argumentTypes": null, - "id": 4193, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4177, - "src": "32917:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32906:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4187, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "32871:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4189, - "indexExpression": { - "argumentTypes": null, - "id": 4188, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4153, - "src": "32880:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32871:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4190, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "approvers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2519, - "src": "32871:29:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - }, - "id": 4191, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "push", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32871:34:5", - "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_address_$returns$_t_uint256_$", - "typeString": "function (address) returns (uint256)" - } - }, - "id": 4195, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32871:49:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4196, - "nodeType": "ExpressionStatement", - "src": "32871:49:5" - } - ] - }, - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4183, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4180, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4177, - "src": "32835:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "<", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 4181, - "name": "_approvers", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4158, - "src": "32839:10:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[] memory" - } - }, - "id": 4182, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "length", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "32839:17:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "32835:21:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4198, - "initializationExpression": { - "assignments": [ - 4177 - ], - "declarations": [ - { - "constant": false, - "id": 4177, - "name": "i", - "nodeType": "VariableDeclaration", - "scope": 4198, - "src": "32823:6:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4176, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "32823:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 4179, - "initialValue": { - "argumentTypes": null, - "hexValue": "30", - "id": 4178, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "32832:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "nodeType": "VariableDeclarationStatement", - "src": "32823:10:5" - }, - "loopExpression": { - "expression": { - "argumentTypes": null, - "id": 4185, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "32858:3:5", - "subExpression": { - "argumentTypes": null, - "id": 4184, - "name": "i", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4177, - "src": "32858:1:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4186, - "nodeType": "ExpressionStatement", - "src": "32858:3:5" - }, - "nodeType": "ForStatement", - "src": "32818:110:5" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4200, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4153, - "src": "32964:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4201, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4151, - "src": "32975:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4202, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "32984:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4204, - "indexExpression": { - "argumentTypes": null, - "id": 4203, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4153, - "src": "32993:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "32984:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4205, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "approvers", - "nodeType": "MemberAccess", - "referencedDeclaration": 2519, - "src": "32984:29:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_array$_t_address_$dyn_storage", - "typeString": "address[] storage ref" - } - ], - "id": 4199, - "name": "BountyApproversUpdated", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4495, - "src": "32941:22:5", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$__$", - "typeString": "function (uint256,address,address[] memory)" - } - }, - "id": 4206, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "32941:73:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4207, - "nodeType": "EmitStatement", - "src": "32936:78:5" - } - ] - }, - "documentation": "@param _approvers the array of addresses to add to the list of valid approvers", - "id": 4209, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 4161, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4151, - "src": "32659:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "id": 4162, - "modifierName": { - "argumentTypes": null, - "id": 4160, - "name": "senderIsValid", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2805, - "src": "32645:13:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$", - "typeString": "modifier (address)" - } - }, - "nodeType": "ModifierInvocation", - "src": "32645:22:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 4164, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4153, - "src": "32698:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4165, - "modifierName": { - "argumentTypes": null, - "id": 4163, - "name": "validateBountyArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2596, - "src": "32673:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "32673:35:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 4167, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4153, - "src": "32739:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4168, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4155, - "src": "32750:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4169, - "modifierName": { - "argumentTypes": null, - "id": 4166, - "name": "validateIssuerArrayIndex", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2650, - "src": "32714:24:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$_t_uint256_$", - "typeString": "modifier (uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "32714:46:5" - }, - { - "arguments": [ - { - "argumentTypes": null, - "id": 4171, - "name": "_sender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4151, - "src": "32777:7:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4172, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4153, - "src": "32786:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 4173, - "name": "_issuerId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4155, - "src": "32797:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 4174, - "modifierName": { - "argumentTypes": null, - "id": 4170, - "name": "onlyIssuer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2689, - "src": "32766:10:5", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_address_$_t_uint256_$_t_uint256_$", - "typeString": "modifier (address,uint256,uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "32766:41:5" - } - ], - "name": "addApprovers", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4159, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4151, - "name": "_sender", - "nodeType": "VariableDeclaration", - "scope": 4209, - "src": "32535:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4150, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "32535:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4153, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4209, - "src": "32557:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4152, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "32557:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4155, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4209, - "src": "32578:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4154, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "32578:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4158, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 4209, - "src": "32599:27:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4156, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "32599:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4157, - "length": null, - "nodeType": "ArrayTypeName", - "src": "32599:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "32528:99:5" - }, - "returnParameters": { - "id": 4175, - "nodeType": "ParameterList", - "parameters": [], - "src": "32811:0:5" - }, - "scope": 4512, - "src": "32507:513:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 4220, - "nodeType": "Block", - "src": "33270:39:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4216, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "33284:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4218, - "indexExpression": { - "argumentTypes": null, - "id": 4217, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4211, - "src": "33293:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33284:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "functionReturnParameters": 4215, - "id": 4219, - "nodeType": "Return", - "src": "33277:26:5" - } - ] - }, - "documentation": "@return Returns a tuple for the bounty", - "id": 4221, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4212, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4211, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4221, - "src": "33198:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4210, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "33198:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33197:16:5" - }, - "returnParameters": { - "id": 4215, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4214, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4221, - "src": "33252:13:5", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_memory_ptr", - "typeString": "struct StandardBounties.Bounty" - }, - "typeName": { - "contractScope": null, - "id": 4213, - "name": "Bounty", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 2536, - "src": "33252:6:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage_ptr", - "typeString": "struct StandardBounties.Bounty" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33251:15:5" - }, - "scope": 4512, - "src": "33179:130:5", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 4363, - "nodeType": "Block", - "src": "33409:1101:5", - "statements": [ - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4230, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "33420:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4232, - "indexExpression": { - "argumentTypes": null, - "id": 4231, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "33429:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33420:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4233, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenVersion", - "nodeType": "MemberAccess", - "referencedDeclaration": 2525, - "src": "33420:32:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4234, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33456:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33420:37:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4276, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4271, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "33707:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4273, - "indexExpression": { - "argumentTypes": null, - "id": 4272, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "33716:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33707:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4274, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenVersion", - "nodeType": "MemberAccess", - "referencedDeclaration": 2525, - "src": "33707:32:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "3230", - "id": 4275, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33743:2:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_20_by_1", - "typeString": "int_const 20" - }, - "value": "20" - }, - "src": "33707:38:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4324, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4319, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "34043:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4321, - "indexExpression": { - "argumentTypes": null, - "id": 4320, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "34052:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "34043:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4322, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "tokenVersion", - "nodeType": "MemberAccess", - "referencedDeclaration": 2525, - "src": "34043:32:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "hexValue": "373231", - "id": 4323, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34079:3:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_721_by_1", - "typeString": "int_const 721" - }, - "value": "721" - }, - "src": "34043:39:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": { - "id": 4359, - "nodeType": "Block", - "src": "34480:25:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 4356, - "name": "revert", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10416, - 10417 - ], - "referencedDeclaration": 10416, - "src": "34489:6:5", - "typeDescriptions": { - "typeIdentifier": "t_function_revert_pure$__$returns$__$", - "typeString": "function () pure" - } - }, - "id": 4357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34489:8:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4358, - "nodeType": "ExpressionStatement", - "src": "34489:8:5" - } - ] - }, - "id": 4360, - "nodeType": "IfStatement", - "src": "34039:466:5", - "trueBody": { - "id": 4355, - "nodeType": "Block", - "src": "34083:391:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4326, - "name": "tokenBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2561, - "src": "34100:13:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(uint256 => bool))" - } - }, - "id": 4328, - "indexExpression": { - "argumentTypes": null, - "id": 4327, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "34114:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "34100:24:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 4330, - "indexExpression": { - "argumentTypes": null, - "id": 4329, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4227, - "src": "34125:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "34100:33:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4325, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "34092:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34092:42:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4332, - "nodeType": "ExpressionStatement", - "src": "34092:42:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 4339, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4333, - "name": "tokenBalances", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2561, - "src": "34145:13:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_bool_$_$", - "typeString": "mapping(uint256 => mapping(uint256 => bool))" - } - }, - "id": 4336, - "indexExpression": { - "argumentTypes": null, - "id": 4334, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "34159:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "34145:24:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_bool_$", - "typeString": "mapping(uint256 => bool)" - } - }, - "id": 4337, - "indexExpression": { - "argumentTypes": null, - "id": 4335, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4227, - "src": "34170:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "34145:33:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 4338, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "34181:5:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "src": "34145:41:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 4340, - "nodeType": "ExpressionStatement", - "src": "34145:41:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4349, - "name": "this", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10465, - "src": "34318:4:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_contract$_StandardBounties_$4512", - "typeString": "contract StandardBounties" - } - ], - "id": 4348, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "34310:7:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 4350, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34310:13:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 4351, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4225, - "src": "34389:3:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 4352, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4227, - "src": "34458:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4342, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "34270:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4344, - "indexExpression": { - "argumentTypes": null, - "id": 4343, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "34279:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "34270:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4345, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 2523, - "src": "34270:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4341, - "name": "ERC721BasicToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5764, - "src": "34253:16:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721BasicToken_$5764_$", - "typeString": "type(contract ERC721BasicToken)" - } - }, - "id": 4346, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34253:43:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", - "typeString": "contract ERC721BasicToken" - } - }, - "id": 4347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transferFrom", - "nodeType": "MemberAccess", - "referencedDeclaration": 5485, - "src": "34253:56:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256) external" - } - }, - "id": 4353, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "34253:213:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4354, - "nodeType": "ExpressionStatement", - "src": "34253:213:5" - } - ] - } - }, - "id": 4361, - "nodeType": "IfStatement", - "src": "33703:802:5", - "trueBody": { - "id": 4318, - "nodeType": "Block", - "src": "33746:287:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4278, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4227, - "src": "33763:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4279, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33773:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33763:11:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4277, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "33755:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4281, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33755:20:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4282, - "nodeType": "ExpressionStatement", - "src": "33755:20:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4289, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4284, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "33825:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4286, - "indexExpression": { - "argumentTypes": null, - "id": 4285, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "33834:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33825:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4287, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2527, - "src": "33825:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 4288, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4227, - "src": "33856:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33825:38:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4283, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "33817:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4290, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33817:47:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4291, - "nodeType": "ExpressionStatement", - "src": "33817:47:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 4303, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4292, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "33875:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4294, - "indexExpression": { - "argumentTypes": null, - "id": 4293, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "33884:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33875:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4295, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2527, - "src": "33875:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4301, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4227, - "src": "33937:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4296, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "33905:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4298, - "indexExpression": { - "argumentTypes": null, - "id": 4297, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "33914:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33905:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4299, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2527, - "src": "33905:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4300, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "33905:31:5", - "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": 4302, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33905:40:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33875:70:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4304, - "nodeType": "ExpressionStatement", - "src": "33875:70:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4313, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4225, - "src": "34011:3:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 4314, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4227, - "src": "34016:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4307, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "33975:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4309, - "indexExpression": { - "argumentTypes": null, - "id": 4308, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "33984:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33975:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4310, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "token", - "nodeType": "MemberAccess", - "referencedDeclaration": 2523, - "src": "33975:25:5", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 4306, - "name": "ERC20Token", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4989, - "src": "33964:10:5", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC20Token_$4989_$", - "typeString": "type(contract ERC20Token)" - } - }, - "id": 4311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33964:37:5", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20Token_$4989", - "typeString": "contract ERC20Token" - } - }, - "id": 4312, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 4858, - "src": "33964:46:5", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) external returns (bool)" - } - }, - "id": 4315, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33964:60:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4305, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "33956:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4316, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33956:69:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4317, - "nodeType": "ExpressionStatement", - "src": "33956:69:5" - } - ] - } - }, - "id": 4362, - "nodeType": "IfStatement", - "src": "33416:1089:5", - "trueBody": { - "id": 4270, - "nodeType": "Block", - "src": "33458:239:5", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4239, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 4237, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4227, - "src": "33475:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 4238, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "33485:1:5", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "33475:11:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4236, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "33467:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4240, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33467:20:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4241, - "nodeType": "ExpressionStatement", - "src": "33467:20:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 4248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4243, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "33537:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4245, - "indexExpression": { - "argumentTypes": null, - "id": 4244, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "33546:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33537:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4246, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2527, - "src": "33537:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "argumentTypes": null, - "id": 4247, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4227, - "src": "33568:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33537:38:5", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 4242, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "33529:7:5", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 4249, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33529:47:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4250, - "nodeType": "ExpressionStatement", - "src": "33529:47:5" - }, - { - "expression": { - "argumentTypes": null, - "id": 4262, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4251, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "33587:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4253, - "indexExpression": { - "argumentTypes": null, - "id": 4252, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "33596:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33587:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4254, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2527, - "src": "33587:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4260, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4227, - "src": "33649:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 4255, - "name": "bounties", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2555, - "src": "33617:8:5", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Bounty_$2536_storage_$", - "typeString": "mapping(uint256 => struct StandardBounties.Bounty storage ref)" - } - }, - "id": 4257, - "indexExpression": { - "argumentTypes": null, - "id": 4256, - "name": "_bountyId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4223, - "src": "33626:9:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "33617:19:5", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Bounty_$2536_storage", - "typeString": "struct StandardBounties.Bounty storage ref" - } - }, - "id": 4258, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "balance", - "nodeType": "MemberAccess", - "referencedDeclaration": 2527, - "src": "33617:27:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4259, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "33617:31:5", - "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": 4261, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33617:40:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "33587:70:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4263, - "nodeType": "ExpressionStatement", - "src": "33587:70:5" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 4267, - "name": "_amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4227, - "src": "33681:7:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 4264, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 4225, - "src": "33668:3:5", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4266, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "33668:12:5", - "typeDescriptions": { - "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 4268, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "33668:21:5", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 4269, - "nodeType": "ExpressionStatement", - "src": "33668:21:5" - } - ] - } - } - ] - }, - "documentation": null, - "id": 4364, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transferTokens", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4228, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4223, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4364, - "src": "33341:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4222, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "33341:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4225, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 4364, - "src": "33357:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 4224, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "33357:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4227, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 4364, - "src": "33378:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4226, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "33378:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "33340:51:5" - }, - "returnParameters": { - "id": 4229, - "nodeType": "ParameterList", - "parameters": [], - "src": "33409:0:5" - }, - "scope": 4512, - "src": "33317:1193:5", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "anonymous": false, - "documentation": null, - "id": 4384, - "name": "BountyIssued", - "nodeType": "EventDefinition", - "parameters": { - "id": 4383, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4366, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4384, - "src": "34563:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4365, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "34563:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4368, - "indexed": false, - "name": "_creator", - "nodeType": "VariableDeclaration", - "scope": 4384, - "src": "34579:24:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 4367, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "34579:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4371, - "indexed": false, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 4384, - "src": "34605:26:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4369, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "34605:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4370, - "length": null, - "nodeType": "ArrayTypeName", - "src": "34605:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4374, - "indexed": false, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 4384, - "src": "34633:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4372, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "34633:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4373, - "length": null, - "nodeType": "ArrayTypeName", - "src": "34633:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4376, - "indexed": false, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4384, - "src": "34655:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4375, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "34655:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4378, - "indexed": false, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 4384, - "src": "34669:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4377, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "34669:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4380, - "indexed": false, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 4384, - "src": "34685:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4379, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "34685:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4382, - "indexed": false, - "name": "_tokenVersion", - "nodeType": "VariableDeclaration", - "scope": 4384, - "src": "34701:18:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4381, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "34701:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34562:158:5" - }, - "src": "34544:177:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4394, - "name": "ContributionAdded", - "nodeType": "EventDefinition", - "parameters": { - "id": 4393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4386, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4394, - "src": "34749:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4385, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "34749:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4388, - "indexed": false, - "name": "_contributionId", - "nodeType": "VariableDeclaration", - "scope": 4394, - "src": "34765:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4387, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "34765:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4390, - "indexed": false, - "name": "_contributor", - "nodeType": "VariableDeclaration", - "scope": 4394, - "src": "34787:28:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 4389, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "34787:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4392, - "indexed": false, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 4394, - "src": "34817:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4391, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "34817:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34748:82:5" - }, - "src": "34725:106:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4400, - "name": "ContributionRefunded", - "nodeType": "EventDefinition", - "parameters": { - "id": 4399, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4396, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4400, - "src": "34862:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4395, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "34862:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4398, - "indexed": false, - "name": "_contributionId", - "nodeType": "VariableDeclaration", - "scope": 4400, - "src": "34878:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4397, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "34878:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34861:38:5" - }, - "src": "34835:65:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4409, - "name": "ContributionsRefunded", - "nodeType": "EventDefinition", - "parameters": { - "id": 4408, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4402, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4409, - "src": "34932:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4401, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "34932:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4404, - "indexed": false, - "name": "_issuer", - "nodeType": "VariableDeclaration", - "scope": 4409, - "src": "34948:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4403, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "34948:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4407, - "indexed": false, - "name": "_contributionIds", - "nodeType": "VariableDeclaration", - "scope": 4409, - "src": "34965:23:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 4405, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "34965:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4406, - "length": null, - "nodeType": "ArrayTypeName", - "src": "34965:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "34931:58:5" - }, - "src": "34904:86:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4418, - "name": "BountyDrained", - "nodeType": "EventDefinition", - "parameters": { - "id": 4417, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4411, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4418, - "src": "35014:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4410, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35014:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4413, - "indexed": false, - "name": "_issuer", - "nodeType": "VariableDeclaration", - "scope": 4418, - "src": "35030:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4412, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35030:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4416, - "indexed": false, - "name": "_amounts", - "nodeType": "VariableDeclaration", - "scope": 4418, - "src": "35047:15:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 4414, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35047:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4415, - "length": null, - "nodeType": "ArrayTypeName", - "src": "35047:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35013:50:5" - }, - "src": "34994:70:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4426, - "name": "ActionPerformed", - "nodeType": "EventDefinition", - "parameters": { - "id": 4425, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4420, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4426, - "src": "35090:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4419, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35090:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4422, - "indexed": false, - "name": "_fulfiller", - "nodeType": "VariableDeclaration", - "scope": 4426, - "src": "35106:18:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4421, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35106:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4424, - "indexed": false, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4426, - "src": "35126:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4423, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35126:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35089:50:5" - }, - "src": "35068:72:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4439, - "name": "BountyFulfilled", - "nodeType": "EventDefinition", - "parameters": { - "id": 4438, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4428, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4439, - "src": "35166:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4427, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35166:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4430, - "indexed": false, - "name": "_fulfillmentId", - "nodeType": "VariableDeclaration", - "scope": 4439, - "src": "35182:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4429, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35182:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4433, - "indexed": false, - "name": "_fulfillers", - "nodeType": "VariableDeclaration", - "scope": 4439, - "src": "35203:29:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4431, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35203:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4432, - "length": null, - "nodeType": "ArrayTypeName", - "src": "35203:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4435, - "indexed": false, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4439, - "src": "35234:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4434, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35234:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4437, - "indexed": false, - "name": "_submitter", - "nodeType": "VariableDeclaration", - "scope": 4439, - "src": "35248:18:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4436, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35248:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35165:102:5" - }, - "src": "35144:124:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4450, - "name": "FulfillmentUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 4449, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4441, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4450, - "src": "35297:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4440, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35297:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4443, - "indexed": false, - "name": "_fulfillmentId", - "nodeType": "VariableDeclaration", - "scope": 4450, - "src": "35313:19:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4442, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35313:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4446, - "indexed": false, - "name": "_fulfillers", - "nodeType": "VariableDeclaration", - "scope": 4450, - "src": "35334:29:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4444, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35334:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4445, - "length": null, - "nodeType": "ArrayTypeName", - "src": "35334:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4448, - "indexed": false, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4450, - "src": "35365:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4447, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35365:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35296:82:5" - }, - "src": "35272:107:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4461, - "name": "FulfillmentAccepted", - "nodeType": "EventDefinition", - "parameters": { - "id": 4460, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4452, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4461, - "src": "35409:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4451, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35409:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4454, - "indexed": false, - "name": "_fulfillmentId", - "nodeType": "VariableDeclaration", - "scope": 4461, - "src": "35425:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4453, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35425:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4456, - "indexed": false, - "name": "_approver", - "nodeType": "VariableDeclaration", - "scope": 4461, - "src": "35447:17:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4455, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35447:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4459, - "indexed": false, - "name": "_tokenAmounts", - "nodeType": "VariableDeclaration", - "scope": 4461, - "src": "35466:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 4457, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35466:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4458, - "length": null, - "nodeType": "ArrayTypeName", - "src": "35466:6:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35408:79:5" - }, - "src": "35383:105:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4477, - "name": "BountyChanged", - "nodeType": "EventDefinition", - "parameters": { - "id": 4476, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4463, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4477, - "src": "35512:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4462, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35512:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4465, - "indexed": false, - "name": "_changer", - "nodeType": "VariableDeclaration", - "scope": 4477, - "src": "35528:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4464, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35528:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4468, - "indexed": false, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 4477, - "src": "35546:26:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4466, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35546:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4467, - "length": null, - "nodeType": "ArrayTypeName", - "src": "35546:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4471, - "indexed": false, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 4477, - "src": "35574:28:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4469, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35574:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4470, - "length": null, - "nodeType": "ArrayTypeName", - "src": "35574:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4473, - "indexed": false, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4477, - "src": "35604:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4472, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35604:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4475, - "indexed": false, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 4477, - "src": "35618:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4474, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35618:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35511:122:5" - }, - "src": "35492:142:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4486, - "name": "BountyIssuersUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 4485, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4479, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4486, - "src": "35665:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4478, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35665:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4481, - "indexed": false, - "name": "_changer", - "nodeType": "VariableDeclaration", - "scope": 4486, - "src": "35681:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4480, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35681:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4484, - "indexed": false, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 4486, - "src": "35699:26:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4482, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35699:15:5", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4483, - "length": null, - "nodeType": "ArrayTypeName", - "src": "35699:17:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35664:62:5" - }, - "src": "35638:89:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4495, - "name": "BountyApproversUpdated", - "nodeType": "EventDefinition", - "parameters": { - "id": 4494, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4488, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4495, - "src": "35760:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4487, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35760:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4490, - "indexed": false, - "name": "_changer", - "nodeType": "VariableDeclaration", - "scope": 4495, - "src": "35776:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4489, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35776:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4493, - "indexed": false, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 4495, - "src": "35794:20:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4491, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35794:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4492, - "length": null, - "nodeType": "ArrayTypeName", - "src": "35794:9:5", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35759:56:5" - }, - "src": "35731:85:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4503, - "name": "BountyDataChanged", - "nodeType": "EventDefinition", - "parameters": { - "id": 4502, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4497, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4503, - "src": "35844:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4496, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35844:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4499, - "indexed": false, - "name": "_changer", - "nodeType": "VariableDeclaration", - "scope": 4503, - "src": "35860:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4498, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35860:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4501, - "indexed": false, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4503, - "src": "35878:12:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4500, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "35878:6:5", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35843:48:5" - }, - "src": "35820:72:5" - }, - { - "anonymous": false, - "documentation": null, - "id": 4511, - "name": "BountyDeadlineChanged", - "nodeType": "EventDefinition", - "parameters": { - "id": 4510, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4505, - "indexed": false, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4511, - "src": "35924:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4504, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35924:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4507, - "indexed": false, - "name": "_changer", - "nodeType": "VariableDeclaration", - "scope": 4511, - "src": "35940:16:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4506, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "35940:7:5", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4509, - "indexed": false, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 4511, - "src": "35958:14:5", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4508, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "35958:4:5", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "35923:50:5" - }, - "src": "35896:78:5" - } - ], - "scope": 4513, - "src": "539:35438:5" - } - ], - "src": "0:35979:5" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": { - "10": { - "events": { - "0xeea6c8039af43860e84bc876245a0d129d92b942390135da1051b219149c100e": { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_creator", - "type": "address" - }, - { - "indexed": false, - "name": "_issuers", - "type": "address[]" - }, - { - "indexed": false, - "name": "_approvers", - "type": "address[]" - }, - { - "indexed": false, - "name": "_data", - "type": "string" - }, - { - "indexed": false, - "name": "_deadline", - "type": "uint256" - }, - { - "indexed": false, - "name": "_token", - "type": "address" - }, - { - "indexed": false, - "name": "_tokenVersion", - "type": "uint256" - } - ], - "name": "BountyIssued", - "type": "event" - }, - "0x7431e5e30247dcb2379eab9b0e60e49038c5ddb5cac27f27a17e950c0220a693": { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_contributionId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_contributor", - "type": "address" - }, - { - "indexed": false, - "name": "_amount", - "type": "uint256" - } - ], - "name": "ContributionAdded", - "type": "event" - }, - "0xfb1da5cbf027ad18b7c1f786bf81e9920cc0db09d7e299a8e4f3dbb64ce32f01": { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_contributionId", - "type": "uint256" - } - ], - "name": "ContributionRefunded", - "type": "event" - }, - "0xc55c552370ad68c2faed667a8224a8ab373e39368872484a40619b1e884336de": { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_issuer", - "type": "address" - }, - { - "indexed": false, - "name": "_contributionIds", - "type": "uint256[]" - } - ], - "name": "ContributionsRefunded", - "type": "event" - }, - "0xc9db45671da2b4994b84d56a8832d4e0bcc3722230dffce39df6886f9ec2d7d6": { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_issuer", - "type": "address" - }, - { - "indexed": false, - "name": "_amounts", - "type": "uint256[]" - } - ], - "name": "BountyDrained", - "type": "event" - }, - "0xd54885079d7edd9bea77e3f09e83bd65a121db3d3a14892227e0d2cffe73970f": { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_fulfiller", - "type": "address" - }, - { - "indexed": false, - "name": "_data", - "type": "string" - } - ], - "name": "ActionPerformed", - "type": "event" - }, - "0xb9fb09db36801e95ddbb658a96b7ecf81b9b7e105e4a82d8887b1e7eadd45b84": { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_fulfillmentId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_fulfillers", - "type": "address[]" - }, - { - "indexed": false, - "name": "_data", - "type": "string" - }, - { - "indexed": false, - "name": "_submitter", - "type": "address" - } - ], - "name": "BountyFulfilled", - "type": "event" - }, - "0xde0d52ad68b0a792924de426fb3a2f2c1ce908be531894e35d85e533fbb8ec16": { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_fulfillmentId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_fulfillers", - "type": "address[]" - }, - { - "indexed": false, - "name": "_data", - "type": "string" - } - ], - "name": "FulfillmentUpdated", - "type": "event" - }, - "0x4d54a229a804a61c5213bec479b1407ce270c57b24fd8299d6ea98b6b2ab0520": { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_fulfillmentId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_approver", - "type": "address" - }, - { - "indexed": false, - "name": "_tokenAmounts", - "type": "uint256[]" - } - ], - "name": "FulfillmentAccepted", - "type": "event" - }, - "0x588a0d2c7e36ab3050cd6b8b12441530ae5407613e9f2a62dc10bc43a302ed9c": { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_changer", - "type": "address" - }, - { - "indexed": false, - "name": "_issuers", - "type": "address[]" - }, - { - "indexed": false, - "name": "_approvers", - "type": "address[]" - }, - { - "indexed": false, - "name": "_data", - "type": "string" - }, - { - "indexed": false, - "name": "_deadline", - "type": "uint256" - } - ], - "name": "BountyChanged", - "type": "event" - }, - "0xc969620b1b90646a0d597289d87dcf90d4cc4e554bddf0c003dfc05954a6d359": { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_changer", - "type": "address" - }, - { - "indexed": false, - "name": "_issuers", - "type": "address[]" - } - ], - "name": "BountyIssuersUpdated", - "type": "event" - }, - "0x43a4e4542993b08827123085341d156186f40b28b6343f301c246a1d5f49d9f7": { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_changer", - "type": "address" - }, - { - "indexed": false, - "name": "_approvers", - "type": "address[]" - } - ], - "name": "BountyApproversUpdated", - "type": "event" - }, - "0xdc41a74d84036920901cf73075fc7f917d75b1f5dbd7955c12f9203336247233": { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_changer", - "type": "address" - }, - { - "indexed": false, - "name": "_data", - "type": "string" - } - ], - "name": "BountyDataChanged", - "type": "event" - }, - "0x946e60a77ecf689f0595d6dcd6cf1537564a1d82472a69a3be00f7e8cb6f8b7d": { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "_bountyId", - "type": "uint256" - }, - { - "indexed": false, - "name": "_changer", - "type": "address" - }, - { - "indexed": false, - "name": "_deadline", - "type": "uint256" - } - ], - "name": "BountyDeadlineChanged", - "type": "event" - } - }, - "links": {}, - "address": "0x4d2dF7C984A72b3F0EB133C9FEf6D45d46280EC2", - "transactionHash": "0x5900d3a7dbfc0028306350f46fe603cb0ea4f3a0b78d5afc9564d78704ea23ad" - } - }, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:31.074Z", - "networkType": "ethereum", - "devdoc": { - "author": "Mark Beylifn , Gonçalo Sá , Kevin Owocki , Ricardo Guilherme Schmidt (@3esmit), Matt Garnett , Craig Williams ", - "methods": { - "addApprovers(address,uint256,uint256,address[])": { - "params": { - "_approvers": "the array of addresses to add to the list of valid approvers" - } - }, - "addIssuers(address,uint256,uint256,address[])": { - "params": { - "_issuers": "the array of addresses to add to the list of valid issuers" - } - }, - "changeApprover(address,uint256,uint256,uint256,address)": { - "params": { - "_approver": "the address of the new approver" - } - }, - "changeBounty(address,uint256,uint256,address[],address[],string,uint256)": { - "params": { - "_deadline": "the new timestamp which will become the deadline of the bounty" - } - }, - "changeData(address,uint256,uint256,string)": { - "params": { - "_data": "the new IPFS hash representing the JSON object storing the details of the bounty (see docs for schema details)" - } - }, - "changeDeadline(address,uint256,uint256,uint256)": { - "params": { - "_deadline": "the new timestamp which will become the deadline of the bounty" - } - }, - "changeIssuer(address,uint256,uint256,uint256,address)": { - "params": { - "_newIssuer": "the address of the new issuer" - } - }, - "changeIssuerAndApprover(address,uint256,uint256,uint256,uint256,address)": { - "params": { - "_issuer": "the address of the new approver" - } - }, - "contribute(address,uint256,uint256)": { - "params": { - "_amount": "the amount of tokens being contributed" - } - }, - "drainBounty(address,uint256,uint256,uint256[])": { - "params": { - "_amounts": "an array of amounts of tokens to be sent. The length of the array should be 1 if the bounty is in ETH or ERC20 tokens. If it's an ERC721 bounty, the array should be the list of tokenIDs." - } - }, - "fulfillBounty(address,uint256,address[],string)": { - "params": { - "_data": "the IPFS hash corresponding to a JSON object which contains the details of the submission (see docs for schema details)" - } - }, - "getBounty(uint256)": { - "return": "Returns a tuple for the bounty" - }, - "issueAndContribute(address,address[],address[],string,uint256,address,uint256,uint256)": { - "params": { - "_depositAmount": "the amount of tokens being deposited to the bounty, which will create a new contribution to the bounty" - } - }, - "issueBounty(address,address[],address[],string,uint256,address,uint256)": { - "params": { - "_tokenVersion": "the version of the token being used for the bounty (0 for ETH, 20 for ERC20, 721 for ERC721)" - } - }, - "performAction(address,uint256,string)": { - "params": { - "_data": "the IPFS hash corresponding to a JSON object which contains the details of the action being performed (see docs for schema details)" - } - }, - "refundContribution(address,uint256,uint256)": { - "params": { - "_contributionId": "the index of the contribution being refunded" - } - }, - "refundContributions(address,uint256,uint256,uint256[])": { - "params": { - "_contributionIds": "the array of indexes of the contributions being refunded" - } - }, - "refundMyContributions(address,uint256,uint256[])": { - "params": { - "_contributionIds": "the array of indexes of the contributions being refunded" - } - }, - "setMetaTxRelayer(address)": { - "params": { - "_relayer": "the address of the relayer" - } - }, - "updateFulfillment(address,uint256,uint256,address[],string)": { - "params": { - "_data": "the new IPFS hash corresponding to a JSON object which contains the details of the submission (see docs for schema details)" - } - } - } - }, - "userdoc": { - "methods": { - "acceptFulfillment(address,uint256,uint256,uint256,uint256[])": { - "notice": "being sent to each of the individual fulfillers" - }, - "fulfillAndAccept(address,uint256,address[],string,uint256,uint256[])": { - "notice": "being sent to each of the individual fulfillers" - } - } - } -} \ No newline at end of file diff --git a/src/contracts/Submitter.json b/src/contracts/Submitter.json deleted file mode 100644 index 03017e8..0000000 --- a/src/contracts/Submitter.json +++ /dev/null @@ -1,1678 +0,0 @@ -{ - "contractName": "Submitter", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "moloch", - "outputs": [ - { - "name": "", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "molochAddress", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "name": "proposalId", - "type": "uint256" - } - ], - "name": "Submit", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "applicant", - "type": "address" - }, - { - "name": "sharesRequested", - "type": "uint256" - }, - { - "name": "lootRequested", - "type": "uint256" - }, - { - "name": "tributeOffered", - "type": "uint256" - }, - { - "name": "tributeToken", - "type": "address" - }, - { - "name": "paymentRequested", - "type": "uint256" - }, - { - "name": "paymentToken", - "type": "address" - }, - { - "name": "details", - "type": "string" - } - ], - "name": "submitProposal", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"applicant\",\"type\":\"address\"},{\"name\":\"sharesRequested\",\"type\":\"uint256\"},{\"name\":\"lootRequested\",\"type\":\"uint256\"},{\"name\":\"tributeOffered\",\"type\":\"uint256\"},{\"name\":\"tributeToken\",\"type\":\"address\"},{\"name\":\"paymentRequested\",\"type\":\"uint256\"},{\"name\":\"paymentToken\",\"type\":\"address\"},{\"name\":\"details\",\"type\":\"string\"}],\"name\":\"submitProposal\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"moloch\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"molochAddress\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"Submit\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/test-helpers/Submitter.sol\":\"Submitter\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/GuildBank.sol\":{\"keccak256\":\"0xa8ace5b5ac3322c9019470d2a1ad1342ef5d984da3d4818554e703b65ceda667\",\"urls\":[\"bzzr://b38168eab9d05f21a7576958f33878d9d31877a12f1f14bda390f3f4fbdaa2a4\",\"dweb:/ipfs/QmWa9cX9gzUkyM9yVwfhd6FsSeh1jpV62sBzdGJm6jRPRX\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Moloch.sol\":{\"keccak256\":\"0x513f84a2202580d2febaa6ee6322d9e93fee98f8c0ad5b98892a73687d49a0df\",\"urls\":[\"bzzr://ab0c63e6894e94dc4f8d0560000d3be9e20b87081af342d666fb5229d5bccd98\",\"dweb:/ipfs/QmYXkCZAMiX3UG4sKAp7Ro3nvKBKBANbRNWRn8JkWH3Pdc\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ReentrancyGuard.sol\":{\"keccak256\":\"0x8d08add2e57d2885eb9cda96d2ce54056015247de9adfea8e13c78bb2d9233f2\",\"urls\":[\"bzzr://24804e36486f935a9e98bf507193d1b160db755edba6c9d124a894aef3741ada\",\"dweb:/ipfs/QmauQVeYbGgqJDNxKAceFj1hFD1gfCfAXNBA8vCh3aGYKA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/test-helpers/Submitter.sol\":{\"keccak256\":\"0xc77855263a3e4d4574bc2c7334c323dc28ce1a438d0ffc37b54cf5710b0dcef7\",\"urls\":[\"bzzr://48b5abfb004016f23f11c9f727cdff7968256295cd7d03ac24e9bf2abec7a78d\",\"dweb:/ipfs/QmZ5A7g2o2w4AVuZU4HquaefaRtUN17rrxyTy1pQK8zQiR\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b506040516103843803806103848339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b031990921691909117905561031f806100656000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063590f940b1461003b578063623d9ac91461011d575b600080fd5b61011b600480360361010081101561005257600080fd5b6001600160a01b038235811692602081013592604082013592606083013592608081013582169260a08201359260c0830135169190810190610100810160e08201356401000000008111156100a657600080fd5b8201836020820111156100b857600080fd5b803590602001918460018302840111640100000000831117156100da57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610141945050505050565b005b6101256102db565b604080516001600160a01b039092168252519081900360200190f35b60008060009054906101000a90046001600160a01b03166001600160a01b031663590f940b8a8a8a8a8a8a8a8a6040518963ffffffff1660e01b815260040180896001600160a01b03166001600160a01b03168152602001888152602001878152602001868152602001856001600160a01b03166001600160a01b03168152602001848152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561021a578181015183820152602001610202565b50505050905090810190601f1680156102475780820380516001836020036101000a031916815260200191505b509950505050505050505050602060405180830381600087803b15801561026d57600080fd5b505af1158015610281573d6000803e3d6000fd5b505050506040513d602081101561029757600080fd5b50516040805182815290519192507f08324b3d745b914e3abd4ffbfead91e3b78391a98c173202129215ab933adfbe919081900360200190a1505050505050505050565b6000546001600160a01b03168156fea265627a7a723058202e11ecbb3ce8c19d008ca616d8c38560668e81d3a1f73caba9b39e100af2046b64736f6c63430005090032", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063590f940b1461003b578063623d9ac91461011d575b600080fd5b61011b600480360361010081101561005257600080fd5b6001600160a01b038235811692602081013592604082013592606083013592608081013582169260a08201359260c0830135169190810190610100810160e08201356401000000008111156100a657600080fd5b8201836020820111156100b857600080fd5b803590602001918460018302840111640100000000831117156100da57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610141945050505050565b005b6101256102db565b604080516001600160a01b039092168252519081900360200190f35b60008060009054906101000a90046001600160a01b03166001600160a01b031663590f940b8a8a8a8a8a8a8a8a6040518963ffffffff1660e01b815260040180896001600160a01b03166001600160a01b03168152602001888152602001878152602001868152602001856001600160a01b03166001600160a01b03168152602001848152602001836001600160a01b03166001600160a01b0316815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561021a578181015183820152602001610202565b50505050905090810190601f1680156102475780820380516001836020036101000a031916815260200191505b509950505050505050505050602060405180830381600087803b15801561026d57600080fd5b505af1158015610281573d6000803e3d6000fd5b505050506040513d602081101561029757600080fd5b50516040805182815290519192507f08324b3d745b914e3abd4ffbfead91e3b78391a98c173202129215ab933adfbe919081900360200190a1505050505050505050565b6000546001600160a01b03168156fea265627a7a723058202e11ecbb3ce8c19d008ca616d8c38560668e81d3a1f73caba9b39e100af2046b64736f6c63430005090032", - "sourceMap": "123:1299:23:-;;;244:85;8:9:-1;5:2;;;30:1;27;20:12;5:2;244:85:23;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;244:85:23;293:6;:30;;-1:-1:-1;;;;;293:30:23;;;-1:-1:-1;;;;;;293:30:23;;;;;;;;;123:1299;;;;;;", - "deployedSourceMap": "123:1299:23:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;123:1299:23;;;;;;;;;;;;;;;;;;;;;;;;335:524;;;;;;13:3:-1;8;5:12;2:2;;;30:1;27;20:12;2:2;-1:-1;;;;;335:524:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;335:524:23;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;335:524:23;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;335:524:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;335:524:23;;-1:-1:-1;335:524:23;;-1:-1:-1;;;;;335:524:23:i;:::-;;188:20;;;:::i;:::-;;;;-1:-1:-1;;;;;188:20:23;;;;;;;;;;;;;;335:524;602:18;623:6;;;;;;;;;-1:-1:-1;;;;;623:6:23;-1:-1:-1;;;;;623:21:23;;653:9;671:15;695:13;717:14;740:12;761:16;786:12;807:7;623:198;;;;;;;;;;;;;-1:-1:-1;;;;;623:198:23;-1:-1:-1;;;;;623:198:23;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;623:198:23;-1:-1:-1;;;;;623:198:23;;;;;;;;;;;-1:-1:-1;;;;;623:198:23;-1:-1:-1;;;;;623:198:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;623:198:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;623:198:23;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;623:198:23;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;623:198:23;835:18;;;;;;;;623:198;;-1:-1:-1;835:18:23;;;;;;623:198;835:18;;;335:524;;;;;;;;;:::o;188:20::-;;;-1:-1:-1;;;;;188:20:23;;:::o", - "source": "// helper for testing moloch.submitProposal return value\r\n\r\npragma solidity >=0.5.0 < 0.6.0;\r\n\r\nimport \"../Moloch.sol\";\r\n\r\ncontract Submitter {\r\n\r\n event Submit(uint256 proposalId);\r\n\r\n Moloch public moloch; // moloch contract reference\r\n\r\n constructor(address molochAddress) public {\r\n moloch = Moloch(molochAddress);\r\n }\r\n\r\n function submitProposal(\r\n address applicant,\r\n uint256 sharesRequested,\r\n uint256 lootRequested,\r\n uint256 tributeOffered,\r\n address tributeToken,\r\n uint256 paymentRequested,\r\n address paymentToken,\r\n string memory details\r\n ) public {\r\n uint256 proposalId = moloch.submitProposal(\r\n applicant,\r\n sharesRequested,\r\n lootRequested,\r\n tributeOffered,\r\n tributeToken,\r\n paymentRequested,\r\n paymentToken,\r\n details\r\n );\r\n\r\n emit Submit(proposalId);\r\n }\r\n\r\n // function submitWhitelistProposal(\r\n // address tokenToWhitelist,\r\n // string memory details\r\n // ) public {\r\n // uint256 proposalId = moloch.submitWhitelistProposal(\r\n // tokenToWhitelist,\r\n // details\r\n // );\r\n\r\n // emit Submit(proposalId);\r\n // }\r\n\r\n // function submitGuildKickProposal(\r\n // address memberToKick,\r\n // string memory details\r\n // ) public {\r\n // uint256 proposalId = moloch.submitGuildKickProposal(\r\n // memberToKick,\r\n // details\r\n // );\r\n\r\n // emit Submit(proposalId);\r\n // }\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\test-helpers\\Submitter.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/test-helpers/Submitter.sol", - "exportedSymbols": { - "Submitter": [ - 9917 - ] - }, - "id": 9918, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9859, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "60:32:23" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Moloch.sol", - "file": "../Moloch.sol", - "id": 9860, - "nodeType": "ImportDirective", - "scope": 9918, - "sourceUnit": 9116, - "src": "96:23:23", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 9917, - "linearizedBaseContracts": [ - 9917 - ], - "name": "Submitter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 9864, - "name": "Submit", - "nodeType": "EventDefinition", - "parameters": { - "id": 9863, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9862, - "indexed": false, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 9864, - "src": "162:18:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9861, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "162:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "161:20:23" - }, - "src": "149:33:23" - }, - { - "constant": false, - "id": 9866, - "name": "moloch", - "nodeType": "VariableDeclaration", - "scope": 9917, - "src": "188:20:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - }, - "typeName": { - "contractScope": null, - "id": 9865, - "name": "Moloch", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9115, - "src": "188:6:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 9877, - "nodeType": "Block", - "src": "286:43:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9871, - "name": "moloch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9866, - "src": "293:6:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9873, - "name": "molochAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9868, - "src": "309:13:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 9872, - "name": "Moloch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9115, - "src": "302:6:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Moloch_$9115_$", - "typeString": "type(contract Moloch)" - } - }, - "id": 9874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "302:21:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - }, - "src": "293:30:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - }, - "id": 9876, - "nodeType": "ExpressionStatement", - "src": "293:30:23" - } - ] - }, - "documentation": null, - "id": 9878, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9869, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9868, - "name": "molochAddress", - "nodeType": "VariableDeclaration", - "scope": 9878, - "src": "256:21:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9867, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "256:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "255:23:23" - }, - "returnParameters": { - "id": 9870, - "nodeType": "ParameterList", - "parameters": [], - "src": "286:0:23" - }, - "scope": 9917, - "src": "244:85:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9915, - "nodeType": "Block", - "src": "595:264:23", - "statements": [ - { - "assignments": [ - 9898 - ], - "declarations": [ - { - "constant": false, - "id": 9898, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 9915, - "src": "602:18:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9897, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "602:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9910, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9901, - "name": "applicant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9880, - "src": "653:9:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9902, - "name": "sharesRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9882, - "src": "671:15:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9903, - "name": "lootRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9884, - "src": "695:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9904, - "name": "tributeOffered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9886, - "src": "717:14:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9905, - "name": "tributeToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9888, - "src": "740:12:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9906, - "name": "paymentRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9890, - "src": "761:16:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9907, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9892, - "src": "786:12:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9908, - "name": "details", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9894, - "src": "807:7:23", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 9899, - "name": "moloch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9866, - "src": "623:6:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - }, - "id": 9900, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "submitProposal", - "nodeType": "MemberAccess", - "referencedDeclaration": 8149, - "src": "623:21:23", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (address,uint256,uint256,uint256,address,uint256,address,string memory) external returns (uint256)" - } - }, - "id": 9909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "623:198:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "602:219:23" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9912, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9898, - "src": "842:10:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9911, - "name": "Submit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9864, - "src": "835:6:23", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 9913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "835:18:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9914, - "nodeType": "EmitStatement", - "src": "830:23:23" - } - ] - }, - "documentation": null, - "id": 9916, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "submitProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9895, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9880, - "name": "applicant", - "nodeType": "VariableDeclaration", - "scope": 9916, - "src": "365:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9879, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "365:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9882, - "name": "sharesRequested", - "nodeType": "VariableDeclaration", - "scope": 9916, - "src": "389:23:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9881, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "389:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9884, - "name": "lootRequested", - "nodeType": "VariableDeclaration", - "scope": 9916, - "src": "419:21:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9883, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "419:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9886, - "name": "tributeOffered", - "nodeType": "VariableDeclaration", - "scope": 9916, - "src": "447:22:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "447:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9888, - "name": "tributeToken", - "nodeType": "VariableDeclaration", - "scope": 9916, - "src": "476:20:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9887, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "476:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9890, - "name": "paymentRequested", - "nodeType": "VariableDeclaration", - "scope": 9916, - "src": "503:24:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9889, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "503:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9892, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 9916, - "src": "534:20:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9891, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "534:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9894, - "name": "details", - "nodeType": "VariableDeclaration", - "scope": 9916, - "src": "561:21:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9893, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "561:6:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "358:229:23" - }, - "returnParameters": { - "id": 9896, - "nodeType": "ParameterList", - "parameters": [], - "src": "595:0:23" - }, - "scope": 9917, - "src": "335:524:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 9918, - "src": "123:1299:23" - } - ], - "src": "60:1364:23" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/test-helpers/Submitter.sol", - "exportedSymbols": { - "Submitter": [ - 9917 - ] - }, - "id": 9918, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9859, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "60:32:23" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/Moloch.sol", - "file": "../Moloch.sol", - "id": 9860, - "nodeType": "ImportDirective", - "scope": 9918, - "sourceUnit": 9116, - "src": "96:23:23", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 9917, - "linearizedBaseContracts": [ - 9917 - ], - "name": "Submitter", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 9864, - "name": "Submit", - "nodeType": "EventDefinition", - "parameters": { - "id": 9863, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9862, - "indexed": false, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 9864, - "src": "162:18:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9861, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "162:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "161:20:23" - }, - "src": "149:33:23" - }, - { - "constant": false, - "id": 9866, - "name": "moloch", - "nodeType": "VariableDeclaration", - "scope": 9917, - "src": "188:20:23", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - }, - "typeName": { - "contractScope": null, - "id": 9865, - "name": "Moloch", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9115, - "src": "188:6:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 9877, - "nodeType": "Block", - "src": "286:43:23", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 9875, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 9871, - "name": "moloch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9866, - "src": "293:6:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9873, - "name": "molochAddress", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9868, - "src": "309:13:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 9872, - "name": "Moloch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9115, - "src": "302:6:23", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_Moloch_$9115_$", - "typeString": "type(contract Moloch)" - } - }, - "id": 9874, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "302:21:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - }, - "src": "293:30:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - }, - "id": 9876, - "nodeType": "ExpressionStatement", - "src": "293:30:23" - } - ] - }, - "documentation": null, - "id": 9878, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9869, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9868, - "name": "molochAddress", - "nodeType": "VariableDeclaration", - "scope": 9878, - "src": "256:21:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9867, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "256:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "255:23:23" - }, - "returnParameters": { - "id": 9870, - "nodeType": "ParameterList", - "parameters": [], - "src": "286:0:23" - }, - "scope": 9917, - "src": "244:85:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 9915, - "nodeType": "Block", - "src": "595:264:23", - "statements": [ - { - "assignments": [ - 9898 - ], - "declarations": [ - { - "constant": false, - "id": 9898, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 9915, - "src": "602:18:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9897, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "602:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 9910, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9901, - "name": "applicant", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9880, - "src": "653:9:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9902, - "name": "sharesRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9882, - "src": "671:15:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9903, - "name": "lootRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9884, - "src": "695:13:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9904, - "name": "tributeOffered", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9886, - "src": "717:14:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9905, - "name": "tributeToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9888, - "src": "740:12:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9906, - "name": "paymentRequested", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9890, - "src": "761:16:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 9907, - "name": "paymentToken", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9892, - "src": "786:12:23", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 9908, - "name": "details", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9894, - "src": "807:7:23", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - ], - "expression": { - "argumentTypes": null, - "id": 9899, - "name": "moloch", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9866, - "src": "623:6:23", - "typeDescriptions": { - "typeIdentifier": "t_contract$_Moloch_$9115", - "typeString": "contract Moloch" - } - }, - "id": 9900, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "submitProposal", - "nodeType": "MemberAccess", - "referencedDeclaration": 8149, - "src": "623:21:23", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$_t_uint256_$_t_address_$_t_string_memory_ptr_$returns$_t_uint256_$", - "typeString": "function (address,uint256,uint256,uint256,address,uint256,address,string memory) external returns (uint256)" - } - }, - "id": 9909, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "623:198:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "602:219:23" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 9912, - "name": "proposalId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9898, - "src": "842:10:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 9911, - "name": "Submit", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9864, - "src": "835:6:23", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", - "typeString": "function (uint256)" - } - }, - "id": 9913, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "835:18:23", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 9914, - "nodeType": "EmitStatement", - "src": "830:23:23" - } - ] - }, - "documentation": null, - "id": 9916, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "submitProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9895, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9880, - "name": "applicant", - "nodeType": "VariableDeclaration", - "scope": 9916, - "src": "365:17:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9879, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "365:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9882, - "name": "sharesRequested", - "nodeType": "VariableDeclaration", - "scope": 9916, - "src": "389:23:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9881, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "389:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9884, - "name": "lootRequested", - "nodeType": "VariableDeclaration", - "scope": 9916, - "src": "419:21:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9883, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "419:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9886, - "name": "tributeOffered", - "nodeType": "VariableDeclaration", - "scope": 9916, - "src": "447:22:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9885, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "447:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9888, - "name": "tributeToken", - "nodeType": "VariableDeclaration", - "scope": 9916, - "src": "476:20:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9887, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "476:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9890, - "name": "paymentRequested", - "nodeType": "VariableDeclaration", - "scope": 9916, - "src": "503:24:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9889, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "503:7:23", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9892, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 9916, - "src": "534:20:23", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9891, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "534:7:23", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9894, - "name": "details", - "nodeType": "VariableDeclaration", - "scope": 9916, - "src": "561:21:23", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9893, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "561:6:23", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "358:229:23" - }, - "returnParameters": { - "id": 9896, - "nodeType": "ParameterList", - "parameters": [], - "src": "595:0:23" - }, - "scope": 9917, - "src": "335:524:23", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 9918, - "src": "123:1299:23" - } - ], - "src": "60:1364:23" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:20.253Z", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/SupportsInterfaceWithLookup.json b/src/contracts/SupportsInterfaceWithLookup.json deleted file mode 100644 index efb51ab..0000000 --- a/src/contracts/SupportsInterfaceWithLookup.json +++ /dev/null @@ -1,21232 +0,0 @@ -{ - "contractName": "SupportsInterfaceWithLookup", - "abi": [ - { - "constant": true, - "inputs": [], - "name": "InterfaceId_ERC165", - "outputs": [ - { - "name": "", - "type": "bytes4" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "constant": true, - "inputs": [ - { - "name": "_interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"_interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"InterfaceId_ERC165\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes4\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}],\"devdoc\":{\"author\":\"Matt Condon (@shrugs)\\r\",\"details\":\"Implements ERC165 using a lookup table.\\r\",\"methods\":{\"constructor\":{\"details\":\"A contract implementing SupportsInterfaceWithLookup\\r implement ERC165 itself\\r\"},\"supportsInterface(bytes4)\":{\"details\":\"implement supportsInterface(bytes4) using a lookup table\\r\"}},\"title\":\"SupportsInterfaceWithLookup\\r\"},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":\"SupportsInterfaceWithLookup\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol\":{\"keccak256\":\"0x4dd046a190602871aa9743a94149789c1e14b14f609c68d0f34d72e19bd690ce\",\"urls\":[\"bzzr://ea591dfb88f3591fe4344b7e665024c5aa3e8fb758a0409db79b1885a996b825\",\"dweb:/ipfs/QmXrwJ2TTXMWHBQxuLCqrj96gfh5HCHK57JsCEcXJ84t6z\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b506100437f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b0361004816565b6100b4565b7fffffffff00000000000000000000000000000000000000000000000000000000808216141561007757600080fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152602081905260409020805460ff19166001179055565b60f1806100c26000396000f3fe6080604052348015600f57600080fd5b506004361060325760003560e01c806301ffc9a714603757806319fa8f5014606f575b600080fd5b605b60048036036020811015604b57600080fd5b50356001600160e01b0319166092565b604080519115158252519081900360200190f35b607560b1565b604080516001600160e01b03199092168252519081900360200190f35b6001600160e01b03191660009081526020819052604090205460ff1690565b6301ffc9a760e01b8156fea265627a7a723058208756e5d29fd71fa13b44e82e07fb175852d952aa017fa03ecbc98c77b2d2a1e964736f6c63430005090032", - "deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060325760003560e01c806301ffc9a714603757806319fa8f5014606f575b600080fd5b605b60048036036020811015604b57600080fd5b50356001600160e01b0319166092565b604080519115158252519081900360200190f35b607560b1565b604080516001600160e01b03199092168252519081900360200190f35b6001600160e01b03191660009081526020819052604090205460ff1690565b6301ffc9a760e01b8156fea265627a7a723058208756e5d29fd71fa13b44e82e07fb175852d952aa017fa03ecbc98c77b2d2a1e964736f6c63430005090032", - "sourceMap": "3156:1008:8:-;;;3609:80;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3645:38:8;3664:18;-1:-1:-1;;;;;3645:18:8;:38;:::i;:::-;3156:1008;;4000:161;4081:26;;;;;;4073:35;;;;;;4115:33;;:19;:33;;;;;;;;;;:40;;-1:-1:-1;;4115:40:8;4151:4;4115:40;;;4000:161::o;3156:1008::-;;;;;;;", - "deployedSourceMap": "3156:1008:8:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3156:1008:8;;;;;;;;;;;;;;;;;;;;;;;;3777:148;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3777:148:8;-1:-1:-1;;;;;;3777:148:8;;:::i;:::-;;;;;;;;;;;;;;;;;;3208:54;;;:::i;:::-;;;;-1:-1:-1;;;;;;3208:54:8;;;;;;;;;;;;;;3777:148;-1:-1:-1;;;;;;3886:33:8;3863:4;3886:33;;;;;;;;;;;;;;3777:148::o;3208:54::-;-1:-1:-1;;;3208:54:8;:::o", - "source": "pragma solidity >=0.5.0 < 0.6.0;\r\nimport '../../dao/oz/SafeMath.sol';\r\n\r\n/**\r\n * @title SafeMath\r\n * @dev Math operations with safety checks that throw on error\r\n */\r\n//library SafeMath {\r\n//\r\n// /**\r\n// * @dev Multiplies two numbers, throws on overflow.\r\n// */\r\n// function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// // Gas optimization: this is cheaper than asserting 'a' not being zero, but the\r\n// // benefit is lost if 'b' is also tested.\r\n// // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522\r\n// if (a == 0) {\r\n// return 0;\r\n// }\r\n//\r\n// c = a * b;\r\n// assert(c / a == b);\r\n// return c;\r\n// }\r\n//\r\n// /**\r\n// * @dev Integer division of two numbers, truncating the quotient.\r\n// */\r\n// function div(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// // assert(b > 0); // Solidity automatically throws when dividing by 0\r\n// // uint256 c = a / b;\r\n// // assert(a == b * c + a % b); // There is no case in which this doesn't hold\r\n// return a / b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).\r\n// */\r\n// function sub(uint256 a, uint256 b) internal pure returns (uint256) {\r\n// assert(b <= a);\r\n// return a - b;\r\n// }\r\n//\r\n// /**\r\n// * @dev Adds two numbers, throws on overflow.\r\n// */\r\n// function add(uint256 a, uint256 b) internal pure returns (uint256 c) {\r\n// c = a + b;\r\n// assert(c >= a);\r\n// return c;\r\n// }\r\n//}\r\n\r\n/**\r\n * Utility library of inline functions on addresses\r\n */\r\nlibrary AddressUtils {\r\n\r\n /**\r\n * Returns whether the target address is a contract\r\n * @dev This function will return false if invoked during the constructor of a contract,\r\n * as the code is not actually created until after the constructor finishes.\r\n * @param addr address to check\r\n * @return whether the target address is a contract\r\n */\r\n function isContract(address addr) internal view returns (bool) {\r\n uint256 size;\r\n // XXX Currently there is no better way to check if there is a contract in an address\r\n // than to check the size of the code at that address.\r\n // See https://ethereum.stackexchange.com/a/14016/36603\r\n // for more details about how this works.\r\n // TODO Check this again before the Serenity release, because all addresses will be\r\n // contracts then.\r\n // solium-disable-next-line security/no-inline-assembly\r\n assembly { size := extcodesize(addr) }\r\n return size > 0;\r\n }\r\n\r\n}\r\n\r\n/**\r\n * @title ERC165\r\n * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r\n */\r\ninterface ERC165 {\r\n\r\n /**\r\n * @notice Query if a contract implements an interface\r\n * @param _interfaceId The interface identifier, as specified in ERC-165\r\n * @dev Interface identification is specified in ERC-165. This function\r\n * uses less than 30,000 gas.\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool);\r\n}\r\n\r\n\r\n/**\r\n * @title SupportsInterfaceWithLookup\r\n * @author Matt Condon (@shrugs)\r\n * @dev Implements ERC165 using a lookup table.\r\n */\r\ncontract SupportsInterfaceWithLookup is ERC165 {\r\n bytes4 public constant InterfaceId_ERC165 = 0x01ffc9a7;\r\n /**\r\n * 0x01ffc9a7 ===\r\n * bytes4(keccak256('supportsInterface(bytes4)'))\r\n */\r\n\r\n /**\r\n * @dev a mapping of interface id to whether or not it's supported\r\n */\r\n mapping(bytes4 => bool) internal supportedInterfaces;\r\n\r\n /**\r\n * @dev A contract implementing SupportsInterfaceWithLookup\r\n * implement ERC165 itself\r\n */\r\n constructor()\r\n public\r\n {\r\n _registerInterface(InterfaceId_ERC165);\r\n }\r\n\r\n /**\r\n * @dev implement supportsInterface(bytes4) using a lookup table\r\n */\r\n function supportsInterface(bytes4 _interfaceId)\r\n external\r\n view\r\n returns (bool)\r\n {\r\n return supportedInterfaces[_interfaceId];\r\n }\r\n\r\n /**\r\n * @dev private method for registering an interface\r\n */\r\n function _registerInterface(bytes4 _interfaceId)\r\n internal\r\n {\r\n require(_interfaceId != 0xffffffff);\r\n supportedInterfaces[_interfaceId] = true;\r\n }\r\n}\r\n\r\n/**\r\n * @title ERC721 token receiver interface\r\n * @dev Interface for any contract that wants to support safeTransfers\r\n * from ERC721 asset contracts.\r\n */\r\ncontract ERC721Receiver {\r\n /**\r\n * @dev Magic value to be returned upon successful reception of an NFT\r\n * Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`,\r\n * which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n */\r\n bytes4 internal constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n /**\r\n * @notice Handle the receipt of an NFT\r\n * @dev The ERC721 smart contract calls this function on the recipient\r\n * after a `safetransfer`. This function MAY throw to revert and reject the\r\n * transfer. This function MUST use 50,000 gas or less. Return of other\r\n * than the magic value MUST result in the transaction being reverted.\r\n * Note: the contract address is always the message sender.\r\n * @param _from The sending address\r\n * @param _tokenId The NFT identifier which is being transfered\r\n * @param _data Additional data with no specified format\r\n * @return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n */\r\n function onERC721Received(\r\n address _from,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n returns(bytes4);\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic interface\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721Basic is ERC165 {\r\n event Transfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n );\r\n event Approval(\r\n address _owner,\r\n address _approved,\r\n uint256 _tokenId\r\n );\r\n event ApprovalForAll(\r\n address _owner,\r\n address _operator,\r\n bool _approved\r\n );\r\n\r\n function balanceOf(address _owner) public view returns (uint256 _balance);\r\n function ownerOf(uint256 _tokenId) public view returns (address _owner);\r\n function exists(uint256 _tokenId) public view returns (bool _exists);\r\n\r\n function approve(address _to, uint256 _tokenId) public;\r\n function getApproved(uint256 _tokenId)\r\n public view returns (address _operator);\r\n\r\n function setApprovalForAll(address _operator, bool _approved) public;\r\n function isApprovedForAll(address _owner, address _operator)\r\n public view returns (bool);\r\n\r\n function transferFrom(address _from, address _to, uint256 _tokenId) public;\r\n function safeTransferFrom(address _from, address _to, uint256 _tokenId)\r\n public;\r\n\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public;\r\n}\r\n\r\n/**\r\n * @title ERC721 Non-Fungible Token Standard basic implementation\r\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r\n */\r\ncontract ERC721BasicToken is SupportsInterfaceWithLookup, ERC721Basic {\r\n\r\n bytes4 private constant InterfaceId_ERC721 = 0x80ac58cd;\r\n /*\r\n * 0x80ac58cd ===\r\n * bytes4(keccak256('balanceOf(address)')) ^\r\n * bytes4(keccak256('ownerOf(uint256)')) ^\r\n * bytes4(keccak256('approve(address,uint256)')) ^\r\n * bytes4(keccak256('getApproved(uint256)')) ^\r\n * bytes4(keccak256('setApprovalForAll(address,bool)')) ^\r\n * bytes4(keccak256('isApprovedForAll(address,address)')) ^\r\n * bytes4(keccak256('transferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) ^\r\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)'))\r\n */\r\n\r\n bytes4 private constant InterfaceId_ERC721Exists = 0x4f558e79;\r\n /*\r\n * 0x4f558e79 ===\r\n * bytes4(keccak256('exists(uint256)'))\r\n */\r\n\r\n using SafeMath for uint256;\r\n using AddressUtils for address;\r\n\r\n // Equals to `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r\n // which can be also obtained as `ERC721Receiver(0).onERC721Received.selector`\r\n bytes4 private constant ERC721_RECEIVED = 0xf0b9e5ba;\r\n\r\n // Mapping from token ID to owner\r\n mapping (uint256 => address) internal tokenOwner;\r\n\r\n // Mapping from token ID to approved address\r\n mapping (uint256 => address) internal tokenApprovals;\r\n\r\n // Mapping from owner to number of owned token\r\n mapping (address => uint256) internal ownedTokensCount;\r\n\r\n // Mapping from owner to operator approvals\r\n mapping (address => mapping (address => bool)) internal operatorApprovals;\r\n\r\n\r\n uint public testint;\r\n /**\r\n * @dev Guarantees msg.sender is owner of the given token\r\n * @param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r\n */\r\n modifier onlyOwnerOf(uint256 _tokenId) {\r\n require(ownerOf(_tokenId) == msg.sender);\r\n _;\r\n }\r\n\r\n /**\r\n * @dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n * @param _tokenId uint256 ID of the token to validate\r\n */\r\n modifier canTransfer(uint256 _tokenId) {\r\n require(isApprovedOrOwner(msg.sender, _tokenId));\r\n _;\r\n }\r\n\r\n constructor()\r\n public\r\n {\r\n // register the supported interfaces to conform to ERC721 via ERC165\r\n _registerInterface(InterfaceId_ERC721);\r\n _registerInterface(InterfaceId_ERC721Exists);\r\n }\r\n\r\n /**\r\n * @dev Gets the balance of the specified address\r\n * @param _owner address to query the balance of\r\n * @return uint256 representing the amount owned by the passed address\r\n */\r\n function balanceOf(address _owner) public view returns (uint256) {\r\n require(_owner != address(0));\r\n return ownedTokensCount[_owner];\r\n }\r\n\r\n /**\r\n * @dev Gets the owner of the specified token ID\r\n * @param _tokenId uint256 ID of the token to query the owner of\r\n * @return owner address currently marked as the owner of the given token ID\r\n */\r\n function ownerOf(uint256 _tokenId) public view returns (address) {\r\n address owner = tokenOwner[_tokenId];\r\n require(owner != address(0));\r\n return owner;\r\n }\r\n\r\n /**\r\n * @dev Returns whether the specified token exists\r\n * @param _tokenId uint256 ID of the token to query the existence of\r\n * @return whether the token exists\r\n */\r\n function exists(uint256 _tokenId) public view returns (bool) {\r\n address owner = tokenOwner[_tokenId];\r\n return owner != address(0);\r\n }\r\n\r\n /**\r\n * @dev Approves another address to transfer the given token ID\r\n * The zero address indicates there is no approved address.\r\n * There can only be one approved address per token at a given time.\r\n * Can only be called by the token owner or an approved operator.\r\n * @param _to address to be approved for the given token ID\r\n * @param _tokenId uint256 ID of the token to be approved\r\n */\r\n function approve(address _to, uint256 _tokenId) public {\r\n address owner = ownerOf(_tokenId);\r\n require(_to != owner);\r\n require(msg.sender == owner || isApprovedForAll(owner, msg.sender));\r\n\r\n tokenApprovals[_tokenId] = _to;\r\n emit Approval(owner, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Gets the approved address for a token ID, or zero if no address set\r\n * @param _tokenId uint256 ID of the token to query the approval of\r\n * @return address currently approved for the given token ID\r\n */\r\n function getApproved(uint256 _tokenId) public view returns (address) {\r\n return tokenApprovals[_tokenId];\r\n }\r\n\r\n /**\r\n * @dev Sets or unsets the approval of a given operator\r\n * An operator is allowed to transfer all tokens of the sender on their behalf\r\n * @param _to operator address to set the approval\r\n * @param _approved representing the status of the approval to be set\r\n */\r\n function setApprovalForAll(address _to, bool _approved) public {\r\n require(_to != msg.sender);\r\n operatorApprovals[msg.sender][_to] = _approved;\r\n emit ApprovalForAll(msg.sender, _to, _approved);\r\n }\r\n\r\n /**\r\n * @dev Tells whether an operator is approved by a given owner\r\n * @param _owner owner address which you want to query the approval of\r\n * @param _operator operator address which you want to query the approval of\r\n * @return bool whether the given operator is approved by the given owner\r\n */\r\n function isApprovedForAll(\r\n address _owner,\r\n address _operator\r\n )\r\n public\r\n view\r\n returns (bool)\r\n {\r\n return operatorApprovals[_owner][_operator];\r\n }\r\n\r\n /**\r\n * @dev Transfers the ownership of a given token ID to another address\r\n * Usage of this method is discouraged, use `safeTransferFrom` whenever possible\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function transferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n require(_from != address(0));\r\n require(_to != address(0));\r\n\r\n clearApproval(_from, _tokenId);\r\n removeTokenFrom(_from, _tokenId);\r\n addTokenTo(_to, _tokenId);\r\n\r\n emit Transfer(_from, _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n *\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n // solium-disable-next-line arg-overflow\r\n safeTransferFrom(_from, _to, _tokenId, \"\");\r\n }\r\n\r\n /**\r\n * @dev Safely transfers the ownership of a given token ID to another address\r\n * If the target address is a contract, it must implement `onERC721Received`,\r\n * which is called upon a safe transfer, and return the magic value\r\n * `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\n * the transfer is reverted.\r\n * Requires the msg sender to be the owner, approved, or operator\r\n * @param _from current owner of the token\r\n * @param _to address to receive the ownership of the given token ID\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes data to send along with a safe transfer check\r\n */\r\n function safeTransferFrom(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n public\r\n canTransfer(_tokenId)\r\n {\r\n transferFrom(_from, _to, _tokenId);\r\n // solium-disable-next-line arg-overflow\r\n require(checkAndCallSafeTransfer(_from, _to, _tokenId, _data));\r\n }\r\n\r\n /**\r\n * @dev Returns whether the given spender can transfer a given token ID\r\n * @param _spender address of the spender to query\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @return bool whether the msg.sender is approved for the given token ID,\r\n * is an operator of the owner, or is the owner of the token\r\n */\r\n function isApprovedOrOwner(\r\n address _spender,\r\n uint256 _tokenId\r\n )\r\n internal\r\n view\r\n returns (bool)\r\n {\r\n address owner = ownerOf(_tokenId);\r\n // Disable solium check because of\r\n // https://github.com/duaraghav8/Solium/issues/175\r\n // solium-disable-next-line operator-whitespace\r\n return (\r\n _spender == owner ||\r\n getApproved(_tokenId) == _spender ||\r\n isApprovedForAll(owner, _spender)\r\n );\r\n }\r\n\r\n /**\r\n * @dev Internal function to mint a new token\r\n * Reverts if the given token ID already exists\r\n * @param _to The address that will own the minted token\r\n * @param _tokenId uint256 ID of the token to be minted by the msg.sender\r\n */\r\n function _mint(address _to, uint256 _tokenId) internal {\r\n require(_to != address(0));\r\n addTokenTo(_to, _tokenId);\r\n emit Transfer(address(0), _to, _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to burn a specific token\r\n * Reverts if the token does not exist\r\n * @param _tokenId uint256 ID of the token being burned by the msg.sender\r\n */\r\n function _burn(address _owner, uint256 _tokenId) internal {\r\n clearApproval(_owner, _tokenId);\r\n removeTokenFrom(_owner, _tokenId);\r\n emit Transfer(_owner, address(0), _tokenId);\r\n }\r\n\r\n /**\r\n * @dev Internal function to clear current approval of a given token ID\r\n * Reverts if the given address is not indeed the owner of the token\r\n * @param _owner owner of the token\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n */\r\n function clearApproval(address _owner, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _owner);\r\n if (tokenApprovals[_tokenId] != address(0)) {\r\n tokenApprovals[_tokenId] = address(0);\r\n }\r\n }\r\n\r\n /**\r\n * @dev Internal function to add a token ID to the list of a given address\r\n * @param _to address representing the new owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r\n */\r\n function addTokenTo(address _to, uint256 _tokenId) internal {\r\n require(tokenOwner[_tokenId] == address(0));\r\n tokenOwner[_tokenId] = _to;\r\n ownedTokensCount[_to] = ownedTokensCount[_to].add(1);\r\n }\r\n\r\n /**\r\n * @dev Internal function to remove a token ID from the list of a given address\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r\n */\r\n function removeTokenFrom(address _from, uint256 _tokenId) internal {\r\n require(ownerOf(_tokenId) == _from);\r\n ownedTokensCount[_from] = ownedTokensCount[_from].sub(1);\r\n tokenOwner[_tokenId] = address(0);\r\n }\r\n\r\n /**\r\n * @dev Internal function to invoke `onERC721Received` on a target address\r\n * The call is not executed if the target address is not a contract\r\n * @param _from address representing the previous owner of the given token ID\r\n * @param _to target address that will receive the tokens\r\n * @param _tokenId uint256 ID of the token to be transferred\r\n * @param _data bytes optional data to send along with the call\r\n * @return whether the call correctly returned the expected magic value\r\n */\r\n function checkAndCallSafeTransfer(\r\n address _from,\r\n address _to,\r\n uint256 _tokenId,\r\n bytes memory _data\r\n )\r\n internal\r\n returns (bool)\r\n {\r\n if (!_to.isContract()) {\r\n return true;\r\n }\r\n bytes4 retval = ERC721Receiver(_to).onERC721Received(\r\n _from, _tokenId, _data);\r\n return (retval == ERC721_RECEIVED);\r\n }\r\n}\r\n\r\ncontract ERC721BasicTokenMock is ERC721BasicToken {\r\n function mint(address _to, uint256 _tokenId) public {\r\n super._mint(_to, _tokenId);\r\n }\r\n\r\n function burn(uint256 _tokenId) public {\r\n super._burn(ownerOf(_tokenId), _tokenId);\r\n }\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\inherited\\ERC721Basic.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", - "exportedSymbols": { - "AddressUtils": [ - 5009 - ], - "ERC165": [ - 5017 - ], - "ERC721Basic": [ - 5187 - ], - "ERC721BasicToken": [ - 5764 - ], - "ERC721BasicTokenMock": [ - 5797 - ], - "ERC721Receiver": [ - 5080 - ], - "SupportsInterfaceWithLookup": [ - 5065 - ] - }, - "id": 5798, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4991, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:8" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "../../dao/oz/SafeMath.sol", - "id": 4992, - "nodeType": "ImportDirective", - "scope": 5798, - "sourceUnit": 9858, - "src": "34:35:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "Utility library of inline functions on addresses\r", - "fullyImplemented": true, - "id": 5009, - "linearizedBaseContracts": [ - 5009 - ], - "name": "AddressUtils", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5007, - "nodeType": "Block", - "src": "2012:524:8", - "statements": [ - { - "assignments": [ - 5000 - ], - "declarations": [ - { - "constant": false, - "id": 5000, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 5007, - "src": "2019:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4999, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2019:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5001, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2019:12:8" - }, - { - "externalReferences": [ - { - "size": { - "declaration": 5000, - "isOffset": false, - "isSlot": false, - "src": "2482:4:8", - "valueSize": 1 - } - }, - { - "addr": { - "declaration": 4994, - "isOffset": false, - "isSlot": false, - "src": "2502:4:8", - "valueSize": 1 - } - } - ], - "id": 5002, - "nodeType": "InlineAssembly", - "operations": "{ size := extcodesize(addr) }", - "src": "2471:38:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5003, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5000, - "src": "2522:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5004, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2529:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2522:8:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4998, - "id": 5006, - "nodeType": "Return", - "src": "2515:15:8" - } - ] - }, - "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", - "id": 5008, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4994, - "name": "addr", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "1969:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1969:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1968:14:8" - }, - "returnParameters": { - "id": 4998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4997, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "2006:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4996, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2006:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2005:6:8" - }, - "scope": 5009, - "src": "1949:587:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "1590:951:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", - "fullyImplemented": false, - "id": 5017, - "linearizedBaseContracts": [ - 5017 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", - "id": 5016, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5012, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5011, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "2950:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5010, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "2950:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2949:21:8" - }, - "returnParameters": { - "id": 5015, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5014, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "3009:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5013, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3009:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3008:6:8" - }, - "scope": 5017, - "src": "2923:92:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 5798, - "src": "2643:375:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5018, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "3196:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5019, - "nodeType": "InheritanceSpecifier", - "src": "3196:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", - "fullyImplemented": true, - "id": 5065, - "linearizedBaseContracts": [ - 5065, - 5017 - ], - "name": "SupportsInterfaceWithLookup", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5022, - "name": "InterfaceId_ERC165", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3208:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5020, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3208:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 5021, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3252:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 5026, - "name": "supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3443:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 5025, - "keyType": { - "id": 5023, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3451:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "3443:23:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 5024, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3461:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 5033, - "nodeType": "Block", - "src": "3638:51:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5030, - "name": "InterfaceId_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5022, - "src": "3664:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5029, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "3645:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3645:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5032, - "nodeType": "ExpressionStatement", - "src": "3645:38:8" - } - ] - }, - "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", - "id": 5034, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5027, - "nodeType": "ParameterList", - "parameters": [], - "src": "3620:2:8" - }, - "returnParameters": { - "id": 5028, - "nodeType": "ParameterList", - "parameters": [], - "src": "3638:0:8" - }, - "scope": 5065, - "src": "3609:80:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5045, - "nodeType": "Block", - "src": "3872:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5041, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "3886:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5043, - "indexExpression": { - "argumentTypes": null, - "id": 5042, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5036, - "src": "3906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3886:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5040, - "id": 5044, - "nodeType": "Return", - "src": "3879:40:8" - } - ] - }, - "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", - "id": 5046, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5037, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5036, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3804:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5035, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3804:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3803:21:8" - }, - "returnParameters": { - "id": 5040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5039, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3863:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5038, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3863:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3862:6:8" - }, - "scope": 5065, - "src": "3777:148:8", - "stateMutability": "view", - "superFunction": 5016, - "visibility": "external" - }, - { - "body": { - "id": 5063, - "nodeType": "Block", - "src": "4066:95:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5052, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4081:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 5053, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4097:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "4081:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5051, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4073:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4073:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5056, - "nodeType": "ExpressionStatement", - "src": "4073:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5057, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "4115:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5059, - "indexExpression": { - "argumentTypes": null, - "id": 5058, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4135:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4115:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4151:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4115:40:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5062, - "nodeType": "ExpressionStatement", - "src": "4115:40:8" - } - ] - }, - "documentation": "@dev private method for registering an interface\r", - "id": 5064, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5049, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5048, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5064, - "src": "4028:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5047, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4028:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4027:21:8" - }, - "returnParameters": { - "id": 5050, - "nodeType": "ParameterList", - "parameters": [], - "src": "4066:0:8" - }, - "scope": 5065, - "src": "4000:161:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "3156:1008:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", - "fullyImplemented": false, - "id": 5080, - "linearizedBaseContracts": [ - 5080 - ], - "name": "ERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5068, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5080, - "src": "4607:53:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5066, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4607:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4650:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "internal" - }, - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", - "id": 5079, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5070, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5364:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5069, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5364:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5072, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5384:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5071, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5384:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5074, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5407:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5073, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5407:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5357:73:8" - }, - "returnParameters": { - "id": 5078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5077, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5456:6:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5076, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "5456:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5455:8:8" - }, - "scope": 5080, - "src": "5332:132:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "4326:1141:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5081, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "5641:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5082, - "nodeType": "InheritanceSpecifier", - "src": "5641:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": false, - "id": 5187, - "linearizedBaseContracts": [ - 5187, - 5017 - ], - "name": "ERC721Basic", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 5090, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 5089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5084, - "indexed": false, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5674:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5083, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5674:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5086, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5695:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5085, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5695:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5088, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5714:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5087, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5714:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5667:69:8" - }, - "src": "5653:84:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5098, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 5097, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5092, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5762:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5091, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5762:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5094, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5784:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5784:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5096, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5809:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5095, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5809:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5755:76:8" - }, - "src": "5741:91:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5106, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 5105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5100, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5863:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5099, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5863:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5102, - "indexed": false, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5885:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5101, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5885:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5104, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5910:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5103, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5910:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5856:73:8" - }, - "src": "5836:94:8" - }, - { - "body": null, - "documentation": null, - "id": 5113, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5109, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5108, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5955:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5107, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5955:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5954:16:8" - }, - "returnParameters": { - "id": 5112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5111, - "name": "_balance", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5992:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5110, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5992:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5991:18:8" - }, - "scope": 5187, - "src": "5936:74:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5120, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5116, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5115, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6031:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5114, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6030:18:8" - }, - "returnParameters": { - "id": 5119, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5118, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6070:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5117, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6070:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6069:16:8" - }, - "scope": 5187, - "src": "6014:72:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5127, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5123, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5122, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6106:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5121, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6106:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6105:18:8" - }, - "returnParameters": { - "id": 5126, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5125, - "name": "_exists", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6145:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5124, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6145:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6144:14:8" - }, - "scope": 5187, - "src": "6090:69:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5134, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5132, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5129, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6182:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6182:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5131, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6195:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6195:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6181:31:8" - }, - "returnParameters": { - "id": 5133, - "nodeType": "ParameterList", - "parameters": [], - "src": "6219:0:8" - }, - "scope": 5187, - "src": "6165:55:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5141, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5136, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6245:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5135, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6245:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6244:18:8" - }, - "returnParameters": { - "id": 5140, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5139, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6289:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5138, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6289:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6288:19:8" - }, - "scope": 5187, - "src": "6224:84:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5148, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5143, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6341:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6341:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5145, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6360:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5144, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6360:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6340:35:8" - }, - "returnParameters": { - "id": 5147, - "nodeType": "ParameterList", - "parameters": [], - "src": "6382:0:8" - }, - "scope": 5187, - "src": "6314:69:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5157, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5150, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6413:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5149, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6413:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5152, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6429:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5151, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6429:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6412:35:8" - }, - "returnParameters": { - "id": 5156, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5155, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6474:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5154, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6474:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6473:6:8" - }, - "scope": 5187, - "src": "6387:93:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5166, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5159, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6508:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5158, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6508:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5161, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6523:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5160, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6523:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5163, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6536:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5162, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6536:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6507:46:8" - }, - "returnParameters": { - "id": 5165, - "nodeType": "ParameterList", - "parameters": [], - "src": "6560:0:8" - }, - "scope": 5187, - "src": "6486:75:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5175, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5168, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6591:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5167, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6591:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5170, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6606:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5169, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6606:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5172, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6619:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6619:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6590:46:8" - }, - "returnParameters": { - "id": 5174, - "nodeType": "ParameterList", - "parameters": [], - "src": "6648:0:8" - }, - "scope": 5187, - "src": "6565:84:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5186, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5177, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6687:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5176, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6687:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5179, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6707:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5178, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6707:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5181, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6725:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5180, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6725:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5183, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6748:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5182, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6748:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6680:91:8" - }, - "returnParameters": { - "id": 5185, - "nodeType": "ParameterList", - "parameters": [], - "src": "6783:0:8" - }, - "scope": 5187, - "src": "6655:129:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "5617:1170:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5188, - "name": "SupportsInterfaceWithLookup", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5065, - "src": "6971:27:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", - "typeString": "contract SupportsInterfaceWithLookup" - } - }, - "id": 5189, - "nodeType": "InheritanceSpecifier", - "src": "6971:27:8" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5190, - "name": "ERC721Basic", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5187, - "src": "7000:11:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Basic_$5187", - "typeString": "contract ERC721Basic" - } - }, - "id": 5191, - "nodeType": "InheritanceSpecifier", - "src": "7000:11:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": true, - "id": 5764, - "linearizedBaseContracts": [ - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5194, - "name": "InterfaceId_ERC721", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7019:55:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5192, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7019:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 5193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7064:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 5197, - "name": "InterfaceId_ERC721Exists", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7668:61:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5195, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7668:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783466353538653739", - "id": 5196, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7719:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1331007097_by_1", - "typeString": "int_const 1331007097" - }, - "value": "0x4f558e79" - }, - "visibility": "private" - }, - { - "id": 5200, - "libraryName": { - "contractScope": null, - "id": 5198, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "7821:8:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "7815:27:8", - "typeName": { - "id": 5199, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7834:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 5203, - "libraryName": { - "contractScope": null, - "id": 5201, - "name": "AddressUtils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5009, - "src": "7852:12:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUtils_$5009", - "typeString": "library AddressUtils" - } - }, - "nodeType": "UsingForDirective", - "src": "7846:31:8", - "typeName": { - "id": 5202, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7869:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "constant": true, - "id": 5206, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8044:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5204, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8044:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5205, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8086:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 5210, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8140:48:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5209, - "keyType": { - "id": 5207, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8149:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8140:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5208, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8160:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5214, - "name": "tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8243:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5213, - "keyType": { - "id": 5211, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8252:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8243:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5212, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8263:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5218, - "name": "ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8352:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 5217, - "keyType": { - "id": 5215, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8361:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8352:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 5216, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8372:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5224, - "name": "operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8460:73:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "typeName": { - "id": 5223, - "keyType": { - "id": 5219, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8469:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8460:46:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 5222, - "keyType": { - "id": 5220, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8489:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8480:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 5221, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8500:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5226, - "name": "testint", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8542:19:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5225, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 5240, - "nodeType": "Block", - "src": "8774:61:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5232, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5228, - "src": "8797:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5231, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "8789:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8789:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5234, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "8810:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8810:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "8789:31:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5230, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "8781:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8781:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5238, - "nodeType": "ExpressionStatement", - "src": "8781:40:8" - }, - { - "id": 5239, - "nodeType": "PlaceholderStatement", - "src": "8828:1:8" - } - ] - }, - "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", - "id": 5241, - "name": "onlyOwnerOf", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5228, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5241, - "src": "8756:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8756:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8755:18:8" - }, - "src": "8735:100:8", - "visibility": "internal" - }, - { - "body": { - "id": 5254, - "nodeType": "Block", - "src": "9041:69:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5247, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "9074:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9074:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5249, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5243, - "src": "9086:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5246, - "name": "isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5567, - "src": "9056:17:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 5250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9056:39:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5245, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9048:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9048:48:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5252, - "nodeType": "ExpressionStatement", - "src": "9048:48:8" - }, - { - "id": 5253, - "nodeType": "PlaceholderStatement", - "src": "9103:1:8" - } - ] - }, - "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", - "id": 5255, - "name": "canTransfer", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5244, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5243, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5255, - "src": "9023:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5242, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9022:18:8" - }, - "src": "9002:108:8", - "visibility": "internal" - }, - { - "body": { - "id": 5266, - "nodeType": "Block", - "src": "9145:176:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5259, - "name": "InterfaceId_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5194, - "src": "9245:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5258, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9226:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9226:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5261, - "nodeType": "ExpressionStatement", - "src": "9226:38:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5263, - "name": "InterfaceId_ERC721Exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5197, - "src": "9290:24:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5262, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9271:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9271:44:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5265, - "nodeType": "ExpressionStatement", - "src": "9271:44:8" - } - ] - }, - "documentation": null, - "id": 5267, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5256, - "nodeType": "ParameterList", - "parameters": [], - "src": "9127:2:8" - }, - "returnParameters": { - "id": 5257, - "nodeType": "ParameterList", - "parameters": [], - "src": "9145:0:8" - }, - "scope": 5764, - "src": "9116:205:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5286, - "nodeType": "Block", - "src": "9585:80:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5275, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9600:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5277, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9618:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5276, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9610:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9610:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "9600:20:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5274, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9592:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9592:29:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5281, - "nodeType": "ExpressionStatement", - "src": "9592:29:8" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5282, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "9635:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5284, - "indexExpression": { - "argumentTypes": null, - "id": 5283, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9652:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9635:24:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5273, - "id": 5285, - "nodeType": "Return", - "src": "9628:31:8" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", - "id": 5287, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5270, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5269, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9539:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5268, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9539:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9538:16:8" - }, - "returnParameters": { - "id": 5273, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5272, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9576:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9576:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9575:9:8" - }, - "scope": 5764, - "src": "9520:145:8", - "stateMutability": "view", - "superFunction": 5113, - "visibility": "public" - }, - { - "body": { - "id": 5310, - "nodeType": "Block", - "src": "9950:103:8", - "statements": [ - { - "assignments": [ - 5295 - ], - "declarations": [ - { - "constant": false, - "id": 5295, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5310, - "src": "9957:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5294, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9957:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5299, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5296, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "9973:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5298, - "indexExpression": { - "argumentTypes": null, - "id": 5297, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5289, - "src": "9984:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9973:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9957:36:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5301, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10008:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10025:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10017:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5304, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10017:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10008:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5300, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10000:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5307, - "nodeType": "ExpressionStatement", - "src": "10000:28:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5308, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10042:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5293, - "id": 5309, - "nodeType": "Return", - "src": "10035:12:8" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", - "id": 5311, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5289, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9902:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5288, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9902:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9901:18:8" - }, - "returnParameters": { - "id": 5293, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5292, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9941:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5291, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9941:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9940:9:8" - }, - "scope": 5764, - "src": "9885:168:8", - "stateMutability": "view", - "superFunction": 5120, - "visibility": "public" - }, - { - "body": { - "id": 5330, - "nodeType": "Block", - "src": "10299:82:8", - "statements": [ - { - "assignments": [ - 5319 - ], - "declarations": [ - { - "constant": false, - "id": 5319, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5330, - "src": "10306:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5318, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10306:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5323, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5320, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "10322:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5322, - "indexExpression": { - "argumentTypes": null, - "id": 5321, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5313, - "src": "10333:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10322:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10306:36:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5324, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5319, - "src": "10356:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5326, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10373:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5325, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10365:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10365:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10356:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5317, - "id": 5329, - "nodeType": "Return", - "src": "10349:26:8" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", - "id": 5331, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5313, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10254:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5312, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10254:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10253:18:8" - }, - "returnParameters": { - "id": 5317, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5316, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10293:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5315, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10293:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10292:6:8" - }, - "scope": 5764, - "src": "10238:143:8", - "stateMutability": "view", - "superFunction": 5127, - "visibility": "public" - }, - { - "body": { - "id": 5375, - "nodeType": "Block", - "src": "10851:229:8", - "statements": [ - { - "assignments": [ - 5339 - ], - "declarations": [ - { - "constant": false, - "id": 5339, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5375, - "src": "10858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5338, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5343, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5341, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "10882:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5340, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "10874:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10874:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10858:33:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5345, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "10906:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 5346, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10913:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5344, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10898:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10898:21:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5349, - "nodeType": "ExpressionStatement", - "src": "10898:21:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5351, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10934:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10934:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5353, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10948:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10934:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5356, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10974:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5357, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10981:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10981:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 5355, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "10957:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10957:35:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "10934:58:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5350, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10926:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10926:67:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5362, - "nodeType": "ExpressionStatement", - "src": "10926:67:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5363, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11002:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5365, - "indexExpression": { - "argumentTypes": null, - "id": 5364, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11017:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11002:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5366, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11029:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "11002:30:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5368, - "nodeType": "ExpressionStatement", - "src": "11002:30:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5370, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "11053:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5371, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11060:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5372, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11065:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5369, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5098, - "src": "11044:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11044:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5374, - "nodeType": "EmitStatement", - "src": "11039:35:8" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", - "id": 5376, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5336, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5333, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10813:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10813:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5335, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10826:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5334, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10826:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10812:31:8" - }, - "returnParameters": { - "id": 5337, - "nodeType": "ParameterList", - "parameters": [], - "src": "10851:0:8" - }, - "scope": 5764, - "src": "10796:284:8", - "stateMutability": "nonpayable", - "superFunction": 5134, - "visibility": "public" - }, - { - "body": { - "id": 5387, - "nodeType": "Block", - "src": "11383:44:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5383, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11397:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5385, - "indexExpression": { - "argumentTypes": null, - "id": 5384, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5378, - "src": "11412:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11397:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5382, - "id": 5386, - "nodeType": "Return", - "src": "11390:31:8" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", - "id": 5388, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5378, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11335:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5377, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11335:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11334:18:8" - }, - "returnParameters": { - "id": 5382, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5381, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11374:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5380, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11374:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11373:9:8" - }, - "scope": 5764, - "src": "11314:113:8", - "stateMutability": "view", - "superFunction": 5141, - "visibility": "public" - }, - { - "body": { - "id": 5418, - "nodeType": "Block", - "src": "11778:146:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5396, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11793:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5397, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11800:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11800:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "11793:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5395, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "11785:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11785:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5401, - "nodeType": "ExpressionStatement", - "src": "11785:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5402, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "11818:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5406, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5403, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11836:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11836:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11818:29:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5407, - "indexExpression": { - "argumentTypes": null, - "id": 5405, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11848:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11818:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5408, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11855:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11818:46:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5410, - "nodeType": "ExpressionStatement", - "src": "11818:46:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5412, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11891:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11891:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5414, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11903:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5415, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11908:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5411, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5106, - "src": "11876:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 5416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11876:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5417, - "nodeType": "EmitStatement", - "src": "11871:47:8" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", - "id": 5419, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5390, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11742:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5389, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11742:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5392, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11755:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5391, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11755:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11741:29:8" - }, - "returnParameters": { - "id": 5394, - "nodeType": "ParameterList", - "parameters": [], - "src": "11778:0:8" - }, - "scope": 5764, - "src": "11715:209:8", - "stateMutability": "nonpayable", - "superFunction": 5148, - "visibility": "public" - }, - { - "body": { - "id": 5434, - "nodeType": "Block", - "src": "12362:56:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5428, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "12376:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5430, - "indexExpression": { - "argumentTypes": null, - "id": 5429, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5421, - "src": "12394:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5432, - "indexExpression": { - "argumentTypes": null, - "id": 5431, - "name": "_operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5423, - "src": "12402:9:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:36:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5427, - "id": 5433, - "nodeType": "Return", - "src": "12369:43:8" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", - "id": 5435, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5424, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5421, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12273:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5420, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12273:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5423, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12294:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5422, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12294:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12266:50:8" - }, - "returnParameters": { - "id": 5427, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5426, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12353:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5425, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12353:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12352:6:8" - }, - "scope": 5764, - "src": "12241:177:8", - "stateMutability": "view", - "superFunction": 5157, - "visibility": "public" - }, - { - "body": { - "id": 5484, - "nodeType": "Block", - "src": "12976:228:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5448, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "12991:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5450, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13008:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5449, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13000:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "12991:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5447, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "12983:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12983:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5454, - "nodeType": "ExpressionStatement", - "src": "12983:28:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5456, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13026:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13041:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5457, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13033:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5459, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13033:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "13026:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5455, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "13018:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13018:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5462, - "nodeType": "ExpressionStatement", - "src": "13018:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5464, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13067:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5465, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13074:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5463, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "13053:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13053:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5467, - "nodeType": "ExpressionStatement", - "src": "13053:30:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5469, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13106:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5470, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13113:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5468, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "13090:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13090:32:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5472, - "nodeType": "ExpressionStatement", - "src": "13090:32:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5474, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13140:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5475, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13145:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5473, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "13129:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13129:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5477, - "nodeType": "ExpressionStatement", - "src": "13129:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5479, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13177:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5480, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13184:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5481, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13189:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5478, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "13168:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13168:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5483, - "nodeType": "EmitStatement", - "src": "13163:35:8" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5485, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5444, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "12963:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5445, - "modifierName": { - "argumentTypes": null, - "id": 5443, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "12951:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12951:21:8" - } - ], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5442, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5437, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12874:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5436, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12874:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5439, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12894:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5438, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12894:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5441, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12912:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5440, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12912:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12867:66:8" - }, - "returnParameters": { - "id": 5446, - "nodeType": "ParameterList", - "parameters": [], - "src": "12976:0:8" - }, - "scope": 5764, - "src": "12846:358:8", - "stateMutability": "nonpayable", - "superFunction": 5166, - "visibility": "public" - }, - { - "body": { - "id": 5504, - "nodeType": "Block", - "src": "13960:101:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5498, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5487, - "src": "14030:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5499, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5489, - "src": "14037:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5500, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "14042:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 5501, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14052:2:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 5497, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5505, - 5535 - ], - "referencedDeclaration": 5535, - "src": "14013:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,uint256,bytes memory)" - } - }, - "id": 5502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14013:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5503, - "nodeType": "ExpressionStatement", - "src": "14013:42:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5505, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5494, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "13947:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5495, - "modifierName": { - "argumentTypes": null, - "id": 5493, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "13935:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13935:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5492, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5487, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5486, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5489, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13878:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5488, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13878:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5491, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13896:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5490, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13896:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13851:66:8" - }, - "returnParameters": { - "id": 5496, - "nodeType": "ParameterList", - "parameters": [], - "src": "13960:0:8" - }, - "scope": 5764, - "src": "13826:235:8", - "stateMutability": "nonpayable", - "superFunction": 5175, - "visibility": "public" - }, - { - "body": { - "id": 5534, - "nodeType": "Block", - "src": "14908:162:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5520, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "14928:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5521, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "14935:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5522, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14940:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5519, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5485 - ], - "referencedDeclaration": 5485, - "src": "14915:12:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14915:34:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5524, - "nodeType": "ExpressionStatement", - "src": "14915:34:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5527, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "15035:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5528, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "15042:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5529, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "15047:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5530, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5513, - "src": "15057:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 5526, - "name": "checkAndCallSafeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5763, - "src": "15010:24:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,address,uint256,bytes memory) returns (bool)" - } - }, - "id": 5531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15010:53:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5525, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "15002:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15002:62:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5533, - "nodeType": "ExpressionStatement", - "src": "15002:62:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", - "id": 5535, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5516, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14895:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5517, - "modifierName": { - "argumentTypes": null, - "id": 5515, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "14883:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14883:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5514, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5507, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14781:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5506, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14781:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5509, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14801:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5508, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14801:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5511, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14819:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5510, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14819:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5513, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14842:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5512, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14842:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14774:91:8" - }, - "returnParameters": { - "id": 5518, - "nodeType": "ParameterList", - "parameters": [], - "src": "14908:0:8" - }, - "scope": 5764, - "src": "14749:321:8", - "stateMutability": "nonpayable", - "superFunction": 5186, - "visibility": "public" - }, - { - "body": { - "id": 5566, - "nodeType": "Block", - "src": "15551:330:8", - "statements": [ - { - "assignments": [ - 5545 - ], - "declarations": [ - { - "constant": false, - "id": 5545, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5566, - "src": "15558:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5544, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15558:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5549, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5547, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15582:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5546, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "15574:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15574:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15558:33:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5550, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15763:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5551, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15775:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15763:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5554, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15803:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5553, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5388 - ], - "referencedDeclaration": 5388, - "src": "15791:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15791:21:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5556, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15816:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15791:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:61:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5560, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15852:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5561, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15859:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5559, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "15835:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15835:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:105:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5564, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "15754:121:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5543, - "id": 5565, - "nodeType": "Return", - "src": "15747:128:8" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", - "id": 5567, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5540, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5537, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15459:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5536, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15459:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5539, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15482:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5538, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15482:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15452:51:8" - }, - "returnParameters": { - "id": 5543, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5542, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15542:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5541, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "15542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15541:6:8" - }, - "scope": 5764, - "src": "15426:455:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5595, - "nodeType": "Block", - "src": "16193:118:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5575, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16208:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16223:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16215:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5578, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16215:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16208:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5574, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "16200:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16200:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5581, - "nodeType": "ExpressionStatement", - "src": "16200:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5583, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16244:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5584, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16249:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5582, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "16233:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16233:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5586, - "nodeType": "ExpressionStatement", - "src": "16233:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16287:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5588, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16279:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5590, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16279:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5591, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16291:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5592, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16296:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5587, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16270:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16270:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5594, - "nodeType": "EmitStatement", - "src": "16265:40:8" - } - ] - }, - "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", - "id": 5596, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5572, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5569, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16153:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5568, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16153:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5571, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16166:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5570, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16166:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16152:31:8" - }, - "returnParameters": { - "id": 5573, - "nodeType": "ParameterList", - "parameters": [], - "src": "16193:0:8" - }, - "scope": 5764, - "src": "16138:173:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5621, - "nodeType": "Block", - "src": "16562:134:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5604, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16583:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5605, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16591:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5603, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "16569:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16569:31:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5607, - "nodeType": "ExpressionStatement", - "src": "16569:31:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5609, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16623:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5610, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16631:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5608, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "16607:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16607:33:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5612, - "nodeType": "ExpressionStatement", - "src": "16607:33:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5614, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16661:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16677:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5615, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16669:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5617, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16669:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5618, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16681:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5613, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16652:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16652:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5620, - "nodeType": "EmitStatement", - "src": "16647:43:8" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", - "id": 5622, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5598, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16519:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16519:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5600, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16535:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16535:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16518:34:8" - }, - "returnParameters": { - "id": 5602, - "nodeType": "ParameterList", - "parameters": [], - "src": "16562:0:8" - }, - "scope": 5764, - "src": "16504:192:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5654, - "nodeType": "Block", - "src": "17032:153:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5631, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17055:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5630, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "17047:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17047:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5633, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5624, - "src": "17068:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17047:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5629, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17039:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17039:36:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5636, - "nodeType": "ExpressionStatement", - "src": "17039:36:8" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5637, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17086:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5639, - "indexExpression": { - "argumentTypes": null, - "id": 5638, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17101:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17086:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17122:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17114:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17114:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17086:38:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5653, - "nodeType": "IfStatement", - "src": "17082:98:8", - "trueBody": { - "id": 5652, - "nodeType": "Block", - "src": "17126:54:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5644, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17135:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5646, - "indexExpression": { - "argumentTypes": null, - "id": 5645, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17150:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17135:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17170:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5647, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17162:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5649, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17162:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17135:37:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5651, - "nodeType": "ExpressionStatement", - "src": "17135:37:8" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5655, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5627, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5624, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "16989:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5623, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16989:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5626, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "17005:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5625, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17005:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16988:34:8" - }, - "returnParameters": { - "id": 5628, - "nodeType": "ParameterList", - "parameters": [], - "src": "17032:0:8" - }, - "scope": 5764, - "src": "16966:219:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5689, - "nodeType": "Block", - "src": "17515:148:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5663, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17530:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5665, - "indexExpression": { - "argumentTypes": null, - "id": 5664, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17541:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17530:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17562:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17554:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5668, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17554:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17530:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5662, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17522:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17522:43:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5671, - "nodeType": "ExpressionStatement", - "src": "17522:43:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5672, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17572:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5674, - "indexExpression": { - "argumentTypes": null, - "id": 5673, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17583:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17572:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5675, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17595:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17572:26:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5677, - "nodeType": "ExpressionStatement", - "src": "17572:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5678, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17605:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5680, - "indexExpression": { - "argumentTypes": null, - "id": 5679, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17622:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17605:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17655:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5681, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17629:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5683, - "indexExpression": { - "argumentTypes": null, - "id": 5682, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17646:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17629:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "17629:25:8", - "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": 5686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17629:28:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17605:52:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5688, - "nodeType": "ExpressionStatement", - "src": "17605:52:8" - } - ] - }, - "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", - "id": 5690, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addTokenTo", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5660, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5657, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17475:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5656, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17475:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5659, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17488:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5658, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17488:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17474:31:8" - }, - "returnParameters": { - "id": 5661, - "nodeType": "ParameterList", - "parameters": [], - "src": "17515:0:8" - }, - "scope": 5764, - "src": "17455:208:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5724, - "nodeType": "Block", - "src": "18016:151:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5702, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5699, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18039:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5698, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "18031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18031:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5701, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18052:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "18031:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5697, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "18023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18023:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5704, - "nodeType": "ExpressionStatement", - "src": "18023:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5705, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18065:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5707, - "indexExpression": { - "argumentTypes": null, - "id": 5706, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18082:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18065:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18119:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5708, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18091:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5710, - "indexExpression": { - "argumentTypes": null, - "id": 5709, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18108:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18091:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "18091:27:8", - "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": 5713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18091:30:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18065:56:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5715, - "nodeType": "ExpressionStatement", - "src": "18065:56:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5716, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "18128:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5718, - "indexExpression": { - "argumentTypes": null, - "id": 5717, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18139:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18128:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18159:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18151:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18151:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "18128:33:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5723, - "nodeType": "ExpressionStatement", - "src": "18128:33:8" - } - ] - }, - "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", - "id": 5725, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "removeTokenFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5695, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5692, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17974:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5691, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17974:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5694, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17989:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5693, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17989:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17973:33:8" - }, - "returnParameters": { - "id": 5696, - "nodeType": "ParameterList", - "parameters": [], - "src": "18016:0:8" - }, - "scope": 5764, - "src": "17949:218:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5762, - "nodeType": "Block", - "src": "18846:195:8", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 5741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "18857:17:8", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5738, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18858:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 5008, - "src": "18858:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 5740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18858:16:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5745, - "nodeType": "IfStatement", - "src": "18853:51:8", - "trueBody": { - "id": 5744, - "nodeType": "Block", - "src": "18876:28:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5742, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18892:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 5737, - "id": 5743, - "nodeType": "Return", - "src": "18885:11:8" - } - ] - } - }, - { - "assignments": [ - 5747 - ], - "declarations": [ - { - "constant": false, - "id": 5747, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 5762, - "src": "18910:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5746, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "18910:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5756, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5752, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5727, - "src": "18971:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5753, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5731, - "src": "18978:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5754, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5733, - "src": "18988:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5749, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18941:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5748, - "name": "ERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5080, - "src": "18926:14:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", - "typeString": "type(contract ERC721Receiver)" - } - }, - "id": 5750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:19:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Receiver_$5080", - "typeString": "contract ERC721Receiver" - } - }, - "id": 5751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 5079, - "src": "18926:36:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" - } - }, - "id": 5755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:68:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18910:84:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5757, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5747, - "src": "19009:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5758, - "name": "ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5206, - "src": "19019:15:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "19009:25:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5760, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19008:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5737, - "id": 5761, - "nodeType": "Return", - "src": "19001:34:8" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", - "id": 5763, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "checkAndCallSafeTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5734, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5727, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18724:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5726, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18724:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5729, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18744:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18744:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5731, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18762:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5730, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18762:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5733, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18785:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5732, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "18785:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18717:91:8" - }, - "returnParameters": { - "id": 5737, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5736, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18837:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5735, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18837:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18836:6:8" - }, - "scope": 5764, - "src": "18684:357:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "6942:12102:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5765, - "name": "ERC721BasicToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5764, - "src": "19081:16:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", - "typeString": "contract ERC721BasicToken" - } - }, - "id": 5766, - "nodeType": "InheritanceSpecifier", - "src": "19081:16:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187, - 5764 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 5797, - "linearizedBaseContracts": [ - 5797, - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicTokenMock", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5780, - "nodeType": "Block", - "src": "19155:39:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5776, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5768, - "src": "19174:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5777, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5770, - "src": "19179:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5773, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19162:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 5596, - "src": "19162:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19162:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5779, - "nodeType": "ExpressionStatement", - "src": "19162:26:8" - } - ] - }, - "documentation": null, - "id": 5781, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5771, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5768, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19117:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5767, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19117:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5770, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19130:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5769, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19130:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19116:31:8" - }, - "returnParameters": { - "id": 5772, - "nodeType": "ParameterList", - "parameters": [], - "src": "19155:0:8" - }, - "scope": 5797, - "src": "19103:91:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5795, - "nodeType": "Block", - "src": "19239:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5790, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19266:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5789, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "19258:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19258:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5792, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19277:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5786, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19246:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 5622, - "src": "19246:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19246:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5794, - "nodeType": "ExpressionStatement", - "src": "19246:40:8" - } - ] - }, - "documentation": null, - "id": 5796, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5784, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5783, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5796, - "src": "19214:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5782, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19214:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19213:18:8" - }, - "returnParameters": { - "id": 5785, - "nodeType": "ParameterList", - "parameters": [], - "src": "19239:0:8" - }, - "scope": 5797, - "src": "19200:92:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "19048:247:8" - } - ], - "src": "0:19297:8" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/inherited/ERC721Basic.sol", - "exportedSymbols": { - "AddressUtils": [ - 5009 - ], - "ERC165": [ - 5017 - ], - "ERC721Basic": [ - 5187 - ], - "ERC721BasicToken": [ - 5764 - ], - "ERC721BasicTokenMock": [ - 5797 - ], - "ERC721Receiver": [ - 5080 - ], - "SupportsInterfaceWithLookup": [ - 5065 - ] - }, - "id": 5798, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4991, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:8" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol", - "file": "../../dao/oz/SafeMath.sol", - "id": 4992, - "nodeType": "ImportDirective", - "scope": 5798, - "sourceUnit": 9858, - "src": "34:35:8", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "library", - "documentation": "Utility library of inline functions on addresses\r", - "fullyImplemented": true, - "id": 5009, - "linearizedBaseContracts": [ - 5009 - ], - "name": "AddressUtils", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5007, - "nodeType": "Block", - "src": "2012:524:8", - "statements": [ - { - "assignments": [ - 5000 - ], - "declarations": [ - { - "constant": false, - "id": 5000, - "name": "size", - "nodeType": "VariableDeclaration", - "scope": 5007, - "src": "2019:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4999, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2019:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5001, - "initialValue": null, - "nodeType": "VariableDeclarationStatement", - "src": "2019:12:8" - }, - { - "externalReferences": [ - { - "size": { - "declaration": 5000, - "isOffset": false, - "isSlot": false, - "src": "2482:4:8", - "valueSize": 1 - } - }, - { - "addr": { - "declaration": 4994, - "isOffset": false, - "isSlot": false, - "src": "2502:4:8", - "valueSize": 1 - } - } - ], - "id": 5002, - "nodeType": "InlineAssembly", - "operations": "{ size := extcodesize(addr) }", - "src": "2471:38:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "id": 5005, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5003, - "name": "size", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5000, - "src": "2522:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "BinaryOperation", - "operator": ">", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30", - "id": 5004, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "2529:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "2522:8:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 4998, - "id": 5006, - "nodeType": "Return", - "src": "2515:15:8" - } - ] - }, - "documentation": "Returns whether the target address is a contract\r\n@dev This function will return false if invoked during the constructor of a contract,\r\nas the code is not actually created until after the constructor finishes.\r\n@param addr address to check\r\n@return whether the target address is a contract\r", - "id": 5008, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isContract", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4995, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4994, - "name": "addr", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "1969:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4993, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1969:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1968:14:8" - }, - "returnParameters": { - "id": 4998, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4997, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5008, - "src": "2006:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 4996, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "2006:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2005:6:8" - }, - "scope": 5009, - "src": "1949:587:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "1590:951:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": "@title ERC165\r\n@dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md\r", - "fullyImplemented": false, - "id": 5017, - "linearizedBaseContracts": [ - 5017 - ], - "name": "ERC165", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": "@notice Query if a contract implements an interface\r\n@param _interfaceId The interface identifier, as specified in ERC-165\r\n@dev Interface identification is specified in ERC-165. This function\r\nuses less than 30,000 gas.\r", - "id": 5016, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5012, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5011, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "2950:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5010, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "2950:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2949:21:8" - }, - "returnParameters": { - "id": 5015, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5014, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5016, - "src": "3009:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5013, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3009:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3008:6:8" - }, - "scope": 5017, - "src": "2923:92:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 5798, - "src": "2643:375:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5018, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "3196:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5019, - "nodeType": "InheritanceSpecifier", - "src": "3196:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title SupportsInterfaceWithLookup\r\n@author Matt Condon (@shrugs)\r\n@dev Implements ERC165 using a lookup table.\r", - "fullyImplemented": true, - "id": 5065, - "linearizedBaseContracts": [ - 5065, - 5017 - ], - "name": "SupportsInterfaceWithLookup", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5022, - "name": "InterfaceId_ERC165", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3208:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5020, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3208:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783031666663396137", - "id": 5021, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "3252:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_33540519_by_1", - "typeString": "int_const 33540519" - }, - "value": "0x01ffc9a7" - }, - "visibility": "public" - }, - { - "constant": false, - "id": 5026, - "name": "supportedInterfaces", - "nodeType": "VariableDeclaration", - "scope": 5065, - "src": "3443:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "typeName": { - "id": 5025, - "keyType": { - "id": 5023, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3451:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "Mapping", - "src": "3443:23:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - }, - "valueType": { - "id": 5024, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3461:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "body": { - "id": 5033, - "nodeType": "Block", - "src": "3638:51:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5030, - "name": "InterfaceId_ERC165", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5022, - "src": "3664:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5029, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "3645:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5031, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "3645:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5032, - "nodeType": "ExpressionStatement", - "src": "3645:38:8" - } - ] - }, - "documentation": "@dev A contract implementing SupportsInterfaceWithLookup\r\nimplement ERC165 itself\r", - "id": 5034, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5027, - "nodeType": "ParameterList", - "parameters": [], - "src": "3620:2:8" - }, - "returnParameters": { - "id": 5028, - "nodeType": "ParameterList", - "parameters": [], - "src": "3638:0:8" - }, - "scope": 5065, - "src": "3609:80:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5045, - "nodeType": "Block", - "src": "3872:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5041, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "3886:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5043, - "indexExpression": { - "argumentTypes": null, - "id": 5042, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5036, - "src": "3906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "3886:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5040, - "id": 5044, - "nodeType": "Return", - "src": "3879:40:8" - } - ] - }, - "documentation": "@dev implement supportsInterface(bytes4) using a lookup table\r", - "id": 5046, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "supportsInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5037, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5036, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3804:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5035, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "3804:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3803:21:8" - }, - "returnParameters": { - "id": 5040, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5039, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5046, - "src": "3863:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5038, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "3863:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3862:6:8" - }, - "scope": 5065, - "src": "3777:148:8", - "stateMutability": "view", - "superFunction": 5016, - "visibility": "external" - }, - { - "body": { - "id": 5063, - "nodeType": "Block", - "src": "4066:95:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5054, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5052, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4081:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "hexValue": "30786666666666666666", - "id": 5053, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4097:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4294967295_by_1", - "typeString": "int_const 4294967295" - }, - "value": "0xffffffff" - }, - "src": "4081:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5051, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "4073:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5055, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "4073:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5056, - "nodeType": "ExpressionStatement", - "src": "4073:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5061, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5057, - "name": "supportedInterfaces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5026, - "src": "4115:19:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", - "typeString": "mapping(bytes4 => bool)" - } - }, - "id": 5059, - "indexExpression": { - "argumentTypes": null, - "id": 5058, - "name": "_interfaceId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5048, - "src": "4135:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "4115:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5060, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4151:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "src": "4115:40:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5062, - "nodeType": "ExpressionStatement", - "src": "4115:40:8" - } - ] - }, - "documentation": "@dev private method for registering an interface\r", - "id": 5064, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_registerInterface", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5049, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5048, - "name": "_interfaceId", - "nodeType": "VariableDeclaration", - "scope": 5064, - "src": "4028:19:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5047, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4028:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "4027:21:8" - }, - "returnParameters": { - "id": 5050, - "nodeType": "ParameterList", - "parameters": [], - "src": "4066:0:8" - }, - "scope": 5065, - "src": "4000:161:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "3156:1008:8" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": "@title ERC721 token receiver interface\r\n@dev Interface for any contract that wants to support safeTransfers\r\nfrom ERC721 asset contracts.\r", - "fullyImplemented": false, - "id": 5080, - "linearizedBaseContracts": [ - 5080 - ], - "name": "ERC721Receiver", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5068, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5080, - "src": "4607:53:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5066, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "4607:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5067, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "4650:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "internal" - }, - { - "body": null, - "documentation": "@notice Handle the receipt of an NFT\r\n@dev The ERC721 smart contract calls this function on the recipient\r\nafter a `safetransfer`. This function MAY throw to revert and reject the\r\ntransfer. This function MUST use 50,000 gas or less. Return of other\r\nthan the magic value MUST result in the transaction being reverted.\r\nNote: the contract address is always the message sender.\r\n@param _from The sending address\r\n@param _tokenId The NFT identifier which is being transfered\r\n@param _data Additional data with no specified format\r\n@return `bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`\r", - "id": 5079, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "onERC721Received", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5075, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5070, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5364:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5069, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5364:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5072, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5384:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5071, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5384:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5074, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5407:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5073, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "5407:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5357:73:8" - }, - "returnParameters": { - "id": 5078, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5077, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5079, - "src": "5456:6:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5076, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "5456:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5455:8:8" - }, - "scope": 5080, - "src": "5332:132:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "4326:1141:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5081, - "name": "ERC165", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5017, - "src": "5641:6:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC165_$5017", - "typeString": "contract ERC165" - } - }, - "id": 5082, - "nodeType": "InheritanceSpecifier", - "src": "5641:6:8" - } - ], - "contractDependencies": [ - 5017 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic interface\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": false, - "id": 5187, - "linearizedBaseContracts": [ - 5187, - 5017 - ], - "name": "ERC721Basic", - "nodeType": "ContractDefinition", - "nodes": [ - { - "anonymous": false, - "documentation": null, - "id": 5090, - "name": "Transfer", - "nodeType": "EventDefinition", - "parameters": { - "id": 5089, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5084, - "indexed": false, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5674:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5083, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5674:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5086, - "indexed": false, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5695:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5085, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5695:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5088, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5090, - "src": "5714:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5087, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5714:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5667:69:8" - }, - "src": "5653:84:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5098, - "name": "Approval", - "nodeType": "EventDefinition", - "parameters": { - "id": 5097, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5092, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5762:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5091, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5762:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5094, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5784:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5093, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5784:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5096, - "indexed": false, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5098, - "src": "5809:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5095, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5809:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5755:76:8" - }, - "src": "5741:91:8" - }, - { - "anonymous": false, - "documentation": null, - "id": 5106, - "name": "ApprovalForAll", - "nodeType": "EventDefinition", - "parameters": { - "id": 5105, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5100, - "indexed": false, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5863:15:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5099, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5863:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5102, - "indexed": false, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5885:18:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5101, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5885:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5104, - "indexed": false, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5106, - "src": "5910:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5103, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "5910:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5856:73:8" - }, - "src": "5836:94:8" - }, - { - "body": null, - "documentation": null, - "id": 5113, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5109, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5108, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5955:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5107, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "5955:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5954:16:8" - }, - "returnParameters": { - "id": 5112, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5111, - "name": "_balance", - "nodeType": "VariableDeclaration", - "scope": 5113, - "src": "5992:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5110, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "5992:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "5991:18:8" - }, - "scope": 5187, - "src": "5936:74:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5120, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5116, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5115, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6031:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5114, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6030:18:8" - }, - "returnParameters": { - "id": 5119, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5118, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5120, - "src": "6070:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5117, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6070:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6069:16:8" - }, - "scope": 5187, - "src": "6014:72:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5127, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5123, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5122, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6106:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5121, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6106:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6105:18:8" - }, - "returnParameters": { - "id": 5126, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5125, - "name": "_exists", - "nodeType": "VariableDeclaration", - "scope": 5127, - "src": "6145:12:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5124, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6145:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6144:14:8" - }, - "scope": 5187, - "src": "6090:69:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5134, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5132, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5129, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6182:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5128, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6182:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5131, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5134, - "src": "6195:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5130, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6195:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6181:31:8" - }, - "returnParameters": { - "id": 5133, - "nodeType": "ParameterList", - "parameters": [], - "src": "6219:0:8" - }, - "scope": 5187, - "src": "6165:55:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5141, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5137, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5136, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6245:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5135, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6245:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6244:18:8" - }, - "returnParameters": { - "id": 5140, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5139, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5141, - "src": "6289:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5138, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6289:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6288:19:8" - }, - "scope": 5187, - "src": "6224:84:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5148, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5146, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5143, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6341:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5142, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6341:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5145, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5148, - "src": "6360:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5144, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6360:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6340:35:8" - }, - "returnParameters": { - "id": 5147, - "nodeType": "ParameterList", - "parameters": [], - "src": "6382:0:8" - }, - "scope": 5187, - "src": "6314:69:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5157, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5153, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5150, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6413:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5149, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6413:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5152, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6429:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5151, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6429:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6412:35:8" - }, - "returnParameters": { - "id": 5156, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5155, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5157, - "src": "6474:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5154, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "6474:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6473:6:8" - }, - "scope": 5187, - "src": "6387:93:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5166, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5164, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5159, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6508:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5158, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6508:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5161, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6523:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5160, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6523:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5163, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5166, - "src": "6536:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5162, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6536:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6507:46:8" - }, - "returnParameters": { - "id": 5165, - "nodeType": "ParameterList", - "parameters": [], - "src": "6560:0:8" - }, - "scope": 5187, - "src": "6486:75:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5175, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5173, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5168, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6591:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5167, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6591:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5170, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6606:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5169, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6606:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5172, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5175, - "src": "6619:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5171, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6619:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6590:46:8" - }, - "returnParameters": { - "id": 5174, - "nodeType": "ParameterList", - "parameters": [], - "src": "6648:0:8" - }, - "scope": 5187, - "src": "6565:84:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": null, - "documentation": null, - "id": 5186, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5184, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5177, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6687:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5176, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6687:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5179, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6707:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5178, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "6707:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5181, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6725:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5180, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "6725:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5183, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5186, - "src": "6748:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5182, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "6748:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "6680:91:8" - }, - "returnParameters": { - "id": 5185, - "nodeType": "ParameterList", - "parameters": [], - "src": "6783:0:8" - }, - "scope": 5187, - "src": "6655:129:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "5617:1170:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5188, - "name": "SupportsInterfaceWithLookup", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5065, - "src": "6971:27:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$5065", - "typeString": "contract SupportsInterfaceWithLookup" - } - }, - "id": 5189, - "nodeType": "InheritanceSpecifier", - "src": "6971:27:8" - }, - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5190, - "name": "ERC721Basic", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5187, - "src": "7000:11:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Basic_$5187", - "typeString": "contract ERC721Basic" - } - }, - "id": 5191, - "nodeType": "InheritanceSpecifier", - "src": "7000:11:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187 - ], - "contractKind": "contract", - "documentation": "@title ERC721 Non-Fungible Token Standard basic implementation\r\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\r", - "fullyImplemented": true, - "id": 5764, - "linearizedBaseContracts": [ - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicToken", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": true, - "id": 5194, - "name": "InterfaceId_ERC721", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7019:55:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5192, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7019:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783830616335386364", - "id": 5193, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7064:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_2158778573_by_1", - "typeString": "int_const 2158778573" - }, - "value": "0x80ac58cd" - }, - "visibility": "private" - }, - { - "constant": true, - "id": 5197, - "name": "InterfaceId_ERC721Exists", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "7668:61:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5195, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "7668:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30783466353538653739", - "id": 5196, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "7719:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1331007097_by_1", - "typeString": "int_const 1331007097" - }, - "value": "0x4f558e79" - }, - "visibility": "private" - }, - { - "id": 5200, - "libraryName": { - "contractScope": null, - "id": 5198, - "name": "SafeMath", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9857, - "src": "7821:8:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_SafeMath_$9857", - "typeString": "library SafeMath" - } - }, - "nodeType": "UsingForDirective", - "src": "7815:27:8", - "typeName": { - "id": 5199, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "7834:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - { - "id": 5203, - "libraryName": { - "contractScope": null, - "id": 5201, - "name": "AddressUtils", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5009, - "src": "7852:12:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_AddressUtils_$5009", - "typeString": "library AddressUtils" - } - }, - "nodeType": "UsingForDirective", - "src": "7846:31:8", - "typeName": { - "id": 5202, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "7869:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - { - "constant": true, - "id": 5206, - "name": "ERC721_RECEIVED", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8044:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5204, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "8044:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30786630623965356261", - "id": 5205, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "8086:10:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_4038714810_by_1", - "typeString": "int_const 4038714810" - }, - "value": "0xf0b9e5ba" - }, - "visibility": "private" - }, - { - "constant": false, - "id": 5210, - "name": "tokenOwner", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8140:48:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5209, - "keyType": { - "id": 5207, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8149:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8140:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5208, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8160:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5214, - "name": "tokenApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8243:52:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "typeName": { - "id": 5213, - "keyType": { - "id": 5211, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8252:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "8243:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - }, - "valueType": { - "id": 5212, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8263:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5218, - "name": "ownedTokensCount", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8352:54:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "typeName": { - "id": 5217, - "keyType": { - "id": 5215, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8361:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8352:28:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - }, - "valueType": { - "id": 5216, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8372:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5224, - "name": "operatorApprovals", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8460:73:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "typeName": { - "id": 5223, - "keyType": { - "id": 5219, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8469:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8460:46:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - }, - "valueType": { - "id": 5222, - "keyType": { - "id": 5220, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "8489:7:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Mapping", - "src": "8480:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - }, - "valueType": { - "id": 5221, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "8500:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5226, - "name": "testint", - "nodeType": "VariableDeclaration", - "scope": 5764, - "src": "8542:19:8", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5225, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "8542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 5240, - "nodeType": "Block", - "src": "8774:61:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5236, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5232, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5228, - "src": "8797:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5231, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "8789:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5233, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8789:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5234, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "8810:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5235, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "8810:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "8789:31:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5230, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "8781:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5237, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "8781:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5238, - "nodeType": "ExpressionStatement", - "src": "8781:40:8" - }, - { - "id": 5239, - "nodeType": "PlaceholderStatement", - "src": "8828:1:8" - } - ] - }, - "documentation": "@dev Guarantees msg.sender is owner of the given token\r\n@param _tokenId uint256 ID of the token to validate its ownership belongs to msg.sender\r", - "id": 5241, - "name": "onlyOwnerOf", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5229, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5228, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5241, - "src": "8756:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "8756:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "8755:18:8" - }, - "src": "8735:100:8", - "visibility": "internal" - }, - { - "body": { - "id": 5254, - "nodeType": "Block", - "src": "9041:69:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5247, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "9074:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5248, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "9074:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5249, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5243, - "src": "9086:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5246, - "name": "isApprovedOrOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5567, - "src": "9056:17:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) view returns (bool)" - } - }, - "id": 5250, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9056:39:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5245, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9048:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5251, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9048:48:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5252, - "nodeType": "ExpressionStatement", - "src": "9048:48:8" - }, - { - "id": 5253, - "nodeType": "PlaceholderStatement", - "src": "9103:1:8" - } - ] - }, - "documentation": "@dev Checks msg.sender can transfer a token, by being owner, approved, or operator\r\n@param _tokenId uint256 ID of the token to validate\r", - "id": 5255, - "name": "canTransfer", - "nodeType": "ModifierDefinition", - "parameters": { - "id": 5244, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5243, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5255, - "src": "9023:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5242, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9022:18:8" - }, - "src": "9002:108:8", - "visibility": "internal" - }, - { - "body": { - "id": 5266, - "nodeType": "Block", - "src": "9145:176:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5259, - "name": "InterfaceId_ERC721", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5194, - "src": "9245:18:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5258, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9226:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5260, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9226:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5261, - "nodeType": "ExpressionStatement", - "src": "9226:38:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5263, - "name": "InterfaceId_ERC721Exists", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5197, - "src": "9290:24:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - ], - "id": 5262, - "name": "_registerInterface", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5064, - "src": "9271:18:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", - "typeString": "function (bytes4)" - } - }, - "id": 5264, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9271:44:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5265, - "nodeType": "ExpressionStatement", - "src": "9271:44:8" - } - ] - }, - "documentation": null, - "id": 5267, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5256, - "nodeType": "ParameterList", - "parameters": [], - "src": "9127:2:8" - }, - "returnParameters": { - "id": 5257, - "nodeType": "ParameterList", - "parameters": [], - "src": "9145:0:8" - }, - "scope": 5764, - "src": "9116:205:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5286, - "nodeType": "Block", - "src": "9585:80:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5279, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5275, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9600:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5277, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "9618:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5276, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "9610:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5278, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9610:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "9600:20:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5274, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "9592:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5280, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "9592:29:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5281, - "nodeType": "ExpressionStatement", - "src": "9592:29:8" - }, - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5282, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "9635:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5284, - "indexExpression": { - "argumentTypes": null, - "id": 5283, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5269, - "src": "9652:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9635:24:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "functionReturnParameters": 5273, - "id": 5285, - "nodeType": "Return", - "src": "9628:31:8" - } - ] - }, - "documentation": "@dev Gets the balance of the specified address\r\n@param _owner address to query the balance of\r\n@return uint256 representing the amount owned by the passed address\r", - "id": 5287, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "balanceOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5270, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5269, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9539:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5268, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9539:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9538:16:8" - }, - "returnParameters": { - "id": 5273, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5272, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5287, - "src": "9576:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5271, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9576:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9575:9:8" - }, - "scope": 5764, - "src": "9520:145:8", - "stateMutability": "view", - "superFunction": 5113, - "visibility": "public" - }, - { - "body": { - "id": 5310, - "nodeType": "Block", - "src": "9950:103:8", - "statements": [ - { - "assignments": [ - 5295 - ], - "declarations": [ - { - "constant": false, - "id": 5295, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5310, - "src": "9957:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5294, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9957:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5299, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5296, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "9973:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5298, - "indexExpression": { - "argumentTypes": null, - "id": 5297, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5289, - "src": "9984:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "9973:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "9957:36:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5305, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5301, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10008:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5303, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10025:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5302, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10017:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5304, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10017:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10008:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5300, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5306, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10000:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5307, - "nodeType": "ExpressionStatement", - "src": "10000:28:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5308, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5295, - "src": "10042:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5293, - "id": 5309, - "nodeType": "Return", - "src": "10035:12:8" - } - ] - }, - "documentation": "@dev Gets the owner of the specified token ID\r\n@param _tokenId uint256 ID of the token to query the owner of\r\n@return owner address currently marked as the owner of the given token ID\r", - "id": 5311, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "ownerOf", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5290, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5289, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9902:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5288, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "9902:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9901:18:8" - }, - "returnParameters": { - "id": 5293, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5292, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5311, - "src": "9941:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5291, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "9941:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "9940:9:8" - }, - "scope": 5764, - "src": "9885:168:8", - "stateMutability": "view", - "superFunction": 5120, - "visibility": "public" - }, - { - "body": { - "id": 5330, - "nodeType": "Block", - "src": "10299:82:8", - "statements": [ - { - "assignments": [ - 5319 - ], - "declarations": [ - { - "constant": false, - "id": 5319, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5330, - "src": "10306:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5318, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10306:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5323, - "initialValue": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5320, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "10322:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5322, - "indexExpression": { - "argumentTypes": null, - "id": 5321, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5313, - "src": "10333:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "10322:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10306:36:8" - }, - { - "expression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5328, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5324, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5319, - "src": "10356:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5326, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "10373:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5325, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "10365:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5327, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10365:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "10356:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5317, - "id": 5329, - "nodeType": "Return", - "src": "10349:26:8" - } - ] - }, - "documentation": "@dev Returns whether the specified token exists\r\n@param _tokenId uint256 ID of the token to query the existence of\r\n@return whether the token exists\r", - "id": 5331, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "exists", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5314, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5313, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10254:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5312, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10254:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10253:18:8" - }, - "returnParameters": { - "id": 5317, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5316, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5331, - "src": "10293:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5315, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "10293:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10292:6:8" - }, - "scope": 5764, - "src": "10238:143:8", - "stateMutability": "view", - "superFunction": 5127, - "visibility": "public" - }, - { - "body": { - "id": 5375, - "nodeType": "Block", - "src": "10851:229:8", - "statements": [ - { - "assignments": [ - 5339 - ], - "declarations": [ - { - "constant": false, - "id": 5339, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5375, - "src": "10858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5338, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5343, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5341, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "10882:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5340, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "10874:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5342, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10874:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "10858:33:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5345, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "10906:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "id": 5346, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10913:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10906:12:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5344, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10898:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5348, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10898:21:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5349, - "nodeType": "ExpressionStatement", - "src": "10898:21:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5360, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5354, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5351, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10934:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5352, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10934:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5353, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10948:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "10934:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5356, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "10974:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5357, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "10981:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5358, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "10981:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - ], - "id": 5355, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "10957:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5359, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10957:35:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "10934:58:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5350, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "10926:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5361, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "10926:67:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5362, - "nodeType": "ExpressionStatement", - "src": "10926:67:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5363, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11002:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5365, - "indexExpression": { - "argumentTypes": null, - "id": 5364, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11017:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11002:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5366, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11029:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "11002:30:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5368, - "nodeType": "ExpressionStatement", - "src": "11002:30:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5370, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5339, - "src": "11053:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5371, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5333, - "src": "11060:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5372, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5335, - "src": "11065:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5369, - "name": "Approval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5098, - "src": "11044:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5373, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11044:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5374, - "nodeType": "EmitStatement", - "src": "11039:35:8" - } - ] - }, - "documentation": "@dev Approves another address to transfer the given token ID\r\nThe zero address indicates there is no approved address.\r\nThere can only be one approved address per token at a given time.\r\nCan only be called by the token owner or an approved operator.\r\n@param _to address to be approved for the given token ID\r\n@param _tokenId uint256 ID of the token to be approved\r", - "id": 5376, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "approve", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5336, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5333, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10813:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5332, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "10813:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5335, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5376, - "src": "10826:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5334, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "10826:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "10812:31:8" - }, - "returnParameters": { - "id": 5337, - "nodeType": "ParameterList", - "parameters": [], - "src": "10851:0:8" - }, - "scope": 5764, - "src": "10796:284:8", - "stateMutability": "nonpayable", - "superFunction": 5134, - "visibility": "public" - }, - { - "body": { - "id": 5387, - "nodeType": "Block", - "src": "11383:44:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5383, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "11397:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5385, - "indexExpression": { - "argumentTypes": null, - "id": 5384, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5378, - "src": "11412:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11397:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "functionReturnParameters": 5382, - "id": 5386, - "nodeType": "Return", - "src": "11390:31:8" - } - ] - }, - "documentation": "@dev Gets the approved address for a token ID, or zero if no address set\r\n@param _tokenId uint256 ID of the token to query the approval of\r\n@return address currently approved for the given token ID\r", - "id": 5388, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "getApproved", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5379, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5378, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11335:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5377, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "11335:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11334:18:8" - }, - "returnParameters": { - "id": 5382, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5381, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5388, - "src": "11374:7:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5380, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11374:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11373:9:8" - }, - "scope": 5764, - "src": "11314:113:8", - "stateMutability": "view", - "superFunction": 5141, - "visibility": "public" - }, - { - "body": { - "id": 5418, - "nodeType": "Block", - "src": "11778:146:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5399, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5396, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11793:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5397, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11800:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5398, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11800:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "11793:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5395, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "11785:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5400, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11785:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5401, - "nodeType": "ExpressionStatement", - "src": "11785:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5409, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5402, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "11818:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5406, - "indexExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5403, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11836:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11836:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "11818:29:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5407, - "indexExpression": { - "argumentTypes": null, - "id": 5405, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11848:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "11818:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5408, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11855:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "11818:46:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 5410, - "nodeType": "ExpressionStatement", - "src": "11818:46:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 5412, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "11891:3:8", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 5413, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "11891:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5414, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5390, - "src": "11903:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5415, - "name": "_approved", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5392, - "src": "11908:9:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5411, - "name": "ApprovalForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5106, - "src": "11876:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", - "typeString": "function (address,address,bool)" - } - }, - "id": 5416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "11876:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5417, - "nodeType": "EmitStatement", - "src": "11871:47:8" - } - ] - }, - "documentation": "@dev Sets or unsets the approval of a given operator\r\nAn operator is allowed to transfer all tokens of the sender on their behalf\r\n@param _to operator address to set the approval\r\n@param _approved representing the status of the approval to be set\r", - "id": 5419, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "setApprovalForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5393, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5390, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11742:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5389, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "11742:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5392, - "name": "_approved", - "nodeType": "VariableDeclaration", - "scope": 5419, - "src": "11755:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5391, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "11755:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "11741:29:8" - }, - "returnParameters": { - "id": 5394, - "nodeType": "ParameterList", - "parameters": [], - "src": "11778:0:8" - }, - "scope": 5764, - "src": "11715:209:8", - "stateMutability": "nonpayable", - "superFunction": 5148, - "visibility": "public" - }, - { - "body": { - "id": 5434, - "nodeType": "Block", - "src": "12362:56:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5428, - "name": "operatorApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5224, - "src": "12376:17:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", - "typeString": "mapping(address => mapping(address => bool))" - } - }, - "id": 5430, - "indexExpression": { - "argumentTypes": null, - "id": 5429, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5421, - "src": "12394:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:25:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", - "typeString": "mapping(address => bool)" - } - }, - "id": 5432, - "indexExpression": { - "argumentTypes": null, - "id": 5431, - "name": "_operator", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5423, - "src": "12402:9:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "12376:36:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5427, - "id": 5433, - "nodeType": "Return", - "src": "12369:43:8" - } - ] - }, - "documentation": "@dev Tells whether an operator is approved by a given owner\r\n@param _owner owner address which you want to query the approval of\r\n@param _operator operator address which you want to query the approval of\r\n@return bool whether the given operator is approved by the given owner\r", - "id": 5435, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedForAll", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5424, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5421, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12273:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5420, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12273:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5423, - "name": "_operator", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12294:17:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5422, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12294:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12266:50:8" - }, - "returnParameters": { - "id": 5427, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5426, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5435, - "src": "12353:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5425, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "12353:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12352:6:8" - }, - "scope": 5764, - "src": "12241:177:8", - "stateMutability": "view", - "superFunction": 5157, - "visibility": "public" - }, - { - "body": { - "id": 5484, - "nodeType": "Block", - "src": "12976:228:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5452, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5448, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "12991:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5450, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13008:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5449, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13000:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5451, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13000:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "12991:19:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5447, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "12983:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5453, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "12983:28:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5454, - "nodeType": "ExpressionStatement", - "src": "12983:28:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5460, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5456, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13026:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5458, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13041:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5457, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13033:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5459, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13033:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "13026:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5455, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "13018:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5461, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13018:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5462, - "nodeType": "ExpressionStatement", - "src": "13018:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5464, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13067:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5465, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13074:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5463, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "13053:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5466, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13053:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5467, - "nodeType": "ExpressionStatement", - "src": "13053:30:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5469, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13106:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5470, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13113:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5468, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "13090:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5471, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13090:32:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5472, - "nodeType": "ExpressionStatement", - "src": "13090:32:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5474, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13140:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5475, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13145:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5473, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "13129:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5476, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13129:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5477, - "nodeType": "ExpressionStatement", - "src": "13129:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5479, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5437, - "src": "13177:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5480, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5439, - "src": "13184:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5481, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "13189:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5478, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "13168:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5482, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "13168:30:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5483, - "nodeType": "EmitStatement", - "src": "13163:35:8" - } - ] - }, - "documentation": "@dev Transfers the ownership of a given token ID to another address\r\nUsage of this method is discouraged, use `safeTransferFrom` whenever possible\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5485, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5444, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5441, - "src": "12963:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5445, - "modifierName": { - "argumentTypes": null, - "id": 5443, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "12951:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "12951:21:8" - } - ], - "name": "transferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5442, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5437, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12874:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5436, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12874:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5439, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12894:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5438, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "12894:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5441, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5485, - "src": "12912:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5440, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "12912:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "12867:66:8" - }, - "returnParameters": { - "id": 5446, - "nodeType": "ParameterList", - "parameters": [], - "src": "12976:0:8" - }, - "scope": 5764, - "src": "12846:358:8", - "stateMutability": "nonpayable", - "superFunction": 5166, - "visibility": "public" - }, - { - "body": { - "id": 5504, - "nodeType": "Block", - "src": "13960:101:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5498, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5487, - "src": "14030:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5499, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5489, - "src": "14037:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5500, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "14042:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "hexValue": "", - "id": 5501, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "14052:2:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - }, - "value": "" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", - "typeString": "literal_string \"\"" - } - ], - "id": 5497, - "name": "safeTransferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5505, - 5535 - ], - "referencedDeclaration": 5535, - "src": "14013:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", - "typeString": "function (address,address,uint256,bytes memory)" - } - }, - "id": 5502, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14013:42:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5503, - "nodeType": "ExpressionStatement", - "src": "14013:42:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\n\n * Requires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5505, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5494, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5491, - "src": "13947:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5495, - "modifierName": { - "argumentTypes": null, - "id": 5493, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "13935:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "13935:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5492, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5487, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13858:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5486, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13858:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5489, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13878:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5488, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "13878:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5491, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5505, - "src": "13896:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5490, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "13896:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "13851:66:8" - }, - "returnParameters": { - "id": 5496, - "nodeType": "ParameterList", - "parameters": [], - "src": "13960:0:8" - }, - "scope": 5764, - "src": "13826:235:8", - "stateMutability": "nonpayable", - "superFunction": 5175, - "visibility": "public" - }, - { - "body": { - "id": 5534, - "nodeType": "Block", - "src": "14908:162:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5520, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "14928:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5521, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "14935:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5522, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14940:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5519, - "name": "transferFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5485 - ], - "referencedDeclaration": 5485, - "src": "14915:12:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5523, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "14915:34:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5524, - "nodeType": "ExpressionStatement", - "src": "14915:34:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5527, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5507, - "src": "15035:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5528, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5509, - "src": "15042:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5529, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "15047:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5530, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5513, - "src": "15057:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "id": 5526, - "name": "checkAndCallSafeTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5763, - "src": "15010:24:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", - "typeString": "function (address,address,uint256,bytes memory) returns (bool)" - } - }, - "id": 5531, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15010:53:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5525, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "15002:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5532, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15002:62:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5533, - "nodeType": "ExpressionStatement", - "src": "15002:62:8" - } - ] - }, - "documentation": "@dev Safely transfers the ownership of a given token ID to another address\r\nIf the target address is a contract, it must implement `onERC721Received`,\r\nwhich is called upon a safe transfer, and return the magic value\r\n`bytes4(keccak256(\"onERC721Received(address,uint256,bytes)\"))`; otherwise,\r\nthe transfer is reverted.\r\nRequires the msg sender to be the owner, approved, or operator\r\n@param _from current owner of the token\r\n@param _to address to receive the ownership of the given token ID\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes data to send along with a safe transfer check\r", - "id": 5535, - "implemented": true, - "kind": "function", - "modifiers": [ - { - "arguments": [ - { - "argumentTypes": null, - "id": 5516, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5511, - "src": "14895:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "id": 5517, - "modifierName": { - "argumentTypes": null, - "id": 5515, - "name": "canTransfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5255, - "src": "14883:11:8", - "typeDescriptions": { - "typeIdentifier": "t_modifier$_t_uint256_$", - "typeString": "modifier (uint256)" - } - }, - "nodeType": "ModifierInvocation", - "src": "14883:21:8" - } - ], - "name": "safeTransferFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5514, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5507, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14781:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5506, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14781:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5509, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14801:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5508, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "14801:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5511, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14819:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5510, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "14819:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5513, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5535, - "src": "14842:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5512, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "14842:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "14774:91:8" - }, - "returnParameters": { - "id": 5518, - "nodeType": "ParameterList", - "parameters": [], - "src": "14908:0:8" - }, - "scope": 5764, - "src": "14749:321:8", - "stateMutability": "nonpayable", - "superFunction": 5186, - "visibility": "public" - }, - { - "body": { - "id": 5566, - "nodeType": "Block", - "src": "15551:330:8", - "statements": [ - { - "assignments": [ - 5545 - ], - "declarations": [ - { - "constant": false, - "id": 5545, - "name": "owner", - "nodeType": "VariableDeclaration", - "scope": 5566, - "src": "15558:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5544, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15558:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5549, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5547, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15582:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5546, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "15574:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5548, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15574:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "15558:33:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5563, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "id": 5558, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5552, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5550, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15763:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5551, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15775:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15763:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5557, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5554, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5539, - "src": "15803:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5553, - "name": "getApproved", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5388 - ], - "referencedDeclaration": 5388, - "src": "15791:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5555, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15791:21:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5556, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15816:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "15791:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:61:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "BinaryOperation", - "operator": "||", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5560, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5545, - "src": "15852:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5561, - "name": "_spender", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5537, - "src": "15859:8:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5559, - "name": "isApprovedForAll", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5435 - ], - "referencedDeclaration": 5435, - "src": "15835:16:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", - "typeString": "function (address,address) view returns (bool)" - } - }, - "id": 5562, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "15835:33:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "15763:105:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5564, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "15754:121:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5543, - "id": 5565, - "nodeType": "Return", - "src": "15747:128:8" - } - ] - }, - "documentation": "@dev Returns whether the given spender can transfer a given token ID\r\n@param _spender address of the spender to query\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@return bool whether the msg.sender is approved for the given token ID,\r\n is an operator of the owner, or is the owner of the token\r", - "id": 5567, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "isApprovedOrOwner", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5540, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5537, - "name": "_spender", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15459:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5536, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "15459:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5539, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15482:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5538, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "15482:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15452:51:8" - }, - "returnParameters": { - "id": 5543, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5542, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5567, - "src": "15542:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5541, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "15542:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "15541:6:8" - }, - "scope": 5764, - "src": "15426:455:8", - "stateMutability": "view", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5595, - "nodeType": "Block", - "src": "16193:118:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5579, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5575, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16208:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5577, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16223:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5576, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16215:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5578, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16215:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "16208:17:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5574, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "16200:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5580, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16200:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5581, - "nodeType": "ExpressionStatement", - "src": "16200:26:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5583, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16244:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5584, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16249:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5582, - "name": "addTokenTo", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5690, - "src": "16233:10:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5585, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16233:25:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5586, - "nodeType": "ExpressionStatement", - "src": "16233:25:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5589, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16287:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5588, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16279:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5590, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16279:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5591, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5569, - "src": "16291:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5592, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5571, - "src": "16296:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5587, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16270:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5593, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16270:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5594, - "nodeType": "EmitStatement", - "src": "16265:40:8" - } - ] - }, - "documentation": "@dev Internal function to mint a new token\r\nReverts if the given token ID already exists\r\n@param _to The address that will own the minted token\r\n@param _tokenId uint256 ID of the token to be minted by the msg.sender\r", - "id": 5596, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5572, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5569, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16153:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5568, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16153:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5571, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5596, - "src": "16166:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5570, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16166:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16152:31:8" - }, - "returnParameters": { - "id": 5573, - "nodeType": "ParameterList", - "parameters": [], - "src": "16193:0:8" - }, - "scope": 5764, - "src": "16138:173:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5621, - "nodeType": "Block", - "src": "16562:134:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5604, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16583:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5605, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16591:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5603, - "name": "clearApproval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5655, - "src": "16569:13:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5606, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16569:31:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5607, - "nodeType": "ExpressionStatement", - "src": "16569:31:8" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5609, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16623:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5610, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16631:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5608, - "name": "removeTokenFrom", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5725, - "src": "16607:15:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5611, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16607:33:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5612, - "nodeType": "ExpressionStatement", - "src": "16607:33:8" - }, - { - "eventCall": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5614, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5598, - "src": "16661:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5616, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "16677:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5615, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "16669:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5617, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16669:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 5618, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5600, - "src": "16681:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5613, - "name": "Transfer", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5090, - "src": "16652:8:8", - "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,address,uint256)" - } - }, - "id": 5619, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "16652:38:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5620, - "nodeType": "EmitStatement", - "src": "16647:43:8" - } - ] - }, - "documentation": "@dev Internal function to burn a specific token\r\nReverts if the token does not exist\r\n@param _tokenId uint256 ID of the token being burned by the msg.sender\r", - "id": 5622, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "_burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5601, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5598, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16519:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5597, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16519:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5600, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5622, - "src": "16535:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5599, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "16535:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16518:34:8" - }, - "returnParameters": { - "id": 5602, - "nodeType": "ParameterList", - "parameters": [], - "src": "16562:0:8" - }, - "scope": 5764, - "src": "16504:192:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5654, - "nodeType": "Block", - "src": "17032:153:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5634, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5631, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17055:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5630, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "17047:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5632, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17047:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5633, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5624, - "src": "17068:6:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17047:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5629, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17039:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5635, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17039:36:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5636, - "nodeType": "ExpressionStatement", - "src": "17039:36:8" - }, - { - "condition": { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5643, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5637, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17086:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5639, - "indexExpression": { - "argumentTypes": null, - "id": 5638, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17101:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17086:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "!=", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5641, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17122:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5640, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17114:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5642, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17114:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17086:38:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5653, - "nodeType": "IfStatement", - "src": "17082:98:8", - "trueBody": { - "id": 5652, - "nodeType": "Block", - "src": "17126:54:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 5650, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5644, - "name": "tokenApprovals", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5214, - "src": "17135:14:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5646, - "indexExpression": { - "argumentTypes": null, - "id": 5645, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5626, - "src": "17150:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17135:24:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5648, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17170:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5647, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17162:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5649, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17162:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17135:37:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5651, - "nodeType": "ExpressionStatement", - "src": "17135:37:8" - } - ] - } - } - ] - }, - "documentation": "@dev Internal function to clear current approval of a given token ID\r\nReverts if the given address is not indeed the owner of the token\r\n@param _owner owner of the token\r\n@param _tokenId uint256 ID of the token to be transferred\r", - "id": 5655, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "clearApproval", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5627, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5624, - "name": "_owner", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "16989:14:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5623, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "16989:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5626, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5655, - "src": "17005:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5625, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17005:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "16988:34:8" - }, - "returnParameters": { - "id": 5628, - "nodeType": "ParameterList", - "parameters": [], - "src": "17032:0:8" - }, - "scope": 5764, - "src": "16966:219:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5689, - "nodeType": "Block", - "src": "17515:148:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5669, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5663, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17530:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5665, - "indexExpression": { - "argumentTypes": null, - "id": 5664, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17541:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17530:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5667, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17562:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5666, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "17554:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5668, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17554:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "17530:34:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5662, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "17522:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5670, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17522:43:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5671, - "nodeType": "ExpressionStatement", - "src": "17522:43:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5676, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5672, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "17572:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5674, - "indexExpression": { - "argumentTypes": null, - "id": 5673, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5659, - "src": "17583:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17572:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 5675, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17595:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "17572:26:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5677, - "nodeType": "ExpressionStatement", - "src": "17572:26:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5687, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5678, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17605:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5680, - "indexExpression": { - "argumentTypes": null, - "id": 5679, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17622:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "17605:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5685, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "17655:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5681, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "17629:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5683, - "indexExpression": { - "argumentTypes": null, - "id": 5682, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5657, - "src": "17646:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "17629:21:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5684, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "add", - "nodeType": "MemberAccess", - "referencedDeclaration": 9856, - "src": "17629:25:8", - "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": 5686, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "17629:28:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "17605:52:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5688, - "nodeType": "ExpressionStatement", - "src": "17605:52:8" - } - ] - }, - "documentation": "@dev Internal function to add a token ID to the list of a given address\r\n@param _to address representing the new owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be added to the tokens list of the given address\r", - "id": 5690, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "addTokenTo", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5660, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5657, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17475:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5656, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17475:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5659, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5690, - "src": "17488:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5658, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17488:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17474:31:8" - }, - "returnParameters": { - "id": 5661, - "nodeType": "ParameterList", - "parameters": [], - "src": "17515:0:8" - }, - "scope": 5764, - "src": "17455:208:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5724, - "nodeType": "Block", - "src": "18016:151:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "id": 5702, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5699, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18039:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5698, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "18031:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5700, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18031:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5701, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18052:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "src": "18031:26:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 5697, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "18023:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 5703, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18023:35:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5704, - "nodeType": "ExpressionStatement", - "src": "18023:35:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5714, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5705, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18065:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5707, - "indexExpression": { - "argumentTypes": null, - "id": 5706, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18082:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18065:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "31", - "id": 5712, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18119:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - }, - "value": "1" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" - } - ], - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5708, - "name": "ownedTokensCount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5218, - "src": "18091:16:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", - "typeString": "mapping(address => uint256)" - } - }, - "id": 5710, - "indexExpression": { - "argumentTypes": null, - "id": 5709, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5692, - "src": "18108:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "18091:23:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5711, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sub", - "nodeType": "MemberAccess", - "referencedDeclaration": 9832, - "src": "18091:27:8", - "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": 5713, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18091:30:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "18065:56:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 5715, - "nodeType": "ExpressionStatement", - "src": "18065:56:8" - }, - { - "expression": { - "argumentTypes": null, - "id": 5722, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 5716, - "name": "tokenOwner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5210, - "src": "18128:10:8", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", - "typeString": "mapping(uint256 => address)" - } - }, - "id": 5718, - "indexExpression": { - "argumentTypes": null, - "id": 5717, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5694, - "src": "18139:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "18128:20:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "hexValue": "30", - "id": 5720, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18159:1:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - } - ], - "id": 5719, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "18151:7:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_address_$", - "typeString": "type(address)" - }, - "typeName": "address" - }, - "id": 5721, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18151:10:8", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "src": "18128:33:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5723, - "nodeType": "ExpressionStatement", - "src": "18128:33:8" - } - ] - }, - "documentation": "@dev Internal function to remove a token ID from the list of a given address\r\n@param _from address representing the previous owner of the given token ID\r\n@param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\r", - "id": 5725, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "removeTokenFrom", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5695, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5692, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17974:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5691, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "17974:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5694, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5725, - "src": "17989:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5693, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "17989:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "17973:33:8" - }, - "returnParameters": { - "id": 5696, - "nodeType": "ParameterList", - "parameters": [], - "src": "18016:0:8" - }, - "scope": 5764, - "src": "17949:218:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - }, - { - "body": { - "id": 5762, - "nodeType": "Block", - "src": "18846:195:8", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 5741, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "18857:17:8", - "subExpression": { - "argumentTypes": null, - "arguments": [], - "expression": { - "argumentTypes": [], - "expression": { - "argumentTypes": null, - "id": 5738, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18858:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 5739, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "isContract", - "nodeType": "MemberAccess", - "referencedDeclaration": 5008, - "src": "18858:14:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", - "typeString": "function (address) view returns (bool)" - } - }, - "id": 5740, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18858:16:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 5745, - "nodeType": "IfStatement", - "src": "18853:51:8", - "trueBody": { - "id": 5744, - "nodeType": "Block", - "src": "18876:28:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 5742, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "18892:4:8", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "functionReturnParameters": 5737, - "id": 5743, - "nodeType": "Return", - "src": "18885:11:8" - } - ] - } - }, - { - "assignments": [ - 5747 - ], - "declarations": [ - { - "constant": false, - "id": 5747, - "name": "retval", - "nodeType": "VariableDeclaration", - "scope": 5762, - "src": "18910:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "typeName": { - "id": 5746, - "name": "bytes4", - "nodeType": "ElementaryTypeName", - "src": "18910:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 5756, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5752, - "name": "_from", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5727, - "src": "18971:5:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5753, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5731, - "src": "18978:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 5754, - "name": "_data", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5733, - "src": "18988:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes memory" - } - ], - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5749, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5729, - "src": "18941:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - } - ], - "id": 5748, - "name": "ERC721Receiver", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5080, - "src": "18926:14:8", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_ERC721Receiver_$5080_$", - "typeString": "type(contract ERC721Receiver)" - } - }, - "id": 5750, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:19:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721Receiver_$5080", - "typeString": "contract ERC721Receiver" - } - }, - "id": 5751, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "onERC721Received", - "nodeType": "MemberAccess", - "referencedDeclaration": 5079, - "src": "18926:36:8", - "typeDescriptions": { - "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", - "typeString": "function (address,uint256,bytes memory) external returns (bytes4)" - } - }, - "id": 5755, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "18926:68:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "18910:84:8" - }, - { - "expression": { - "argumentTypes": null, - "components": [ - { - "argumentTypes": null, - "commonType": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - }, - "id": 5759, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "argumentTypes": null, - "id": 5757, - "name": "retval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5747, - "src": "19009:6:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "argumentTypes": null, - "id": 5758, - "name": "ERC721_RECEIVED", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5206, - "src": "19019:15:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes4", - "typeString": "bytes4" - } - }, - "src": "19009:25:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "id": 5760, - "isConstant": false, - "isInlineArray": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "TupleExpression", - "src": "19008:27:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 5737, - "id": 5761, - "nodeType": "Return", - "src": "19001:34:8" - } - ] - }, - "documentation": "@dev Internal function to invoke `onERC721Received` on a target address\r\nThe call is not executed if the target address is not a contract\r\n@param _from address representing the previous owner of the given token ID\r\n@param _to target address that will receive the tokens\r\n@param _tokenId uint256 ID of the token to be transferred\r\n@param _data bytes optional data to send along with the call\r\n@return whether the call correctly returned the expected magic value\r", - "id": 5763, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "checkAndCallSafeTransfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5734, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5727, - "name": "_from", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18724:13:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5726, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18724:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5729, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18744:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "18744:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5731, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18762:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5730, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "18762:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5733, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18785:18:8", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_bytes_memory_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 5732, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "18785:5:8", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18717:91:8" - }, - "returnParameters": { - "id": 5737, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5736, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 5763, - "src": "18837:4:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 5735, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "18837:4:8", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "18836:6:8" - }, - "scope": 5764, - "src": "18684:357:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "internal" - } - ], - "scope": 5798, - "src": "6942:12102:8" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 5765, - "name": "ERC721BasicToken", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 5764, - "src": "19081:16:8", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC721BasicToken_$5764", - "typeString": "contract ERC721BasicToken" - } - }, - "id": 5766, - "nodeType": "InheritanceSpecifier", - "src": "19081:16:8" - } - ], - "contractDependencies": [ - 5017, - 5065, - 5187, - 5764 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 5797, - "linearizedBaseContracts": [ - 5797, - 5764, - 5187, - 5065, - 5017 - ], - "name": "ERC721BasicTokenMock", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": { - "id": 5780, - "nodeType": "Block", - "src": "19155:39:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5776, - "name": "_to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5768, - "src": "19174:3:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5777, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5770, - "src": "19179:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5773, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19162:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5775, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_mint", - "nodeType": "MemberAccess", - "referencedDeclaration": 5596, - "src": "19162:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5778, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19162:26:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5779, - "nodeType": "ExpressionStatement", - "src": "19162:26:8" - } - ] - }, - "documentation": null, - "id": 5781, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "mint", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5771, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5768, - "name": "_to", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19117:11:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 5767, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "19117:7:8", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 5770, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5781, - "src": "19130:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5769, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19130:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19116:31:8" - }, - "returnParameters": { - "id": 5772, - "nodeType": "ParameterList", - "parameters": [], - "src": "19155:0:8" - }, - "scope": 5797, - "src": "19103:91:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 5795, - "nodeType": "Block", - "src": "19239:53:8", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 5790, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19266:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 5789, - "name": "ownerOf", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 5311 - ], - "referencedDeclaration": 5311, - "src": "19258:7:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", - "typeString": "function (uint256) view returns (address)" - } - }, - "id": 5791, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19258:17:8", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 5792, - "name": "_tokenId", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 5783, - "src": "19277:8:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 5786, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10464, - "src": "19246:5:8", - "typeDescriptions": { - "typeIdentifier": "t_super$_ERC721BasicTokenMock_$5797", - "typeString": "contract super ERC721BasicTokenMock" - } - }, - "id": 5788, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "_burn", - "nodeType": "MemberAccess", - "referencedDeclaration": 5622, - "src": "19246:11:8", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 5793, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "19246:40:8", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 5794, - "nodeType": "ExpressionStatement", - "src": "19246:40:8" - } - ] - }, - "documentation": null, - "id": 5796, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "burn", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 5784, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 5783, - "name": "_tokenId", - "nodeType": "VariableDeclaration", - "scope": 5796, - "src": "19214:16:8", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 5782, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "19214:7:8", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "19213:18:8" - }, - "returnParameters": { - "id": 5785, - "nodeType": "ParameterList", - "parameters": [], - "src": "19239:0:8" - }, - "scope": 5797, - "src": "19200:92:8", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - } - ], - "scope": 5798, - "src": "19048:247:8" - } - ], - "src": "0:19297:8" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:20.084Z", - "devdoc": { - "author": "Matt Condon (@shrugs)\r", - "details": "Implements ERC165 using a lookup table.\r", - "methods": { - "constructor": { - "details": "A contract implementing SupportsInterfaceWithLookup\r implement ERC165 itself\r" - }, - "supportsInterface(bytes4)": { - "details": "implement supportsInterface(bytes4) using a lookup table\r" - } - }, - "title": "SupportsInterfaceWithLookup\r" - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/TodoList.json b/src/contracts/TodoList.json deleted file mode 100644 index 9387e28..0000000 --- a/src/contracts/TodoList.json +++ /dev/null @@ -1,2027 +0,0 @@ -{ - "contractName": "TodoList", - "abi": [ - { - "inputs": [ - { - "internalType": "string", - "name": "_owner", - "type": "string" - } - ], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [], - "name": "owner", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function", - "constant": true - }, - { - "inputs": [], - "name": "taskCounter", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "constant": true - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "name": "tasks", - "outputs": [ - { - "internalType": "uint256", - "name": "index", - "type": "uint256" - }, - { - "internalType": "string", - "name": "content", - "type": "string" - }, - { - "internalType": "bool", - "name": "completed", - "type": "bool" - }, - { - "internalType": "uint256", - "name": "timestamp", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function", - "constant": true - }, - { - "inputs": [ - { - "internalType": "string", - "name": "_content", - "type": "string" - } - ], - "name": "createTask", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_index", - "type": "uint256" - } - ], - "name": "toggleTask", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_owner\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_content\",\"type\":\"string\"}],\"name\":\"createTask\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"taskCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tasks\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"content\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"completed\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_index\",\"type\":\"uint256\"}],\"name\":\"toggleTask\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/dapp-boilerplate/contracts/contracts/TodoList.sol\":\"TodoList\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/dapp-boilerplate/contracts/contracts/TodoList.sol\":{\"keccak256\":\"0xb487141a762bdc512c71937a6cbc51fbe447b9b72ba30e99e1c5eb29a9a98fa6\",\"urls\":[\"bzz-raw://fe72f7dc0296f049d5241709e8e93d570ba5e2c28f44a9ce9020d33b218d675b\",\"dweb:/ipfs/QmXEeSGi8zWNyad7QrcjqKs4WXugKLwnStKun7Vusbmtym\"]}},\"version\":1}", - "bytecode": "0x6080604052600060015534801561001557600080fd5b506040516107033803806107038339818101604052602081101561003857600080fd5b810190808051604051939291908464010000000082111561005857600080fd5b90830190602082018581111561006d57600080fd5b825164010000000081118282018810171561008757600080fd5b82525081516020918201929091019080838360005b838110156100b457818101518382015260200161009c565b50505050905090810190601f1680156100e15780820380516001836020036101000a031916815260200191505b50604052505081516100fb91506000906020840190610102565b505061019d565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061014357805160ff1916838001178555610170565b82800160010185558215610170579182015b82811115610170578251825591602001919060010190610155565b5061017c929150610180565b5090565b61019a91905b8082111561017c5760008155600101610186565b90565b610557806101ac6000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063111002aa1461005c5780635867173014610104578063613137a41461011e5780638d9776721461013b5780638da5cb5b146101e9575b600080fd5b6101026004803603602081101561007257600080fd5b81019060208101813564010000000081111561008d57600080fd5b82018360208201111561009f57600080fd5b803590602001918460018302840111640100000000831117156100c157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610266945050505050565b005b61010c6102ef565b60408051918252519081900360200190f35b6101026004803603602081101561013457600080fd5b50356102f5565b6101586004803603602081101561015157600080fd5b5035610319565b604051808581526020018060200184151515158152602001838152602001828103825285818151815260200191508051906020019080838360005b838110156101ab578181015183820152602001610193565b50505050905090810190601f1680156101d85780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b6101f16103ce565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022b578181015183820152602001610213565b50505050905090810190601f1680156102585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600180548101905561027661045c565b50604080516080810182526001805480835260208084018681526000858701819052426060870152928352600282529490912083518155935180519394859490936102c693908501920190610486565b50604082015160028201805460ff19169115159190911790556060909101516003909101555050565b60015481565b600090815260026020819052604090912001805460ff19811660ff90911615179055565b60026020818152600092835260409283902080546001808301805487519281161561010002600019011695909504601f81018590048502820185019096528581529094919390929091908301828280156103b45780601f10610389576101008083540402835291602001916103b4565b820191906000526020600020905b81548152906001019060200180831161039757829003601f168201915b505050506002830154600390930154919260ff1691905084565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104545780601f1061042957610100808354040283529160200191610454565b820191906000526020600020905b81548152906001019060200180831161043757829003601f168201915b505050505081565b60405180608001604052806000815260200160608152602001600015158152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106104c757805160ff19168380011785556104f4565b828001600101855582156104f4579182015b828111156104f45782518255916020019190600101906104d9565b50610500929150610504565b5090565b61051e91905b80821115610500576000815560010161050a565b9056fea2646970667358221220eccd5360b4ca26c4cdeb75743e95c1aec5aa0ed7504e568872bf74c6e3f2b62664736f6c63430006060033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c8063111002aa1461005c5780635867173014610104578063613137a41461011e5780638d9776721461013b5780638da5cb5b146101e9575b600080fd5b6101026004803603602081101561007257600080fd5b81019060208101813564010000000081111561008d57600080fd5b82018360208201111561009f57600080fd5b803590602001918460018302840111640100000000831117156100c157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610266945050505050565b005b61010c6102ef565b60408051918252519081900360200190f35b6101026004803603602081101561013457600080fd5b50356102f5565b6101586004803603602081101561015157600080fd5b5035610319565b604051808581526020018060200184151515158152602001838152602001828103825285818151815260200191508051906020019080838360005b838110156101ab578181015183820152602001610193565b50505050905090810190601f1680156101d85780820380516001836020036101000a031916815260200191505b509550505050505060405180910390f35b6101f16103ce565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022b578181015183820152602001610213565b50505050905090810190601f1680156102585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b600180548101905561027661045c565b50604080516080810182526001805480835260208084018681526000858701819052426060870152928352600282529490912083518155935180519394859490936102c693908501920190610486565b50604082015160028201805460ff19169115159190911790556060909101516003909101555050565b60015481565b600090815260026020819052604090912001805460ff19811660ff90911615179055565b60026020818152600092835260409283902080546001808301805487519281161561010002600019011695909504601f81018590048502820185019096528581529094919390929091908301828280156103b45780601f10610389576101008083540402835291602001916103b4565b820191906000526020600020905b81548152906001019060200180831161039757829003601f168201915b505050506002830154600390930154919260ff1691905084565b6000805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156104545780601f1061042957610100808354040283529160200191610454565b820191906000526020600020905b81548152906001019060200180831161043757829003601f168201915b505050505081565b60405180608001604052806000815260200160608152602001600015158152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106104c757805160ff19168380011785556104f4565b828001600101855582156104f4579182015b828111156104f45782518255916020019190600101906104d9565b50610500929150610504565b5090565b61051e91905b80821115610500576000815560010161050a565b9056fea2646970667358221220eccd5360b4ca26c4cdeb75743e95c1aec5aa0ed7504e568872bf74c6e3f2b62664736f6c63430006060033", - "sourceMap": "38:624:2:-:0;;;115:1;89:27;;268:70;5:9:-1;2:2;;;27:1;24;17:12;2:2;268:70:2;;;;;;;;;;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;268:70:2;;;;;;;;;;;;;19:11:-1;14:3;11:20;8:2;;;44:1;41;34:12;8:2;62:21;;;;123:4;114:14;;138:31;;;135:2;;;182:1;179;172:12;135:2;213:10;;261:11;244:29;;285:43;;;282:58;-1:-1;233:115;230:2;;;361:1;358;351:12;230:2;372:25;;-1:-1;268:70:2;;420:4:-1;411:14;;;;268:70:2;;;;;411:14:-1;268:70:2;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;268:70:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;268:70:2;;-1:-1:-1;;318:14:2;;;;-1:-1:-1;318:5:2;;:14;;;;;:::i;:::-;;268:70;38:624;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;38:624:2;;;-1:-1:-1;38:624:2;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", - "deployedSourceMap": "38:624:2:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;38:624:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;346:193:2;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;346:193:2;;;;;;;;27:11:-1;11:28;;8:2;;;52:1;49;42:12;8:2;346:193:2;;41:9:-1;34:4;18:14;14:25;11:40;8:2;;;64:1;61;54:12;8:2;346:193:2;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;346:193:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;346:193:2;;-1:-1:-1;346:193:2;;-1:-1:-1;;;;;346:193:2:i;:::-;;89:27;;;:::i;:::-;;;;;;;;;;;;;;;;545:108;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;545:108:2;;:::i;227:32::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;227:32:2;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;227:32:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;63:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;63:19:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;346:193;406:11;:14;;;;;;427:16;;:::i;:::-;-1:-1:-1;446:51:2;;;;;;;;451:11;;;446:51;;;;;;;;;;-1:-1:-1;446:51:2;;;;;;481:15;446:51;;;;506:18;;;:5;:18;;;;;;:25;;;;;;;;446:51;;;;506:18;;:25;;;;;;;;;:::i;:::-;-1:-1:-1;506:25:2;;;;;;;;;-1:-1:-1;;506:25:2;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;346:193:2:o;89:27::-;;;;:::o;545:108::-;622:13;;;;:5;:13;;;;;;;;:23;;;-1:-1:-1;;594:51:2;;622:23;;;;620:25;594:51;;;545:108::o;227:32::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;227:32:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;227:32:2;;;;;;;;;;;;;;;-1:-1:-1;227:32:2;:::o;63:19::-;;;;;;;;;;;;;;;-1:-1:-1;;63:19:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;38:624::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;38:624:2;;;-1:-1:-1;38:624:2;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o", - "source": "pragma solidity >=0.5.0<= 0.7.0;\r\n\r\n\r\ncontract TodoList {\r\n\r\n string public owner;\r\n\r\n uint public taskCounter = 0;\r\n\r\n struct Task {\r\n uint index;\r\n string content;\r\n bool completed;\r\n uint timestamp;\r\n }\r\n\r\n mapping(uint=>Task) public tasks;\r\n\r\n\r\n constructor(string memory _owner) public {\r\n\r\n owner = _owner;\r\n }\r\n\r\n\r\n function createTask(string memory _content) public {\r\n\r\n taskCounter ++;\r\n Task memory task = Task(taskCounter, _content, false, block.timestamp);\r\n\r\n tasks[taskCounter] = task;\r\n\r\n }\r\n\r\n function toggleTask(uint _index) public {\r\n\r\n tasks[_index].completed = ! tasks[_index].completed;\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\dapp-boilerplate\\contracts\\contracts\\TodoList.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/dapp-boilerplate/contracts/contracts/TodoList.sol", - "exportedSymbols": { - "TodoList": [ - 182 - ] - }, - "id": 183, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 111, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<=", - "0.7", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:2" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 182, - "linearizedBaseContracts": [ - 182 - ], - "name": "TodoList", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "functionSelector": "8da5cb5b", - "id": 113, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 182, - "src": "63:19:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 112, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "63:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "58671730", - "id": 116, - "mutability": "mutable", - "name": "taskCounter", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 182, - "src": "89:27:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 114, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "89:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 115, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "115:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "canonicalName": "TodoList.Task", - "id": 125, - "members": [ - { - "constant": false, - "id": 118, - "mutability": "mutable", - "name": "index", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 125, - "src": "142:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "142:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "mutability": "mutable", - "name": "content", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 125, - "src": "159:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 119, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "159:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 122, - "mutability": "mutable", - "name": "completed", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 125, - "src": "180:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 121, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "180:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 124, - "mutability": "mutable", - "name": "timestamp", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 125, - "src": "201:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 123, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "201:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Task", - "nodeType": "StructDefinition", - "scope": 182, - "src": "123:98:2", - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "8d977672", - "id": 129, - "mutability": "mutable", - "name": "tasks", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 182, - "src": "227:32:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Task_$125_storage_$", - "typeString": "mapping(uint256 => struct TodoList.Task)" - }, - "typeName": { - "id": 128, - "keyType": { - "id": 126, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "235:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "227:19:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Task_$125_storage_$", - "typeString": "mapping(uint256 => struct TodoList.Task)" - }, - "valueType": { - "contractScope": null, - "id": 127, - "name": "Task", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 125, - "src": "241:4:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Task_$125_storage_ptr", - "typeString": "struct TodoList.Task" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 138, - "nodeType": "Block", - "src": "309:29:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 134, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 113, - "src": "318:5:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 135, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "326:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "318:14:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 137, - "nodeType": "ExpressionStatement", - "src": "318:14:2" - } - ] - }, - "documentation": null, - "id": 139, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 132, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 131, - "mutability": "mutable", - "name": "_owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 139, - "src": "280:20:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 130, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "280:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "279:22:2" - }, - "returnParameters": { - "id": 133, - "nodeType": "ParameterList", - "parameters": [], - "src": "309:0:2" - }, - "scope": 182, - "src": "268:70:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 163, - "nodeType": "Block", - "src": "397:142:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "406:14:2", - "subExpression": { - "argumentTypes": null, - "id": 144, - "name": "taskCounter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "406:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 146, - "nodeType": "ExpressionStatement", - "src": "406:14:2" - }, - { - "assignments": [ - 148 - ], - "declarations": [ - { - "constant": false, - "id": 148, - "mutability": "mutable", - "name": "task", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 163, - "src": "427:16:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Task_$125_memory_ptr", - "typeString": "struct TodoList.Task" - }, - "typeName": { - "contractScope": null, - "id": 147, - "name": "Task", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 125, - "src": "427:4:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Task_$125_storage_ptr", - "typeString": "struct TodoList.Task" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 156, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 150, - "name": "taskCounter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "451:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 151, - "name": "_content", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 141, - "src": "464:8:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 152, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "474:5:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 153, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "481:5:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "481:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 149, - "name": "Task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 125, - "src": "446:4:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Task_$125_storage_ptr_$", - "typeString": "type(struct TodoList.Task storage pointer)" - } - }, - "id": 155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "446:51:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Task_$125_memory_ptr", - "typeString": "struct TodoList.Task memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "427:70:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 157, - "name": "tasks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 129, - "src": "506:5:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Task_$125_storage_$", - "typeString": "mapping(uint256 => struct TodoList.Task storage ref)" - } - }, - "id": 159, - "indexExpression": { - "argumentTypes": null, - "id": 158, - "name": "taskCounter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "512:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "506:18:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Task_$125_storage", - "typeString": "struct TodoList.Task storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 160, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 148, - "src": "527:4:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Task_$125_memory_ptr", - "typeString": "struct TodoList.Task memory" - } - }, - "src": "506:25:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Task_$125_storage", - "typeString": "struct TodoList.Task storage ref" - } - }, - "id": 162, - "nodeType": "ExpressionStatement", - "src": "506:25:2" - } - ] - }, - "documentation": null, - "functionSelector": "111002aa", - "id": 164, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createTask", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 141, - "mutability": "mutable", - "name": "_content", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 164, - "src": "366:22:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 140, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "366:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "365:24:2" - }, - "returnParameters": { - "id": 143, - "nodeType": "ParameterList", - "parameters": [], - "src": "397:0:2" - }, - "scope": 182, - "src": "346:193:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 180, - "nodeType": "Block", - "src": "585:68:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 169, - "name": "tasks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 129, - "src": "594:5:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Task_$125_storage_$", - "typeString": "mapping(uint256 => struct TodoList.Task storage ref)" - } - }, - "id": 171, - "indexExpression": { - "argumentTypes": null, - "id": 170, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 166, - "src": "600:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "594:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Task_$125_storage", - "typeString": "struct TodoList.Task storage ref" - } - }, - "id": 172, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "completed", - "nodeType": "MemberAccess", - "referencedDeclaration": 122, - "src": "594:23:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "620:25:2", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 173, - "name": "tasks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 129, - "src": "622:5:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Task_$125_storage_$", - "typeString": "mapping(uint256 => struct TodoList.Task storage ref)" - } - }, - "id": 175, - "indexExpression": { - "argumentTypes": null, - "id": 174, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 166, - "src": "628:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "622:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Task_$125_storage", - "typeString": "struct TodoList.Task storage ref" - } - }, - "id": 176, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "completed", - "nodeType": "MemberAccess", - "referencedDeclaration": 122, - "src": "622:23:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "594:51:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 179, - "nodeType": "ExpressionStatement", - "src": "594:51:2" - } - ] - }, - "documentation": null, - "functionSelector": "613137a4", - "id": 181, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toggleTask", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 167, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 166, - "mutability": "mutable", - "name": "_index", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 181, - "src": "565:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 165, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "565:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "564:13:2" - }, - "returnParameters": { - "id": 168, - "nodeType": "ParameterList", - "parameters": [], - "src": "585:0:2" - }, - "scope": 182, - "src": "545:108:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 183, - "src": "38:624:2" - } - ], - "src": "0:666:2" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/dapp-boilerplate/contracts/contracts/TodoList.sol", - "exportedSymbols": { - "TodoList": [ - 182 - ] - }, - "id": 183, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 111, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<=", - "0.7", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:2" - }, - { - "abstract": false, - "baseContracts": [], - "contractDependencies": [], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 182, - "linearizedBaseContracts": [ - 182 - ], - "name": "TodoList", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "functionSelector": "8da5cb5b", - "id": 113, - "mutability": "mutable", - "name": "owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 182, - "src": "63:19:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string" - }, - "typeName": { - "id": 112, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "63:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "58671730", - "id": 116, - "mutability": "mutable", - "name": "taskCounter", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 182, - "src": "89:27:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 114, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "89:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "30", - "id": 115, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "115:1:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "visibility": "public" - }, - { - "canonicalName": "TodoList.Task", - "id": 125, - "members": [ - { - "constant": false, - "id": 118, - "mutability": "mutable", - "name": "index", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 125, - "src": "142:10:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 117, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "142:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 120, - "mutability": "mutable", - "name": "content", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 125, - "src": "159:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - }, - "typeName": { - "id": 119, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "159:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 122, - "mutability": "mutable", - "name": "completed", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 125, - "src": "180:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 121, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "180:4:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 124, - "mutability": "mutable", - "name": "timestamp", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 125, - "src": "201:14:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 123, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "201:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "name": "Task", - "nodeType": "StructDefinition", - "scope": 182, - "src": "123:98:2", - "visibility": "public" - }, - { - "constant": false, - "functionSelector": "8d977672", - "id": 129, - "mutability": "mutable", - "name": "tasks", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 182, - "src": "227:32:2", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Task_$125_storage_$", - "typeString": "mapping(uint256 => struct TodoList.Task)" - }, - "typeName": { - "id": 128, - "keyType": { - "id": 126, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "235:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Mapping", - "src": "227:19:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Task_$125_storage_$", - "typeString": "mapping(uint256 => struct TodoList.Task)" - }, - "valueType": { - "contractScope": null, - "id": 127, - "name": "Task", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 125, - "src": "241:4:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Task_$125_storage_ptr", - "typeString": "struct TodoList.Task" - } - } - }, - "value": null, - "visibility": "public" - }, - { - "body": { - "id": 138, - "nodeType": "Block", - "src": "309:29:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 136, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 134, - "name": "owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 113, - "src": "318:5:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 135, - "name": "_owner", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "326:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - "src": "318:14:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage", - "typeString": "string storage ref" - } - }, - "id": 137, - "nodeType": "ExpressionStatement", - "src": "318:14:2" - } - ] - }, - "documentation": null, - "id": 139, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 132, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 131, - "mutability": "mutable", - "name": "_owner", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 139, - "src": "280:20:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 130, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "280:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "279:22:2" - }, - "returnParameters": { - "id": 133, - "nodeType": "ParameterList", - "parameters": [], - "src": "309:0:2" - }, - "scope": 182, - "src": "268:70:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 163, - "nodeType": "Block", - "src": "397:142:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 145, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "++", - "prefix": false, - "src": "406:14:2", - "subExpression": { - "argumentTypes": null, - "id": 144, - "name": "taskCounter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "406:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 146, - "nodeType": "ExpressionStatement", - "src": "406:14:2" - }, - { - "assignments": [ - 148 - ], - "declarations": [ - { - "constant": false, - "id": 148, - "mutability": "mutable", - "name": "task", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 163, - "src": "427:16:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Task_$125_memory_ptr", - "typeString": "struct TodoList.Task" - }, - "typeName": { - "contractScope": null, - "id": 147, - "name": "Task", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 125, - "src": "427:4:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Task_$125_storage_ptr", - "typeString": "struct TodoList.Task" - } - }, - "value": null, - "visibility": "internal" - } - ], - "id": 156, - "initialValue": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 150, - "name": "taskCounter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "451:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - { - "argumentTypes": null, - "id": 151, - "name": "_content", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 141, - "src": "464:8:2", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - } - }, - { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 152, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "474:5:2", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 153, - "name": "block", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": -4, - "src": "481:5:2", - "typeDescriptions": { - "typeIdentifier": "t_magic_block", - "typeString": "block" - } - }, - "id": 154, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "481:15:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string memory" - }, - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 149, - "name": "Task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 125, - "src": "446:4:2", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Task_$125_storage_ptr_$", - "typeString": "type(struct TodoList.Task storage pointer)" - } - }, - "id": 155, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "structConstructorCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "446:51:2", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_struct$_Task_$125_memory_ptr", - "typeString": "struct TodoList.Task memory" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "427:70:2" - }, - { - "expression": { - "argumentTypes": null, - "id": 161, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 157, - "name": "tasks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 129, - "src": "506:5:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Task_$125_storage_$", - "typeString": "mapping(uint256 => struct TodoList.Task storage ref)" - } - }, - "id": 159, - "indexExpression": { - "argumentTypes": null, - "id": 158, - "name": "taskCounter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 116, - "src": "512:11:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "nodeType": "IndexAccess", - "src": "506:18:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Task_$125_storage", - "typeString": "struct TodoList.Task storage ref" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 160, - "name": "task", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 148, - "src": "527:4:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Task_$125_memory_ptr", - "typeString": "struct TodoList.Task memory" - } - }, - "src": "506:25:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Task_$125_storage", - "typeString": "struct TodoList.Task storage ref" - } - }, - "id": 162, - "nodeType": "ExpressionStatement", - "src": "506:25:2" - } - ] - }, - "documentation": null, - "functionSelector": "111002aa", - "id": 164, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "createTask", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 142, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 141, - "mutability": "mutable", - "name": "_content", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 164, - "src": "366:22:2", - "stateVariable": false, - "storageLocation": "memory", - "typeDescriptions": { - "typeIdentifier": "t_string_memory_ptr", - "typeString": "string" - }, - "typeName": { - "id": 140, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "366:6:2", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "365:24:2" - }, - "returnParameters": { - "id": 143, - "nodeType": "ParameterList", - "parameters": [], - "src": "397:0:2" - }, - "scope": 182, - "src": "346:193:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - }, - { - "body": { - "id": 180, - "nodeType": "Block", - "src": "585:68:2", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 178, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 169, - "name": "tasks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 129, - "src": "594:5:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Task_$125_storage_$", - "typeString": "mapping(uint256 => struct TodoList.Task storage ref)" - } - }, - "id": 171, - "indexExpression": { - "argumentTypes": null, - "id": 170, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 166, - "src": "600:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "594:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Task_$125_storage", - "typeString": "struct TodoList.Task storage ref" - } - }, - "id": 172, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": true, - "memberName": "completed", - "nodeType": "MemberAccess", - "referencedDeclaration": 122, - "src": "594:23:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 177, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "nodeType": "UnaryOperation", - "operator": "!", - "prefix": true, - "src": "620:25:2", - "subExpression": { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "baseExpression": { - "argumentTypes": null, - "id": 173, - "name": "tasks", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 129, - "src": "622:5:2", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Task_$125_storage_$", - "typeString": "mapping(uint256 => struct TodoList.Task storage ref)" - } - }, - "id": 175, - "indexExpression": { - "argumentTypes": null, - "id": 174, - "name": "_index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 166, - "src": "628:6:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "622:13:2", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Task_$125_storage", - "typeString": "struct TodoList.Task storage ref" - } - }, - "id": 176, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "completed", - "nodeType": "MemberAccess", - "referencedDeclaration": 122, - "src": "622:23:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "594:51:2", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 179, - "nodeType": "ExpressionStatement", - "src": "594:51:2" - } - ] - }, - "documentation": null, - "functionSelector": "613137a4", - "id": 181, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "toggleTask", - "nodeType": "FunctionDefinition", - "overrides": null, - "parameters": { - "id": 167, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 166, - "mutability": "mutable", - "name": "_index", - "nodeType": "VariableDeclaration", - "overrides": null, - "scope": 181, - "src": "565:11:2", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 165, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "565:4:2", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "564:13:2" - }, - "returnParameters": { - "id": 168, - "nodeType": "ParameterList", - "parameters": [], - "src": "585:0:2" - }, - "scope": 182, - "src": "545:108:2", - "stateMutability": "nonpayable", - "virtual": false, - "visibility": "public" - } - ], - "scope": 183, - "src": "38:624:2" - } - ], - "src": "0:666:2" - }, - "compiler": { - "name": "solc", - "version": "0.6.6+commit.6c089d02.Emscripten.clang" - }, - "networks": { - "10": { - "events": {}, - "links": {}, - "address": "0xeD1D3391FAfd8dB75864a40074E2E690F48CE7db", - "transactionHash": "0xb5f29662d76005a0dd3c65367c69d4ab8e1bac136026d4cd2c75f744c550dd7a" - } - }, - "schemaVersion": "3.0.23", - "updatedAt": "2020-05-05T07:55:37.612Z", - "networkType": "ethereum", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/Token.json b/src/contracts/Token.json deleted file mode 100644 index a17adfa..0000000 --- a/src/contracts/Token.json +++ /dev/null @@ -1,2050 +0,0 @@ -{ - "contractName": "Token", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "spender", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - } - ], - "name": "approve", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "totalSupply", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "from", - "type": "address" - }, - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - } - ], - "name": "transferFrom", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "spender", - "type": "address" - }, - { - "name": "addedValue", - "type": "uint256" - } - ], - "name": "increaseAllowance", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - } - ], - "name": "balanceOf", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "spender", - "type": "address" - }, - { - "name": "subtractedValue", - "type": "uint256" - } - ], - "name": "decreaseAllowance", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "name": "owner", - "type": "address" - }, - { - "name": "spender", - "type": "address" - } - ], - "name": "allowance", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "name": "supply", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": false, - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "name": "enabled", - "type": "bool" - } - ], - "name": "updateTransfersEnabled", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "enabled", - "type": "bool" - } - ], - "name": "updateTransfersReturningFalse", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "to", - "type": "address" - }, - { - "name": "value", - "type": "uint256" - } - ], - "name": "transfer", - "outputs": [ - { - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"from\",\"type\":\"address\"},{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"spender\",\"type\":\"address\"},{\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"to\",\"type\":\"address\"},{\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"updateTransfersReturningFalse\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"updateTransfersEnabled\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"owner\",\"type\":\"address\"},{\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"supply\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"}],\"devdoc\":{\"methods\":{\"allowance(address,address)\":{\"details\":\"Function to check the amount of tokens that an owner allowed to a spender.\\r\",\"params\":{\"owner\":\"address The address which owns the funds.\\r\",\"spender\":\"address The address which will spend the funds.\\r\"},\"return\":\"A uint256 specifying the amount of tokens still available for the spender.\\r\"},\"approve(address,uint256)\":{\"details\":\"Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\\r Beware that changing an allowance with this method brings the risk that someone may use both the old\\r and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\\r race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\\r https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\r\",\"params\":{\"spender\":\"The address which will spend the funds.\\r\",\"value\":\"The amount of tokens to be spent.\\r\"}},\"balanceOf(address)\":{\"details\":\"Gets the balance of the specified address.\\r\",\"params\":{\"owner\":\"The address to query the balance of.\\r\"},\"return\":\"An uint256 representing the amount owned by the passed address.\\r\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Decrease the amount of tokens that an owner allowed to a spender.\\r approve should be called when allowed_[_spender] == 0. To decrement\\r allowed value is better to use this function to avoid 2 calls (and wait until\\r the first transaction is mined)\\r From MonolithDAO Token.sol\\r Emits an Approval event.\\r\",\"params\":{\"spender\":\"The address which will spend the funds.\\r\",\"subtractedValue\":\"The amount of tokens to decrease the allowance by.\\r\"}},\"increaseAllowance(address,uint256)\":{\"details\":\"Increase the amount of tokens that an owner allowed to a spender.\\r approve should be called when allowed_[_spender] == 0. To increment\\r allowed value is better to use this function to avoid 2 calls (and wait until\\r the first transaction is mined)\\r From MonolithDAO Token.sol\\r Emits an Approval event.\\r\",\"params\":{\"addedValue\":\"The amount of tokens to increase the allowance by.\\r\",\"spender\":\"The address which will spend the funds.\\r\"}},\"totalSupply()\":{\"details\":\"Total number of tokens in existence\\r\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfer tokens from one address to another.\\r Note that while this function emits an Approval event, this is not required as per the specification,\\r and other compliant implementations may not emit the event.\\r\",\"params\":{\"from\":\"address The address which you want to send tokens from\\r\",\"to\":\"address The address which you want to transfer to\\r\",\"value\":\"uint256 the amount of tokens to be transferred\\r\"}}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/Token.sol\":\"Token\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol\":{\"keccak256\":\"0x83d94afc84930834148f8e00b2b2b624be5e2a910aeb9f508b6e3252648b304a\",\"urls\":[\"bzzr://074edfefdd7f638d059397b8b72e70605bb8eba1e750d8d512d86a5d8abaf966\",\"dweb:/ipfs/QmTPEnc9wjRf7jZ1xzh68sAjusFY5XHCTLpy79yCtCuWrA\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/IERC20.sol\":{\"keccak256\":\"0xa8e3c2dc3b2585590b6dc3c59bf9fce330df300c304e2222098b561268960c35\",\"urls\":[\"bzzr://733841731bf8e48484c2937ba8787aab42dc1a1438fc8b7762a03e41501efb84\",\"dweb:/ipfs/QmbQMKZ2pa4z4dA81ihhKsnjPpuJoL8bGxSaDj2pA7ES4G\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/SafeMath.sol\":{\"keccak256\":\"0xfe0dc2f1de1225da6a21ba4d59b73be39aeac91bb22c05167e60d40f7ffbd964\",\"urls\":[\"bzzr://2834924f6f10a9503080bcdc6b8cb5bc0890c5ed75760d7cb4b94a231a068610\",\"dweb:/ipfs/QmTYXNqLxE66U5Mz8koELJ5j23eNNMDRR633FyP84xnxuQ\"]},\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/Token.sol\":{\"keccak256\":\"0x638fbdd82646940a426b324c00733959a03492957fc734cc6556626d3d520f96\",\"urls\":[\"bzzr://89de5853571616e3b642c3e6b412cef7094a1dda61c72ee4126dbbb3a593c5c2\",\"dweb:/ipfs/QmUoyxdsv3eYvpKKCqtK9eWQDD3bqT5wcWtJ8oxeLLsP6c\"]}},\"version\":1}", - "bytecode": "0x60806040526003805461ff001960ff1990911660011716905534801561002457600080fd5b506040516106dd3803806106dd8339818101604052602081101561004757600080fd5b505161005c33826001600160e01b0361006216565b5061012d565b6001600160a01b03821661007557600080fd5b61008e8160025461011460201b61054d1790919060201c565b6002556001600160a01b038216600090815260208181526040909120546100be91839061054d610114821b17901c565b6001600160a01b0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008282018381101561012657600080fd5b9392505050565b6105a18061013c6000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063a457c2d711610066578063a457c2d714610185578063a9059cbb146101b1578063b43c36ec146101dd578063d34a2161146101fe578063dd62ed3e1461021d5761009e565b8063095ea7b3146100a357806318160ddd146100e357806323b872dd146100fd578063395093511461013357806370a082311461015f575b600080fd5b6100cf600480360360408110156100b957600080fd5b506001600160a01b03813516906020013561024b565b604080519115158252519081900360200190f35b6100eb610262565b60408051918252519081900360200190f35b6100cf6004803603606081101561011357600080fd5b506001600160a01b03813581169160208101359091169060400135610268565b6100cf6004803603604081101561014957600080fd5b506001600160a01b0381351690602001356102bf565b6100eb6004803603602081101561017557600080fd5b50356001600160a01b03166102fb565b6100cf6004803603604081101561019b57600080fd5b506001600160a01b038135169060200135610316565b6100cf600480360360408110156101c757600080fd5b506001600160a01b038135169060200135610352565b6101fc600480360360208110156101f357600080fd5b5035151561038d565b005b6101fc6004803603602081101561021457600080fd5b503515156103a7565b6100eb6004803603604081101561023357600080fd5b506001600160a01b03813581169160200135166103ba565b60006102583384846103e5565b5060015b92915050565b60025490565b600061027584848461046d565b6001600160a01b0384166000908152600160209081526040808320338085529252909120546102b59186916102b0908663ffffffff61053816565b6103e5565b5060019392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102589185906102b0908663ffffffff61054d16565b6001600160a01b031660009081526020819052604090205490565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102589185906102b0908663ffffffff61053816565b600354600090610100900460ff161561036d5750600061025c565b60035460ff1661037c57600080fd5b610386838361055f565b9392505050565b600380549115156101000261ff0019909216919091179055565b6003805460ff1916911515919091179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0382166103f857600080fd5b6001600160a01b03831661040b57600080fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03821661048057600080fd5b6001600160a01b0383166000908152602081905260409020546104a9908263ffffffff61053816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546104de908263ffffffff61054d16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282111561054757600080fd5b50900390565b60008282018381101561038657600080fd5b600061025833848461046d56fea265627a7a723058209d11020aec77b6ad378aeda4e612077e5657dfe7c46059ff69d41b339a7b468b64736f6c63430005090032", - "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061009e5760003560e01c8063a457c2d711610066578063a457c2d714610185578063a9059cbb146101b1578063b43c36ec146101dd578063d34a2161146101fe578063dd62ed3e1461021d5761009e565b8063095ea7b3146100a357806318160ddd146100e357806323b872dd146100fd578063395093511461013357806370a082311461015f575b600080fd5b6100cf600480360360408110156100b957600080fd5b506001600160a01b03813516906020013561024b565b604080519115158252519081900360200190f35b6100eb610262565b60408051918252519081900360200190f35b6100cf6004803603606081101561011357600080fd5b506001600160a01b03813581169160208101359091169060400135610268565b6100cf6004803603604081101561014957600080fd5b506001600160a01b0381351690602001356102bf565b6100eb6004803603602081101561017557600080fd5b50356001600160a01b03166102fb565b6100cf6004803603604081101561019b57600080fd5b506001600160a01b038135169060200135610316565b6100cf600480360360408110156101c757600080fd5b506001600160a01b038135169060200135610352565b6101fc600480360360208110156101f357600080fd5b5035151561038d565b005b6101fc6004803603602081101561021457600080fd5b503515156103a7565b6100eb6004803603604081101561023357600080fd5b506001600160a01b03813581169160200135166103ba565b60006102583384846103e5565b5060015b92915050565b60025490565b600061027584848461046d565b6001600160a01b0384166000908152600160209081526040808320338085529252909120546102b59186916102b0908663ffffffff61053816565b6103e5565b5060019392505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102589185906102b0908663ffffffff61054d16565b6001600160a01b031660009081526020819052604090205490565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916102589185906102b0908663ffffffff61053816565b600354600090610100900460ff161561036d5750600061025c565b60035460ff1661037c57600080fd5b610386838361055f565b9392505050565b600380549115156101000261ff0019909216919091179055565b6003805460ff1916911515919091179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b0382166103f857600080fd5b6001600160a01b03831661040b57600080fd5b6001600160a01b03808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b03821661048057600080fd5b6001600160a01b0383166000908152602081905260409020546104a9908263ffffffff61053816565b6001600160a01b0380851660009081526020819052604080822093909355908416815220546104de908263ffffffff61054d16565b6001600160a01b038084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b60008282111561054757600080fd5b50900390565b60008282018381101561038657600080fd5b600061025833848461046d56fea265627a7a723058209d11020aec77b6ad378aeda4e612077e5657dfe7c46059ff69d41b339a7b468b64736f6c63430005090032", - "sourceMap": "65:663:25:-;;;96:28;;;-1:-1:-1;;;;96:28:25;;;120:4;96:28;131:36;;;176:79;5:2:-1;;;;30:1;27;20:12;5:2;176:79:25;;;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;176:79:25;222:25;228:10;176:79;-1:-1:-1;;;;;222:5:25;:25;:::i;:::-;176:79;65:663;;5948:269:19;-1:-1:-1;;;;;6023:21:19;;6015:30;;;;;;6073:23;6090:5;6073:12;;:16;;;;;;:23;;;;:::i;:::-;6058:12;:38;-1:-1:-1;;;;;6128:18:19;;:9;:18;;;;;;;;;;;;:29;;6151:5;;6128:22;;;;;:29;;:::i;:::-;-1:-1:-1;;;;;6107:18:19;;:9;:18;;;;;;;;;;;:50;;;;6173:36;;;;;;;6107:18;;:9;;6173:36;;;;;;;;;;5948:269;;:::o;589:150:22:-;647:7;679:5;;;703:6;;;;695:15;;;;;;730:1;589:150;-1:-1:-1;;;589:150:22:o;65:663:25:-;;;;;;;", - "deployedSourceMap": "65:663:25:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;65:663:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2807:148:19;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;2807:148:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;958:91;;;:::i;:::-;;;;;;;;;;;;;;;;3428:228;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;3428:228:19;;;;;;;;;;;;;;;;;:::i;4171:203::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4171:203:19;;;;;;;;:::i;1269:106::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1269:106:19;-1:-1:-1;;;;;1269:106:19;;:::i;4894:213::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;4894:213:19;;;;;;;;:::i;493:232:25:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;493:232:25;;;;;;;;:::i;371:114::-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;371:114:25;;;;:::i;:::-;;263:100;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;263:100:25;;;;:::i;1714:131:19:-;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;1714:131:19;;;;;;;;;;:::i;2807:148::-;2872:4;2889:36;2898:10;2910:7;2919:5;2889:8;:36::i;:::-;-1:-1:-1;2943:4:19;2807:148;;;;;:::o;958:91::-;1029:12;;958:91;:::o;3428:228::-;3507:4;3524:26;3534:4;3540:2;3544:5;3524:9;:26::i;:::-;-1:-1:-1;;;;;3588:14:19;;;;;;:8;:14;;;;;;;;3576:10;3588:26;;;;;;;;;3561:65;;3570:4;;3588:37;;3619:5;3588:37;:30;:37;:::i;:::-;3561:8;:65::i;:::-;-1:-1:-1;3644:4:19;3428:228;;;;;:::o;4171:203::-;4277:10;4251:4;4298:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;4298:29:19;;;;;;;;;;4251:4;;4268:76;;4289:7;;4298:45;;4332:10;4298:45;:33;:45;:::i;1269:106::-;-1:-1:-1;;;;;1351:16:19;1324:7;1351:16;;;;;;;;;;;;1269:106::o;4894:213::-;5005:10;4979:4;5026:20;;;:8;:20;;;;;;;;-1:-1:-1;;;;;5026:29:19;;;;;;;;;;4979:4;;4996:81;;5017:7;;5026:50;;5060:15;5026:50;:33;:50;:::i;493:232:25:-;575:23;;554:4;;575:23;;;;;571:68;;;-1:-1:-1;622:5:25;615:12;;571:68;657:16;;;;649:25;;;;;;692;707:2;711:5;692:14;:25::i;:::-;685:32;493:232;-1:-1:-1;;;493:232:25:o;371:114::-;444:23;:33;;;;;;;-1:-1:-1;;444:33:25;;;;;;;;;371:114::o;263:100::-;329:16;:26;;-1:-1:-1;;329:26:25;;;;;;;;;;263:100::o;1714:131:19:-;-1:-1:-1;;;;;1813:15:19;;;1786:7;1813:15;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;1714:131::o;6993:254::-;-1:-1:-1;;;;;7086:21:19;;7078:30;;;;;;-1:-1:-1;;;;;7127:19:19;;7119:28;;;;;;-1:-1:-1;;;;;7160:15:19;;;;;;;:8;:15;;;;;;;;:24;;;;;;;;;;;;;:32;;;7208:31;;;;;;;;;;;;;;;;;6993:254;;;:::o;5334:262::-;-1:-1:-1;;;;;5422:16:19;;5414:25;;;;;;-1:-1:-1;;;;;5470:15:19;;:9;:15;;;;;;;;;;;:26;;5490:5;5470:26;:19;:26;:::i;:::-;-1:-1:-1;;;;;5452:15:19;;;:9;:15;;;;;;;;;;;:44;;;;5523:13;;;;;;;:24;;5541:5;5523:24;:17;:24;:::i;:::-;-1:-1:-1;;;;;5507:13:19;;;:9;:13;;;;;;;;;;;;:40;;;;5563:25;;;;;;;5507:13;;5563:25;;;;;;;;;;;;;5334:262;;;:::o;431:150:22:-;489:7;522:1;517;:6;;509:15;;;;;;-1:-1:-1;547:5:22;;;431:150::o;589:::-;647:7;679:5;;;703:6;;;;695:15;;;;;2020:140:19;2081:4;2098:32;2108:10;2120:2;2124:5;2098:9;:32::i", - "source": "pragma solidity >=0.5.0 < 0.6.0;\r\n\r\nimport \"../oz/ERC20.sol\";\r\n\r\ncontract Token is ERC20 {\r\n bool transfersEnabled = true;\r\n bool transfersReturningFalse = false;\r\n\r\n constructor(uint256 supply) public {\r\n _mint(msg.sender, supply);\r\n }\r\n\r\n function updateTransfersEnabled(bool enabled) external {\r\n transfersEnabled = enabled;\r\n }\r\n\r\n function updateTransfersReturningFalse(bool enabled) external {\r\n transfersReturningFalse = enabled;\r\n }\r\n\r\n function transfer(address to, uint256 value) public returns (bool) {\r\n if (transfersReturningFalse) {\r\n return false;\r\n }\r\n require(transfersEnabled);\r\n return super.transfer(to, value);\r\n }\r\n}\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\tokens\\Token.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/Token.sol", - "exportedSymbols": { - "Token": [ - 10396 - ] - }, - "id": 10397, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 10329, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:25" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol", - "file": "../oz/ERC20.sol", - "id": 10330, - "nodeType": "ImportDirective", - "scope": 10397, - "sourceUnit": 9651, - "src": "36:25:25", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10331, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9650, - "src": "83:5:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$9650", - "typeString": "contract ERC20" - } - }, - "id": 10332, - "nodeType": "InheritanceSpecifier", - "src": "83:5:25" - } - ], - "contractDependencies": [ - 9650, - 9719 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 10396, - "linearizedBaseContracts": [ - 10396, - 9650, - 9719 - ], - "name": "Token", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 10335, - "name": "transfersEnabled", - "nodeType": "VariableDeclaration", - "scope": 10396, - "src": "96:28:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10333, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "96:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 10334, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "120:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10338, - "name": "transfersReturningFalse", - "nodeType": "VariableDeclaration", - "scope": 10396, - "src": "131:36:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10336, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "131:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 10337, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "162:5:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "visibility": "internal" - }, - { - "body": { - "id": 10349, - "nodeType": "Block", - "src": "211:44:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10344, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "228:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "228:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 10346, - "name": "supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10340, - "src": "240:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10343, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9539, - "src": "222:5:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 10347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "222:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10348, - "nodeType": "ExpressionStatement", - "src": "222:25:25" - } - ] - }, - "documentation": null, - "id": 10350, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10341, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10340, - "name": "supply", - "nodeType": "VariableDeclaration", - "scope": 10350, - "src": "188:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10339, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "188:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "187:16:25" - }, - "returnParameters": { - "id": 10342, - "nodeType": "ParameterList", - "parameters": [], - "src": "211:0:25" - }, - "scope": 10396, - "src": "176:79:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 10359, - "nodeType": "Block", - "src": "318:45:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 10357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10355, - "name": "transfersEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10335, - "src": "329:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10356, - "name": "enabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10352, - "src": "348:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "329:26:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 10358, - "nodeType": "ExpressionStatement", - "src": "329:26:25" - } - ] - }, - "documentation": null, - "id": 10360, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "updateTransfersEnabled", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10353, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10352, - "name": "enabled", - "nodeType": "VariableDeclaration", - "scope": 10360, - "src": "295:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10351, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "295:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "294:14:25" - }, - "returnParameters": { - "id": 10354, - "nodeType": "ParameterList", - "parameters": [], - "src": "318:0:25" - }, - "scope": 10396, - "src": "263:100:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 10369, - "nodeType": "Block", - "src": "433:52:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 10367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10365, - "name": "transfersReturningFalse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10338, - "src": "444:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10366, - "name": "enabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10362, - "src": "470:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "444:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 10368, - "nodeType": "ExpressionStatement", - "src": "444:33:25" - } - ] - }, - "documentation": null, - "id": 10370, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "updateTransfersReturningFalse", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10363, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10362, - "name": "enabled", - "nodeType": "VariableDeclaration", - "scope": 10370, - "src": "410:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10361, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "410:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "409:14:25" - }, - "returnParameters": { - "id": 10364, - "nodeType": "ParameterList", - "parameters": [], - "src": "433:0:25" - }, - "scope": 10396, - "src": "371:114:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 10394, - "nodeType": "Block", - "src": "560:165:25", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 10379, - "name": "transfersReturningFalse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10338, - "src": "575:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 10383, - "nodeType": "IfStatement", - "src": "571:68:25", - "trueBody": { - "id": 10382, - "nodeType": "Block", - "src": "600:39:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 10380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "622:5:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 10378, - "id": 10381, - "nodeType": "Return", - "src": "615:12:25" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10385, - "name": "transfersEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10335, - "src": "657:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 10384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "649:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 10386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "649:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10387, - "nodeType": "ExpressionStatement", - "src": "649:25:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10390, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10372, - "src": "707:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10391, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10374, - "src": "711:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10388, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10494, - "src": "692:5:25", - "typeDescriptions": { - "typeIdentifier": "t_super$_Token_$10396", - "typeString": "contract super Token" - } - }, - "id": 10389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9343, - "src": "692:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 10392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "692:25:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 10378, - "id": 10393, - "nodeType": "Return", - "src": "685:32:25" - } - ] - }, - "documentation": null, - "id": 10395, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10375, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10372, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 10395, - "src": "511:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10371, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "511:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10374, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 10395, - "src": "523:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10373, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "523:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "510:27:25" - }, - "returnParameters": { - "id": 10378, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10377, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10395, - "src": "554:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10376, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "554:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "553:6:25" - }, - "scope": 10396, - "src": "493:232:25", - "stateMutability": "nonpayable", - "superFunction": 9343, - "visibility": "public" - } - ], - "scope": 10397, - "src": "65:663:25" - } - ], - "src": "0:730:25" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/tokens/Token.sol", - "exportedSymbols": { - "Token": [ - 10396 - ] - }, - "id": 10397, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 10329, - "literals": [ - "solidity", - ">=", - "0.5", - ".0", - "<", - "0.6", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:32:25" - }, - { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/oz/ERC20.sol", - "file": "../oz/ERC20.sol", - "id": 10330, - "nodeType": "ImportDirective", - "scope": 10397, - "sourceUnit": 9651, - "src": "36:25:25", - "symbolAliases": [], - "unitAlias": "" - }, - { - "baseContracts": [ - { - "arguments": null, - "baseName": { - "contractScope": null, - "id": 10331, - "name": "ERC20", - "nodeType": "UserDefinedTypeName", - "referencedDeclaration": 9650, - "src": "83:5:25", - "typeDescriptions": { - "typeIdentifier": "t_contract$_ERC20_$9650", - "typeString": "contract ERC20" - } - }, - "id": 10332, - "nodeType": "InheritanceSpecifier", - "src": "83:5:25" - } - ], - "contractDependencies": [ - 9650, - 9719 - ], - "contractKind": "contract", - "documentation": null, - "fullyImplemented": true, - "id": 10396, - "linearizedBaseContracts": [ - 10396, - 9650, - 9719 - ], - "name": "Token", - "nodeType": "ContractDefinition", - "nodes": [ - { - "constant": false, - "id": 10335, - "name": "transfersEnabled", - "nodeType": "VariableDeclaration", - "scope": 10396, - "src": "96:28:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10333, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "96:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "74727565", - "id": 10334, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "120:4:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "true" - }, - "visibility": "internal" - }, - { - "constant": false, - "id": 10338, - "name": "transfersReturningFalse", - "nodeType": "VariableDeclaration", - "scope": 10396, - "src": "131:36:25", - "stateVariable": true, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10336, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "131:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 10337, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "162:5:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "visibility": "internal" - }, - { - "body": { - "id": 10349, - "nodeType": "Block", - "src": "211:44:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "expression": { - "argumentTypes": null, - "id": 10344, - "name": "msg", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10411, - "src": "228:3:25", - "typeDescriptions": { - "typeIdentifier": "t_magic_message", - "typeString": "msg" - } - }, - "id": 10345, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "sender", - "nodeType": "MemberAccess", - "referencedDeclaration": null, - "src": "228:10:25", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - { - "argumentTypes": null, - "id": 10346, - "name": "supply", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10340, - "src": "240:6:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "id": 10343, - "name": "_mint", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 9539, - "src": "222:5:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", - "typeString": "function (address,uint256)" - } - }, - "id": 10347, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "222:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10348, - "nodeType": "ExpressionStatement", - "src": "222:25:25" - } - ] - }, - "documentation": null, - "id": 10350, - "implemented": true, - "kind": "constructor", - "modifiers": [], - "name": "", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10341, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10340, - "name": "supply", - "nodeType": "VariableDeclaration", - "scope": 10350, - "src": "188:14:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10339, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "188:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "187:16:25" - }, - "returnParameters": { - "id": 10342, - "nodeType": "ParameterList", - "parameters": [], - "src": "211:0:25" - }, - "scope": 10396, - "src": "176:79:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "public" - }, - { - "body": { - "id": 10359, - "nodeType": "Block", - "src": "318:45:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 10357, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10355, - "name": "transfersEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10335, - "src": "329:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10356, - "name": "enabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10352, - "src": "348:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "329:26:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 10358, - "nodeType": "ExpressionStatement", - "src": "329:26:25" - } - ] - }, - "documentation": null, - "id": 10360, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "updateTransfersEnabled", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10353, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10352, - "name": "enabled", - "nodeType": "VariableDeclaration", - "scope": 10360, - "src": "295:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10351, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "295:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "294:14:25" - }, - "returnParameters": { - "id": 10354, - "nodeType": "ParameterList", - "parameters": [], - "src": "318:0:25" - }, - "scope": 10396, - "src": "263:100:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 10369, - "nodeType": "Block", - "src": "433:52:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "id": 10367, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "argumentTypes": null, - "id": 10365, - "name": "transfersReturningFalse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10338, - "src": "444:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "nodeType": "Assignment", - "operator": "=", - "rightHandSide": { - "argumentTypes": null, - "id": 10366, - "name": "enabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10362, - "src": "470:7:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "src": "444:33:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "id": 10368, - "nodeType": "ExpressionStatement", - "src": "444:33:25" - } - ] - }, - "documentation": null, - "id": 10370, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "updateTransfersReturningFalse", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10363, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10362, - "name": "enabled", - "nodeType": "VariableDeclaration", - "scope": 10370, - "src": "410:12:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10361, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "410:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "409:14:25" - }, - "returnParameters": { - "id": 10364, - "nodeType": "ParameterList", - "parameters": [], - "src": "433:0:25" - }, - "scope": 10396, - "src": "371:114:25", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": { - "id": 10394, - "nodeType": "Block", - "src": "560:165:25", - "statements": [ - { - "condition": { - "argumentTypes": null, - "id": 10379, - "name": "transfersReturningFalse", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10338, - "src": "575:23:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "falseBody": null, - "id": 10383, - "nodeType": "IfStatement", - "src": "571:68:25", - "trueBody": { - "id": 10382, - "nodeType": "Block", - "src": "600:39:25", - "statements": [ - { - "expression": { - "argumentTypes": null, - "hexValue": "66616c7365", - "id": 10380, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "bool", - "lValueRequested": false, - "nodeType": "Literal", - "src": "622:5:25", - "subdenomination": null, - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "value": "false" - }, - "functionReturnParameters": 10378, - "id": 10381, - "nodeType": "Return", - "src": "615:12:25" - } - ] - } - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10385, - "name": "transfersEnabled", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10335, - "src": "657:16:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - ], - "id": 10384, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 10414, - 10415 - ], - "referencedDeclaration": 10414, - "src": "649:7:25", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", - "typeString": "function (bool) pure" - } - }, - "id": 10386, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "649:25:25", - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 10387, - "nodeType": "ExpressionStatement", - "src": "649:25:25" - }, - { - "expression": { - "argumentTypes": null, - "arguments": [ - { - "argumentTypes": null, - "id": 10390, - "name": "to", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10372, - "src": "707:2:25", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - { - "argumentTypes": null, - "id": 10391, - "name": "value", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10374, - "src": "711:5:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_address", - "typeString": "address" - }, - { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - ], - "expression": { - "argumentTypes": null, - "id": 10388, - "name": "super", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 10494, - "src": "692:5:25", - "typeDescriptions": { - "typeIdentifier": "t_super$_Token_$10396", - "typeString": "contract super Token" - } - }, - "id": 10389, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "memberName": "transfer", - "nodeType": "MemberAccess", - "referencedDeclaration": 9343, - "src": "692:14:25", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", - "typeString": "function (address,uint256) returns (bool)" - } - }, - "id": 10392, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "692:25:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "functionReturnParameters": 10378, - "id": 10393, - "nodeType": "Return", - "src": "685:32:25" - } - ] - }, - "documentation": null, - "id": 10395, - "implemented": true, - "kind": "function", - "modifiers": [], - "name": "transfer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 10375, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10372, - "name": "to", - "nodeType": "VariableDeclaration", - "scope": 10395, - "src": "511:10:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 10371, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "511:7:25", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 10374, - "name": "value", - "nodeType": "VariableDeclaration", - "scope": 10395, - "src": "523:13:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 10373, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "523:7:25", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "510:27:25" - }, - "returnParameters": { - "id": 10378, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 10377, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 10395, - "src": "554:4:25", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - "typeName": { - "id": 10376, - "name": "bool", - "nodeType": "ElementaryTypeName", - "src": "554:4:25", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "553:6:25" - }, - "scope": 10396, - "src": "493:232:25", - "stateMutability": "nonpayable", - "superFunction": 9343, - "visibility": "public" - } - ], - "scope": 10397, - "src": "65:663:25" - } - ], - "src": "0:730:25" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": { - "10": { - "events": { - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "from", - "type": "address" - }, - { - "indexed": true, - "name": "to", - "type": "address" - }, - { - "indexed": false, - "name": "value", - "type": "uint256" - } - ], - "name": "Transfer", - "type": "event" - }, - "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "name": "owner", - "type": "address" - }, - { - "indexed": true, - "name": "spender", - "type": "address" - }, - { - "indexed": false, - "name": "value", - "type": "uint256" - } - ], - "name": "Approval", - "type": "event" - } - }, - "links": {}, - "address": "0xeD1D3391FAfd8dB75864a40074E2E690F48CE7db", - "transactionHash": "0x0efe35f06f94f71e8e13ff9145ee3062ab7c55b7726c7acaf81aaa90bc09d3d0" - } - }, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:31.215Z", - "networkType": "ethereum", - "devdoc": { - "methods": { - "allowance(address,address)": { - "details": "Function to check the amount of tokens that an owner allowed to a spender.\r", - "params": { - "owner": "address The address which owns the funds.\r", - "spender": "address The address which will spend the funds.\r" - }, - "return": "A uint256 specifying the amount of tokens still available for the spender.\r" - }, - "approve(address,uint256)": { - "details": "Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\r Beware that changing an allowance with this method brings the risk that someone may use both the old\r and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this\r race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:\r https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\r", - "params": { - "spender": "The address which will spend the funds.\r", - "value": "The amount of tokens to be spent.\r" - } - }, - "balanceOf(address)": { - "details": "Gets the balance of the specified address.\r", - "params": { - "owner": "The address to query the balance of.\r" - }, - "return": "An uint256 representing the amount owned by the passed address.\r" - }, - "decreaseAllowance(address,uint256)": { - "details": "Decrease the amount of tokens that an owner allowed to a spender.\r approve should be called when allowed_[_spender] == 0. To decrement\r allowed value is better to use this function to avoid 2 calls (and wait until\r the first transaction is mined)\r From MonolithDAO Token.sol\r Emits an Approval event.\r", - "params": { - "spender": "The address which will spend the funds.\r", - "subtractedValue": "The amount of tokens to decrease the allowance by.\r" - } - }, - "increaseAllowance(address,uint256)": { - "details": "Increase the amount of tokens that an owner allowed to a spender.\r approve should be called when allowed_[_spender] == 0. To increment\r allowed value is better to use this function to avoid 2 calls (and wait until\r the first transaction is mined)\r From MonolithDAO Token.sol\r Emits an Approval event.\r", - "params": { - "addedValue": "The amount of tokens to increase the allowance by.\r", - "spender": "The address which will spend the funds.\r" - } - }, - "totalSupply()": { - "details": "Total number of tokens in existence\r" - }, - "transferFrom(address,address,uint256)": { - "details": "Transfer tokens from one address to another.\r Note that while this function emits an Approval event, this is not required as per the specification,\r and other compliant implementations may not emit the event.\r", - "params": { - "from": "address The address which you want to send tokens from\r", - "to": "address The address which you want to transfer to\r", - "value": "uint256 the amount of tokens to be transferred\r" - } - } - } - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/iBountiesMetaTxRelayer.json b/src/contracts/iBountiesMetaTxRelayer.json deleted file mode 100644 index 3a76d81..0000000 --- a/src/contracts/iBountiesMetaTxRelayer.json +++ /dev/null @@ -1,7827 +0,0 @@ -{ - "contractName": "iBountiesMetaTxRelayer", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "signature", - "type": "bytes" - }, - { - "name": "_issuers", - "type": "address[]" - }, - { - "name": "_approvers", - "type": "address[]" - }, - { - "name": "_data", - "type": "string" - }, - { - "name": "_deadline", - "type": "uint256" - }, - { - "name": "_token", - "type": "address" - }, - { - "name": "_tokenVersion", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaIssueBounty", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "signature", - "type": "bytes" - }, - { - "name": "_issuers", - "type": "address[]" - }, - { - "name": "_approvers", - "type": "address[]" - }, - { - "name": "_data", - "type": "string" - }, - { - "name": "_deadline", - "type": "uint256" - }, - { - "name": "_token", - "type": "address" - }, - { - "name": "_tokenVersion", - "type": "uint256" - }, - { - "name": "_depositAmount", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaIssueAndContribute", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_amount", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaContribute", - "outputs": [], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_contributionId", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaRefundContribution", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_contributionIds", - "type": "uint256[]" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaRefundMyContributions", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_contributionIds", - "type": "uint256[]" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaRefundContributions", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_amounts", - "type": "uint256[]" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaDrainBounty", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_data", - "type": "string" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaPerformAction", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_fulfillers", - "type": "address[]" - }, - { - "name": "_data", - "type": "string" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaFulfillBounty", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_fulfillmentId", - "type": "uint256" - }, - { - "name": "_fulfillers", - "type": "address[]" - }, - { - "name": "_data", - "type": "string" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaUpdateFulfillment", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_fulfillmentId", - "type": "uint256" - }, - { - "name": "_approverId", - "type": "uint256" - }, - { - "name": "_tokenAmounts", - "type": "uint256[]" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaAcceptFulfillment", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_fulfillers", - "type": "address[]" - }, - { - "name": "_data", - "type": "string" - }, - { - "name": "_approverId", - "type": "uint256" - }, - { - "name": "_tokenAmounts", - "type": "uint256[]" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaFulfillAndAccept", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_issuers", - "type": "address[]" - }, - { - "name": "_approvers", - "type": "address[]" - }, - { - "name": "_data", - "type": "string" - }, - { - "name": "_deadline", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaChangeBounty", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_approvers", - "type": "address[]" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaAddApprovers", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_issuers", - "type": "address[]" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaAddIssuers", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_deadline", - "type": "uint256" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaChangeDeadline", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_data", - "type": "string" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaChangeData", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_approverId", - "type": "uint256" - }, - { - "name": "_approver", - "type": "address" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaChangeApprover", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "_signature", - "type": "bytes" - }, - { - "name": "_bountyId", - "type": "uint256" - }, - { - "name": "_issuerId", - "type": "uint256" - }, - { - "name": "_issuerIdToChange", - "type": "uint256" - }, - { - "name": "_newIssuer", - "type": "address" - }, - { - "name": "_nonce", - "type": "uint256" - } - ], - "name": "metaChangeIssuer", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_fulfillers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_approverId\",\"type\":\"uint256\"},{\"name\":\"_tokenAmounts\",\"type\":\"uint256[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaFulfillAndAccept\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_fulfillmentId\",\"type\":\"uint256\"},{\"name\":\"_fulfillers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaUpdateFulfillment\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaChangeData\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaChangeDeadline\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaChangeBounty\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_amount\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaContribute\",\"outputs\":[],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaPerformAction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_contributionIds\",\"type\":\"uint256[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaRefundMyContributions\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_fulfillmentId\",\"type\":\"uint256\"},{\"name\":\"_approverId\",\"type\":\"uint256\"},{\"name\":\"_tokenAmounts\",\"type\":\"uint256[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaAcceptFulfillment\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaAddApprovers\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_contributionId\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaRefundContribution\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_approverId\",\"type\":\"uint256\"},{\"name\":\"_approver\",\"type\":\"address\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaChangeApprover\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_amounts\",\"type\":\"uint256[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaDrainBounty\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"signature\",\"type\":\"bytes\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_tokenVersion\",\"type\":\"uint256\"},{\"name\":\"_depositAmount\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaIssueAndContribute\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":true,\"stateMutability\":\"payable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaAddIssuers\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_issuerIdToChange\",\"type\":\"uint256\"},{\"name\":\"_newIssuer\",\"type\":\"address\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaChangeIssuer\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"signature\",\"type\":\"bytes\"},{\"name\":\"_issuers\",\"type\":\"address[]\"},{\"name\":\"_approvers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_deadline\",\"type\":\"uint256\"},{\"name\":\"_token\",\"type\":\"address\"},{\"name\":\"_tokenVersion\",\"type\":\"uint256\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaIssueBounty\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_fulfillers\",\"type\":\"address[]\"},{\"name\":\"_data\",\"type\":\"string\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaFulfillBounty\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"_signature\",\"type\":\"bytes\"},{\"name\":\"_bountyId\",\"type\":\"uint256\"},{\"name\":\"_issuerId\",\"type\":\"uint256\"},{\"name\":\"_contributionIds\",\"type\":\"uint256[]\"},{\"name\":\"_nonce\",\"type\":\"uint256\"}],\"name\":\"metaRefundContributions\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/iBountiesMetaTxRelayer.sol\":\"iBountiesMetaTxRelayer\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/iBountiesMetaTxRelayer.sol\":{\"keccak256\":\"0x2c7a62683ee97ced4a5d82a5d24524d49e4e0ff8a8c7a4586e6450e590e6f917\",\"urls\":[\"bzzr://b01b873559523fad3de083f16b2d265f41de56a4b2d8d13955ec5c6e79a0d53f\",\"dweb:/ipfs/QmUkBDYA6czW2yFAypaw6EwreqN3795GYaG8PsYh2w5SC3\"]}},\"version\":1}", - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity >0.5.0<=0.7.0;\r\n\r\ninterface iBountiesMetaTxRelayer {\r\n\r\n // function storeValue(uint value) external;\r\n // function getValues() external view returns(uint);\r\n\r\n function metaIssueBounty(\r\n bytes calldata signature,\r\n address payable[] calldata _issuers,\r\n address[] calldata _approvers,\r\n string calldata _data,\r\n uint _deadline,\r\n address _token,\r\n uint _tokenVersion,\r\n uint _nonce)\r\n external\r\n returns (uint);\r\n\r\n function metaIssueAndContribute(\r\n bytes calldata signature,\r\n address payable[] calldata _issuers,\r\n address[] calldata _approvers,\r\n string calldata _data,\r\n uint _deadline,\r\n address _token,\r\n uint _tokenVersion,\r\n uint _depositAmount,\r\n uint _nonce)\r\n external\r\n payable\r\n returns (uint);\r\n\r\n function metaContribute(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _amount,\r\n uint _nonce)\r\n external\r\n payable;\r\n\r\n function metaRefundContribution(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _contributionId,\r\n uint _nonce)\r\n external;\r\n\r\n function metaRefundMyContributions(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint[] calldata _contributionIds,\r\n uint _nonce)\r\n external;\r\n\r\n function metaRefundContributions(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint[] calldata _contributionIds,\r\n uint _nonce)\r\n external;\r\n\r\n function metaDrainBounty(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint[] calldata _amounts,\r\n uint _nonce)\r\n external;\r\n\r\n function metaPerformAction(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n string calldata _data,\r\n uint256 _nonce)\r\n external;\r\n\r\n function metaFulfillBounty(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n address payable[] calldata _fulfillers,\r\n string calldata _data,\r\n uint256 _nonce)\r\n external;\r\n\r\n function metaUpdateFulfillment(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _fulfillmentId,\r\n address payable[] calldata _fulfillers,\r\n string calldata _data,\r\n uint256 _nonce)\r\n external;\r\n\r\n function metaAcceptFulfillment(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _fulfillmentId,\r\n uint _approverId,\r\n uint[] calldata _tokenAmounts,\r\n uint256 _nonce)\r\n external;\r\n\r\n function metaFulfillAndAccept(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n address payable[] calldata _fulfillers,\r\n string calldata _data,\r\n uint _approverId,\r\n uint[] calldata _tokenAmounts,\r\n uint256 _nonce)\r\n external;\r\n\r\n function metaChangeBounty(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n address payable[] calldata _issuers,\r\n address payable[] calldata _approvers,\r\n string calldata _data,\r\n uint _deadline,\r\n uint256 _nonce)\r\n external;\r\n\r\n function metaAddApprovers(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n address[] calldata _approvers,\r\n uint256 _nonce)\r\n external;\r\n\r\n function metaAddIssuers(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n address payable[] calldata _issuers,\r\n uint256 _nonce)\r\n external;\r\n\r\n function metaChangeDeadline(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint _deadline,\r\n uint256 _nonce)\r\n external;\r\n\r\n function metaChangeData(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n string calldata _data,\r\n uint256 _nonce)\r\n external;\r\n\r\n function metaChangeApprover(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint _approverId,\r\n address payable _approver,\r\n uint256 _nonce)\r\n external;\r\n\r\n function metaChangeIssuer(\r\n bytes calldata _signature,\r\n uint _bountyId,\r\n uint _issuerId,\r\n uint _issuerIdToChange,\r\n address payable _newIssuer,\r\n uint256 _nonce)\r\n external;\r\n\r\n\r\n\r\n\r\n\r\n}", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\bounties\\iBountiesMetaTxRelayer.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/iBountiesMetaTxRelayer.sol", - "exportedSymbols": { - "iBountiesMetaTxRelayer": [ - 4806 - ] - }, - "id": 4807, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4514, - "literals": [ - "solidity", - ">", - "0.5", - ".0", - "<=", - "0.7", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:30:6" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 4806, - "linearizedBaseContracts": [ - 4806 - ], - "name": "iBountiesMetaTxRelayer", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 4537, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaIssueBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4516, - "name": "signature", - "nodeType": "VariableDeclaration", - "scope": 4537, - "src": "210:24:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4515, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "210:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4519, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 4537, - "src": "241:35:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4517, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "241:15:6", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4518, - "length": null, - "nodeType": "ArrayTypeName", - "src": "241:17:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4522, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 4537, - "src": "283:29:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4520, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "283:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4521, - "length": null, - "nodeType": "ArrayTypeName", - "src": "283:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4524, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4537, - "src": "319:21:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4523, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "319:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4526, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 4537, - "src": "347:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4525, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "347:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4528, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 4537, - "src": "368:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "368:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4530, - "name": "_tokenVersion", - "nodeType": "VariableDeclaration", - "scope": 4537, - "src": "389:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4529, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "389:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4532, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4537, - "src": "414:11:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4531, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "414:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "203:223:6" - }, - "returnParameters": { - "id": 4536, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4535, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4537, - "src": "455:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4534, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "455:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "454:6:6" - }, - "scope": 4806, - "src": "179:282:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4562, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaIssueAndContribute", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4539, - "name": "signature", - "nodeType": "VariableDeclaration", - "scope": 4562, - "src": "507:24:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4538, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "507:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4542, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 4562, - "src": "538:35:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4540, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "538:15:6", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4541, - "length": null, - "nodeType": "ArrayTypeName", - "src": "538:17:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4545, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 4562, - "src": "580:29:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "580:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4544, - "length": null, - "nodeType": "ArrayTypeName", - "src": "580:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4547, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4562, - "src": "616:21:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4546, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "616:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4549, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 4562, - "src": "644:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4548, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "644:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4551, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 4562, - "src": "665:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4550, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "665:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4553, - "name": "_tokenVersion", - "nodeType": "VariableDeclaration", - "scope": 4562, - "src": "686:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4552, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "686:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4555, - "name": "_depositAmount", - "nodeType": "VariableDeclaration", - "scope": 4562, - "src": "711:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4554, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4557, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4562, - "src": "737:11:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "737:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "500:249:6" - }, - "returnParameters": { - "id": 4561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4560, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4562, - "src": "791:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4559, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "791:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "790:6:6" - }, - "scope": 4806, - "src": "469:328:6", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4573, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaContribute", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4571, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4564, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4573, - "src": "837:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4563, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "837:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4566, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4573, - "src": "869:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4565, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "869:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4568, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 4573, - "src": "890:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4567, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "890:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4570, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4573, - "src": "909:11:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4569, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "909:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "830:91:6" - }, - "returnParameters": { - "id": 4572, - "nodeType": "ParameterList", - "parameters": [], - "src": "948:0:6" - }, - "scope": 4806, - "src": "807:142:6", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4584, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaRefundContribution", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4582, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4575, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4584, - "src": "997:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4574, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "997:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4577, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4584, - "src": "1029:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4576, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1029:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4579, - "name": "_contributionId", - "nodeType": "VariableDeclaration", - "scope": 4584, - "src": "1050:20:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4578, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1050:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4581, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4584, - "src": "1077:11:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4580, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1077:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "990:99:6" - }, - "returnParameters": { - "id": 4583, - "nodeType": "ParameterList", - "parameters": [], - "src": "1103:0:6" - }, - "scope": 4806, - "src": "959:145:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4596, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaRefundMyContributions", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4594, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4586, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4596, - "src": "1155:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4585, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1155:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4588, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4596, - "src": "1187:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4587, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1187:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4591, - "name": "_contributionIds", - "nodeType": "VariableDeclaration", - "scope": 4596, - "src": "1208:32:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 4589, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1208:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4590, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1208:6:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4593, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4596, - "src": "1247:11:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4592, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1247:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1148:111:6" - }, - "returnParameters": { - "id": 4595, - "nodeType": "ParameterList", - "parameters": [], - "src": "1273:0:6" - }, - "scope": 4806, - "src": "1114:160:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4610, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaRefundContributions", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4608, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4598, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4610, - "src": "1323:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4597, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1323:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4600, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4610, - "src": "1355:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4599, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1355:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4602, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4610, - "src": "1376:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4601, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1376:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4605, - "name": "_contributionIds", - "nodeType": "VariableDeclaration", - "scope": 4610, - "src": "1397:32:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 4603, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1397:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4604, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1397:6:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4607, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4610, - "src": "1436:11:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4606, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1436:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1316:132:6" - }, - "returnParameters": { - "id": 4609, - "nodeType": "ParameterList", - "parameters": [], - "src": "1462:0:6" - }, - "scope": 4806, - "src": "1284:179:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4624, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaDrainBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4622, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4612, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4624, - "src": "1504:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4611, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1504:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4614, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4624, - "src": "1536:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4613, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1536:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4616, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4624, - "src": "1557:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4615, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1557:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4619, - "name": "_amounts", - "nodeType": "VariableDeclaration", - "scope": 4624, - "src": "1578:24:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 4617, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1578:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4618, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1578:6:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4621, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4624, - "src": "1609:11:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4620, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1609:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1497:124:6" - }, - "returnParameters": { - "id": 4623, - "nodeType": "ParameterList", - "parameters": [], - "src": "1635:0:6" - }, - "scope": 4806, - "src": "1473:163:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4635, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaPerformAction", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4633, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4626, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4635, - "src": "1679:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4625, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1679:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4628, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4635, - "src": "1711:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4627, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1711:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4630, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4635, - "src": "1732:21:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4629, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1732:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4632, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4635, - "src": "1760:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4631, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1760:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1672:103:6" - }, - "returnParameters": { - "id": 4634, - "nodeType": "ParameterList", - "parameters": [], - "src": "1789:0:6" - }, - "scope": 4806, - "src": "1646:144:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4649, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaFulfillBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4647, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4637, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4649, - "src": "1833:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4636, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1833:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4639, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4649, - "src": "1865:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4638, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1865:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4642, - "name": "_fulfillers", - "nodeType": "VariableDeclaration", - "scope": 4649, - "src": "1886:39:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4640, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1886:15:6", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4641, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1886:17:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4649, - "src": "1932:21:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4643, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1932:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4646, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4649, - "src": "1960:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4645, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1960:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1826:149:6" - }, - "returnParameters": { - "id": 4648, - "nodeType": "ParameterList", - "parameters": [], - "src": "1989:0:6" - }, - "scope": 4806, - "src": "1800:190:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4665, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaUpdateFulfillment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4663, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4651, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4665, - "src": "2037:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4650, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2037:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4653, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4665, - "src": "2069:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4652, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4655, - "name": "_fulfillmentId", - "nodeType": "VariableDeclaration", - "scope": 4665, - "src": "2090:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4654, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2090:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4658, - "name": "_fulfillers", - "nodeType": "VariableDeclaration", - "scope": 4665, - "src": "2116:39:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4656, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2116:15:6", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4657, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2116:17:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4660, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4665, - "src": "2162:21:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4659, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2162:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4662, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4665, - "src": "2190:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4661, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2190:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2030:175:6" - }, - "returnParameters": { - "id": 4664, - "nodeType": "ParameterList", - "parameters": [], - "src": "2219:0:6" - }, - "scope": 4806, - "src": "2000:220:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4681, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaAcceptFulfillment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4679, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4667, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4681, - "src": "2267:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4666, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2267:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4669, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4681, - "src": "2299:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4668, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2299:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4671, - "name": "_fulfillmentId", - "nodeType": "VariableDeclaration", - "scope": 4681, - "src": "2320:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4670, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2320:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4673, - "name": "_approverId", - "nodeType": "VariableDeclaration", - "scope": 4681, - "src": "2346:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4672, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2346:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4676, - "name": "_tokenAmounts", - "nodeType": "VariableDeclaration", - "scope": 4681, - "src": "2369:29:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 4674, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2369:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4675, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2369:6:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4678, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4681, - "src": "2405:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4677, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2405:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2260:160:6" - }, - "returnParameters": { - "id": 4680, - "nodeType": "ParameterList", - "parameters": [], - "src": "2434:0:6" - }, - "scope": 4806, - "src": "2230:205:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4700, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaFulfillAndAccept", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4698, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4683, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4700, - "src": "2481:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4682, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2481:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4685, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4700, - "src": "2513:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4684, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2513:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4688, - "name": "_fulfillers", - "nodeType": "VariableDeclaration", - "scope": 4700, - "src": "2534:38:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4686, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2534:15:6", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4687, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2534:17:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4690, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4700, - "src": "2579:21:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4689, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2579:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4692, - "name": "_approverId", - "nodeType": "VariableDeclaration", - "scope": 4700, - "src": "2607:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4691, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2607:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4695, - "name": "_tokenAmounts", - "nodeType": "VariableDeclaration", - "scope": 4700, - "src": "2630:29:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 4693, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2630:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4694, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2630:6:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4697, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4700, - "src": "2666:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4696, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2666:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2474:207:6" - }, - "returnParameters": { - "id": 4699, - "nodeType": "ParameterList", - "parameters": [], - "src": "2695:0:6" - }, - "scope": 4806, - "src": "2445:251:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4721, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaChangeBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4719, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4702, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4721, - "src": "2738:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4701, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2738:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4704, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4721, - "src": "2770:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4703, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2770:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4706, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4721, - "src": "2791:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4705, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2791:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4709, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 4721, - "src": "2812:35:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4707, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2812:15:6", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4708, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2812:17:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4712, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 4721, - "src": "2854:37:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4710, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2854:15:6", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4711, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2854:17:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4714, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4721, - "src": "2898:21:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4713, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2898:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4716, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 4721, - "src": "2926:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4715, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2926:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4718, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4721, - "src": "2947:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4717, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2947:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2731:231:6" - }, - "returnParameters": { - "id": 4720, - "nodeType": "ParameterList", - "parameters": [], - "src": "2976:0:6" - }, - "scope": 4806, - "src": "2706:271:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4735, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaAddApprovers", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4733, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4723, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4735, - "src": "3019:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4722, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3019:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4725, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4735, - "src": "3051:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4724, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3051:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4727, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4735, - "src": "3072:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4726, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3072:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4730, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 4735, - "src": "3093:29:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3093:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4729, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3093:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4732, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4735, - "src": "3129:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4731, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3129:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3012:132:6" - }, - "returnParameters": { - "id": 4734, - "nodeType": "ParameterList", - "parameters": [], - "src": "3158:0:6" - }, - "scope": 4806, - "src": "2987:172:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4749, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaAddIssuers", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4747, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4737, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4749, - "src": "3199:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4736, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3199:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4739, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4749, - "src": "3231:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4738, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3231:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4741, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4749, - "src": "3252:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4740, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3252:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4744, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 4749, - "src": "3273:35:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4742, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3273:15:6", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4743, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3273:17:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4746, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4749, - "src": "3315:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4745, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3315:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3192:138:6" - }, - "returnParameters": { - "id": 4748, - "nodeType": "ParameterList", - "parameters": [], - "src": "3344:0:6" - }, - "scope": 4806, - "src": "3169:176:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4762, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaChangeDeadline", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4751, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4762, - "src": "3389:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4750, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3389:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4753, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4762, - "src": "3421:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4752, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3421:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4755, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4762, - "src": "3442:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4754, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3442:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4757, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 4762, - "src": "3463:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4756, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3463:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4759, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4762, - "src": "3485:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4758, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3485:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3382:118:6" - }, - "returnParameters": { - "id": 4761, - "nodeType": "ParameterList", - "parameters": [], - "src": "3514:0:6" - }, - "scope": 4806, - "src": "3355:160:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4775, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaChangeData", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4764, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4775, - "src": "3555:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4763, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3555:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4766, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4775, - "src": "3587:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4765, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3587:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4768, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4775, - "src": "3608:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4767, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3608:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4770, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4775, - "src": "3629:21:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4769, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3629:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4772, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4775, - "src": "3657:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3657:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3548:124:6" - }, - "returnParameters": { - "id": 4774, - "nodeType": "ParameterList", - "parameters": [], - "src": "3686:0:6" - }, - "scope": 4806, - "src": "3525:162:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4790, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaChangeApprover", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4788, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4777, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4790, - "src": "3731:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4776, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3731:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4779, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4790, - "src": "3763:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4778, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3763:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4781, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4790, - "src": "3784:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4780, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3784:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4783, - "name": "_approverId", - "nodeType": "VariableDeclaration", - "scope": 4790, - "src": "3805:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4782, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3805:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4785, - "name": "_approver", - "nodeType": "VariableDeclaration", - "scope": 4790, - "src": "3828:25:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 4784, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3828:15:6", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4787, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4790, - "src": "3860:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4786, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3860:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3724:151:6" - }, - "returnParameters": { - "id": 4789, - "nodeType": "ParameterList", - "parameters": [], - "src": "3889:0:6" - }, - "scope": 4806, - "src": "3697:193:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4805, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaChangeIssuer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4792, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4805, - "src": "3932:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4791, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3932:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4794, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4805, - "src": "3964:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4793, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3964:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4796, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4805, - "src": "3985:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4795, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3985:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4798, - "name": "_issuerIdToChange", - "nodeType": "VariableDeclaration", - "scope": 4805, - "src": "4006:22:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4797, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4006:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4800, - "name": "_newIssuer", - "nodeType": "VariableDeclaration", - "scope": 4805, - "src": "4035:26:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 4799, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4035:15:6", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4802, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4805, - "src": "4068:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4801, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4068:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3925:158:6" - }, - "returnParameters": { - "id": 4804, - "nodeType": "ParameterList", - "parameters": [], - "src": "4097:0:6" - }, - "scope": 4806, - "src": "3900:198:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 4807, - "src": "34:4077:6" - } - ], - "src": "0:4111:6" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/bounties/iBountiesMetaTxRelayer.sol", - "exportedSymbols": { - "iBountiesMetaTxRelayer": [ - 4806 - ] - }, - "id": 4807, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 4514, - "literals": [ - "solidity", - ">", - "0.5", - ".0", - "<=", - "0.7", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:30:6" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 4806, - "linearizedBaseContracts": [ - 4806 - ], - "name": "iBountiesMetaTxRelayer", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 4537, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaIssueBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4533, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4516, - "name": "signature", - "nodeType": "VariableDeclaration", - "scope": 4537, - "src": "210:24:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4515, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "210:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4519, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 4537, - "src": "241:35:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4517, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "241:15:6", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4518, - "length": null, - "nodeType": "ArrayTypeName", - "src": "241:17:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4522, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 4537, - "src": "283:29:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4520, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "283:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4521, - "length": null, - "nodeType": "ArrayTypeName", - "src": "283:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4524, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4537, - "src": "319:21:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4523, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "319:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4526, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 4537, - "src": "347:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4525, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "347:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4528, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 4537, - "src": "368:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4527, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "368:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4530, - "name": "_tokenVersion", - "nodeType": "VariableDeclaration", - "scope": 4537, - "src": "389:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4529, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "389:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4532, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4537, - "src": "414:11:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4531, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "414:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "203:223:6" - }, - "returnParameters": { - "id": 4536, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4535, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4537, - "src": "455:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4534, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "455:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "454:6:6" - }, - "scope": 4806, - "src": "179:282:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4562, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaIssueAndContribute", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4558, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4539, - "name": "signature", - "nodeType": "VariableDeclaration", - "scope": 4562, - "src": "507:24:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4538, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "507:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4542, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 4562, - "src": "538:35:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4540, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "538:15:6", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4541, - "length": null, - "nodeType": "ArrayTypeName", - "src": "538:17:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4545, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 4562, - "src": "580:29:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4543, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "580:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4544, - "length": null, - "nodeType": "ArrayTypeName", - "src": "580:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4547, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4562, - "src": "616:21:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4546, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "616:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4549, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 4562, - "src": "644:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4548, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "644:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4551, - "name": "_token", - "nodeType": "VariableDeclaration", - "scope": 4562, - "src": "665:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 4550, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "665:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4553, - "name": "_tokenVersion", - "nodeType": "VariableDeclaration", - "scope": 4562, - "src": "686:18:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4552, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "686:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4555, - "name": "_depositAmount", - "nodeType": "VariableDeclaration", - "scope": 4562, - "src": "711:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4554, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "711:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4557, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4562, - "src": "737:11:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4556, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "737:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "500:249:6" - }, - "returnParameters": { - "id": 4561, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4560, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 4562, - "src": "791:4:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4559, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "791:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "790:6:6" - }, - "scope": 4806, - "src": "469:328:6", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4573, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaContribute", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4571, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4564, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4573, - "src": "837:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4563, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "837:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4566, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4573, - "src": "869:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4565, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "869:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4568, - "name": "_amount", - "nodeType": "VariableDeclaration", - "scope": 4573, - "src": "890:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4567, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "890:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4570, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4573, - "src": "909:11:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4569, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "909:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "830:91:6" - }, - "returnParameters": { - "id": 4572, - "nodeType": "ParameterList", - "parameters": [], - "src": "948:0:6" - }, - "scope": 4806, - "src": "807:142:6", - "stateMutability": "payable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4584, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaRefundContribution", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4582, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4575, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4584, - "src": "997:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4574, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "997:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4577, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4584, - "src": "1029:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4576, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1029:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4579, - "name": "_contributionId", - "nodeType": "VariableDeclaration", - "scope": 4584, - "src": "1050:20:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4578, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1050:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4581, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4584, - "src": "1077:11:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4580, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1077:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "990:99:6" - }, - "returnParameters": { - "id": 4583, - "nodeType": "ParameterList", - "parameters": [], - "src": "1103:0:6" - }, - "scope": 4806, - "src": "959:145:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4596, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaRefundMyContributions", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4594, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4586, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4596, - "src": "1155:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4585, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1155:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4588, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4596, - "src": "1187:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4587, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1187:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4591, - "name": "_contributionIds", - "nodeType": "VariableDeclaration", - "scope": 4596, - "src": "1208:32:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 4589, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1208:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4590, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1208:6:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4593, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4596, - "src": "1247:11:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4592, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1247:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1148:111:6" - }, - "returnParameters": { - "id": 4595, - "nodeType": "ParameterList", - "parameters": [], - "src": "1273:0:6" - }, - "scope": 4806, - "src": "1114:160:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4610, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaRefundContributions", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4608, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4598, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4610, - "src": "1323:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4597, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1323:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4600, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4610, - "src": "1355:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4599, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1355:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4602, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4610, - "src": "1376:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4601, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1376:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4605, - "name": "_contributionIds", - "nodeType": "VariableDeclaration", - "scope": 4610, - "src": "1397:32:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 4603, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1397:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4604, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1397:6:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4607, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4610, - "src": "1436:11:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4606, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1436:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1316:132:6" - }, - "returnParameters": { - "id": 4609, - "nodeType": "ParameterList", - "parameters": [], - "src": "1462:0:6" - }, - "scope": 4806, - "src": "1284:179:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4624, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaDrainBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4622, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4612, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4624, - "src": "1504:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4611, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1504:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4614, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4624, - "src": "1536:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4613, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1536:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4616, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4624, - "src": "1557:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4615, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1557:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4619, - "name": "_amounts", - "nodeType": "VariableDeclaration", - "scope": 4624, - "src": "1578:24:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 4617, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1578:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4618, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1578:6:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4621, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4624, - "src": "1609:11:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4620, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1609:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1497:124:6" - }, - "returnParameters": { - "id": 4623, - "nodeType": "ParameterList", - "parameters": [], - "src": "1635:0:6" - }, - "scope": 4806, - "src": "1473:163:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4635, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaPerformAction", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4633, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4626, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4635, - "src": "1679:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4625, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1679:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4628, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4635, - "src": "1711:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4627, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1711:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4630, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4635, - "src": "1732:21:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4629, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1732:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4632, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4635, - "src": "1760:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4631, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1760:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1672:103:6" - }, - "returnParameters": { - "id": 4634, - "nodeType": "ParameterList", - "parameters": [], - "src": "1789:0:6" - }, - "scope": 4806, - "src": "1646:144:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4649, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaFulfillBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4647, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4637, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4649, - "src": "1833:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4636, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "1833:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4639, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4649, - "src": "1865:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4638, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "1865:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4642, - "name": "_fulfillers", - "nodeType": "VariableDeclaration", - "scope": 4649, - "src": "1886:39:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4640, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "1886:15:6", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4641, - "length": null, - "nodeType": "ArrayTypeName", - "src": "1886:17:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4644, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4649, - "src": "1932:21:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4643, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "1932:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4646, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4649, - "src": "1960:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4645, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "1960:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "1826:149:6" - }, - "returnParameters": { - "id": 4648, - "nodeType": "ParameterList", - "parameters": [], - "src": "1989:0:6" - }, - "scope": 4806, - "src": "1800:190:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4665, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaUpdateFulfillment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4663, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4651, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4665, - "src": "2037:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4650, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2037:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4653, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4665, - "src": "2069:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4652, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2069:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4655, - "name": "_fulfillmentId", - "nodeType": "VariableDeclaration", - "scope": 4665, - "src": "2090:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4654, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2090:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4658, - "name": "_fulfillers", - "nodeType": "VariableDeclaration", - "scope": 4665, - "src": "2116:39:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4656, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2116:15:6", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4657, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2116:17:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4660, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4665, - "src": "2162:21:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4659, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2162:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4662, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4665, - "src": "2190:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4661, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2190:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2030:175:6" - }, - "returnParameters": { - "id": 4664, - "nodeType": "ParameterList", - "parameters": [], - "src": "2219:0:6" - }, - "scope": 4806, - "src": "2000:220:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4681, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaAcceptFulfillment", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4679, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4667, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4681, - "src": "2267:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4666, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2267:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4669, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4681, - "src": "2299:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4668, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2299:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4671, - "name": "_fulfillmentId", - "nodeType": "VariableDeclaration", - "scope": 4681, - "src": "2320:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4670, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2320:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4673, - "name": "_approverId", - "nodeType": "VariableDeclaration", - "scope": 4681, - "src": "2346:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4672, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2346:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4676, - "name": "_tokenAmounts", - "nodeType": "VariableDeclaration", - "scope": 4681, - "src": "2369:29:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 4674, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2369:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4675, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2369:6:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4678, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4681, - "src": "2405:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4677, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2405:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2260:160:6" - }, - "returnParameters": { - "id": 4680, - "nodeType": "ParameterList", - "parameters": [], - "src": "2434:0:6" - }, - "scope": 4806, - "src": "2230:205:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4700, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaFulfillAndAccept", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4698, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4683, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4700, - "src": "2481:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4682, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2481:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4685, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4700, - "src": "2513:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4684, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2513:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4688, - "name": "_fulfillers", - "nodeType": "VariableDeclaration", - "scope": 4700, - "src": "2534:38:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4686, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2534:15:6", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4687, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2534:17:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4690, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4700, - "src": "2579:21:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4689, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2579:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4692, - "name": "_approverId", - "nodeType": "VariableDeclaration", - "scope": 4700, - "src": "2607:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4691, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2607:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4695, - "name": "_tokenAmounts", - "nodeType": "VariableDeclaration", - "scope": 4700, - "src": "2630:29:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", - "typeString": "uint256[]" - }, - "typeName": { - "baseType": { - "id": 4693, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2630:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 4694, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2630:6:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", - "typeString": "uint256[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4697, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4700, - "src": "2666:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4696, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2666:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2474:207:6" - }, - "returnParameters": { - "id": 4699, - "nodeType": "ParameterList", - "parameters": [], - "src": "2695:0:6" - }, - "scope": 4806, - "src": "2445:251:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4721, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaChangeBounty", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4719, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4702, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4721, - "src": "2738:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4701, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "2738:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4704, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4721, - "src": "2770:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4703, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2770:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4706, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4721, - "src": "2791:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4705, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2791:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4709, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 4721, - "src": "2812:35:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4707, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2812:15:6", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4708, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2812:17:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4712, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 4721, - "src": "2854:37:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4710, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "2854:15:6", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4711, - "length": null, - "nodeType": "ArrayTypeName", - "src": "2854:17:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4714, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4721, - "src": "2898:21:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4713, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "2898:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4716, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 4721, - "src": "2926:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4715, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "2926:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4718, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4721, - "src": "2947:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4717, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "2947:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "2731:231:6" - }, - "returnParameters": { - "id": 4720, - "nodeType": "ParameterList", - "parameters": [], - "src": "2976:0:6" - }, - "scope": 4806, - "src": "2706:271:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4735, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaAddApprovers", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4733, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4723, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4735, - "src": "3019:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4722, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3019:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4725, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4735, - "src": "3051:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4724, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3051:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4727, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4735, - "src": "3072:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4726, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3072:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4730, - "name": "_approvers", - "nodeType": "VariableDeclaration", - "scope": 4735, - "src": "3093:29:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr", - "typeString": "address[]" - }, - "typeName": { - "baseType": { - "id": 4728, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3093:7:6", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "id": 4729, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3093:9:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", - "typeString": "address[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4732, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4735, - "src": "3129:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4731, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3129:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3012:132:6" - }, - "returnParameters": { - "id": 4734, - "nodeType": "ParameterList", - "parameters": [], - "src": "3158:0:6" - }, - "scope": 4806, - "src": "2987:172:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4749, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaAddIssuers", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4747, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4737, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4749, - "src": "3199:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4736, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3199:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4739, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4749, - "src": "3231:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4738, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3231:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4741, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4749, - "src": "3252:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4740, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3252:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4744, - "name": "_issuers", - "nodeType": "VariableDeclaration", - "scope": 4749, - "src": "3273:35:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr", - "typeString": "address payable[]" - }, - "typeName": { - "baseType": { - "id": 4742, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3273:15:6", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "id": 4743, - "length": null, - "nodeType": "ArrayTypeName", - "src": "3273:17:6", - "typeDescriptions": { - "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr", - "typeString": "address payable[]" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4746, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4749, - "src": "3315:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4745, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3315:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3192:138:6" - }, - "returnParameters": { - "id": 4748, - "nodeType": "ParameterList", - "parameters": [], - "src": "3344:0:6" - }, - "scope": 4806, - "src": "3169:176:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4762, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaChangeDeadline", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4760, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4751, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4762, - "src": "3389:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4750, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3389:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4753, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4762, - "src": "3421:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4752, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3421:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4755, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4762, - "src": "3442:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4754, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3442:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4757, - "name": "_deadline", - "nodeType": "VariableDeclaration", - "scope": 4762, - "src": "3463:15:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4756, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3463:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4759, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4762, - "src": "3485:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4758, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3485:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3382:118:6" - }, - "returnParameters": { - "id": 4761, - "nodeType": "ParameterList", - "parameters": [], - "src": "3514:0:6" - }, - "scope": 4806, - "src": "3355:160:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4775, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaChangeData", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4773, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4764, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4775, - "src": "3555:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4763, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3555:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4766, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4775, - "src": "3587:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4765, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3587:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4768, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4775, - "src": "3608:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4767, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3608:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4770, - "name": "_data", - "nodeType": "VariableDeclaration", - "scope": 4775, - "src": "3629:21:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 4769, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "3629:6:6", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4772, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4775, - "src": "3657:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4771, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3657:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3548:124:6" - }, - "returnParameters": { - "id": 4774, - "nodeType": "ParameterList", - "parameters": [], - "src": "3686:0:6" - }, - "scope": 4806, - "src": "3525:162:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4790, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaChangeApprover", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4788, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4777, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4790, - "src": "3731:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4776, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3731:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4779, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4790, - "src": "3763:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4778, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3763:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4781, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4790, - "src": "3784:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4780, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3784:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4783, - "name": "_approverId", - "nodeType": "VariableDeclaration", - "scope": 4790, - "src": "3805:16:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4782, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3805:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4785, - "name": "_approver", - "nodeType": "VariableDeclaration", - "scope": 4790, - "src": "3828:25:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 4784, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "3828:15:6", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4787, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4790, - "src": "3860:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4786, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "3860:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3724:151:6" - }, - "returnParameters": { - "id": 4789, - "nodeType": "ParameterList", - "parameters": [], - "src": "3889:0:6" - }, - "scope": 4806, - "src": "3697:193:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 4805, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "metaChangeIssuer", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 4803, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 4792, - "name": "_signature", - "nodeType": "VariableDeclaration", - "scope": 4805, - "src": "3932:25:6", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_bytes_calldata_ptr", - "typeString": "bytes" - }, - "typeName": { - "id": 4791, - "name": "bytes", - "nodeType": "ElementaryTypeName", - "src": "3932:5:6", - "typeDescriptions": { - "typeIdentifier": "t_bytes_storage_ptr", - "typeString": "bytes" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4794, - "name": "_bountyId", - "nodeType": "VariableDeclaration", - "scope": 4805, - "src": "3964:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4793, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3964:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4796, - "name": "_issuerId", - "nodeType": "VariableDeclaration", - "scope": 4805, - "src": "3985:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4795, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "3985:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4798, - "name": "_issuerIdToChange", - "nodeType": "VariableDeclaration", - "scope": 4805, - "src": "4006:22:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4797, - "name": "uint", - "nodeType": "ElementaryTypeName", - "src": "4006:4:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4800, - "name": "_newIssuer", - "nodeType": "VariableDeclaration", - "scope": 4805, - "src": "4035:26:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - }, - "typeName": { - "id": 4799, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "4035:15:6", - "stateMutability": "payable", - "typeDescriptions": { - "typeIdentifier": "t_address_payable", - "typeString": "address payable" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 4802, - "name": "_nonce", - "nodeType": "VariableDeclaration", - "scope": 4805, - "src": "4068:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 4801, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "4068:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "3925:158:6" - }, - "returnParameters": { - "id": 4804, - "nodeType": "ParameterList", - "parameters": [], - "src": "4097:0:6" - }, - "scope": 4806, - "src": "3900:198:6", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 4807, - "src": "34:4077:6" - } - ], - "src": "0:4111:6" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:19.923Z", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file diff --git a/src/contracts/iGovernance.json b/src/contracts/iGovernance.json deleted file mode 100644 index a888244..0000000 --- a/src/contracts/iGovernance.json +++ /dev/null @@ -1,1417 +0,0 @@ -{ - "contractName": "iGovernance", - "abi": [ - { - "constant": false, - "inputs": [ - { - "name": "applicant", - "type": "address" - }, - { - "name": "sharesRequested", - "type": "uint256" - }, - { - "name": "lootRequested", - "type": "uint256" - }, - { - "name": "tributeOffered", - "type": "uint256" - }, - { - "name": "tributeToken", - "type": "address" - }, - { - "name": "paymentRequested", - "type": "uint256" - }, - { - "name": "paymentToken", - "type": "address" - }, - { - "name": "details", - "type": "string" - } - ], - "name": "submitProposal", - "outputs": [ - { - "name": "proposalId", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "proposalId", - "type": "uint256" - } - ], - "name": "sponsorProposal", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getProposal", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getProposalQueueLength", - "outputs": [ - { - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "proposalIndex", - "type": "uint256" - }, - { - "name": "uintVote", - "type": "uint8" - } - ], - "name": "submitVote", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "name": "proposalIndex", - "type": "uint256" - } - ], - "name": "processProposal", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ], - "metadata": "{\"compiler\":{\"version\":\"0.5.9+commit.e560f70d\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":false,\"inputs\":[{\"name\":\"applicant\",\"type\":\"address\"},{\"name\":\"sharesRequested\",\"type\":\"uint256\"},{\"name\":\"lootRequested\",\"type\":\"uint256\"},{\"name\":\"tributeOffered\",\"type\":\"uint256\"},{\"name\":\"tributeToken\",\"type\":\"address\"},{\"name\":\"paymentRequested\",\"type\":\"uint256\"},{\"name\":\"paymentToken\",\"type\":\"address\"},{\"name\":\"details\",\"type\":\"string\"}],\"name\":\"submitProposal\",\"outputs\":[{\"name\":\"proposalId\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getProposalQueueLength\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"sponsorProposal\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"proposalIndex\",\"type\":\"uint256\"},{\"name\":\"uintVote\",\"type\":\"uint8\"}],\"name\":\"submitVote\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getProposal\",\"outputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"proposalIndex\",\"type\":\"uint256\"}],\"name\":\"processProposal\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/iGovernance.sol\":\"iGovernance\"},\"evmVersion\":\"constantinople\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/iGovernance.sol\":{\"keccak256\":\"0x2e3ecc4629568c30886c401376a98f196c7d8dafbf1dbce95296e0ca553cb85f\",\"urls\":[\"bzzr://a69865ec2501d5c618498843782e9c014b0903e4a6dc79511303fc5c53372534\",\"dweb:/ipfs/QmWX6FLo2pNaQQXfyVebLSc2VAi4yJNqiVLNSMUcouVyZa\"]}},\"version\":1}", - "bytecode": "0x", - "deployedBytecode": "0x", - "sourceMap": "", - "deployedSourceMap": "", - "source": "pragma solidity >0.5.0<=0.7.0;\r\n\r\ninterface iGovernance {\r\n\r\n // function storeValue(uint value) external;\r\n // function getValues() external view returns(uint);\r\n\r\n function submitProposal(address applicant, uint256 sharesRequested, uint256 lootRequested, uint256 tributeOffered, address tributeToken, \r\n \t\t\t\t\t\t uint256 paymentRequested, address paymentToken, string calldata details) external returns (uint256 proposalId);\r\n function sponsorProposal(uint256 proposalId) external returns (uint256);\r\n function getProposal () external view returns(uint256);\r\n function getProposalQueueLength() external view returns (uint256);\r\n function submitVote(uint256 proposalIndex, uint8 uintVote) external;\r\n function processProposal(uint256 proposalIndex) external;\r\n\r\n}\r\n\r\n", - "sourcePath": "C:\\Users\\abhinavanshul\\contracts\\truffle-contracts\\contracts\\dao\\iGovernance.sol", - "ast": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/iGovernance.sol", - "exportedSymbols": { - "iGovernance": [ - 9267 - ] - }, - "id": 9268, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9216, - "literals": [ - "solidity", - ">", - "0.5", - ".0", - "<=", - "0.7", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:30:18" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 9267, - "linearizedBaseContracts": [ - 9267 - ], - "name": "iGovernance", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 9237, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "submitProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9233, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9218, - "name": "applicant", - "nodeType": "VariableDeclaration", - "scope": 9237, - "src": "193:17:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9217, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "193:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9220, - "name": "sharesRequested", - "nodeType": "VariableDeclaration", - "scope": 9237, - "src": "212:23:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9219, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "212:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9222, - "name": "lootRequested", - "nodeType": "VariableDeclaration", - "scope": 9237, - "src": "237:21:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "237:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9224, - "name": "tributeOffered", - "nodeType": "VariableDeclaration", - "scope": 9237, - "src": "260:22:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9223, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "260:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9226, - "name": "tributeToken", - "nodeType": "VariableDeclaration", - "scope": 9237, - "src": "284:20:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9225, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "284:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9228, - "name": "paymentRequested", - "nodeType": "VariableDeclaration", - "scope": 9237, - "src": "318:24:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "318:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9230, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 9237, - "src": "344:20:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9229, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "344:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9232, - "name": "details", - "nodeType": "VariableDeclaration", - "scope": 9237, - "src": "366:23:18", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9231, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "366:6:18", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "192:198:18" - }, - "returnParameters": { - "id": 9236, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9235, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 9237, - "src": "409:18:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9234, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "409:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "408:20:18" - }, - "scope": 9267, - "src": "169:260:18", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 9244, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "sponsorProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9240, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9239, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 9244, - "src": "458:18:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9238, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "458:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "457:20:18" - }, - "returnParameters": { - "id": 9243, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9242, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9244, - "src": "497:7:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9241, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "497:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "496:9:18" - }, - "scope": 9267, - "src": "433:73:18", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 9249, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9245, - "nodeType": "ParameterList", - "parameters": [], - "src": "531:2:18" - }, - "returnParameters": { - "id": 9248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9247, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9249, - "src": "557:7:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9246, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "557:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "556:9:18" - }, - "scope": 9267, - "src": "510:56:18", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 9254, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getProposalQueueLength", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9250, - "nodeType": "ParameterList", - "parameters": [], - "src": "601:2:18" - }, - "returnParameters": { - "id": 9253, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9252, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9254, - "src": "627:7:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9251, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "627:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "626:9:18" - }, - "scope": 9267, - "src": "570:66:18", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 9261, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "submitVote", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9259, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9256, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 9261, - "src": "660:21:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "660:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9258, - "name": "uintVote", - "nodeType": "VariableDeclaration", - "scope": 9261, - "src": "683:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9257, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "683:5:18", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "659:39:18" - }, - "returnParameters": { - "id": 9260, - "nodeType": "ParameterList", - "parameters": [], - "src": "707:0:18" - }, - "scope": 9267, - "src": "640:68:18", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 9266, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "processProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9264, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9263, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 9266, - "src": "737:21:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9262, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "737:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "736:23:18" - }, - "returnParameters": { - "id": 9265, - "nodeType": "ParameterList", - "parameters": [], - "src": "768:0:18" - }, - "scope": 9267, - "src": "712:57:18", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 9268, - "src": "34:740:18" - } - ], - "src": "0:778:18" - }, - "legacyAST": { - "absolutePath": "/C/Users/abhinavanshul/contracts/truffle-contracts/contracts/dao/iGovernance.sol", - "exportedSymbols": { - "iGovernance": [ - 9267 - ] - }, - "id": 9268, - "nodeType": "SourceUnit", - "nodes": [ - { - "id": 9216, - "literals": [ - "solidity", - ">", - "0.5", - ".0", - "<=", - "0.7", - ".0" - ], - "nodeType": "PragmaDirective", - "src": "0:30:18" - }, - { - "baseContracts": [], - "contractDependencies": [], - "contractKind": "interface", - "documentation": null, - "fullyImplemented": false, - "id": 9267, - "linearizedBaseContracts": [ - 9267 - ], - "name": "iGovernance", - "nodeType": "ContractDefinition", - "nodes": [ - { - "body": null, - "documentation": null, - "id": 9237, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "submitProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9233, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9218, - "name": "applicant", - "nodeType": "VariableDeclaration", - "scope": 9237, - "src": "193:17:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9217, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "193:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9220, - "name": "sharesRequested", - "nodeType": "VariableDeclaration", - "scope": 9237, - "src": "212:23:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9219, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "212:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9222, - "name": "lootRequested", - "nodeType": "VariableDeclaration", - "scope": 9237, - "src": "237:21:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9221, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "237:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9224, - "name": "tributeOffered", - "nodeType": "VariableDeclaration", - "scope": 9237, - "src": "260:22:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9223, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "260:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9226, - "name": "tributeToken", - "nodeType": "VariableDeclaration", - "scope": 9237, - "src": "284:20:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9225, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "284:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9228, - "name": "paymentRequested", - "nodeType": "VariableDeclaration", - "scope": 9237, - "src": "318:24:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9227, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "318:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9230, - "name": "paymentToken", - "nodeType": "VariableDeclaration", - "scope": 9237, - "src": "344:20:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - }, - "typeName": { - "id": 9229, - "name": "address", - "nodeType": "ElementaryTypeName", - "src": "344:7:18", - "stateMutability": "nonpayable", - "typeDescriptions": { - "typeIdentifier": "t_address", - "typeString": "address" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9232, - "name": "details", - "nodeType": "VariableDeclaration", - "scope": 9237, - "src": "366:23:18", - "stateVariable": false, - "storageLocation": "calldata", - "typeDescriptions": { - "typeIdentifier": "t_string_calldata_ptr", - "typeString": "string" - }, - "typeName": { - "id": 9231, - "name": "string", - "nodeType": "ElementaryTypeName", - "src": "366:6:18", - "typeDescriptions": { - "typeIdentifier": "t_string_storage_ptr", - "typeString": "string" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "192:198:18" - }, - "returnParameters": { - "id": 9236, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9235, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 9237, - "src": "409:18:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9234, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "409:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "408:20:18" - }, - "scope": 9267, - "src": "169:260:18", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 9244, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "sponsorProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9240, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9239, - "name": "proposalId", - "nodeType": "VariableDeclaration", - "scope": 9244, - "src": "458:18:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9238, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "458:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "457:20:18" - }, - "returnParameters": { - "id": 9243, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9242, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9244, - "src": "497:7:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9241, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "497:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "496:9:18" - }, - "scope": 9267, - "src": "433:73:18", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 9249, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9245, - "nodeType": "ParameterList", - "parameters": [], - "src": "531:2:18" - }, - "returnParameters": { - "id": 9248, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9247, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9249, - "src": "557:7:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9246, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "557:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "556:9:18" - }, - "scope": 9267, - "src": "510:56:18", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 9254, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "getProposalQueueLength", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9250, - "nodeType": "ParameterList", - "parameters": [], - "src": "601:2:18" - }, - "returnParameters": { - "id": 9253, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9252, - "name": "", - "nodeType": "VariableDeclaration", - "scope": 9254, - "src": "627:7:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9251, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "627:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "626:9:18" - }, - "scope": 9267, - "src": "570:66:18", - "stateMutability": "view", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 9261, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "submitVote", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9259, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9256, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 9261, - "src": "660:21:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9255, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "660:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - }, - { - "constant": false, - "id": 9258, - "name": "uintVote", - "nodeType": "VariableDeclaration", - "scope": 9261, - "src": "683:14:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 9257, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "683:5:18", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "659:39:18" - }, - "returnParameters": { - "id": 9260, - "nodeType": "ParameterList", - "parameters": [], - "src": "707:0:18" - }, - "scope": 9267, - "src": "640:68:18", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - }, - { - "body": null, - "documentation": null, - "id": 9266, - "implemented": false, - "kind": "function", - "modifiers": [], - "name": "processProposal", - "nodeType": "FunctionDefinition", - "parameters": { - "id": 9264, - "nodeType": "ParameterList", - "parameters": [ - { - "constant": false, - "id": 9263, - "name": "proposalIndex", - "nodeType": "VariableDeclaration", - "scope": 9266, - "src": "737:21:18", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - }, - "typeName": { - "id": 9262, - "name": "uint256", - "nodeType": "ElementaryTypeName", - "src": "737:7:18", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "value": null, - "visibility": "internal" - } - ], - "src": "736:23:18" - }, - "returnParameters": { - "id": 9265, - "nodeType": "ParameterList", - "parameters": [], - "src": "768:0:18" - }, - "scope": 9267, - "src": "712:57:18", - "stateMutability": "nonpayable", - "superFunction": null, - "visibility": "external" - } - ], - "scope": 9268, - "src": "34:740:18" - } - ], - "src": "0:778:18" - }, - "compiler": { - "name": "solc", - "version": "0.5.9+commit.e560f70d.Emscripten.clang" - }, - "networks": {}, - "schemaVersion": "3.0.23", - "updatedAt": "2020-06-02T13:56:20.219Z", - "devdoc": { - "methods": {} - }, - "userdoc": { - "methods": {} - } -} \ No newline at end of file From ea6278e2a8df6eeb1b81f0dc0f07476daa79231b Mon Sep 17 00:00:00 2001 From: Koshik Raj Date: Wed, 3 Jun 2020 13:50:24 +0530 Subject: [PATCH 03/18] fixes GAS_LIMIT --- src/hooks/useProjectCreation.js | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/hooks/useProjectCreation.js b/src/hooks/useProjectCreation.js index cacd976..c6e1842 100644 --- a/src/hooks/useProjectCreation.js +++ b/src/hooks/useProjectCreation.js @@ -6,7 +6,7 @@ import { useActivity } from '../components/Activity/ActivityProvider' import ProjectCreation from '../contracts/GitFundedGrantFactory.json' -const GAS_LIMIT = 1200000 +const GAS_LIMIT = 3000000 // Project creation contract function useProjectCreationContract() { @@ -23,9 +23,7 @@ export function useProjectCreationActions() { const create = useCallback( (id, name, budget) => { return addActivity( - projectCreationContract.newProject(id, name, budget, { - gasLimit: GAS_LIMIT, - }), + projectCreationContract.newProject(id, name, budget), 'newProject', { name: name, budget: budget } ) From 5790a0c8c33f586b78c70f05dd533d015aeb8db4 Mon Sep 17 00:00:00 2001 From: abhinav anshul Date: Thu, 4 Jun 2020 13:03:37 +0530 Subject: [PATCH 04/18] adds Loading spinner, adds conditional logic for Import button --- debug.log | 2 + src/components/Dashboard/APIcall.js | 2 + src/components/Disputes/Import.js | 79 ++++++++++++++++++----------- src/hooks/useProjectCreation.js | 2 +- 4 files changed, 54 insertions(+), 31 deletions(-) diff --git a/debug.log b/debug.log index c8d1d9a..1317946 100644 --- a/debug.log +++ b/debug.log @@ -23,3 +23,5 @@ [0602/190943.215:ERROR:crash_report_database_win.cc(469)] failed to stat report [0602/192715.867:ERROR:crash_report_database_win.cc(469)] failed to stat report [0602/192715.870:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0603/212048.026:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0603/212048.028:ERROR:crash_report_database_win.cc(469)] failed to stat report diff --git a/src/components/Dashboard/APIcall.js b/src/components/Dashboard/APIcall.js index 2007ecc..af757b9 100644 --- a/src/components/Dashboard/APIcall.js +++ b/src/components/Dashboard/APIcall.js @@ -36,6 +36,8 @@ function APIcall() { const onFailure = (response) => console.error(response) + const TokenContext = React.createContext(localStorage.getItem('ACCESS TOKEN')) + return (
) : null} - - - - - - - + {list.length === 0 ? ( +
+ +
+ ) : ( + <> + + {console.log(selected)} + + + + + )}
) diff --git a/src/hooks/useProjectCreation.js b/src/hooks/useProjectCreation.js index cacd976..d4cc2fa 100644 --- a/src/hooks/useProjectCreation.js +++ b/src/hooks/useProjectCreation.js @@ -27,7 +27,7 @@ export function useProjectCreationActions() { gasLimit: GAS_LIMIT, }), 'newProject', - { name: name, budget: budget } + { id: id, name: name, budget: budget } ) }, [addActivity, projectCreationContract] From 0688fda2b6ef5b0456254fd8b5608c4c7503f5b8 Mon Sep 17 00:00:00 2001 From: Koshik Raj Date: Thu, 4 Jun 2020 18:37:20 +0530 Subject: [PATCH 05/18] fixes createProject to pass GitHub repoid --- src/components/Disputes/Import.js | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/components/Disputes/Import.js b/src/components/Disputes/Import.js index 6337b4a..3d5795b 100644 --- a/src/components/Disputes/Import.js +++ b/src/components/Disputes/Import.js @@ -5,8 +5,6 @@ import { Octokit } from '@octokit/rest' import { useWallet } from 'use-wallet' import { useProjectCreationActions } from '../../hooks/useProjectCreation' -// import { useProjectCreationActions } from './useProjectCreation' - function Import() { const wallet = useWallet() @@ -45,7 +43,7 @@ function Import() { }) let repoIndex = 0 while (repoIndex < data.length) { - repoList.push(data[repoIndex].name) + repoList.push({name: data[repoIndex].name, id: data[repoIndex].id}) repoIndex++ } setList([...repoList]) @@ -66,13 +64,13 @@ function Import() { const inputBudget = useRef(null) const inputName = useRef(null) + const inputDropdown = useRef(null) async function handleProjectCreationn() { let nameInput = inputName.current.value let budgetInput = inputBudget.current.value - let dropdownInput = inputDropdown.current.value - console.log(nameInput, budgetInput) - await create(dropdownInput, nameInput, budgetInput) + let dropdownInput = list[selected].id + await create(dropdownInput.toString(), nameInput, budgetInput) } return ( @@ -100,7 +98,7 @@ function Import() { i.name)]} ref={inputDropdown} style={{ marginTop: '4rem', From 6616dc74e48f47de05f9d791e8c96c0e195e3956 Mon Sep 17 00:00:00 2001 From: abhinav anshul Date: Fri, 5 Jun 2020 12:11:42 +0530 Subject: [PATCH 06/18] fixes project structure --- contracts/truffle-config.js | 26 +++++++++-------- debug.log | 8 ++++++ src/App.js | 28 +++++++++---------- .../{Disputes => Dashboard}/DisputeCard.js | 0 .../{Disputes => Dashboard}/DisputeDetail.js | 0 .../DisputeEvidences.js | 0 .../{Disputes => Dashboard}/DisputeInfo.js | 0 .../{Disputes => Dashboard}/DisputeList.js | 0 .../{Disputes => Dashboard}/DisputeStatus.js | 0 .../{Disputes => Dashboard}/DisputeText.js | 0 .../DisputeTimeline.js | 0 .../{Disputes => Dashboard}/Disputes.js | 0 .../{Disputes => Dashboard}/GithubRESTAPI.js | 0 .../{Disputes => Dashboard}/Import.js | 0 .../ProjectCreation.js | 0 .../{Dashboard => Profile}/APIcall.js | 9 ------ .../{Dashboard => Profile}/Balance.js | 0 .../{Dashboard => Profile}/Balances.js | 0 .../{Dashboard => Profile}/Connect.js | 0 .../{Dashboard => Profile}/CourtStats.js | 0 .../{Dashboard => Profile}/Dashboard.js | 0 .../{Dashboard => Profile}/DashboardStats.js | 0 .../{Dashboard => Profile}/ImportNew.js | 0 .../{Dashboard => Profile}/LatestActivity.js | 0 .../{Dashboard => Profile}/ProfileHeader.js | 0 .../{Dashboard => Profile}/TaskTable.js | 0 src/components/{Dashboard => Profile}/Test.js | 0 .../{Dashboard => Profile}/test.css | 0 28 files changed, 36 insertions(+), 35 deletions(-) rename src/components/{Disputes => Dashboard}/DisputeCard.js (100%) rename src/components/{Disputes => Dashboard}/DisputeDetail.js (100%) rename src/components/{Disputes => Dashboard}/DisputeEvidences.js (100%) rename src/components/{Disputes => Dashboard}/DisputeInfo.js (100%) rename src/components/{Disputes => Dashboard}/DisputeList.js (100%) rename src/components/{Disputes => Dashboard}/DisputeStatus.js (100%) rename src/components/{Disputes => Dashboard}/DisputeText.js (100%) rename src/components/{Disputes => Dashboard}/DisputeTimeline.js (100%) rename src/components/{Disputes => Dashboard}/Disputes.js (100%) rename src/components/{Disputes => Dashboard}/GithubRESTAPI.js (100%) rename src/components/{Disputes => Dashboard}/Import.js (100%) rename src/components/{Disputes => Dashboard}/ProjectCreation.js (100%) rename src/components/{Dashboard => Profile}/APIcall.js (88%) rename src/components/{Dashboard => Profile}/Balance.js (100%) rename src/components/{Dashboard => Profile}/Balances.js (100%) rename src/components/{Dashboard => Profile}/Connect.js (100%) rename src/components/{Dashboard => Profile}/CourtStats.js (100%) rename src/components/{Dashboard => Profile}/Dashboard.js (100%) rename src/components/{Dashboard => Profile}/DashboardStats.js (100%) rename src/components/{Dashboard => Profile}/ImportNew.js (100%) rename src/components/{Dashboard => Profile}/LatestActivity.js (100%) rename src/components/{Dashboard => Profile}/ProfileHeader.js (100%) rename src/components/{Dashboard => Profile}/TaskTable.js (100%) rename src/components/{Dashboard => Profile}/Test.js (100%) rename src/components/{Dashboard => Profile}/test.css (100%) diff --git a/contracts/truffle-config.js b/contracts/truffle-config.js index 55de901..e5883f5 100644 --- a/contracts/truffle-config.js +++ b/contracts/truffle-config.js @@ -1,30 +1,32 @@ -const path = require("path"); +/* eslint-disable */ +const path = require('path') module.exports = { // See // to customize your Truffle configuration! - contracts_build_directory: path.join(__dirname, "../src/contracts"), + contracts_build_directory: path.join(__dirname, '../src/contracts'), networks: { development: { host: '127.0.0.1', port: 8545, gas: 6721975, // <-- Use this high gas value gasPrice: 1000000000, - network_id: '*' // Match any network id - } + network_id: '*', // Match any network id + }, }, // Configure your compilers compilers: { solc: { - version: "0.6.6", // Fetch exact version from solc-bin (default: truffle's version) + version: '0.6.6', // Fetch exact version from solc-bin (default: truffle's version) docker: false, // Use "0.5.1" you've installed locally with docker (default: false) - settings: { // See the solidity docs for advice about optimization and evmVersion + settings: { + // See the solidity docs for advice about optimization and evmVersion optimizer: { enabled: true, - runs: 200 + runs: 200, }, - evmVersion: 'constantinople' - } - } - } -}; + evmVersion: 'constantinople', + }, + }, + }, +} diff --git a/debug.log b/debug.log index 1317946..75459b9 100644 --- a/debug.log +++ b/debug.log @@ -25,3 +25,11 @@ [0602/192715.870:ERROR:crash_report_database_win.cc(469)] failed to stat report [0603/212048.026:ERROR:crash_report_database_win.cc(469)] failed to stat report [0603/212048.028:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0604/185505.121:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0604/185505.138:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0605/101632.670:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0605/101632.672:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0605/105518.019:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0605/105518.043:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0605/114652.318:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0605/114652.321:ERROR:crash_report_database_win.cc(469)] failed to stat report diff --git a/src/App.js b/src/App.js index 4ecffa2..abf9c1f 100644 --- a/src/App.js +++ b/src/App.js @@ -9,12 +9,12 @@ import theme from './theme-court' import MainView from './components/MainView' import ErrorPage from './ErrorPage' -import Dashboard from './components/Dashboard/Dashboard' +import Dashboard from './components/Profile/Dashboard' /* eslint-disable prettier/prettier */ import Tasks from './components/Tasks/Tasks' import Sample from './components/Sample/Sample' -import Disputes from './components/Disputes/Disputes' +import Disputes from './components/Dashboard/Disputes' import { WalletProvider } from './providers/Wallet' import { ActivityProvider } from './components/Activity/ActivityProvider' @@ -23,18 +23,18 @@ function App() { -
- - {/* */} - - - - - - - - -
+
+ + {/* */} + + + + + + + + +
diff --git a/src/components/Disputes/DisputeCard.js b/src/components/Dashboard/DisputeCard.js similarity index 100% rename from src/components/Disputes/DisputeCard.js rename to src/components/Dashboard/DisputeCard.js diff --git a/src/components/Disputes/DisputeDetail.js b/src/components/Dashboard/DisputeDetail.js similarity index 100% rename from src/components/Disputes/DisputeDetail.js rename to src/components/Dashboard/DisputeDetail.js diff --git a/src/components/Disputes/DisputeEvidences.js b/src/components/Dashboard/DisputeEvidences.js similarity index 100% rename from src/components/Disputes/DisputeEvidences.js rename to src/components/Dashboard/DisputeEvidences.js diff --git a/src/components/Disputes/DisputeInfo.js b/src/components/Dashboard/DisputeInfo.js similarity index 100% rename from src/components/Disputes/DisputeInfo.js rename to src/components/Dashboard/DisputeInfo.js diff --git a/src/components/Disputes/DisputeList.js b/src/components/Dashboard/DisputeList.js similarity index 100% rename from src/components/Disputes/DisputeList.js rename to src/components/Dashboard/DisputeList.js diff --git a/src/components/Disputes/DisputeStatus.js b/src/components/Dashboard/DisputeStatus.js similarity index 100% rename from src/components/Disputes/DisputeStatus.js rename to src/components/Dashboard/DisputeStatus.js diff --git a/src/components/Disputes/DisputeText.js b/src/components/Dashboard/DisputeText.js similarity index 100% rename from src/components/Disputes/DisputeText.js rename to src/components/Dashboard/DisputeText.js diff --git a/src/components/Disputes/DisputeTimeline.js b/src/components/Dashboard/DisputeTimeline.js similarity index 100% rename from src/components/Disputes/DisputeTimeline.js rename to src/components/Dashboard/DisputeTimeline.js diff --git a/src/components/Disputes/Disputes.js b/src/components/Dashboard/Disputes.js similarity index 100% rename from src/components/Disputes/Disputes.js rename to src/components/Dashboard/Disputes.js diff --git a/src/components/Disputes/GithubRESTAPI.js b/src/components/Dashboard/GithubRESTAPI.js similarity index 100% rename from src/components/Disputes/GithubRESTAPI.js rename to src/components/Dashboard/GithubRESTAPI.js diff --git a/src/components/Disputes/Import.js b/src/components/Dashboard/Import.js similarity index 100% rename from src/components/Disputes/Import.js rename to src/components/Dashboard/Import.js diff --git a/src/components/Disputes/ProjectCreation.js b/src/components/Dashboard/ProjectCreation.js similarity index 100% rename from src/components/Disputes/ProjectCreation.js rename to src/components/Dashboard/ProjectCreation.js diff --git a/src/components/Dashboard/APIcall.js b/src/components/Profile/APIcall.js similarity index 88% rename from src/components/Dashboard/APIcall.js rename to src/components/Profile/APIcall.js index af757b9..ffa24ad 100644 --- a/src/components/Dashboard/APIcall.js +++ b/src/components/Profile/APIcall.js @@ -62,15 +62,6 @@ function APIcall() { className='testcss' /> )} - - {/* */}
) diff --git a/src/components/Dashboard/Balance.js b/src/components/Profile/Balance.js similarity index 100% rename from src/components/Dashboard/Balance.js rename to src/components/Profile/Balance.js diff --git a/src/components/Dashboard/Balances.js b/src/components/Profile/Balances.js similarity index 100% rename from src/components/Dashboard/Balances.js rename to src/components/Profile/Balances.js diff --git a/src/components/Dashboard/Connect.js b/src/components/Profile/Connect.js similarity index 100% rename from src/components/Dashboard/Connect.js rename to src/components/Profile/Connect.js diff --git a/src/components/Dashboard/CourtStats.js b/src/components/Profile/CourtStats.js similarity index 100% rename from src/components/Dashboard/CourtStats.js rename to src/components/Profile/CourtStats.js diff --git a/src/components/Dashboard/Dashboard.js b/src/components/Profile/Dashboard.js similarity index 100% rename from src/components/Dashboard/Dashboard.js rename to src/components/Profile/Dashboard.js diff --git a/src/components/Dashboard/DashboardStats.js b/src/components/Profile/DashboardStats.js similarity index 100% rename from src/components/Dashboard/DashboardStats.js rename to src/components/Profile/DashboardStats.js diff --git a/src/components/Dashboard/ImportNew.js b/src/components/Profile/ImportNew.js similarity index 100% rename from src/components/Dashboard/ImportNew.js rename to src/components/Profile/ImportNew.js diff --git a/src/components/Dashboard/LatestActivity.js b/src/components/Profile/LatestActivity.js similarity index 100% rename from src/components/Dashboard/LatestActivity.js rename to src/components/Profile/LatestActivity.js diff --git a/src/components/Dashboard/ProfileHeader.js b/src/components/Profile/ProfileHeader.js similarity index 100% rename from src/components/Dashboard/ProfileHeader.js rename to src/components/Profile/ProfileHeader.js diff --git a/src/components/Dashboard/TaskTable.js b/src/components/Profile/TaskTable.js similarity index 100% rename from src/components/Dashboard/TaskTable.js rename to src/components/Profile/TaskTable.js diff --git a/src/components/Dashboard/Test.js b/src/components/Profile/Test.js similarity index 100% rename from src/components/Dashboard/Test.js rename to src/components/Profile/Test.js diff --git a/src/components/Dashboard/test.css b/src/components/Profile/test.css similarity index 100% rename from src/components/Dashboard/test.css rename to src/components/Profile/test.css From 289962bfadd716ecd26eef30469f183411da5698 Mon Sep 17 00:00:00 2001 From: abhinav anshul Date: Fri, 5 Jun 2020 12:12:57 +0530 Subject: [PATCH 07/18] removes redundant projectCreation file --- src/components/Dashboard/ProjectCreation.js | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 src/components/Dashboard/ProjectCreation.js diff --git a/src/components/Dashboard/ProjectCreation.js b/src/components/Dashboard/ProjectCreation.js deleted file mode 100644 index 26c8439..0000000 --- a/src/components/Dashboard/ProjectCreation.js +++ /dev/null @@ -1,10 +0,0 @@ -/* eslint-disable */ -import { useProjectCreationActions } from '../../hooks/useProjectCreation' - -export function handleProjectCreation() { - // useProjectCreationActions(id, name, budget) -} - -///// - -///// From be20a0386d13ee910b0a175fc602f00215b3b45b Mon Sep 17 00:00:00 2001 From: abhinav anshul Date: Fri, 5 Jun 2020 12:18:27 +0530 Subject: [PATCH 08/18] fixes custom button style and renames --- src/components/Profile/APIcall.js | 6 +++--- src/components/Profile/buttonCustomStyle.css | 3 +++ src/components/Profile/test.css | 3 --- 3 files changed, 6 insertions(+), 6 deletions(-) create mode 100644 src/components/Profile/buttonCustomStyle.css delete mode 100644 src/components/Profile/test.css diff --git a/src/components/Profile/APIcall.js b/src/components/Profile/APIcall.js index ffa24ad..20af201 100644 --- a/src/components/Profile/APIcall.js +++ b/src/components/Profile/APIcall.js @@ -2,7 +2,7 @@ import React, { useState, useEffect } from 'react' import GitHubLogin from 'react-github-login' import { Button } from '@aragon/ui' -import './test.css' +import './buttonCustomStyle.css' function APIcall() { const [boolButtonText, setBoolButtonText] = useState('CONNECT') @@ -49,7 +49,7 @@ function APIcall() { onFailure={onFailure_disconnect} buttonText={boolButtonText_disconnect} // buttonText='DISCONNECT' - className='testcss' + className='buttonCustomStyle' /> ) : ( )} diff --git a/src/components/Profile/buttonCustomStyle.css b/src/components/Profile/buttonCustomStyle.css new file mode 100644 index 0000000..46c7bf5 --- /dev/null +++ b/src/components/Profile/buttonCustomStyle.css @@ -0,0 +1,3 @@ +.buttonCustomStyle { + all: unset; +} diff --git a/src/components/Profile/test.css b/src/components/Profile/test.css deleted file mode 100644 index 4b08b4c..0000000 --- a/src/components/Profile/test.css +++ /dev/null @@ -1,3 +0,0 @@ -.testcss { - all: unset; -} From 1f1abfaadd7c29e5483d5018a2dc1f8fc366a4b5 Mon Sep 17 00:00:00 2001 From: abhinav anshul Date: Fri, 5 Jun 2020 12:23:09 +0530 Subject: [PATCH 09/18] renames Test.js to APICallContainer & refactors --- src/components/Profile/{Test.js => APICallContainer.js} | 4 ++-- src/components/Profile/ProfileHeader.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) rename src/components/Profile/{Test.js => APICallContainer.js} (68%) diff --git a/src/components/Profile/Test.js b/src/components/Profile/APICallContainer.js similarity index 68% rename from src/components/Profile/Test.js rename to src/components/Profile/APICallContainer.js index f8f807d..5c7457e 100644 --- a/src/components/Profile/Test.js +++ b/src/components/Profile/APICallContainer.js @@ -2,7 +2,7 @@ import React from 'react' import APIcall from './APIcall' -function Test() { +function APICallContainer() { return (
@@ -10,4 +10,4 @@ function Test() { ) } -export default Test +export default APICallContainer diff --git a/src/components/Profile/ProfileHeader.js b/src/components/Profile/ProfileHeader.js index 1733711..7261ca1 100644 --- a/src/components/Profile/ProfileHeader.js +++ b/src/components/Profile/ProfileHeader.js @@ -1,6 +1,6 @@ /* eslint-disable prettier/prettier */ import React from 'react' -import Test from './Test' +import APICallContainer from './APICallContainer' import { Box, GU, textStyle, EthIdenticon } from '@aragon/ui' import { useWallet } from 'use-wallet' @@ -41,7 +41,7 @@ export default function ProfileHeader({ active }) { soften={0} />
- + ) : (
From db83483aef8eea3eb10e24da6caed12b8b95beba Mon Sep 17 00:00:00 2001 From: abhinav anshul Date: Fri, 5 Jun 2020 12:26:53 +0530 Subject: [PATCH 10/18] removes raw GithubRestAPI file --- src/components/Dashboard/GithubRESTAPI.js | 26 ----------------------- 1 file changed, 26 deletions(-) delete mode 100644 src/components/Dashboard/GithubRESTAPI.js diff --git a/src/components/Dashboard/GithubRESTAPI.js b/src/components/Dashboard/GithubRESTAPI.js deleted file mode 100644 index 77561cb..0000000 --- a/src/components/Dashboard/GithubRESTAPI.js +++ /dev/null @@ -1,26 +0,0 @@ -/* eslint-disable prettier/prettier */ -const GIHUB_SERVER = 'https://api.github.com/' - -export default class GitHubRestApi { - constructor(accessToken) { - this.accessTokan = accessToken - } - - fetchRepoDetails(repoId) { - return fetch(GIHUB_SERVER + 'repositories/' + repoId, { - method: 'GET', - headers: { - Authorization: this.accessTokan, - }, - }) - .then((res) => res.json()) - .then(function(response) { - return response - }) - .catch(function(error) { - return { meta: { status: false, message: error } } - }) - } -} - -module.export = GitHubRestApi From 14f8036307b9c81406a2f6ba621a20b50252236b Mon Sep 17 00:00:00 2001 From: abhinav anshul Date: Fri, 5 Jun 2020 12:30:23 +0530 Subject: [PATCH 11/18] removes Connect.js file & minor refactoring --- src/components/Profile/Connect.js | 43 ------------------------------- 1 file changed, 43 deletions(-) delete mode 100644 src/components/Profile/Connect.js diff --git a/src/components/Profile/Connect.js b/src/components/Profile/Connect.js deleted file mode 100644 index 6a47364..0000000 --- a/src/components/Profile/Connect.js +++ /dev/null @@ -1,43 +0,0 @@ -/* eslint-disable prettier/prettier */ -import React, { useEffect } from 'react' -import { Button } from '@aragon/ui' - -function Connect() { - const CLIENT_ID = '69bc88033c4b1bc2b4dc' - const REDIRECT_URI = 'http://localhost:3000/dashboard' - - useEffect(() => { - const code = - window.location.href.match(/\?code=(.*)/) && - window.location.href.match(/\?code=(.*)/)[1] - console.log(window.location.href) - - console.log(code) - // console.log(screen.id) - - fetch(`https://gitfund-oauth.herokuapp.com/authenticate/${code}`) - .then((response) => response.json()) - .then(({ token }) => { - console.log(token) - console.log(token) - localStorage.setItem('GithubToken', token) - }) - }, []) - - return ( - <> - - {localStorage.getItem('GithubToken') === 'undefined' ? ( - - -
- ) - } -} -export default ImportNew From 7920734586ccb6dc5d814c71e8a172e223ffda8f Mon Sep 17 00:00:00 2001 From: abhinav anshul Date: Fri, 5 Jun 2020 12:42:45 +0530 Subject: [PATCH 13/18] Renames handleProjectCreationn function --- src/components/Dashboard/Import.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/Dashboard/Import.js b/src/components/Dashboard/Import.js index 3d5795b..ac74c58 100644 --- a/src/components/Dashboard/Import.js +++ b/src/components/Dashboard/Import.js @@ -43,7 +43,7 @@ function Import() { }) let repoIndex = 0 while (repoIndex < data.length) { - repoList.push({name: data[repoIndex].name, id: data[repoIndex].id}) + repoList.push({ name: data[repoIndex].name, id: data[repoIndex].id }) repoIndex++ } setList([...repoList]) @@ -66,7 +66,7 @@ function Import() { const inputName = useRef(null) const inputDropdown = useRef(null) - async function handleProjectCreationn() { + async function handleProjectCreation() { let nameInput = inputName.current.value let budgetInput = inputBudget.current.value let dropdownInput = list[selected].id @@ -98,7 +98,7 @@ function Import() { i.name)]} + items={[...list.map((i) => i.name)]} ref={inputDropdown} style={{ marginTop: '4rem', @@ -116,7 +116,7 @@ function Import() { placeholder='Budget' /> - ) : null} + ) : ( + + + {(toast) => ( + + )} + + + )} {list.length === 0 ? ( From 8b2ec3a4fb55a3159884d0e1e8b8322999551615 Mon Sep 17 00:00:00 2001 From: abhinav anshul Date: Fri, 5 Jun 2020 13:31:16 +0530 Subject: [PATCH 15/18] refactors Dashboard & Profile components --- src/App.js | 6 +++--- src/components/Dashboard/{Disputes.js => Dashboard.js} | 4 ++-- src/components/Profile/{Dashboard.js => Profile.js} | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) rename src/components/Dashboard/{Disputes.js => Dashboard.js} (97%) rename src/components/Profile/{Dashboard.js => Profile.js} (88%) diff --git a/src/App.js b/src/App.js index abf9c1f..f0abe47 100644 --- a/src/App.js +++ b/src/App.js @@ -9,12 +9,12 @@ import theme from './theme-court' import MainView from './components/MainView' import ErrorPage from './ErrorPage' -import Dashboard from './components/Profile/Dashboard' +import Profile from './components/Profile/Profile' /* eslint-disable prettier/prettier */ import Tasks from './components/Tasks/Tasks' import Sample from './components/Sample/Sample' -import Disputes from './components/Dashboard/Disputes' +import Disputes from './components/Dashboard/Dashboard' import { WalletProvider } from './providers/Wallet' import { ActivityProvider } from './components/Activity/ActivityProvider' @@ -27,7 +27,7 @@ function App() { {/* */} - + diff --git a/src/components/Dashboard/Disputes.js b/src/components/Dashboard/Dashboard.js similarity index 97% rename from src/components/Dashboard/Disputes.js rename to src/components/Dashboard/Dashboard.js index 6edb8fd..0db030a 100644 --- a/src/components/Dashboard/Disputes.js +++ b/src/components/Dashboard/Dashboard.js @@ -10,7 +10,7 @@ import { disputes } from '../../mock-data' import Import from './Import' -function Disputes() { +function Dashboard() { const [selectedDispute, selectDispute] = useSelectedDispute(disputes) const handleBack = useCallback(() => { @@ -55,4 +55,4 @@ const useSelectedDispute = (disputes) => { return [selectedDispute, selectDispute] } -export default Disputes +export default Dashboard diff --git a/src/components/Profile/Dashboard.js b/src/components/Profile/Profile.js similarity index 88% rename from src/components/Profile/Dashboard.js rename to src/components/Profile/Profile.js index 1bcd6de..498ec05 100644 --- a/src/components/Profile/Dashboard.js +++ b/src/components/Profile/Profile.js @@ -4,7 +4,7 @@ import { Header, Split } from '@aragon/ui' import ProfileHeader from './ProfileHeader' import DashboardStats from './DashboardStats' -function Dashboard() { +function Profile() { return (
@@ -14,4 +14,4 @@ function Dashboard() { ) } -export default Dashboard +export default Profile From 67f383b46cc607158b6a4880eb9f12f5841f41ab Mon Sep 17 00:00:00 2001 From: abhinav anshul Date: Fri, 5 Jun 2020 14:11:59 +0530 Subject: [PATCH 16/18] minor fixes --- src/App.js | 1 + src/components/Dashboard/Dashboard.js | 13 +----- src/components/Profile/APIcall.js | 66 ++++++++++++++------------- 3 files changed, 37 insertions(+), 43 deletions(-) diff --git a/src/App.js b/src/App.js index f0abe47..79f7b5e 100644 --- a/src/App.js +++ b/src/App.js @@ -17,6 +17,7 @@ import Sample from './components/Sample/Sample' import Disputes from './components/Dashboard/Dashboard' import { WalletProvider } from './providers/Wallet' import { ActivityProvider } from './components/Activity/ActivityProvider' +// import { TokenContext } from './components/Profile/APIcall' function App() { return ( diff --git a/src/components/Dashboard/Dashboard.js b/src/components/Dashboard/Dashboard.js index 0db030a..941bfae 100644 --- a/src/components/Dashboard/Dashboard.js +++ b/src/components/Dashboard/Dashboard.js @@ -1,5 +1,4 @@ /* eslint-disable prettier/prettier */ - import React, { useCallback, useMemo, useState } from 'react' import { Header } from '@aragon/ui' @@ -26,17 +25,7 @@ function Dashboard() { {selectedDispute ? ( ) : ( - + )} ) diff --git a/src/components/Profile/APIcall.js b/src/components/Profile/APIcall.js index 20af201..eee2a22 100644 --- a/src/components/Profile/APIcall.js +++ b/src/components/Profile/APIcall.js @@ -17,11 +17,6 @@ function APIcall() { .then((response) => response.json()) .then(({ token }) => localStorage.setItem('ACCESS TOKEN', token)) - // if (boolButtonText === 'CONNECT') { - // setBoolButtonText('DISCONNECT') - // } else { - // setBoolButtonText('CONNECT') - // } setBoolButtonText('DISCONNECT') } @@ -36,34 +31,43 @@ function APIcall() { const onFailure = (response) => console.error(response) - const TokenContext = React.createContext(localStorage.getItem('ACCESS TOKEN')) + const TokenContext = React.createContext() + + let TokenSave = localStorage.getItem('ACCESS TOKEN') return ( -
- -
+ ( +
+ +
+ ), + ( + + ) ) } From 7474065f869876a6daf833f44621984a5ceaf4eb Mon Sep 17 00:00:00 2001 From: abhinav anshul Date: Mon, 8 Jun 2020 08:49:55 +0530 Subject: [PATCH 17/18] removes context --- debug.log | 2 ++ src/components/Profile/APIcall.js | 55 +++++++++++++------------------ 2 files changed, 25 insertions(+), 32 deletions(-) diff --git a/debug.log b/debug.log index 75459b9..a521935 100644 --- a/debug.log +++ b/debug.log @@ -33,3 +33,5 @@ [0605/105518.043:ERROR:crash_report_database_win.cc(469)] failed to stat report [0605/114652.318:ERROR:crash_report_database_win.cc(469)] failed to stat report [0605/114652.321:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0608/071321.652:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0608/071321.678:ERROR:crash_report_database_win.cc(469)] failed to stat report diff --git a/src/components/Profile/APIcall.js b/src/components/Profile/APIcall.js index eee2a22..a4e06dc 100644 --- a/src/components/Profile/APIcall.js +++ b/src/components/Profile/APIcall.js @@ -36,38 +36,29 @@ function APIcall() { let TokenSave = localStorage.getItem('ACCESS TOKEN') return ( - ( -
- -
- ), - ( - - ) +
+ +
) } From 191dd16754086628e5e3abad221bbeb305005c82 Mon Sep 17 00:00:00 2001 From: abhinav anshul Date: Wed, 10 Jun 2020 13:20:09 +0530 Subject: [PATCH 18/18] populates Github Info to the profile --- debug.log | 8 ++ src/components/Activity/activity-types.js | 2 + src/components/Dashboard/Import.js | 3 + src/components/Dashboard/useFetchProject.js | 34 +++++ src/components/Profile/APIcall.js | 130 ++++++++++++++++---- src/hooks/useProjectCreation.js | 2 +- 6 files changed, 152 insertions(+), 27 deletions(-) create mode 100644 src/components/Dashboard/useFetchProject.js diff --git a/debug.log b/debug.log index a521935..3133e44 100644 --- a/debug.log +++ b/debug.log @@ -35,3 +35,11 @@ [0605/114652.321:ERROR:crash_report_database_win.cc(469)] failed to stat report [0608/071321.652:ERROR:crash_report_database_win.cc(469)] failed to stat report [0608/071321.678:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0608/185726.898:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0608/185726.920:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0609/092800.632:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0609/092800.634:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0609/094719.262:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0609/094719.264:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0610/122246.990:ERROR:crash_report_database_win.cc(469)] failed to stat report +[0610/122247.014:ERROR:crash_report_database_win.cc(469)] failed to stat report diff --git a/src/components/Activity/activity-types.js b/src/components/Activity/activity-types.js index 4c5b0b1..d0d118c 100644 --- a/src/components/Activity/activity-types.js +++ b/src/components/Activity/activity-types.js @@ -1,3 +1,4 @@ +/* eslint-disable */ import iconAnj from './assets/activity-icon-anj.svg' import execute from './assets/activity-icon-execute-ruling.svg' @@ -22,6 +23,7 @@ const ACTIVITY_TYPES = new Map( `, } }, + newProject({ name, budget }) { return { icon: execute, diff --git a/src/components/Dashboard/Import.js b/src/components/Dashboard/Import.js index 8040c20..bcdaeb5 100644 --- a/src/components/Dashboard/Import.js +++ b/src/components/Dashboard/Import.js @@ -12,6 +12,8 @@ import { import { Octokit } from '@octokit/rest' import { useWallet } from 'use-wallet' import { useProjectCreationActions } from '../../hooks/useProjectCreation' +// import { addproject } from './AddProject' +import { useProjectAddActions } from './useFetchProject' function Import() { const wallet = useWallet() @@ -79,6 +81,7 @@ function Import() { let budgetInput = inputBudget.current.value let dropdownInput = list[selected].id await create(dropdownInput.toString(), nameInput, budgetInput) + useProjectAddActions() } return ( diff --git a/src/components/Dashboard/useFetchProject.js b/src/components/Dashboard/useFetchProject.js new file mode 100644 index 0000000..f215cba --- /dev/null +++ b/src/components/Dashboard/useFetchProject.js @@ -0,0 +1,34 @@ +/* eslint-disable */ +import { useEffect, useState, useCallback } from 'react' +import { useContract } from '../web3-contracts' + +import { useActivity } from '../components/Activity/ActivityProvider' + +import GitFundedGrantFactory from '../contracts/GitFundedGrantFactory.json' + +const GAS_LIMIT = 3000000 + +// Project creation contract +function useProjectFetchContract() { + return useContract( + GitFundedGrantFactory.networks['10'].address, + GitFundedGrantFactory.abi + ) +} + +export function useProjectAddActions() { + const { addActivity } = useActivity() + const projectFetchContract = useProjectFetchContract() + + const fetch = useCallback( + (id, name, budget) => { + return addActivity( + projectFetchContract.fetchProject(id, name, budget), + 'fetchProject', + { id: id, name: name, budget: budget } + ) + }, + [addActivity, projectFetchContract] + ) + return { fetch } +} diff --git a/src/components/Profile/APIcall.js b/src/components/Profile/APIcall.js index a4e06dc..fbb7354 100644 --- a/src/components/Profile/APIcall.js +++ b/src/components/Profile/APIcall.js @@ -1,8 +1,13 @@ /* eslint-disable */ import React, { useState, useEffect } from 'react' import GitHubLogin from 'react-github-login' -import { Button } from '@aragon/ui' +import { Button, Split, Box, DataView, textStyle, theme } from '@aragon/ui' import './buttonCustomStyle.css' +import { Octokit } from '@octokit/rest' + +const octokit = new Octokit({ + auth: localStorage.getItem('ACCESS TOKEN'), +}) function APIcall() { const [boolButtonText, setBoolButtonText] = useState('CONNECT') @@ -31,34 +36,107 @@ function APIcall() { const onFailure = (response) => console.error(response) - const TokenContext = React.createContext() - let TokenSave = localStorage.getItem('ACCESS TOKEN') + ///// USER INFO + + const [name, setName] = useState(null) + const [company, setCompany] = useState(null) + const [repos, setRepos] = useState(null) + const [followers, setFollowers] = useState(null) + const [following, setFollowing] = useState(null) + + async function a() { + const { data } = await octokit.request('/user') + console.log({ data }) + setName(data.name) + setCompany(data.company) + setRepos(data.public_repos) + setFollowers(data.followers) + setFollowing(data.following) + } + a() + + ///// + return ( -
- -
+ <> +
+ +
+ + {localStorage.getItem('ACCESS TOKEN') ? ( + +
+ +
+ {name} +
+
+ +
+ {company} +
+
+ +
+ {followers} +
+
+ +
+ {following} +
+
+ +
+ {repos} +
+
+
+
+ ) : null} + ) } diff --git a/src/hooks/useProjectCreation.js b/src/hooks/useProjectCreation.js index 02fef5f..fd0a986 100644 --- a/src/hooks/useProjectCreation.js +++ b/src/hooks/useProjectCreation.js @@ -1,5 +1,5 @@ /* eslint-disable */ -import React, { useEffect, useState, useCallback } from 'react' +import { useEffect, useState, useCallback } from 'react' import { useContract } from '../web3-contracts' import { useActivity } from '../components/Activity/ActivityProvider'